Crystal Reports

Hola, tengo una base de datos en Access y estoy haciendo una aplicación en VB6, lo que pasa es que necesito restringir los datos del informe desde visual, por ejemplo cuando el usuario de la aplicación elija algo recién ahí lanzar el infomre (como un rango de fechas), he tratado con la propiedad SQLquery pero no hace nada (ni siquiera se cae), también he probado pasar fórmulas pero nada, ojala me puedas ayudar, aunque sea con una tabla de la bd, gracias

2 respuestas

Respuesta
1
Si utilizas un control data para acceder a la base de datos, yo creo que lo mejor para restringir el número de registros, o para seleccionar algunos de ellos que tengan algo en común como por ejemplo la fecha, es cambiar la propiedad RecordSource. Te voy a poner un ejemplo: Imagina que tenemos una base de datos que tiene una tabla que a su vez tiene un campo que se llama Sexo y ahí tu aplicación guarda el sexo de tus clientes, pone una H si es Hombre o una M si es mujer, y en alguna parte de aplicación queremos hacer un listado de mujeres por ejemplo. Bueno, pues deberíamos escribir esto:
data1.RecordSource = "Select * From [Clientes] Where [Sexo] = 'M'"
Data1. Refresh
Es importante utilizar inmediatamente el método Refresh, ya que hasta que no se haga, no se actualizarán los nuevos registros en el recordset.
Sin embargo si lo que quieres es buscar por fechas hay que hacer algo más antes.
Si es este tu caso y estás interesado en saberlo tienes que decirme que tipo de datos utilizas en la tabla para guardar la fecha y en que orden da la fecha tu sistema, es decir si es dd/mm/aa o es mm/dd/aa.
Hola otra vez, gracias por contestarme pero me di cuenta que no te explique muy bien mi problema y me disculpo por eso, lo que pasa es que nunca te dije que mi problema es con Crystal Reports, lo que pasa es que quiero generar un informe en crysta desde mi aplicación, y lo que pasa es que necesito lanzarlo por pantalla cuando el usuario haya elegido algo, por ejemplo : tengo un reporte de ventas, pero el usuario va a elegir que rango de fechas quiere ver en el informe, bueno el lo eligira en un text o algo parecido y con estos parámetro yo quiero generar mi informe de crystal, ojala ahora me entiendas y me puedas ayudar, gracias por contestarme, chao
Alex Angulo
Univerisad del Bio Bio
Concepcion - Chile
¡Larga vida al Rock!
Bueno me imagino que tendrás hecho un informe con crytal y tendrás también incluido un control Crystal Report en el formulario. Siendo así lo único que debes hacer es escribir un código parecido al siguiente:
CrystalReport1.SelectionFormula = "{Tabla.Fecha}>=Date (Year (" & Fecha inicial & "),Month (" & Fecha incial & ") , Day (" & Fecha inicial & ")) and {Tabla.Fecha}<=Date (Year (" & Fecha final & "),Month (" & Fecha final & ") , Day ( & Fecha final & "))"
CrystalReport1.Action = 0
Fecha inicial y Fecha final son las variables de VB que contienen los intervalos de fechas. Es un poco complicado y lioso pero por lo menos con la versión que yo tengo de Crystal hay que hacerlo así, sino no lo ve como una fecha. A mi me funciona bien en alguna aplicación que tengo, espero que a ti también te funcione.
La última linea es la que lanza el informe, puedes cambiar la propiedad Destination para lanzarlo a pantalla o a impresora:
CrystalReport1.Destination = crptToPrinter
CrystalReport1.Destination = crptToWindow
Respuesta
1
Si lo que deseas es filtrar los registros de una tabla para que solo salgan los que estén estaré dos fechas, usa esto:
crystal.selectionformula="{Tabla.CampoFecha} >= Date(YYYY/MM/DD) AND {Tabla.CampoFecha} <= Date(YYYY/MM/DD)"
Para crear esto mismo pero partiendo de una fecha escrita en un textbox:
crystal.selectionformula="{Tabla.CampoFecha} >= Date(" & year(txt) & "/" & month(txt) & "/" & day(txt) & ") AND {Tabla.CampoFecha} <= Date" & year(txt) & "/" & month(txt) & "/" & day(txt) & ")"

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas