• Sábado 21 de Diciembre de 2024, 17:22

Autor Tema:  Re: DataReport  (Leído 12013 veces)

pabloegea

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Re: DataReport
« en: Miércoles 18 de Junio de 2003, 15:29 »
0
como puedo pasar datos de una flexgrid a un datareport.
Tengo un proceso que envía los resultados de un recordset a una grilla, esto lo quiero imprimir en un reporte.

probé pasar los resultados a una tabla y luego hacer un reporte de esta, pero los datos no refrescan hasta que no cierro la aplicación,
Ayuda!!! gracias amigos!:beer:

Angel-Mayor

  • Nuevo Miembro
  • *
  • Mensajes: 15
    • Ver Perfil
Re: DataReport
« Respuesta #1 en: Jueves 21 de Agosto de 2003, 09:26 »
0
Mira vi lo que escribiste, y si te decidiste por pasar los datos que tenias en el Flexgrid a una tabla, pues yo te puedo dar la soluciòn para que el reporte se actualize inmediatamente despues que ingreses los datos a la tabla, solo haz esto,...


on error resume next
dataenvironment1.rscommand1.requery
datareport1.refresh
datareport1.show

("Toma en cuenta que rscommand1 se refiere al nombre que le pongas al comando con el que haces referencia  a la tabla en el dataenvironment1, quiere decir que si al comando le pones REPORTE, al momento de escribir el codigo anterior haras refencia asi rsREPORTE, y en la parte de datareport1, es el nombre que tu le das a la Hoja del Reporte  o al diseño")


Bueno espero te sirva de algo, o si ya lo solucionaste de otra forma bien por ti, de todos modos no te caeria mal esta ayuda en alguna otra duda que tengas.


SUERTE

giomar

  • Miembro MUY activo
  • ***
  • Mensajes: 270
    • Ver Perfil
DataReport
« Respuesta #2 en: Jueves 21 de Agosto de 2003, 19:00 »
0
Bueno no se como esta cargando el FlexGrid, pero supongamos que utilizas un RecordSet para ello, entonces para llenar el FlexGrid debes utilizar algo parecido a esto:
'en el general
Dim cnFarma As New ADODB.Connection
Dim rsPrecios As New ADODB.Recordset

Private Sub Form_Load()
Set cnFarma = New ADODB.Connection
ruta = App.Path + "DB.mdb"
cnFarma.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + ruta
Set rsPrecios = New ADODB.Recordset
rsPrecios.CursorLocation = adUseClient
rsPrecios.Open "SELECT idarticulo,descripcion, precio  FROM articulo order by descripcion", cnFarma, adOpenStatic, adLockReadOnly
rsPrecios.MoveFirst
MSFlexGrid1.Rows = 1
MSFlexGrid1.Clear
MSFlexGrid1.FormatString = "<Codigo" & Space(20) & "|<Descripcion" & Space(20) & "|<Precio "
Do While Not rsPrecios.EOF
    MSFlexGrid1.AddItem rsPrecios.Fields(0).Value & vbTab & rsPrecios.Fields(1).Value & vbTab & rsPrecios.Fields(2).Value
    rsPrecios.MoveNext
Loop
End Sub

'y para trasladar los datos al datareport:
Private Sub cmdImprimir_Click()
On Error Resume Next
With dtrPrecios
    For fila = 1 To MSFlexGrid1.Rows - 1
        For columna = 1 To MSFlexGrid1.Cols - 1
            .Sections("Sección1").Controls("txtCodigo") = MSFlexGrid1.TextMatrix(fila, columna)
            .Sections("Sección1").Controls("txtDescripcion") = MSFlexGrid1.TextMatrix(fila, columna)
            .Sections("Sección1").Controls("txtPrecio") = MSFlexGrid1.TextMatrix(fila, columna)
        Next columna
    Next fila
    Set .DataSource = rsPrecios
    .Show
End With
End Sub
'al descargar el form
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
rsPrecios.Close
Set rsPrecios = Nothing
End Sub

Ahora si tienes en cuenta los nombres de los objetos en el DataReport todo este listo.
Espero que te ayude....
Suerte y un saludo
<<_GIOMAR_>>
Giomar B.
Desarrollador Web Profesional


aorellana

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Re: DataReport
« Respuesta #3 en: Martes 27 de Enero de 2004, 22:32 »
0
Cita de: "giomar"
Bueno no se como esta cargando el FlexGrid, pero supongamos que utilizas un RecordSet para ello, entonces para llenar el FlexGrid debes utilizar algo parecido a esto:
'en el general
Dim cnFarma As New ADODB.Connection
Dim rsPrecios As New ADODB.Recordset

