|
Bem Vindo, Visitante
|
Todos os Fórums
ADVPL
|
Imprimir
Enviar Para um Amigo Precisa estar Logado
|
|
|
Assunto: |
Acesso a Variavel entre pontos de entrada |
|
Versão: |
12 |
|
Plataforma: |
Microsoft |
Complemento: |
|
|
DB: |
DB2 |
Complemento: |
|
|
|
|
|
Mensagem do
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
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 |
|
|
Mensagem do
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 |
|
|
Mensagem do
@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. |
|
|
Mensagem do
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
|
|