Pesquisa em vários dbfs

Aqui é o lugar para bater papo e trocar idéias sobre os mais variados assuntos

Moderador: Moderadores

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

Pesquisa em vários dbfs

Mensagem por rubens »

Pessoal...

Um cliente quer reviver um programa de laboratório de análises clínicas...
Quando eu fiz o programa cada tabela tinha seu browse, daí queria pesquisar se o cliente fez hemograma, ia no browse do hemograma e fazia uma consulta.
Agora o cliente quer pesquisar pelo cliente, daí mostra todos os exames que aquele cliente fez.
Como eu poderia fazer isso de forma mais prática e rápida do que abrir todas as tabelas e pesquisar em todas ela...?
Alguma sugestão?

Obrigado
Rubens
"Eu e minha casa servimos ao Senhor e você ???"
MSDN
Usuário Nível 4
Usuário Nível 4
Mensagens: 741
Registrado em: 28 Nov 2003 15:55
Localização: CWB
Contato:

Pesquisa em vários dbfs

Mensagem por MSDN »

Rubens, se eu entendi o que vc perguntou, uma ideia seria criar um array com o nome de todas as tabelas que deveriam ser pesquisadas, e fazer um loop procurando o que foi digitado como sendo a pesquisa, guarda o que foi encontrado dentro um DBF, e mostra o resultado, seja em tela ou relatório em papel.Dá pra incrementar claro, mas a base seria assim, espero que ajude !
Claudio Soto
Colaborador
Colaborador
Mensagens: 566
Registrado em: 27 Ago 2012 12:31
Localização: Uruguay
Contato:

Pesquisa em vários dbfs

Mensagem por Claudio Soto »

Mi conocimiento sobre el manejo de base de datos es nulo, pero recuerdo que en clipper existía el comando SET RELATION talvez pueda ser útil en este caso.
Saludos.
Dr. Claudio Soto
(Uruguay)
http://srvet.blogspot.com
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Pesquisa em vários dbfs

Mensagem por asimoes »

SET RELATION pode fazer isso, depende do campo chave em cada tabela ser o mesmo para funcionar.
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Pesquisa em vários dbfs

Mensagem por JoséQuintas »

1) Pode criar um DBF com todos os exames, pelo menos parciais.
A partir deste, poderia ser consultado o DBF com cada exame completo.

2) Criar um array com o resultado da pesquisa em cada arquivo de exame.

3) Pesquisar tudo, mostrar tudo

Código: Selecionar todos

acList := { "exame1.dbf", "exame2.dbf", "exame3.dbf", "exame4.dbf" }
nRow := 6
FOR EACH oDBF IN acList
   USE ( oDbf ) ALIAS temp
   SEEK cCliente
   DO WHILE cCliente == temp->Cliente .AND. ! Eof()
      @ nRow, 0 SAY temp->Exame
      @ Row(), Col() + 2 SAY temp->Resulado
      nRow += 1
         SKIP
   ENDDO
   USE
NEXT
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

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

Pesquisa em vários dbfs

Mensagem por rubens »

Bom dia..
E se eu criasse uma tabela como um índice..?
Teria o código do cliente, , código do exame, data do exame. Toda vez que incluísse um exame na tabela própria, acrescentaria uma linha nessa tabela índice. Daí apresentaria um browse/grid com essa tabela o usuário poderia filtrar todos os exames do cliente, depois quando clicasse em um exame abriria aquele exame.
Acho que pode dar certo... a ideia do Set Relation é boa e abrir arquivo por arquivo e pesquisar parece funcionar, mas hoje já temos 58 tabelas e será acrescentado pelo menos umas 15 tabelas de exames novos. Acho que uma tabela de índice poderia funcionar melhor. Os contra que vejo de imediato seria quanto a integridade. Qualquer problema com essa tabela bagunçaria todo o projeto.
Obrigado aos que já opinaram/sugeriram. Vamos ver se mais alguém me ajuda com mais idéias, críticas...
Quando começar o desenvolvimento o projeto espero estar com isso bem definido...

obg

Rubens
"Eu e minha casa servimos ao Senhor e você ???"
MSDN
Usuário Nível 4
Usuário Nível 4
Mensagens: 741
Registrado em: 28 Nov 2003 15:55
Localização: CWB
Contato:

Pesquisa em vários dbfs

Mensagem por MSDN »

Rubens,

Se tiver tempo, opte pelo MySQL.
Responder