Private Sub Form_Load()
Set cnFarma = New ADODB.Connection
ruta = App.Path + "DB.mdb"
cnFarma.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + ruta
Set rsPrecios = New ADODB.Recordset
rsPrecios.CursorLocation = adUseClient
rsPrecios.Open "SELECT idarticulo,descripcion, precio  FROM articulo order by descripcion", cnFarma, adOpenStatic, adLockReadOnly
rsPrecios.MoveFirst
MSFlexGrid1.Rows = 1
MSFlexGrid1.Clear
MSFlexGrid1.FormatString = "<Codigo" & Space(20) & "|<Descripcion" & Space(20) & "|<Precio "
Do While Not rsPrecios.EOF
    MSFlexGrid1.AddItem rsPrecios.Fields(0).Value & vbTab & rsPrecios.Fields(1).Value & vbTab & rsPrecios.Fields(2).Value
    rsPrecios.MoveNext
Loop
End Sub

'y para trasladar los datos al datareport:
Private Sub cmdImprimir_Click()
On Error Resume Next
With dtrPrecios
    For fila = 1 To MSFlexGrid1.Rows - 1
        For columna = 1 To MSFlexGrid1.Cols - 1
            .Sections("Sección1").Controls("txtCodigo") = MSFlexGrid1.TextMatrix(fila, columna)
            .Sections("Sección1").Controls("txtDescripcion") = MSFlexGrid1.TextMatrix(fila, columna)
            .Sections("Sección1").Controls("txtPrecio") = MSFlexGrid1.TextMatrix(fila, columna)
        Next columna
    Next fila
    Set .DataSource = rsPrecios
    .Show
End With
End Sub
'al descargar el form
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
rsPrecios.Close
Set rsPrecios = Nothing
End Sub

Ahora si tienes en cuenta los nombres de los objetos en el DataReport todo este listo.
Espero que te ayude....
Suerte y un saludo
<<_GIOMAR_>>
Buenas tardes, he estado analizando el ejemplo ya que lo necesito para un proyecto, pero a la hora del reporte.show no muestra nada.. con tu experiencia me harias el gran favor de  solucionar este problema...


Agradecido

Alberto Orellana :comp:

ManDraK3

  • Nuevo Miembro
  • *
  • Mensajes: 15
    • Ver Perfil
Re: DataReport
« Respuesta #4 en: Martes 7 de Octubre de 2008, 17:31 »
0
por que no pruebas esto...

en el boton de imprimir:

Set Nombredelreporte.DataSource = recorset (nombre del recorset con que cargas el grid)
    Nombredelreporte.Show 1

ManDraK3

  • Nuevo Miembro
  • *
  • Mensajes: 15
    • Ver Perfil
Re: DataReport
« Respuesta #5 en: Martes 7 de Octubre de 2008, 17:39 »
0
Tengo una duda:

en mi base de datos (sql) tengo unos campos bit (true/false)
lo que quiero es que al cargarlos en el datareport no me aparezca el true/false de cada campo sino reemplazarlos por alguna
imagen como las de los chekbox....

ManDraK3

  • Nuevo Miembro
  • *
  • Mensajes: 15
    • Ver Perfil
Re: DataReport
« Respuesta #6 en: Viernes 10 de Octubre de 2008, 20:53 »
0
Hola...lo anterior ya lo resolvi jeje
ahora tengo otro pegonsito....toy usando el datareport sin dataenviroments...lo cargo con un recordset

Set dtrGrupo.DataSource = RSSs (este es mi recorset con ke cargo un msflexgid)

en un reporte normal no me da problemas, me presenta los datos correctamente
pero toy tratando de hacer un reporte agrupado y me sale el siguiente error:
"Las secciones de informes no coinciden con origen de datos"

alguien me puede decir que estoy haciendo mal? :s

[Zerox]

  • Nuevo Miembro
  • *
  • Mensajes: 20
  • Nacionalidad: pe
    • Ver Perfil
Re: DataReport
« Respuesta #7 en: Viernes 10 de Octubre de 2008, 23:18 »
0
mmmm bueno Mandrak3, cuando usas un rs, solo haces referencia a una sola tabla, asi es que si deseas usar 2 tablas no te queda de otra que crear un dataenvironment donde crees la agrupacion por ejemplo, si fuera Boletas y DetalleBoletas
Creas un comando para Boletas y un comando secundario para DetalleBoletas y en el comando DetalleBoletas creas la relacion...

