用FastRepot的都进来看看!(200分)

  • 主题发起人 主题发起人 caidao
  • 开始时间 开始时间
C

caidao

Unregistered / Unconfirmed
GUEST, unregistred user!
有两个问题请教大家:
1、怎么将FastRepot的交叉表左上角的空白补个框框什么的。
2、怎么让列宽随纸张变化。也就是人性化一点,如果列比较少的话,把每一列加宽点或者补空列,如果
列比较多的话,就把每一列缩紧一点。
我现在的解决办法基本上是动态一个一个的创建Memo,设置宽度、位置,做了两三个报表就受不了,这样
太累了,以后维护也是问题。想听听大家的方案。
 
1,可以在左上角加一个Memo,设置好长宽,然后根据预览调整位置,
肯定能找到一个位置恰好补上交叉表的左上角空白,以前做过
2,没找到好办法,一般票据单据什么的有固定格式,用FastReport手工一次调好,
经常改字段数量、宽度的一般是查询报表吧,用FastReport感觉不好,
不如用Ehlib或者其他什么控件打印,用户很方便调整宽度。
我见过QuickReport的通用打印过程,全部动态创建,比较痛苦,也不太方便,
FastReport动态创建可能更麻烦,还是别想了。。。
 
用reportmachine
 
2.reportmachine好用多了!你自己可以写一个自定义
打印网格的FORMReport的类,来打印,一劳永逸
 
p96114:详细些好吗?
 
TRMFormPrintDBGrid你自己改这个对象的过程
procedure OnGenerate_Object(aFormReport: TRMFormReport;
Page: TRMPage;
Control: TControl;
var t: TRMView);
override;
不过有点麻烦
我指的是在reportmachine中
 
帮你提前!
 
用reportmachine
 
哪儿有for 7的RM下?
 
http://new.playicq.com/control/reportmachine26.zip
 
26不能在D7下用,有没有高版本的?
 
请教Caidao:FastReport中怎么动态创建Memo?
 
b := TfrBandView.Create;
b.SetBounds(0, MastBandTop + 300, 0, GroupBandHight);
b.BandType := btMasterFooter;
b.Prop['Font.Style'] := 2;
b.Name := 'MastFooter1';
b.Script.Add('begin
' + #13#10 +
' While FreeSpace > 40do
' + #13#10 +
' ShowBand(ChildBand1) ' + #13#10 +
'end ');

Page.Objects.Add(s);
---------
你也要帮帮我哟。
 
谢谢CaiDao,我很想帮你,但是你问的问题我不会。不好意思!
 
菜刀菜刀,你干脆改回DELPHI6得了,要不你就等着,我找到了发给你。
 
i am here waiting for u.
------------不要误会。
 
静态创建出所有的memo,然后记录每个memo宽度在一种纸型下的比例,这样纸张变化时就会自动调整宽度了,不过列少的时候只能补上空列。
 
记下比例,记在哪儿?怎么自动高干调整宽度?
 
接受答案了.
 
后退
顶部