Ver Mensaje Individual
  #1 (permalink)  
Antiguo 12/02/2011, 09:05
webuf
 
Fecha de Ingreso: julio-2008
Mensajes: 5
Antigüedad: 16 años, 5 meses
Puntos: 0
Pregunta registros en itextsharp

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 !