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:
Retornar conteudo de campo
Versão:
.
Plataforma:
.
Complemento:
DB:
.
Complemento:
JASB1COD.PRW (anexo)
LinkedIn
Foto
Mensagem do Enviar e-mail Abrir o Perfil do usuário GWIERZBA GWIERZBA em 19/01/2021, 15:19 h
Local: SP  Registro: 08/12/2020  Postagens: 5
Estou iniciando em ADVPL e gostaria de saber como posso retornar o ultimo registro do campo B1_DESC em uma nova inclusão de cadastro.
No caso, quando fosse incluir um regitro, o campo retorna o valor do ultimo cadastro + sequencial 01.

Exemplo: TESTE01 (Teste=Ultimo Registro + 01)

Obrigado desde já.

Foto
Mensagem do Enviar e-mail Abrir o Perfil do usuário INFOBRENO INFOBRENO em 19/01/2021, 16:11 h
Local: MT  Registro: 02/03/2011  Postagens: 117
Ou voce utiliza o sequenciador padrão do protheus

GetSx8Num("SB1","B1_COD")

ou você pode usar o fonte em anexo que enviei, as instruções de como utilizar estão no código.

Breno Nogueira

Foto
Mensagem do Enviar e-mail Abrir o Perfil do usuário GWIERZBA GWIERZBA em 19/01/2021, 16:41 h
Local: SP  Registro: 08/12/2020  Postagens: 5
Olá, Breno! Tudo bem?

Como posso utilizar seu fonte, quando o cadastro não é feito só por numeração? A B1_COD é alimentada com letras também.

Obrigado!

Foto
Mensagem do Enviar e-mail Abrir o Perfil do usuário LUCASLOTT LUCASLOTT em 20/01/2021, 08:48 h
Local: SP  Registro: 21/05/2020  Postagens: 49
Bom dia, pelo que entendi você gostaria de retornar a última descrição do produto cadastrado + 01, no inicializador padrão do campo você chama uma User Function por exemplo U_UltCadB1(), e faz o fonte mais ou menos ou menos assim (ele pode ser usado para o cod também se for o caso), caso for para o código basta ajustar a query para faça a concatenação do cod junto ao 01.

User Function UltCadB1()
Local cRet := "" // Variavel de retorno
Local cSql := ""

cSql := " SELECT TOP 1"
cSql += " (RTRIM(B1_DESC) + ‘01‘) B1_DESC"
cSql += " FROM " + RetSqlName("SB1")
cSql += " WHERE D_E_L_E_T_ = ‘ ‘"
cSql += " ORDER BY R_E_C_N_O_ DESC" // ordena do maior para o menor, selecionando o top 1 pegando o último registro não deletado gravado no banco.

cSql := ChangeQuery(cSql)
TCQUERY cSql NEW ALIAS "QRYSB1"

DbSelectArea("QRYSB1")

While QRYSB1->(!EOF())
cRet := QRYSB1->B1_DESC
QRYSB1->(DbSkip())
EndDo
QRYSB1->(DbCloseArea())

Return(cRet)


Lucas Lott
Desenvolvedor ADVPL
lucas@domaagropecuaria.com

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