Pergunta
Como vincular por proprietário em um formulário?
Responder Vamos supor que em algum lugar, por exemplo, em um formulário de lista de registro, você queira dar ao usuário a oportunidade de especificar interativamente a unidade de armazenamento de um item. "Nomenclatura" é um livro de referência. “Unidade de armazenamento” é um diretório subordinado à nomenclatura. O diretório “Nomenclatura” geralmente contém muitos elementos. Se estivermos na forma de uma lista de registros, simplesmente adicionamos duas colunas - “Item” e “Unidade de armazenamento”, então quando tentarmos selecionar interativamente uma “unidade de armazenamento” ela irá congelar. Já escrevemos sobre isso no artigo “Como definir a seleção de um elemento subordinado de um diretório”. E aqui veremos o problema de uma perspectiva um pouco diferente.
Para evitar o congelamento, geralmente é atribuída “Comunicação pelo proprietário”. Veja a foto. À esquerda da figura está o formulário da lista de registros, à direita da figura estão as propriedades do campo de entrada “ex” (o mesmo que está marcado à esquerda no formulário da lista de registros com letras vermelhas “ex”) . Para determinar de forma única o proprietário (não de forma programática), para o campo de entrada “ex”, preencha o campo marcado na figura com o número “1” - “Relacionamento por proprietário”, onde é indicada a ligação com o campo “Nomenclatura” .
Pergunta
Como estabelecer programaticamente um link por proprietário em um formulário?
Responder Porém, acontece que o proprietário precisa instalar programaticamente, dependendo de alguma condição.
Digamos que o campo “EX” da lista de cadastros precise ser associado ao campo proprietário “Unidade de Transporte” (que também é um elemento do diretório “Nomenclatura”), caso a unidade de transporte esteja preenchida, e caso não esteja preenchida in, então o proprietário deverá ser considerado o valor no campo “Nomenclatura” - ver índice número 3 na figura.
Como implementar isso?
A questão é que neste caso, o campo 1 “Relacionamento por proprietário” não precisa ser preenchido. Mas no campo 2 “Início da seleção” é necessário indicar o procedimento no qual a conexão por proprietário será determinada programaticamente por meio de uma diretiva "Escolha pelo Proprietário".
Procedimento de exemplo:
Pergunta
Elemento. SelectByOwner = Proprietário;
Responder Fim do procedimento
Como adicionar programaticamente um novo elemento de diretório se ele tiver um proprietário.
// ... - aqui é igual, preenchemos todos os dados necessários
// na verdade, escreve a unidade de armazenamento criada no banco de dados:
EX. Escrever() ;
Informações retiradas do site
Vejamos o problema de uma perspectiva ligeiramente diferente.
Por exemplo, o campo “IST” da lista de registos necessita de ser associado ao campo proprietário “Unidade de Transporte” (que também é um elemento do directório “Nomenclatura”), caso a unidade de transporte esteja preenchida, e caso contrário preenchido, então o valor do campo “Nomenclatura” deverá ser considerado proprietário - ver índice nº 3 da figura.
Como isso é implementado?
Neste caso, o campo 1 “Relacionamento por titular” não precisa ser preenchido. Mas ao mesmo tempo é necessário no campo 2 “Início da seleção” indicar o procedimento no qual a conexão por proprietário será determinada programaticamente através da diretiva “Selecionar pelo proprietário”.
Procedimento de exemplo:
Procedimento Lista de Registro de Informações Seleção de Início da Unidade de Armazenamento (Elemento, Processamento Padrão)
Proprietário = Formulário Elements.Information RegisterList.CurrentData.Nomenclature;
Se ValueFilled(FormElements.InformationRegisterList.CurrentData.TransportUnit) Então
Se Form Elements.Information RegisterList.CurrentData.Transport Unit.Item Type = Transfers.usItem Types.Cargo Então
Proprietário = Elementos do formulário.Information RegisterList.CurrentData.TransportUnit
fimSe;
fimSe;
Item.SelectByOwner = Proprietário;
Fim do procedimento
Precisamos criar programaticamente um novo elemento de diretório “Unidades de Armazenamento”, cujo proprietário é o diretório “Nomenclatura”
Isso é feito assim:
// cria um novo elemento de diretório "Unidades de Armazenamento":
IST = Diretórios.StorageUnits.CreateItem();
// anote o proprietário dele - um link para a nomenclatura, onde "Nomenclatura" é um elemento do diretório "Nomenclatura" definido anteriormente
HIST.Proprietário = Nomenclatura.Link;
//defina o nome e outros detalhes:
IST.Name = "Unidade ABS";
HIST.Coeficiente = 1;
//... preencha os detalhes restantes
// na verdade, escreve a unidade de armazenamento criada no banco de dados:
IST.Write();