En una aplicacion Oracle + Ado, capturo un RecordSet con varios registros que muestro en un Browse con tres columnas:
..........
REDEFINE LISTBOX oLbx ;
FIELDS oRs:Fields("CLASE"):value, ;
oRs:Fields("NOMBRE"):value, ;
NUM2STR(oRs:Fields("CONTROL"):value, 10, 0) ;
HEADERS PADC("Clase",18) , ;
PADC("Nombre",80), ;
PADC("Ref.",10) ;
FIELDSIZES 90, 290, 20 ;
ID 101 ;
OF oDlg
oLbx:aJustify ={.F.,.F.,.t.}
oLbx:bLogicLen = { || oRs:RecordCount }
oLbx:bGoTop = { || oRs:MoveFirst() }
oLbx:bGoBottom = { || oRs:MoveLast() }
oLbx:bSkip = { | nSkip | Skipper( oRs, nSkip ) }
oLbx:cAlias = "ARRAY"
Desearía imprimir el browse (todos los registros) con la clase Report, pero solo consigo que me salga, varias veces, el primer registro. He intentado poniendo un bucle FOR/NEXT ó de la manera usual con un array (bSkip), pero no resulta. ¿Alguna ayudita por favor?
----------------------------------------------------------
STATIC FUNCTION I_LISTA( oRs )
LOCAL oReport, oFont1, oFont2, oFont3, oPen1, oPen2
DEFINE FONT oFont1 NAME "ARIAL" SIZE 0,-8
DEFINE FONT oFont2 NAME "ARIAL" SIZE 0,-12 BOLD
DEFINE FONT oFont3 NAME "ARIAL" SIZE 0,-16 BOLD
REPORT oReport ;
CAPTION " Mi libro de Cocinas" ;
TITLE "*** Listado de Recetas ***" ;
HEADER DTOC(DATE()) , " " FONT oFont1, ;
oFont2, ;
oFont3 ;
FOOTER "Página Número: " + STR (oReport:nPage, 3) CENTER ;
PREVIEW
COLUMN TITLE "Clas" DATA oRs:Fields("clase"):value
COLUMN TITLE "Nombre" DATA oRs:Fields("nombre"):value
COLUMN TITLE "Refª" DATA oRs:Fields("control"):value
END REPORT
oReport:oTitle:aFont[1] := {|| 3 }
oReport:oHeader:aFont[1] := {|| 2 }
oReport:oDevice:SetPortrait()
oReport:oDevice:lPrvModal := .T. // preview modal
ACTIVATE REPORT oReport
oFont1:End()
oFont2:End()
oFont3:End()
oRs:MoveFirst()
RETURN NIL
------------------------------------------