Ontem precisei criar um método display em um formulário e ao contrário de um display em um relatório é um pouco mais trabalhoso e meu amigo Ricardo Pichler me mostrou um artifício bem legal para consumir menos memória colocando o método em cache.
Utilizei em um formulário o Data Source CustTrans, porém necessitava retornar um campo da CustTransOpen.
Para isso criei na tabela CustTrans o seguinte método:
- display DueDate dueDateOrigin(CustTrans _custTrans)
- {
- CustTransOpen custTransOpen;
- ;
- select firstonly DueDateOriginal from custTransOpen
- where custTransOpen.RefRecId == _custTrans.RecId;
- return custTransOpen.DueDateOriginal;
- }
Em seguida, no método init do meu Data Source adicionei após o super() a seguinte linha de código:
- this.cacheAddMethod(tablemethodstr(CustTrans, dueDateOrigin));
Depois criei o campo arrastando o método direto da tabela para o design do formulário e alterei a propriedade DataSource para CustTrans.
[]'s
Alexssander