Esempio n. 1
0
        public string gerarPDF(int CodTitulo, bool Armazenar)
        {
            ClassWebBI.ClassFuncoes clFuncoes = new ClassWebBI.ClassFuncoes();

            SqlCommand sCommand = new SqlCommand();

            System.Data.DataTable tblTitulo = new System.Data.DataTable();

            SqlParameter pCodigo = new SqlParameter("@COD_TITULO", System.Data.SqlDbType.Int);

            sCommand.Parameters.Add(pCodigo);
            sCommand.Parameters["@COD_TITULO"].Value = CodTitulo;

            SqlParameter pAtualiza = new SqlParameter("@DT_GERACAO", System.Data.SqlDbType.DateTime);

            sCommand.Parameters.Add(pAtualiza);
            sCommand.Parameters["@DT_GERACAO"].Value = clFuncoes.GetProperties("fData");

            SqlParameter pHrAtualiza = new SqlParameter("@HR_GERACAO", System.Data.SqlDbType.VarChar, 5);

            sCommand.Parameters.Add(pHrAtualiza);
            sCommand.Parameters["@HR_GERACAO"].Value = DateTime.Now.ToString("HH:mm");

            sCommand.CommandText = "SELECT COD_TITULO, NOME, COD_EXCEL, NUM_PLAN_PDF, TIPO_ARMAZENAGEM FROM EXCEL_TITULOS WHERE COD_TITULO = @COD_TITULO";

            tblTitulo = clFuncoes.ExecReader(sCommand);

            if (tblTitulo.Rows.Count <= 0)
            {
                return("");
            }

            string Arquivo = salvaArquivoExcel(Convert.ToInt32(tblTitulo.Rows[0]["COD_EXCEL"].ToString()));

            if (!File.Exists(Arquivo))
            {
                return("");
            }

            Application xlsApp = new Application();

            if (xlsApp == null)
            {
                return("");
            }

            string NomeSimples = tblTitulo.Rows[0]["NOME"].ToString().Replace(" ", "") +
                                 "_" + clFuncoes.GetDataParcial(Convert.ToDateTime(pAtualiza.Value), tblTitulo.Rows[0]["TIPO_ARMAZENAGEM"].ToString());

            string Nome = clFuncoes.GetProperties("fTempDirUsuario").ToString() + NomeSimples + ".pdf";

            Workbook  workbook  = xlsApp.Workbooks.Open(Arquivo);
            Worksheet worksheet = workbook.Sheets[Convert.ToInt32(tblTitulo.Rows[0]["NUM_PLAN_PDF"].ToString())] as Worksheet;

            worksheet.ExportAsFixedFormat(XlFixedFormatType.xlTypePDF, @Nome, XlFixedFormatQuality.xlQualityStandard);

            //GC.Collect();
            // GC.WaitForPendingFinalizers();

            workbook.Close(true);
            workbook = null;

            xlsApp.Quit();
            xlsApp = null;

            if (Armazenar)
            {
                sCommand.CommandText = "UPDATE EXCEL_TITULOS" +
                                       " SET DT_GERACAO = @DT_GERACAO" +
                                       ", HR_GERACAO = @HR_GERACAO" +
                                       " WHERE COD_TITULO = @COD_TITULO";

                string sAux = clFuncoes.ExecNonQuery(sCommand);

                sAux = NomeSimples + ".pdf";

                adicionaAnexoBase(Convert.ToInt32(pCodigo.Value),
                                  @Nome,
                                  "PDF",
                                  sAux,
                                  Convert.ToDateTime(pAtualiza.Value),
                                  pHrAtualiza.Value.ToString());
            }

            return(@Nome);
        }