× Linguagem de Programação ADVPL

Perguntas Variavel Publica

Mais
10 anos 1 mês atrás #25691 por vitor kwon
Variavel Publica foi criado por vitor kwon
bom dia pessoal, estou com um problema e se possivel gostaria que compartilhassem da Vsa Sabedoria!!!...sou iniciante no ADVPL

Problema e o seguinte:

Tenho uma rotina que esta posicionada numa oferta e em um item....



User function ofertaitem()

..............

Declarei as variáveis PUBLICAS abaixo..

PUBLIC cXOfer1 := __aProd[15][1][2] - aqui ele me traz o numero da oferta certinho posicionada
PUBLIC cXItem1 := __aProd[15][1][3] - aqui ele me traz o numero do item certinho posicionada

.................

Return



Quando a rotina esta em DEBUG, ela me traz a informação na variável Publica do ponto de entrada abaixo, o que me traria certo o numero da oferta e o item pra ser atualizado o Produto

Mas não sei o motivo, quando a rotina acima esta aberta traz as informações, MAS QUANDO ENTRA NO PONTO DE ENTRADA E A ROTINA ANTERIOR FECHA , as varáveis publicas vem em branco !!!!!
Tentei por variável STATIC ,PUBLIC, Private e sempre vem em branco.........mas antes de entrar no Ponto de entrada se você abrir ele, e coloca o cursor em cima dele sai as informações certinhas , mas qdo entra no PE as informações vem em branco...

A minha duvida ficou ai nessa parte, como e variável publica, não deveria levar a informação pra o Ponto de entrada.......será que eu estou fazendo besteira....

as variáveis publicas morrem ao sair da rotina onde foi declarada?


Ponto de entrada:

User Function A010TOK(cXOfer1,cXItem1)

DbSelectArea("SUB")
DbSetOrder(1)
SUB->(DbSeek(XFILIAL("SUB") + cXOfer1 + cXItem1 ))
MSGALERT(cXOfer1)
MSGALERT(cXItem1)

RecLock("SUB",.F.)
SUB->UB_PRODUTO := SB1->B1_COD
MsUnlock()

return

Por favor Acessar ou Registrar para participar da conversa.

Mais
10 anos 1 mês atrás #25695 por admin
Respondido por admin no tópico Variavel Publica
Vitor boa tarde, estão morrendo porque vc colocou as mesmas variaveis na função do ponto de entrada como parametros:

User Function A010TOK(cXOfer1,cXItem1)

DbSelectArea("SUB")
DbSetOrder(1)
SUB->(DbSeek(XFILIAL("SUB") + cXOfer1 + cXItem1 ))
MSGALERT(cXOfer1)
MSGALERT(cXItem1)

RecLock("SUB",.F.)
SUB->UB_PRODUTO := SB1->B1_COD
MsUnlock()

return


Apenas Retire-as

User Function A010TOK()

DbSelectArea("SUB")
DbSetOrder(1)
SUB->(DbSeek(XFILIAL("SUB") + cXOfer1 + cXItem1 ))
MSGALERT(cXOfer1)
MSGALERT(cXItem1)

RecLock("SUB",.F.)
SUB->UB_PRODUTO := SB1->B1_COD
MsUnlock()

return

Por favor Acessar ou Registrar para participar da conversa.

Tempo para a criação da página:0.089 segundos
Joomla templates by a4joomla