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出現する必要があります。(注: このページフッターは B + C にすぎません)

この場合、2 つのページフッター (B と C) を削除できますが、上記と同じことが起こります (試行 1)。レポートはセクション D にスペースを割り当てません。別名: Crytal レポートは 2 を持つことができませんフッター。

結果: 大きな余白

Pagefooter A表示されますが、抑制された Pagefooter B + C のサイズに対して大きな余白があり、Pagefooter Dそのスペースの一部を消費します。(彼が後で来たからかもしれません)

詳細説明:

2 つのオプション セクション (サービスと署名) と必須の説明があります。

4 つの状態:

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

Report Footers を 3 つ作ってみたところ、試行 1 の動作が起こりました。

また、4 つのレポート フッター (4 つの状態を含む) を作成しようとしました。クライアントがオプション フィールドの 1 つを選択しない場合、レポートに空白が残ります (トライアル 2 の動作のように)。

4

1 に答える 1

1

I manage to get working using UnderlaySection option.

Map:

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

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

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

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

Thanks for helping... :D


Now, the two optional sections fit the space, finnally!

BUT only works manually, I don't know if need some special formula, here is mine:

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

PHEW, works via code!

        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 に答える