VDLR Postado Setembro 4, 2007 Denunciar Share Postado Setembro 4, 2007 Pessoal alguém poderia me dar uma luz de como montar este tipo de relatório.O usuário solicita um determinado período.exemplo 01/01/07 a 30/03/07Tipo do relatório Faturamento por períodoCliente Janeiro Fevereiro MarçoXXXX 150,00 250,00 260,00YYYY 140,00 130,00 120,00Total 290,00 380,00 380,00AbraçosValdecir Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Vivendo&Aprendendo Postado Setembro 5, 2007 Denunciar Share Postado Setembro 5, 2007 Olá VDLRWu utilizo a seguinte SQL para buscar registros entre determinadas datas:With TABELA Do Begin TABELA .Close; TABELA .SQL.Clear; TABELA .SQL.Add('Select * From TABELA ); TABELA .SQL.Add('Where CAMPO_DATA between :Inicial and :Final'); TABELA .Parameters.ParamByName('Inicial').Value := StrToDate(EdtInicial.Text); TABELA .Parameters.ParamByName('Final').Value := StrToDate(EdtFinal.text); TABELA .SQL.Add('Order By Codigo'); TABELA .Open; end;Utilizo AdoQuery como componente de conexão com o banco...A estrutura do relatório você terá que montar conforme sua necessidade....Espero ter ajudado, qualquer coisa estamos por ai...Alexandre Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 VDLR Postado Setembro 10, 2007 Autor Denunciar Share Postado Setembro 10, 2007 Alexandre beleza.Cara a minha dívido é como após fazer a consultar de um determinado período separar ele no relatórioEx.JaneiroFevereiroMarçoAbraçosValdecir Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Micheus Postado Setembro 11, 2007 Denunciar Share Postado Setembro 11, 2007 VDLR, o que você quer é algo parecido com este relatório do robinhocne, não é? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 VDLR Postado Setembro 12, 2007 Autor Denunciar Share Postado Setembro 12, 2007 Micheus beleza.Cara é isto mesmo, eu só não sei como eu faço para dividir o relatório ref. os meses solicitados.Tem com dar uma força ????AbraçoValdecir Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Micheus Postado Setembro 13, 2007 Denunciar Share Postado Setembro 13, 2007 O usuário solicita um determinado período.exemplo 01/01/07 a 30/03/07Tipo do relatório Faturamento por períodoCliente Janeiro Fevereiro MarçoXXXX 150,00 250,00 260,00YYYY 140,00 130,00 120,00Total 290,00 380,00 380,00é um tipo de relatório chato de fazer com o quick. Na verdade, relatórios deste tipo não são muito simples com a maioria dos geradores de relatórios.O meio que vejo, implica em ter um certo limite no número de colunas, então, vai a pergunta: qual seria o provável número máximo de colunas que este relatório teria? (imprimindo em landscape acredito que dê para um ano.)Se não puder limitar, a coisa complica um pouco. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 VDLR Postado Setembro 13, 2007 Autor Denunciar Share Postado Setembro 13, 2007 O meio que vejo, implica em ter um certo limite no número de colunas, então, vai a pergunta: qual seria o provável número máximo de colunas que este relatório teria? (imprimindo em landscape acredito que dê para um ano.)Micheus beleza. " UM ANO " esta bom demais, alias seria o ideal.AbraçoValdecir Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Micheus Postado Setembro 13, 2007 Denunciar Share Postado Setembro 13, 2007 VLDR, dê uma olhada neste post do colega paulobergo.Mesmo em Paradox (não sei se é seu caso) deve funcionar, porém você não utilizará uma data fixa, mas sim um período (between) equivalente ao início e fim do mês.Veja se você consegue entender a lógica da consulta. Isto facilitaria muito o seu relatório. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 VDLR Postado Setembro 17, 2007 Autor Denunciar Share Postado Setembro 17, 2007 Micheus. beleza.Olhei o post mas fiquei com algumas dúvidas. ;) No post ele fala no período de uma semana, seleciona o periodo e vem somando os dias certo?No meu caso, como eu faria para somar meses de uma tabela de faturamento ?Ex. período de 01/01/2007 a 31/08/2007Como faço a soma dos meses jan, fev, mar, abr, mai, jun, jul, ago ? :o Como eu saberia o mês dentro do período ?? :blink: AbraçoValdecir Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Micheus Postado Setembro 18, 2007 Denunciar Share Postado Setembro 18, 2007 No post ele fala no período de uma semana, seleciona o periodo e vem somando os dias certo?No meu caso, como eu faria para somar meses de uma tabela de faturamento ?não tenho 100% de certeza de que daria para aplicar o exemplo ao pé da letra - talvez o paulobergo posso ajudar. Mas, a princípio, a seria uma questão de filtrar o período de 1 ano, no lugar de 1 semana. Agrupar por mês, ao invés de dia.Como faço a soma dos meses jan, fev, mar, abr, mai, jun, jul, ago ? :o usando o SUM e agrupando pelo período correspondente ao mês (de 1 a 30 ou 31 - ou 28/29 em fev).Como eu saberia o mês dentro do período ?? :blink:dependendo que que banco de dados está utilizando tem uma função/instrução para isto.Qual bando de dados você está utilizando? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 VDLR Postado Setembro 18, 2007 Autor Denunciar Share Postado Setembro 18, 2007 Micheus beleza.dependendo que que banco de dados está utilizando tem uma função/instrução para isto.Qual bando de dados você está utilizando?Estou usando o INTERBASE.Micheus será que você poderia passar + ou - o que eu preciso fazer ??? ;) AbraçosValdecir Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Eder Postado Setembro 20, 2007 Denunciar Share Postado Setembro 20, 2007 (editado) Micheus será que você poderia passar + ou - o que eu preciso fazer ???R.: amigão....seguinte, não sou a pessoa mais indicada pra te dizer como montar um relatório deste tipo, porem passei pelas mesmas dificuldades suas, pois precisava de um relatorio até mais complexo que o seu em paradox.O problema dele, é que ele é um relatorio lento, pois trabalhei com variaveis no OnPrint dos Qrlabels.Ele funciona perfeito.....porem é muito chato a montagem dele....mas parece que no seu caso não seria tão dificil pois você quer totalizar os valores de faturamento somente...portanto como sendo apenas um tipo de dado seria mais facil.A ideia é no quickreport criar duas queries:*Uma chamada query1 que seria a consulta em si*Uma query chamada QryMeses que seria a query que iria fazer os calculos dos meses e mostrar no Onprint de cada qrlabel.nela você colocaria o seguinte codigo:SELECT sum(Qtdhe) as TOTAL FROM Despesas, func where (DESPESAS.CODFUN = FUNC.CODIGO) and DESPESAS.COMPET NOT LIKE "13/%" and extract(month from data)=:pMes and extract(year from data)=:pAno and Func.Codigo=:pCliente *você colocaria um qrlabel pra cada mes de faturamento.... em cada qrlabel no onprint você colocaria assim: procedure TFormRTME2.QRLabel15Print(sender: TObject; var Value: String); begin qryMeses.Close; //abaixo a variavel PAno trata o ano qryMeses.ParamByName('pAno').AsInteger := StrToInt(FormRTME.ComboBox1.Text); //selecionada o ano //abaixo a variavel pmes trata o mes qryMeses.ParamByName('pMes').AsInteger := 1; //mes 1-janeiro //abaixo a variavel pcliente trata o cliente atraves do codigo do clientes qryMeses.ParamByName('pCliente').AsInteger := Query1CODIGO.AsInteger; qryMeses.Open; {aqui a variavel que totaliza o total p/ mes (janeiro) na banda detail} TotJaneiro := TotJaneiro + qryMesesTOTAL.AsCurrency; // {aqui a varivel que totaliza na banda amarela o total geral} TJan := 0; TJan := TJan + qryMesesTOTAL.AsCurrency; // Value := FormatFloat('###,###,##0.00',qryMesesTOTAL.AsCurrency); //abaixo ele verifique se o valor é 0,00 se for ele não conta o registro...que é mostrado no qrlabel67 If (value<>'0,00') and (value<>'') then RJan := RJan + 1; end;Note que é um monte de variaveis.....isto da um nó na cabeça...mas..tem que criar e depois inicializar....em fim...ai vai da sua imaginação...Mas a ideia central é esta......funciona perfeito, exceto como citei acima o relatorio é muito lento, demora dependendo da quantidade de dados alguns minutos....Só pra você ter uma ideia...estou com uma base paradox de 120 mb com 70.000 registros de janeiro até agosto deste ano...e o relatorio trabalha com mais dados...faturamento, peso, valormercadoria uns 8 dados....e funciona legal, exceto pela demora...hehehe..Inclusive eu uma vez postei algo aqui no forum inclusive na época nosso colega Micheus também participou do tópico, pra tentar otimizar o processo mas não tive sucesso e acabei ficando com esta ideia mesma...Ralei um monte pra montar este tipo de relatorio juntamente com um amigo (Rodrigo Thor de Sinop no Mato Grosso)mais experiente é claro. Bom é isto ai amigão...Boa sorte..tomará que você consiga...Espero que ajude a dica.Abraços. :D Editado Setembro 20, 2007 por Eder Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Micheus Postado Setembro 30, 2007 Denunciar Share Postado Setembro 30, 2007 Estou usando o INTERBASE.Micheus será que você poderia passar + ou - o que eu preciso fazer ??? ;)VDLR, desculpe a demora em dar alguma resposta. Estive pensando em como exemplificar, de forma simples, o uso do recurso proposto pelo colega paulobergo para uma situação como a sua.Como acho que pode ser útil a outros colegas ainda iniciantes no assunto, acabei por construir um pequeno artigo tentando explicar cada etapa do processo para a obtenção da consulta que buscaria este tipo de informação. Então, dê uma olhada nele e veja se vai realmente ajudar na compreensão do processo -> "Construindo Uma Consulta Sql Passo-a-passo, Obtendo uma matriz como resultado"Abraços Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Micheus Postado Outubro 8, 2007 Denunciar Share Postado Outubro 8, 2007 VDLR, se conseguir montar a consulta, no formato "tabela", dê uma olhada neste exemplo (em anexo) para ver como o relatório fica bem simples.Eu usei os componentes IB, mas não consegui sucesso na execução do programa, então a visualização foi feita apenas em modo design-time (ativada consulta, botão direito no QuickTep1, opção Preview do menu). Veja se você configura para rodar no seu PC.RelTeste.zip Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 VDLR Postado Outubro 8, 2007 Autor Denunciar Share Postado Outubro 8, 2007 Micheus, beleza.Não consegui abrir o exemplo, no download não tem nenhuma unit.AbraçoValdecir Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Micheus Postado Outubro 8, 2007 Denunciar Share Postado Outubro 8, 2007 Não consegui abrir o exemplo, no download não tem nenhuma unit.Como assim?Eu baixando ele tem lá dentro do zip: RelTeste.dpr, RelTeste.res, uMainForm.dfm, uMainForm.pas, uRelResumo.dfm, uRelResumo.pas e EMPLOYEE.FDB.Tenta baixar ele do 4Share (RelTeste.zip) Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 VDLR Postado Outubro 9, 2007 Autor Denunciar Share Postado Outubro 9, 2007 Micheus, tudo bem ?Consegui fazer o download e testar o sistema, porém estou recebendo o seguinte erro quando clico no botão para exibir o relatório ou tento ativar a Query.Dynamic SQL errorSQL Error cod = -104Token Unknown - Line 3, char 6SELECT.Não sei o que fazer :unsure: AbraçoValdecir Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Micheus Postado Outubro 11, 2007 Denunciar Share Postado Outubro 11, 2007 Consegui fazer o download e testar o sistema, porém estou recebendo o seguinte erro quando clico no botão para exibir o relatório ou tento ativar a Query.Dynamic SQL errorSQL Error cod = -104Token Unknown - Line 3, char 6SELECT.Não sei o que fazer :unsure:Este erro é executando o exemplo que lhe passei? Ou você já adaptou ao seu projeto e este erro está aparecendo? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 VDLR Postado Outubro 15, 2007 Autor Denunciar Share Postado Outubro 15, 2007 Micheus, beleza.Este erro é executando o exemplo que lhe passei? Ou você já adaptou ao seu projeto e este erro está aparecendo?No exemplo que você passou.Abraço.Valdecir Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Micheus Postado Outubro 15, 2007 Denunciar Share Postado Outubro 15, 2007 Acho que deve ser aquele lance de não suportar select em sub-selects. Lá no post#13 eu postei o tal tutorial, e mencionei esta possibilidade. Lá tinha um link para uma avaliação (Estatistica de resultado de uma consulta SQL) em que a 2ª coluna é uma forma alternativa a este tipo de consulta.Então, abra a propriedade SQL da consulta e substitua o código pelo que está em anexo.Cosulta_Completa_Alternativa.txt Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 VDLR Postado Outubro 17, 2007 Autor Denunciar Share Postado Outubro 17, 2007 (editado) Micheus, belezaSubstitui o código, só que agora ao clicar no botão para exibir o relatório recebo a seguinte mensagem de erro.IBQuery1: Parameter 'DAT_INICIAL' not found.Precisa fazer alguma alteração nesta procedureprocedure TForm2.ShowReport(DateRef :TDateTime); begin IBQuery1.ParamByName('DAT_INICIAL').AsDateTime := StartOfTheYear(DateRef); IBQuery1.ParamByName('DAT_FINAL').AsDateTime := EndOfTheYear(DateRef); IBQuery1.Open; try QuickRep1.Preview; finally IBQuery1.Close; end; end;Ao tentar ativar a Query dá este erro.Dynamic SQL errorSQL Error cod = -104Token Unknown - Line 2, char 30AS.Desculpe a demora.AbraçoValdecir Editado Outubro 19, 2007 por Micheus Adicionado o delimitador de código [code] [/code] Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Micheus Postado Outubro 19, 2007 Denunciar Share Postado Outubro 19, 2007 Valdecir, pode ficar zangado comigo. Eu esqueci de parametrizá-la. :ph34r: Já atualizei o anexo no post#20. Voce pode baixá-lo e proceder como indicado lá.Também substituí os fontes do código no post#14, ficando no relatório dois IBQuery, cada qual com uma versão da consulta, sendo que a que está vinculada ao QuickReport é IBQuery2.Abraços Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 VDLR Postado Outubro 22, 2007 Autor Denunciar Share Postado Outubro 22, 2007 Micheus, beleza.Baixei o código porém só tinha este arquivoRelTeste Atualizei a IBQuery do código que eu tinha aqui conforme o anexo do post#20, porém agora ao clicar no botão ou tentar ativar a mesma da o seguinte erro:Dynamic SQL errorSQL Error cod = -104Token Unknown - Line 2, char 30AS.Poxa, será que tem solução...........AbraçoValdecir Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Micheus Postado Outubro 22, 2007 Denunciar Share Postado Outubro 22, 2007 Baixei o código porém só tinha este arquivoRelTestemas, "será o benedito?!" :angry: Faz o seguinte, me envia seu e-mail via MP (mensagem pessoal)Neste arquivo zipado tem 7 arquivos (até baixei ele do link), você deve estar tendo algum problema. Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
VDLR
Pessoal alguém poderia me dar uma luz de como montar este tipo de relatório.
O usuário solicita um determinado período.
exemplo 01/01/07 a 30/03/07
Tipo do relatório
Faturamento por período
Cliente Janeiro Fevereiro Março
XXXX 150,00 250,00 260,00
YYYY 140,00 130,00 120,00
Total 290,00 380,00 380,00
Abraços
Valdecir
Link para o comentário
Compartilhar em outros sites
23 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.