Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

generar reporte en word

Estas en el tema de generar reporte en word en el foro de Visual Basic clásico en Foros del Web. Hola, en esta oportunidad queria saber si se puede generar un reporte en word (una factura por ejemplo), es que no me gusta ni un ...
  #1 (permalink)  
Antiguo 09/05/2008, 17:31
 
Fecha de Ingreso: abril-2008
Mensajes: 425
Antigüedad: 16 años
Puntos: 2
generar reporte en word

Hola, en esta oportunidad queria saber si se puede generar un reporte en word (una factura por ejemplo), es que no me gusta ni un poco el datareport y el crystal es demasiado complejo, sobre todo para los que nos estamos iniciando.
Si se puede, necesitaria una orientacion para empezar y si no un consejo de que usar, necesito que me traiga datos con instrucciones de Sql desde una bd de access.
desde ya gracias...
  #2 (permalink)  
Antiguo 13/05/2008, 10:02
Avatar de GeoAvila
Colaborador
 
Fecha de Ingreso: diciembre-2003
Ubicación: Antigua Guatemala
Mensajes: 4.032
Antigüedad: 20 años, 4 meses
Puntos: 53
Re: generar reporte en word

m.. lo mejor es usar crystal reports, facil de usar y encontras mucha ayuda en google..

nos vemos..
__________________
* Antes de preguntar lee las FAQ, y por favor no hagas preguntas en las FAQ
Sitio http://www.geoavila.com twitter: @GeoAvila
  #3 (permalink)  
Antiguo 13/05/2008, 11:03
 
Fecha de Ingreso: abril-2008
Mensajes: 425
Antigüedad: 16 años
Puntos: 2
Re: generar reporte en word

gracias por la respuesta, el tema es que solo podemos usar los recursos del instituto, por eso se me ocurrio el word porque el crystal no esta.

Si no quisiera saber si se podria usar el crsytal sin tenerlo instalado en la pc
  #4 (permalink)  
Antiguo 13/05/2008, 12:19
Avatar de GeoAvila
Colaborador
 
Fecha de Ingreso: diciembre-2003
Ubicación: Antigua Guatemala
Mensajes: 4.032
Antigüedad: 20 años, 4 meses
Puntos: 53
Re: generar reporte en word

Cita:
Iniciado por analoyra Ver Mensaje
gracias por la respuesta, el tema es que solo podemos usar los recursos del instituto, por eso se me ocurrio el word porque el crystal no esta.

Si no quisiera saber si se podria usar el crsytal sin tenerlo instalado en la pc
Usa los datareport es lo mejor que podes hacer que usar word. o bien tambien pode hacerlo enviando a imprimir con
printer.print
printer.end(revisa la sintaxis), que es enviar directamente a imprimir

nos vemos..
__________________
* Antes de preguntar lee las FAQ, y por favor no hagas preguntas en las FAQ
Sitio http://www.geoavila.com twitter: @GeoAvila
  #5 (permalink)  
Antiguo 13/05/2008, 16:29
 
Fecha de Ingreso: abril-2008
Mensajes: 425
Antigüedad: 16 años
Puntos: 2
Re: generar reporte en word

Lo que hago si son listados simples es usar un listview y uso el printer para imprimir, pero el problema es que tengo que hacer una factura y el dataenviroment me da muchos problemas. Por eso estoy buscando otra alternativa o saber como se hace un datareport sin el enviroment
gracias
  #6 (permalink)  
Antiguo 14/05/2008, 01:11
Colaborador
 
Fecha de Ingreso: enero-2008
Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 16 años, 3 meses
Puntos: 37
Re: generar reporte en word

No necesitas el Data Environment para nada, lo puedes hacer por código. Como bien dices el Data Environment dá muchos problemas (yo siempre aconsejo no utilizarlo).

En el diseño del DataReport dejas en blanco las propiedades DataSource y los rptTextBox sin asignarles el DataField (es decir, no enlazado).

Y en el Click del Command_mostrar abres un recordset con los datos que quieras mostrar y le asignas los valores de los campos a los rptTextBox y el propio recordset a la propiedad DataSource del DataReport.

  #7 (permalink)  
Antiguo 14/05/2008, 08:20
 
Fecha de Ingreso: abril-2008
Mensajes: 425
Antigüedad: 16 años
Puntos: 2
Re: generar reporte en word

Jaja, parece que estas de suerte conmigo!!! te agradezco la respuesta. lo voy a probar
  #8 (permalink)  
Antiguo 14/05/2008, 11:04
 
Fecha de Ingreso: abril-2008
Mensajes: 425
Antigüedad: 16 años
Puntos: 2
Re: generar reporte en word

hola Avellaneda, lo probe pero no me deja insertar los rptlabel en ningun lado, y otra cosa, lo que estoy armando es un encabezado de factura, despues necesito
agregar los articulos, puedo anidar los datareport? no se si me explico. gracias de antemano
  #9 (permalink)  
Antiguo 14/05/2008, 12:36
Colaborador
 
Fecha de Ingreso: enero-2008
Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 16 años, 3 meses
Puntos: 37
Re: generar reporte en word

