ゴミの日トップ手順0手順1手順2|手順3
いままでは、見るだけ  手順3.レポート印刷までの処理
これからは、作る側
     1.ゴミの日レポート用の表(tbl)を作成
     2.レポートの作成(2種)
     3.フォームのレポート印刷ボタン追加(作成済み)
     4.イベントの処理・・印刷データの作成

いよいよ印刷部分へさしかかりました。あと少しです。頑張りましょうね


■ゴミの日レポート用の表(tbl)を作成

  • ゴミの日レポート用の表「ファイル名:ゴミの日印刷.TBL」
    • 印刷レポートに必要な項目・・・
      年月・カレンダー日付・ゴミの内容区分
    • 他に、印刷とは関係ありませんが、チェック用も作成しています

  • 表の定義内容と項目

    項目名 データ型 説明
    文字列 年が入ります
    文字列 月が入ります
    H1〜H37 整数 H1〜H37まで、37個作成します
    ch1 文字列 プログラムの書き出し・読み込み処理のチェック用です
    G1〜G37 文字列 G1〜G37まで、37個作成します
    ch2 文字列 プログラムの書き出し・読み込み処理のチェック用です

  • フォームの方でテキスト書き出しを行います。順は「年・月・日・ゴミ区分」ですが、プログラムが正確に書き出してるか、また正確に読み込まれているか、ダミーのデータを途中に挟み確認しています。
    印刷には不要な項目です

  • この表(tbl)は計算式や項目属性など全然ありません
    しいて、補足すれば、「年・月」は、数字変数なのに、なぜ文字列で受けてるか?・・理由は、西暦年の時は「2002」で問題ないのですが、元号にも対応したく変更しました。元号では「平成14年」として書き出しを行っています


■フォームの変更は、コマンドボタン2個追加です

  • 今回、レポート名も事前に決めてありますし、2個ということで、フォームの中に直接ファイル名を記載しています

  • 数が多い場合は、印刷専用のメニュー作成とか、ファイル選択などを利用する方法もあります
  コマンドボタンの作成は、手順2を参照下さい


■レポート作成

  • 今回は、1頁2ヶ月と1頁4ヶ月の2種類を作成します。
  • 単に2倍にするのではなく、段組の利用で
レポート作成の手順
  • ファイルパレットのレポートを選択

  • 最下段の、ファイル名(F)に、ファイル名「ゴミの日」入力
    自分でやれば、こんなに簡単
  • レポート新規作成ウイザード使用

    • 簡易作成一覧表を選択
    • 用紙の選択。ここではA4縦
    • 表ファイル名・・参照(R)ボタン・・表の選択・・「ゴミの日印刷.TBL」
    • 一覧表からの使用項目・・「[H1]・[H2]・[H3]・[H41]・[H5]・[H6]・[H7]」
    • グループ化項目・・操作無し
    • レポートのスタイル・・左上の標準・・完了

  • 実際は、たくさんの項目を一覧印刷を行います。ではなぜ、上記で

    >一覧表からの使用項目・・「[H1]・[H2]・[H3]・[H41]・[H5]・[H6]・[H7]」を
    選択したのか?・・・

     一覧表の特徴は、1ヶ所に表の1行を印刷形式です。通常住所録などに使用しますね。その場合「[氏名][郵便番号][住所1][住所2][電話番号]」みたいな形式の場合は、横一列に並べて印刷します。
     しかし、今回は「日〜土」までの7項目を繰り返しです。「レポート図1・3」参照

    もしたくさんの項目を選んでいれば、あとの修正が大変です。今回の場合は、追加の方が簡単なので最初は7個だけを選択したのです
    「レポート図2・3」参照

  • レポートオブジェクトの修正と追加処理

    • 現在最上段の「ゴミの日.rpt」ラベルと、「H1〜H7」までのラベル、それにテキスト「H1〜H7」が7個です
      図の左側の記号を参照下さい、図−2では「FPH・L・D」ですが、図−1では「D」が15個です

    • オブジェクトの属性は、「ラベル→テキスト」・「テキスト→ラベル」は相互に変更できますが、行属性は残念ながら変更できません。そこで、「D」を15個にするために、不要行を削除し必要な行を追加します

    • 追加方法・・画面の中央でマウスクリックする(左側に記号が表示されるまで)
      「D」にカーソルを置きクリック。横一行が反転する
      右クリックで挿入・14回繰り返す

    • 削除方法・・画面の中央でマウスクリックする(左側に記号が表示されるまで)
      「FPH」にカーソルを置きクリック。横一行が反転する
      右クリックで削除
      「L」にカーソルを置きクリック。横一行が反転する
      右クリックで削除
      削除の前に、最上段の「D」行に複写しておくのもいいですね。ただ、レポート作成では行単位に複写できないようです。

    • 最上段、年月表示テキストオブジェクトの仕様
      ここには、年月の表示を行います。その前に最上段の「D」をグループ化します。一番左をクリックし一番右をShift+クリックで選択後右クリックでセルのグループ化を実行しておきます。オブジェクトの属性はテキストです。
      (もし、それ以外でしたら、いったん削除後再度テキストを配置いてください。)
      テキストのソース(S)は「[年]+"年 "+[月]+"月"」です。

    • 2段目は、ラベルを配置します。ソース(S)は、左から「日・月・・・土」を入れていきます

    • 3段目以降は2行ごとの繰り返しで。(根気が必要ですが、頑張ってくださいね)
      3行目の一番左のソース(S)は「H1」そこから「H7」まで並べます。5行目に「H8」以降繰り返しです

    • 4段目から2行ごとには、ゴミの日の区分を配置します
      4行目の一番左のソース(S)は「G1」そこから「G7」まで並べます。6行目に「G8」以降繰り返しです

    • 15行目は、たんなる高さ調整です。罫線や、高さ、フォントサイズなどはあとで変更しますので、いったん保存終了です


