Pergunta

Eu tenho um datawindow contendo vários campos.Eu quero escrever uma expressão de validação para um campo denominado amount.Eu tenho mais dois campos denominados debit e credit.Se a soma do débito e o crédito é maior do que a quantidade, então eu quero mostrar uma mensagem de validação para o usuário.

Como posso escrever a necessária validação de expressão na Coluna Especificação do que datawindow?

Eu também quero escrever a expressão de validação para um campo denominado test.Há um campo chamado criteria.Quando este campo é definido para 1, eu quero o campo de teste para ser um campo obrigatório.Como posso escrever a expressão de validação para isso?

Foi útil?

Solução

Existem diferentes maneiras de se fazer isso, dependendo se você tem que usar a coluna é necessária a validação de expressão ou ter a licença para fazê-lo de maneiras diferentes.

Considerações De Design

Será que isso vai ser um freestyle datawindow, onde você só precisa validar a regra uma vez para a tela, ou uma tabela de estilo, onde os usuários podem massa introduzir conjuntos de dados e a regra precisa ser aplicada a cada linha?

Você quer exigir que os usuários para inserir os valores corretos cada vez que um campo obrigatório obtém o foco ou você quer deixá-los livremente navegar na tela e validar a poupar tempo?

Você vai obter algumas respostas diferentes aqui, eu espero, mas eu prefiro usar a coluna especificação de expressões apenas para verificações simples, porque:

  • Complicado lógica tende a ficar difícil de ler e manter
  • Se você tiver várias condições de erro que você está verificando, que pode levar a alguns difíceis de manejar mensagens se você usar a coluna especificação do built-in mensagem de erro campo

No entanto, eu vou conceder o dw expressões são geralmente muito rápido.

Usando um Campo Calculado para as Regras de Validação

Uma técnica alternativa é também um performer rápido e pode ser usado na maioria das versões do PB.

  • Tem um campo calculado sobre o datawindow que tem um nome significativo, como cf_amount_rule e algo como isso na expressão: if (debit + credit = amount, 0, 1)
  • Faça com que esse campo invisível para o usuário, se você quiser
  • Adicionar outro campo calculado no rodapé a soma cf_amount_rule e agora você tem um útil ponto de referência que, rapidamente, diz-lhe quando houver um erro
  • No poupar tempo (ou a pfc_validation evento PFC usuários) você pode verificar soma > 0 e poste uma mensagem de erro

OO puristas pode sugerir que é errado para colocar lógica em datawindow e se você encontrar-se colocar na mesma regra em vários datawindows que é, certamente, um código de cheiro.Mas, por simples regras que são susceptíveis de mudar descobri mais uma vez que o datawindow é muito eficiente na execução destas regras e poupando-o de ter que escrever muito código em qualquer lugar.

Opcional Guloseimas

  • Você pode fazer a mensagem de erro mais robusta, usando o método find() funcionalidade para identificar linhas específicas com o erro
  • Você forneça útil visuais para o seu blog por alterar a linha ou um campo de cor do plano de fundo através da propriedade expressões que fazem referência a cf_amount_rule.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top