Pascal脚本快速报告

时间:2017-06-06 12:58:11

标签: delphi pascal fastreport

编辑:

我必须在快速报告中编辑一些旧的Pascal脚本,并且很难只返回不同的记录。任何帮助将不胜感激。

所以基本上,我调用存储过程来返回表中的数据。在其中一列中,有时会有一个1个字母的代码(A,B,C),用于定义要为报告获取的rtf文件。

目前它确实会获取相应代码的所有rtf文件,但有时会重复代码(A,A),在这种情况下,我需要它只返回DISTINCT rtf文件。因此,如果已经完全取消了A,请再次拔出并继续寻找该列中的其他代码

我的代码: 注意:在Memo93中我只是插入(表。“类”)

    procedure GroupHeader17OnBeforePrint(Sender: TfrxComponent );
var
       CarGroup: String     ;
       CarGroupLoop: String;  
begin  
                       CarGroup := Memo93.Value;
                       if not(CarGroup = CarGroupLoop) then
                       begin
                               try
                                       GroupHeader17.Visible := TRUE;
                                       rich23.richedit.lines.LoadFromFile('example\'+ trim(Get('@QteLanguage'))+ '\'+ trim(Get('@QteLanguage'))+'_Group_'+ trim(<Table."class">)+ '.rtf');

                               except
                                       GroupHeader17.Visible := FALSE;

                               end;
                       end
                       else
                       begin
                               GroupHeader17.Visible := False;
                       end;

                       CarGroupLoop := <table."Class">;

end;

这个似乎完成了这项工作,只带回了不同的rtf文件。

procedure GroupHeader17OnBeforePrint(Sender: TfrxComponent );
var
       CarGroup: String     ;
       CarGroupLoop: String;
begin
                       CarGroup := Memo93.Value;
                       CarGroupLoop :=  <table."Class">;
                       if not(CarGroup = CarGroupLoop) then
                       begin
                               try
                                       GroupHeader17.Visible := TRUE;
                                       rich23.richedit.lines.LoadFromFile('example\'+ trim(Get('@QteLanguage'))+ '\'+ trim(Get('@QteLanguage'))+'_Group_'+ trim( <table."Class">)+ '.rtf');

                               except
                                       GroupHeader17.Visible := FALSE;

                               end;
                       end
                       else
                       begin
                               GroupHeader17.Visible := False;
                       end;



end;

2 个答案:

答案 0 :(得分:0)

尝试使用CarGroup := <table."Class">;并在GroupHeader17OnBeforePrint事件结束时移动CarGroupLoop := <table."Class">;

    procedure GroupHeader17OnBeforePrint(Sender: TfrxComponent );
var
       CarGroup: String     ;
       CarGroupLoop: String;  
begin  
                       CarGroup :=  <table."Class">;
                       if not(CarGroup = CarGroupLoop) then
                       begin
                               try
                                       GroupHeader17.Visible := TRUE;
                                       rich23.richedit.lines.LoadFromFile('example\'+ trim(Get('@QteLanguage'))+ '\'+ trim(Get('@QteLanguage'))+'_Group_'+ trim(<Table."class">)+ '.rtf');

                               except
                                       GroupHeader17.Visible := FALSE;

                               end;
                       end
                       else
                       begin
                               GroupHeader17.Visible := False;
                       end;

                       CarGroupLoop := <table."Class">;

end;

答案 1 :(得分:0)

尝试

var CarGroup: String;      //global variable

procedure GroupHeader17OnBeforePrint(Sender: TfrxComponent);
var CarGroupLoop: String ;
begin
     CarGroupLoop := trim(<rpt_1_RHINO_Costing_Curr_Totals."SupplierClassCodeTransport">);
     if not(CarGroup = CarGroupLoop) then
       begin
         try
            //rich23.richedit.lines.LoadFromFile('D:\Data\Shares\GlobeTrackNew\QuoteInfo\Suppliers\Bidvest\'+ trim(Get('@QteLanguage'))+ '\'+ trim(Get('@QteLanguage'))+'_Group_'+ trim(<rpt_1_RHINO_Costing_Curr_Totals."SupplierClassCodeTransport">)+ '.rtf');
            GroupHeader17.Visible := TRUE;
            //rich23.richedit.lines.LoadFromFile('D:\Data\Shares\GlobeTrackNew\QuoteInfo\Suppliers\Bidvest\GER\GER_Group_I.rtf');
         except
            GroupHeader17.Visible := FALSE;
         end;
       end
     else
       GroupHeader17.Visible := FALSE;
     CarGroup := trim(<rpt_1_RHINO_Costing_Curr_Totals."SupplierClassCodeTransport">);
end;

procedure SubCarHireOnBeforePrint(Sender: TfrxComponent);
begin
  CarGroup := '';  
end;