レイアウト用の表の挿入を使用して、セクションの表示非表示をフラグで設計していると、空白行がかなりにわたってできてしまう - InfoPath Dev
in

InfoPath Dev

レイアウト用の表の挿入を使用して、セクションの表示非表示をフラグで設計していると、空白行がかなりにわたってできてしまう

Last post 09-03-2008 10:05 PM by aimin. 4 replies.
Page 1 of 1 (5 items)
Sort Posts: Previous Next
  • 09-03-2008 02:19 AM

    • aimin
    • Top 500 Contributor
    • Joined on 08-28-2008
    • Posts 38

    レイアウト用の表の挿入を使用して、セクションの表示非表示をフラグで設計していると、空白行がかなりにわたってできてしまう

    こんにちは!お世話になってます。
    あっという間の、一日です。
    今日もひたすら、Infopath のフォーム作成で格闘してます。

    いろいろ作業をして、テンプレートパーツを更新、テンプレートを更新しているうちに、どうしても、レイアウトが崩れてしまっています。

    複雑なのですが、フォーム内の途中にに、レイト枠を例えば2列で挿入してます。
    1列目に、Aセクション
    2列目に、B、C、D, Eセクション と複数のセクションがあります。
    そのうち、C、D には、さらに、c_1セクション、d_1セクションが入ってます。

    このレイアウト枠2列の下には、Fセクション、Gセクションがあったとします。

    その下に、Hセクションと、通常のテキストがあったとします。 

    それぞれ、フラグをたてて表示や非表示の設定を、フィールドに応じて設定してあります。

     ここで、Fセクション、Gセクションを 非表示にした場合、本来であれば、Eセクションのすぐ下に、Hセクションとテキストが表示されるはずなのですが
    かなりのスペースが空いてしまいます。画面の半分くらいは、空いてるのです。

    この、レイアウト枠には何か特徴があるのでしょうか。
    使い方に問題がありますか?

    余分な空白を表示せずに非表示をうまく配置させるにはどうしたらいいでしょうか?

    これが見た目的に、今急になってしまい、改善できずに困ってます。

    どうか、ご教授お願いいたします。
    ウィークリーで、進捗あげてるのですが、泣きはいっちゃいます。。。でも、やらなくちゃです。。

    よろしくお願いいたします。

     

  • 09-03-2008 11:18 AM In reply to

    Re: レイアウト用の表の挿入を使用して、セクションの表示非表示をフラグで設計していると、空白行がかなりにわたってできてしまう

     aiminさん、おはようございます!

    余分な空白、たくさんのセクション、表示非表示…という状況ならば、私ならInfoPathが勝手にコントロールのサイズを設定したかな?というのを疑いますね。

    コントロールがたくさんあって大変でしょうが、セクション等それぞれのプロパティ→サイズを確認してみては如何でしょう。そこで「高さ」が指定されていたらすべて空白にします。これでうまく行けばよいのですが。

  • 09-03-2008 09:32 PM In reply to

    Re: レイアウト用の表の挿入を使用して、セクションの表示非表示をフラグで設計していると、空白行がかなりにわたってできてしまう

    こんにちは。

    直接の回答にはならないと思うのですが、レイアウト表をつかった場合は、コントロールを非表示にしても
    最低 1 行の空白は残ります。ですので、セクションを非表示にしたとき、その上のセクションのすぐ下に
    非表示にされたセクションの下のセクションが表示される、、、というわけではなく1行くらいの空白をおいて
    表示されます。
    理由は、レイアウト表を定義すると、InfoPath は見た目を制御する XSL スタイルシート上にテーブルを
    作成します。HTML などでよく見る <tr><td></td></tr> と同じものです。このテーブルの中には
    最低 1つの <div></div> タグが入ります。この <div> タグにコントロールが入ります。

    ですので、InfoPath によってコントロールが非表示になっても、HTML としては
    <tr>
      <td>
         <div></div>
      </td>
    </tr>
    が残っているので、空白が残る、というわけです。空のテーブルですね。

    複数行の空白ということであれば、Fセクション、Gセクションの枠のいずれかに、この <div></div> 、見た目は
    改行が「セクションの外、枠の中」に複数入っているのかな、、、と思いましたが、それだとすぐに気づかれると思うので、、、
    [修正] このパラグラフ、若干修正してます。「セクションの外、枠の中」が重要なポイントです。

    ご存じかもしれませんが、これらを確認したい場合は、別途違う名前でフォームを保存して、
    form1.xsn の xsn 拡張子を zip に変更して zip フォルダを開いてください。 そうすると view1.xsl という
    XSL スタイシートがあります。これをメモ帳で確認すると、XSL スタイルシートの記述を参照することが
    できます。ただし、HTML や CSS にあまり詳しくなければ、この作業は効率的じゃないので、時間が
    あるときに学習モードでやられることをお勧めします。

    直接のアドバイスになってませんが、なんらかのお役に立てば。

    クリエ・イルミネート
    沼口

  • 09-03-2008 09:43 PM In reply to

    Re: レイアウト用の表の挿入を使用して、セクションの表示非表示をフラグで設計していると、空白行がかなりにわたってできてしまう

    追記で、、、

    上述の仮定をもとに1行の空白も残さずに非表示コントロールの部分を
    見えなくしたいならば、消すセクションをその上の枠、もしくは下の枠にいれる
    ことになります。HTML の <tr><td></td></tr> の中にあれば、空の
    テーブルが残るようなことにはなりません。

    ただ、フォーム設計という意味では煩雑になりかねませんが。。。

    クリエ・イルミネート
    沼口 

  • 09-03-2008 10:05 PM In reply to

    • aimin
    • Top 500 Contributor
    • Joined on 08-28-2008
    • Posts 38

    Re: レイアウト用の表の挿入を使用して、セクションの表示非表示をフラグで設計していると、空白行がかなりにわたってできてしまう

    お世話になります。

    見た目的には空の行が無いのとプロパティの高さも調整した覚えが無く危うくレイアウトが崩れるところでした。

    奥村さん、沼口さん、いつもありがとうございます。
    ほんとに勉強になります。
    日本語サイト、有効なことに感謝!

    いつの間にか、プロパティの高さが変わってました!
    しかしながら、デザインモードでは、空の行はみえないものなんですね!?
    これは、仕様ということで、注意していかなければいけないことなんですね。。

    ご教授いただけました、スタイルsheetで確認する方法、、
    Htmlは多少なりともわかりますので、よく理解できました。
    なるほどです。
    これも、検証して向上したいです!

    ありがとうございました!

     

Page 1 of 1 (5 items)
Copyright © 2003-2019 Qdabra Software. All rights reserved.
View our Terms of Use.