全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1718
推到 Plurk!
推到 Facebook!

FASTREPORT中打印数据的分列显示

答題得分者是:zxy666666
ntjrr
高階會員


發表:240
回覆:312
積分:110
註冊:2005-04-24

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-06-28 20:42:17 IP:222.184.xxx.xxx 未訂閱
我的程式如下: http://delphi.ktop.com.tw/loadfile.php?TOPICID=23193626&CC=518714 我现在做成的打印是字段中有数值的,那么就会排成一列打印下来,我想要的效果是,不管能不能取到数值,我们先把数据库中tb_yplx中的字段内容都制成一个表,但不会只是一列,可以分成二到三列制成一个表,如果查询出来的的结果中有这个值,那么就填入到相应的表格中,如果这个项目在统计时没有出现,也就是没有数值,那么这个项目就空白不填。效果如图: 發表人 - ntjrr 於 2005/06/28 21:10:55
------
我的编程起步于ktop,我将永远支持ktop
zxy666666
中階會員


發表:108
回覆:150
積分:86
註冊:2005-01-14

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-06-29 09:33:35 IP:219.132.xxx.xxx 未訂閱
您好!提供一個方法: 1. 將tb_yplx增加一個計算金額欄位. 2. 由tb_sf計算出tb_yplx對應項目的總金額(這應該不難做到吧?),並將得出的數據update到tb_yplx中增加的那個計算欄位 3.最後用fastreport直接列印tb_yplx中的兩個字段的內容即可. 4.分二列或三列制作報表,在fastreport中可設置Page或MasterData的屬性Columns設為2或3即可.(這樣可能需控制列印幾筆資料分頁,Ktop已有相關討論主題http://delphi.ktop.com.tw/topic.php?TOPIC_ID=72835) 若有問題,請再提出.
ntjrr
高階會員


發表:240
回覆:312
積分:110
註冊:2005-04-24

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-06-30 18:46:38 IP:222.184.xxx.xxx 未訂閱
引言: 您好!提供一個方法: 1. 將tb_yplx增加一個計算金額欄位. 2. 由tb_sf計算出tb_yplx對應項目的總金額(這應該不難做到吧?),並將得出的數據update到tb_yplx中增加的那個計算欄位
这个思路我觉得蛮可行的,但是因为我初学入门,对SQL不太精通,所以不知如何将数据UPDATE到表中 我的ADOQUERY查询为: ADOQuery1.Close; ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add('select 项目类型,sum(单项累计) from tb_sf group by 项目类型'); ADOQuery1.Open; 查询结果就为项目类型和总金额记录。在YPLX表中,栏位也是项目类型和总金额,而且YPLX表中的项目类型记录名称和查询结果是一模一样的,不同之处在于:查询结果中的项目类型记录数是小于或等于YPLX表中记录的,查询结果中的总金额数是有数字的,YPLX表中的总金额都是空白的。想要实现的功能就是将查询中出来的项目结果中的金额数填到YPLX表中,要求项目类型字段要相对应,比如西药费金额就填到表中的西药费金额上
------
我的编程起步于ktop,我将永远支持ktop
zxy666666
中階會員


發表:108
回覆:150
積分:86
註冊:2005-01-14

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-07-01 09:08:30 IP:219.130.xxx.xxx 未訂閱
var
  Form1: TForm1;
  Tot_Money:array[0..7] of Real ;  //項目金額
  Tot_Name:array[0..7] of String ; //項目名稱    implementation    {$R *.dfm}
procedure TForm1.Button3Click(Sender: TObject);
var i : Integer ;
begin
      Tot_Name[0] := 'AA' ;  //項名稱與報表frxReport中的名稱一一對應
      Tot_Name[1] := 'BB' ;
      Tot_Name[2] := 'CC' ;
      Tot_Name[3] := 'DD' ;
      Tot_Name[4] := 'EE' ;
      Tot_Name[5] := 'FF' ;
      Tot_Name[6] := 'GG' ;
      Tot_Name[7] := '其他' ;
    for i := 0 to 9 do
     begin
      Tot_Money[I] := 0 ;
     end;
    for i := 0 to 7  do
    begin
      Query3.SQL.Clear;
//    注:A02-->項目金額欄位名,A01-->項目名稱欄位名
      Query3.SQL.Add('select sum(A02) from tb_sf where A01 =:A01');
      Query3.ParamByName('A01').AsString := Tot_Name[i] ;
      Query3.Open;
      Tot_Money[i] := Query3.Fields[0].AsFloat ;  //項目金額
//    showmessage(FloatTostr(Tot_Money[i]));
    end;
      frxReport1.ShowReport;
end;    procedure TForm1.frxReport1BeforePrint(Sender: TfrxReportComponent);
begin
      frxReport1.Script.Variables['Tot_Money[0]'] := Tot_Money[0] ;
      frxReport1.Script.Variables['Tot_Money[1]'] := Tot_Money[1] ;
      frxReport1.Script.Variables['Tot_Money[2]'] := Tot_Money[2] ;
      frxReport1.Script.Variables['Tot_Money[3]'] := Tot_Money[3] ;
      frxReport1.Script.Variables['Tot_Money[4]'] := Tot_Money[4] ;
      frxReport1.Script.Variables['Tot_Money[5]'] := Tot_Money[5] ;
      frxReport1.Script.Variables['Tot_Money[6]'] := Tot_Money[6] ;
      frxReport1.Script.Variables['Tot_Money[7]'] := Tot_Money[7] ;
end;
zxy666666
中階會員


發表:108
回覆:150
積分:86
註冊:2005-01-14

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-07-01 09:10:39 IP:219.130.xxx.xxx 未訂閱
引言:
var
  Form1: TForm1;
  Tot_Money:array[0..7] of Real ;  //項目金額
  Tot_Name:array[0..7] of String ; //項目名稱    implementation    {$R *.dfm}
procedure TForm1.Button3Click(Sender: TObject);
var i : Integer ;
begin
//項目名稱與報表frxReport中的名稱一一對應
      Tot_Name[0] := 'AA' ;  
      Tot_Name[1] := 'BB' ;
      Tot_Name[2] := 'CC' ;
      Tot_Name[3] := 'DD' ;
      Tot_Name[4] := 'EE' ;
      Tot_Name[5] := 'FF' ;
      Tot_Name[6] := 'GG' ;
      Tot_Name[7] := '其他' ;
    for i := 0 to 7 do
     begin
      Tot_Money[I] := 0 ;
     end;
    for i := 0 to 7  do
    begin
      Query3.SQL.Clear;
//    注:A02-->項目金額欄位名,A01-->項目名稱欄位名
      Query3.SQL.Add('select sum(A02) from tb_sf where A01 =:A01');
      Query3.ParamByName('A01').AsString := Tot_Name[i] ;
      Query3.Open;
      Tot_Money[i] := Query3.Fields[0].AsFloat ;  //項目金額
//    showmessage(FloatTostr(Tot_Money[i]));
    end;
      frxReport1.ShowReport;
end;    procedure TForm1.frxReport1BeforePrint(Sender: TfrxReportComponent);
begin
      frxReport1.Script.Variables['Tot_Money[0]'] := Tot_Money[0] ;
      frxReport1.Script.Variables['Tot_Money[1]'] := Tot_Money[1] ;
      frxReport1.Script.Variables['Tot_Money[2]'] := Tot_Money[2] ;
      frxReport1.Script.Variables['Tot_Money[3]'] := Tot_Money[3] ;
      frxReport1.Script.Variables['Tot_Money[4]'] := Tot_Money[4] ;
      frxReport1.Script.Variables['Tot_Money[5]'] := Tot_Money[5] ;
      frxReport1.Script.Variables['Tot_Money[6]'] := Tot_Money[6] ;
      frxReport1.Script.Variables['Tot_Money[7]'] := Tot_Money[7] ;
end;
系統時間:2017-10-22 14:24:32
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!