Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

EderDias

Quickreport + paradox + query

Recommended Posts

Ola...Pessoal....Blza?Tou precisando montar um relatório no QuickReport+Paradox, com apenas uma tabela paradox(parece simples).O problema é o LayOut e os dados do Relatorio, que teria que ser assim:

O usuario escolheria o Periodo: Data de 00/00/0000 a 01/01/0001 =====================================Relatorio de Totais Sintetico por periodo.=====================================mês-------Peso----ValorMercadoria-----frete-----Icms=====================================Jan.........1000.................1000,00.....10,00.......1,20Fev.........1500.................1800.00.....15,00.......1,70Mar.........1200.................1300,00.....12,00.......1,50e assim por diante...todos os meses.=====================================Totais......3700.................4100,00.....27.00.......4,40=====================================

alguém poderia me dizer como montar um relatorio com este layout....fazendo com que ele some todos os registros de cada item da tabela conforme o periodo pedido e depois totalizasse da maneira como mostra acima??? No caso seria um Relatorio de Totais Sintetico por periodo.Parece simples...mas nem imagino como fazer....Se alguem tiver um exemplo ou ja passou por isto..por favor me ajude...estou precisando mto....e ta dificil de encontrar alguem que ajude......não sei se é mto dificil..acredito que seja...pois ta dificil de achar uma dica.Muito Grato. http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nunca trabalhei muito com paradox... mas teria de ver se ele suporta comandos de agrupamento usando somente o mês/ano, caso ele não aceite, outra forma seria você criar uma tabela "temporária" contendo os campos que você deseja, depois faria o sql, antes de exibir o relatório, deve popular esta tabela temporária com as informações, mas ai você já pode fazer a separação por mês e ano, e colocar somente os campos desejados na tabela temp, para mostrar o relatório você iria usar esta tabela temporária, selecionando todos os registros dela e listando...Verifique se tem como fazer os comandos no parodox, senão pense sobre esta solução da tabela temp.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Márcio, dependendo do Agrupamento ele aceita sim!!!Ai vai do SQL que você quer implementar...Qual comando acha que seria o Ideal usar???Ele não aceita Unions e coisas do tipo!!!Mas aceita os Group By's... e demais!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Teria de ficar algo do tipo:

 

select month(tabela.data) as mes, year(tabela.data) as ano,sum(tabela.peso) as Peso, sum(tabela.valormercadoria) as ValorMercadoria,sum(tabela.frete) as Frete, sum(tabela.icms) as Icmsfrom tabelawhere tabela.data between :dtIni and :dtFimgroup by month(tabela.data), year(tabela.data)

Agrupando pelo mês/ano e somando os campos...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal..primeiro mto grato por responderem..Galera...não tenho mta pratica em programação....faço alguns relatorios em quickreport mas não manjo mta coisa.....

mas entendi o select que gera o relatorio:select month(tabela.data) as mes, year(tabela.data) as ano,sum(tabela.peso) as Peso, sum(tabela.valormercadoria) as ValorMercadoria,sum(tabela.frete) as Frete, sum(tabela.icms) as Icmsfrom tabelawhere tabela.data between :dtIni and :dtFimgroup by month(tabela.data), year(tabela.data)

Eu pergunto a vcs mais experientes...e que vivem nesta funçaõ de programador diariamente:como fica a questão do layout no quickreport...??quais componentes colocar no quickrep1, bandas etc....??pois parece ser um relatorio mto complexo...pois teria que ter um layout mais ou menos igual a este:O usuario escolheria o Periodo: Data de 00/00/0000 a 01/01/0001

=====================================Relatorio de Totais Sintetico por periodo.=====================================mês-------Peso----ValorMercadoria-----frete-----Icms=====================================Jan.........1000.................1000,00.....10,00.......1,20Fev.........1500.................1800.00.....15,00.......1,70Mar.........1200.................1300,00.....12,00.......1,50e assim por diante...todos os meses.=====================================Totais......3700.................4100,00.....27.00.......4,40=====================================

