DBGrid QuickReport = Dúvida

29/03/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



[b:852a692f60]Informaçoes: [/b:852a692f60]

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

[b:852a692f60]Duvida:[/b:852a692f60]

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:


[b:852a692f60][color=blue:852a692f60]Título do tópico editado por Vinicius2K:[/color:852a692f60][/b:852a692f60] [b:852a692f60][color=red:852a692f60][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][/color:852a692f60][/b: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].



Pantoja

Respostas

29/03/2006

Ermindo

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

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&93;));
    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.


Responder Citar

29/03/2006

Pantoja

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


Responder Citar

29/03/2006

Ermindo

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

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


Responder Citar

29/03/2006

Pantoja

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


Responder Citar

29/03/2006

Ermindo

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

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;



Responder Citar