PHP - CONSULTA PARA REPORTE

 
Vista:
sin imagen de perfil
Val: 78
Ha disminuido su posición en 5 puestos en PHP (en relación al último mes)
Gráfica de PHP

CONSULTA PARA REPORTE

Publicado por SARA (67 intervenciones) el 19/04/2021 20:32:56
buenas tardes quisiera un poco de asesoramiento sobre mi codigo, se que es obsoleto pero es en lo que estoy trabajando, ahorita me arroja toda la informacion pero mi problema es que las cantidades de los materiales me arroja las mismas en todas las columnas de pedidos y lo que necesito es que se muestre conforme a cada material asi como se muestra en la imagen, anexo mi codigo espero me puedan asesorar.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
///////////////////////////////////////////////////////////////////////////
$sqlCOUNT = "SELECT @n := @n +1 n, ID_Cliente
            FROM pedidos_entrada, (
            SELECT @n :=0
            )m
            GROUP BY cliente
            ORDER BY cliente DESC
            LIMIT 1";
 
$resultCOUNT=mysqli_query($con,$sqlCOUNT);
$rowCOUNT=mysqli_fetch_array($resultCOUNT);
 
 
$sheet = $objPHPExcel->getActiveSheet();
 
for ($i=1; $i <=$rowCOUNT[0]; $i++) {
 
//consulta para agrupar clientes
    $sqlcliente = "SELECT cliente
            FROM pedidos_entrada
            GROUP BY cliente
            ORDER BY cliente ASC";
 
    $resultcliente=mysqli_query($con,$sqlcliente);
 
    $i = 1;
    while ($rowcliente=mysqli_fetch_array($resultcliente)){
 
        $objWorkSheet = $objPHPExcel->createSheet($i);
 
$objPHPExcel->getActiveSheet($i)->getColumnDimension('A')->setAutoSize(true);
$objPHPExcel->getActiveSheet($i)->getColumnDimension('B')->setAutoSize(true);
$objPHPExcel->getActiveSheet($i)->getColumnDimension('C')->setAutoSize(true);
 
$objPHPExcel->getActiveSheet($i)->getStyle('A3:C3')->getFont()->setBold(true);
 
        $objPHPExcel->setActiveSheetIndex($i)
                    ->setCellValue('A3', "material")
                    ->setCellValue('B3', 'modelo')
                    ->setCellValue('C3', 'cantidad');
 
//cuenta los registros de cada uno de los clientes $sqlcliente
$setSqlCOUNT = "SELECT COUNT(*)
        FROM pedidos_entrada
        WHERE cliente='".$rowcliente[0]."'
        ORDER BY FIELD(modelo,'modelo1','modelo2','modelo3','modelo4','modelo5','modelo6','modelo7'), material ASC  ";
 
$resultCOUNT=mysqli_query($con,$setSqlCOUNT);
 
$celdet2 =4;
while ($rowdet=mysqli_fetch_array($resultCOUNT)){
 
////crea el numero de pedido por columnas
$column = 'D';
for ($i2=0; $i2<=$rowdet[0]; $i2++) {
 
//consulta para traer informacion detallada del cliente $sqlcliente
$setSqldetalle = "SELECT cliente, orden, fecha_pedido, material, modelo, cantidad
        FROM pedidos_entrada
        WHERE cliente='".$rowcliente[0]."'
        GROUP BY orden
        ORDER BY FIELD(modelo,'modelo1','modelo2','modelo3','modelo4','modelo5','modelo6','modelo7'), material ASC";
 
$resultdetalle=mysqli_query($con,$setSqldetalle);
 
$celdet=4;//Numero de fila donde empezara a crear  el reporte
while ($rowdet=mysqli_fetch_array($resultdetalle)){
 
        $objPHPExcel->setActiveSheetIndex($i)->setCellValue($column . '1', $rowdet['fecha_pedido']);
        $objPHPExcel->setActiveSheetIndex($i)->setCellValue($column . '2', $rowdet['orden']);
 
 
//se trae informacion detallada dependiendo del cliente $sqlcliente
$setSql = "SELECT cliente, orden, fecha_pedido, material, modelo, cantidad
        FROM pedidos_entrada
        WHERE cliente='".$rowcliente[0]."'
        ORDER BY FIELD(modelo,'modelo1','modelo2','modelo3','modelo4','modelo5','modelo6','modelo7'), material ASC";
 
$result=mysqli_query($con,$setSql);
 
    $cel=4;//Numero de fila donde empezara a crear  el reporte
while ($row=mysqli_fetch_array($result)){
     $producto=$row['material'];
     $modelo=$row['modelo'];
     $cantidad=$row['cantidad'];
     $orden=$row['orden'];
 
        $a="A".$cel;
        $b="B".$cel;
 
        // Agregar datos
        $objPHPExcel->setActiveSheetIndex($i)
        ->setCellValue($a, $producto)
        ->setCellValue($b, $modelo)
        ->setCellValue($column.$cel, $cantidad);
 
$cel+=1;
}
 
$column++;
}
 
$celdet+=1;
}
$celdet2+=1;
}

ex
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder