- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- Problemas com o fonte
×
Linguagem de Programação ADVPL
Perguntas Problemas com o fonte
- VictorBDias
- Autor do Tópico
- Desconectado
- Membro Iniciado
Menos
Mais
- Postagens: 10
- Obrigados Recebidos: 0
10 anos 9 meses atrás #20960
por VictorBDias
Problemas com o fonte foi criado por VictorBDias
Pessoal estou desenvolvendo um programinha que faz a leira de um arquivo .txt, e compara com a base de dados se as informações estao ok segue o fonte:
User Function HYD130()
Private _cFile := ""
_cFile := cGetFile( "Texto (*.TXT) |*.TXT|","Selecione um arquivo ",0,"C:\",.F.,GETF_LOCALHARD+GETF_NETWORKDRIVE)
If !File(_cFile)
Aviso( "Arquivo em Branco/Invalido", "Arquivo em Branco/Inválido! Verifique!", {"Ok"} )
Return(.F.)
EndIf
If MsgYesNo("Deseja Importar registros do arquivo " +_cFile,"Importar Registro")
MsgRun( "Importando registros, aguarde...","Cadastro de Teste", {|| ImportProd(_cFile)})
Else
MsgInfo("Cancelado operação!","Atenção")
Return(.F.)
EndIf
Return(.T.)
Static Function ImportProd(_cFile)
Local cBuffer := ""
Local cNumero := ""
Local cDap := ""
Local nControl := 1
aDados := {}
_HoraI:= Time()
FT_FUSE(_cFile)
FT_FGOTOP()
nLinha := 0
While !FT_FEOF()
aLin:={}
nLinha++
cBuffer := FT_FREADLN()
For _x:= 1 to len(cBuffer)
If Substr(cBuffer,_x,1) == ";"
aAdd(aLin,Substr(cBuffer,1,_x-1))
cBuffer:=AllTrim(Substr(cBuffer,_x+1))
_x:=0
Endif
Next _X
If !Empty(cBuffer)
aAdd(aLin,cBuffer)
Endif
If nControl <> 1
DbSelectArea("SW2")
DbSetOrder(1)
]if DbSeek(xFilial("SW2")+Padr(aLin[2],TamSX3("W2_PO_NUM")[1]))
DbSelectArea("SW3")
DbSetOrder(
if DbSeek(xFilial("SW3")+Padr(aLin[2],TamSX3("W3_PO_NUM")[1])+Padr(aLin[3],TamSX3("W3_POSICAO")[1]))
cData := Alltrim(strtran(aLin[14],".","/"))
dData := ctod(cData)
if !val(aLin[6]) == Alltrim(SW3->W3_COD_I)
AADD(aLin,"")
AADD(aLin,"Codigo na ordem confirmation:")
elseif !val(aLin[8]) == Alltrim(SW3->W3_QTDE)
AADD(aLin,"")
AADD(aLin,"Quantidade na ordem confirmation:")
elseif !val(aLin[9]) == Alltrim(SW3->W3_PRECO)
AADD(aLin,"")
AADD(aLin,"Preço na ordem confirmation:")
elseif !dData == SW3->W3_DTENTR
AADD(aLin,"")
AADD(aLin,"Data de Entrega na ordem confirmation:")
elseif Alltrim(aLin[10]) == Alltrim(SW2->W2_MOEDA)
AADD(aLin,"")
AADD(aLin,"Moeda na ordem confirmation:")
else
AADD(aLin,"OK")
AADD(aLin,"")
endif
else
AADD(aLin,"P.O "+aLin[2]+" - Item "+aLin[3]+"Não encontrados.")
endif
else
AADD(aLin,"P.O "+aLin[2]+" Não encontrado.")
endif
else
aAdd(aLin,"Resultado")
aAdd(aLin,"Observação")
endif
aAdd(aDados,aLin)
nControl++
FT_FSKIP()
EndDo
FT_FUSE()
DlgtoExcel({{"ARRAY",'',{},aDados}})
return
alguém pode me ajudar? Pois ele não sai do if da coluna que utilizam a tabela SW2
User Function HYD130()
Private _cFile := ""
_cFile := cGetFile( "Texto (*.TXT) |*.TXT|","Selecione um arquivo ",0,"C:\",.F.,GETF_LOCALHARD+GETF_NETWORKDRIVE)
If !File(_cFile)
Aviso( "Arquivo em Branco/Invalido", "Arquivo em Branco/Inválido! Verifique!", {"Ok"} )
Return(.F.)
EndIf
If MsgYesNo("Deseja Importar registros do arquivo " +_cFile,"Importar Registro")
MsgRun( "Importando registros, aguarde...","Cadastro de Teste", {|| ImportProd(_cFile)})
Else
MsgInfo("Cancelado operação!","Atenção")
Return(.F.)
EndIf
Return(.T.)
Static Function ImportProd(_cFile)
Local cBuffer := ""
Local cNumero := ""
Local cDap := ""
Local nControl := 1
aDados := {}
_HoraI:= Time()
FT_FUSE(_cFile)
FT_FGOTOP()
nLinha := 0
While !FT_FEOF()
aLin:={}
nLinha++
cBuffer := FT_FREADLN()
For _x:= 1 to len(cBuffer)
If Substr(cBuffer,_x,1) == ";"
aAdd(aLin,Substr(cBuffer,1,_x-1))
cBuffer:=AllTrim(Substr(cBuffer,_x+1))
_x:=0
Endif
Next _X
If !Empty(cBuffer)
aAdd(aLin,cBuffer)
Endif
If nControl <> 1
DbSelectArea("SW2")
DbSetOrder(1)
]if DbSeek(xFilial("SW2")+Padr(aLin[2],TamSX3("W2_PO_NUM")[1]))
DbSelectArea("SW3")
DbSetOrder(
if DbSeek(xFilial("SW3")+Padr(aLin[2],TamSX3("W3_PO_NUM")[1])+Padr(aLin[3],TamSX3("W3_POSICAO")[1]))
cData := Alltrim(strtran(aLin[14],".","/"))
dData := ctod(cData)
if !val(aLin[6]) == Alltrim(SW3->W3_COD_I)
AADD(aLin,"")
AADD(aLin,"Codigo na ordem confirmation:")
elseif !val(aLin[8]) == Alltrim(SW3->W3_QTDE)
AADD(aLin,"")
AADD(aLin,"Quantidade na ordem confirmation:")
elseif !val(aLin[9]) == Alltrim(SW3->W3_PRECO)
AADD(aLin,"")
AADD(aLin,"Preço na ordem confirmation:")
elseif !dData == SW3->W3_DTENTR
AADD(aLin,"")
AADD(aLin,"Data de Entrega na ordem confirmation:")
elseif Alltrim(aLin[10]) == Alltrim(SW2->W2_MOEDA)
AADD(aLin,"")
AADD(aLin,"Moeda na ordem confirmation:")
else
AADD(aLin,"OK")
AADD(aLin,"")
endif
else
AADD(aLin,"P.O "+aLin[2]+" - Item "+aLin[3]+"Não encontrados.")
endif
else
AADD(aLin,"P.O "+aLin[2]+" Não encontrado.")
endif
else
aAdd(aLin,"Resultado")
aAdd(aLin,"Observação")
endif
aAdd(aDados,aLin)
nControl++
FT_FSKIP()
EndDo
FT_FUSE()
DlgtoExcel({{"ARRAY",'',{},aDados}})
return
alguém pode me ajudar? Pois ele não sai do if da coluna que utilizam a tabela SW2
Por favor Acessar ou Registrar para participar da conversa.
- lalberto
- Desconectado
- Administrador
Menos
Mais
- Postagens: 3676
- Obrigados Recebidos: 6
10 anos 9 meses atrás #20966
por lalberto
Luiz Alberto Vieira Alves
Proprietário
55 (12) 9 8256-5905 (Vivo)
www.3lsystems.com.br
www.masteradvpl.com.br
Respondido por lalberto no tópico Problemas com o fonte
Não sai do IF ? Não entendi, não sai ou não entra no if ?
Luiz Alberto Vieira Alves
Proprietário
55 (12) 9 8256-5905 (Vivo)
www.3lsystems.com.br
www.masteradvpl.com.br
Por favor Acessar ou Registrar para participar da conversa.
- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- Problemas com o fonte
Tempo para a criação da página:0.119 segundos