sexta-feira, 3 de setembro de 2010

Trabalhando com portais, sem o uso do filter portal records, nem sempre ele resolve

O novo recurso do Filemaker 11, Filter portal record é muito útil mas ainda não dá pra filtrar muitas coisas, atendendo uma duvida de um amigo da lista Filemaker Brasil resolvi fazer esse artigo, espero que gostem e seja útil.

Bem vamos vamos começar com os relacionamentos, para esse exemplo vamos querer mostrar todos os produtos personalizados de um determinado cliente, para isso teremos três tabelas:

  • ficha tecnica;
  • produtos personalizados e
  • clientes.

Veja o relacionamento com a ficha_tecnica e produtos_personalizados
Relacionamento acima.
Os campos acima são:




produtos_personalizados ( Tabela )



ficha_tecnica_idfk number
REL_cliente_idfk Calculation – Result text 0 & "¶" & cliente_idfk



Ficha_tecnica ( Tabela )



ficha_tecnica_idpk Number – Auto Serial
G_clientes Text – Global
ReL_cliente_idpk Calculation – Result text Case (
IsEmpty ( G_clientes ); 0;
Right( G_clientes; Length ( G_clientes) - Position (G_clientes; "-"; 1; 1) )

)



Obs.:

O campo REL_cliente_idfk  contem sempre dois valores separados pela quebra de texto, isso faz com que o filemaker pense que são dois valores distintos e podemos trabalhar com eles nos relacionamentos.

O campo REL_cliente_idpk contem uma formula para pegar o conteúdo que se encontram antes do carácter " - ", que fiz para colocar o identificador do cliente e seu nome.
 O campo G_clientes  é um global cujo o valor inicial é 0

Relacionamentos feitos vamos ao portal, deve estar no layout cuja tabela seja ficha_tecnica, ficando como segue abaixo:

No Campo Cliente possui um value list que mostrará todos os nome_cliente - clientes_idfk, que essa ficha padrão foi utilizada.
Mostra todos os produtos que utilizou essa ficha tecnica.
Após selecionar um cliente no campo Cliente, mostrará somente os produtos personalizados para o cliente Obian Sistemas.

Selecionado o cliente Obian Sistemas -009, a relação fechou com utilizando o identificador 009 e o código da ficha em questão.

Bem é isso, abraços e sucesso a todos. 

2 comentários:

Gostou, ajudou ou tem algo a contribuir, deixe seu recado