Página 1 de 1

For de Report

Publicado: Mié Jul 25, 2007 5:33 pm
por lmcahisa
Algo estoy haciendo mal y no se que. No manejo los code block y los ejemplos
que encuentro no me son claros. Me puede alguien orientar ??
Quiero pasar a excel un reporte y me da el siguiente error.
TOLEAUTO:RANGE(0)
Error Excel.Application:WORKBOOKS:ADD:WORKSHEETS/16389 E_FAIL: RANGE
Argumentos: ( [ 1] = Tipo: C Valor: A65759)
Correcto porque no esta filtrando los registros que quiero. Si detengo el
proceso me lo dice
TFORM10:BUTTON3CLICK(346)
Error BASE/1005 Class: 'LOGICAL' has no property: BFOR
Argumentos: ( [ 1] = Tipo: B Valor: {|| ... })
La instruccion dada es la siguiente me pueden tirar una ayuda.
RUN REPORT oReport:toexcel();
FOR {|mcta, mfec1, mfec2|::libromayor:cuenta=mcta .and.
::libromayor:fecha>=mfec1 .and. ::libromayor:fecha<=mfec2}
Muchas Gracias
Luis cahisa

For de Report

Publicado: Mié Jul 25, 2007 7:57 pm
por Jose Lopez Carrasco
Luis,
Mira este bloque de codigo que estoy utilizando, espero te sirva.
METHOD Button1Click( oSender ) CLASS TForm1
Local oRepDiario, oGroup1, oFont1, oFont2
If !EMPTY(::oMaskEdit1:Value)
SELECT DBFDIR55
GO TOP
With Object oFont1 := TFont():New()
:cName := "Arial"
:nSize := 12
:lBold := .T.
END WITH
With Object oFont2 := TFont():New()
:cName := "Courier New" // "Arial"
:nSize := 10
:lBold := .f.
END WITH
* Creamos el reporte
REPORT oRepDiario ;
PREVIEW ;
HEADER "DIARIO DE CONSUMO" ALIGN taCENTER;
TITLE "VENTAS PROVEEDOR: "+::oMaskEdit1:Value+" Página
No."+str(oRepDiario:nPage,3)+" "+ DtoC( Date() ) + " " + Time() ALIGN
taCENTER;
JOBNAME "LISTADO DE CONSUMO";
FONT oFont1, oFont2;
SUMMARY
* Definimos las columnas
COLUMN OF oRepDiario ;
DATA DBFDIR55->C03 ;
TITLE "Codigo" ;
FONT 2 ;
CHARSIZE 14
COLUMN OF oRepDiario ;
DATA OemToAnsi(DBFDIR55->C04) ;
TITLE "Descripcion" ;
FONT 2 ;
CHARSIZE 30
COLUMN OF oRepDiario ;
DATA DBFDIR55->C05 ;
PICTURE "999,999.99" ;
TITLE "Unidades";
ALIGN taRIGHT ;
FONT 2 ;
CHARSIZE 10 ;
TOTAL
oRepDiario:bSkip := {|| DBFDIR55->(dbSkip())}
oRepDiario:bWhile := {|| !DBFDIR55->(Eof())}
oRepDiario:bFor := {|| DBFDIR55->C01==::oMaskEdit1:Value}
* Ejecutamos el reporte
If ::oCheckbox1:lChecked()
oRepDiario:ToExcel()
Else
RUN REPORT oRepDiario //ON CHANGE ::PrintMemo( oRepDiario )
EndIf
oFont1:End()
oFont2:End()
Else
MsgStop("Debe de introducir algun PROVEEDOR","ERROR")
EndIf
RETURN Nil
Un saludo
Pepe.
"Luis Cahisa" <lmcahisa@yahoo.com.ar> escribió en el mensaje
news:[email=46a76d46@ozsrv2.ozlan.local...]46a76d46@ozsrv2.ozlan.local...[/email]
> Algo estoy haciendo mal y no se que. No manejo los code block y los
> ejemplos que encuentro no me son claros. Me puede alguien orientar ??
> Quiero pasar a excel un reporte y me da el siguiente error.
>
> TOLEAUTO:RANGE(0)
> Error Excel.Application:WORKBOOKS:ADD:WORKSHEETS/16389 E_FAIL: RANGE
> Argumentos: ( [ 1] = Tipo: C Valor: A65759)
>
> Correcto porque no esta filtrando los registros que quiero. Si detengo el
> proceso me lo dice
>
> TFORM10:BUTTON3CLICK(346)
> Error BASE/1005 Class: 'LOGICAL' has no property: BFOR
> Argumentos: ( [ 1] = Tipo: B Valor: {|| ... })
>
> La instruccion dada es la siguiente me pueden tirar una ayuda.
>
> RUN REPORT oReport:toexcel();
> FOR {|mcta, mfec1, mfec2|::libromayor:cuenta=mcta .and.
> ::libromayor:fecha>=mfec1 .and. ::libromayor:fecha<=mfec2}
>
> Muchas Gracias
>
> Luis cahisa
>