針對頁次與總頁數可以很簡單的列印上去,
在使用GroupBand時若要依據群組顯示頁次,如
1/1
------
1/2
2/2
------
可使用下面的方式來達到需求!
//**宣告全域變數 private xPage : Integer; xIONo : String; xRecIONo : String; //**在PageHeader的BeforePrint寫入計算規則 procedure TQR.PageHeaderBandBeforePrint(Sender: TQRCustomBand; var PrintBand: Boolean); var xPos,xLen : Integer; xStr : String; begin //**Query_Item 為QR的DataSet if xIONo <> Query_Item.fieldbyname('IONo').AsString then begin //**"單號-總頁數" 兩群組記錄間以","分開 if xIONo <> '' then xRecIONo := xRecIONo+','+xIONo+'-'+IntToStr(xPage); xPage := 0;//**頁次歸0 xIONo := Query_Item.fieldbyname('IONo').AsString; end; INC(xPage);//**累加頁次 QRL_SubPage.Caption := IntToStr(xPage);//**群組頁次 if AnsiContainsStr(xRecIONo,xIONo) then//**產生preview前不需判斷 begin //**"單號-總頁數" xStr := xRecIONo; xPos := Pos(xIONo,xStr); xLen := Length(xStr); //**拆單號-群祖頁數 xStr := Copy(xStr,xPos+1,xLen-xPos); xPos := Pos(',',xStr); xStr := Copy(xStr,0,xPos-1); //**拆頁數 xPos := Pos('-',xStr); xLen := Length(xStr); xStr := Copy(xStr,xPos+1,xLen); QRL_GroupPage.Caption := xStr;//**群組頁數 end; end; //**在DataSet的EndOfRecordset寫入資料行結尾處理 procedure TQR.Query_ItemEndOfRecordset(DataSet: TCustomADODataSet; var MoreData: WordBool; var EventStatus: TEventStatus); begin //** //**"單號-總頁數" 兩群組記錄間以","分開 if xIONo <> '' then xRecIONo := xRecIONo+','+xIONo+'-'+IntToStr(xPage); xPage := 0;//**頁次歸0 xIONo := ''; end;
沒有留言:
張貼留言