![]() |
Generar reporte en QReport para obtener totales
Saludos a todos
Necesito generar un reporte en QReport para obtener los total de uniformes que debo comprar dependiendo de la medida de la ropa y zapatos de cada trabajador estoy trabajando en Delphi5 con una base de datos Standar .dbf mi reporte lo quiero generar con QReport y los campos que utiliza son los siguientes: Tipo caracter: Depto, Dias,Tipo_Bota,Cant_Botas,Cant_Panta, Cant_Camis,Cant_Over,Cantchama,Jabones,Toallas. Tipo Numerico: Medida,Pantalon,Camisa,Manga,Overol,Chamarra Realizo un calculo que da como resultado el total de uniformes que le correspode a cada trabajador dependiendo de los dias trabajados en el año. Uniforme contempla: Camisa,Pantalon,Botas,Chamarras,Overoles,jabones,Toallas, Yo necesito captar los datos que se generan al hacer ese calculo y plasmarlo en un reporte que me indique el total de uniformes que debo comprar dependiendo de la medida de camisa, pantalon, cuantos pares de botas de tal medida, cuantos overoles, cuantas chamarras segun la medida y un gran total de cada juego. Nota: tengo pendiente overoles porque muy probable no se entreguen anexo un ejemplo del calculo: procedure TFdatos.CalcularClick(Sender: TObject); Var datos: Integer; const I= 0.143; begin //no es necesario abrir la BD ya esta activa al momento de llamar a esta forma fdatos.table1.First; While Not fdatos.table1.EOF do Begin datos := StrtoInt(DBEdit1.Text); fdatos.Table1.Edit; fdatos.Table1.FieldByName('jabones').Value :=StrtoInt(DBEdit1.Text); If (datos<>0) then Begin fdatos.Table1.Edit; fdatos.Table1.FieldByName('jabones').Value := (datos * I); fdatos.Table1.Post; End Else If (datos >365) then showMessage('checa el numero '); { fdatos.Table1.Next; End; // while end; //procedimiento end. } datos := StrtoInt(DBEdit1.Text); fdatos.Table1.Edit; fdatos.Table1.FieldByName('cantchama').Value :=StrtoInt(DBEdit1.Text); If (datos<=180) then Begin fdatos.Table1.Edit; fdatos.Table1.FieldByName('cantchama').Value := '0'; fdatos.Table1.Post End Else If (datos>=181) then Begin fdatos.Table1.Edit; fdatos.Table1.FieldByName('cantchama').Value := '1'; fdatos.Table1.Post End else If (datos >365) then showMessage('checa el numero '); datos := StrtoInt(DBEdit1.Text); fdatos.Table1.Edit; fdatos.Table1.FieldByName('cant_camis').Value :=StrtoInt(DBEdit1.Text); fdatos.Table1.FieldByName('cant_panta').Value :=StrtoInt(DBEdit1.Text); If (datos<=30) then Begin fdatos.Table1.Edit; fdatos.Table1.FieldByName('cant_camis').Value := '0'; fdatos.Table1.FieldByName('cant_panta').Value := '0'; fdatos.Table1.Post; End Else If (datos<=59) then Begin fdatos.Table1.Edit; fdatos.Table1.FieldByName('cant_camis').Value := '1'; fdatos.Table1.FieldByName('cant_panta').Value := '1'; fdatos.Table1.Post End Else If (datos<=183) then Begin fdatos.Table1.Edit; fdatos.Table1.FieldByName('cant_camis').Value := '2'; fdatos.Table1.FieldByName('cant_panta').Value := '2'; fdatos.Table1.Post End Else If (datos<=300) then Begin fdatos.Table1.Edit; fdatos.Table1.FieldByName('cant_camis').Value := '3'; fdatos.Table1.FieldByName('cant_panta').Value := '3'; fdatos.Table1.Post End else If (datos>=365) then Begin fdatos.Table1.Edit; fdatos.Table1.FieldByName('cant_camis').Value := '5'; fdatos.Table1.FieldByName('cant_panta').Value := '5'; fdatos.Table1.Post End Else If (datos >365) then datos := StrtoInt(DBEdit1.Text); fdatos.Table1.Edit; fdatos.Table1.FieldByName('toallas').Value :=StrtoInt(DBEdit1.Text); If (datos<=121) then Begin fdatos.Table1.Edit; fdatos.Table1.FieldByName('toallas').Value := '0'; fdatos.Table1.Post End Else If (datos>=122)and (datos<=242) then Begin fdatos.Table1.Edit; fdatos.Table1.FieldByName('toallas').Value := '1'; fdatos.Table1.Post End Else If (datos>=243) and (datos<365) then Begin fdatos.Table1.Edit; fdatos.Table1.FieldByName('toallas').Value := '2'; fdatos.Table1.Post End else If (datos=365) then Begin fdatos.Table1.Edit; fdatos.Table1.FieldByName('toallas').Value := '3'; fdatos.Table1.Post End Else If (datos >365) then showMessage('checa el numero '); fdatos.Table1.Next; End; // while end; //procedimiento end. Para ti Moderador agradezco tus comentarios y pido disculpas por ser tan poco observadora decidí hacer un nuevo hilo pero no supe donde ubicarlo si me equivoco que es lo más seguro, te pido lo acomodes en el lugar que corresponde gracias... |
Yo no soy moderador de Impresión, pero lo que sí te pediría es que editaras tu mensaje y utilizaras la etiqueta [ code ] ..... [ /code ] sin los espacios, para poner el codigo, ya que tantas lineas se hacen practicamente imposibles de seguir
gracias |
Hola:
Obdulia, aparte de lo que indica Cadetill para que se pueda leer mejor el código, ¿podrías indicar dónde tienes el problema o la duda, es decir, dónde falla? Así, a bote pronto, parece que funciona, aunque no lo he probado :), lo que quiero decirte es que para poder ayudarte sería necesario que nos dijeras qué es lo que falla, o si te salta un mensaje de error, o si da un resultado que no es el que esperas ... para poder entrarle a ese código. Un saludo |
No tengo problemas con el codigo que anexe considere necesario ponerlo porque los valores que arroja ese codigo es lo que yo necesito sumar y obtener los totales de lo que debo mandar comprar has de cuenta:
Dias Tipo_Bota Medida Cant_Bota Pantalon Cant_Panta Camisa Cant_camis 365 sc 9.5 2 32 4 16 4 200 cc 8 1 38 2 18.5 2 100 sc 8 1 32 1 18.5 1 sc = sin casquillo cs = con casquilloTotales Bota con Casquillo Talla cantidad 8 1 Bota sin Casquillo 8 1 9.5 2 Pantalon 32 5 38 2 Camisas 16 4 18.5 3 y asi sucesivamente tengo 700 empleados y no todos trabajan los 365 dias en el año por lo que no les corresponde la misma cantidad de uniformes..... no se si me di a entender espero sus comentarios gracias. |
Me cuesta entenderte, la verdad, quizás no sea tanto una cuestión del informe sino del método que usas para averiguar el número de uniformes que corresponden a cada empleado. ¿Lo haces mediante una consulta SQL? Si es que Sí, ¿qué consulta aplicas?
un saludo |
La franja horaria es GMT +2. Ahora son las 08:51:43. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi