Hola foro.
Luego de mucho buscar en los ejemplos de Xailer cómo hacer informes impresos y con la ayuda de Xevi y Javier he avanzado un poco en el armado de listados, pero me he encontrado con una dificultad que no logro resolver y que tampoco encuentro ejemplos como para seguir.
Hasta ahora los listados que logro son de tablas completas, es decir desde BOF() hasta EOF(), pero quIero empezar a poner filtos y no logro hacerlo, seguramente porque me faltan conceptos básicos.
Dentro de mis intentos hago algo como esto, lo cual si bien compila sin error, al ejecutar obtengo:
TREPORT:RUN(481)
Error BASE/1066 Argument error: conditional
Argumentos: ( [ 1] = Tipo: B Valor: {|| ... })
METHOD FormInitialize( oSender ) CLASS TRamos
WITH OBJECT ::oRamos
:ODataSource:=AppData:oMventas
:cSelect := "SELECT * FROM ramos WHERE nroempresa = " +ValToStr(AppData:nNroempresa)+" order by nroramo"
if :lOpen
:Close()
endif
if !:lOpen
:lOpen:=.T.
if !:lOpen
msgstop('Error al Abrir Ramos','Error')
::Close()
endif
endif
END WITH
RETURN NIL
//---------------------------------------------------------------------------------------------------------------------------
METHOD ImprimirClick( oSender ) CLASS TRamos
Local oReport, oFont1, oFont2, bFor
bFor := {|| IF(5 < ::oRamos:nroramo .and. ::oRamos:nroramo < 11,.T.,.F.)} <<<<<<<<<< Este sería el filtro
WITH OBJECT oFont1 := TFont():New()
:cName := "Arial"
:nSize := 12
:lBold := .T.
END WITH
WITH OBJECT oFont2 := TFont():New()
:cName := "Arial"
:nSize := 10
:lBold := .F.
END WITH
REPORT oReport ;
HEADER AllTrim(Appdata:cNomEmpresa) ALIGN taLEFT FONT 1;
TITLE " Listado de Ramos ";
FONT oFont1, oFont2;
PREVIEW;
DATASET ::oRamos;
COLUMN OF oReport;
TITLE "Nro. " ;
DATA ::oRamos:nroramo;
ALIGN taRIGHT ;
FONT 2
COLUMN OF oReport;
TITLE "Descripción ";
DATA ::oRamos:detalle;
FONT 2
RUN REPORT oReport;
FOR bFor <<<<<<<<<<<<<<<<<<< Aquí aplico el filtro
oFont1:Destroy()
oFont2:Destroy()
RETURN Nil
Desde ya les agradezco por su ayuda.
Saludos
Daniel
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.
Intentando filtrar una impresión
- ignacio
- Site Admin
- Mensajes: 9255
- Registrado: Lun Abr 06, 2015 8:00 pm
- Ubicación: Madrid, Spain
- Contactar:
Re: Intentando filtrar una impresión
Opción 1:
Opcion 2:
Si utiliza comandos no es necesario que cree bloques de código, el pre-procesador lo hace por usted de forma completamente automática.
Un saludo
Código: Seleccionar todo
RUN REPORT oReport
FOR ::oRamos:nroramo > 5 .AND. ::oRamos:nroramo < 11
Código: Seleccionar todo
bFor := {|| IF(5 < ::oRamos:nroramo .and. ::oRamos:nroramo < 11,.T.,.F.)}
oReport:bFor := bFor
oReport:Run()
Un saludo
Re: Intentando filtrar una impresión
Ignacio.
Mil gracias por su ayuda. Hoy he aprendido algo más.
Un saludo
Daniel
Mil gracias por su ayuda. Hoy he aprendido algo más.
Un saludo
Daniel