Visual Basic Foro
Programación => Bases de Datos => Mensaje iniciado por: Ozcarj en Mayo 25, 2011, 06:17:02 pm
-
Bueno primeramente un saludo a todos los compañeros del foro, mi duda es la siguiente:
Como puedo realizar un informe en DATAREPORT la cual tenga un subtotal por página tal como se ve abajo
Página 1
Ventas_________Importe
01/01/2011_______10.00
02/01/2011_______20.00
03/01/2011_______30.00
==================
Subtotal:_________60.00
Página 2
Ventas_________Importe
04/01/2011_______10.00
05/01/2011_______10.00
06/01/2011_______10.00
==================
Subtotal:_________30.00
Página 3
Ventas_________Importe
07/01/2011_______50.00
08/01/2011_______50.00
==================
Subtotal:_________100.00
==================
Total General:_____190.00
Muchas gracias por anticipado a quién me podria sacar la duda.
Saludos
Oscar J. Crespo
La Paz Bolivia
-
En primer lugar: esto va en el foro de bases de datos.
En segundo lugar: para poder hacer eso debes de crear grupos en tu data repor; en el final del grupo tienes que introducir una función de autosuma y le das que campo tiene que sumar.
Aunque te recomiendo que uses crystal report 8.5 ;)
-
Lo que dice Wolf es correcto, debes hacer los grupos. Yo uso DataReport, pero si puedes migrar a Cristal seria mejor, igual yo me quedo con el DR.
Saludos
-
Aunque te recomiendo que uses crystal report 8.5 ;)
Definitivamente...! Aunque el Daddy de Quentas ama a Datareports, digamos que recomiendo ampliamente el uso de Crystal...!
Por otro lado, para hacer lo que dices, debes crear un grupo y en el pie del grupo aplicarle un SUM al importe y te generara el total..! No estoy muy metido en el tema con el datareports, pero se que se puede hacer..! Saludos
-
El daddy de quentas jajajaj... me gusto, creo que te lo voy a piratear.
Con Datareport (DR en adelante) se puede hacer los subtotales haciendo grupos, ejemplo:
(http://de9cbw.bay.livefilestore.com/y1pl9gQGATtpOxBiquYYe2Xd3alnqyRJX77LWxL31HKbNVyOCnDOy_7gwXub7GyKVGtkUZ2N3fKYhkh1jYBb2qPv1SQXLxQsRq-/Dr1.JPG?psid=1)
y si quieres meter gráficas tambien:
(http://de9cbw.bay.livefilestore.com/y1pKUwymHwDVSEiD8N9VNEuUVz-zsnWdwJEXMj7gr3I0ZbMs4TrFMyVBlshLE3tTNcVCSFb7yEQ90u6T6zcWD5oQ5RtvdHYN8cg/Dr2.JPG?psid=1)
o poner el reporte horizontal, o hacer tickets, facturas, etc, es decir, se puede hacer casi de todo con DR o en todo caso no he encontrado algo que no pueda hacer con DR y si con Crystal, quizá lo halla no lo se pero para la mayoría de casos basta y sobra con DR.
Sin embargo los entendidos en casi todos los foros que he leído recomiendan largamente el Crystal (ojo que a veces es pq no han explorado el DR) y por eso si te es posible ir a ese entorno te recomiendo también que lo hagas. No necesariamente lo mas famoso es lo mejor en muchos casos... ejemplo: FirebirdSQL
Principalmente el tema de licencia haría quedarte en DR o me parece también que el cliente podría con Cristal manipular externarmente el reporte y con DR esto no se puede hacer pq el DR esta integrada en la aplicación.
-
Muchas gracias todo po sus comentarios, pero bueno lo que necesito es el subtotal por pagina; es decir que me sume solo los datos que se ve en la pagina. ya que es el formato del libro de ventas y compras y no debo tener grupos más que por periodos; y si me ayudo mucho en mis otros reportes la agrupación por los analisis.
-
Eso a mi también me interesa saber, creo que allí si hay una limitante del DR y que quizá CR lo pueda resolver de manera mas sencilla.
Ahora, si un cliente me pidiese eso y esta muy apegado a las cuestiones formales de licencia y no quiere comprar la licencia de CR, entonces me vería obligado a hacerlo de manera "manual", mm algo asi.
Previo. Agregar un campo adicional vació a mi tabla ej llamado IdRep o Crear una nueva tabla vacía con ese campo y en ese caso haria Insert.
1.- Hacer la consulta... ejemplo me arroja 6050 registros
Asumimos por ejemplo 60 registros por pagina.
2.- A nivel de ADO, haciendo un for next actualizamos el IdRep de la consulta (no la tabla) cada 60 registros un nuevo valor: 1, 2, 3...100, 101 (los registros del 6001 al 6050 tendria el valor 101)
3.- En el diseño de reporte ya tenemos agrupado por IdRep para hacer el sum, de tal manera que siempre tendre hasta 60 registros por cada hoja con su respectivo sum por hoja y la ultima hoja tendra solo de 50.
Al final (la hoja 101) le metes un Gran Total y listo.
Habría que pulir alguna cosilla en diseño y quiza la generacion de reporte sea adicionalmente a la complejidad de la consulta un pelo mas lento.
-
Metete en el Pagefooter e insertas una función, busca el tema en google, creo que es mas facil con una función que estar haciendo un for (con todo respeto YvanB, por cierto me gusta tu imagen jeje) es mas sencillo y el autosumado lo hace de inmediato..... ;)
-
Doc, no me entendiste, pero lo que el quiere (es lo que entendi) es otra cosa. Mira:
Cuando haga su consulta y le bote una cantidad de registros que será desconocida, sea al final de cada hoja que le de una suma, por supuesto que en el pagefooter va a ir la función de autosuma, el for que indique no es para sumar, sino para crear grupos que calcen exactamente en una hoja ya que no sabemos cuantos registros nos da una consulta.
Esto no se tendría que hacer si el mismo datareport tuviera alguna funcion o propiedad que nos permita a nosotros decidir cuantos registros queremos ver por hoja o poner sumas no por grupos sino por hojas, pero eso hasta donde se no existe en datareport... supongo que el Crystal Report tendra una solución a ello.
p.d.: Celebro tu buen gusto jejeje.
-
no creo que me estes entendiendo eL DR tienc esa funcion solo hay gue buscar un qoco ya que yo me acuevoW arevlo hecrw en el Pasacdo Pava un rePorfe lavojo ha-1 olos finales de Payinoi el E rat de final de reqorte y el final de Payina yo esloy hablauolo del final de pagine
-
Que pasho doc???
"un qoco ya que yo me acuevoW arevlo hecrw en el Pasacdo Pava un rePorfe lavojo..."
tas con tragos???? invita pe!!!. :)
No amigo Wolf, no existe una funcion que te sume por pagina que ya venga en el DataReport, te reto a que lo demuestres y si lo haces hago lo que quieras, te pido perdón de rodillas, te envío 10 cajas de "chelas" heladas, declaro ser tu esclavo por un mes, lo que quieras jeje.
El único control de funciones (sumas, promedio, min, max, etc) es el RptFunction y su única chamba es hacer sus funciones en el pie de grupo, no en el pie de página. Claro, tambien al final del reporte en la sección ReportFooter para los totales finales.
Fe de erratas: solo debo corregir algo que escribí sin percatarme, mencionaste poner el control de autosuma en PageFooter y yo escribí que si, pues no, uso desde hace años el DR y se me paso cuando dije si. No poner en PageFooter una función no es allí porque esa sección no admite ningún control de enlace a datos ni controles de autosuma u otros, solo etiquetas.
El campo de suma que yo indique es para el pie de Grupo y lo que pretendo generar es que el grupo ocupe casi toda la hoja que es lo que me parece quiere hacer el Ozcarj.
Ahora, releyendo su petición, quizá lo que el quiere es algo mas sencillo, o sea, que no le interese necesariamente que llegue hasta el final de la pagina, sino que por cada grupo corte a la siguiente pagina en ese caso solo tendrás que trabajar con las secciones y poner tu sección de grupo de RptPageBreakNone (esta por omisión) a RptPageBreakBefore o After según sea el caso. Me parece que el único problema que tendrías es que si tu grupo tiene mas de 60 registros (siguiendo el ejemplo anterior) te cortara en la siguiente hoja y volverias a tener el mismo problema materia de este entretenido post.
Saludos
-
Jajajaja no estaba con mis chelas YvanB lo que pasa es que estaba escribiendo del movil y estaba algo ocupado!!! pero te acepto el reto!!!! :D aunque desde el sabado!!! tendras respuestas ya que yo me acuerdo haberlo hecho con anterioridad!!!
Cualquier cosa si gano o pierdo te hago saber!!! si gano para que te vengas de rodillas hasta guatemala a pedirme perdon!!! jeje y si pierdo psss ;)
-
Listo, corren las apuestas!!! Quien da mas??? jejeje.
Por si aca voy averiguando sobre vuelos a Guatemala jejeje pero para ir a cobrarte lo mismo .... aunque no me molestaria recibir tu blackberry :P jajaja
Saludos
-
Ozcarj, al final que opción vas a tomar? ya que es evidente que con DR de forma natural no se puede hacer.
Los que conocen y usan el Cristal Report me podrían asegurar que la funcionalidad de sumar por paginas y no por grupos ¿existe alli?. Porque yo lo estuve asumiendo pero no lo he comprobado porque no uso el CR. Miguelin, creo que tu nos podrías confirmar o no si se puede hacer eso en CR.
Saludos
-
Si van a tomar, me invitan..! Tomo chelas..! Jajaja
Y si se puede hacer...! Sumar por grupos, paginas, todo..! ;D
-
Ya doc sale, tas invitado... cuando wolf traiga la prueba jeje... que malo... no mentira broma.
Oye doc, si te animas a hacer un cursito de CR avisas porque igual me gustaria saber de ello, si lo haces por Teamviewer si quieres yo puedo grabarlo y luego subirlo como vídeo previamente editado.
Saludos
-
ok YvanB solo voy a mandarte a que rebises un ejemplo de un sistema que yo postee hace rato se llama softmega busca en los reportes de administracion y encontraras tu reporte.
ahora con respectoa la gran diferencia de dr y cr no es en lo que puedas acer aunque sinceramente el cr tiene mucho mas recurso. si no que la forma facil de cr en el manejor de como crear los reportes en primer ejemplo: intenta hacer una cuadricula con datos, en dr tienesbque dibujar linea por linea mientras que en cr es un cuadrado en el cul abarca el detalle como el titulo del informe espero haber resuelto la duda y el problema.
-
Que tal doc, vamos por partes como dijo Tupac Amaru (a quien le quitaron piernas y brazos)
ok YvanB solo voy a mandarte a que rebises un ejemplo de un sistema que yo postee hace rato se llama softmega busca en los reportes de administracion y encontraras tu reporte.
Revise tu programa, me diste lata pa registrar 6 ocx pero ya jeje, no importa, con tal de ver lo que me querías mostrar. Revise directamente el reporte (revise los 5) y NO HAS DEMOSTRADO lo que tenias que demostrar amigo, en absoluto.
Te explico, en los pie de pagina tu tienes etiquetas, pero las etiquetas no las controlas por página, nica (bueno salvo %p, %P, %T y %D que ya sabemos para que es: fecha, número de pagina, etc).
Las funciones (sumas) las tienes en el PIE DE INFORME no en el Pie de Pagina que es lo se quería (obvio no se podia pq el DR no lo admite).
Un informe puede ser 1 hoja o 5 hojas, si son 5 hojas la suma saldrá en la quinta hoja y no queríamos eso, queríamos la suma en cada hoja de cada una de las 5 hojas, no se si me vas captando, y al final del informe ya puede ir la suma total de todas las hojas. Te muestro uno de tus reportes, iba a hacer de los demas pero creo que basta con uno de los reportes porque el otro reporte es igual y en el reporte de pedido en pie de pagina tienes solamente etiquetas.
(http://de9cbw.bay.livefilestore.com/y1pO0MVneLUGbrxaCYhLSruh5lbExmSGTLle4reT-Xt61Vl3iNQjNH2AGrax1ZRWW_l1efuxA3-PTP2PY_UJdLenLvcZJtgiZnv/Rep2.JPG?psid=1)
Entonces mi estimado me debes unas chelas :):):)
Doc, de verdad, no son ganas de joder de mi parte, pero con el DR no podrás de manera natural hacer sumas al final de cada hoja, yo acepto que esa es una limitación de DataReport y quizá te confundiste obteniendo reportes de 1 sola hoja, pero te digo ninguno de los reportes del programa SOFTMEGA no tiene (pq no existe) sumas por pagina.
ahora con respectoa la gran diferencia de dr y cr no es en lo que puedas acer aunque sinceramente el cr tiene mucho mas recurso. si no que la forma facil de cr en el manejor de como crear los reportes en primer ejemplo: intenta hacer una cuadricula con datos, en dr tienesbque dibujar linea por linea mientras que en cr es un cuadrado en el cul abarca el detalle como el titulo del informe...
Así es, dibujar en DR un cuadrado que toque varias secciones es una lata, si toca una sección no hay ningún problema es sencillísimo, pero estoy seguro que el CR hace mas que hacerme los cuadrados mas fáciles y es lo que me gustaría saber, después de terminar mi cursito de java le daré por mi cuenta una checada al Cristal Report. Me parece que una de las cosas que tiene el Cristal es que puedes crear los reportes fuera de tu sistema, bastara con saber el usuario la contraseña y saber de que tablas tomar la información para armar tu reporte, ideal para las empresas que quieren hacer sus propias consultas sin llamar al desarrollador, esos temas seria bueno tocarlo en otro hilo.
... espero haber resuelto la duda y el problema.
No doc :), no has resuelto ni la duda ni el problema :P porque para mi, no existe ninguna duda ni problema sobre este tema, había curiosidad para ver que me mostrabas y lógicamente un poco de ganas de joder amigo jeje mentira.
Un abrazo.
p.D: Fíjate que se me paso y no me había percatado de que se ve muy bien poner el reporte dentro del MDI, y lo otro es que modificas desde el DataGrid los datos de la BD, yo quiero hacer eso pero sin usar el Adodc1 ya veré como.
Saludos