2010-09-06 62 views
0

我正在使用德尔福2010年和Rave报告(内置,第7.7.0)。德尔福2010 - Rave报告运行时文本更改问题

我一直在使用这对夫妇5个月没有任何问题。在我的公司,我使用两种语言,首先使用我们的主要语言(土耳其语),当人们想使用其他语言时,我根据其标签值更改特定文本和备注值。

这种方法一直运行良好,直到上周。上周在运行时更改值停止工作。我不知道为什么,一切似乎与代码确定,我也试图检查更改的值,值似乎改变,但是当我执行报告时,所有的值都改变了默认值。

这里是我的更改代码:

procedure ProcessRaveReport(APageName : string); // 'rp411.rp411Page' 
var 
    myPage : TRavePage; 
    myText : TRaveText; 
    i, iTag : Integer; 
begin 

    dm.Rave.Open; 
    with dm.Rave.ProjMan do 
    begin 
    myPage := FindRaveComponent(APageName,nil) as TRavePage; 
    if myPage = nil then Exit; 
    for i:= 0 to myPage.ComponentCount-1 do 
    begin 
     if myPage.Components[i] is TComponent then 
     iTag := (myPage.Components[i] as TComponent).Tag; 

     if (iTag > 0) then 
     begin   
     if myPage.Components[i] is TRaveText then 
     begin 
      //ShowMessage((myPage.Components[i] as TRaveText).Text); 
      //ShowMessage(getLangIDS((myPage.Components[i] as TRaveText).Tag)); 
      (myPage.Components[i] as TRaveText).Text := getLangIDS((myPage.Components[i] as TRaveText).Tag); 
      //ShowMessage('Sonuc : '+(myPage.Components[i] as TRaveText).Text); 
     end 
     else if myPage.Components[i] is TRaveMemo then 
      (myPage.Components[i] as TRaveMemo).Text := getLangIDS((myPage.Components[i] as TRaveMemo).Tag); 
     end; 
     //iTag := 0; 
    end; 
    end; 
    dm.Rave.Close; 
end; 

你可以看到我的showmessage电话,这个消息证实变为新的语言,它的价值,但最后我总能看到默认值。

有没有人知道任何解决方案的问题?

Denizhan

回答

0

我错过了RvProject组分“狂欢” ......在一个快速的.execute检查它看起来不错,但你只改变RvProject的实例,而不是文件本身。

+0

是的,你是对的。我改变了文本,但更改后关闭了这个实例。我删除了“dm.Rave.Close”,它在运行时实例上工作。感谢您提醒有关实例的事情。 – dseckin 2010-09-13 06:18:39