Imprimir só 1 registro selecion. no DBGrid no Quick Report

25/09/2004

Obs.: Antes de tudo devo informar que essa pergunta já foi formulada no
Forum, porém não respondida e solucionada.

Estou usando o DBGrid para mostrar os registro da tabela em Access
2000 / ADO.

Gostaria de saber como faço para imprimir no Quick Report, somente
aquele registro (digo 1 registro) que esta posicionado o ponteiro no
DBGrid ou seja apenas um registro selecionado.

Por favor gostaria que fossem bem especifico ( detalhado ), pois não
tenho muita experiencia em Delphi.


Desde já O B R I G A D O a todos.


Canastra

Melhor resposta

29/09/2004

Colega,

Crie um consulta (ADOQuery) e coloque qReport na propriedade name:

Script para a ADOQuery (qReport)

SELECT * FROM nome_tabela
where cad_id = :identificador


Código Delphi
qReport.Close;
qRepor1.Parameters.ParamByName(´identificador´).Value := ADOTableCAD_ID.value; // ADOTable deve ser substituido pelo nome da sua tabela (dbGrid)
qReport.Open;


Mudar a propriedade DataSet do QuickRep para qReport.


Aroldo Zanela

Responder Citar

Outras Respostas

25/09/2004

Aroldo Zanela

Colega,

O ideal é obter um identificador único do registro e selecionar apenas o referido registro, evitando neste caso, o uso de controle de impressão por meio dos eventos do QuickReport (BeforePrint e AfterPrint).

qReport.Parameters.ParamByName(´Id_reg´).Value := qDadosGridREGISTRO.Value;



Responder Citar

26/09/2004

Canastra

Aroldo,

Em que evento e componente coloco a rotina sua informada.
Pois não entendi muito bem, ficarei grato se puder ser mais
detalhado.

Desde já O B R I G A D O ........


Responder Citar

26/09/2004

Aroldo Zanela

Colega,

Pode ser algo como:

qReport.Close;
qReport.Parameters.ParamByName(´Id_reg´).Value := qDadosGridREGISTRO.Value;
qReport.Open;
QuickRep1.PreviewModal; // Ligado ao qReport e não ao DataSet da Grid



Responder Citar

26/09/2004

Canastra

Aroldo,

Continuo sem entender, colocando esta rotina no Form
onde eu disparo para chamar o Relatorio, tambem não aceita
Parameters.ParamByName, pois estou usando DELPHI ADO / ACCESS
2000.

Peço descreva mais detalhado.

Obrigado.


Responder Citar

28/09/2004

Aroldo Zanela

Colega,

Coloque a estrutura da tabela (campos, tipos e tamanhos) e componentes de acesso que está utilizando, para que possamos tentar elaborar um exemplo mais direcionado.


Responder Citar

28/09/2004

Rômulo Barros

[b:c4a793cd01][color=red:c4a793cd01]Aproveitando a dica do Aroldo Zanela, tente:[/color:c4a793cd01][/b:c4a793cd01]
qReport.Close; 
qReport.Parameters.[0&93;.AsString := qDadosGrid.FieldByName(´REGISTRO´).AsString; 
qReport.Open; 
QuickRep1.PreviewModal; // Ligado ao qReport e não ao DataSet da Grid 



:wink: :wink: :wink:


Responder Citar

28/09/2004

Canastra

a) Em todo o programa só utilizo 2 tela de Form, a 1º tenho um DBGrid
com ADOTable e Datasource(ACCESS 2000), sendo que ao clicar num
registro do DBGrid ou no botao de Cadastro, será direcionado para o
Form2.
b) No Form2 tenho outro ADOTable e DataSource que poderia ter usado
em um Data Module, com os botoes para Anterior/Proximo/Gravar/
Excluir/Imprimir e Fechar que irá retornar para o Form1.
-Nesse Form2 coloquei diversos DBEDIT para os campos de Nome/
Endereço/Bairro/Cep/Data Cadastro/Tipo de Cadastro tudo String e
DBImage e DBMemo.
-Sendo que coloquei no botao Imprimir: QuickReport1.Preview;
aparecendo no relatório todos os registros e não o registro atual
que está na tela do Form2 e na Seleção do DBGrid do Form1, conf.
informado acima.
-No evento OnShow do Form2, coloquei:
ADOTable1.Active := True;
ADOTable1.First;


Responder Citar

29/09/2004

Aroldo Zanela

[quote:8acd79333d=´Aroldo Zanela´]Colega,

Coloque a estrutura da tabela (campos, tipos e tamanhos) e componentes de acesso que está utilizando, para que possamos tentar elaborar um exemplo mais direcionado.[/quote:8acd79333d]
Colega,

Sem esta informação: (Coloque a estrutura da tabela (campos, tipos e tamanhos)) fica muito difícil avançarmos mais.


Responder Citar

29/09/2004

Canastra

Aroldo,

Estou utilizando ADO / ACCESS 2000 e a estrutura da tabela
segue abaixo:

                   CAMPO                  TIPO                  TAMANHO
                   Cad_ID                  numero              Inteiro Longo
                   Cad_Nome             Texto                  40
                   Cad_Ende              Texto                  40
                   Cad_Cida               Texto                  20
                   Cad_Cep                Texto                  10
                   Cad_Data               Data                  Data abreviada
                   Cad_Tipo               Texto                  20
                   Cad_Figur               Obejto Ole       
                   Cad_Obs                Memorando
                   Cad_Infor              Memorando
                   Cad_Adic                Memorando



Responder Citar

30/09/2004

Canastra

Aroldo,


O B R I G A D O pela dica, e já está funcionando.


Responder Citar