Array
(
)

DBGrid QuickReport = Dúvida

Pantoja
   - 29 mar 2006

Sei que estou trabalhando num banco ultrapassado com lgaçoes tb de mesma forma ultrapassados, mas cada um de nos temos limitaçoes tecnicas e a minha vai ate aqui...

espero nao ser discriminado por isso! :wink:

aki vai a minha duvida e as informaçoes addicionais



Informaçoes:

Delphi: 7.0
Banco: Paradox
Componentes de ligação: DataBase, Table, DS
Relatorio: QuickRep

Duvida:

Amigos, meu cliente quer selecionar, de alguma maneira, os registros a serem impressos. Eu optei pelo DBgrid, pois tem a opção MULTISELECT lá mas poderia ser de autra maneira, component etc.

Eu li VARIOS topicos aki que chegam proximo do q eu quero mas esse proximo infelismente noa me adiantou muito(programação é EXATO ne, fazer o q ! rsrs).

Continuando... tava eu pensando aki , mas e a conecção no QuickRep ONDE entra esse codigo ´dizendo´ que tem q ser impresso SOMENTE OS SELECIONADOS ??

acho q essa seria minha questão princi´pal... nao sei como dizer pra imprimir SOMENTE OS SELECIONADOS lá no relatorio...


Obrigado pela atenção amigos !



Abrasss :wink: :wink: :wink:



Citação:
Título do tópico editado por Vinicius2K:
[list:852a692f60][*:852a692f60]Título inteiramente em maiúsculas: ´DBGRID + QUICKREPORT = DUVIDA´.
[*:852a692f60]O tópico só não foi bloqueado em respeito ao colega que postou uma resposta.[/list:u:852a692f60]
Peço que leia atentamente as [url=http://forum.clubedelphi.net/viewtopic.php?t=6689]Regras de Conduta[/url] e se algum esclarecimento sobre o funcionamento do fórum ou sobre as Regras de Conduta for necessário, envie-me uma [url=http://forum.clubedelphi.net/privmsg.php?mode=post&u=2796]Mensagem Particular[/url].



Ermindo
   - 29 mar 2006

caro colega, vou te dar uma direção para q vc resolva seu problema.

#Código


unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids, DBGrids, DB, ADODB;

type
TForm1 = class(TForm)
DataSource1: TDataSource;
ADOConnection1: TADOConnection;
ADOQuery1: TADOQuery;
ADOQuery1CODIGO: TIntegerField;
ADOQuery1NOME: TStringField;
DBGrid1: TDBGrid;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
i: Integer;
s: widestring;
begin

s:= ´´;

if DBGrid1.SelectedRows.Count>0 then
with DBGrid1.DataSource.DataSet do
for i:=0 to DBGrid1.SelectedRows.Count-1 do
begin

GotoBookmark(pointer(DBGrid1.SelectedRows.Items[i]));
if trim(s) = ´´ then
s:=´ (codigo = ´+ADOQuery1.fieldbyname(´codigo´).asstring+´) ´
else
s:=s+´ or (codigo = ´+ADOQuery1.fieldbyname(´codigo´).asstring+´) ´;

end;


ADOQuery1.Filtered:=false;
ADOQuery1.Filter:=s;
ADOQuery1.Filtered:=true;

end;

end.



apos filtrado os campos q seu cliente selecionou, vc pode dar um preview.


Pantoja
   - 29 mar 2006

gostaria de pedir desculpas a MODERAÇÃO pelo titulo !




amigo... obrigado pela boa vontade de ajudar ....

eu achei codigos parecidos na busca... mas e justamente essa minha dificuldade... nao sei pegar essa ideia q esta usando e adaptala nos meus componentes...

ADO uso TABLE
nem uso QUERY


entaum nao saberia fazer...


será q nao da entuam... com os componetes q uso + o quick report?


pow se nao der me avisem logo q tento mudar meu pensamento..s ei lá...



o f.... é o cliente no meu ouvido de meia em meia hora...



abrassss


Ermindo
   - 29 mar 2006

colega, em vez do adoquery, use o table q funciona.

tire o AdoQuery1......... e coleque Table1..........


Pantoja
   - 29 mar 2006

amigo... fico extremamente grato...

squei o q fez...

qdo eu filtrar estará so os q o cliente selecionou na GRID !

booaaaaaa

vo testar e te dou o feedback amigo...



sem querer te explorar amigo... se tiver um codigo na manga ai q pegue esses registros FILTRADOS e passe prum .TXT

acredito ser trankilo, mas nao tenho conhecimento para faze-lo!



abrassss


Ermindo
   - 29 mar 2006

tipo, depois de filtrado, voce pode fazer o seguinte:

#Código


procedure TForm1.Button1Click(Sender: TObject);
var f: textfile;
begin

table1.first;
assignfile(f, ´c:\qq_coisa.txt´);
rewrite(f);
while not table1.eof do
begin
// aqui vc monta o layout do seu TXT com o WriteLn
writeln(f,table1.fieldbyname(´codigo´).asstring);

table1.next;
end;
closefile(f);

end;