#15 | 登録時のレシート印刷 | ||
パソコンレジでは、売上データが確定したと同時にレシートを発行します。一般的なレシートの印刷については、「レシートプリンタ」という専用のプリンタを用意する必要があります。 レシートプリンタにはさまざまなものがあります。インクジェットやドットインパクト、熱転写といった印字方式の違いも検討すべきですが、データベース側のソフト的処理の面からは、どのようにそのハードウェアを制御するかという点を主に考えなければなりません。 この制御方式あるいはパソコンからのデータの転送方式を分類すると、次のようなものが市販されています。
RS232Cを使ってシリアルポートにデータを送出するようなタイプの場合、Windows APIを使ってRS232Cを制御するなどのプログラミングテクニックが必要とされます。また、印刷の開始や改行、レシートのカットなど、どのようなコマンドを送出すればよいのかについては、メーカーや機種によってまったく違います。そこでここでは、一般的なAccessのレポートとしてレシートをデザインする場合のポイントと、印刷を実行するタイミングについてのみ説明するものとします。おそらくプリンタドライバによる方法であればそれでうまく連携されるはずですが、実際に試しているわけではありませんので、その点は留意してください。 レシート用レポートの作成は次のような手順で行います。
全体のデザインを整えたあと、「売上伝票入力」画面を開き、各データを入力後、プレビューで確認してみましょう。 さらに既存の「rpt納品書請求書」レポートなどを参考にしてカスタマイズすれば、レポートヘッダーにタイトルを付けたり自社の会社名等を出力したりすることもできます。あるいは基本的なレポートデザインになりますが、フォントを変えたり、色(濃淡)を付けたり、線を加えたり、あるいはイメージコントロールで自社のロゴマークを追加したりすることもできると思います。 続いて、このレポートを出力するタイミングを押さえておきましょう。前述のように、「売上伝票入力」画面のデータは「wtbl売上」や「wtbl売上明細」テーブルと連結しています。これらの作業テーブルは次の伝票番号の入力時にはクリアされてしまいますので、データが正しく入力完了しかつ次伝票に進む前に印刷するようにします。 具体的には、ファンクションキー「F4」が押されたところで呼ばれる登録処理の本体部分、「cbfRegistData」プロシージャで処理するとよいでしょう。ここならメインフォームでF4が押されたときにもサブフォームでF4が押されたときにも処理されますし、事前の入力チェックがOKのときだけ印刷を行うようにすることもできます。 ここでは、次のような記述にします。太字部分が今回追加したところです。 Private Function cbfRegistData() As Boolean '登録処理を実行 Dim dbs As Database Dim qdf As QueryDef Dim varNewSlipNum As Variant '返り値の初期値を設定 cbfRegistData = False '入力必須データの未入力チェック If IsEmptyData(Me!納品先コード, Me!請求先コード, Me!frm売上伝票入力_sub!txt受取金額) Then Exit Function '明細データの未入力チェック If IsEmptyDetailData(Me!frm売上伝票入力_sub) Then Exit Function If Me!取引区分 = 2 Then '売掛のとき、請求先の取引データが登録されているかチェック If Not cbfChkTransactData(Me!請求先コード) Then Exit Function End If '編集中のレコードを強制的に書き込む DoCmd.RunCommand acCmdSaveRecord 'レシートレポートを開く DoCmd.OpenReport "レポート1" Set dbs = CurrentDb If Not IsNull(Me.OpenArgs) Then '売上一覧から編集モードで開かれたとき (後略)
|
|||
|
Copyright © T'sWare All rights reserved |