Perguntas Importação CSV
- advpl_os
- Autor do Tópico
- Desconectado
- Membro Iniciado
- Postagens: 9
- Obrigados Recebidos: 0
Quero fazer esse arquivo pegar o índice 3 da minha SZB e atualizar campos específicos com os dados do arquivo. Porém ele não cai no bloco do Reclock de alteração.
Alguém consegue me dar uma ajuda????????
Segue código.:
/*/
ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
±±ÚÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄ ÂÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄ¿±±
±±³Fun‡…o ³CSV_TICKET³ Autor ³ Osmair ³ Data ³ 01-08-2021 ³±±
±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄ ÁÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄ´±±
±±³Descri‡…o ³ Retorno dos dados processados Ticket ³±±
±±³ ³ . ³±±
±±ÀÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ÄÙ±±
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
*/
User Function TIMPCSV()
Processa({||IMPSZB()},"Importando CSV. Aguarde...")
Return
Static Function IMPSZB()
Local nx := 0
Private aTxt := {}
Private aRet := {}
If ParamBox({ {6,"Arquivo",SPACE(50),"","FILE(mv_par01)","", 55 ,.T.,"Arquivo .CSV |*.CSV"}},;
"Importa Retorno Ticket",@aRet,,)
//{1,"Importar .CSV",SPACE(10),"","dbSeek(xFilial('AF8')+AllTrim(mv_par03))","AF8","", 45 ,.F.},;
//{3,"Versao do Project",1 ,{"Portugues","Ingles"},70,,.F.},;
If (nHandle := FT_FUse(AllTrim(aRet[1])))== -1
Help(" ",1,"NOFILEIMPOR")
Return
EndIf
FT_FGOTOP()
While !FT_FEOF()
PmsIncProc(.T.)
cLinha := FT_FREADLN()
AADD(aTxt,{})
nCampo := 1
While At(";",cLinha)>0
aAdd(aTxt[Len(aTxt)],Substr(cLinha,1,At(";",cLinha)-1))
nCampo ++
cLinha := StrTran(Substr(cLinha,At(";",cLinha)+1,Len(cLinha)-At(";",cLinha)),'"','')
Enddo
If Len(AllTrim(cLinha)) > 0
aAdd(aTxt[Len(aTxt)],StrTran(Substr(cLinha,1,Len(cLinha)),'"','') )
Else
aAdd(aTxt[Len(aTxt)],"")
Endif
FT_FSKIP()
Enddo
FT_FUSE()
DBSELECTAREA("SZB")
DBSETORDER(3)
cFilSZB := xFilial("SZB")
For nX := 2 to Len(aTxt)
cZBMat := STRZERO(VAL(aTxt[nx][07]),6)
cZBData := STRZERO(VAL(aTxt[nx][02]),6)
cZBPedi := aTxt[nx][01]
cZBGSTT := aTxt[nx][34]
cZBOBST := aTxt[nx][38]
cZBVlPr := aTxt[nx][29]
cZBVLOt := aTxt[nx][35]
IF DBSeek(xFilial("SZB")+cZBMat+ZB_COMP)
DBGOTOP()
// * Se o Registro não for encontrado, ele abre um novo Registro em Branco e Grava as Informações da Importação * //
While !EOF() .AND. xFilial("SZB") == cFilSZB .AND. SZB->ZB_MAT == cZBMat .AND. SZB->ZB_COMP == cZBData
Reclock("SZB",.F.)
SZB->ZB_PED1 := cZBPedi
SZB->ZB_VLPRC1 := cZBVlPr
SZB->ZB_SALDO1 := cZBVLOt
SZB->ZB_GSTT := cZBGSTT
SZB->ZB_OBST := cZBOBST
SZB->(MsUnlock())
Enddo
EndIF
Next Nx
ApMsgInfo("Importacao concluida com sucesso!","Sucesso!")
Endif
Return
Por favor Acessar ou Registrar para participar da conversa.
- admin
- Desconectado
- Administrador
- Postagens: 297
- Obrigados Recebidos: 21
/*/
ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
±±ÚÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄ ÂÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄ¿±±
±±³Fun‡…o ³CSV_TICKET³ Autor ³ Osmair ³ Data ³ 01-08-2021 ³±±
±±ÃÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄ ÁÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄ´±±
±±³Descri‡…o ³ Retorno dos dados processados Ticket ³±±
±±³ ³ . ³±±
±±ÀÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ÄÙ±±
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
*/
User Function TIMPCSV()
Processa({||IMPSZB()},"Importando CSV. Aguarde...")
Return
Static Function IMPSZB()
Local nx := 0
Private aTxt := {}
Private aRet := {}
If ParamBox({ {6,"Arquivo",SPACE(50),"","FILE(mv_par01)","", 55 ,.T.,"Arquivo .CSV |*.CSV"}},;
"Importa Retorno Ticket",@aRet,,)
//{1,"Importar .CSV",SPACE(10),"","dbSeek(xFilial('AF8')+AllTrim(mv_par03))","AF8","", 45 ,.F.},;
//{3,"Versao do Project",1 ,{"Portugues","Ingles"},70,,.F.},;
If (nHandle := FT_FUse(AllTrim(aRet[1])))== -1
Help(" ",1,"NOFILEIMPOR")
Return
EndIf
FT_FGOTOP()
While !FT_FEOF()
PmsIncProc(.T.)
cLinha := FT_FREADLN()
AADD(aTxt,{})
nCampo := 1
While At(";",cLinha)>0
aAdd(aTxt[Len(aTxt)],Substr(cLinha,1,At(";",cLinha)-1))
nCampo ++
cLinha := StrTran(Substr(cLinha,At(";",cLinha)+1,Len(cLinha)-At(";",cLinha)),'"','')
Enddo
If Len(AllTrim(cLinha)) > 0
aAdd(aTxt[Len(aTxt)],StrTran(Substr(cLinha,1,Len(cLinha)),'"','') )
Else
aAdd(aTxt[Len(aTxt)],"")
Endif
FT_FSKIP()
Enddo
FT_FUSE()
DBSELECTAREA("SZB")
DBSETORDER(3)
cFilSZB := xFilial("SZB")
For nX := 2 to Len(aTxt)
cZBMat := STRZERO(VAL(aTxt[nx][07]),6)
cZBData := STRZERO(VAL(aTxt[nx][02]),6)
cZBPedi := aTxt[nx][01]
cZBGSTT := aTxt[nx][34]
cZBOBST := aTxt[nx][38]
cZBVlPr := aTxt[nx][29]
cZBVLOt := aTxt[nx][35]
IF DBSeek(xFilial("SZB")+cZBMat+ZB_COMP)
Reclock("SZB",.F.)
SZB->ZB_PED1 := cZBPedi
SZB->ZB_VLPRC1 := cZBVlPr
SZB->ZB_SALDO1 := cZBVLOt
SZB->ZB_GSTT := cZBGSTT
SZB->ZB_OBST := cZBOBST
SZB->(MsUnlock())
EndIF
Next Nx
ApMsgInfo("Importacao concluida com sucesso!","Sucesso!")
Endif
Return
Por favor Acessar ou Registrar para participar da conversa.
- admin
- Desconectado
- Administrador
- Postagens: 297
- Obrigados Recebidos: 21
- advpl_os
- Autor do Tópico
- Desconectado
- Membro Iniciado
- Postagens: 9
- Obrigados Recebidos: 0
- advpl_os
- Autor do Tópico
- Desconectado
- Membro Iniciado
- Postagens: 9
- Obrigados Recebidos: 0
Ao entrar no Reclock o sistema apresentou esse erro.
Por favor Acessar ou Registrar para participar da conversa.
- admin
- Desconectado
- Administrador
- Postagens: 297
- Obrigados Recebidos: 21
Ao entrar no Reclock o sistema apresentou esse erro.
Aparentemente são divergências de tipos de campo, esta tentando gravar um valor numérico num campo caracter ou vice e versa, os campos devem coincidir com os tipos das variaveis, caracter com caracter, numero com numero, data com data etc.
verifique sua tabeal SZB e compare todos os campos com as variaveis que está tentando gravar ok.
Por favor Acessar ou Registrar para participar da conversa.