PERGUNTAS E RESPOSTAS
 
Bem Vindo, Visitante  Todos os Fórums
  ADVPL
Enviar para a impressoraImprimir  Enviar e-mail para um amigoEnviar Para um Amigo
Precisa estar Logado

Subject Assunto:
Importação Planilha Excel
Versão:
12
Plataforma:
Microsoft
Complemento:
DB:
Oracle
Complemento:
LinkedIn
Mensagem do Enviar e-mail Abrir o Perfil do usuário DENISVIAPA DENISVIAPA em 22/10/2018, 11:08 h
Local: PR  Registro: 17/11/2016  Postagens: 6
Bom dia Pessoal,
Fiz um programa para importação de planilha de excel, no qual estou utilizando uma tabela temporária e depois faço a inserção efetiva em uma tabela customizada.
Quando clico pra importar a planilha é exibido o erro:

THREAD ERROR ([10620], michael.daguano, TIADM_4)   22/10/2018 09:42:36
argument error in function Len() on SOMA1(SOMA1.PRG) 13/07/2018 17:01:02 line : 28

Segue o código:

#INCLUDE "rwmake.ch"
#INCLUDE "fileio.ch"
#INCLUDE "topconn.ch"
#Include ‘Protheus.ch‘
#Include ‘FWMVCDef.ch‘

//-----------------------------------------//
// Monta a tela de abertura do programa //
//-----------------------------------------//

User Function Imp_Jur()
LOCAL AREGS := {}
LOCAL oLeTxt := NIL
Local bAchouTit


aCores := {{‘Z35_STATUS =="E"‘ , ‘BR_VERMELHO‘ },; // GERADO A PRE-NOTA
{‘Z35_STATUS =="I"‘ , ‘BR_VERDE‘ }} // IMPORTADO E NAO GERADO A PRE-NOTA


AROTINA := {{ "Pesquisa","AxPesqui", 0 , 1},;
{ "Importa" ,"U_IMP_J1", 0 , 2 },;
{ "Legenda","U_LEGENDJ1", 0 , 3}} //,;
//{ "Gera PreNota","xxx", 0 , 4}}

cSql := "Z35_DM = (SELECT MAX(Z35_DM) FROM Z35010)"


MBROWSE(6,1,22,75,"Z35",NIL,NIL,NIL,NIL,NIL,aCores,NIL,NIL,NIL,NIL,NIL,NIL,NIL,cSql)



Return

//---------------------------------------

User Function imp_j1()

LOCAL oLeTxt := NIL
Local bAchouTit

//PRIVATE VERSAO:=2
cPerg:="IMP_J1 "
ValidPerg()
Pergunte(cPerg,.F.)


@ 200,1 TO 380,380 DIALOG oLeTxt TITLE OemToAnsi("--Importação JURIDICO--")
//@ 02,10 TO 080,190
@ 10,018 Say " Este programa irá importar XXX"
@ 18,018 Say " "
@ 26,018 Say " "
@ 70,98 BMPBUTTON TYPE 05 ACTION Parametros()
@ 70,128 BMPBUTTON TYPE 01 ACTION Regua(oLeTxt)
@ 70,158 BMPBUTTON TYPE 02 ACTION Close(oLeTxt)
Activate Dialog oLeTxt Centered
Return

//-----------------------------------------//
// Monta a tela de abertura do programa //
//-----------------------------------------//



//-----------------------------------------//
// Cria a tela e os parâmetros //
//-----------------------------------------//

Static Function Parametros()
cPerg:="IMP_J1 "
ValidPerg()

If !Pergunte(cPerg,.T.)
Return //Cancela
EndIf
Return

//-----------------------------------------//
// Monta as perguntas e grava no SX1 //
//-----------------------------------------//
Static Function ValidPerg()

dbSelectArea("SX1")
dbSetOrder(1)
cPerg := PADR(cPerg,10)
aRegs:={}