■印刷関係イベントは?

次は、レポート用のイベント
  • 印刷データの作成。月数に応じた書き出し
  • 印刷用表への読み込み
  ここでは、ポイントを紹介します。
  追加分のイベントは、トップの「イベント説明」にまとめて紹介しています。
データの書き出し
桐でデータの書き出し方法は、表形式の他、CSV形式・テキスト形式等、標準コマンドで処理ができます。
しかし、今回は変数の値を書き出すわけですから、上記コマンドは使用できません。
そのような場合「印字」コマンドが対応します。

印字コマンドを利用すれば、表の内容の書き出し他今回利用します変数値や、項目にない、項目間の計算式など書き出すことができます。(例:項目が[英語][数学]があって、印字では、[英語],[数学],[英語]+[数学]を行えば「英語・数学・2科目の計」を出力ができます

また今回は、プログラムの書き出しや読み込みが正常に行われてるか、途中にチェック用の文字も出力したいます
データの読み込み
桐でデータの読み込みは上記のように、表形式の他、CSV形式・テキスト形式等、標準コマンドで処理ができます。
今回「印字」コマンドで書き出した内容は、テキスト形式で読み込みます

読み込みコマンドは、データの形式とどの項目に読み込むかを指定します

読み込み 表,"住所録.tbl",{[氏名],[郵便番号],[住所1],[住所1],[電話番号]・・・}と、指定します。

今回も本来は、[H1]・[H2]・[H3]・[H4]・[H5]・・・・と指定しなければなりません。・・・・そこで、印刷専用の表を作成したわけです。「書き出しもオリジナル、読み込みもオリジナル」ということは、先頭から順に読み込ませれば、項目の指定が不要です。データと項目数を比較して(項目数>データ)の場合途中の項目まで読み込みされます。逆に(項目数<データ)の場合、データの途中まで読み込み、読み込まれないデータは飛ばして2行目の先頭から2行目のデータを読み込みます。
ファイル処理
印刷対象データは、毎回書き出しますので保存する必要はありません。しかしレポート作成中は、データが全くないとプレビューで確認が出来ないため、しばらくは保存終了の方法で、処理します。(今回カレンダーは最高4行ですので、大して時間はかかりませんが、大きなファイルを作業用に使用している場合は、その方法をご利用下さい)

また、印字処理で作成されたテキストファイル。これも不要ですが完全にプログラムが出来るまでは保存しておいてもいいですね

top