Clipper On Line • Ver Tópico - Exportar xBrowse Para Excel não funciona

Exportar xBrowse Para Excel não funciona

Discussão sobre a biblioteca Fivewin - O Clipper para Windows.

Moderador: Moderadores

 

Exportar xBrowse Para Excel não funciona

Mensagempor Kapiaba » 28 Out 2014 10:48

Kapiaba
Colaborador

Colaborador
 
Mensagens: 1766
Data de registro: 07 Dez 2012 15:14
Cidade/Estado: São Paulo
Curtiu: 311 vezes
Mens.Curtidas: 119 vezes

Exportar xBrowse Para Excel não funciona

Mensagempor rochinha » 14 Nov 2014 20:52

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.
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 nil
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para fivolution@hotmail.com. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Avatar de usuário

rochinha
Membro Master

Membro Master
 
Mensagens: 4547
Data de registro: 18 Ago 2003 20:43
Cidade/Estado: São Paulo - Brasil
Curtiu: 806 vezes
Mens.Curtidas: 246 vezes




Retornar para FiveWin

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 4 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro