Minha chave função retorna o que eu quero, porém dá erro.

Necessito que um campo tenha um inicializador padrão que pegue a maior chave do campo, por exemplo a maior atualmente é a A003 ele identifica, retorna somando mais um, que seria o A004, até aí tudo bem, tá retornando para a chave que eu quero, debuguei no Vscode e vi que tava retornando assim. porém antes de aparecer a tela do cadastro com a nova chave, aparece esse erro: variable does not exist A04 on {|a,b,c| FWInitCpo(a,b,c),xRet:=(A04),FWCloseCpo(a,b,c,.T.),FwSetVarMem(a,b,xRet),xRet }(PROTHEUSFUNCTIONMVC.PRX) 06/07/2021 19:07:04 line : 5499. Gostaria de saber se alguém, saberia resolver.

compartilhar
  • cChave = getchave(cTabela) oStZX5:SetProperty('ZX5_CHAVE', MODEL_FIELD_INIT, FwBuildFeature(STRUCT_FEATURE_INIPAD, cChave))

    Victor Hugo   03 de Jun de 2022
  • Static Function getChave(cTabela) Local cChave := '' Local cQuery := "SELECT MAX(ZX5CHAVE) CHAVE FROM "+RetSqlName("ZX5") cQuery += " WHERE D_E_L_E_T='' AND ZX5_TABELA ='"+cTabela+"' "

    if select('qryZX5') > 0 qryZX5->(dbCloseArea()) endif TcQuery cQuery new Alias 'qryZX5'

    if empty(qryZX5->CHAVE) cChave := '000001' else cChave := substr(qryZX5->CHAVE,1,1) + alltrim(strzero(val(substr(qryZX5->CHAVE,2,5))+1, len(alltrim(qryZX5->CHAVE))-1)) endif Return cChave

    Victor Hugo   03 de Jun de 2022
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do TOTVS DevForum!

2 respostas

Não é a resposta que estava procurando? Procure outras perguntas com as tags advpl vscode protheus ou faça a sua própria pergunta.