valeu mto grato pessoal..pela ajuda.. http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Este é um relatório simples, poderia ter:Title -> Informações do relatório e da empresaColumnHeader -> Informações dos nomes da colunasDetail -> Listando os valoresSumary -> Se quiser, fazendo um agrupamento finalPageFooter -> Informações de rodapé do relatório.Na sua tela de filtro teria que ter dois DateTimePicker e dois botões para olhar o relatório e outro de fechar...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Marcio.Theis....fiz o que você me instruiu......montei um form com o botão de imprimir e dois DateTimePicker1.

 

No Botão de Imprimir coloquei:

 

procedure TForm1.XiButton1Click(Sender: TObject);

var Txt:String;

begin

If DateTimePicker2.Date < DateTimePicker1.Date Then

begin

ShowMessage('Intervalo de datas Inválido, a data Inicial é maior que a data Final!');

DateTimePicker2.Date := DateTimePicker1.Date;

exit;

end;

//

TXT := 'Select month(Ctrc.Data_Emissao) as mes, year(Ctrc.Data_Emissao) as ano, '+

'sum(Ctrc.Kg_Calculo) as Kg_Calculo, sum(Ctrc.Valor_N_Fiscal) as Valor_N_Fiscal, '+

'sum(Ctrc.Valor_Frete) as Valor_Frete, sum(Ctrc.Valor_Icms) as Valor_Icms '+

'from Ctrc '+

'where Ctrc.Data_Emissao between :DataI and :DataF '+

'group by month(ctrc.Data_Emissao), year(Ctrc.Data_Emissao)';

Form2.Query1.Close;

Form2.Query1.SQL.Text := Txt;

Form2.Query1.ParamByName('DataI').AsDate := DateTimePicker1.Date;

Form2.Query1.ParamByName('DataF').AsDate := DateTimePicker2.Date;

Form2.Query1.Open;

//

if Form2.Query1.IsEmpty Then

begin

ShowMessage('Nenhum Registro Encontrado!');

exit;

end;

//

Form2.qrlabel16.Caption:='Relatório Sintético';

Form2.qrlabel20.Caption:=DateToStr(DateTimePicker1.Date);

Form2.qrlabel22.Caption:=DateToStr(DateTimePicker2.Date);

Form2.quickrep1.Preview;

end;

e ai preparei este form2 como mostra acima pra receber o relatorio....

 

O problema é que deu erro na hora do click no botão de imprimir:

 

erro: Invalid Use Of Key Word Token: MONTH (Ctrc.Data_Emissao) Line Number 1

 

Meu Delphi é 4 com Paradox.

 

Será que tem algo a ver com a versão??

 

Mto Grato

Compartilhar este post


Link para o post
Compartilhar em outros sites

respondendo...

 

 

Primeiramente desculpem pela demora... estava colocando no ar o servidor SQL Server de um cliente!! hehe!!!

 

Deu vontade de colocar no ar no chute, mas tudo bem!!! heheh!!!

 

com relação ao Piradox... aqui vai!!!

Select Extract(Month from Event_Date)

From Events

Falei meio errado!!!

 

mas agora ta certo e eu testei aqui!!!

 

Deve de funfar ai tb!!! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Hugo....perdão pela ignorância, mas como ficaria no meu codigo....não consigo pegar a tua ideia...Segue abaixo meu codigo:

TXT := 'Select month(Ctrc.Data_Emissao) as mes, year(Ctrc.Data_Emissao) as ano, '+'sum(Ctrc.Kg_Calculo) as Kg_Calculo, sum(Ctrc.Valor_N_Fiscal) as Valor_N_Fiscal, '+'sum(Ctrc.Valor_Frete) as Valor_Frete, sum(Ctrc.Valor_Icms) as Valor_Icms '+'from Ctrc '+'where Ctrc.Data_Emissao between :DataI and :DataF '+'group by month(ctrc.Data_Emissao), year(Ctrc.Data_Emissao)'; Form2.Query1.Close; Form2.Query1.SQL.Text := Txt; Form2.Query1.ParamByName('DataI').AsDate := DateTimePicker1.Date; Form2.Query1.ParamByName('DataF').AsDate := DateTimePicker2.Date; Form2.Query1.Open;

