OdbcDataAdapter dta
=new OdbcDataAdapter
(" SELECT a.cdgo_prdcto COD,a.nmbre_prdcto DESCRIPCION, SUM(b.cntdad)PMVTA,a.csto_rpscion CR, " + " a.clfccion_prmnnte P, a.clfccion_tmpral T,a.cdgo_brra EAN" +
" from prdcto a , prmdio_vnta b " +
" where estdo = 'A' " +
" and a.cdgo_prdcto = b.cdgo_prdcto " +
" group by 1,2,4,5,6,7 " +
" order by 2 ", conn);
DataSet dsdatos
= new DataSet
(); dta.Fill(dsdatos, "Datos");
this.dataGridView1.DataMember = "Datos";
//this.dataGridView1.Columns(1).Width = 4400;
this.dataGridView1.DataSource = dsdatos;
}
private void Form1_Load(object sender, EventArgs e)
{
}
//private void dataGridView1_DefaultCellStyleChanged(object sender, EventArgs e)
private void btnExportar_Click(object sender, EventArgs e)
{
DateTime hora = DateTime.Now;
string fcha_ttal = Convert.ToDateTime(hora).Day + "/" + Convert.ToDateTime(hora).Month + "/" + Convert.ToDateTime(hora).Year;
Document doc
= new Document
(PageSize
.LETTER,
10,
10,
10,
10); string filename = "C:\\Temp\\Listado Total.pdf";
iTextSharp.text.Image jpg = iTextSharp.text.Image.GetInstance(@"C:\Mis documentos\Biblia_productos\Biblia_productos\Images\marion.JPG"); jpg.Alignment = iTextSharp.text.Image.ALIGN_LEFT;
Chunk encab
= new Chunk
(" LISTA DE PRODUCTOS CODIFICADOS EN " + fcha_ttal
+ "", FontFactory
.GetFont("COURIER",
12));
try
{
FileStream file
= new FileStream
(filename, FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.ReadWrite);
PdfWriter.GetInstance(doc, file);
doc.Open();
doc
.Add(new Paragraph
(encab
)); doc.Add(jpg);
GenerarDocumento(doc);
Process.Start(filename);
doc.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
//Función que genera el documento Pdf
public void GenerarDocumento(Document document)
{
PdfPTable datatable
= new PdfPTable
(dataGridView1
.ColumnCount); datatable.DefaultCell.Padding = 1;
float[] headerwidths = GetTamañoColumnas(dataGridView1);
datatable.SetWidths(headerwidths);
datatable.WidthPercentage = 100;
datatable.DefaultCell.BorderWidth = 4; // Define el grosor del encabezado
//datatable.DefaultCell.VerticalAlignment = Element.ALIGN_CENTER; // Alinea el encabezado al centro
//datatable.DefaultCell.Column =
datatable.DefaultCell.Padding = 3; //Amplia el tamaño del encabezado
iTextSharp
.text.Font fuente
= new iTextSharp
.text.Font(iTextSharp
.text.Font.FontFamily.COURIER,
9);
Phrase objP
= new Phrase
("A", fuente
);
for (int i = 0; i < dataGridView1.ColumnCount; i++)
{
objP
= new Phrase
(dataGridView1
.Columns[i
].HeaderText, fuente
);
//this.dataGridView1.Columns[1].DefaultCellStyle.Alignment = DataGridViewContentAlignment.TopCenter;
datatable.AddCell(objP);
}
datatable.HeaderRows = 1;
datatable.DefaultCell.BorderWidth = 1;
for (int i = 0; i < dataGridView1.RowCount - 1; i++)
{
for (int j = 0; j < dataGridView1.ColumnCount; j++)
{
objP
= new Phrase
(dataGridView1
[j, i
].Value.ToString(), fuente
); datatable.AddCell(objP);
}
datatable.CompleteRow();
}
document.Add(datatable);
}
public float[] GetTamañoColumnas(DataGridView dg)
{
float[] values
= new float[dg
.ColumnCount]; for (int i = 0; i < dg.ColumnCount; i++)
{
values[i] = (float)dg.Columns[i].Width;
}
return values;
}