練習3:納品書作成データベース(7)
やっとこさ、データを貯めるテーブルと、入力や照会をするためのフォームが出来上がりました・・・。さて、ここからがいよいよ(やっとかよ!)本番です。日本人好みのデザインに仕上げようとすると何かと手間がかかるレポート作りに挑戦です。
これから更に、超細かい作業が続きます。この画面とまったく同じにならなくても問題ないので、皆さんのペースで進めてください。
伝票ウィザード
これから「納品書」を作るわけなんですが、その前に、「伝票ウィザード」という機能をご紹介しようかと思います。
自分でデザインしてレポートをあつらえることも多いですが、そもそも、納品書とか受領書みたいなものって、市販されてるものもありますよね。あの、私のような者が会社名を出していいかどうかわからないんですが、その、コクヨとか、ヒサゴとか、エーワンとか、そういう会社から出てる、決まったレイアウトのやつとか。
ああいうのにAccessのデータを印字するためのレポートを作るための、ウィザードです。ああいうのって要は、印字位置をぴったり、用紙の枠の中に合わせるのが手間なんですよね。その位置あわせをやってくれるのが、「伝票ウィザード」ってわけなんです。
ご使用の伝票の種類や型番が、ウィザードで利用できれば、結構簡単に作れちゃうのでお奨めですよ。まあ、話の種に、ちょっとだけ覗いてみてください。
「作成」タブをクリックし、リボンの右端の方にある「伝票ウィザード」をクリックします。
図1:伝票マジック!
伝票ウィザードが始まりました。最初の画面の右側に、伝票名がずらっと並んでいます。
どんな伝票が用意されているのか、一覧を眺めてみてください。
ここに無い伝票は、残念ながらウィザードでは作れないので・・・。用紙の大きさやデザインの似ているやつを選んで、後でレイアウトをちょっとだけ変えるとかしないとならないですね・・・。
とりあえず、”GB150”というのを選んでみました。
今日は練習なんで、どれでもいいですよ。ただ、ここから先は、選択した伝票のデザインや構造によって若干、表示内容が異なります。まあ、当然ですよね。
図2:いろいろあるんだな
伝票を選んだら、次へ進みます。
最初に、納品書の上部分・・・つまり、親となる情報をどうするか指定する画面になりました。
親となるデータは、「Q_納品」というクエリの中にあるので、まずこのクエリを選びます。
で、次に、「レポートフィールド」の各項目に、クエリの中のどのフィールドの値を出力するのか、紐付けをします。
図3:今日は練習なんで全部の項目は埋まりませんけど、こんな感じで。
次に進むと、今度は明細部分の情報ですね。基になるテーブル/クエリは「Q_納品明細」です。
図4:「Q_納品明細」を選んでね
こんな感じでしょうか。
図5:全部は埋まりませんけども、雰囲気掴むってことで
次へ進むと、並び順を指定する画面になります。
えー、並び順に適したフィールドがないんだよな・・・今回の例題には・・・・今回はこのまま先に進みます。
レコードの並び順は後で変更することもできますので、何も指定せず先に進んでもよいでしょう。
面倒なのは印字の位置あわせだけなので、前の画面で各項目の紐付けがちゃんとできていれば、他の事は後でも問題ないです。
図6:ここは何も指定しないで先に進んじゃおっと
最後です。レポートに名前を杖家手保存します。
なんでもいいので、適当な名前をつけておいて下さい。
図7:伝票の型番でも付けとくかな
おっと・・・このパソコンにつながってるの、A4縦サイズまでしか印字できないプリンタなんですよね・・・というわけでこんなメッセージが出てしまったようで。かっこ悪い・・・。GB150をセットできるプリンタを接続しているなら、問題ありませんからね。
図8:省スペース型のポータブルプリンタを使ってるもんでねぇ
すると、あれまー・・・なんだか不気味なレポートが出来上がりました。
そうなんですよ。指定伝票に印字するなら、罫線を引いたりする必要はありませんからね。レポートをプレビューすると、なんとも寂しい表示となります。
画面でGB150と位置あわせができたら、もっといいのに・・・まあ、贅沢はいけませんね。
印刷の位置あわせはすごく難しいんですよ。接続しているプリンターの種類や、プリンタドライバによっても、行間文字間やフォントの大きさ、形など微妙に違うので、実際には印刷してみないとわからないことも多いんです。
図9:こんなもんで・・・このレポートは閉じておいてください。
「納品書」レポートを作る
やっぱり、Excelで作ったのと同じようなデザインの納品書を作りたい・・・。ええ、そうですよね。Accessだってがんばりますよ。
私もがんばりますんで、かっこいい納品書、作りましょう。できる限り。
基本的には、レポートウィザード機能を使ってある程度の段階までデザインをAccessに作らせます。レポートは用紙の幅に限りがあるため、フォームよりデザインが複雑になりがちです。スクロールバーで表示を切り替えるわけにはいきませんから、効率よくコントロールを配置しないとなりませんもんね。なので、ウィザードで作ったデザインにこまごまと手を入れていく作業が不可欠である・・・と、思ってください。
とにかく、ひととおりやってみましょうかね。
レポートウィザードを開始します。タブメニュー「作成」をクリックし、「レポートウィザード」をクリックします。
レポートは、なるべくウィザードを利用するのがお奨めです。ウィザード使わなくても作れますけど、ただでさえ手間がかかるので、ある程度Accessに手伝わせたほうがいいんですよ。
図10:またウィザードに頼るのか
以前、フォームウィザードを使ってサブフォームを作ったときとちょっと似てます。
まず、「Q_納品」を選びます。
図11:まずはここから
「Q_納品」から選びたいフィールドを選びます。
とりあえず全部選びましょう。>>ボタンをクリックすれば全部いっぺんに右側に移ります。
まだ次に進んじゃダメですよ。この画面の操作はまだまだ続きます。
図12:全部右側に
続けて、「Q_納品明細」を選択します。
図13:二個目のテーブル/クエリ
「伝票番号」はさっき選んでるので、こっちのクエリからは選ぶ必要はありません。
それ以外のフィールドが右側に移動するよう、選択していきます。
コレでこの画面での操作は終わり。次に進みましょう。
図14:そうそう、その調子
テーブル/クエリを二つ選んだので、こんな画面が出てきます。二つの結びつき方を示してるんですが、まあ、これはAccessに任せておいて問題ないので、チラ見程度で先に進みましょう。
図15:まあええやろ
グループレベルとは、要するに、親子関係がどのフィールドを基準にしているのかを明示する、ってわけです。明細部分をどのフィールドごとにまとめるか、ということですね。
おそらく、何もしなくても「伝票番号」でグループ化するようになっていると思いますんで、ここもチラ見程度で。
図16:こんなもんやろ
次に進むと、並べ替えの順番を指定する画面となります。これは、要するに、明細部分のレコードの並び順ってわけですね。ここでは、「注文番号」を選びます。
レコードの並べ替えは、後でも調整可能ですから、ここで無理に選ばなくても何とかなりますよ。
図17:後でも何とかなりますけどね
レイアウトを選べ、っていう画面に来るんですが、まあ、どうせ、後でかなりテコ入れするんで、どれを選んでもたいして違いはないです。とか言ったら身も蓋もないですが・・・
用紙の向きと、「全てのフィールドを1ページに収める」というチェック欄がこの画面内にあることを確認しておいてください。もちろんこれらも後で調整可能ですが、レポートの横幅に影響しそうなことは、なるべく意識しておいたほうがいいんですよ。ほら、横幅にはどうしても、限りがありますもんね。用紙って。物理的に。
図18:今回はチラ見程度でいいよ
スタイルを選べっていう画面になるんですけど・・・ここも正直言って、どれでもいいです。
図19:うーん、そうだなぁ
最後に、レポートに名前をつけます。何でもいいので、納品書っぽい名前を付けてください。
図20:納品書か。やっぱり
で、完成・・・と・・・。うーん、なんか、イメージしているのとだいぶ違うような・・・まあ、ウィザードの力はここまでです。後はコツコツとデザインを変更していきます。
あまりにも程遠いので、イメージが沸かないかもしれませんが、どの辺を変えていく必要があるか、ちょっとの間、画面の中を観察してみてください。
図21:なんじゃこれ
図22:うーん、とにかく、かなりがんばらないとダメっぽいな・・・まず伝票番号とか会社名とか納品日とかを上の方に移動させて、後は・・・
しばらく眺めたら、右の上の方にある「印刷プレビューを閉じる」ボタンをクリックしましょう。
デザインを変える
印刷プレビューを閉じると、レポートのデザイン画面になります。デザインビューですな。
改めて、デザインビューの状態で、さらにさらにこのレポートの構造を観察しましょう。何がどうなっているんでしょうか。
図23:ごっちゃごちゃじゃのう
あちこちテコ入れしますので、コントロールレイアウトは解除しておきましょう。
場所がわかりにくいんですが・・・右図を見ていただいて、コレ (薄いグレーの十文字入り四角枠。レイアウトセレクタボックスとかいう名前らしいのよね) をクリックして、コントロールレイアウト全体を選択します。
図24:レイアウトセレクタボックスとか呼ばれてるらしいよ。生意気な
コントロールレイアウト、こんな感じで、ずいぶん広範囲に渡ってますね。レイアウトされていたほうが操作しやすい場合もあるんですが、こまごまとテキストボックスやラベルの移動などやりますので、解除しておいたほうが柔軟な操作ができそうですし。
図25:ほーう
レイアウト全体を選択できたら、「解除」ボタンをクリックします。タブメニューの「配置」の中にありますよ。
図26:「デザイン」じゃないよ「配置」だよ
レイアウト枠を解除したら、次に、「伝票番号ヘッダー」セクションを広げて場所を確保しましょう。
ここに、「親」情報が表示されるようにします。
で、「子」情報は、「詳細」セクションに表示されるようにすれば、サブフォームっぽい感じになりますよ。
がんばりましょう。
図27:広げよう、詳細セクション
広げた「伝票番号ヘッダー」セクションに、ページヘッダーから「伝票番号」のラベルを移動させ、「伝票番号」テキストボックスと並ぶように配置します。
ちょっと面倒ですが、いきなりぴっしり揃えなくてもいいので(他のコントロールの状態によっては、さらに移動しなきゃならなくなるかもしれないし)、だいたい、左端の方に配置できてればとりあえずOKです。
図28:ほほほ、めんどくさいのう
同じ要領で、「納品日」ラベルと「納品日」テキストボックスも横に並べましょう。
この二つは、右上にしましょうか。
図29:めんどくせぇーーー
ふう・・・。とりあえず、ページヘッダーにあったラベルのいくつかを、伝票番号ヘッダーに移動させました。
図30:これでいいかな
さらに、「子」の情報のラベルを、右図のように下側に並べます。テキストボックスは、「詳細」セクションに並ぶようにしましょう。
図31:ちょっとしたコツはありますが、要するに地道に一個一個作業するのだ
■図31のようにテキストボックスやラベルを移動するには・・・?
ひとつひとつ動かしてもOKなんですが、いっぺんに動かしたいところですよね。
そこで、こんなふうに移動させてみては・・・というムービーをご用意しました。例によって、MediaPlayerで再生可能な動画です。
動画だと、どこからどこまでがドラッグ中なのか、いつクリックしているのか、判別がつきにくいですが、雰囲気はつかんでいただけるんじゃないかと思います。ぜひとも、参考にしてください。
<コントロールやラベルをいっぺんに動かしている様子の動画を見る>
ラベルの中の文字を真ん中に寄せるには・・・このボタンでしたよね。
ただ、テキストボックスの中の文字を真ん中に寄せても、あまり見栄えは良くならないので、基本的にラベルだけにしておいたほうが無難です。中央に寄せて○なのは、「納品日」くらいじゃないかなぁ。どのレコードも桁数が同じようなもんですからね。
図32:ラベルの文字寄せとかも
で、「レポートヘッダー」部分から、「納品書」という文字入りのラベルを「伝票ヘッダー」に移動させてきましょう。配置はお任せしますよ。
これで、「レポートヘッダー」「ページヘッダー」は空っぽになり、「伝票番号ヘッダー」に親データと子データのラベル(見出し)が入りました。
なんでこんなふうにしたのか、は、後でまとめましょう。
図33:だんだん、それっぽくなってきやしたぜ
レポートヘッダー、ページヘッダーはもう使わないので、ドラッグして高さを狭めて折りたたんでしまいましょう。無くす(非表示にする)こともできるんですが、下図のように折りたたんでおけばとりあえずOKですよ。
さらに、ページフッター部分の、ページ番号や日付などを印字するためのテキストボックスも要らないので、削除します。
図34:だいぶすっきりしましたぜ
こんな感じになりました。ふいー・・・。後もうちょっと。がんばりましょう。
図35:どうでっしゃろ
こういうレポートは、毎回必ず1レコードだけを印刷するのであれば、レポートヘッダーやページヘッダーにコントロールを配置したままでもいいんです。でも、納品書を数件分まとめて印刷する事だってありますよね。そのとき、一ページに全部印刷されてしまったり、中途半端なところで改ページされてしまっては、納品書として使えなくなってしまいます。
やっぱり、「伝票番号」ごとに改ページされて、1伝票番号につき1枚(1ページ)ってならないと・・・。
そういうタイプのレポートの場合は、このページでやったように、「伝票番号ヘッダー」(グループ化の基準となるセクション)に、親データを表示するためのコントロールを集める必要があります。逆に、レポートヘッダーやページヘッダーは、必要なくなります。
■レポートヘッダー/フッター: そのレポートを印刷するとき、最初と最後に1回ずつ印刷されるセクション。
■ページヘッダー/フッター: 1ページの上と下に1回ずつ印刷されるセクション。
■グループヘッダー/フッター(今回の場合は、「伝票番号ヘッダー/フッター」: グループの最初と最後に1回ずつ印刷。
■詳細: 基になるテーブルまたはクエリの件数分、印刷される。
このページのまとめなど
- 日本の企業業務での独特の印刷物をデザインするのはなかなか難しい。地道な作業が必要。
- 市販の複写伝票などであれば、伝票ウィザードの中にテンプレートがあるかも。照らし合わせてみよう。
- 一枚の印刷物として考えるのではなく、テーブルやクエリのデータをどう当てはめていくか、デザインできるようになろう。
- フォーム以上に、デザインを整えるのは難しく手間がかかる。セクションごとの特性や役割を理解しておこう。
作成日:2009-02-05