TABELAS COM VIGÊNCIA

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

ROMARIO
Usuário Nível 1
Usuário Nível 1
Mensagens: 35
Registrado em: 06 Jul 2004 11:25
Localização: AGUDO - RS

TABELAS COM VIGÊNCIA

Mensagem por ROMARIO »

Caros Colegas.

A dias atras postei um tópico com o mesmo assunto. Devido a minha pouca experiencia no assunto não ficou claro. Por isso volto para maiores escarescimentos se possível.
Minnha dúvida:
Tenho uma tabela que vigora de 02/01/2004 até 28/02/2004 com os seguintes dados, por exemplo:

cod valor desc tipo
001 200,00 10 A
002 500,00 15 B etc. c/+- 20 registros

Depois tenho a mesma tabela só que com vigencia de 01/03/2004 até 31/05/2004.

Como faço uma rotina que busque o valor 500,00 (registro nr. 02) dentro da tabela que vigora de 02/01/2004 até 28/02/2004.??
evolver
Membro Master
Membro Master
Mensagens: 189
Registrado em: 28 Ago 2004 01:02
Localização: Cruz Alta - RS
Contato:

Mensagem por evolver »

Sem nenhum campo de data nem imagino como possa ser feito...

Coloca um campo data nesse troço e procura por valor = 500 .and. ( data >= ctod("02/01/2004") .and. data <= ctod("28/02/2004"))
Sergio "Evolver" Fagundes

CURVE-SE DIANTE DE MIM SER INSIGNIFICANTE, POIS EU SOU ROOT
Só respondo em PVT perguntas relativas ao que eu faço. Qualquer outra dúvida favor postar no fórum.
Peço aos veteranos que antes de responder a uma pergunta repetida dêem uma pesquisada e instruam a quem perguntou a fazer o mesmo.
ROMARIO
Usuário Nível 1
Usuário Nível 1
Mensagens: 35
Registrado em: 06 Jul 2004 11:25
Localização: AGUDO - RS

Mensagem por ROMARIO »

Evolver.

Concordo. Mas como seria os campos data.?? em cada registro teria que ter um campo datainicial e um campo datafinal ??

Desculpe a ignorancia.

Obrigado.

Romario
evolver
Membro Master
Membro Master
Mensagens: 189
Registrado em: 28 Ago 2004 01:02
Localização: Cruz Alta - RS
Contato:

Mensagem por evolver »

Só precisa de um campo com a data do registro do valor

cod valor desc tipo data
001 200,00 10 A 20/01/2004
002 500,00 15 B 12/02/2004 etc. c/+- 20 registros

Aplicando dai o código que te passei ele localiza direito.

Vou colocar melhor o código

valor = valor_a_localizar .and. ( data >= data_inicial .and. data <= data_final)

O principal pra delimitar quais as datas a serem procuradas estão entre parenteses.
Sergio "Evolver" Fagundes

CURVE-SE DIANTE DE MIM SER INSIGNIFICANTE, POIS EU SOU ROOT
Só respondo em PVT perguntas relativas ao que eu faço. Qualquer outra dúvida favor postar no fórum.
Peço aos veteranos que antes de responder a uma pergunta repetida dêem uma pesquisada e instruam a quem perguntou a fazer o mesmo.
Avatar do usuário
Tim9
Usuário Nível 3
Usuário Nível 3
Mensagens: 154
Registrado em: 14 Ago 2003 15:18
Localização: Ribeirão Preto
Contato:

Mensagem por Tim9 »

Olá Romário!

Tem uma coisa que antecede à Programaçao que se chama Modelagem de Dados, ou seja, como vamos armazenar as informações e como vamos encontrá-las. Existe uma fase do Processamento de Dados que é o Desenho tanto do projeto quanto os das tabelas.

Fica difícil responder a dúvidas como a sua porque a gente não sabe o que exatamente vc quer.

Vamos supor que existem tabelas com vigências mensais as quais vou chamá-las de TabJan, TabFev, TabMar...TabDez

Agora, o que eu quero? E é exatamente aqui que o bicho pega.
Posso querer várias coisas, por exemplo:

1) Quero saber em qual tabela o COD 02 TEM VALOR = 500,00.
2) Quero saber Qual COD tem Valor = 500,00 e em qual tabela ele se encontra
3) Poderia continuar simulando várias situações, mas basta conhecer aquela que vc está buscando. Coloque aqui que eu ou outro colega daqui terá o maior prazer em sanar a sua dúvida.

Mas pra não passar em branco vamos fazer um Algorítimo da situção (1) acima, bem light, bem básico. (Que as feras daqui não riam de mim)
mas é só para entendimento de tudo que falei antes:
=============================================
cCod="02"

Inicia Loop

Procura cCod na TabJan
Se Valor = 500 Sai do Loop
Procura cCod na TabFev
Se valor = 500 Sai do Loop
Procura cCod na TabMar
Se valor = 500 Sai do Loop
Mensagem = "Não encontrado COD 02 com Valor = 500,00"

Fim do Loop
=========================================

Espero ter ajudado, pois senti que a tua dificuldade é em expor o que vc deseja fazer.

Me perdoem os catedráticos do CLIPPER pelo básico.

Abraço geral na galera.
Até Breve!
Luz e Paz!
Tim9
------------------------------------------
olynthes@gmail.com
** Somos livres para escolher, mas prisioneiros das conseqüências **
------------------------------------------
Uso Clipper 5.2e, Blinker 7.0, Prwin 1.0 BFNTX migrando p/ xHarbour e Hwgui Dbfcdx
Responder