Cita:
Iniciado por analoyra Ver Mensaje
hola Avellaneda, lo probe pero no me deja insertar los rptlabel en ningun lado, y otra cosa, lo que estoy armando es un encabezado de factura, despues necesito
agregar los articulos, puedo anidar los datareport? no se si me explico. gracias de antemano

No entiendo a qué te refieres con "no me deja insertar los rptlabel en ningun lado"

¿Estás hablando del DataReport en diseño?

  #10 (permalink)  
Antiguo 14/05/2008, 20:09
 
Fecha de Ingreso: abril-2008
Mensajes: 425
Antigüedad: 16 años
Puntos: 2
Re: generar reporte en word

si, cuando abro el datareport y le quiero insertar un rptlabel no me deja hacerlo en ninguna parte del reporte... como si estuviera deshablitada
  #11 (permalink)  
Antiguo 15/05/2008, 02:19
Colaborador
 
Fecha de Ingreso: enero-2008
Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 16 años, 3 meses
Puntos: 37
Re: generar reporte en word

Prueba alguna de estas dos solucciones:

1ª.- Click con en botón derecho del ratón en cualquier barra de título de sección.
En el menú emergente, desmarcas la opción "Forzar a la cuadrícula".

2ª.- Click con el botón derecho del ratón en la barra de título de la sección donde quieras insertar el rptLabel.
En el menú emergente, seleccionas "Insertar control" y a continuación "Etiqueta", creará un rptLabel en la sección indicada, lo ajustas al tamaño y posición que quieras.

  #12 (permalink)  
Antiguo 15/05/2008, 10:34
 
Fecha de Ingreso: abril-2008
Mensajes: 425
Antigüedad: 16 años
Puntos: 2
Re: generar reporte en word

Hola Avellaneda!! Funciono, ahora lo que hice fue generar una consulta en un command.
y a datareport1.etiqueta= rs(1) 'le asigno el recordset
y en las propiedades del datareport en datasource va rs?? ahi es donde me perdi.. o me perdi antes??
  #13 (permalink)  
Antiguo 15/05/2008, 11:04
Colaborador
 
Fecha de Ingreso: enero-2008
Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 16 años, 3 meses
Puntos: 37
Re: generar reporte en word

Efectivamente analoyra, tienes que asignar el recordset a la propiedad DataSource del DataReport:

Código:
Set DataReport1.DataSource = rs

With DataReport1.Sections("Section2").Controls     ' encabezado de página
    .Item("Label1").Caption = rs.Fields(0)
    .Item("Label2").Caption = rs.Fields(1)
    .Item("Label3").Caption = rs.Fields(2)
    ' etc.....
End With
Nota: Si lo tienes en español, sustituye "Section2" por "Sección2" y "Labelx" por "Etiquetax"

  #14 (permalink)  
Antiguo 15/05/2008, 11:32
 
Fecha de Ingreso: abril-2008
Mensajes: 425
Antigüedad: 16 años
Puntos: 2
Re: generar reporte en word

Ahora vamos mejor... pero me tira un error que el datafield esta vacio cuando carga el report
yo le sigo el camino con F8 y el rs.field toma el dato, pero el caption parce que no,
Gracias por la paciencia!!!!!
  #15 (permalink)  
Antiguo 15/05/2008, 11:36
Colaborador
 
Fecha de Ingreso: enero-2008
Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 16 años, 3 meses
Puntos: 37
Re: generar reporte en word

Claro, no puedes mostrar el DataReport si antes no has asignado los campos en la Sección detalle.
Ten en cuenta que el DataReport siempre tiene que estar en lazado a datos.

  #16 (permalink)  
Antiguo 15/05/2008, 11:39
Avatar de ginitofl  
Fecha de Ingreso: diciembre-2006
Ubicación: Lima Perú
Mensajes: 349
Antigüedad: 17 años, 4 meses
Puntos: 22
Re: generar reporte en word

Hola veo que muchos tienen ese mismo problema de mostrar una factura, bueno Ana hare un ejemplo sencillo de hacer una factura para imprimirlo con el data report, en realidad es sencillo hare un pequeño tutorial para todos en estos dias.

Saludos.

P.D.:
Dime con que tablas estas trabajando, yo trabajo normalmente con cuatro tablas que son: clientes, productos, cabecera y detalle.

Última edición por ginitofl; 15/05/2008 a las 11:41 Razón: Tablas
  #17 (permalink)  
Antiguo 15/05/2008, 11:59
 
Fecha de Ingreso: abril-2008
Mensajes: 425
Antigüedad: 16 años
Puntos: 2
Re: generar reporte en word

Avellaneda, esto es lo que hice, todo muy basico para probarlo, fijate por favor a donde le erre
los campos ya estan en el datareport, como etiqueta1 y 2
Call Conecta
Rs.Open "select *from cliente where cli_nom='anabel'", cn, adOpenStatic, adLockOptimistic
Set DataReport3.DataSource = Rs
With DataReport3.Sections("seccion1").Controls ' encabezado de página
.Item("etiqueta1").Caption = Rs.Fields(1)
.Item("etiqueta2").Caption = Rs.Fields(2)

