Array
(
    [0] => stdClass Object
        (
            [Votos_Balanceados] => 1
            [id] => 252091
            [titulo] => Imprimir só 1 registro selecion. no DBGrid no Quick Report
            [dataCadastro] => DateTime Object
                (
                    [date] => 2004-09-29 00:00:00
                    [timezone_type] => 3
                    [timezone] => America/Sao_Paulo
                )

            [isFirstPost] => -1
            [idUsuario] => 235914
            [status] => A
            [isExample] => 
            [NomeUsuario] => Aroldo Zanela
            [Login] => forum.Aroldo Zanela
            [Apelido] => 
            [Foto] => 
            [Conteudo] => Colega,

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

Script para a ADOQuery (qReport)

[code:1:c7b71b4405]SELECT * FROM nome_tabela
where cad_id = :identificador[/code:1:c7b71b4405]

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

Mudar a propriedade DataSet do QuickRep para qReport.


) )

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

Canastra
   - 25 set 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.


Post mais votado

Aroldo Zanela
   - 29 set 2004

Colega,

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

Script para a ADOQuery (qReport)

#Código

:1:c7b71b4405]SELECT * FROM nome_tabela
where cad_id = :identificador
:1:c7b71b4405]

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

Mudar a propriedade DataSet do QuickRep para qReport.


Aroldo Zanela
   - 25 set 2004

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).

#Código

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



Canastra
   - 26 set 2004

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 ........


Aroldo Zanela
   - 26 set 2004

Colega,

Pode ser algo como:

#Código

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



Canastra
   - 26 set 2004

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.


Aroldo Zanela
   - 28 set 2004

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.


Rômulo Barros
   - 28 set 2004

Aproveitando a dica do Aroldo Zanela, tente:
#Código

qReport.Close; 
qReport.Parameters.[0].AsString := qDadosGrid.FieldByName(´REGISTRO´).AsString;
qReport.Open;
QuickRep1.PreviewModal; // Ligado ao qReport e não ao DataSet da Grid



:wink: :wink: :wink:


Canastra
   - 28 set 2004

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;


Aroldo Zanela
   - 29 set 2004


Citação:
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.

Colega,

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


Canastra
   - 29 set 2004

Aroldo,

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

#Código

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



Canastra
   - 30 set 2004

Aroldo,


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