Fórum duvida em manipulação dos valores de uma tabela #343888
01/08/2007
0
preciso criar uma tabela semelhante a esta que segue na imagem, no entanto nao estou conseguindo idealizar como devo fazer para obter os valores ´B/A´, ´C/B´, ´D/C´ e ainda a estimativa para o ano de 2007....
aguem tem uns toques para dar??
[img:8e2db028fb]http://br.geocities.com/isaacqueirozee/Digitalizar.jpg[/img:8e2db028fb]
Barretoee
Curtir tópico
+ 0Posts
01/08/2007
Emerson Nascimento
[size=18:709bd54fb6][b:709bd54fb6]eis as fórmulas:[/b:709bd54fb6][/size:709bd54fb6]
B/A = RoundTo(((B / A) - 1) * 100, -2);
C/B = RoundTo(((C / B) - 1) * 100, -2);
D/C = RoundTo(((D / C) - 1) * 100, -2);
[b:709bd54fb6]a estimativa é calculada pela média obtida nos anos anteriores:[/b:709bd54fb6]
estimativa = RoundTo((B/A + C/B + D/C) / 3, -2);
valor_estimado = D * (1 + (estimativa / 100));
[size=18:709bd54fb6]trabalhando com a primeira linha de dados fornecidos:[/size:709bd54fb6]
B/A = RoundTo(((B / A) - 1) * 100, -2);
B/A = RoundTo(((42836 / 38654) - 1) * 100, -2)
B/A = RoundTo((1,1082 - 1) * 100, -2)
B/A = RoundTo(0,1082 * 100, -2)
[b:709bd54fb6]B/A = 10,82[/b:709bd54fb6]
C/B = RoundTo(((C / B) - 1) * 100, -2);
C/B = RoundTo(((43162 / 42836) - 1) * 100, -2)
C/B = RoundTo((1,0076 - 1) * 100, -2)
C/B = RoundTo(0,0076 * 100, -2)
[b:709bd54fb6]C/B = 0,76[/b:709bd54fb6]
D/C = RoundTo(((D / C) - 1) * 100, -2);
D/C = RoundTo(((45000 / 43162) - 1) * 100, -2)
D/C = RoundTo((1,0426 - 1) * 100, -2)
D/C = RoundTo(0,0426 * 100, -2)
[b:709bd54fb6]D/C = 4,26[/b:709bd54fb6]
estimativa = RoundTo((B/A + C/B + D/C) / 3, -2)
estimativa = RoundTo((10,82 + 0,76 + 4,26) / 3, -2)
estimativa = RoundTo(15,84 / 3, -2)
[b:709bd54fb6]estimativa = 5,28[/b:709bd54fb6]
valor_estimado = D * (1 + (estimativa / 100))
valor_estimado = 45000 * (1 + (5,28 / 100))
valor_estimado = 45000 * 1,0528
[b:709bd54fb6]valor_estimado = 47376[/b:709bd54fb6]
[size=18:709bd54fb6][color=darkred:709bd54fb6]
os valores podem sair diferentes em função do arredondamento, pois eu estou usando duas casas decimais para exibição dos percentuais. se for o caso, utilize apenas uma casa para que o valor saia mais próximo daquele exibido no seu exemplo.[/color:709bd54fb6][/size:709bd54fb6]
[size=18:709bd54fb6]se eu tivesse usado uma casa decimal:[/size:709bd54fb6]
estimativa = RoundTo((B/A + C/B + D/C) / 3, -2)
estimativa = RoundTo(([b:709bd54fb6]10,8[/b:709bd54fb6] + [b:709bd54fb6]0,8[/b:709bd54fb6] + [b:709bd54fb6]4,3[/b:709bd54fb6]) / 3, -2)
estimativa = RoundTo(15,9 / 3, -2)
[b:709bd54fb6]estimativa = 5,3[/b:709bd54fb6]
valor_estimado = D * (1 + (estimativa / 100))
valor_estimado = 45000 * (1 + (5,3 / 100))
valor_estimado = 45000 * 1,053
[b:709bd54fb6]valor_estimado = 47385[/b:709bd54fb6]
obs.: a função RoundTo() está na unit Math;[size=12:709bd54fb6][/size:709bd54fb6]
Gostei + 0
01/08/2007
Barretoee
no entanto acho que fui confuso na minha pergunta e nao perguntei realmente o que queria saber.... meu problema maior não é com as operações matemáticas... mas sim como construir o banco de dados, relacionar as tabelas e ai sim realizar as operações.....ja tentei algumas opções mas ainda nao consegui fazê-lo.....
ou seja nao estou sabendo como pegar por exemplo o ´tributario´ do ano de 2003 e de 2004 direto do meu banco de dados e realizar a operação e ainda guardar o resultado no banco de dados....
Estou usando o Access e os componentes da paleta ADO para realizar a conexao...
eu consegui operar com os valores referentes ao mesmo ano, por exemplo calcular o subtotal e o totalgeral, mas como disse ainda nao consigo operar com dados referentes a anos distintos.... entao por hora meu problema está em ter acesso aos dados corretos pra efetuar os operações....
Acho que agora consegui explicar melhor o meu problemas...
SDS
Gostei + 0
01/08/2007
Emerson Nascimento
publique a estrutura das tabelas envolvidas pra que possamos tentar te ajudar de forma mais satisfatória.
Gostei + 0
01/08/2007
Barretoee
ja que vc tão gentilmente se dispõe a ajudar e como vc sugeriu estou postando o link na qual é possível baixar tudo que consegui fazer ate agora, que nada mais é do que cadastrar os valores e as prefeituras em tabelas...
Como disse estou iniciando no delphi a pouco, entao agradeço d+ a ajuda dos colegas.....
http://www.4shared.com/file/21154443/c31a795c/_2__programa.html
Gostei + 0
02/08/2007
Barretoee
criei 3 tabelas: ANO, ORCAMENTO E PREFEITURA. dai no proprio banco de dados relacionei a tabela prefeitura com a tabela orcamento e no código coloquei um DBLookupComboBox para inserir a prefeitura junto com os dados do orçamento...
por via das duvidas ai vai o link de onde é possível baixar o programa
http://www.4shared.com/file/21183386/7fcd2852/Contbil.html
Gostei + 0
02/08/2007
Barretoee
Alguem poderia me ajudar a concluir meu código de modo que eu consiga gravar com sucesso as informações na banco de dados???
SDS
Gostei + 0
04/08/2007
Barretoee
ja consegui criar o relacionamento das tabelas assim como tambem ja consigo gravar todos os dados de interessa no meu banco de dados, essa etapa ja foi cumprida....
agora eu preciso operar com alguns valores, emerson.en ja me deu umas dicas, mas eu preciso saber como iniciar o procediemento, ou seja,
é necessário inserir um componente query??
onde posso salvar os rsultados das operações matemáticas??
preciso de umas dicas...
Ps. todas as operações que preciso realizar ja foram expostas nas primeiras perguntas... como disse o emerson.en ja deu uns toques, mas preciso de algo mais para conseguir dar procem]dimento aos calculos...
SDS
Gostei + 0
05/08/2007
Barretoee
Gostei + 0
06/08/2007
Barretoee
ja consegui dar inicio as minhas instruções SQL...no entanto uma nova dúvida surgiu... como eu ja disse eu tenho duas tabela relacionadas... uma delas prefeitura e outra orçamentos..então cada prefeitura tem o seu conjunto de orçamentos como mostrada naquela figura la em cima....
MInha dúvia é como posso filtrar e selecionar corretamente os campos por exemplo, o tributário de cada prefeitura???
Gostei + 0
06/08/2007
Barretoee
mas dessa forma eu teria que fazer a seleção para apenas as prefeituras cadastradas ficando portanto impossível fazer essa operação para todas as prefeituras, inclusive as novas prefeituras que serão cadastradas.... alguem podee me dar uma segestão.....
Gostei + 0
06/08/2007
Emerson Nascimento
Gostei + 0
06/08/2007
Barretoee
é isso mesmo, essa eu consegui resolver
Meu problema agora consiste no seguinte: cada prefeitura teu seu conjunto de orçamentos, e cada prefeitura é identificada por um numero ´CodPrefeitura´ dai eu queria fazer de modo que as operações fossem feitas para cada prefeitura.... e se eu fizer como citei nao vou conseguir realizar o pocedimentos para as novas prefeituras cadastrtadas...
alguem tem dicas???
Estou u sando a paleta ADO...
SDS
Gostei + 0
06/08/2007
Emerson Nascimento
Gostei + 0
06/08/2007
Barretoee
Emerson, nao entendi sua pergunta...
mas o que desejo fazer é que na condição WHERE eu consiga entrar por exemplo com o nome da prefeitura ou com o código dela, de maneira que eu consiga mostrar os orçamentos de cada prefeitura
SDS
Gostei + 0
06/08/2007
Emerson Nascimento
SELECT Patrimonial FROM orcamentos WHERE CodPrefeitura = :CodPrefeitura
daí você preenche o parâmetro CodPrefeitura com o valor desejado. Não trabalho com ADO, mas se você estiver utilizando ClientDatasets:
1- coloque a instrução ´SELECT Patrimonial FROM orcamentos WHERE CodPrefeitura = :CodPrefeitura´ na propriedade Command do ClientDataset
2- passe o valor desejado para o parâmetro:
//motra os dados da prefeitura 1
ClientDataset.Close;
ClientDataset.Params.ParamByName(´CodPrefeitura´).AsInteger := 1;
ClientDataset.Open;
//motra os dados da prefeitura 2
ClientDataset.Close;
ClientDataset.Params.ParamByName(´CodPrefeitura´).AsInteger := 2;
ClientDataset.Open;
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)