End With
DataReport3.Show

ginitofl, estaria muy bien el tutorial sin el dataenviroment, las tablas que propones estarian muy bien
Gracias a los 2!!!
  #18 (permalink)  
Antiguo 15/05/2008, 12:07
Avatar de GeoAvila
Colaborador
 
Fecha de Ingreso: diciembre-2003
Ubicación: Antigua Guatemala
Mensajes: 4.032
Antigüedad: 20 años, 4 meses
Puntos: 53
Re: generar reporte en word

Cita:
Iniciado por ginitofl Ver Mensaje
Hola veo que muchos tienen ese mismo problema de mostrar una factura, bueno Ana hare un ejemplo sencillo de hacer una factura para imprimirlo con el data report, en realidad es sencillo hare un pequeño tutorial para todos en estos dias.

Saludos.

P.D.:
Dime con que tablas estas trabajando, yo trabajo normalmente con cuatro tablas que son: clientes, productos, cabecera y detalle.
excelente yo hace mucho tiempo que ya no uso datareports por distintos problema que regularmente presenta, pero bueno... sería muy bien recibido tu material.

nos vemos..
__________________
* Antes de preguntar lee las FAQ, y por favor no hagas preguntas en las FAQ
Sitio http://www.geoavila.com twitter: @GeoAvila
  #19 (permalink)  
Antiguo 15/05/2008, 12:14
Colaborador
 
Fecha de Ingreso: enero-2008
Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 16 años, 3 meses
Puntos: 37
Re: generar reporte en word

No analoyra, es que el encabezado de página es la "Sección2", la "Sección1" es la de detalle.

Mira, te pongo un sencillo ejemplo comentado, para que lo adaptes a tus necesidades (en el diseño del DataReport todos los campos Texto y Etiqueta están vaciós)


Código:
Private Sub Command1_Click()
Dim rs As ADODB.Recordset
Set rs = New ADODB.Recordset
With rs
    .ActiveConnection = "Provider=Microsoft.jet.OLEDB.4.0;Data Source=" & _
            App.Path & "\Ventas.mdb"
    .CursorType = adOpenStatic
    .CursorLocation = adUseClient
    .Open "Select * from Facturas"
End With
With DataReport1
    With .Sections("Sección1").Controls
        ' sección "detalle" = Artículos de la factura
        .Item("Texto1").DataField = rs("Articulo").Name
        .Item("Texto2").DataField = rs("Descripción").Name
        .Item("Texto3").DataField = rs("Importe").Name
        ' ... etc
    End With
    With .Sections("Sección2").Controls
        ' sección "encabezado de página"
        ' Nota: aquí normalmente irían una serie de etiquetas con los
        ' datos del cliente, que se pueden obtener del mismo o de otro recordset.
        ' (aplica lo que te puse en el post anterior)
        .Item("Etiqueta1").Caption = "Nombre Cliente"
        .Item("Etiqueta2").Caption = "Dirección"
    End With
    Dim sPath As String
    sPath = App.Path & "\MiLogo.jpg"
    With .Sections("Sección4")
        ' sección "encabezado de informe", le ponemos nuestro Logo
        Set .Controls("Image1").Picture = LoadPicture(sPath)
    End With
    With .Sections("Sección5").Controls
        ' sección "pié de informe", ponemos la suma total del campo "Importe"
        ' Nota: La propiedad FunctionType de "Función1" es rptFuncSum
        .Item("Función1").DataField = rs("Importe").Name
    End With
End With
Set DataReport1.DataSource = rs
DataReport1.Show
End Sub
Espero que te sirva de orientación, si tienes alguna duda indícalo.



Nota: Ahora me tengo que ausentar por unas horas.
  #20 (permalink)  
Antiguo 15/05/2008, 12:43
 
Fecha de Ingreso: abril-2008
Mensajes: 425
Antigüedad: 16 años
Puntos: 2
Re: generar reporte en word

BUA!! sigo igual,
Call Conecta
Rs.Open "select *from comprobante ", cn, adOpenStatic, adLockOptimistic

With DataReport3
With .Sections("Seccion2").Controls
.Item("Etiqueta1").Caption = Rs.Fields(1)
End With
End With
Set DataReport3.DataSource = Rs
DataReport3.Show
End Sub

y en datareport3 seccion2 puse una etiqueta1..... y me sigue saliendo el cartel de "datafield vacio" incluso en lugar de rs.field(1) puse "Anabel"............pero igual....
  #21 (permalink)  
Antiguo 15/05/2008, 14:09
 
Fecha de Ingreso: abril-2008
Mensajes: 425
Antigüedad: 16 años
Puntos: 2
Re: generar reporte en word

Bueno, no se que paso, pero borre tooodoooo!! e hice un datareport nuevo y funciono!!! gracias al sudor y la paciencia de todos ustedes

Ahora lo que necesito hacer es crear los detalles de las compras, es decir necesitaria otro recorset para otra consulta. En realidad tengo que hacer 3 consultas, cliente, comprobante,articulos.
gracias de antemano

Última edición por analoyra; 15/05/2008 a las 14:44
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:51.