0

我有这份Crystal报告: 不要介意外语:)

我的报告的底部

地图:(在所选部分下方)

PageFooter A:服务+描述。

PageFooter B:仅服务。

PageFooter C:仅描述。(非可选)

PageFooter D:签名(可选)

“服务”也是可选的,我稍后会解释......(在行为之后)

行为

客户必须选择:

显示“服务”与否AND 显示“签名”与否。


如果选择“服务”:(第 1 次试用)

页脚 B 和 C 必须出现。(也签名)

B压制方法:

if PageNumber > 1 then
  true
else //Page 1
  if {?ISSQN} = "supress" then
    true
  else //With services
    false

C不能被压制。

     ...

D 压制方法:

if {?posSignature} = "top" then
  true
else
  if PageNumber > 1 then
    true
  else
    false

结果: 损坏的页脚

PageFooter C出现了一半。


如果选择“服务”:(试用 nº2)

Pagefooter A必须出现。(注意:这个pagefooter只不过是B + C)

在这种情况下,我可以删除两个页脚(B 和 C),会发生上述相同的事情(试验 1),报告不会为 D 部分分配空间。AKA:Crytal 报告无法拥有 2页脚。

结果: 大空白

Pagefooter A出现,但相对于被抑制的 Pagefooter B + C 的大小有一个很大的空白空间,并Pagefooter D占用了该空间的一部分。(可能是因为他来晚了)

更多解释:

有 2 个可选部分,(服务和签名)和必需的描述。

4 个状态:

+Service +Signature 
-Service +Signature 
+Service -Signature 
-Service -Signature 

我试图制作 3 个报告页脚,试验 1 的行为发生了。

我还尝试制作 4 个报告页脚(具有 4 个状态),如果客户不选择 1 个可选字段,则报告中会留下一个空格(如试用 2 的行为)

4

1 回答 1

1

我设法使用 UnderlaySection 选项开始工作。

地图:

+Serice +Description +Signature (false, false, true)

-Service +Description +Signature (true, false, true)

+Service +Description -Signature (false, true, true)

-Service +Description -Signature (true, true, true)

感谢您的帮助...:D


现在,两个可选部分终于适合空间了!

但是只能手动工作,我不知道是否需要一些特殊的公式,这是我的:

if {?service} = "true" then //If supress services
   true //do underlay
else
   false

PHEW,通过代码工作!

        if (param["posSignature"] == "top") //Dictionary of params
        {//danfe is my report
            danfe.PageFooterDescription.SectionFormat.EnableUnderlaySection = true;
        }
        else
        {
            danfe.PageFooterDescription.SectionFormat.EnableUnderlaySection = false;
        }

            if (param["Service"] == "supress")
        {
            danfe.PageFooterService.SectionFormat.EnableUnderlaySection = true;
        }
        else
        {
            danfe.PageFooterService.SectionFormat.EnableUnderlaySection = false;
        }
于 2013-07-09T21:16:24.400 回答