我需要在Delphi5中创建一个QuickReport,其布局如下:
+================
| Report Header
+================
+=========================================
| Detail Band (auto-stretching, repeats)
.
+=========================================
| Child band (fixed-size)
+======================================
| Child band (Auto-stretching)
.
+======================================
| Child band (fixed-size)
+======================================
+=================================
| Report Footer (auto-stretching)
.
+=================================
+==================================
| Report Footer (auto-stretching)
.
+==================================
+=============================
| Report Footer (fixed size)
+=============================谁能想出标题、细节、子信息、页脚、子细节、组页眉、组页脚带以及它们之间的相关父、母、报表、查询链接的组合,这样我就可以像我所需要的那样创建一个报表了吗?
别把我的用词搞混了
F 210
意味着任何乐队都必须是那些实际的类型。我在概念上使用这些术语:
在整个报表(报表标题)的开头,一个单一的带(报告头) auto-stretchy
同样的问题,只有更长的时间
+===========================================
| Suspicious Transaction Report
| STR No.: 12345
| Date: 11/28/1973
|
| Comments: as per NSL 1/13/2010
+===========================================
+===========================================
| Transaction 1 of 7
| Buy Sell
| $100.00 $16,000.00
| $27,000.00
| $12,000.00
. ...
+===========================================
| Customer Information
| Name: Shelby Lake
| Address: 11111 S NC-HWY 111
| DOB: 6/19/1981
| ID No.: G123-456-789
| Occupation: waitress
+===========================================
| Original Transaction
| Buy Sell
| $100.00 $16,000.00
| $3,000.00 $27,000.39
| $64,132.69 $12,000.13
. ... ...
+===========================================
| Third Party Information
| Name: Yugo Chavez
| Address: 11111 S AB
| DOB: 9/15/1934
| ID No.: 995-1935
| Occupation: dictator
+===========================================
...
+===========================================
| Transaction 7 of 7
.
.
+===========================================
+===========================================
| Description of Suspicious Activity
| Customer had beedy eyes, that moved
| rapidly from left to right. He...
. ...
+===========================================
+===========================================
| Action Taken
| We killed him, went through his
| pickets, then started digging the...
.
+===========================================
+===========================================
|
| Signature: _______________________
| Bruce Wayne
| Title: The Batman
| Employee ID: 1337-6669
+===========================================我可以编一些表来模仿我所编的例子:
CREATE TABLE STRs (
StrID int,
Number text,
Date datetime,
Comments text,
DescriptionOfSuspiciousActivity text,
ActionTaken text,
EmployeeName text,
EmployeeTitle text,
EmployeeNumber text )
CREATE TABLE STRTransactions (
STRTranasctionID int,
STRID int,
BuyAmount money)
CREATE TABLE STRTransactionSells (
STRTransactionID int,
SellAmount money)
CREATE TABLE STRTransactionPatronInfo (
STRTransactionID int,
Name text,
Address text,
DOB text,
IDNumber text,
Occupation text )
CREATE TABLE STRTransactionThirdPartyInfo (
STRTransactionID int,
Name text,
Address text,
DOB text,
IDNumber text,
Occupation text )
CREATE TABLE OriginalTransactions (
STRTransactionID int,
BuyAmount money,
SellAmount money )我失败的实验
我尝试创建一个具有以下乐队布局的QuackReport:
+=====================================================+
| PageHeader (TQRBand, BandType=rbPageHeader) |
+=====================================================+
+=====================================================+
| DetailBand (TQRBand, BandType=rbDetail) |
+===+=================================================+
| ChildBand1 (TQRChildBnad, Parent=DetailBand) |
! (autostretch) !
+===+=============================================+
| ChildBand2 (TQRChildBand, Parent=ChildBand1 |
+=============================================+
+=====================================================+
| ChildBand3 (TQRChildBand, Parent=(none) |
! (autostretch) !
+=====================================================+
| ChildBand4 (TQRChildBand, Parent=ChildBand3 |
! (autostretch) !
+=================================================+
+=====================================================+
| SummaryBand (TQRBand, BandType=rbSummary) |
+=====================================================+注意:缩进用于帮助识别父-子关系(也就是说,带实际上不是缩进的50像素)。
此设计的问题是,在设计时,汇总带至少出现在两个搁浅子带之前:
+=====================================================+
| PageHeader (TQRBand, BandType=rbPageHeader) |
+=====================================================+
+=====================================================+
| DetailBand (TQRBand, BandType=rbDetail) |
+===+=================================================+
| ChildBand1 (TQRChildBnad, Parent=DetailBand) |
! (autostretch) !
+===+=============================================+
| ChildBand2 (TQRChildBand, Parent=ChildBand1 |
+=============================================+
+=====================================================+
| SummaryBand (TQRBand, BandType=rbSummary) |
+=====================================================+
+=====================================================+
| ChildBand3 (TQRChildBand, Parent=(none) |
! (autostretch) !
+=====================================================+
| ChildBand4 (TQRChildBand, Parent=ChildBand3 |
! (autostretch) !
+=================================================+在运行报表时(在运行时),两个搁浅的子带甚至不打印:
+=====================================================+
| PageHeader (TQRBand, BandType=rbPageHeader) |
+=====================================================+
+=====================================================+
| DetailBand (TQRBand, BandType=rbDetail) |
+===+=================================================+
| ChildBand1 (TQRChildBnad, Parent=DetailBand) |
! (autostretch) !
+===+=============================================+
| ChildBand2 (TQRChildBand, Parent=ChildBand1 |
+=============================================+
+=====================================================+
| SummaryBand (TQRBand, BandType=rbSummary) |
+=====================================================+Captcha:庸医报告
发布于 2011-05-15 17:20:52
(请记住,我不再有QuickReports可用,所以这都是从内存中得到的)
好吧..。我以前遇到过这个问题..。给出一个完整的编码示例需要很长时间(我根本没有),但是我将尝试描述我的解决方案,这样您就可以与它关联起来了。
不要使用TQRChildBand,而是使用所有的DetailBand。然后,将每个乐队的BeforePrint事件挂钩。
您可以在BeforePrint事件中使用类似的内容:
printband := FPrintSubBandA;使用一组普遍可用的变量(或报表中的私有成员)来定义应该显示哪些波段,而不应该显示在报表上的给定记录.所有的布尔型(注意:您可以使用一组枚举,但是Booleans更容易/更快地实现imho)
在NeedData事件中,您将推断给定记录需要哪些波段,并相应地设置这些变量(当然是布尔值)。
整个解决方案是一个肮脏的黑客,但至关重要的是,因为QuickReports对选择性记录上嵌套子带的支持基本上不存在。
如果这些信息不够,请让我知道,我将搜索我的代码档案,看看我是否能找到一个这样做的例子。本质上,这个问题正是我转而使用RaveReports的原因。
编辑:我想您很可能已经尝试过在运行时设置每个子带的ParentBand值。如果你没有,不要浪费你的时间!这样做会导致更不正常的结果(我甚至尝试过违反访问权限)。
https://stackoverflow.com/questions/2064857
复制相似问题