Imprimir Seleção
11/03/2003
0
Amigos, tenho um sistema no qual mando imprimir o recibo de um a um, e agora
o cliente quer a opção de mandar imprimir todos os registros que estão
selecionados. Qual a melhor maneira de se fazer isso?
Estou meio perdido....
Obrigado
Pedro Leonardo
o cliente quer a opção de mandar imprimir todos os registros que estão
selecionados. Qual a melhor maneira de se fazer isso?
Estou meio perdido....
Obrigado
Pedro Leonardo
Anonymous
Curtir tópico
+ 0
Responder
Posts
11/03/2003
Anonymous
Faça um loop com os registro selecionados, mandando cada registro como parametro para uma instrução SQL do relatório, como por exemplo:
[b:4d4a7bcca7]
procedure imprimirRecibo;
var
where:String;
begin
if DBGrid1.SelectedList.Count <= 0 then
begin
ShowMessage(´Selecione o(s) Recibos(s) a impimir...´);
Exit;
end;
Where := ´´;
DBGrid1.DataSource.DataSet.DisableControls;
DBGrid1.DataSource.DataSet.First;
while not DBGrid1.DataSource.DataSet.Eof do
begin
if DBGrid1.IsSelectedRecord then
begin
if Where <> ´´ then
Where := Where+´,´;
Where := Where+DBGrid1.DataSource.DataSet.FieldByName(´CD_CLI´).AsString;
end;
DBGrid1.DataSource.DataSet.Next;
end;
Where := ´CD_CLI IN (´+Where+´)´;
DBGrid1.DataSource.DataSet.EnableControls;
with qrRecibo do
begin
qryRecibo.Close;
qryRecibo.SQL.Text = ´SELECT * FROM TB_RECIBO WHERE ´+Where;
qryRecibo.Open;
Preview; // (ou Print)
qryRecibo.Close;
Free;
end;
end;[/b:4d4a7bcca7]
É só uma idéia...
[b:4d4a7bcca7]
procedure imprimirRecibo;
var
where:String;
begin
if DBGrid1.SelectedList.Count <= 0 then
begin
ShowMessage(´Selecione o(s) Recibos(s) a impimir...´);
Exit;
end;
Where := ´´;
DBGrid1.DataSource.DataSet.DisableControls;
DBGrid1.DataSource.DataSet.First;
while not DBGrid1.DataSource.DataSet.Eof do
begin
if DBGrid1.IsSelectedRecord then
begin
if Where <> ´´ then
Where := Where+´,´;
Where := Where+DBGrid1.DataSource.DataSet.FieldByName(´CD_CLI´).AsString;
end;
DBGrid1.DataSource.DataSet.Next;
end;
Where := ´CD_CLI IN (´+Where+´)´;
DBGrid1.DataSource.DataSet.EnableControls;
with qrRecibo do
begin
qryRecibo.Close;
qryRecibo.SQL.Text = ´SELECT * FROM TB_RECIBO WHERE ´+Where;
qryRecibo.Open;
Preview; // (ou Print)
qryRecibo.Close;
Free;
end;
end;[/b:4d4a7bcca7]
É só uma idéia...
Responder
Clique aqui para fazer login e interagir na Comunidade :)