Gracias Cassiano, voy a probarlo.
Un saludo
"Cassiano de Oliveira" <
calunaty@calunaty.com.br> escribió en el mensaje news:[email=53d109f3@svctag-j7w3v3j....]53d109f3@svctag-j7w3v3j....[/email]
Miras se le ayuda
************************************************************ ********************
procedure RelExcel(dt1, dt2, cAlias, bCond)
************************************************************ *******************
LOCAL pag:=0, cl:=0, nTot:=0, lin:=0, tot_ger:=0, cCabec:=""
LOCAL dData := CTOD(" / / "), aProduto := {}
LOCAL cTela := Savescreen(s_geral)
LOCAL nPos := 0
Local cPara
LOCAL getlist:={}, cTitulo1:="", cCliente:=""
LOCAL cArq :='', nLidos:=0
LOCAL oExcel, oSheet, cIntervalo, i, xTotalVend, xTotalCust, xTotalEstq, nLinPlan
SETCOLOR(vcn)
Produto->( ORDSETFOCUS('produto2') )
INDEX ON DTOS(DATA) + PEDIDO + PRCODI TO iTmpCotAgrp FOR (cAlias)->Data >= dt1 .AND. (cAlias)->data <= dt2 // ..AND. (cAlias)->cancelado!='S'
aArq:={{"PRCODI", "C", 06, 0},;
{"PRDESC", "C", 40, 0},;
{"PRQTDE", "N", 10, 3},;
{"VL_TOT", "N", 12, 3},;
{"ESTQATUAL", "N", 12, 3}}
DBCREATE((arq_temp), aArq)
Open_file(arq_temp,"TMP_ITENS","ITENS DE VENDA AGRUPADOS",.T.)
INDEX ON Prcodi TO (arq_temp)
WHILE COTACAO->(!EOF())
TMP_ITENS->( AdiReg(0) )
TMP_ITENS->Prcodi := (cAlias)->PrCodi
TMP_ITENS->Prdesc := (cAlias)->descricao
TMP_ITENS->Prqtde := (cAlias)->qtde
TMP_ITENS->VL_TOT := (cAlias)->vl_total
TMP_ITENS->ESTQATUAL := Produto->PrEstq
(cAlias)->( DBSKIP() )
END
PG := 1
lin := 1
ntotQtd := 0
nTotValor := 0
INDEX ON PRDESC TO (arq_temp)
//---------------------------------
IF (oExcel := Cria_OLE("Excel.Application", "Erro! O Excel n„o esta Ativado ou N„o instalada nesse Computador", ..T.) ) == NIL
RETURN
ENDIF
oExcel:WorkBooks:Add()
oSheet := oExcel:ActiveSheet
oSheet:Name := 'An lise de Or‡amentos' //cTitulo1 + ' Per¡odo do Relat¢rio:' + Dt2Dig(dt1) + ' a ' + Dt2Dig(dt2)
oSheet:Cells( 1, 1 ):Value := "Codigo"
oSheet:Cells( 1, 2 ):Value := "Descricao"
oSheet:Cells( 1, 3 ):Value := "Qtde Orcamentos"
oSheet:Cells( 1, 4 ):Value := "Estq Atual"
oSheet:Cells( 1, 5 ):Value := "Vlr. Medio"
oSheet:Cells( 1, 6 ):Value := "Vlr. Total"
FOR i=1 to 6
oSheet:Cells( 1, i ):Font:Bold := ..T.
oSheet:Cells( 1, i ):Font:ColorIndex := 2 //-- Cor da letra
oSheet:Cells( 1, i ):Interior:ColorIndex := 11 //-- Cor de Fundo
oSheet:Cells( 1, i ):HorizontalAlignment := -4108 // Alinhamento Centro
oSheet:Columns(i):ColumnWidth := 15 // Tamanho da Coluna
NEXT
oSheet:Columns(2):ColumnWidth := 40 // Tamanho da Coluna
oSheet:Cells( 1, 1 ):Select()
oExcel:Visible := .F.
nLinPlan := 2
xTotalEstq := xTotalCust := xTotalVend := 0
WHILE TMP_ITENS->(!EOF())
Mensag("Gerando..."+ STR( (( (nLinPlan-1) / TMP_ITENS->(LastRec()) )*100),3)+"%")
oSheet:Cells( nLinPlan, 1 ):Value := Alltrim(TMP_ITENS->prcodi)
oSheet:Cells( nLinPlan, 2 ):Value := Alltrim(TMP_ITENS->PrDesc)
oSheet:Cells( nLinPlan, 3 ):Value := TMP_ITENS->PrQtde
oSheet:Cells( nLinPlan, 4 ):Value := TMP_ITENS->ESTQATUAL
oSheet:Cells( nLinPlan, 5 ):Value := TMP_ITENS->VL_TOT/TMP_ITENS->PRQTDE
oSheet:Cells( nLinPlan, 6 ):Value := TMP_ITENS->VL_TOT
//-- Totaliza
ntotQtd += TMP_ITENS->PrQtde
nTotValor += TMP_ITENS->Vl_TOT
// Formatar célula:
oSheet:Cells( nLinPlan, 1 ):NumberFormat := "000000"
oSheet:Cells( nLinPlan, 4 ):NumberFormat := "#.##0,00"
oSheet:Cells( nLinPlan, 5 ):NumberFormat := "#.##0,00"
oSheet:Cells( nLinPlan, 6 ):NumberFormat := "#.##0,00"
//oExcel.ActiveSheet.UsedRange.EntireColumn.Autofit
// Alinhamento das celulas:
oSheet:Cells( nLinPlan, 1 ):HorizontalAlignment := 3 //-- Centro
oSheet:Cells( nLinPlan, 5 ):HorizontalAlignment := 4 //-- Right
oSheet:Cells( nLinPlan, 6 ):HorizontalAlignment := 4 //-- Right
cIntervalo := 'A' + ALLTRIM(STR(nLinPlan)) + ':F' + ALLTRIM(STR(nLinPlan))
// Faz Zebrado
IF (nLinPlan % 2) != 0
oSheet:Range(cIntervalo):Interior:ColorIndex := 35
ENDIF
nLinPlan++
TMP_ITENS->( DBSKIP() )
END
oSheet:Cells( nLinPlan, 4 ):Value := ntotQtd
oSheet:Cells( nLinPlan, 4 ):Font:Bold := ..T.
oSheet:Cells( nLinPlan, 4 ):Font:ColorIndex := 02 //-- Cor da letra Branca
oSheet:Cells( nLinPlan, 4 ):HorizontalAlignment := 4 //-- Right
oSheet:Cells( nLinPlan, 4 ):NumberFormat := "#.##0,00"
oSheet:Cells( nLinPlan, 6 ):Value := nTotValor
oSheet:Cells( nLinPlan, 6 ):Font:Bold := ..T.
oSheet:Cells( nLinPlan, 6 ):Font:ColorIndex := 02 //-- Cor da letra Branca
oSheet:Cells( nLinPlan, 6 ):HorizontalAlignment := 4 //-- Right
oSheet:Cells( nLinPlan, 6 ):NumberFormat := "#.##0,00"
oSheet:Range( 'A' + ALLTRIM(STR(nLinPlan)) + ':F' + ALLTRIM(STR( nLinPlan ))):Interior:ColorIndex := 21
// Colocar Bordas:
cIntervalo := 'A1:F' + ALLTRIM(STR( nLinPlan ) )
oSheet:Range(cIntervalo):Borders(1):LineStyle:= 1
oSheet:Range(cIntervalo):Borders(2):LineStyle:= 1
oSheet:Range(cIntervalo):Borders(3):LineStyle:= 1
oSheet:Range(cIntervalo):Borders(4):LineStyle:= 1
* Retrieve the FileFormat
nFileFormat = oExcel:WorkBooks(1):FileFormat
cArq := CurDirSys() + 'ProdOrcAgrp' + cTerminal + '.xls'
Ferase( cArq)
oSheet:SaveAs( cArq, 56 ) // Salva no Excel 8.0
inkey(1)
Executa(cArq)
oExcel:WorkBooks:Close()
oExcel:Quit()
oExcel := NIL // Libera o Excel
DBCLOSEALL()
RETURN
"Francisco Martínez García" <
pacoelche@hotmail.com> wrote in message news:53d0ec2d$[email=1@svctag-j7w3v3j....]1@svctag-j7w3v3j....[/email]
Hola:
He visto en las new una libreria (filexls) para pasar datos a una hoja excel, pero no he localizado como utilizarla.
Si alguien puede decirme como funciona y si me puede enviar un ejemplo, pues mejor que mejor.
Muchísimas gracias por vuestra colaboración.
Paco Martínez
Elche
------------------------------------------------------------ ------------------
Este email está limpo de vírus e malwares porque a proteção do avast! Antivírus está ativa.
--