none
otra pregunta de filas a columnas RRS feed

  • Pregunta

  • Gracias a todos por la ayuda a mi pregunta anterior:<o:p></o:p>

    Debo hacer un reporte (utilizo crystal report que viene con vb net 2005) que con las siguientes características:

           Debe contener los datos x semana.
           COLUMNAS
    MAQUINA  REFER  CANT-META       Lun03       Mar04    Mie05   Jue06  Vie07   Sab08   Dom09  Total- Sem  Saldo

    001               9012      100                15            10          10         12      15         10          15          87           13

    002              9026       150               20             30          12         10       9          10          5            96            54       

    TOTAL                                              35             40           22         22      24        20          20        183            

    Por favor necesito un ejemplo de como realizar este listado columnario, si los datos se guardan en una tabla asi:
    MAQUINA, REFERENCIA,  FECHA_PRODUCCION,  CANT_PRODUCCION,<o:p></o:p>

    No especifique que utilizo la bd  de Postgresql. H eintentado realizar el Pivot o el CROSSTAB en postgresql sin exito hasta el momento, entonces estoy implementando la respuesta de crear un datatable y asi manejarlo:

     Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            'table como fuente de datos, puede venir desde una consulta sql
            Dim dt As New DataTable()
            dt.Columns.Add("maquina")
            dt.Columns.Add("refer")
            dt.Columns.Add("cantidad", GetType(Integer))
            dt.Columns.Add("fecha", GetType(Date))
            dt.Rows.Add("001", "9012", "100", New DateTime(2012, 3, 15))
            dt.Rows.Add("002", "9013", "100", New DateTime(2012, 3, 15))
            dt.Rows.Add("003", "9018", "100", New DateTime(2012, 3, 22))
            'table resultante
            Dim dtPivot As New DataTable()
            'obtener listado de distintas fechas para crear los nombres de columnas
            Dim query = (From item In dt.AsEnumerable() Select item.Field(Of DateTime)("fecha")).Distinct()
            'nuevas columnas
            dtPivot.Columns.Add("maquina")
            dtPivot.Columns.Add("refer")
            dtPivot.Columns.Add("cantidad", GetType(Integer))
            'nuevas columnas con nombre de fechas
            For Each row In query
                Dim fech As Object = CObj(row)
                dtPivot.Columns.Add(fech)
            Next
            'ver resultado
            Dim dt1 As DataTable = dtPivot
            '
            'falta asignar valores segun logica de programacion
            '
        End Sub


    Pero no se como asignar los valores a las columnas que tienen la fecha?
    Como comparo el dato de la fecha (FECHA_PRODUCCION) en el datatable con el nombre de la columna y asi grabar la cantidad de este dia, de una misma maquina/referencia?
    Como Sumo los datos de las columnas de fechas (dinamicas)?

    Muchas Gracias por la colaboracion.



    lunes, 7 de enero de 2013 21:07

Respuestas