Lançado Adianti Framework 7.6!
Clique aqui para saber mais
Filtro com mais de um critério Boa tarde galera. Essa é realmente a comunidade mais eficiente que já vi até hoje. Além de ter respostas rápidas, ainda as pessoas são muito educadas, ou seja, resolvem o problema, e não nos mandam pesquisar, afinal, se estamos perguntando é porque não conseguimos achar ajuda em outros meios. Mas vamos la com a dúvida: Tenho um datagrid ( o mesmo das últimas duas potagens minhas ). ...
FM
Filtro com mais de um critério  
Fechado
Boa tarde galera. Essa é realmente a comunidade mais eficiente que já vi até hoje. Além de ter respostas rápidas, ainda as pessoas são muito educadas, ou seja, resolvem o problema, e não nos mandam pesquisar, afinal, se estamos perguntando é porque não conseguimos achar ajuda em outros meios. Mas vamos la com a dúvida:

Tenho um datagrid ( o mesmo das últimas duas potagens minhas ).
preciso filtrar as informações nele presentes, mas por três critérios.
Seria assim : preciso ter 1 TDBCombo com as opções de Status e mais dois TDate onde informarei a data inicial e a data final. O filtro deve me retornar todos os registros que satisfaçam essas condições, o status selecionado e que a data inicial esteja BETWEEN a data inicial e data final informados. Um detalhe é que pode ser que o usuário filtre por apenas um dos critérios ou por todos, ou seja, talvez queira ver qualquer um com status concluído sem importar a data, como pode querer em determinado intervalo de datas. E após isso tudo preciso de um botão que volte a exibir todos os registros na datagrid ( limpe o filtro ).... agradeço a ajuda de todos.

Curso completo Meu Negócio Pronto
Use para si, ou transforme em um negócio: Inclui aulas e códigos-fontes
Gestor de conteúdo (SITE) + Loja Virtual (E-Commerce) + Emissor de Notas para infoprodutos


Meu negócio pronto Quero me inscrever agora!

Comentários (4)


FC

Oi flavio de uma olhada nesse link.

www.adianti.com.br/framework_files/tutor/index.php?class=CriteriaVie
FM

Olá Felipe, eu entendi como cria os TCriteria. O problema é que na pagina não tem um lugar nem parecido com isso. la ele mistura TFilter com TCriteria e é ai que estou me embananando... veja

function onReload($param = NULL)
{
try
{
// open a transaction with database 'tarefas'
TTransaction::open('tarefas');

// creates a repository for Tasks
$repository = new TRepository('Tasks');
$limit = 10;
// creates a criteria
$criteria = new TCriteria;

// default order
if (empty($param['order']))
{
$param['order'] = 'id';
$param['direction'] = 'asc';
}
$criteria->setProperties($param); // order, offset
$criteria->setProperty('limit', $limit);

if (TSession::getValue('Tasks_filter'))
{
// add the filter stored in the session to the criteria
$criteria->add(TSession::getValue('Tasks_filter'));
}

// load the objects according to criteria
$objects = $repository->load($criteria, FALSE);

$this->datagrid->clear();
if ($objects)
{
// iterate the collection of active records
foreach ($objects as $object)
{
// add the object inside the datagrid
$this->datagrid->addItem($object);
}
}

// reset the criteria for record count
$criteria->resetProperties();
$count= $repository->count($criteria);

$this->pageNavigation->setCount($count); // count of records
$this->pageNavigation->setProperties($param); // order, page
$this->pageNavigation->setLimit($limit); // limit

// close the transaction
TTransaction::close();
$this->loaded = true;
}
catch (Exception $e) // in case of exception
{
// shows the exception error message
new TMessage('error', 'Error ' . $e->getMessage());

// undo all pending operations
TTransaction::rollback();
}
}

nao tenho nem ideia onde vai o segundo e terceiro critério, não esta muito intuitivo. Alem do que vi que esta funcao recebe informações da funcao onEdit ou estou muito enganado.... de qualquer forma, não estou conseguindo me achar... poderia me dar um exemplo pra me ajudar ? a aplicação tutor ja tentei, ja busquei no livro e tudo mais, com certeza é algo bem simples que não estou vendo... valeu
FM

ops, onde escrevi onEDit é na realidade onSearch..
FM

Consegui arrumar, na verdade era algumas informações que eu estava esquecendo de estar ( na TSession ) obrigado a todos.