Mto Grato pela ajuda... http://forum.imasters.com.br/public/style_emoticons/default/blush.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acho que assim funciona...

 

TXT := 'Select Extract(Month from Ctrc.Data_Emissao) as mes, Extract(Year from Ctrc.Data_Emissao) as ano, '+'sum(Ctrc.Kg_Calculo) as Kg_Calculo, sum(Ctrc.Valor_N_Fiscal) as Valor_N_Fiscal, '+'sum(Ctrc.Valor_Frete) as Valor_Frete, sum(Ctrc.Valor_Icms) as Valor_Icms '+'from Ctrc '+'where Ctrc.Data_Emissao between :DataI and :DataF '+'group by mes, ano';Form2.Query1.Close;Form2.Query1.SQL.Text := Txt;Form2.Query1.ParamByName('DataI').AsDate := DateTimePicker1.Date;Form2.Query1.ParamByName('DataF').AsDate := DateTimePicker2.Date;Form2.Query1.Open;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Hugo..Infelizmente não deu certo deu erro:

TYPE MISMATECH IN EXPRESSION.

 

Acho que é por causa do campo de data estar do tipo (A) ALPHANUMERICO, ALIAS Todos os campos desta tabela é alphanumerico pois a tabela não é minha é de terceiro

Será que por ser isto??

 

Se for terias uma ideia pra funcionar com (a) alphanumerico??

 

Tentei usar o Cast no codigo, pois uma vez usei o Cast pra estes casos de campos data alphanumerico e deu certo....mas neste não deu.....por favor veja como fiz...mas não deu certo.

 

TXT := 'Select Extract(Month from Ctrc.Data_Emissao) as mes, Extract(Year from Ctrc.Data_Emissao) as ano, '+

'sum(Ctrc.Kg_Calculo) as Kg_Calculo, sum(Ctrc.Valor_N_Fiscal) as Valor_N_Fiscal, '+

'sum(Ctrc.Valor_Frete) as Valor_Frete, sum(Ctrc.Valor_Icms) as Valor_Icms '+

'from Ctrc '+

'where (Cast(Ctrc.Data_Emissao as DATE) <= :DataI) and (CAST(Ctrc.Data_Emissao as DATE) <= :DataF) '+

'group by mes, ano';

//

Form2.Query1.Close;

Form2.Query1.SQL.Text := Txt;

Form2.Query1.ParamByName('DataI').AsDate := DateTimePicker1.Date;

Form2.Query1.ParamByName('DataF').AsDate := DateTimePicker2.Date;

Form2.Query1.Open;

Deu o mesmo erro acima:

TYPE MISMATECH IN EXPRESSION.

 

segue imagem da minha tabela:

 

Imagem Postada

 

Imagem Postada

 

Bom é isto ....mto grato por ajudar....Otima final de semana e bom descanso.

 

t+

http://forum.imasters.com.br/public/style_emoticons/default/blush.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Hugo.....

Agora perdi o fio da meada...se tava dificil....agora melou....hehehe

 

Carinha.....seria dificil pra você ou outro colega montar um exemplinho (download)pra nós no forum, até pra consultar no futuro...pra gente ter a noção de como se faz este tipo de relatório??

 

Carinha cheguei a conclusão que é mto dificil....e não to tendo progresso....pergunto e você responde e a gente se estende......daqui a pouco você se enxe das minhas perguntas....rsrsrs...

 

Bom é isto ai........Mto obrigado pela paciência....eu vou tentar me virar por aqui....ou quem sabe dar um tempo pra este relatorio até ficar mais experiente...pois como não vivo de programação..pois não trabalho com isto especificamente..apenas programa algumas necessidades na empresa onde trabalho..pra ajudar.

 

valew.... http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.