Me gustaria pasar un segundo dbf a la segunda hoja de la planilla abierta ( y quizas un tercero y asi... )
Aqui esta el codigo que utilizo y no se como se hace.
agradeceria una poca de ayuda.
Saludos a todos.
Code: Select all
Static Function IniciarXLS( oPadre, cFile, oProgress, cDestino, cTitInforme, lMostrar, aNombres )
Local oFileXLS, i
Local cDestinoFinal
Local lIni := .t.
Local nReg := (cFile)->( RecNo() )
Local cActividad := ""
Local nFormat1, nFormat2
Local nFont1, nFont2, nFont3, nFont4
Local aRowActividad := {}
Local nTotReg := (cFile)->( LastRec() )
Local aCamposInforme := (cFile)->( dbStruct() )
Local cRazon := SacaNombre()
MEMVAR nRow, nCol // estas variables tienen que ser declaradas publicas
// para poder ser procesadas en las formulas de Excel
DEFAULT aNombres := {}
If !Empty( cDestino )
cDestinoFinal := AllTrim( cDestino ) + ".xls"
DEFINE XLS FORMAT nFormat1 PICTURE '#,##0.00'
DEFINE XLS FORMAT nFormat2 PICTURE 'dd/mm/yyyy'
DEFINE XLS FONT nFont1 NAME "Arial" HEIGHT 16 BOLD
DEFINE XLS FONT nFont2 NAME "Arial" UNDERLINE BOLD
DEFINE XLS FONT nFont3 NAME "Arial" HEIGHT 8
DEFINE XLS FONT nFont4 NAME "Arial" HEIGHT 8 BOLD
XLS oFileXLS FILE (cDestinoFinal) AUTOEXEC
XLS COL 1 WIDTH 1 OF oFileXLS
nRow := 2
@ nRow,2 XLS SAY cTitInforme FONT nfont1 OF oFileXLS
nRow++
@ nRow,2 XLS SAY cRazon FONT nfont2 OF oFileXLS
nRow += 2
For i := 1 To Len( aCamposInforme )
XLS COL i+1 WIDTH aCamposInforme[i,3] OF oFileXLS
Next
If lMostrar
oProgress:SetRange( 1, nTotReg )
EndIf
For i := 1 To Len( aCamposInforme )
@ nRow,i+1 XLS SAY AllTrim( aCamposInforme[i,1] ) FONT nFont4 OF oFileXLS BORDER BORDER_ALL
Next
++nRow
(cFile)->( dbGoTop() )
WHILE (cFile)->( !Eof() )
For i := 1 To Len( aCamposInforme )
If aCamposInforme[i,2] == "D"
@ nRow,i+1 XLS SAY (cFile)->( FieldGet(i) ) FONT nFont3 OF oFileXLS FORMAT nFormat2
ElseIf aCamposInforme[i,2] == "N"
@ nRow,i+1 XLS SAY (cFile)->( FieldGet(i) ) FONT nFont3 OF oFileXLS FORMAT nFormat1
ElseIf aCamposInforme[i,2] == "L"
@ nRow,i+1 XLS SAY (cFile)->( FieldGet(i) ) FONT nFont3 OF oFileXLS
ElseIf aCamposInforme[i,2] == "C"
@ nRow,i+1 XLS SAY (cFile)->( FieldGet(i) ) FONT nFont3 OF oFileXLS
Else
@ nRow,i+1 XLS SAY (cFile)->( FieldGet(i) ) FONT nFont3 OF oFileXLS
EndIf
Next
++nRow
If lMostrar
oProgress:SetPos( (cFile)->(RecNo()) ) // * 100 / nTotReg )
EndIf
(cFile)->( dbSkip() )
ENDDO
(cFile)->( dbGoTop() )
SET XLS TO DISPLAY ;
OF oFileXLS
SET XLS TO PRINTER ;
HEADER "&ZFecha: &F&CSISTEMICA S.A.&DPágina Nº &P" ;
FOOTER "RANDOM (2006)" ;
TOP MARGIN 0.6 ;
BOTTOM MARGIN 0.8 ;
LEFT MARGIN 0 ;
OF oFileXLS
ENDXLS oFileXLS
EndIf
Return NIL