aAdd(aRegs,{cPerg,"01","Periodo (aaaamm) :","Periodo :","Periodo :","mv_ch1","C",06,0,0,"G","","mv_par01","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""})
aAdd(aRegs,{cPerg,"02","Arquivo :","Arquivo :","Arquivo :","mv_ch2","C",30,0,0,"G","mv_par02:=cGetFile(‘Selecao |*.*|‘,‘Selecione diretorio‘) ","mv_par02","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""})
//aAdd(aRegs,{cPerg,"03","Processamento:","Processamento:","Processamento:","mv_ch3","C",01,0,0,"C","","mv_par03","Importar","","","","","Importar+Processar","","","","","Processar","","","","","","","","","","","","","","","","","","",""})

For i:=1 to Len(aRegs)
If !dbSeek(cPerg+aRegs[i,2])
RecLock("SX1",.T.)
For j:=1 to FCount()
FieldPut(j,aRegs[i,j])
Next
MsUnlock()
Endif
Next
Return(nil)




//-----------------------------------------//
// Inicializa a barra de progresso //
//-----------------------------------------//

Static Function Regua(oLeTxt)
Close(oLeTxt)

Processa({|| Letxtj() },"Importando juridico")

Return



Local cFamilia

Private AINCLUI:={}
Private AALTERA:={}
Private AMANTEM:={}
Private AEXCLUIR:={}

cTIPO :=" "
cTIPOA :=" "


// Importa o arquivo texto para um tabela temporária
bAchouTit:=.F.
_aArquivoM := {}
AADD(_aArquivoM,{ "C1","C",2900,0 })
DBCREATE( "\DATA\ARQJ1.DTC", _aArquivoM )
dbUseArea( .T. ,, "\DATA\ARQJ1.DTC" , "MJ1" )
DBSELECTAREA("MJ1")
APPEND FROM &mv_par02 SDF
dbGoTop()
nLinha:=LastRec()

dbGoTop()
ProcRegua(nLinha)
cFamilia:=""
// Processa os campos de cada linha
while !MJ1->(eof())
CLINHA:=MJ1->C1

IncProc("Importando:")

IF !EMPTY(CLINHA)
NLINHA := LEN(CLINHA)
//Alert(clinha)

IF EMPTY(cTIPO)
cTIPO := CLINHA
ENDIF

CTEXTO := ""
ATEXTO     :=     {}
FOR I := 1 TO NLINHA
IF SUBSTR(CLINHA,I,1) == ";" .OR. I == NLINHA
IF I == NLINHA .AND. SUBSTR(CLINHA,I,1) <> ";"
CTEXTO += SUBSTR(CLINHA,I,1)
ENDIF
AADD(ATEXTO,CTEXTO)
CTEXTO := ""
ELSE
CTEXTO += SUBSTR(CLINHA,I,1)
ENDIF
NEXT
ENDIF



Return

//---------------------------------------------------------------
USER FUNCTION LEGENDJ1()

Local aLegenda := {}

aAdd(aLegenda, {"BR_VERDE"     ,"Importado"})
aAdd(aLegenda, {"BR_VERMELHO"     ,"Gerado a Pre-Nota"})
BrwLegenda("Importação de Medição","Legenda",aLegenda)

RETURN(.T.)

Denis - Analista de TI
Email: denis.teixeira@viapar.com.br
Skype: dinim00@hotmail

Foto
Mensagem do Enviar e-mail Abrir o Perfil do usuário LABAMBAMOG LABAMBAMOG em 02/11/2018, 16:41 h
Local: SP  Registro: 29/08/2008  Postagens: 22
Cara, não entendi o seu programa.
Há uma chamada a rotina Letxtj (não a conheço como sendo uma rotina interna ADVPL) e não há o código, nem tampouco a chamada a SOMA1 (essa sim é interna).
Em que linha dá o erro?

Para postar no Fórum você precisa efetuar o seu login ou se registrar

 Mudar para Fórum

 

 

 
 
   
Pagina Principal Shopping PROTHEUS Tire suas duvidas Vagas Microsiga em todo Brasil Aprofunde seus conhecimentos Noticias Online Fale Conosco Pagina Principal