0

我正在使用 Delphi 2010 和 Rave Reports(内置,v. 7.7.0)。

我已经使用这对夫妇 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 调用,这些消息证明值已更改为新语言,但最后我总是看到默认值。

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

德尼占

4

1 回答 1

0

我错过了 RvProject 组件“Rave”的 .execute ...快速检查它看起来不错,但您只更改了 RvProject 的实例而不是文件本身。

于 2010-09-06T19:53:07.067 回答