Fórum Passar parametro em tempo de execução. #286992
05/07/2005
0
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
Curtir tópico
+ 0Posts
05/07/2005
Paulo_amorim
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
05/07/2005
Ivonei
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
05/07/2005
Sremulador
Gostei + 0
05/07/2005
Ivonei
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
05/07/2005
Paulo_amorim
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
06/07/2005
Ivonei
Form2.FindComponent( ... )
Ajudou muito.
Agora está funcionando do jeito que eu preciso.
Valeu Paulo Amorim. :D
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)