Pergunta

Eu não sou um programador Notes, no entanto, pelos meus pecados, têm trabalhado em algumas notas características de um projeto in-house recentemente. Eu preciso ativar / desativar a edição de um campo dependendo das circunstâncias. Parece-me ser uma característica bastante normal, eu preciso, mas não consigo encontrar qualquer informação sobre como fazer isso em qualquer lugar.

Na configuração do formulário (e onchange do outro campo) código, algo como o seguinte:

if some requirement = true then
    textField.enable = true
else
    textField.enable = false
end if

Eu vi outros lugares onde há uma solução alternativa de parágrafos condicionalmente escondendo com base em algum código, tendo 2 parágrafos com condições esconderijos opostos, um com um campo editável, o outro com um campo computado. No entanto, eu não sei o suficiente sobre Notas para ver como isso é implementado (eu posso vê-lo feito em outras formas, mas parece haver alguns passos 'mágicos' dentro Notes que eu ou não pode ver ou não recebem ).

[EDIT] A resposta da Kerr parece ser o que eu estou procurando, mas eu ainda não consigo descobrir onde a propriedade INPUTAtivado está localizado. Deveria ter dito na pergunta inicial, eu estou usando o Notes 7.0.3.

Para ser justo, não importa o que as circunstâncias são para quando para ativar / desativar o campo, é apenas alguma condição boolean que está definido, no meu caso apenas em forma de carregamento, então eu nem sequer precisa se preocupar com esta mudança de forma dinâmica, enquanto o formulário é exibido.

Eu tenho alguns problemas com Notes, meu maior sendo bicho-papão que está tão ligada com tanta força para o Designer de interface do usuário, que é shite total. Eu posso fazer esse tipo de coisa programaticamente na maioria das linguagens de GUI (C #, Java, Delphi, mesmo VB), mas eu preciso caixas Propriedade aberta em notas e colocá-las corretamente.

Isso seria OK como um opcional método, mas forçando que você vá este meio maneira você pode único trabalho, bem como o IDE permite, neste caso, e o IDE aqui parece a trabalhar activamente contra você. Você não pode abrir várias funções / scripts, você não pode troca de um script para outro sem volta para os menus à esquerda indo, você não pode facilmente pesquisar a base de código para ocorrências de variáveis ??/ campos (e acredite, isso é uma grande falha para mim, porque tanto o Notes ou a base de código interno no meu caso parece fazer um monte de uso de variáveis ??globais!), você só pode trabalhar com campos através das caixas de propriedades que são exibidas, você não pode editar o código em Designer durante a depuração através do principal cliente Notes.

Enquanto o lado Java da codificação é melhor do que LotusScript, ainda é bastante baixa qualidade (porque você não pode depurar código em Java ?? Por que você precisa para arquivos JAR re-importação para cada classe Java, faz cada classe tem um caminho de classe diferente ???). Possivelmente este foi melhorada em Notes 8, eu ouço ele é baseado em Eclipse. Alguém sabe se isso é verdade ou não?

Foi útil?

Solução

Seria útil para ouvir mais detalhes sobre as 'circunstâncias', mas a forma mais comum de lidar com isso é usar um esconderijo quando a fórmula no campo que deseja ativar / desativar.

Tecnicamente você não está ativando ou desativando o campo, apenas escondê-lo, mas, geralmente, que funciona tão bem.

Uma vez que existem poucos eventos para trabalhar com no Notes, os desenvolvedores geralmente usam a atualização do documento como o 'evento' para causar o campo para ocultar ou mostrar.

Vamos supor que você tem dois campos chamados TriggerField e Assunto. Diga também que deseja desativar o assunto com base em um valor no TriggerField. A maneira mais fácil de fazer isso é para definir o TriggerField como um tipo de lista de diálogo e verifique os "campos Atualizar na mudança de palavra-chave" opção. Isto significa que quando o valor da lista de diálogo alterações, o documento inteiro vai ficar atualizado.

Então, em sua pele quando a fórmula para o campo Assunto, você especifica seus critérios para quando mostrar ou esconder esse campo. A qualquer momento mudança valores de campo, seguindo-se uma actualização da (isto é, forma) de documentos, que quando ocultar a fórmula será avaliada-re.

Existem outras maneiras, dependendo de suas circunstâncias, para resolver este problema. Se você quiser permitir que o usuário atualize a forma de si mesmos, colocar um botão no formulário que chama o comando @Command ([ViewRefreshFields]). Você pode adicionar quaisquer outras fórmulas a esse botão antes do comando de atualização se você quiser fazer outras alterações no formulário ao mesmo tempo.

Outra opção é fazer um determinado campo apenas para exibição. Em seguida, crie um botão que executa LotusScript para permitir aos usuários alterar o campo apenas para exibição. No script você pode propmt o usuário para um valor, defina o campo apenas para exibição, e depois chamar para uma atualização do documento.

Outras dicas

Em ND7 e até se você quiser apenas desativar o campo para a entrada, escreva uma fórmula adequada, na secção INPUTAtivado do campo que você deseja desativar.

Então, eu tenho dois campos um chamado Trigger, uma caixa de seleção com o valor "On" e um outro assunto que é um campo de texto. Quando o gatilho é verificada Eu quero o valor Tema a ser habilitado.

Eu simplesmente colocar a seguinte fórmula no elemento de entrada Enabled do campo Assunto:

Trigger = "On"

Eu também quero isso para ser recalculada sempre que o valor de desencadear mudanças para que eu selecionar os "campos Atualizar na mudança de palavra-chave" opção no campo Trigger.

Se você está preso em uma versão mais antiga que você precisa para se esconder parágrafos de forma adequada.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top