relatorio por periodo das baixas parciais

Delphi

27/11/2014

bom dia...estou tentando fazer o relatorio para pegar as baixas parciais dos clientes no periodo(saber o valor q cada cliente abateu em determinado dia)...mas na minha tabela contasreceber eu fiz cinco campos data com cinco campos valor: data1 a data5, valor1 a valor5 (clientes vai abatendo na nota), eu preciso fazer o relatorio para pegar a data que o cliente abateu, como tem varios campos datas, estou meio perdido...
aguardo a ajuda...
uso delphi 7 e mysql
Jose Maria

Jose Maria

Curtidas 0

Respostas

Renato Rubinho

Renato Rubinho

27/11/2014

Buenos,

Seu relatório precisa:

1. Mostrar a somatória do que foi abatido até certa data (somando os valores anteriores dos outros campos)?

2. Mostrar o valor abatido na data (apenas do respectivo campo) ?

Abraççç,
rrubinho
GOSTEI 0
Marisiana Battistella

Marisiana Battistella

27/11/2014

São 5 campos data na tabela ou são 5 registros inseridos na tabela?
GOSTEI 0
Jose Maria

Jose Maria

27/11/2014

rrubinho....eu preciso pegar o valor abatido por data, para q ele possa ter os valores recebidos em determinado dia ok
marisiana...sao 5 campos datas e 5 campos valor na tabela....sao para pegar os valores do abatimento, a tabela contasreceber consta de outros campos como:valor, desconto, juros, valortotal,vencimento, quitacao etc...
o cliente vem abate um valor no dia, depois volta abate mais um pouco.....
se vc tiver uma outra opçao mais facil e pratica.... tentei usar uma tabela recebimento vinculada a tabela contasreceber, mas nao deu certo..
aguardo retorno...desde ja agradeço...
GOSTEI 0
Renato Rubinho

Renato Rubinho

27/11/2014

Buenos,

Seguem comandos para você utilizar:

// 1. Mostrar a somatória do que foi abatido até certa data (somando os valores anteriores dos outros campos)?
SELECT
(CASE WHEN TAB1.DATA1 <= '27/11/2014' THEN TAB1.VALOR1 ELSE 0 END +
 CASE WHEN TAB1.DATA2 <= '27/11/2014' THEN TAB1.VALOR2 ELSE 0 END +
 CASE WHEN TAB1.DATA3 <= '27/11/2014' THEN TAB1.VALOR3 ELSE 0 END +
 CASE WHEN TAB1.DATA4 <= '27/11/2014' THEN TAB1.VALOR4 ELSE 0 END +
 CASE WHEN TAB1.DATA5 <= '27/11/2014' THEN TAB1.VALOR5 ELSE 0 END) ABATIMENTOS
FROM 
 TABELA TAB1

2. Mostrar o valor abatido na data (apenas do respectivo campo) ?
SELECT
(CASE WHEN TAB1.DATA1 = '27/11/2014' THEN TAB1.VALOR1 ELSE 0 END +
 CASE WHEN TAB1.DATA2 = '27/11/2014' THEN TAB1.VALOR2 ELSE 0 END +
 CASE WHEN TAB1.DATA3 = '27/11/2014' THEN TAB1.VALOR3 ELSE 0 END +
 CASE WHEN TAB1.DATA4 = '27/11/2014' THEN TAB1.VALOR4 ELSE 0 END +
 CASE WHEN TAB1.DATA5 = '27/11/2014' THEN TAB1.VALOR5 ELSE 0 END) ABATIMENTOS
FROM 
 TABELA TAB1


Abraççç,
rrubinho
GOSTEI 0
Marisiana Battistella

Marisiana Battistella

27/11/2014

marisiana...sao 5 campos datas e 5 campos valor na tabela....sao para pegar os valores do abatimento, a tabela contasreceber consta de outros campos como:valor, desconto, juros, valortotal,vencimento, quitacao etc...
o cliente vem abate um valor no dia, depois volta abate mais um pouco.....
se vc tiver uma outra opçao mais facil e pratica.... tentei usar uma tabela recebimento vinculada a tabela contasreceber, mas nao deu certo..
aguardo retorno...desde ja agradeço...


Você poderia tem uma tabela ABATIMENTOS vinculando o cliente, o documento/nota fiscal e um campo para armazenar e data e o valor. Assim, só mantem os registros dos clientes que pagaram nessas condições.
Na tabela de contas a receber vc só armazenaria o valor total da conta..
GOSTEI 0
Jose Maria

Jose Maria

27/11/2014

Marisiana, tem como vc me ajudar a fazer isto, nao estou conseguindo vincular a tabela abatimentos com contasreceber.....eu criei uma aba 'abatimentos' dentro do form contasreceber onde o usuario digita o valor e data, mas qdo visualizo a duplicata mostra um monte de valores, teria q aparecer somente deste cliente certo...
aguardo a ajuda...
GOSTEI 0
Marisiana Battistella

Marisiana Battistella

27/11/2014

Mas como está a estrutura do teu banco? Existe essas duas tabelas criadas no banco de dados?
GOSTEI 0
Marisiana Battistella

Marisiana Battistella

27/11/2014

Na aplicação, você terá que criar um formulário mestre detalhe para realizar essa manutenção.
Encontrei algumas videoaulas que, acredito, irão te ajudar:

Delphi: Formulário Mestre/Detalhe

Delphi - Mestre detalhe
GOSTEI 0
POSTAR