- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- Atribuir conteudo do campo a uma variavel no pedido de venda
×
Linguagem de Programação ADVPL
Perguntas Atribuir conteudo do campo a uma variavel no pedido de venda
- Lemos
- Autor do Tópico
- Desconectado
- Membro Júnior
Menos
Mais
- Postagens: 20
- Obrigados Recebidos: 0
10 anos 2 semanas atrás #26024
por Lemos
Pessoal bom dia,
Estou necessitando que no momento da inclusao/alteração do pedido de venda, o sistema realize a validação do conteudo do campo C6_ITEMPC(Item do pedido de compra) quando o campo C6_NUMPCOM(Numero do pedido de compra) estiver preenchido. Ou seja, o conteudo do campo C6_ITEMPC não pode estar vazio, quando o campo C6_NUMPCOM estiver preenchido. Utilizei o ponto de entrada M410LIOK() que faz a validação antes de passar para proxima linha. O que não estou conseguindo é atribuir o conteudo do campo C6_NUMPCOM para a variavel.
Segue abaixo o fonte:
User Function M410LIOK()
Local cNumPC := SC6->C6_NUMPCOM
Local cItPC := SC6->C6_ITEMPC
Local lRetorno:=.F.
If cNumPC =' '
lRetorno:= .T.
Elseif cItPC =' '
Alert("Preencher o item do pedido de compra.")
lRetorno:= .F.
Else
lRetorno:= .T.
EndIf
Return(lRetorno)
No aguardo,
Lemos
Estou necessitando que no momento da inclusao/alteração do pedido de venda, o sistema realize a validação do conteudo do campo C6_ITEMPC(Item do pedido de compra) quando o campo C6_NUMPCOM(Numero do pedido de compra) estiver preenchido. Ou seja, o conteudo do campo C6_ITEMPC não pode estar vazio, quando o campo C6_NUMPCOM estiver preenchido. Utilizei o ponto de entrada M410LIOK() que faz a validação antes de passar para proxima linha. O que não estou conseguindo é atribuir o conteudo do campo C6_NUMPCOM para a variavel.
Segue abaixo o fonte:
User Function M410LIOK()
Local cNumPC := SC6->C6_NUMPCOM
Local cItPC := SC6->C6_ITEMPC
Local lRetorno:=.F.
If cNumPC =' '
lRetorno:= .T.
Elseif cItPC =' '
Alert("Preencher o item do pedido de compra.")
lRetorno:= .F.
Else
lRetorno:= .T.
EndIf
Return(lRetorno)
No aguardo,
Lemos
Por favor Acessar ou Registrar para participar da conversa.
- cchenrique2009
- Desconectado
- Membro Iniciado
Menos
Mais
- Postagens: 13
- Obrigados Recebidos: 0
10 anos 2 semanas atrás - 10 anos 2 semanas atrás #26029
por cchenrique2009
Respondido por cchenrique2009 no tópico Atribuir conteudo do campo a uma variavel no pedido de venda
Bom dia,
Como você já está posicionado no C6, poderia usar diretamente !Empty(Nome_do_Campo) para verificar se está preenchido, sem necessitar atribuir valores a variáveis. Atribuir valor a variável neste seu caso seria dar uma volta a mais para o mesmo resultado.
Se não estou enganado, para alteração seria !Empty(SC6->C6_NUMPCOM) e para Inclusão !Empty(M->C6_NUMPCOM)
Abraços
Como você já está posicionado no C6, poderia usar diretamente !Empty(Nome_do_Campo) para verificar se está preenchido, sem necessitar atribuir valores a variáveis. Atribuir valor a variável neste seu caso seria dar uma volta a mais para o mesmo resultado.
Se não estou enganado, para alteração seria !Empty(SC6->C6_NUMPCOM) e para Inclusão !Empty(M->C6_NUMPCOM)
Abraços
Ultima edição: 10 anos 2 semanas atrás por cchenrique2009.
Por favor Acessar ou Registrar para participar da conversa.
- kanaamlrr
- Desconectado
- Membro Platina
Menos
Mais
- Postagens: 1576
- Obrigados Recebidos: 4
10 anos 2 semanas atrás #26032
por kanaamlrr
Respondido por kanaamlrr no tópico Atribuir conteudo do campo a uma variavel no pedido de venda
Bom dia Lemos,
Sempre que você está validando alguma informação que está na tela, você deve utilizar as variáveis de memória e não a tabela.
Dessa forma ficaria M->C6_NUMPCOM
Outro detalhe é que se você estiver utilizando um grid, e sua validação é na troca de linha, você tem que pegar a informação do array aCols utilizando o array aHeader como base para saber em qual coluna está o seu campo que irá pegar a informação.
Por exemplo:
nPos := aScan(aHeader,{|x| x[2]=="C6_NUMPCOM"})
//
cNumPC := aCols[n][nPos]
Sempre que você está validando alguma informação que está na tela, você deve utilizar as variáveis de memória e não a tabela.
Dessa forma ficaria M->C6_NUMPCOM
Outro detalhe é que se você estiver utilizando um grid, e sua validação é na troca de linha, você tem que pegar a informação do array aCols utilizando o array aHeader como base para saber em qual coluna está o seu campo que irá pegar a informação.
Por exemplo:
nPos := aScan(aHeader,{|x| x[2]=="C6_NUMPCOM"})
//
cNumPC := aCols[n][nPos]
Por favor Acessar ou Registrar para participar da conversa.
- Lemos
- Autor do Tópico
- Desconectado
- Membro Júnior
Menos
Mais
- Postagens: 20
- Obrigados Recebidos: 0
10 anos 1 semana atrás #26093
por Lemos
Respondido por Lemos no tópico Atribuir conteudo do campo a uma variavel no pedido de venda
Pessoal bom dia,
Realizei as alterações necessárias e deu certo.
Obrigado.
Ficou assim:
User Function M410LIOK()
Local nPos:= aScan(aHeader,{|x| AllTrim(x[2]) == "C6_NUMPCOM"})
Local cNumPC:=acols[n][nPos]
Local nPos1:= aScan(aHeader,{|x| AllTrim(x[2]) == "C6_ITEMPC"})
Local cItemPC:=acols[n][nPos1]
Local lRetorno
If cNumPC =' ' .And. cItemPC=' '
lRetorno:= .T.
Elseif cNumPC <>' ' .And. cItemPC<>' '
lRetorno:= .T.
Else
Alert("Favor preencher o pedido/item do pedido de compra.")
lRetorno:= .F.
EndIf
Return(lRetorno)
Realizei as alterações necessárias e deu certo.
Obrigado.
Ficou assim:
User Function M410LIOK()
Local nPos:= aScan(aHeader,{|x| AllTrim(x[2]) == "C6_NUMPCOM"})
Local cNumPC:=acols[n][nPos]
Local nPos1:= aScan(aHeader,{|x| AllTrim(x[2]) == "C6_ITEMPC"})
Local cItemPC:=acols[n][nPos1]
Local lRetorno
If cNumPC =' ' .And. cItemPC=' '
lRetorno:= .T.
Elseif cNumPC <>' ' .And. cItemPC<>' '
lRetorno:= .T.
Else
Alert("Favor preencher o pedido/item do pedido de compra.")
lRetorno:= .F.
EndIf
Return(lRetorno)
Por favor Acessar ou Registrar para participar da conversa.
- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- Atribuir conteudo do campo a uma variavel no pedido de venda
Tempo para a criação da página:0.122 segundos