In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.
Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.
Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.
Problema en impresion de rango de archivo
Problema en impresion de rango de archivo
Hola a todos, estoy intentado imprimir un rango de un archivo como si fuera una factura entre varias fechas. Es con un DBF y en xharbour.
Desde mi aplicación como la dbf y filtro el rango de lo que quiero imprimir, pero el problema que tengo es que, con el archivo .fr3 adjunto la cabecera si se imprime bien y va pasando registros uno a uno para imprimir todos los registros que están en el rango filtrado en mi DBF, pero lo que no avanza son las lineas de cada cabecera.
Es decir, las lineas de la banda detalle, en todas las paginas se imprimen las mismas, no se imprimen las lineas relacionadas con la cabecera.
Este es mi código. También adjunto el .fr3 comprimido
dbsetrelation("linreemb",{||cabreemb->numcontr})
dbselectarea("cabreemb")
cabreemb->(dbgotop())
WITH OBJECT oReport := TFastReport():New()
:cLanguage("spanish")
WITH OBJECT :AddDbf( "cabreemb" , { "cabreemb->*" } )
:nMaxRecsOnDesign := 0
END WITH
WITH OBJECT :AddDbf( "linreemb" , { "linreemb->*" } )
:nMaxRecsOnDesign := 0
END WITH
:Create()
:cFilename := cDiscoRed + "\Valijarango.fr3"
:oPreviewOptions:lAllowEdit := .F.
:OPreviewOptions:SetZoomMode(1)
:SetTitle( "Vista Previa Rango de Impresion de Valija" )
:SetIcon( "A1" )
IF !lDesign
:ShowReport()
ELSE
:DesignReport()
ENDIF
:End()
END WITH
Desde mi aplicación como la dbf y filtro el rango de lo que quiero imprimir, pero el problema que tengo es que, con el archivo .fr3 adjunto la cabecera si se imprime bien y va pasando registros uno a uno para imprimir todos los registros que están en el rango filtrado en mi DBF, pero lo que no avanza son las lineas de cada cabecera.
Es decir, las lineas de la banda detalle, en todas las paginas se imprimen las mismas, no se imprimen las lineas relacionadas con la cabecera.
Este es mi código. También adjunto el .fr3 comprimido
dbsetrelation("linreemb",{||cabreemb->numcontr})
dbselectarea("cabreemb")
cabreemb->(dbgotop())
WITH OBJECT oReport := TFastReport():New()
:cLanguage("spanish")
WITH OBJECT :AddDbf( "cabreemb" , { "cabreemb->*" } )
:nMaxRecsOnDesign := 0
END WITH
WITH OBJECT :AddDbf( "linreemb" , { "linreemb->*" } )
:nMaxRecsOnDesign := 0
END WITH
:Create()
:cFilename := cDiscoRed + "\Valijarango.fr3"
:oPreviewOptions:lAllowEdit := .F.
:OPreviewOptions:SetZoomMode(1)
:SetTitle( "Vista Previa Rango de Impresion de Valija" )
:SetIcon( "A1" )
IF !lDesign
:ShowReport()
ELSE
:DesignReport()
ENDIF
:End()
END WITH
- Adjuntos
-
- valijarango.rar
- (2.37 KiB) Descargado 1533 veces
Re: Problema en impresion de rango de archivo
Hola, alguien que me pueda dar una ayuda por favor.
Saludos
Saludos
Re: Problema en impresion de rango de archivo
Hola, sigo peleándome con esto sin conseguirlo.
Con este codigo me da error en tiempo de ejecución. Error de argumento LEN en línea de SetMasterDetail. ¿No se porque?
WITH OBJECT oReport := TFastReport():New()
:cLanguage("spanish")
:AddDbf( "cabreemb" , { "cabreemb->*" } )
:AddDbf( "linreemb" , { "linreemb->*" } )
:SetMasterDetail("cabreemb","linreemb",{||cabreemb->numcontr})
:Create()
:cFilename := cDiscoRed + "\Valijarango.fr3"
:oPreviewOptions:lAllowEdit := .F.
:OPreviewOptions:SetZoomMode(1)
:SetTitle( "Vista Previa Rango de Impresion de Valija" )
:SetIcon( "A1" )
IF !lDesign
:ShowReport()
ELSE
:DesignReport()
ENDIF
:End()
END WITH
Con este codigo me da error en tiempo de ejecución. Error de argumento LEN en línea de SetMasterDetail. ¿No se porque?
WITH OBJECT oReport := TFastReport():New()
:cLanguage("spanish")
:AddDbf( "cabreemb" , { "cabreemb->*" } )
:AddDbf( "linreemb" , { "linreemb->*" } )
:SetMasterDetail("cabreemb","linreemb",{||cabreemb->numcontr})
:Create()
:cFilename := cDiscoRed + "\Valijarango.fr3"
:oPreviewOptions:lAllowEdit := .F.
:OPreviewOptions:SetZoomMode(1)
:SetTitle( "Vista Previa Rango de Impresion de Valija" )
:SetIcon( "A1" )
IF !lDesign
:ShowReport()
ELSE
:DesignReport()
ENDIF
:End()
END WITH
Re: Problema en impresion de rango de archivo
Con este codigo adaptado y sacado de frconsole.prg solo me muestra un único registro de cabecera en masterdata y sus líneas asociadas en detaildata correctamente. Pero solo me muestra una pagina, no me muestra más paginas con el resto de registro que hay en cabecera y en líneas asociadas. No se que más hacer.
WITH OBJECT oReport := TFastReport():New()
:cLanguage("spanish")
ocabreemb:= :AddDbf( "cabreemb" , { "cabreemb->*" } )
olinreemb:= :AddDbf( "linreemb" , { "linreemb->*" } )
olinreemb:SetMaster(ocabreemb, {"NUMCONTR=NUMCONTR"} )
:Create()
:cFilename := cDiscoRed + "\Valijarango.fr3"
:oPreviewOptions:lAllowEdit := .F.
:OPreviewOptions:SetZoomMode(1)
:SetTitle( "Vista Previa Rango de Impresion de Valija" )
:SetIcon( "A1" )
IF !lDesign
:ShowReport()
ELSE
:DesignReport()
ENDIF
:End()
END WITH
WITH OBJECT oReport := TFastReport():New()
:cLanguage("spanish")
ocabreemb:= :AddDbf( "cabreemb" , { "cabreemb->*" } )
olinreemb:= :AddDbf( "linreemb" , { "linreemb->*" } )
olinreemb:SetMaster(ocabreemb, {"NUMCONTR=NUMCONTR"} )
:Create()
:cFilename := cDiscoRed + "\Valijarango.fr3"
:oPreviewOptions:lAllowEdit := .F.
:OPreviewOptions:SetZoomMode(1)
:SetTitle( "Vista Previa Rango de Impresion de Valija" )
:SetIcon( "A1" )
IF !lDesign
:ShowReport()
ELSE
:DesignReport()
ENDIF
:End()
END WITH
-
- Mensajes: 16
- Registrado: Mar Sep 11, 2018 8:37 am
Re: Problema en impresion de rango de archivo
Creo que tienes un problema de planteamiento.
Trata cada factura de forma independiente pasando a FR los datos filtrados (con un scope, por ejemplo que es más rápido) y haz tantas llamadas como facturas.
¿De qué te serviría, por ejemplo imprimir 10 facturas distintas de distintos clientes a un mismo fichero PDF?
Te aconsejo la lectura del estupendo manual de Bingen que se incluye en la documentación de Fast Report para Xailer (FRManualBisoft.pdf), es muy ilustrativo y explica, entre muchas otras cosas, el proceso de impresión de una factura con trucos muy útiles.
Trata cada factura de forma independiente pasando a FR los datos filtrados (con un scope, por ejemplo que es más rápido) y haz tantas llamadas como facturas.
¿De qué te serviría, por ejemplo imprimir 10 facturas distintas de distintos clientes a un mismo fichero PDF?
Te aconsejo la lectura del estupendo manual de Bingen que se incluye en la documentación de Fast Report para Xailer (FRManualBisoft.pdf), es muy ilustrativo y explica, entre muchas otras cosas, el proceso de impresión de una factura con trucos muy útiles.
Angel Salom
www.visionwin.com
www.visionwin.com
Re: Problema en impresion de rango de archivo
Angel en primer lugar, muchas gracias por responder.
El cliente quiere que en un solo pdf vayan varias facturas, ya que la idea es poder filtrar las facturas de un mismo cliente entre un rango de fechas y después Fastreport me cree ese único pdf con todas esas facturas filtradas de un mismo cliente.
Con el archivo que adjunte me sale todo correcto, cabecera y pie con total de factura calculada por Fastreport, pero en todas las facturas salen siempre las lineas del detalle de la primera factura solamente.
No se que hacer más.
Saludos.
El cliente quiere que en un solo pdf vayan varias facturas, ya que la idea es poder filtrar las facturas de un mismo cliente entre un rango de fechas y después Fastreport me cree ese único pdf con todas esas facturas filtradas de un mismo cliente.
Con el archivo que adjunte me sale todo correcto, cabecera y pie con total de factura calculada por Fastreport, pero en todas las facturas salen siempre las lineas del detalle de la primera factura solamente.
No se que hacer más.
Saludos.
Re: Problema en impresion de rango de archivo
Hola de nuevo, después de llevarme todo el fin de semana con este asunto, ya consigo que me funcione a medias con este codigo.
dbselectarea("linreemb")
ordsetfocus('contrnum')
ORDSCOPE(0,NIL)
ORDSCOPE(1,NIL)
dbgotop()
dbselectarea("linreemb")
ordsetfocus('numcontr')
dbgotop()
WITH OBJECT oReport := TFastReport():New()
:cLanguage("spanish")
oCabreemb:= :AddDbf( "cabreemb" , { "cabreemb->*" } )
oLinreemb:= :AddDbf( "linreemb" , { "linreemb->*" } )
oLinreemb:SetMaster( oCabreemb, {"NUMCONTR=NUMCONTR"} )
WITH OBJECT :AddDbf( "linreemb" , { "linreemb->*" } )
:lLoadOnDemand := .T.
:nMaxRecsOnDesign := 10
END WITH
:Create()
:cFilename := cDiscoRed + "\valijarango.fr3"
:oPreviewOptions:lAllowEdit := .F.
:OPreviewOptions:SetZoomMode(1)
:SetTitle( "Vista Previa Rango de Impresion de Valija" )
:SetIcon( "A1" )
IF !lDesign
:ShowReport()
ELSE
:DesignReport()
ENDIF
:End()
END WITH
El problema se generaba en que el fichero de líneas de detalles llevaba a Fastreport Filtrado de una rutina anterior.
He indicado que me funciona a medias porque ahora, porque consigo que me presente hasta un registro determinado, a partir de ese registro no me muestra nada. He estado mirando por si hubiera algún problema en la relación creada pero los índices están bien y los registros también.
No se que puede estar pasando, para que a partir de un registro determinado, no se muestra nada en el impreso que adjunte.
Saludos.
dbselectarea("linreemb")
ordsetfocus('contrnum')
ORDSCOPE(0,NIL)
ORDSCOPE(1,NIL)
dbgotop()
dbselectarea("linreemb")
ordsetfocus('numcontr')
dbgotop()
WITH OBJECT oReport := TFastReport():New()
:cLanguage("spanish")
oCabreemb:= :AddDbf( "cabreemb" , { "cabreemb->*" } )
oLinreemb:= :AddDbf( "linreemb" , { "linreemb->*" } )
oLinreemb:SetMaster( oCabreemb, {"NUMCONTR=NUMCONTR"} )
WITH OBJECT :AddDbf( "linreemb" , { "linreemb->*" } )
:lLoadOnDemand := .T.
:nMaxRecsOnDesign := 10
END WITH
:Create()
:cFilename := cDiscoRed + "\valijarango.fr3"
:oPreviewOptions:lAllowEdit := .F.
:OPreviewOptions:SetZoomMode(1)
:SetTitle( "Vista Previa Rango de Impresion de Valija" )
:SetIcon( "A1" )
IF !lDesign
:ShowReport()
ELSE
:DesignReport()
ENDIF
:End()
END WITH
El problema se generaba en que el fichero de líneas de detalles llevaba a Fastreport Filtrado de una rutina anterior.
He indicado que me funciona a medias porque ahora, porque consigo que me presente hasta un registro determinado, a partir de ese registro no me muestra nada. He estado mirando por si hubiera algún problema en la relación creada pero los índices están bien y los registros también.
No se que puede estar pasando, para que a partir de un registro determinado, no se muestra nada en el impreso que adjunte.
Saludos.
Re: Problema en impresion de rango de archivo
Hola, he probado con los datos del año anterior y me hace lo mismo el informe. A partir del registro num. 45 o 46, no me imprime nada. Es decir, si le indico que me imprima de la factura 1 a la 50, me imprime correctamente hasta la 45 en el año anterior y 46 en el año actual.
Si le indico que me imprima desde la 40 a la 60, solo me imprime desde la 40 a la 46...
Si le indico que me imprima desde la 50 a la que sea, me visualiza un folio en blanco sin nada.
No lo entiendo.
Si le indico que me imprima desde la 40 a la 60, solo me imprime desde la 40 a la 46...
Si le indico que me imprima desde la 50 a la que sea, me visualiza un folio en blanco sin nada.
No lo entiendo.
Re: Problema en impresion de rango de archivo
Disculpad con tanto mensaje, pero estoy detallando paso a paso, lo que voy averiguando por si a alguien le pudiera ser servir en un futuro.
Ya he conseguido que no me salgan paginas en blanco, marcando a .T. en el diseñador de informes la propiedad PrintifDetailEmpty de la MasterData1, pero con esto, solo consigo que me salgan los datos de cabecera. Las lineas de detalles asociadas no me salen. Solo salen las lineas de detalle que corresponden a las 100 primeras en la dbf.
Ya he conseguido que no me salgan paginas en blanco, marcando a .T. en el diseñador de informes la propiedad PrintifDetailEmpty de la MasterData1, pero con esto, solo consigo que me salgan los datos de cabecera. Las lineas de detalles asociadas no me salen. Solo salen las lineas de detalle que corresponden a las 100 primeras en la dbf.
-
- Mensajes: 16
- Registrado: Mar Sep 11, 2018 8:37 am
Re: Problema en impresion de rango de archivo
¿Puede adjuntar un ZIP con un ejemplo autocontenido y la tablas de datos para hacer alguna prueba?
Angel Salom
www.visionwin.com
www.visionwin.com
Re: Problema en impresion de rango de archivo
Hola, adjunto fichero comprimido con DBF E INDICES.
He adaptado los DBF para que se pueda utilizar para muestra el frconsole que viene con fastreport.
Grabar las dbf y cdx adjuntos dentro de la carpeta DATA de FRX para probar con frconsole.exe
También adjunto el pdf de la impresión obtenida. Al igual que ocurre en mi programa, utilizando mis datos pero con frconsole también se imprime hasta el registro 46 del fichero customer
He adaptado los DBF para que se pueda utilizar para muestra el frconsole que viene con fastreport.
Grabar las dbf y cdx adjuntos dentro de la carpeta DATA de FRX para probar con frconsole.exe
También adjunto el pdf de la impresión obtenida. Al igual que ocurre en mi programa, utilizando mis datos pero con frconsole también se imprime hasta el registro 46 del fichero customer
- Adjuntos
-
- Data.rar
- (239.02 KiB) Descargado 1490 veces
Re: Problema en impresion de rango de archivo
Hola, creo que puede ser por esto, pero no se como ponerlo en mi codigo para que no me de error en tiempo de ejecución.
TFrDataset:nMaxRecsOnDesign
Home Topic Previous Topic Next Topic Print this Topic
Sets the maximum number of records that will be downloaded when using the report designer. This property allows you to limit the number of records to be loaded for design processes to not delay carrying large amount of data. A value of cero means to download the complete set of records.
Scope Design assignable
Type Numeric
Initial Value 100
TFrDataset
Properties
Methods
Events
Este es mi codigo.
WITH OBJECT oReport := TFastReport():New()
:cLanguage("spanish")
oCabreemb:= :AddDbf( "cabreemb" , { "cabreemb->*" } )
oLinreemb:= :AddDbf( "linreemb" , { "linreemb->*" } )
oLinreemb:SetMaster( oCabreemb, {"NUMCONTR=NUMCONTR"} )
:Create()
:cFilename := cDiscoRed + "\valijarango.fr3"
:oPreviewOptions:lAllowEdit := .F.
:OPreviewOptions:SetZoomMode(1)
:SetTitle( "Vista Previa Rango de Impresion de Valija" )
:SetIcon( "A1" )
IF !lDesign
:ShowReport()
ELSE
:DesignReport()
ENDIF
:End()
END WITH
TFrDataset:nMaxRecsOnDesign
Home Topic Previous Topic Next Topic Print this Topic
Sets the maximum number of records that will be downloaded when using the report designer. This property allows you to limit the number of records to be loaded for design processes to not delay carrying large amount of data. A value of cero means to download the complete set of records.
Scope Design assignable
Type Numeric
Initial Value 100
TFrDataset
Properties
Methods
Events
Este es mi codigo.
WITH OBJECT oReport := TFastReport():New()
:cLanguage("spanish")
oCabreemb:= :AddDbf( "cabreemb" , { "cabreemb->*" } )
oLinreemb:= :AddDbf( "linreemb" , { "linreemb->*" } )
oLinreemb:SetMaster( oCabreemb, {"NUMCONTR=NUMCONTR"} )
:Create()
:cFilename := cDiscoRed + "\valijarango.fr3"
:oPreviewOptions:lAllowEdit := .F.
:OPreviewOptions:SetZoomMode(1)
:SetTitle( "Vista Previa Rango de Impresion de Valija" )
:SetIcon( "A1" )
IF !lDesign
:ShowReport()
ELSE
:DesignReport()
ENDIF
:End()
END WITH
-
- Mensajes: 16
- Registrado: Mar Sep 11, 2018 8:37 am
Re: Problema en impresion de rango de archivo
Si lanzas el informe sin pasar por el modo de diseño no tiene límites. El nMaxRecsOnDesign sólo actúa en modo diseño.
De todos modos lo tienes que indicar al añadir el DBF
De todos modos lo tienes que indicar al añadir el DBF
Código: Seleccionar todo
oCabreemb:= :AddDbf( "cabreemb" , { "cabreemb->*" } )
oCabreemb:nMaxRecsOnDesign := 50 // Por ejemplo
Angel Salom
www.visionwin.com
www.visionwin.com
Re: Problema en impresion de rango de archivo
Angel muchas gracias por tu ayuda y aclaraciones. Todo ok.