× Linguagem de Programação ADVPL

Perguntas Consulta Específica

Mais
10 anos 3 meses atrás - 10 anos 3 meses atrás #23594 por Rômulo Barros
Boa noite.

Estou quebrando a cabeça faz tempo com esta situação, então resolvi postar aqui para ver se alguém pode me ajudar.

Possuo um campo C6_XXXXXX Caracter de tamanho 17 que está associado a uma consulta específica. Esta consulta exibe uma tela e permite que o usuário selecione, em um MSSELECT, uma determinada opção única e retorna este conteúdo. Até aqui está funcionando perfeitamente. Preciso bloquear para que o usuário NÃO DIGITE nada diretamente neste campo no grid dos itens do pedido de venda, ou seja, tem que permitir apenas que o conteúdo seja selecionado a partir da consulta específica [F3]. Alguém pode me ajudar por favor?

Grato,
Ultima edição: 10 anos 3 meses atrás por Rômulo Barros.

Por favor Acessar ou Registrar para participar da conversa.

Mais
10 anos 3 meses atrás #23605 por andrelanzieri
Respondido por andrelanzieri no tópico Consulta Específica
Tenta criar uma validação no campo utilizando a função ProcName(2). Nunca testei, não sei se irá retonar o seu fonte do MSSELECT

Por favor Acessar ou Registrar para participar da conversa.

Mais
10 anos 3 meses atrás #23606 por Rômulo Barros
Respondido por Rômulo Barros no tópico Consulta Específica
Bom dia.

Não entendi o que você quis dizer, André. Pode detalhar um pouco, por favor?

Apenas para facilitar o entendimento, este campo C6_XXXXXX ele é Caractere de tamanho 17, e poderá ser preenchido apenas com o conteúdo de 01 até 06, separados por uma barra "/". Esta barra também deverá ser salva na base de dados.

Alguns exemplos de valores válidos:

01/02/03
02/05
06/01
01/02/03/04/05/06

Muito obrigado,

Por favor Acessar ou Registrar para participar da conversa.

Mais
10 anos 3 meses atrás #23608 por andrelanzieri
Respondido por andrelanzieri no tópico Consulta Específica
Faz assim então. Coloca na validação de usuário do campo C6_XXXXXX a função U_ValidaXX()

Veja se é isso que voce está precisando

User Function ValidaXX()
Local lRet := .T.
Local cOpcoes := "01/02/03/04/05/06"

IF !(M->C6_XXXXXX $ cOpcoes)
ALERT("Expressão Invalida")
lRet := .F.
endif

Return(lRet)

Por favor Acessar ou Registrar para participar da conversa.

Mais
10 anos 3 meses atrás - 10 anos 3 meses atrás #23618 por Rômulo Barros
Respondido por Rômulo Barros no tópico Consulta Específica
Era como eu estava fazendo, porém existiam duas dificuldades:
1 - Esta validação de usuário SEMPRE é executada, independente da confirmação ou não da consulta padrão;
2 - Existiam outras validações a serem feitas, porém eu acreditava que existia uma forma de contornar isto.

Outra que esses valores informados não podem ser duplicados (já criei uma rotina para validar esta situação), e outra coisa era que estes valores informados formam a nomenclatura de campos. Ex: 01/02 iria representar dois campos (LBW_COMP01 e LBW_COMP02.... LBW_COMPXX).

Enfim, validei todas as situações em uma rotina, conforme dito por você, e invoco este a partir da VALIDAÇÃO DO USUÁRIO. A única dificuldade agora é a situação que informo no item 2, pois esta validação sempre é executada quando a consulta padrão é ativada... mas mesmo assim está dando pra contornar.

Muito obrigado,
Ultima edição: 10 anos 3 meses atrás por Rômulo Barros.

Por favor Acessar ou Registrar para participar da conversa.

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