/*/
Funcao: GDToExcel
Autor: Marinaldo de Jesus
Data: 01/06/2013
Descricao: Mostrar os Dados no Excel
Sintaxe: StaticCall(NDJLIB001,GDToExcel,aHeader,aCols,cWorkSheet,cTable,lTotalize,lPicture)
/*/
Static Function GDToExcel(aHeader,aCols,cWorkSheet,cTable,lTotalize,lPicture)
Local oFWMSExcel := FWMSExcel():New()
Local oMsExcel
Local aCells
Local cType
Local cColumn
Local cFile
Local cFileTMP
Local cPicture
Local lTotal
Local nRow
Local nRows
Local nField
Local nFields
Local nAlign
Local nFormat
Local uCell
DEFAULT cWorkSheet := "GETDADOS"
DEFAULT cTable := cWorkSheet
DEFAULT lTotalize := .T.
DEFAULT lPicture := .F.
BEGIN SEQUENCE
oFWMSExcel:AddworkSheet(cWorkSheet)
oFWMSExcel:AddTable(cWorkSheet,cTable)
nFields := Len( aHeader )
For nField := 1 To nFields
cType := aHeader[nField][__AHEADER_TYPE__]
nAlign := IF(cType=="C",1,IF(cType=="N",3,2))
nFormat := IF(cType=="D",4,IF(cType=="N",2,1))
cColumn := aHeader[nField][__AHEADER_TITLE__]
lTotal := ( lTotalize .and. cType == "N" )
oFWMSExcel:AddColumn(@cWorkSheet,@cTable,@cColumn,@nAlign,@nFormat,@lTotal)
Next nField
aCells := Array(nFields)
nRows := Len( aCols )
For nRow := 1 To nRows
For nField := 1 To nFields
uCell := aCols[nRow][nField]
IF ( lPicture )
cPicture := aHeader[nField][__AHEADER_PICTURE__]
IF .NOT.( Empty(cPicture) )
uCell := Transform(uCell,cPicture)
EndIF
EndIF
aCells[nField] := uCell
Next nField
oFWMSExcel:AddRow(@cWorkSheet,@cTable,aClone(aCells))
Next nRow
oFWMSExcel:Activate()
cFile := ( CriaTrab( NIL, .F. ) + ".xml" )
While File( cFile )
cFile := ( CriaTrab( NIL, .F. ) + ".xml" )
End While
oFWMSExcel:GetXMLFile( cFile )
oFWMSExcel:DeActivate()
IF .NOT.( File( cFile ) )
cFile := ""
BREAK
EndIF
cFileTMP := ( GetTempPath() + cFile )
IF .NOT.( __CopyFile( cFile , cFileTMP ) )
fErase( cFile )
cFile := ""
BREAK
EndIF
fErase( cFile )
cFile := cFileTMP
IF .NOT.( File( cFile ) )
cFile := ""
BREAK
EndIF
IF .NOT.( ApOleClient("MsExcel") )
BREAK
EndIF
oMsExcel := MsExcel():New()
oMsExcel:WorkBooks:Open( cFile )
oMsExcel:SetVisible( .T. )
oMsExcel := oMsExcel:Destroy()
END SEQUENCE
oFWMSExcel := FreeObj( oFWMSExcel )
Return( cFile )
O código original poderá ser obtido ao clicar aqui.
[]s
иαldσ dj
Naldo, desculpe aproveitar esse post, mas por gentileza, vc poderia disponibilizar o arquivo de configuração do DevStudio com as cores da fonte do editor personalizadas (fundo preto etc)?
ResponderExcluirProcurei no site e não encontrei.
Já perdi um tempo tentando deixar o editor mais legível e "agradável", mas sempre escapa alguma coisa e não fica do jeito que eu gostaria. É bem mais complexo do que o antigo IDE...
Obrigado!
Naldo, nao encontrei aqui, mas voce ja fez algo para integrar com o outlook MS? se não, voce tem alguma idéia de como fazer?
ResponderExcluirCaio, já tentou as classes TMailManager (http://tdn.totvs.com.br/display/tec/TMailManager) e TMailMessage (http://tdn.totvs.com.br/display/tec/TMailMessage)
ExcluirMuito boa a função, me deu uma grande ajuda. Parabéns pelo trabalho.
ResponderExcluir