Fórum QR Dinâmico c/ agrupamento #332062
25/10/2006
0
Tenho um RxMemoryData assim:
Campo1 Campo2
Descrição1 20
Descrição1 30
Descrição1 40
Descrição2 25
Descrição2 35
Descrição2 40
Descrição2 45
Descrição1 12
E preciso de um relatório assim:
Descrição1
20 30 40 12
Descrição2
25 35 40 45
Como só conseguir fazer relatório de grupo no QR e D7 com DataSet local, coloquei outro RX no QR, segue código:
procedure TForm1.BitBtn1Click(Sender: TObject);
var
iLinha, iColuna, iBase, iLargura: Integer;
vLabel: TQRLabel;
sDescricao : String;
begin
Screen.Cursor := crHourGlass;
QuickReport1 := TQuickReport1.Create(Self);
QuickReport1.QrRx.SortOnFields(´Descricao´);
QuickReport1.QrRx.Open;
RxMemoryData.First;
while not RxMemoryData.Eof do
begin
QuickReport1.QrRx.Append;
QuickReport1.QrRxDescricao.AsString := RxMemoryDataDescricao.AsString;
QuickReport1.QrRxValor.AsFloat := RxMemoryDataValor.AsFloat;
QuickReport1.QrRx.Post;
RxMemoryData.Next;
end;
iLargura := 77;
iLinha := 0;
iColuna := 0;
iBase := 0;
QuickReport1.QrRx.First;
sDescricao := QuickReport1.QrRxDescricao.AsString;
while not QuickReport1.QrRx.Eof do
begin
// if sDescricao <> QuickReport1.QrRxDescricao.AsString then
// begin
sDescricao := QuickReport1.QrRxDescricao.AsString;
// Next;
// Continue;
// end;
vLabel := TQRLabel.Create(QuickReport1);
vLabel.Name := ´vLabel´ + IntToStr(QuickReport1.QrRx.RecNo);
vLabel.Left := (iLargura * iColuna);
vLabel.Top := (21 * iLinha) + 4;
vLabel.Width := iLargura;
vLabel.Alignment := taRightJustify;
vLabel.Caption := FormatFloat(´,#0.00´, QuickReport1.QrRxValor.AsFloat);
vLabel.Parent := QuickReport1.DetailBand1;
iBase := 1;
inc(iColuna);
if QuickReport1.QrRx.RecNo mod 9 = 0 then
begin
inc(iLinha);
iColuna := 0;
iBase := 0;
end;
QuickReport1.QrRx.Next;
end;
QuickReport1.DetailBand1.Height := (21 * (iLinha + iBase)) + 4;
Screen.Cursor := crDefault;
QuickReport1.Preview;
QuickReport1.Free;
end;
Nigro
Curtir tópico
+ 0Posts
06/11/2006
Nigro
Gostei + 0
07/11/2006
Nigro
Gostei + 0
07/11/2006
Motta
Uma vez isto gerando uma function (no bd) que retorna a lista requerida numa string.
gero um cursor
do tipo select campo2 from tabela where campo1 = ....
concateno cada linha do cursor numa string até o fim dste
a funtion retorna esta string
mas o bd deve suportar functions
Gostei + 0
07/11/2006
Motta
Uma vez isto gerando uma function (no bd) que retorna a lista requerida numa string.
gero um cursor
do tipo select campo2 from tabela where campo1 = ....
concateno cada linha do cursor numa string até o fim dste
a funtion retorna esta string
mas o bd deve suportar functions
Gostei + 0
08/11/2006
Nigro
(eca..)
Ai o pessoal fala: ´Credo Nigro... Trabalhando com Paradox...´, pois é... Vai dizer para o cara da lojinha, do consultório, da papelaria, do acçougue, ou seja todo esse pessoal que só tem um micro, que ele tem que colocar um servidor dedicado ou comprar um micro mais rápido, só por causa do banco...
é a vida...
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)