https://foro.gambas-es.org/viewtopic.php?f=1&t=757 ----------------------------------- jousseph Jueves, 08 Julio 2010, 06:16 Como Hago Para Imprimir Una Tableview Y Guardar El Archivo En Pdf En Gambas ----------------------------------- Hola compañeros muy buenos dias quiero comentarles que estoy diseñando un sistema para el control de asistencia de asesores de una institucion y quisiera sabercomo haria yo para poder imprimir una tableview en gambas donde se ven los registros de los asesores y que lo pueda guardar en pdf les agradezco amigos. ----------------------------------- shordi Sabado, 10 Julio 2010, 18:57 Re: Como Hago Para Imprimir Una Tableview Y Guardar El Archivo En Pdf En Gambas ----------------------------------- El tema es complejo así planteado en bruto. Explórate el control gb.pdf y el control gb.report. Míra en los ejemplos de Gambas los relativos a la creación de pdf y luego inténtalo por cuenta. Si entonces tienes algún problema concreto o no sabes cómo hacer algo, exponlo aquí, que seguro que recibes ayuda más específica. Saludos ----------------------------------- Fenriz07 Domingo, 22 Agosto 2010, 21:18 Re: Como Hago Para Imprimir Una Tableview Y Guardar El Archivo En Pdf En Gambas ----------------------------------- [quote user="shordi" post="4203"]El tema es complejo así planteado en bruto. Explórate el control gb.pdf y el control gb.report. Míra en los ejemplos de Gambas los relativos a la creación de pdf y luego inténtalo por cuenta. Si entonces tienes algún problema concreto o no sabes cómo hacer algo, exponlo aquí, que seguro que recibes ayuda más específica. Saludos[/quote] Amigo en el libro de gambas, no hay una descripcion de ellos? ( el control gb.pdf y el control gb.report.) si lo hay me puedes decir en que capitulo estoy explorando el capitulo 3 pero me da la imprecion de que no esta Salu2 ----------------------------------- Invitado Domingo, 22 Agosto 2010, 23:41 Re: Como Hago Para Imprimir Una Tableview Y Guardar El Archivo En Pdf En Gambas ----------------------------------- Es que creo que son más nuevos esos componentes que el libro. ----------------------------------- jsbsan Lunes, 23 Agosto 2010, 00:00 Re: Como Hago Para Imprimir Una Tableview Y Guardar El Archivo En Pdf En Gambas ----------------------------------- Solucion que se me ocurre: Da un rodeo.... Te explico, "creas" un archivo index.html con la información de la tablaview, o lo que sea desees... y luego lo abres con el Firefox, lo imprimes en una impresora "virtual" de pdf. (tienes que instalar una impresora virtual de pdf antes, claro) Para crear un archivo .html, tienes que saber algo de html (tampoco mucho...)... puedes ver como lo hice yo en un programa (que creaba un informe y lo exportaba a html) [url=http://jsbsan.wordpress.com/2009/02/22/01-nueva-version-de-crear-indice-html-version-200/]version-de-crear-indice-html-version-2 [url=http://jsbsan.wordpress.com/2009/03/03/003-creando-el-archivo-html-12/]003-creando-el-archivo-html-1 de 2 [url=http://jsbsan.wordpress.com/2009/03/03/004-creando-el-archivo-indexhtml-22/]004-creando-el-archivo-indexhtml-2 de 2 Espero que te sirva... Saludos ----------------------------------- jousseph Jueves, 26 Agosto 2010, 05:13 Re: Como Hago Para Imprimir Una Tableview Y Guardar El Archivo En Pdf En Gambas ----------------------------------- Hola compañeros ya lo solucione lo hicey dure bastante, imagínense junto con la sentencia imprimir esto es una ganga. OBSERVEN: [code linenumbers=false syntax=gambas] PUBLIC SUB Form_Open() DIM i AS Integer DIM fila AS Integer DIM textos AS NEW String[] DIM numer AS Integer tabla.Header = TRUE ME.Center IF coneccion.conectarbase() THEN RETURN tabla.Clear() tabla.Columns.Count = 14 tabla.Columns[0].Text = "ID" tabla.Columns[1].Text = "codigo" tabla.Columns[2].Text = "cedula" tabla.Columns[3].Text = "nombres" tabla.Columns[4].Text = "apellidos" tabla.Columns[5].Text = "direccion" tabla.Columns[6].Text = "telefonos" tabla.Columns[7].Text = "sexo" tabla.Columns[8].Text = "programa" tabla.Columns[9].Text = "fecha_ingreso" tabla.Columns[10].Text = "fecha_asistencia" tabla.Columns[11].Text = "dia_semanas" tabla.Columns[12].Text = "hora_entrada" tabla.Columns[13].Text = "hora_salida" fila = fila + 1 tabla.Refresh END PUBLIC SUB reporte() 'variables a usar en el reporte DIM header AS ReportVBox DIM cont AS ReportHBox DIM lab AS ReportLabel DIM body AS ReportVBox DIM lab3 AS ReportLabel DIM colu AS ReportHBox DIM i, j AS Integer DIM foot AS ReportHBox DIM lab2 AS ReportLabel DIM pag AS ReportSpecialField DIM textos AS NEW String[] DIM numer AS Integer report.Clear 'configuracion del reporte Report.Orientation = Report.FillStyle Report.Resolution = Printer.Resolution Report.Padding = "1 cm" Report.Size = "A4" Report.Spacing = "10 mm" 'estructura del encabezado del reporte header = NEW ReportVBox(Report) header.LineStyle = Line.Solid header.Autoresize = TRUE header.ForeColor = Color.black header.FillColor = Color.Blue header.FillStyle = Fill.Solid 'texto del encabezado cont = NEW ReportHBox(header) cont.Autoresize = TRUE cont.Height = "0.10 cm" cont.Expand = TRUE lab = NEW ReportLabel(cont) lab.Font.Size = 15 lab.Font.Bold = 10 lab.ForeColor = Color.white lab.Alignment = Align.Center lab.Text = ("REPORTES PARA LA ASISTENCIA DE ASESORES") lab.Expand = TRUE 'estructura del cuerpo del reporte body = NEW ReportVBox(Report) body.LineStyle = Line.Solid body.ForeColor = Color.black body.Autoresize = TRUE colu = NEW ReportHBox(body) colu.Autoresize = TRUE colu.Spacing = "1 cm" foot = NEW ReportHBox(Report) foot.LineStyle = Line.Solid foot.Autoresize = TRUE foot.ForeColor = Color.black foot.FillColor = Color.LightGray foot.FillStyle = Fill.Solid foot.Spacing = "4 cm" lab2 = NEW ReportLabel(foot) lab2.Alignment = Align.Center lab2.Autoresize = TRUE lab2.Text = "Hora= " & Time lab2 = NEW ReportLabel(foot) lab2.Alignment = Align.Center lab2.Autoresize = TRUE lab2.Text = "Fecha= " & Date pag = NEW ReportSpecialField(foot) pag.Text = "Pagina $PAGE de $NPAGE" 'contenido del cuerpo del reporte FOR i = 0 TO tabla.Columns.Count - 1 lab = NEW ReportLabel(colu) lab.Text = tabla.Columns[i].Text lab.Font.Bold = TRUE lab.Autoresize = TRUE lab.Expand = TRUE lab.Alignment = Align.Center NEXT FOR i = 0 TO tabla.rows.Count - 1 colu = NEW ReportHBox(body) colu.Autoresize = TRUE colu.Spacing = "1 cm" FOR j = 0 TO tabla.Columns.Count - 1 lab = NEW ReportLabel(colu) lab.Text = tabla[i, j].Text lab.Autoresize = TRUE lab.Expand = TRUE lab.Alignment = Align.Center NEXT NEXT END PUBLIC SUB Button1_Click() reporte() Report.Preview END PUBLIC SUB Button3_Click() DIM ArchivoTemporal AS String DIM i AS Integer 'genero la estructura del reporte reporte() 'inicializo el archivo temporal ArchivoTemporal = Temp 'Inicio el objeto impresion para imprimir a un archivo Printer.File = ArchivoTemporal Printer.Size = report.Size Printer.Orientation = report.Orientation report.Resolution = printer.Resolution 'inicio el Trazado hacia el objeto printer Draw.Begin(Printer) Report.Layout 'recorro el numero de hojas del reporte FOR i = 1 TO Report.count Report.Draw(i) IF i < Report.count THEN Printer.NewPage() NEXT 'finalizo el trazado al buffer de impresora Draw.End 'uso el programa externo ps2pdf (de impresora a pdf) y genero el archivo en el home del usuario EXEC ["ps2pdf", ArchivoTemporal, User.Home &/ "reporte.pdf"] WAIT 'elimino el archivo temporal KILL ArchivoTemporal Message.Info("SE HA CREADO UN REPORTE EN PDF CON ÉXITO (GUARDADO EN HOME) ") END PUBLIC SUB Button2_Click() DIM ruta AS String DIM archivo AS File DIM i, j AS Integer ruta = User.Home &/ "reporte de asistencia.html" OPEN ruta FOR WRITE CREATE AS #archivo PRINT #archivo, "" PRINT #archivo, "Reporte en HTML de Asistencias" PRINT #archivo, "" PRINT #archivo, "" PRINT #archivo, " " PRINT #archivo, " " PRINT #archivo, " " PRINT #archivo, " " PRINT #archivo, " " PRINT #archivo, " " PRINT #archivo, " " PRINT #archivo, " " PRINT #archivo, " " PRINT #archivo, " " PRINT #archivo, " " PRINT #archivo, " " PRINT #archivo, " " PRINT #archivo, " " PRINT #archivo, " " FOR i = 0 TO tabla.rows.Count - 1 PRINT #archivo, " " FOR j = 0 TO tabla.Columns.Count - 1 PRINT #archivo, " " NEXT PRINT #archivo, " " NEXT PRINT #archivo, "
" PRINT #archivo, "

Listado de Asistencias

" PRINT #archivo, "
CodigoCedulaNombresApellidosDireccionTelefonoSexoProgramaFecha de IngresoFecha de AsistenciaDias de SemanaHora de EntradaHora de Salida/td>" PRINT #archivo, "
" & tabla[i, j].Text & "
" PRINT #archivo, "" PRINT #archivo, "" CLOSE #archivo Message.Info("SE HA CREADO UN REPORTE EN MODO HTML CON ÉXITO (GUARDADO EN HOME)") END PUBLIC SUB Button4_Click() DIM i AS Integer 'genero la estructura del reporte reporte() printer.Setup Printer.Size = report.Size Printer.Orientation = report.Orientation report.Resolution = printer.Resolution 'inicio el Trazado hacia el objeto printer Draw.Begin(Printer) Report.Layout 'recorro el numero de hojas del reporte FOR i = 1 TO Report.count Report.Draw(i) IF i < Report.count THEN Printer.NewPage() NEXT 'finalizo el trazado al buffer de impresora Draw.End END PUBLIC SUB Button5_Click() ME.Close END PUBLIC SUB tabla_Click() END PUBLIC SUB Button6_Click() DIM fila AS Integer coneccion.asisresul = coneccion.asiscon.Exec("Select *from asistencia_asesores") fila = 0 DO WHILE coneccion.asisresul.Available tabla.Rows.Insert(fila) tabla[fila, 0].Text = coneccion.asisresul["ID"] tabla[fila, 1].Text = coneccion.asisresul["codigo"] tabla[fila, 2].Text = coneccion.asisresul["cedula"] tabla[fila, 3].Text = coneccion.asisresul["nombres"] tabla[fila, 4].Text = coneccion.asisresul["apellidos"] tabla[fila, 5].Text = coneccion.asisresul["direccion"] tabla[fila, 6].Text = coneccion.asisresul["telefonos"] tabla[fila, 7].Text = coneccion.asisresul["sexo"] tabla[fila, 8].Text = coneccion.asisresul["programa"] tabla[fila, 9].Text = coneccion.asisresul["fecha_ingreso"] tabla[fila, 10].Text = coneccion.asisresul["fecha_asistencia"] tabla[fila, 11].Text = coneccion.asisresul["dias_semana"] tabla[fila, 12].Text = coneccion.asisresul["hora_entrada"] tabla[fila, 13].Text = coneccion.asisresul["hora_salida"] coneccion.asisresul.MoveNext() fila = fila + 1 LOOP tabla.Refresh END PUBLIC SUB Button7_Click() tabla.Clear END [/code] Si quieren algo mas me dicen y les paso lo demás ok. ----------------------------------- jsbsan Jueves, 26 Agosto 2010, 08:10 Re: Como Hago Para Imprimir Una Tableview Y Guardar El Archivo En Pdf En Gambas ----------------------------------- jousseph: ¿podias pasar el codigo fuente completo y los archivos necesarios (base de datos, aunque este vacia)? se que te pido mucho.. pero seria para ver el programa al completo y estudiar su funcionamiento. (es que en el tema de bases de datos estoy algo perdido, y me gustaria ver como interactua los controles con la base de datos) De todos modos, gracias, un gran aporte para la comunidad Jsbsan ----------------------------------- Fenriz07 Viernes, 26 Noviembre 2010, 19:23 Re: Como Hago Para Imprimir Una Tableview Y Guardar El Archivo En Pdf En Gambas ----------------------------------- Primero salu2 a todos por temas de mi universidad no habia volvido a postear, pero ya estoy de vacaciones y bueno e vuelto a la comunidad, De nuevo un cordial saludo a todos y a todas :) Volviendo al tema jousseph: Amigo me parece muy interesante tu codigo y seria de una gran utilidad para la comunidad y para mi verlo, como dice Jsbsan[quote user="jsbsan" post="5124"]jousseph: ¿podias pasar el codigo fuente completo y los archivos necesarios (base de datos, aunque este vacia)? se que te pido mucho.. pero seria para ver el programa al completo y estudiar su funcionamiento. (es que en el tema de bases de datos estoy algo perdido, y me gustaria ver como interactua los controles con la base de datos) De todos modos, gracias, un gran aporte para la comunidad Jsbsan[/quote] Muchas gracias amigo y salu2 ----------------------------------- Dani26 Martes, 25 Enero 2011, 01:51 Re: Como Hago Para Imprimir Una Tableview Y Guardar El Archivo En Pdf En Gambas ----------------------------------- Compañero, algunas preguntas: ¿qué tipo de base de datos usas? ¿tabla es un gridview? ¿Podrías postear el código fuente? Sería genial para los que estamos aprendiendo. Muchas gracias por tu aporte. Saludos Daniel :roll: