<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>InfoPath質問箱</title><link>http://www.sqljp.com/hotikisu/category/526.aspx</link><description>InfoPathについての質問を受け付けます。</description><managingEditor>ホチキス先生</managingEditor><dc:language>ja-JP</dc:language><generator>.Text Version 0.95.2004.102</generator><item><dc:creator>ホチキス先生</dc:creator><title>InfoPathとSQL Server－InfoPathのフォームを開いたときに今日のデータで自動的にクエリを行うには（２）セカンダリデータソースの場合</title><link>http://sqljp.com/hotikisu/archive/2009/06/13/26788.aspx</link><pubDate>Sat, 13 Jun 2009 11:46:00 GMT</pubDate><guid>http://sqljp.com/hotikisu/archive/2009/06/13/26788.aspx</guid><wfw:comment>http://sqljp.com/hotikisu/comments/26788.aspx</wfw:comment><comments>http://sqljp.com/hotikisu/archive/2009/06/13/26788.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://sqljp.com/hotikisu/comments/commentRss/26788.aspx</wfw:commentRss><trackback:ping>http://sqljp.com/hotikisu/services/trackbacks/26788.aspx</trackback:ping><description>&lt;P&gt;InfoPathをSQL Serverに接続したとき、動的クエリを実行できるのはただ一つの「メイン接続」だけであり、それ以外のデータ接続は「セカンダリデータ接続」と呼ばれ動的クエリを実行することはできない。しかしデータ接続のSQL文を工夫することにより、いろんなデータ取得方法を設定できる。&lt;/P&gt;
&lt;P&gt;たとえば、日付のフィールドがあり日々のデータが入っているテーブルに接続しているとしよう。セカンダリデータソースでは動的クエリができないので、単にウィザードでデータ接続を作るだけでは、全てのデータを一度に取得することしかできない。しかしSQL文を書き換えることによって、動的ではないにしても、ある一定のデータのみを抽出して取得することもできる。&lt;/P&gt;
&lt;P&gt;例えば次のようなテーブルがあるとしよう。&lt;/P&gt;
&lt;P&gt;テーブル名：日程&lt;BR&gt;フィールド：日付 smalldatetime、内容 varchar(50)&lt;/P&gt;
&lt;P&gt;このテーブルに対してInfoPathのデータ接続ウィザードでセカンダリデータ接続を作ると、次のようなSQL文が自動的に生成する。&lt;/P&gt;
&lt;P&gt;select "日付","内容" from "dbo"."日程" as "日程"&lt;/P&gt;
&lt;P&gt;一方、SQL Serverにはgetdate()関数があり、現在の日付と時間を取得することができる。&lt;/P&gt;
&lt;P&gt;そこでSQL文をこのように変えれば、今日のデータだけを選択して取得するデータ接続になりそうに思う。&lt;/P&gt;
&lt;P&gt;select "日付","内容" from "dbo"."日程" as "日程" where "日付" = getdate()&lt;/P&gt;
&lt;P&gt;しかし「日付」フィールドに納められているデータは、例えば2009/06/13 0:00:00といったように、その日の0時00分00秒のデータとして生成しているだろう。しかしgetdate()で得られる値は日付と時間をあわせもっているので、クエリが合致せず何もデータを表示してくれない。&lt;/P&gt;
&lt;P&gt;そこで少し工夫が必要である。getdate()で取得した日付と時間のうち日付の値だけを分離してしまうのだ。例えば次のようにデータ接続を変更する。&lt;/P&gt;
&lt;P&gt;select "日付","内容" from "dbo"."日程" as "日程"where "日付" = (select cast(datename(year,getdate())+'/'+datename(month,getdate())+'/'+datename(day,getdate())&amp;nbsp;as smalldatetime))&lt;/P&gt;
&lt;P&gt;上のSQL文では、getdate()で取得し日付と時間のうち「年」と「月」、「日」をdatename()関数で分離して取得し、繋ぎ合わせて日付のデータを作っている。&lt;/P&gt;
&lt;P&gt;これでセカンダリデータソースでも「今日のデータ」だけを取得することができる。この手法は工夫によって応用ができ、SQL Serverの関数を使ってセカンダリデータソースでもいろんなデータ抽出を行うことができる。さらに「ユーザー定義関数」を作れば、より高度なクエリを行うこともできる。&lt;/P&gt;
&lt;P&gt;なお、SQL Server 2008には日付だけのdate型が実装されているので、日付だけを扱いたいときはフィールドの型をdate型にしておくのがよいだろう。&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;img src ="http://sqljp.com/hotikisu/aggbug/26788.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>ホチキス先生</dc:creator><title>InfoPathとSQL Server－InfoPathのフォームを開いたときに今日のデータで自動的にクエリを行うには（１）メイン接続の場合</title><link>http://sqljp.com/hotikisu/archive/2009/06/13/26787.aspx</link><pubDate>Sat, 13 Jun 2009 11:22:00 GMT</pubDate><guid>http://sqljp.com/hotikisu/archive/2009/06/13/26787.aspx</guid><wfw:comment>http://sqljp.com/hotikisu/comments/26787.aspx</wfw:comment><comments>http://sqljp.com/hotikisu/archive/2009/06/13/26787.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://sqljp.com/hotikisu/comments/commentRss/26787.aspx</wfw:commentRss><trackback:ping>http://sqljp.com/hotikisu/services/trackbacks/26787.aspx</trackback:ping><description>&lt;P&gt;InfoPathのフォームを開いたとき、「クエリの実行」ボタンを押さなくても自動的に「今日」の日付のデータを表示させたいことがある。日々の定型入力などをしたいときなどだ。このとき、InfoPathの「today()」関数を使うことができる。&lt;/P&gt;
&lt;P&gt;例えば「日付」のフィールドを「クエリフィールド」として、その「規定値」にtoday()関数をセットしておく。そして「フォームのオプション」の「開く／保存」の「開くときの動作」の「動作規則」に「クエリの実行」を設定しておけばいい。これでフォームを開いたとき、今日の日付で自動的に「メイン接続」でデータベースからデータを取得し、今日のデータが表示されたフォームが開く。&lt;/P&gt;
&lt;P&gt;しかしセカンダリデータ接続では「動的クエリ」を行えない。またデータソースではInfoPathのtoday()関数を使うことができない。しかしセカンダリデータソースでも工夫によって「今日のデータ」を取得することができる。&lt;/P&gt;&lt;img src ="http://sqljp.com/hotikisu/aggbug/26787.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>ホチキス先生</dc:creator><title>InfoPathの式ボックスで剰余の計算は「mod」を使う</title><link>http://sqljp.com/hotikisu/archive/2008/12/12/26104.aspx</link><pubDate>Fri, 12 Dec 2008 19:46:00 GMT</pubDate><guid>http://sqljp.com/hotikisu/archive/2008/12/12/26104.aspx</guid><wfw:comment>http://sqljp.com/hotikisu/comments/26104.aspx</wfw:comment><comments>http://sqljp.com/hotikisu/archive/2008/12/12/26104.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://sqljp.com/hotikisu/comments/commentRss/26104.aspx</wfw:commentRss><trackback:ping>http://sqljp.com/hotikisu/services/trackbacks/26104.aspx</trackback:ping><description>&lt;P&gt;現時点で、MicrosoftのOffice OnlineでInfoPathの演算子について調べても、「剰余」の演算についての記述が見当たらない。ちょっとしたことだが、一般的な演算子「%」が使えないのでいらいらする。&lt;/P&gt;
&lt;P&gt;InfoPathの式ボックスで剰余の計算は「mod」を使う&lt;/P&gt;
&lt;P&gt;例えば繰り返しテーブルの行数を24で割った剰余を求めるには&lt;/P&gt;
&lt;P&gt;count(@フィールド名) mod 24&lt;/P&gt;
&lt;P&gt;とする。&lt;/P&gt;
&lt;P&gt;繰り返しテーブルの条件付書式で、仮に行数が24の倍数でなければ、あるいは24の倍数ならば表示形式を変えたいときの評価式は&lt;/P&gt;
&lt;P&gt;dfs:dataFields/d:テーブル名/@フィールド名 mod 24 = 0&lt;/P&gt;
&lt;P&gt;のようになる。&lt;/P&gt;&lt;img src ="http://sqljp.com/hotikisu/aggbug/26104.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>ホチキス先生</dc:creator><title>InfoPathのボタンに長い文字を表示させたとき、ボタンのデザインが変形してしまうのを元に戻すには</title><link>http://sqljp.com/hotikisu/archive/2008/11/05/25779.aspx</link><pubDate>Wed, 05 Nov 2008 00:01:00 GMT</pubDate><guid>http://sqljp.com/hotikisu/archive/2008/11/05/25779.aspx</guid><wfw:comment>http://sqljp.com/hotikisu/comments/25779.aspx</wfw:comment><comments>http://sqljp.com/hotikisu/archive/2008/11/05/25779.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://sqljp.com/hotikisu/comments/commentRss/25779.aspx</wfw:commentRss><trackback:ping>http://sqljp.com/hotikisu/services/trackbacks/25779.aspx</trackback:ping><description>&lt;P&gt;ボタンに表示するテキストだが、長い文字を表示させると、ボタンの枠が太く変形し、デザインが崩れてしまう。ボタンの機能に問題はないが、不恰好である。&lt;/P&gt;
&lt;P&gt;これを元のデザインに戻すには、ボタンのサイズを明示的に決めてやればよい。デフォルトでは「自動」になっていて、文字の長さに応じて自動的にボタンのサイズが決まるのだが、これがデザインを崩す原因になっているようだ。ボタンのサイズを明示的に決めてやると、デザインは元に戻る。&lt;/P&gt;&lt;img src ="http://sqljp.com/hotikisu/aggbug/25779.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>ホチキス先生</dc:creator><title>InfoPathをSQL Serverに接続しており、SQL Serverのテーブル構造やビューが変わったときにデータ接続を最初から作り直さなくてよい方法</title><link>http://sqljp.com/hotikisu/archive/2008/11/04/25778.aspx</link><pubDate>Tue, 04 Nov 2008 23:55:00 GMT</pubDate><guid>http://sqljp.com/hotikisu/archive/2008/11/04/25778.aspx</guid><wfw:comment>http://sqljp.com/hotikisu/comments/25778.aspx</wfw:comment><comments>http://sqljp.com/hotikisu/archive/2008/11/04/25778.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://sqljp.com/hotikisu/comments/commentRss/25778.aspx</wfw:commentRss><trackback:ping>http://sqljp.com/hotikisu/services/trackbacks/25778.aspx</trackback:ping><description>&lt;P&gt;InfoPathをSQL Serverに接続してフォームを作ったとき、後からSQL Serverのテーブル構造、ビューが変わったとする。このとき変更のあったフィールドがInfoPathのデータ接続で利用しているとき、当然ながらそのままではフォームを使い続けることはできない。&lt;/P&gt;
&lt;P&gt;そこでフォームの編集を行い、データ接続を編集しなおすことになるが、データ接続ウィザードを開いたとき、フィールド一覧が表示されず、最初からデータ接続を作り直さなければならない状態になってしまう。この場合に、次のどちらかのようにすれば最初から作り直さずにすむ。&lt;/P&gt;
&lt;P&gt;（１）SQL Serverのテーブルやビューを変更する前に、InfoPathのデータ接続から変更したいフィールドを除いておく。その後にSQL Serverの変更を行い、その後ふたたびInfoPathのデータ接続を編集し、当該フィールドを利用するようにする。&lt;/P&gt;
&lt;P&gt;（２）もし先にSQL Serverでテーブルやビューの構造を変えてしまった場合は、InfoPathのデータ接続ウィザードを開いたときに「SQLの編集」で手作業でフィールドを変更する。するとウィザードのビューにフィールドリストが表示されるようになる。&lt;/P&gt;
&lt;P&gt;ちょっとしたTipsだが、最初からデータ接続を作り直すと手間もかかるので、ぜひ利用していただきたい。&lt;/P&gt;&lt;img src ="http://sqljp.com/hotikisu/aggbug/25778.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>ホチキス先生</dc:creator><title>TechEd 2008 Yokohamaでライトニング・トークに出る</title><link>http://sqljp.com/hotikisu/archive/2008/08/06/25435.aspx</link><pubDate>Wed, 06 Aug 2008 21:38:00 GMT</pubDate><guid>http://sqljp.com/hotikisu/archive/2008/08/06/25435.aspx</guid><wfw:comment>http://sqljp.com/hotikisu/comments/25435.aspx</wfw:comment><comments>http://sqljp.com/hotikisu/archive/2008/08/06/25435.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://sqljp.com/hotikisu/comments/commentRss/25435.aspx</wfw:commentRss><trackback:ping>http://sqljp.com/hotikisu/services/trackbacks/25435.aspx</trackback:ping><description>&lt;P&gt;今年は昨年と少し趣向が変わったTechEdのコミュニティ・プログラム。「ライトニング・トーク」というプログラムで「簡単! InfoPath と SQL Server でリッチなインターフェイスのクライアント サーバー システム構築」という話をさせてもらえることになった。&lt;/P&gt;
&lt;P&gt;5分程度ということで詳しい説明はできないが、いま業務としてやっているデータベースについて話す。InfoPathをクライアントのフロントエンドに使い、データベースSQL Serverに接続するクライアント・サーバー・アプリケーションについてだ。&lt;/P&gt;
&lt;P&gt;俺はもともとプログラマーではなく、どちらかといえば管理運用の仕事をしている立場にいる。学校のデータベースを日常業務の空き時間を使って構築してきた経験から、実際の業務に直接携わっている人間、運用についてよく知っている人間がデータベースを構築することが、最も効率よく成功するシステムを構築できると確信している。&lt;/P&gt;
&lt;P&gt;マイクロソフトのSQL Server、InfoPathやAccessといったオフィス製品、Active Directoryなど使いやすいシステムを組み合わせて利用することで、たいていのデータベースは自前で構築できる。その可能性を実感してもらえれば嬉しい。&lt;/P&gt;
&lt;P&gt;マイクロソフトTeceED 2008 Yokohama公式サイト&lt;BR&gt;&lt;A href="http://www.microsoft.com/japan/teched/2008/default.mspx"&gt;http://www.microsoft.com/japan/teched/2008/default.mspx&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Birds of a Feather &amp;amp; ライトニング・トーク&lt;BR&gt;&lt;A href="http://www.event-marketing.jp/events/te08/special/bof.htm"&gt;http://www.event-marketing.jp/events/te08/special/bof.htm&lt;/A&gt;&lt;/P&gt;&lt;img src ="http://sqljp.com/hotikisu/aggbug/25435.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>ホチキス先生</dc:creator><title>セカンダリデータ接続で必要なデータだけを取得するには（SQL Serverにサブクエリのビューを作る）</title><link>http://sqljp.com/hotikisu/archive/2008/06/12/25019.aspx</link><pubDate>Thu, 12 Jun 2008 22:40:00 GMT</pubDate><guid>http://sqljp.com/hotikisu/archive/2008/06/12/25019.aspx</guid><wfw:comment>http://sqljp.com/hotikisu/comments/25019.aspx</wfw:comment><comments>http://sqljp.com/hotikisu/archive/2008/06/12/25019.aspx#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://sqljp.com/hotikisu/comments/commentRss/25019.aspx</wfw:commentRss><trackback:ping>http://sqljp.com/hotikisu/services/trackbacks/25019.aspx</trackback:ping><description>&lt;P&gt;InfoPathのセカンダリデータ接続でサブクエリーを書いてデータを絞り込む手法を紹介した。&lt;/P&gt;
&lt;P&gt;InfoPathでSQL Serverから自分の氏名を取得するには（データ接続にサブクエリーを書く）&lt;BR&gt;&lt;A href="http://sqljp.com/hotikisu/archive/2008/06/12/25016.aspx"&gt;http://sqljp.com/hotikisu/archive/2008/06/12/25016.aspx&lt;/A&gt;&lt;BR&gt;セカンダリデータ接続で必要なデータだけを取得するには（データ接続にサブクエリーを書く）&lt;A href="http://sqljp.com/hotikisu/archive/2008/06/12/25018.aspx"&gt;http://sqljp.com/hotikisu/archive/2008/06/12/25018.aspx&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;このサブクエリーを書く方法は、SQL Serverにビューを作ってもできる。次のようなテーブルがSQL Serverにあるとする。&lt;/P&gt;
&lt;P&gt;　　生徒（学籍番号,生徒氏名,担任ユーザーID）&lt;/P&gt;
&lt;P&gt;このとき、次のようなビューをSQL Serverに作る&lt;/P&gt;
&lt;P&gt;　　select 学籍番号 from dbo.生徒 where ('（ドメイン名）' + 担任ユーザーID = (select suser_sname() as Expr 1))&lt;/P&gt;
&lt;P&gt;もし担任ユーザーIDにドメイン名も含んだユーザーデータを作っておくなら次のようでいい&lt;/P&gt;
&lt;P&gt;　　select 学籍番号 from dbo.生徒 where 担任ユーザーID = (select suser_sname() as Expr 1)&lt;/P&gt;
&lt;P&gt;このビューに対してInfoPathでセカンダリデータ接続を作る。つまり、SQL Serverに書かれたビューも、それを呼び出すアクティブディレクトリユーザー名に対してsuser_sname()関数が正しく実行されるのだ。&lt;/P&gt;&lt;img src ="http://sqljp.com/hotikisu/aggbug/25019.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>ホチキス先生</dc:creator><title>セカンダリデータ接続で必要なデータだけを取得するには（データ接続にサブクエリーを書く）</title><link>http://sqljp.com/hotikisu/archive/2008/06/12/25018.aspx</link><pubDate>Thu, 12 Jun 2008 22:28:00 GMT</pubDate><guid>http://sqljp.com/hotikisu/archive/2008/06/12/25018.aspx</guid><wfw:comment>http://sqljp.com/hotikisu/comments/25018.aspx</wfw:comment><comments>http://sqljp.com/hotikisu/archive/2008/06/12/25018.aspx#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://sqljp.com/hotikisu/comments/commentRss/25018.aspx</wfw:commentRss><trackback:ping>http://sqljp.com/hotikisu/services/trackbacks/25018.aspx</trackback:ping><description>&lt;P&gt;InfoPathではメイン接続以外にセカンダリデータ接続を作ることができ、でデータを取得することができ、セカンダリデータ接続で取得したリストをフォームのドロップダウンリストボックスなどで選択要素として利用できる。これはとても便利だ。しかしセカンダリデータ接続では動的にクエリを行ってデータを選択することができないため、対象のテーブルの全部のデータを取得するしかない。このときに問題となるのが、ある程度のデータ量を超えたとき、フォームの実行速度が極端に低下することだ。フリーズしたのではないか、と思うほどパフォーマンスが低下する。これはぜひ後のバージョンでは解決してもらいたいが、現状では次のようなサブクエリを使って、動的にクエリを行う工夫ができる。&lt;/P&gt;
&lt;P&gt;たとえば生徒40人のクラスが30学級あれば、全校生徒のデータは120人になる。このうち自分の担任するクラスのリストだけをセカンダリデータ接続で取得したいときには、次のようにする。&lt;/P&gt;
&lt;P&gt;（１）次のテーブルを作る&lt;BR&gt;　　生徒（学籍番号,生徒氏名,担任ユーザーID）&lt;BR&gt;（２）InfoPathでデータ接続ウィザードを実行し、SQL文を次のように書き換える&lt;BR&gt;　　　select "生徒氏名" from "dbo"."生徒" as "生徒" where '（ドメイン名）' + 担任ユーザーID = (select suser_sname())&lt;/P&gt;
&lt;P&gt;つまりSQL Serverから自分のアクティブディレクトリユーザー名を取得するsuser_sname()関数を利用してサブクエリーを書き、生徒テーブルから自分のクラスの生徒データだけを取得するのだ。&lt;/P&gt;
&lt;P&gt;このとき、テーブルの担任ユーザーIDにドメイン名も含めてデータを登録しているなら次のようでいい&lt;/P&gt;
&lt;P&gt;　　　select "生徒氏名" from "dbo"."生徒" as "生徒" where 担任ユーザーID = (select suser_sname())&lt;/P&gt;
&lt;P&gt;ここでは学校のクラスで担任が自分のクラスの生徒名をリストとして取得する例を説明したが、一般企業でも社員の中から自分が所属する支店の社員情報だけのリストを取得したい、といった事例が考えられるだろう。&lt;/P&gt;&lt;img src ="http://sqljp.com/hotikisu/aggbug/25018.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>ホチキス先生</dc:creator><title>InfoPathでSQL Serverから自分の氏名を取得するには（データ接続にサブクエリーを書く）</title><link>http://sqljp.com/hotikisu/archive/2008/06/12/25016.aspx</link><pubDate>Thu, 12 Jun 2008 22:11:00 GMT</pubDate><guid>http://sqljp.com/hotikisu/archive/2008/06/12/25016.aspx</guid><wfw:comment>http://sqljp.com/hotikisu/comments/25016.aspx</wfw:comment><comments>http://sqljp.com/hotikisu/archive/2008/06/12/25016.aspx#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://sqljp.com/hotikisu/comments/commentRss/25016.aspx</wfw:commentRss><trackback:ping>http://sqljp.com/hotikisu/services/trackbacks/25016.aspx</trackback:ping><description>&lt;P&gt;以前、InfoPathのデータ接続でSQL Serverからアクティブディレクトリのユーザー名を取得する方法を書いた。&lt;/P&gt;
&lt;P&gt;&lt;A href="http://sqljp.com/hotikisu/articles/16073.aspx"&gt;http://sqljp.com/hotikisu/articles/16073.aspx&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;ここで使ったsuser_sname()関数を使って、InfoPathでSQL Serverから自分の氏名を取得するデータ接続を作ってみた。方法は次のとおり。&lt;/P&gt;
&lt;P&gt;（１）SQL Serverに次のようなユーザー情報のテーブルを作っておく&lt;BR&gt;　　ユーザー（ログオンID,ユーザー氏名）&lt;BR&gt;（２）InfoPathでデータ接続を作る&lt;BR&gt;（３）ウィザードで適当なテーブルを選択し、SQLの編集を行う&lt;BR&gt;（４）SQL文を次のように書き換える&lt;/P&gt;
&lt;P&gt;select "ユーザー氏名" from "dbo"."ユーザー" as "ユーザー" where '（ドメイン名\）' +&amp;nbsp;ログオンID = (select suser_sname())&lt;/P&gt;
&lt;P&gt;もしユーザーテーブルのログオンIDにドメイン名も含んだデータを格納しているなら、次のようでいい。&lt;/P&gt;
&lt;P&gt;select "ユーザー氏名" from "dbo"."ユーザー" as "ユーザー" where&amp;nbsp;ログオンID = (select suser_sname())&lt;/P&gt;
&lt;P&gt;&amp;nbsp;つまりInfoPathのデータ接続にサブクエリを書くだけでいいのだ。この手法は応用がきくだろう。&lt;/P&gt;&lt;img src ="http://sqljp.com/hotikisu/aggbug/25016.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>ホチキス先生</dc:creator><title>InfoPathの「繰り返しテーブル」の表を整える（２)繰り返しテーブルの罫線 </title><link>http://sqljp.com/hotikisu/archive/2008/05/21/24793.aspx</link><pubDate>Wed, 21 May 2008 01:35:00 GMT</pubDate><guid>http://sqljp.com/hotikisu/archive/2008/05/21/24793.aspx</guid><wfw:comment>http://sqljp.com/hotikisu/comments/24793.aspx</wfw:comment><comments>http://sqljp.com/hotikisu/archive/2008/05/21/24793.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://sqljp.com/hotikisu/comments/commentRss/24793.aspx</wfw:commentRss><trackback:ping>http://sqljp.com/hotikisu/services/trackbacks/24793.aspx</trackback:ping><description>&lt;P&gt;繰り返しテーブルを作ると、テーブルの罫線とセル内のテキストボックスの周囲が淡いグレーに設定される。これはフォームをプレビューしたときに、画面上でテーブルやテキストボックスを確認しやすいための設定だろうと思われる。しかし印刷時にはあまり美しくない。&lt;/P&gt;
&lt;P&gt;自分で罫線を設定するには、表を右クリックして「罫線と網掛けの設定」で行うが、バリエーションがあまり多くない。決定的に困るのは、線の太さの最低が1pxであることだ。この罫線は太すぎる。たとえばAccessのビューでは、1ptの実線の罫線より細い「細線」があるし、Excelでも実線以外により細い罫線が用意されている。Wordではより細かい設定があり、0.25pt、0.5pt、0.75ptなど0.25ポイント刻みで罫線の太さが選択できる。しかしInfoPathには1pt以下の実線はない。また点線を選ぶこともできるが、なぜか点線は太さの最小値が2.25ptである。&lt;/P&gt;
&lt;P&gt;このようにデフォルトでは太すぎる繰り返しテーブルの罫線だが、罫線を淡いグレーに変更することによって、細い奇麗な罫線に見えるようになる。ただしプリンタによっては印刷の具合は異なるかもしれない。&lt;/P&gt;
&lt;P&gt;（１）テキストボックスの枠線をとる&lt;BR&gt;表内のテキストボックスを選択し、右クリックして「罫線と網掛けの設定」を選択する。「罫線」タブでプリセットから「なし」を選択して罫線を取る。&lt;/P&gt;
&lt;P&gt;（２）テーブルの罫線をグレーにする&lt;BR&gt;繰り返しテーブルを選択し、右クリックして「罫線と網掛けの設定」を選択する。「罫線」タブで「スタイル」は実線のまま、「色」をクリックしてパレットの右端上から3番目の淡いグレーに変更する。「線の太さ」は1ptのまま。プリセットから「外枠」と「内側」をクリックして罫線を設定する。&lt;/P&gt;&lt;img src ="http://sqljp.com/hotikisu/aggbug/24793.aspx" width = "1" height = "1" /&gt;</description></item></channel></rss>
