VB y Crystal 7.0

Hola doctor tengo un problemilla mira quiero hacer una orden de compra ya lo tengo en mi form funciona ok pero como hago para enviar todos los datos que tengo de mi form ha el reporte ha en form hay un grid y lo demás son text soy nuevo en usar cr ho si no donde puedo conseguir información sobre el tema gracias el form maneja dos tablas una cabecera y un detalle la db esta en sql server 7.0 te agradeceré la ayuda gracias
Respuesta
1
Lo más sencillo es que generes un .rpt desde el CR. En tu caso lo más sencillo es utilizar el asistente del propio CR. Primeramente le indicas al BBDD y las tablas a utilizar o sentencia SQL de selelección (lo lógico seria seleccionar el conjunto exacto de registros con los que vas a trabajar), mediante un "INNER JOIN". Que contenga la cabecera y la linea de detalle.
Una vez que le des el formato que desees lo grabas. Desde el VB puedes incormporar el OCX del CR o simplemente trabajar con sus DLL.
Para espeficicarle desde el código los registros con los que debe trabajar le pasaras la claususa "WHERE".
A continuación te expondré un ejemplo de código VB para imprimir el report, en este caso he utilizado directamente las dll del CR:
'Abrimos el Informe
Set rptApp = CreateObject("CrystalRuntime.Application")
Set rptListado = rptApp.OpenReport(App.Path & "/Albaran.rpt")
' Establecemos conexiones para las tablas
For intI = 1 To rptListado.Database.Tables.Count
rptListado.Database.Tables(intI).SetLogOnInfo strMiServidorBBDD, "AlbaranCabecera", "AlbaranDetalle"
Next
'Cambiamos la sentencia SQL (le indicamos el Where)
On Error Resume Next
strQuery = rptListado.SQLQueryString
strWhere = Mid(strQuery, InStr(1, strQuery, "WHERE idAlbaran = " & intAlbaran))
strQuery = Replace(strQuery, strWhere, "")
'Mostramos la ventana de dialogo de impresión
CommonDialog1.CancelError = True
On Local Error Resume Next
CommonDialog1.ShowPrinter
DoEvents
If Err.Number > 0 Then Exit Sub 'Se ha seleccionado cancelar
On Error GoTo 0
'Le pasamos la nueva Query
rptListado.SQLQueryString = strQuery
'Imprimimos el albarán.
rptListado.PrintOut False, CommonDialog1.Copies
Set rptListado = Nothing
Set rptApp = Nothing
Existe múltiples maneras de trabajar con CR, esta es una de ellas, también puedes pasarle una serie de parámetros a un .rpt sin BBDD mediante fórmulas y después imprimir; a parte de trabajar con DLL (en este caso son ActiveX) puedes trabajar con el API del CR, o con sus OCX visuales. El CR es muy potente y te permitirá trabajar con el de varias maneras.

1 respuesta más de otro experto

Respuesta
Podrás encontrar mucha información y manuales en www.lawebdelprogramador.com
En la biblioteca de temas encontrarás un manual en la sección visual basic sobre crear reports para crystal 6 y en manuales, encontraras muchos manuales sobre visual basic, no obstante también puedes utilizar la ayuda de visual basic que esta muy lograda, busca en temas de ayuda crystal o report...
Espero que esto te sea de ayuda, de todas formas si tuvieras alguna duda en particular no dudes en preguntármelo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas