Hola foreros !
Estoy iniciandome con la libreria itextsharp y bueno a la hora de mostrar los datos tengo algunos problemas. Tengo un listado de empleados por departamento, donde se me muestra una tabla con dos celdas, la de arriba (colspan=2) me muestra el nombreDepartamento, y abajo me muestra los empleados que pertenecen a ese departamento y un telefono de contacto.Hasta ahi bien.
Pero me surge una dificultad. En una mismo departamento puede haber más de un registro, es decir, empleado en este caso. ¿Cómo puedo agruparlos y que me los muestre juntos? , en vez de separado ? , Hasta ahora me muestra por cada departamento un registro, pero hay tiendas que tienes mas de un registro. ¿me explico?
Lo que quiero es que me muestren los registros agrupados, que me muestre los empleados juntos que pertenecen a un mismo departamento
Ahora se me muestra asi
Departamento 1
Empleado 1 - telefono
Departamento 2
Empleado 1 - telefono
Departamento 1
Empleado 2 - telefono
Y quiero que no se comporte asi,
que me muestre todos los del departamento 1 juntos !
He hecho pruebas creando una query nueva en el While datareader.Read() , pero no funciona, o no hago dl modo correcto.
El codigo que funciona juntando los registros es el siguiente:
Código:
'tabla para datos
Dim tabla As New PdfPTable(2)
tabla.SpacingAfter = 50.0F
tabla.DefaultCell.Border = 0
table.TotalWidth = 100
Dim cnn As New SqlConnection(cadenaBBDD)
Dim query As String = "SELECT departamentos.nombreDepartamento, empleados.nombre, empleados.telefono
FROM departamentos INNER JOIN empleados ON departamentos.codDepartamento = empleados.codDepartamento"
Dim cmd As New SqlCommand(query, cnn)
Try
cnn.Open()
Using reader As SqlDataReader = cmd.ExecuteReader()
While reader.Read()
Dim celldepartamento As New PdfPCell(New Phrase(reader(0).ToString(), FontFactory.GetFont(FontFactory.HELVETICA_OBLIQUE, size:=14, style:=iTextSharp.text.Font.NORMAL, color:=miColor)))
celldepartamento.Colspan = 2
celldepartamento.Border = 0
celldepartamento.HorizontalAlignment = Element.ALIGN_LEFT
tabla.AddCell(celldepartamento)
Dim cellempleado As New PdfPCell(New Phrase(reader(1).ToString(), FontFactory.GetFont(FontFactory.HELVETICA_OBLIQUE, size:=12, style:=iTextSharp.text.Font.NORMAL)))
cellempleado.Border = 0
cellempleado.VerticalAlignment = Element.ALIGN_MIDDLE
tabla.AddCell(cellempleado)
Dim celltelefono As New PdfPCell(New Phrase(reader(2).ToString(), FontFactory.GetFont(FontFactory.HELVETICA_OBLIQUE, size:=12, style:=iTextSharp.text.Font.NORMAL)))
celltelefono.Border = 0
celltelefono.HorizontalAlignment = Element.ALIGN_RIGHT
tabla.AddCell(celltelefono)
End While
End Using
Catch ex As Exception
MsgBox(ex.Message)
End Try
documento.Add(tabla)
' Cerramos el documento, ya estará en nuestro disco guardado
documento.Close()
Agradeceria muchisimo si me pudieseis ayudar o decirme que puedo hacer para que me agrupe los empleados de un mismo departamento. Un saludo !