SoloCodigo
Programación General => Visual Basic 6.0 e inferiores => Mensaje iniciado por: wolfin_ger_fake en Martes 14 de Septiembre de 2004, 18:27
-
Ke tal miembros del foro pues bien, aki con un problema poco comun al ke ya le he dado un millon de vueltas y no se ke es lo ke pase, pues bien estoy desarrollando un programa donde necesito sacar un reporte de diario de ventas, las ventas ke tengo hechas son guardadas en una tabla llamada diarioventas asi como otra tabla llamada tblordtra donde se almacenan datos de ordenes de trabajo..... hasta aki no hay ningun problema....bueno despues tengo un form donde doy un criterio a buscar por fechas, busca en las tablas ke mencione anteriormente y guarda los datos ke encuentra segun el criterio ke pongamos en una tabla ke se llama tmpdiaven para poder imprimirlos con mi reporte hecho en crystal reports....
el problema viene aki.... dentro de la tabla tmpdiaven tengo varios registros.....pero en el reporte solo me imprime el primer registro...... :blink: la verdad ya no se ke onda pues esto no deveria tenermayor problema.... si alguien puede ayudarme lo agradeceria mucho....para mas info les comento ke trabajo con visual basic 6.0 pro con SP6 y utilizo el contol 4.6 del crystal reports.....para hacer mis reportes utilizo Crystal Reports for Visual Basic 4.6
Aqui tambien pongo el codigo para ke observen y ojala me digan si encuentran algo extraño
Private Sub cmdImp_Click()
If txtD(0) = "" Then Exit Sub
If IsDate(txtD(0)) And IsDate(txtD(1)) Then
FecDes = CDate(txtD(0).Text) 'desde
FecHas = CDate(txtD(1).Text) 'hasta
End If
Set Db = OpenDatabase("S:\ReyMarSi.mdb")
Db.Execute "delete * from tmpdiaven"
Set rc = Db.OpenRecordset("select * from [diarioventas] where fecha between #" & Format(FecDes, "mm/dd/yyyy") & "# and #" & Format(FecHas, "mm/dd/yyyy") & "# " & "order by fecha asc;")
Set rt = Db.OpenRecordset("select * from tmpdiaven")
While Not rc.EOF
Set rtp = Db.OpenRecordset("select * from tblordtra where no_factura = " & rc!no_factura & " and no_factura <> 0 order by orden")
If Not rc.EOF Then
band = 0
While Not rtp.EOF
rt.AddNew
rt!Cliente = rc!Nombre
rt!Orden = rtp!Orden
rt!no_fac = rc!no_factura
rt!Fecha = rc!Fecha
rt!iva = rc!iva
rt!total = rc!total
rt!SUBTOTAL = rc!SUBTOTAL
rt.Update
rtp.MoveNext
band = 1
Wend
If rtp.EOF And band = 0 Then
rt.AddNew
rt!Cliente = rc!Nombre
rt!Orden = 0
rt!no_fac = rc!no_factura
rt!Fecha = rc!Fecha
rt!iva = rc!iva
rt!total = rc!total
rt!SUBTOTAL = rc!SUBTOTAL
rt.Update
End If
rc.MoveNext
End If
Wend
'rt.MoveFirst
Data1.RecordSource = "select * from tmpdiaven"
Data1.Refresh
rt.Close
rc.Close
Db.Close
CRDIAVEN.ReportFileName = "S:\rpdiavtas.rpt"
CRDIAVEN.WindowTitle = "Reporte de Diario de Ventas"
CRDIAVEN.Action = 1
End Sub
-
Tú codigo parece estar bien y si dices que tienes la información en las tablas no deberías tener mayores inconvenientes, revisa que los campos esten en la línea de detalle en el reporte. <_<
-
Voy a contestar por si otros usuario tuvieron el mismo problema, ya han pasado muchos dias desde que hiciste la consulta puede que lo hayas solucionado de otra manera. Yo tube el mismo problema hice un reporte en crystal report 4.6 con una BD mysql y el reporte solo me imprimia el primer caracter de los campos tipo varchar, reviose todo y todo parecia bien busque en internet y solo encotre esta consulta con el mismo caso. El problema era el sistema operativo, este reporte lo hacia con sistema operativo windows 7, y al parecer el crystal 4.6 se marea cuando la conexion se establece en este sistema operativo, para solucionarlo, hice el reporte con el SO Windows XP, luego lo lleve a Windows 7 y funcionaba de maravilla, incluso el reporte una vez hecho se puede modificar en Windows 7 sin problemas....
Espero te sirva la respuesta a ti o otros usuarios con el mismo problema.