- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- Consulta Específica
×
Linguagem de Programação ADVPL
Perguntas Consulta Específica
- Rômulo Barros
- Autor do Tópico
- Desconectado
- Membro Júnior
Menos
Mais
- Postagens: 37
- Obrigados Recebidos: 0
10 anos 3 meses atrás - 10 anos 3 meses atrás #23594
por Rômulo Barros
Consulta Específica foi criado 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,
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.
- andrelanzieri
- Desconectado
- Membro Júnior
Menos
Mais
- Postagens: 29
- Obrigados Recebidos: 0
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.
- Rômulo Barros
- Autor do Tópico
- Desconectado
- Membro Júnior
Menos
Mais
- Postagens: 37
- Obrigados Recebidos: 0
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,
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.
- andrelanzieri
- Desconectado
- Membro Júnior
Menos
Mais
- Postagens: 29
- Obrigados Recebidos: 0
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)
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.
- Rômulo Barros
- Autor do Tópico
- Desconectado
- Membro Júnior
Menos
Mais
- Postagens: 37
- Obrigados Recebidos: 0
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,
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.
- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- Consulta Específica
Tempo para a criação da página:0.153 segundos