AM
Como criar uma ordenação no Datagrid de um campo Relacionado?
Fechado
Eu fiz um List.class.php com Datagrid, usei o assistente do Adianti Profissional para criar toda página já pronta.
No datagrid eu consigo colocar ordenação ao clicar no título das colunas de todos os campos, menos nos campos que estão relacionados com outra tabela. Por exemplo:
Se eu criar um campo chamado produto sem relacionamento com outra tabela, a ordenação (order) funciona, mas se eu criar um campo tipo: idproduto relacionado com idproduto de outra tabela, a ordenação não funciona, alguém aqui no fórum já viu isto? Alguém sabe como resolver isto? Ai vai o código de ordenação do datagrid.
// Funciona
$order_id= new TAction(array($this, 'onReload'));
$order_id->setParameter('order', 'id');
1682->setAction($order_id);
// Não Funciona
$order_idproduto= new TAction(array($this, 'onReload'));
$order_idproduto->setParameter('order', 'idproduto');
1682produto->setAction($order_idproduto);
=============================
No Model está assim:
No datagrid eu consigo colocar ordenação ao clicar no título das colunas de todos os campos, menos nos campos que estão relacionados com outra tabela. Por exemplo:
Se eu criar um campo chamado produto sem relacionamento com outra tabela, a ordenação (order) funciona, mas se eu criar um campo tipo: idproduto relacionado com idproduto de outra tabela, a ordenação não funciona, alguém aqui no fórum já viu isto? Alguém sabe como resolver isto? Ai vai o código de ordenação do datagrid.
// Funciona
$order_id= new TAction(array($this, 'onReload'));
$order_id->setParameter('order', 'id');
1682->setAction($order_id);
// Não Funciona
$order_idproduto= new TAction(array($this, 'onReload'));
$order_idproduto->setParameter('order', 'idproduto');
1682produto->setAction($order_idproduto);
=============================
No Model está assim:
- <?php
- class Produto extends TRecord
- {
- const TABLENAME = 'produto';
- const PRIMARYKEY = 'id';
- const IDPOLICY = 'max';
- const CACHECONTROL = 'TAPCache';
- public function __construct(1682 = NULL)
- {
- parent::__construct(1682);
- parent::addAttribute('idproduto');
- parent::addAttribute('unidade');
- parent::addAttribute('data1');
- parent::addAttribute('mesvenda');
- parent::addAttribute('entrada');
- parent::addAttribute('saida');
- parent::addAttribute('quant');
- parent::addAttribute('vcompra');
- parent::addAttribute('vvenda');
- parent::addAttribute('vlucro');
- parent::addAttribute('plucro');
- parent::addAttribute('tcompra');
- parent::addAttribute('tvenda');
- parent::addAttribute('tlucro');
- parent::addAttribute('obs');
- }
- public function get_prod_idproduto()
- {
- if (empty($this->prod))
- {
- $this->prod = new Prod($this->idproduto);
- }
- return $this->prod->idproduto;
- }
- }
- ?>
Sub query
De uma olhada na ordenação desse exemplo.
www.adianti.com.br/framework_files/tutor/index.php?class=CustomerDat
Alex, você pode disponibilizar a rotina que gera o numero por extenso, acho que você fez ela no formulário de recibo, percebi em uma postagem sua mais antiga. Obrigado. jrmaceio09@gmail.com
Júnior, eu não criei nenhuma rotina que gera numero por extenso. Os dois campos por extenso, são campos de entrada de texto. Do geito que eu fiz, é a pessoa que digita nos campos por extenso. Veja como eu fiz acessando o site: www.sistemapersonalizado.com
Depois clique no link: Aplicativos Grátis, e depois clique em Recibo de Salário.