- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- Exportar dados do Protheus para Excel
×
Linguagem de Programação ADVPL
Perguntas Exportar dados do Protheus para Excel
- iguerreiro
- Autor do Tópico
- Desconectado
- Membro Iniciado
Menos
Mais
- Postagens: 9
- Obrigados Recebidos: 0
11 anos 4 meses atrás #15350
por iguerreiro
Exportar dados do Protheus para Excel foi criado por iguerreiro
Bom dia,
Sou novata com Protheus, principalmente em ADVPL.
Criamos uma customização, onde o resultado da consulta é gerado no Excel.
Porém estou com um problema.
A última coluna do array não está trazendo os dados no excel.
Alguém poderia me ajudar, desde já agradeço.
Sou novata com Protheus, principalmente em ADVPL.
Criamos uma customização, onde o resultado da consulta é gerado no Excel.
Porém estou com um problema.
A última coluna do array não está trazendo os dados no excel.
Alguém poderia me ajudar, desde já agradeço.
Por favor Acessar ou Registrar para participar da conversa.
- will3698
- Desconectado
- Membro Dourado
Menos
Mais
- Postagens: 310
- Obrigados Recebidos: 1
11 anos 4 meses atrás #15351
por will3698
Respondido por will3698 no tópico Exportar dados do Protheus para Excel
Olha , sendo esse o problema , ficou meio vago pra tentar ajudar,
O correto seria debugar o código com um break na linha responsável por preencher a coluna, e ver se ela esta ok , enfim , é algo mais especifico.
pra que consigamos ajudar , precisamos no mínimo ver o seu código , talvez vendo somente a linha citada, ja consigamos entender o problema ..
tente nos passar mais informação.
att
O correto seria debugar o código com um break na linha responsável por preencher a coluna, e ver se ela esta ok , enfim , é algo mais especifico.
pra que consigamos ajudar , precisamos no mínimo ver o seu código , talvez vendo somente a linha citada, ja consigamos entender o problema ..
tente nos passar mais informação.
att
Por favor Acessar ou Registrar para participar da conversa.
- kanaamlrr
- Desconectado
- Membro Platina
Menos
Mais
- Postagens: 1576
- Obrigados Recebidos: 4
- iguerreiro
- Autor do Tópico
- Desconectado
- Membro Iniciado
Menos
Mais
- Postagens: 9
- Obrigados Recebidos: 0
11 anos 4 meses atrás - 11 anos 4 meses atrás #15359
por iguerreiro
Respondido por iguerreiro no tópico Exportar dados do Protheus para Excel
Me desculpem..rs
Segue o código...
User Function AnaFINM001(_aHd, _aCol, _cTitle, _nTotal)
Private aHeader := {}
Private aCols := {}
Private aButtons := {}
aHeader := aClone(_aHd)
aCols := aClone(_aCol)
Define MsDialog oAnaFINM001 Title _cTitle From 9, 0 To 38, 80 //Of oMainWnd
oGetDados := MsGetDados():New(17, 05, 168, 310, 1, , , , .F., , , .F., 2000, , , , , oAnaFINM001)
Define FONT _oFont NAME "Courier New" BOLD
@ 179, 190 Say "Total:" Pixel FONT _oFont COLOR CLR_BLUE
@ 179, 250 Say Transform(_nTotal, "@E 9,999,999,999.99") Pixel FONT _oFont COLOR CLR_BLUE
@ 172, 184 To 193, 310 Of oAnaFINM001 Pixel
DlgToExcel({ {"GETDADOS", "Fluxo de Caixa", aHeader, aCols} })
Activate MsDialog oAnaFINM001 Centered On Init EnchoiceBar(oAnaFINM001, {|| oAnaFINM001:End()}, {|| oAnaFINM001:End()}, , aButtons)
Return
User Function F3SC6Pedido(_dDataIni, _dDataFin)
Local _cQuery
Local _nValItem := 0
Local _nValor := 0
Private aRotina := {{"Pesquisa", "AxPesqui", 0, 1}}
Private aHeader := {}
Private aCols := {}
Private lRefresh
_cQuery := "SELECT A1_NREDUZ, C6_LOJA, C6_NUM, C6_ITEM, C6_ENTREG, C6_QTDVEN, C6_QTDENT, C6_PRCVEN "
_cQuery += "FROM SC6010 SC6 INNER JOIN SA1010 SA1 ON SC6.C6_CLI = SA1.A1_COD AND SC6.C6_LOJA = SA1.A1_LOJA INNER JOIN SF4010 SF4 ON SC6.C6_TES = SF4.F4_CODIGO "
_cQuery += "WHERE SC6.C6_FILIAL = '" + xFilial("SC6") + "' AND SF4.F4_FILIAL = '" + xFilial("SF4") + "' "
_cQuery += "AND (SC6.C6_ENTREG >= '" + DToS(_dDataIni) + "' AND SC6.C6_ENTREG <= '" + DToS(_dDataFin) + "') "
_cQuery += "AND SF4.F4_DUPLIC = 'S' AND SC6.C6_BLOQUEI <> 'R' "
_cQuery += "AND SC6.D_E_L_E_T_ = ' ' AND SF4.D_E_L_E_T_ = ' ' "
_cQuery += "ORDER BY SC6.C6_VALOR DESC "
TCQUERY _cQuery NEW ALIAS "SC6Pedido"
SC6Pedido->(dbGoTop())
aAdd(aHeader, {"Cliente" , "A1_NREDUZ" , "@!" , 30, 0, , "", "C", "", ""})
aAdd(aHeader, {"Loja" , "C6_LOJA" , "@!" , 6, 0, , "", "C", "", ""})
aAdd(aHeader, {"Numero PV" , "C6_NUM" , "@!" , 6, 2, , "", "C", "", ""})
aAdd(aHeader, {"Item" , "C6_ITEM" , "@!" , 2, 0, , "", "C", "", ""})
aAdd(aHeader, {"Data Entrega" , "C6_ENTREG" , "@D" , 8, 0, , "", "D", "", ""})
aAdd(aHeader, {"Valor" , "C6_VALOR" , "@E 9,999,999,999.99" , 18, 0, , "", "N", "", ""})
While !SC6Pedido->(Eof())
_nValItem := (SC6Pedido->C6_QTDVEN - SC6Pedido->C6_QTDENT) * SC6Pedido->C6_PRCVEN
If _nValItem <> 0
aAdd(aCols, {SC6Pedido->A1_NREDUZ, SC6Pedido->C6_LOJA, SC6Pedido->C6_NUM, SC6Pedido->C6_ITEM, stod(SC6Pedido->C6_ENTREG), _nValItem})
_nValor += _nValItem
SC6Pedido->(dbSkip())
Else
SC6Pedido->(dbSkip())
Endif
EndDo
If Len(aCols) = 0
Alert("Não há registros a exibir!")
SC6Pedido->(dbCloseArea())
Return
EndIf
U_AnaFINM001(aHeader, aCols, "Pedidos aberto no período", _nValor)
SC6Pedido->(dbCloseArea())
Return
Segue o código...
User Function AnaFINM001(_aHd, _aCol, _cTitle, _nTotal)
Private aHeader := {}
Private aCols := {}
Private aButtons := {}
aHeader := aClone(_aHd)
aCols := aClone(_aCol)
Define MsDialog oAnaFINM001 Title _cTitle From 9, 0 To 38, 80 //Of oMainWnd
oGetDados := MsGetDados():New(17, 05, 168, 310, 1, , , , .F., , , .F., 2000, , , , , oAnaFINM001)
Define FONT _oFont NAME "Courier New" BOLD
@ 179, 190 Say "Total:" Pixel FONT _oFont COLOR CLR_BLUE
@ 179, 250 Say Transform(_nTotal, "@E 9,999,999,999.99") Pixel FONT _oFont COLOR CLR_BLUE
@ 172, 184 To 193, 310 Of oAnaFINM001 Pixel
DlgToExcel({ {"GETDADOS", "Fluxo de Caixa", aHeader, aCols} })
Activate MsDialog oAnaFINM001 Centered On Init EnchoiceBar(oAnaFINM001, {|| oAnaFINM001:End()}, {|| oAnaFINM001:End()}, , aButtons)
Return
User Function F3SC6Pedido(_dDataIni, _dDataFin)
Local _cQuery
Local _nValItem := 0
Local _nValor := 0
Private aRotina := {{"Pesquisa", "AxPesqui", 0, 1}}
Private aHeader := {}
Private aCols := {}
Private lRefresh
_cQuery := "SELECT A1_NREDUZ, C6_LOJA, C6_NUM, C6_ITEM, C6_ENTREG, C6_QTDVEN, C6_QTDENT, C6_PRCVEN "
_cQuery += "FROM SC6010 SC6 INNER JOIN SA1010 SA1 ON SC6.C6_CLI = SA1.A1_COD AND SC6.C6_LOJA = SA1.A1_LOJA INNER JOIN SF4010 SF4 ON SC6.C6_TES = SF4.F4_CODIGO "
_cQuery += "WHERE SC6.C6_FILIAL = '" + xFilial("SC6") + "' AND SF4.F4_FILIAL = '" + xFilial("SF4") + "' "
_cQuery += "AND (SC6.C6_ENTREG >= '" + DToS(_dDataIni) + "' AND SC6.C6_ENTREG <= '" + DToS(_dDataFin) + "') "
_cQuery += "AND SF4.F4_DUPLIC = 'S' AND SC6.C6_BLOQUEI <> 'R' "
_cQuery += "AND SC6.D_E_L_E_T_ = ' ' AND SF4.D_E_L_E_T_ = ' ' "
_cQuery += "ORDER BY SC6.C6_VALOR DESC "
TCQUERY _cQuery NEW ALIAS "SC6Pedido"
SC6Pedido->(dbGoTop())
aAdd(aHeader, {"Cliente" , "A1_NREDUZ" , "@!" , 30, 0, , "", "C", "", ""})
aAdd(aHeader, {"Loja" , "C6_LOJA" , "@!" , 6, 0, , "", "C", "", ""})
aAdd(aHeader, {"Numero PV" , "C6_NUM" , "@!" , 6, 2, , "", "C", "", ""})
aAdd(aHeader, {"Item" , "C6_ITEM" , "@!" , 2, 0, , "", "C", "", ""})
aAdd(aHeader, {"Data Entrega" , "C6_ENTREG" , "@D" , 8, 0, , "", "D", "", ""})
aAdd(aHeader, {"Valor" , "C6_VALOR" , "@E 9,999,999,999.99" , 18, 0, , "", "N", "", ""})
While !SC6Pedido->(Eof())
_nValItem := (SC6Pedido->C6_QTDVEN - SC6Pedido->C6_QTDENT) * SC6Pedido->C6_PRCVEN
If _nValItem <> 0
aAdd(aCols, {SC6Pedido->A1_NREDUZ, SC6Pedido->C6_LOJA, SC6Pedido->C6_NUM, SC6Pedido->C6_ITEM, stod(SC6Pedido->C6_ENTREG), _nValItem})
_nValor += _nValItem
SC6Pedido->(dbSkip())
Else
SC6Pedido->(dbSkip())
Endif
EndDo
If Len(aCols) = 0
Alert("Não há registros a exibir!")
SC6Pedido->(dbCloseArea())
Return
EndIf
U_AnaFINM001(aHeader, aCols, "Pedidos aberto no período", _nValor)
SC6Pedido->(dbCloseArea())
Return
Ultima edição: 11 anos 4 meses atrás por iguerreiro.
Por favor Acessar ou Registrar para participar da conversa.
- kanaamlrr
- Desconectado
- Membro Platina
Menos
Mais
- Postagens: 1576
- Obrigados Recebidos: 4
11 anos 4 meses atrás #15361
por kanaamlrr
Respondido por kanaamlrr no tópico Exportar dados do Protheus para Excel
Tenta mudar a sua coluna de numérico para string.
Pode ser isso.
Coloca como C no tipo do aHeader e faz a tratativa como numérico pra fazer o cálculo, mas qnd for passar pro aCols usa um transform() ou str()
Pode ser isso.
Coloca como C no tipo do aHeader e faz a tratativa como numérico pra fazer o cálculo, mas qnd for passar pro aCols usa um transform() ou str()
Por favor Acessar ou Registrar para participar da conversa.
- viniciusms
- Desconectado
- Membro Iniciado
Menos
Mais
- Postagens: 3
- Obrigados Recebidos: 0
11 anos 4 meses atrás #15374
por viniciusms
Respondido por viniciusms no tópico Exportar dados do Protheus para Excel
Adiciona uma coluna a mais no vetor de itens com "". Acho que isso resolve.
Por favor Acessar ou Registrar para participar da conversa.
- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- Exportar dados do Protheus para Excel
Tempo para a criação da página:0.155 segundos