请大家帮忙解决一个报表问题!! (100分)

  • 主题发起人 主题发起人 luckchen8256
  • 开始时间 开始时间
L

luckchen8256

Unregistered / Unconfirmed
GUEST, unregistred user!
要做一个如下格式的报表:
表头
日期 一月 二月 三月 四月 五月 六月 七月 八月 九月 十月 十一月 十二月
1 2.5
2 3.0 8.0
3 4.5
4
5
6
.
.
31
数据表有日期(YYYY-MM-DD HH-MM-SS)、数量两个字段,需要统计当天的数量,如果大于
零就填到对应位置,为零就不填
请各位大虾帮忙!谢谢了!
 
建一个表。12个字段。分别是1月到12月。31个记录。分别表示每月的天数。根据提供
的日期字段的内容,计算算出月(字段名),日记录数,就可以将统计的值填入。
报表可以通过REPORT连接新建的表,就可以实现你的要求了。
 
表结构就不用给你定了吧。
利用FASTREPORT,把每一个放置在MASTERDATA BAND中的MEMO,设置为变量,类似[A],……
在MASTERDATA的ONBEFOREPRIINT事件中,做判断
IF NOT (A<=0) then
A:=¥%¥%;
这个样子,不用管表里数据到底是什么,在报表打印时,会依据你给定条件打印。
 
难道要放365个Memo?
 
不需要。给你一段程序,如何做。
//定义报表名称
QR_Head.Caption :=frm_find.rp_head.Caption;
//明细行的起始位置
Left := 0;
//对DBGRID表所有字段循环
for I := 0 to frm_result.gust_DBG.Columns.Count -1 do
begin
if frm_result.gust_DBG.Columns.Visible then
begin
//明细表栏目名称赋值(Column header)
DB_Column := TQRLabel.Create(self);
DB_Column.Frame.DrawTop := true;
DB_Column.Frame.DrawBottom := True;
DB_Column.Frame.DrawLeft := True;
DB_Column.Frame.DrawRight := True;
DB_Column.Alignment := taCenter;
DB_Column.top := 2;
DB_Column.Left := Left;
DB_Column.Height := QR_Column.Height;
DB_Column.AutoSize := False;
DB_Column.Font := frm_result.gust_DBG.Columns.Font;
DB_Column.Width := frm_result.gust_DBG.Columns.Width;
DB_Column.Caption := frm_result.gust_DBG.Columns.Title.Caption;
DB_Column.Parent := QR_Column;
//明细表数据部分赋值(Detail)
DB_Data := TQRDBText.Create(self);
DB_Data.Frame.DrawTop := True;
DB_Data.Frame.DrawBottom := true;
DB_Data.Frame.DrawLeft := true;
DB_Data.Frame.DrawRight := true;
DB_Data.Alignment := taCenter;
DB_Data.Left := Left;
DB_Data.Height := QR_Data.Height;
DB_Data.AutoSize := False;
DB_Data.Font := frm_result.gust_DBG.Columns.Font;
DB_Data.Width := frm_result.gust_DBG.Columns.Width;
DB_Data.DataSet := frm_result.gust_DBG.DataSource.DataSet;
DB_Data.DataField := frm_result.gust_DBG.Columns.FieldName;
DB_Data.Parent := QR_Data;
Left := Left + DB_Column.Width;
end;
end;
//以上完成REPORT布局,调用REPORT 输出报表
Report.Preview;
 
谢谢各位,这个问题我已经用FastReport搞定了!
但又有一个新问题,可不可以统计一个月中不为零的次数?(如上表中二月和五月各为2)
 
多人接受答案了。
 
后退
顶部