Como usar displayitems no browse ?

Projeto MiniGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

Avatar do usuário
rubens
Colaborador
Colaborador
Mensagens: 1520
Registrado em: 16 Ago 2003 09:05
Localização: Nova Xavantina - MT

Como usar displayitems no browse ?

Mensagem por rubens »

Boa noite...

Estou implementando a rotina de contas a receber e preciso entrar na tela de consultas sem nenhum registro no browse.
Só depois de filtrado o cliente ou a data é que deve aparecer os registros no browse.
A Propriedade que achei que fosse seria a displayitems.
Só que eu setando ela para .T. ou .F. não faz diferença nenhuma.
Seria essa propriedade mesmo para não exibir os itens no browse ou teria outra ou não tem como fazer isso.

Tentei usar dessa forma

Código: Selecionar todos

SETPROPERTY('CTRECEB','BROWSE_1','DISPLAYITEMS',.F.)
Estou conseguindo fazer escondendo ou mostrando o browse. Então quando entra no form eu escondo o browse e quando pesquiso eu mostro o browse.
Mas fica meio estrando porque some o browse completamente. Gostaria que só exibisse os itens quando encontrado algo na pesquisa.
Obrigado

Rubens
"Eu e minha casa servimos ao Senhor e você ???"
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

Como usar displayitems no browse ?

Mensagem por Toledo »

Amigo, a utilização do DISPLAYITEMS tem outra finalidade, não é para exibir ou ocultar os registros do Browse.
rubens escreveu:Só depois de filtrado o cliente ou a data é que deve aparecer os registros no browse.
Você não disse como está fazendo este filtro dos registros, mas uma saída seria fazer um filtro inicial cuja condição retorne FALSO (.F.) para todos os campos usados no filtro. Por exemplo, fazer o filtro pelo código do cliente que não existe no cadastro (codigo=99999 ou codigo=0000).

Sobre o uso do DISPLAYITEMS, veja:
MiniGui Extended:
\SAMPLES\BASIC\Browse_4\browse.prg
\SAMPLES\BASIC\BROWSE_5\demo2.prg
\SAMPLES\BASIC\BROWSE_5\demo3.prg

HMG Oficial:
Não tem nenhum exemplo

Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Avatar do usuário
ANDRIL
Usuário Nível 5
Usuário Nível 5
Mensagens: 1297
Registrado em: 06 Jul 2004 00:44
Contato:

Como usar displayitems no browse ?

Mensagem por ANDRIL »

Uma dica, já que não conheço os comandos da MiniGui. Voce pode fazer 2 browses, um fictício e um verdadeiro. O verdadeiro inicia-se "escondido", o "fictício" sendo exibido. No fictício voce cria atraves de um array vazio (se permitir) ou crie um DBF temporario com apenas um campo apenas para estabelecer o browse. Quando fizer a pesquisa voce inverte, esconde o fictício e mostra o verdadeiro.

A dica do Toledo é boa, porem não sabemos o tamanho da base de dados, o que pode tornar um filtro que retorne tudo .F. "demorado", não sei qual método de filtragem esta usando, mais com aumento da base, pode-se tornar um problema apenas para exibir o browse vazio.

Boa sorte!
Clipper 5.2e / Blinker 5.1 / Harbour 3.2 / GTwvg
Avatar do usuário
rubens
Colaborador
Colaborador
Mensagens: 1520
Registrado em: 16 Ago 2003 09:05
Localização: Nova Xavantina - MT

Como usar displayitems no browse ?

Mensagem por rubens »

Obrigado Toledo e Andril..

Eu também tinha pensando em filtrar por um campo provavelmente não tivesse nenhum resultado.
Daí coloquei

Código: Selecionar todos

	DbSelectArea('CR')
	DbSetOrder(3)  // codigo do cliente
	OrdScope(0,'000001')
	OrdScope(1,'000001')
	DbGoTop()
E por um erro meu o cliente 000001 tinha 01 duplicata e não era para ter (venda a vista), depois que voce postou testei com o cliente 00000 e funcionou belezinha o browse fica despovoado.
Andril realmente quando a base for muito grande deve dar alguma inconsistência ou não com o ordscope(). Mas nesse caso especifico é contas a receber... Tomara que o cliente nao tenha nem 5000 títulos né.. heheheh

De qualquer forma obrigado,

Rubens
"Eu e minha casa servimos ao Senhor e você ???"
Responder