Passar parametro em tempo de execução.
Olá
Tenho uma consulta que mostra o movimento dos meses escolhidos.
Meu problema é que tenho que imprimir esta consulta e não sei como chamar o RLDBtext correto (uso Fortes Report) para preencher a propriedade DataField com a coluna correspondente (criado em tempo de execução). :?
Seria algo assim:
[color=green:cd01716203][/color:cd01716203]
Agradeço qualquer dica.
Tenho uma consulta que mostra o movimento dos meses escolhidos.
Meu problema é que tenho que imprimir esta consulta e não sei como chamar o RLDBtext correto (uso Fortes Report) para preencher a propriedade DataField com a coluna correspondente (criado em tempo de execução). :?
Seria algo assim:
[color=green:cd01716203]
Var i, qtde_meses:Integer; begin qtde_meses:=5 for i:=1 to qtde_meses do begin RLDBText +(i).DataField:= ´Mes´+(i); end; RLReport.Preview; end;
Agradeço qualquer dica.
Ivonei
Curtidas 0
Respostas
Paulo_amorim
05/07/2005
Olá
Só pra ficar claro... vc tem componentes RLDBText com nomes sequenciais?
RLDBText1, RLDBText2, RLDBText3, etc?
Se sim, é necessário usar findcomponent para acessar seus componentes atraves de seu nome:
Se não eh isso, me desculpe, tente postar denovo
Espero que ajude
Até+
Só pra ficar claro... vc tem componentes RLDBText com nomes sequenciais?
RLDBText1, RLDBText2, RLDBText3, etc?
Se sim, é necessário usar findcomponent para acessar seus componentes atraves de seu nome:
TRLDBText( FindComponent(´RLDBText´ + IntToStr(i) ) ).DataField := ´Mes´ + IntToStr(i);
Se não eh isso, me desculpe, tente postar denovo
Espero que ajude
Até+
GOSTEI 0
Ivonei
05/07/2005
Olá
Só pra ficar claro... vc tem componentes RLDBText com nomes sequenciais?
RLDBText1, RLDBText2, RLDBText3, etc?
Se sim, é necessário usar findcomponent para acessar seus componentes atraves de seu nome:
Se não eh isso, me desculpe, tente postar denovo
Espero que ajude
Até+
TRLDBText( FindComponent(´RLDBText´ + IntToStr(i) ) ).DataField := ´Mes´ + IntToStr(i);
É deste jeito mesmo que quero fazer.
Só que os componentes estão em outro form. Tentei fazer assim:
TRLDBText( FindComponent(´[b:8cc0ee9e24]Form2.[/b:8cc0ee9e24]RLDBText´ + IntToStr(i) ) ).DataField := ´Mes´ + IntToStr(i);
Mas dá erro ´Access Violation´.
O que está errado?
Não consigo descobrir o motivo. :cry:
GOSTEI 0
Sremulador
05/07/2005
achou que você não criou o formulário.
GOSTEI 0
Ivonei
05/07/2005
achou que você não criou o formulário.
Está criado sim. Pois se eu fizer como está abaixo, da certo:
Var i, qtde_meses:Integer; begin qtde_meses:=1 for i:=1 to qtde_meses do begin Form2.RLDBText1.DataField:= ´Mes´+(i); end; Form2.RLReport.Preview; end;
GOSTEI 0
Paulo_amorim
05/07/2005
Olá
O FindComponent é um método de Self, nesse caso. POr isso vc não especifica a raiz.
Como os componentes estão em outro formulário, deve-se fazer
Claro, assumindo que Form2 está na memória
Espero que ajude
Até+
O FindComponent é um método de Self, nesse caso. POr isso vc não especifica a raiz.
Como os componentes estão em outro formulário, deve-se fazer
Form2.FindComponent( ... )
Claro, assumindo que Form2 está na memória
Espero que ajude
Até+
GOSTEI 0
Ivonei
05/07/2005
Olá
O FindComponent é um método de Self, nesse caso. POr isso vc não especifica a raiz.
Como os componentes estão em outro formulário, deve-se fazer
Claro, assumindo que Form2 está na memória
Espero que ajude
Até+
Form2.FindComponent( ... )
Ajudou muito.
Agora está funcionando do jeito que eu preciso.
Valeu Paulo Amorim. :D
GOSTEI 0