本ページは公開が終了した情報の複製であり、掲載時点での情報です。本ページに記載されている内容について各所に問い合わせることはご遠慮下さい。
サポート技術情報

[ACC2] 印刷時拡張を設定したレポートで横罫線をそろえる方法

文書番号: 404058

最終更新日: 2004/04/07


この資料は以下の製品について記述したものです。


概要

[印刷時拡張/ CanGrow ] プロパティを使用すると、データの長さに合わせてコントロールの高さを自動的に調整することができます。
ここでは、複数のコントロールで印刷時拡張の機能を使用した場合に、高さが一番高いコントロールに合わせて罫線を引く方法を紹介します。

現象

■ 操作方法

  1. サンプルデータ [テーブル 1] を作成します。
          フィールド名    データ型    フィールドサイズ
          --------------------------------------------
          氏名            テキスト型  20
          郵便番号        テキスト型  10
          住所            テキスト型  60
    

  2. 1.で作成したテーブルからレポートを作成します。
    次のようにデザインしてください。レポート ヘッダーとページ ヘッダーには、ラベルを配置します。詳細セクションには、テーブルの各フィールドと連結したテキストボックスを配置します。詳細 セクションの各テキストボックスの [幅/ Width ] プロパティは 3cm に、[境界線スタイル / BorderStyle ]プロパティは「透明」に、 [印刷時拡張/ CanGrow ] プロパティは「はい」に設定してください。テキスト ボックスプロパティ シートを表示するには、テキストボックス上でダブルクリックします。
  3. 詳細 セクションの [印刷時/ OnPrint ] プロパティに、イベントプロシージャを作成します。 詳細 セクションのプロパティシートを表示するには、詳細セクションバーをダブルクリックします。[印刷時/ OnPrint ] プロパティにフォーカスを移動し、プロパティの右側の <ビルド> ボタンをクリックします。[ビルダの選択] ダイアログ ボックスが表示されますので「コード ビルダ」を選択し、[OK] ボタンをクリックします。
  4. モジュールウィンドウで、下記のコードを入力します。
         ---------------------------------------------------------------------------
         Sub 詳細 1_Print (Cancel As Integer, PrintCount As Integer)
             Dim i, j
             j = 0                                   '変数 j を初期化します。
             For i = 0 To Me.count - 1       '詳細セクションに存在するコントロールの
                 If Me(i).section = 0 Then    '拡張後の高さと変数 j の値を比較し
                     If j < Me(i).height Then 'より大きい方の値を変数 j に代入
                                              'します。
                         j = Me(i).height
                     End If
                 End If
             Next i
             Me.Line (567 * 0, 567 * 0)-(567 * 0, j)     '縦線を引きます。
             Me.Line (567 * 3, 567 * 0)-(567 * 3, j)     '単位は twip です。
                                                         '1cm = 567twip
             Me.Line (567 * 6, 567 * 0)-(567 * 6, j)     'コントロールの幅は 3cm
             Me.Line (567 * 9, 567 * 0)-(567 * 9, j)     'なので、567*0,
                                                         '567*3, 576*6, ,, となり
                                                         'ます。
             Me.Line (367 * 0, 0)-(567 * 9, 0)           '横線 (上) を引きます。
             Me.Line (367 * 0, j)-(567 * 9, j)           '横線 (下) を引きます。
         End Sub
         ---------------------------------------------------------------------------
    
  5. [実行] - [モジュールのコンパイル] コマンドを選択するか、ツールバーの <コンパイル> ボタンをクリックします。エラーが表示されなければ、モジュールウィンドウを閉じてください。エラーが表示された場合は、入力ミスがないかどうか再度チェックしてください。
  6. レポートを印刷プレビューで表示すると、テキスト ボックスの高さが一番高いテキスト ボックスと同じ高さで罫線が引かれます。

■ 解説

[印刷時拡張/ CanGrow ] プロパティが「はい」に設定されたコントロールが実際に印字されるときの [高さ/ Height ] プロパティの値は、印刷時のイベントでのみ参照可能です。しかし、印刷時のイベントでは、コントロールの [高さ/ Height ] プロパティを変更することはできないため、コントロールの "境界線" ([境界線スタイル / BorderStyle ] プロパティや [境界線種/ BorderColor ] プロパティの設定) によって可変的に罫線を引くことはできません。ここで紹介した方法では、[境界線スタイル / BorderStyle ] プロパティを「透明」に設定し、 Line メソッドを使用して罫線を引いています。
Line メソッドに指定する座標値は、[ ScaleMode ] プロパティの値を既定のまま使用しているので、twip (1cm=約 567twip) で指定しています。

Keywords: KBINFO KB404058
Technology: kbAccessSearch

inserted by FC2 system