Pero seguramente tu haces filtros o busquedas en tu rs, y deseas que eso se muestre en el Datareport, lo unico que tienes que hacer, y a mi me funciona es cambiarle el SHAPE por tu propia consulta (rsBoleta.source) al Comando Primario del DataEnvironment... Ejemplo:

Si seguimos con el Ejemplo de la Boleta y DetalleBoleta

' *********************************************************************************************
Dim SQLDetalleBoleta as string, SQLBoleta as string 'Almaceno las consultas del rsBoleta
Dim SQLCons as string 'Nuevo Consulta SHAPE para el comando primario
Dim IDs as string 'Almaceno los IDs de Boletas que filtras

'Saco todos los Ids de Boletas filtrados en el RsBoleta, para mostrar el detalle solo de ellos
rsBoleta.MoveFirst
  Do While Not rsBoleta.EOF
    IDs = IDs & rsBoleta!IDBoleta & ","
    rsBoleta.MoveNext
Loop
  IDs = Mid(IDs, 1, (Len(IDs) - 1))
  rsBoleta.MoveFirst

SQLBoleta = RsBoleta.Source
SQLDetalleBoleta = "Select * from DetalleBoleta where IDBoleta in(" & IDs & ") order by IDBoleta"
 
SqlCons = " SHAPE {" & SQLBoleta & "}  AS Boletas APPEND ({" & SQLDetalleBoleta & "}  AS DetalleBoletas RELATE 'IDBoleta' TO 'IDBoleta') AS DetalleBoletas"

DeConsultas.rsBoletas.Close
DeConsultas.rsBoletas.Source = SqlCons
DeConsultas.rsBoletas.Open

DrContratos.Show

' *********************************************************************************************
" SHAPE {" & SQLBoleta & "}  AS Boletas APPEND ({" & SQLDetalleBoleta & "}  AS DetalleBoletas RELATE 'IDBoleta' TO 'IDBoleta') AS DetalleBoletas"

Esta cadena que le paso a mi variable SQLCons, si mas no recuerdo es el source del DEConsultas.rsBoletas.source, a esta yo la reemplazo...
Claro que antes tienes que haber diseñado tu reporte tal como si lo fueras a usar con un datareport bindeado por un dataenvironment.

Bueno espero me hayas entendido algo, a y lo de la extracción de las IDs, se puede mejorar, solo fue un ejemplo, espero haBerte ayudado en algo... Suerte
TP-Systems
Our Knowledge is our power...

ManDraK3

  • Nuevo Miembro
  • *
  • Mensajes: 15
    • Ver Perfil
Re: DataReport
« Respuesta #8 en: Viernes 10 de Octubre de 2008, 23:48 »
0
ummmmm ...lo cargue con un dtenv con una varias tablas y al ejecutar en el boton "buscar" le cambio el source y no me da
si no estoy mal io siempre he usado los rs con mas de 1 tabla y me ha funcionado bien
pero bueno hare un ejemplo asi como dices....

ManDraK3

  • Nuevo Miembro
  • *
  • Mensajes: 15
    • Ver Perfil
Re: DataReport
« Respuesta #9 en: Sábado 11 de Octubre de 2008, 01:27 »
0
nada....me da el mismo error :s

[Zerox]

  • Nuevo Miembro
  • *
  • Mensajes: 20
  • Nacionalidad: pe
    • Ver Perfil
Re: DataReport
« Respuesta #10 en: Sábado 11 de Octubre de 2008, 23:12 »
0
mmm bueno, seria cuestion que seas mas explicito en tu pregunta, no se tal vez decir como estas creando tu dataenvironment, reporte y como según tu cambias el source del Dataenvironment... Salu2
TP-Systems
Our Knowledge is our power...

F_Tanori

  • Moderador
  • ******
  • Mensajes: 1919
  • Nacionalidad: mx
    • Ver Perfil
Re: DataReport
« Respuesta #11 en: Domingo 12 de Octubre de 2008, 11:26 »
0
ManDraK3 tendras que detallar mas tus preguntas, ademas de aprender a utilizar el foro, ya que en varias ocasiones haz planteado tu duda sobre otro mensaje en el cual no tiene que ver con tu pregunta

No es solo darle responder a la primera conversacion que encuentres, ve al foro donde vayas a colocar tu duda y presiona el boton Nuevo Tema en lugar de Responder dentro de cualquier hilo

Puedes darte una vuelta por este mensaje


viewtopic.php?t=5710

Saludos
" ExIsTo y A vEcEs PiEnSo "

NOTA:
===========================================================================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
===========================================================================================================================