Bom dia senhores, alguém pode dar uma mãozinha aqui:
http://forums.fivetechsupport.com/viewt ... =6&t=29499
http://fivewin.com.br/index.php?/topic/ ... ntry266255
Obg. abs.
Exportar xBrowse Para Excel não funciona
Moderador: Moderadores
- rochinha
- Administrador

- Mensagens: 4664
- Registrado em: 18 Ago 2003 20:43
- Localização: São Paulo - Brasil
- Contato:
Exportar xBrowse Para Excel não funciona
Amiguinhos,
Eu uso a seguinte função para criar uma saida para .XLS no TwBrowse. Eu não uso o TwBrowse original da Fivewin e sim a versão de Hernan.
Para usar basta criar uma chamada em qualquer parte de sua tela passando para a função o objeto que esta suportando o browse, um titulo, .t. ou .f. se previsualiza e um vetor das colunas que deseja que saia no arquivo.
Supondo que voce tenha 20 colunas mas quer apresentar somente algumas, bastará passar o nome delas no vetor aColunas.
Eu uso a seguinte função para criar uma saida para .XLS no TwBrowse. Eu não uso o TwBrowse original da Fivewin e sim a versão de Hernan.
Para usar basta criar uma chamada em qualquer parte de sua tela passando para a função o objeto que esta suportando o browse, um titulo, .t. ou .f. se previsualiza e um vetor das colunas que deseja que saia no arquivo.
Supondo que voce tenha 20 colunas mas quer apresentar somente algumas, bastará passar o nome delas no vetor aColunas.
Código: Selecionar todos
function ReporteXLS( oRPTLbx, cTitle, lPreview, cTitle2, aColunas )
local oRpt
local nRecNo := If( Upper( oRPTLbx:cAlias ) != "ARRAY", ( oRPTLbx:cAlias )->( RecNo() ), 0 )
local aData := Eval( oRPTLbx:bLine )
local n
local nCharWidth
local oRPTFont1, oRPTFont2, oRPTFont3
public nCreditos := 0
public nDebitos := 0
nCharWidth := GetTextWidth( 0, "B", If( oRPTLbx:oFont != nil, oRPTLbx:oFont:hFont, 0 ))
DEFAULT cTitle := oRPTLbx:oWnd:cTitle, lPreview := .t.
sColunas := ""
//FOR nPos = 1 TO LEN(aColunas)
// if aColunas[nPos] <> "0"
// sColunas := sColunas + str(nPos,1) + ";"
// endif
//NEXT
CursorWait()
Eval( oRPTLbx:bGoTop )
oExcel := TOleAuto():New( "Excel.Application" )
oExcel:WorkBooks:Add()
oPasta := oExcel:Get( "ActiveSheet" )
nRow := 1
for nCol := 1 TO len( oRPTLbx:aHeaders )
oPasta:Columns( nCol ):Font:Bold := .T.
if aColunas <> nil
if aColunas[ nCol ] = "0"
loop
else
oPasta:Cells( nRow, nCol ):Value := oRPTLbx:aHeaders[ nCol ]
endif
endif
next
nRow := 2
do while .t.
aData := Eval( oRPTLbx:bLine )
for nCol := 1 to len( oRPTLbx:aHeaders )
oPasta:Columns( nCol ):Font:Bold := .F.
if aColunas <> nil
if aColunas[ nCol ] = "0"
loop
else
oPasta:Cells( nRow, nCol ):Value := aData[ nCol ]
endif
endif
next
//oRPTLbx:Skip( 1 )
nRow := nRow + 1
skip
if Eof()
exit
endif
enddo
for nCol := 1 to len( oRPTLbx:aHeaders )
oPasta:Columns( nCol ):AutoFit()
next
oExcel:Visible := .T.
oPasta:End()
oExcel:End()
CursorArrow()
if Upper( oRPTLbx:cAlias ) != "ARRAY"
( oRPTLbx:cAlias )->( DbGoTo( nRecNo ) )
endif
oRPTLbx:Refresh()
return nilOPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.
@braços : ? )
A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
@braços : ? )
A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
