Configurar os cálculos da janela
Existem duas etapas para configurar uma janela dinâmica:
- Crie um cálculo que retorna uma Função de Janela em um atributo no Designer de Objeto
- Design a janela para executar o cálculo usando Gerenciador de Janelas
Os dois procedimentos a seguir demonstram como fazer com que o campo de Impacto na janela do Incidente obrigatório se o campo de Urgência é concluído. Você usa técnicas semelhantes para as outras Funções de Janela. Exemplo de cálculos adicionais são dadas mais tarde.
Para criar o cálculo:
- Inicie o Designer de objeto e abra o objeto para a janela.
Em nosso exemplo, isto é Gerenciamento de incidentes\Incidentes. - Crie um novo atributo de string com Comp.máx. definido como -1 para armazenar o cálculo.
Recomendamos que os nomes de seus atributos de cálculo inicie com DynamicWindow, para torná-los mais fáceis de encontrar nos designers.
- Definir o Tipo de Cálculo do novo atributo para Cálculo de Janela.
A caixa de diálogo Editar fórmula é exibida. - Desmarque a caixa de seleção Detectar dependências automaticamente.
Definiremos as dependências nós mesmos. - Criar um cálculo que define o Valor para ": SetMandatory (attribute, True)".
No nosso exemplo, para fazer o atributo de Impacto obrigatório, digite o seguinte cálculo:
import System
static def GetAttributeValue(Incident):
Value = ":SetMandatory(_Impact, True);"
return Value
O exemplo de cálculo usados não é aquele que você usaria em um sistema vivo. Embora faça Impacto obrigatório se o campo de Urgência é concluído, ele não manipula a redefinição do campo se o campo de Urgência é alterado novamente mais tarde. Este exemplo é incluído apenas como parte de demonstrar os procedimentos para configuração de janelas dinâmicas. O cálculo mais completo é descrito mais tarde.
As linhas que começam com Value e return no exemplo acima tem um recuo simples. Se você copiar exemplos daqui, certifique-se de que os recuos corretos sejam mantidos quando você colá-los no editor de cálculo.
:SetMandatory usa o nome do atributo somente. Não inclua o nome do objeto (por exemplo, não use Incident._Impact). Lembre-se que se o atributo não era um atributo do sistema, ele vai começar com um sublinhado (por exemplo, _Impact).
Você pode atualizar vários atributos alvo, separando-os por ponto e vírgula. Por exemplo:
Value = “:SetMandatory(attribute1,True);:SetMandatory(attribute2,False);”
- Arraste o atributo que faz com que o cálculo seja executado a partir da árvore de Atributos para o painel Dependências.
Para nosso exemplo, arraste Urgência de Incidentes. Note que o nome do banco de dados interno para o atributo – _IncidentUrgency – aparece no painel de Dependências. - Clique em OK.
A janela Editar fórmula é fechada. - Clique em
.
As alterações ao objeto são salvas.
Agora que você criou o cálculo que define o campo como obrigatório, você pode configurar a janela para usá-lo.
Para configurar a janela:
- No Gerenciador de janelas, abra a janela desejada.
Em nosso exemplo, isto é janela de incidentes. - Adicione o atributo calculado que você criou acima sobre a janela.
O atributo deve ser adicionado à janela, mas pode ser ocultado por configurar a propriedade ShowOnWindow para False. Recomendamos que você defina ShowOnWindow como Verdadeiro enquanto você design e testa o cálculo.
- Selecione o controle que você deseja usar para acionar o cálculo.
Este é o atributo que você adicionou para o painel de Dependências no cálculo. Em nosso exemplo, isto é Urgência. - Na grade Propriedades para o controle, defina É calculado na mudança como Verdadeiro.
- Salve as alterações da janela.
Quando um usuário seleciona uma Urgência na janela do incidente, o cálculo é acionado e o valor do atributo calculado é definido como :SetMandatory(_Impact, True);. Isso então torna o campo Impacto a ser obrigatório.