Confira abaixo os montadores utilizados para Agregados ou cesse diretamente o conteúdo que você tem dúvida:
- Montador %IDmódulo.IDAgregado.InformaçãoDesejada%
- Montador %CHECKED(IDmódulo. IDAgregado)%
- Montador $HASCHILDREN(ID_DA_ENTIDADE)$
Montador !Find
O montador !Find é utilizado para buscar as informações de um determinado grupo ou entidade. Geralmente é utilizado nas montagens de referências de Modelos Formatos, mas pode ser empregado em várias outras funções na personalização do Promob.
O Find somente pode ser utilizado para a busca de referências quando esta busca refere-se a um dos agregados do item.
Para buscar a informação de uma determinada referência de um agregado de módulo:
!find(entityid,id_entidade).$REFERENCE(informacao)$!
Para buscar a informação de uma determinada referência de um agregado de grupo:
!find(groupid,id_grupo).$REFERENCE(informacao)$!
IMPORTANTE: Para que o comando !find(groupid) consiga localizar as informações no Grupo de Modelos Formato, é essencial que esse grupo seja configurado como um agregado de grupo. Utilizar o !find(groupid) para pesquisar informações em Grupos de Modelos Formato que contenham apenas modelos individuais como agregados de módulo pode comprometer a confiabilidade da busca, resultando em ausência de informações ou respostas imprecisas.
EXEMPLO 1:
!find(groupid,POR_MOD_INF*).$REFERENCE(FORMATO)$!
Neste exemplo, a busca será pela referência FORMATO dentro de qualquer item (*) do grupo (groupid) POR_MOD_FOR*.
IMPORTANTE: O * usado no final do ID serve para que a referência procure em todos os grupos que tiver a ID POR_MOD_FOR mesmo que contenha alguma informação após o FOR como por exemplo a ID POR_MOD_FOR_INF, isso facilita na hora de procurar os IDs nos modelos formatos de porta.
EXEMPLO 2:
!find(entityid,POR_COZ_INF).$D$!
Neste exemplo, a busca será feita pela profundidade ($D$) da entidade (entityid) POR_COZ_INF.
IMPORTANTE: Para que retorne o resultado, o agregado em questão deve estar ativo.
Montador !FindAndJoin
O montador !FindAndJoin é utilizado para buscar as informações de todas as repetições do item e somar as respostas. Ou seja, ele é utilizado para buscar os acabamentos de todos os itens filhos do item pai. Assim como o montador Find!, com ele, é possível utilizar em diferentes locais e buscar diferentes variáveis e referências.
EXEMPLO:
Para o cadastro de uma porta com dois painéis de diferentes tipos de acabamentos:
1. Referência PAINEIS com o valor !findAndJoin(groupid,id_do_grupo,-).#DESCRIPTION#!
OBSERVAÇÃO: O separador utilizado no montador é o hífen ( - )
2. id_do_grupo como ID do grupo de painéis;
3. Descrição da porta (item pai) busca a referência PAINEIS;
4. Cada Painel do grupo de painéis tem a descrição Painel #POSITION# @modelo_cor@;
5. Porta com 2 painéis, onde, o painel na posição 1 será Preto e o painel na posição 2 será Branco, o nome da porta no ambiente será: Painel 2 Branco - Painel 1 Preto.
OBSERVAÇÃO: É possível indicar ao invés do valor groupid, o valor entityid, e ID_da_entidade quando não existe um grupo de itens. Abaixo seguem imagens na prática:
Na Função de Travessas desta porta, está setado apenas um módulo, por isso, o montador fica !findAndjoin(entityid.'. Se fosse um grupo de vidros, buscaria o 'findAndjoin(groupid.'
Ainda neste exemplo, na referência do item pai, o montador buscou a entidade, o id da entidade e a descrição dos itens filhos do painel da porta (imagem acima), ficando: !findAndjoin(entityid,rom_r_mov_co_pai_p_mon_ocu_int_vid_s,-).#DESCRIPTION#!
No ambiente 3D, ao selecionar a porta com dois tipos de acabamento, é possível visualizar a descrição dos dois tipos de acabamentos presentas nela.
Montador %IDmódulo.IDAgregado.InformaçãoDesejada%
Além do Find, é possível utilizar o montador abaixo para buscar uma informação de agregado. Este montador deve ser usado somente no item que possui o item citado na fórmula agregado.
%IDmódulo.IDAgregado.InformaçãoDesejada%
EXEMPLO:
%POR_MOD_FOR_INF.Modelo.$REFERENCE(FORMATO)%
No exemplo, a informação buscada será a referência FORMATO no item ou grupo POR_MOD_FOR_INF.
A informação desejada pode ser algum montador (não relacionado ao ambiente).
EXEMPLO:
Montador %IDmódulo.IDAgregado.$EntityID$%
Retorna o nome (abreviatura) do agregado.
Montador %IDmódulo.IDAgregado.$Width$%
Retorna a largura do agregado.
Montador %IDmódulo.IDAgregado.$Reference(COMPLETE)$%
Retorna a referência COMPLETE do agregado.
IMPORTANTE: Para que retorne o resultado, o agregado em questão deve estar ativo.
Montador %CHECKED(IDmódulo. IDAgregado)%
O montador CHECKED verifica se o agregado está marcado. Esta função é útil quando a referência é diferente dependendo do agregado que estiver ativo ou em condições de visibilidade, onde determinado agregado somente será visível caso o agregado X esteja ativo.
%CHECKED(IDmódulo. IDAgregado)% == ‘TRUE’
Montador $HASCHILDREN(ID_DA_ENTIDADE)$
Retorna true/false, se o contém a entidade filha;