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:
Acesso a Variavel entre pontos de entrada
Versão:
12
Plataforma:
Microsoft
Complemento:
DB:
DB2
Complemento:
LinkedIn
Foto
Mensagem do Enviar e-mail Abrir o Perfil do usuário RAFAELBOIS RAFAELBOIS em 01/09/2017, 19:30 h
Local: PR  Registro: 24/09/2015  Postagens: 3
Olá a todos, gostaria de saber como criar uma variável em ADVPL através de um ponto de entrada no inicio de uma rotina e que ela seja acessível em outro ponto de entrada no final da mesma rotina.

Explicando melhor:

Na rotina de documento de entrada, o usuário necessita lançar diversas notas que cada uma deve movimentar o estoque em datas diferentes, como não existe um campo no protheus para esta finalidade, o usuário necessita ficar saindo e entrada na rotina a cada nota para alterar a data base e consequentemente registrar a movimentação na data correta.

Para evitar esse trabalho pensei em criar um campo para "data de entrada" ou "data movimentação" que o usuário digitasse a data e usar um ponto de entrada antes de salvar os dados para alterar a data base do sistema (dDataBase := "NovoCampo") para o conteúdo do campo informado pelo usuário, até ai tudo bem, o problema é que ao final da gravação preciso voltar a database original, antes de iniciar o novo documento e para isso pensei em usar outro PE para buscar o conteúdo de uma variável que eu inicializei ela no primeiro PE antes de alterar a data base.

Então quando chama essa variável no segundo PE, ocorre o error log dizendo a variável não existe. Como eu consigo fazer isso? Ou qual a melhor forma de solucionar o meu problema?

Mensagem do Enviar e-mail Abrir o Perfil do usuário BERGLAU BERGLAU em 01/09/2017, 20:50 h
Local: SP  Registro: 23/06/2009  Postagens: 46
Rafael,
Usa o ponto de entrada acionado no início de cada documento de entrada para alterar a database, através de um msdialog. De forma que quando gravar um doc o próximo exiba o msdialog para informar a nova database. Assim você nem precisará criar um novo campo para gravar a database. Acredito que dessa forma deva funcionar.
Glauber

Foto
Mensagem do Enviar e-mail Abrir o Perfil do usuário PAULOINGLE PAULOINGLE em 01/09/2017, 23:12 h
Local: SP  Registro: 28/02/2009  Postagens: 12
DECLARA A VARIÁVEL COMO PUBLIC NO PRIMEIRO PONTO DE ENTRADA, ASSIM ELA SERA VISÍVEL POR TODO O SISTEMA EM QUALQUER MOMENTO

Foto
Mensagem do Enviar e-mail Abrir o Perfil do usuário @BETO @BETO em 06/09/2017, 11:45 h
Local: MG  Registro: 26/01/2006  Postagens: 534
Mas este tipo de variavel e muito pouco usado, eu desde que me lembre nunca necessitei de fazer uso de uma public.

Foto
Mensagem do Enviar e-mail Abrir o Perfil do usuário STDRONI STDRONI em 26/09/2017, 15:09 h
Local: SP  Registro: 10/11/2009  Postagens: 111
Olá

Você pode utilizar STATIC fazendo com que uma funcao retorne esta variavel ou usar "SetNamePRVT" para que a variavel se torne private na pilha de chamada desejada.

ex: _SetNamedPrvt("cCodCli",Space(6), "MATA103")

Atenciosamente,

Mister "M" do ADVPL
O Mestre das Gambiarras.

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