Tengo éste código:
Code: Select all | Expand
static function Ltarifa(aAlias )
********************************
local oFont:=array(3)
local nfield
local a,pre,tra,pos1,pos2,precio:=array(41),tramo:=array(41)
local xtipo,oReport
local cIndi:=(aAlias[1])->( OrdSetFocus() )
for a=1 to 41
pre:='precio'+alltrim(str(a))
tra:='tramo' +alltrim(str(a))
pos1:=(aAlias[1])->(fieldpos(pre))
pos2:=(aAlias[1])->(fieldpos(tra))
precio[a]:=(aAlias[1])->(fieldget(pos1))
tramo[a] :=(aAlias[1])->(fieldget(pos2))
next a
Do case
Case (aAlias[1])->Tipo=1
xtipo:="Bultos"
Case (aAlias[1])->Tipo=2
xtipo:="Tramos/Kilos"
Case (aAlias[1])->Tipo=3
xtipo:="Kilos"
end case
DEFINE FONT oFont[1] NAME "ARIAL" SIZE 0,-9 BOLD
DEFINE FONT oFont[2] NAME "ARIAL" SIZE 0,-8
DEFINE FONT oFont[3] NAME "ARIAL" SIZE 0,-7
REPORT oReport TITLE "TARIFA NUMERO "+(aAlias[1])->Codigo," "," "," ","Codigo de Tarifa "+xtipo ;
FONT oFont[1], oFont[2], oFont[3];
HEADER "TARIFA DE PRECIOS AÑO "+Publicas:cSubd," "," "," "," "," "," "," "CENTERED;
PREVIEW
nfield:=1
COLUMN TITLE "Tramo" DATA "Hasta"+Transform(Tramo[nfield],"@E 99,999")+" Kilos" SIZE 15 FONT 3 RIGHT// PICTURE "@E 99,999"
COLUMN TITLE "Precio / Tramo" DATA Precio[nfield] SIZE 15 FONT 2 RIGHT PICTURE "@E 999.999999"
COLUMN TITLE "Importe / Tramo" DATA (Precio[nfield]*Tramo[nfield]) SIZE 15 FONT 2 RIGHT PICTURE "@E 999.99"
END REPORT
oReport:CellView()
IF oReport:lCreated
oReport:bSkip:= { || nField++ }
ENDIF
oReport:bInit := {|| (aAlias[1])->(dbgotop()) }// activar excel en report
ACTIVATE REPORT oReport WHILE Tramo[nfield] <> 0 .and. !(aAlias[1])->(Eof());
ON STARTPAGE Bitmaps(oReport)
oFont:End()
oReport:End()
(aAlias[1])->( OrdSetFocus(cindi) )
(aAlias[1])->(Dbgotop())
RETURN NIL
Me da la impresión que puede ser que ha llegado al final de los datos, cuando hacemos el report, y el oReport:binit no sube el puntero al principio.
Saludos