EderDias 0 Denunciar post Postado Junho 11, 2007 Ola..pessoal..Tou com um relatorio dando um probleminha......ele esta praticamente pronto exceto pelo seguinte:Ele duplica os dados ou seja, se ele tem 5 registros ao inves de ele somar os 5 e me passar o total...ele mostra 5 vezes o mesmo valor.exemplo:Incorreto: cliente=================valor=========================xxxxx.......................................10,00xxxxx.......................................10,00xxxxx.......................................10,00xxxxx.......................................10,00xxxxx.......................................10,00Correto:cliente=================valor=========================xxxxx.......................................10,00eu uso apenas uma tabela não tem outro...é uma consulta simples:codigo abaixo que estou usando:Txt := 'select codigo, nome_vendedor, remetente_nome, remetente_cnpj, valor_frete, data_emissao FROM ctrc'+' where nome_vendedor =' + QuotedStr(Edit1.text) + ''+' order by remetente_nome';Muito Grato Compartilhar este post Link para o post Compartilhar em outros sites
Rodrigo Miss 1 Denunciar post Postado Junho 11, 2007 kra ... você quer agrupar por cliente somando o valor q cada cliente tm ... ou quer exibir o nro de registros ?? c quiser agrupar por cliente faz assim: SQL = 'SELECT SUM(VALOR) AS VALOR, CLIENTE FROM TABELA GROUP BY CLIENTE'qry.SQL.Add(SQL) Compartilhar este post Link para o post Compartilhar em outros sites
EderDias 0 Denunciar post Postado Junho 11, 2007 carinha...nãu deu certo continua duplicando.tens mais alguma dica?valeu mto grato por ajudar t+ Compartilhar este post Link para o post Compartilhar em outros sites
marcio.theis 3 Denunciar post Postado Junho 11, 2007 Faz um teste, executa este comando SQL separadamente sobre o seu BD, e veja se resulta em somente uma linha ou em mais linhas... Verifique se tem o DataSet ligado no QuickReport... Compartilhar este post Link para o post Compartilhar em outros sites
EderDias 0 Denunciar post Postado Junho 11, 2007 Faz um teste, executa este comando SQL separadamente sobre o seu BD, e veja se resulta em somente uma linha ou em mais linhas...R. bom fiz um testezinho com o meu codigo com dbgrid e funcionou sem erro...só que ai ele lista o registros....e não acumula....porque é dbgrid.no meu relatorio como é um totalizador por mes ....ele tem que somar os registros e mostrar....isto ele ja faz..o problema é que ele lista ja o somatorio x o nr de registros.Verifique se tem o DataSet ligado no QuickReport...R. Sim esta ligado.explicando mais detalhadamento meu caso:eu to gerando num botão com este codigo:procedure TFormRTME.EncartaButton3Click(Sender: TObject);varTxt : String;beginTxt := 'select codigo, nome_vendedor, remetente_nome, remetente_cnpj, sum(valor_frete), data_emissao FROM ctrc'+' where nome_vendedor =' + QuotedStr(combobox2.text) + ''+' GROUP BY codigo, nome_vendedor, remetente_nome, remetente_cnpj, valor_frete, data_emissao' +' order by remetente_nome'; FormRTME2.QrLabel47.Caption:='Ano: ';FormRTME2.ano.Caption:=ComBoBox1.Text;FormRTME2.QrLabel49.Caption:='';//FormRTME2.Query1.Close;FormRTME2.Query1.SQL.Text := Txt;FormRTME2.Query1.Open;if FormRTME2.Query1.IsEmpty ThenbeginMessageDlg('Nenhum Registro Encontrado!', mtInformation, [mbOk],0);Exit;end;//FormRTME2.QrLabel46.Caption:='Total de Frete por cliente por Mes';FormRTME2.quickrep1.Preview;end;neste form no quick FormRTM2 eu tenho um totalizador por mes....e tbem tenho mais um query chamda QueryMeses que tem a seguinte instrução SQL=SELECT sum(VALOR_FRETE) as TOTAL FROM CTRCWHERE extract(month from data_emissao)=:pMesand extract(year from data_emissao)=:pAnoand REMETENTE_CNPJ=:pClienteo relatorio mostra:clientes----jan---fev---mar---abri etc....xxxx.........10.....5.......6.......60...........o poblema é que como mostrei no inicio do topico ta duplicando o mesmo registro por cliente.Em cada mes eu coloquei um Qrlabel que faz as contas com variaveis e mostra:procedure TFormRTME2.QRLabel15Print(sender: TObject; var Value: String);beginqryMeses.Close;qryMeses.ParamByName('pAno').AsInteger := StrToInt(FormRTME.ComboBox1.Text); qryMeses.ParamByName('pMes').AsInteger := 1; //mes 1-janeiroqryMeses.ParamByName('pCliente').AsString := Query1REMETENTE_CNPJ.AsString;qryMeses.Open;TotJaneiro := TotJaneiro + qryMesesTOTAL.AsCurrency;TJan := 0;TJan := TJan + qryMesesTOTAL.AsCurrency;//Value := FormatFloat('###,###,##0.00',qryMesesTOTAL.AsCurrency);If (value<>'0,00') and (value<>'') thenRJan := RJan + 1;end;é um relatorio meio chato....mtos codigos.....mas ta perfeito exceto ....exceto pela duplicação de registros(clientes).Valeu carinha....se tiver alguma ideia...t+ Compartilhar este post Link para o post Compartilhar em outros sites
marcio.theis 3 Denunciar post Postado Junho 11, 2007 Já pensou em ter uma tabela temporária que seria montada através da sua consulta, e preenchido os demais campos conforme os cálculos necessários, onde que no relatório somente iria precisar listar as informações desta tabela temporária, sendo que teria na tabela coluna do nome do cliente e dos meses, com os valores já calculados, ficaria mais simples... Compartilhar este post Link para o post Compartilhar em outros sites
EderDias 0 Denunciar post Postado Junho 18, 2007 Resolvido..Camarada....era uma configuraçao no proprio Quick. Mto Grato..t+ http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites