by hugodatapro » Fri Jun 05, 2015 12:44 am
ya te anexo el codigo donde hago la exportacion (para que puedas verlo), lo hago usando la funcion TOleAuto(), el problema esta en que no me deja convertir el formato de la columna
oExcel := TOleAuto():New( "Excel.Application" )
oExcel:WorkBooks:Add()
oHoja := oExcel:ActiveSheet()
oHoja:Cells:Font:Name := "Arial"
oHoja:Cells:Font:Size := 10
// TITLE
oHoja:Cells( 1, 1 ):Value := "Mayor Analitico Centro de Costo"
oHoja:Cells( 1, 1 ):Font:Size := 12
oHoja:Cells( 1, 1 ):Font:Bold := .T.
// SUBTITLE
oHoja:Cells( 2, 1 ):Value := "Datapro"
oHoja:Cells( 2, 1 ):Font:Size := 12
oHoja:Cells( 2, 1 ):Font:Bold := .F.
oTable:=OpenTable("SELECT * FROM DPCENCOS ")
aCencos:=ASQL("SELECT CEN_CODIGO,CEN_DESCRI FROM DPCENCOS")
IF !Empty(oFrm:cCenDes) .AND. !Empty(oFrm:cCenHas)
cWhere:="CEN_CODIGO"+GetWhere(">=",oFrm:cCenDes) + " AND " +;
"CEN_CODIGO"+GetWhere("<=",oFrm:cCenHas)
oTable:=OpenTable("SELECT * FROM DPCENCOS WHERE "+cWhere)
aCencos:=ASQL("SELECT CEN_CODIGO,CEN_DESCRI FROM DPCENCOS WHERE "+cWhere)
ENDIF
oFrm:oMeter:SetTotal(oTable:RecCount())
WHILE !oTable:Eof()
oFrm:oMeter:Set(oTable:RecNo())
IF Empty(cSql)
cSql:="SELECT CTA_CODIGO"
ENDIF
IF !Empty(csql)
cSql:=cSql+",IF(CEN_CODIGO"+GetWhere("=",oTable:CEN_CODIGO)+",SUM(MOC_MONTO),0) AS '"+oTable:CEN_DESCRI+"'"
ENDIF
oTable:DbSkip()
ENDDO
cWhere:="WHERE MOC_FECHA"+GetWhere(">=",oFrm:dDesde) + " AND " +;
" MOC_FECHA"+GetWhere("<=",oFrm:dHasta)
IF !Empty(oFrm:cCodigo) .AND. !Empty(oFrm:cCodHas)
cWhere:=cWhere + " AND MOC_CUENTA"+GetWhere(">=",oFrm:cCodigo) + " AND " +;
" AND MOC_CUENTA"+GetWhere("<=",oFrm:cCodHas)
ENDIF
cSql:=cSql+" FROM DPASIENTOS INNER JOIN DPCTA ON CTA_CODIGO=MOC_CUENTA " +;
"INNER JOIN DPCENCOS ON MOC_CENCOS=CEN_CODIGO " +cWhere+ "GROUP BY CTA_CODIGO"
oExport:=OpenTable(cSql,.T.)
oHoja:Cells( 3, 1 ):Value := "Cuenta"
oHoja:Cells( 3, 1 ):Font:Size := 8
oHoja:Cells( 3, 1 ):Font:Bold := .F.
nLine:=1
FOR I=1 TO LEN(aCencos)
nLine++
cDescri:=STRTRAN(aCencos[I,2]," ","")
oHoja:Cells( 3, nLine ):Value :=cDescri
oHoja:Cells( 3, nLine ):Font:Size := 8
oHoja:Cells( 3, nLine ):Font:Bold := .F.
NEXT I
nLine:=3
WHILE !oExport:Eof()
nLine++
AEVAL(oExport:aFields,{|a,n| oHoja:Cells( nLine, n ):Value := oExport:FieldGet(n),;
oHoja:Cells( nLine, n ):Font:Size := 10,;
oHoja:Cells( nLine, n ):Font:Bold := .F.})
oExport:DbSkip
ENDDO
oHoja := oExcel:ActiveSheet()
oExcel:Visible := .T.
oExcel:End()