システム設計の話 その5・経理売上報告書の詳細 [システム設計の話]
前回の「その4」では、「納品書」の内容確認を行いました。
「売上伝票」は「納品伝票」とほぼ同じということにしておきます。
今回は、「経理売上報告書」の詳細を確認します。
「経理売上報告書」は、既存の帳票ではなく、システム化により新規に導入する帳票となっています。どういう帳票が必要なのかを考えるために、そのバックグラウンドをおさらいします。
「その2」で業務内容を確認したとおり、現在の作業の仕方は、営業担当者が1ヶ月分の売上伝票を集めて、それを経理担当者に渡すようになっています。
経理担当者は、受け取った売上伝票から顧客別に売上金額を拾って、売掛管理や、請求処理を行っている、と推測されます。
この作業に必要な情報は、現状作業に使っている売上伝票の内容すべてでは無いようです。
そして、経理担当者から、経理の作業に必要な情報や、どんなものが作業効率がよいかをヒアリングします。
その結果を、以下のように決めてみます。
必要な情報は、売上先の顧客、売上日、売上日ごとの売上金額(合計で商品別の明細は不要)、顧客ごとの売上合計。
最後に売上金額の総合計が欲しい。
と言う感じにしてみます。
たぶん、経理(簿記)では、顧客と日付と金額の世界だと思うので、実際もこんな感じだと思います。
今回は帳票だけしか考えませんが、経理のシステムで取り込めるCSVデータを出力してっていう要望はよくあります。
これで、まったく形のなかった新規の「経理売上報告書」のイメージが、なんとなくできてきました。ここでざっくりイメージを作ろうかと思いましたが、それは帳票設計でやろうと思います。
次は、「売上実績表」を考えます。
クエリ 日付を年月で抽出する [クエリ]
日付の項目に対して、例えば2011年11月の日付を抽出する、と言った条件で抽出する場合、どのようにWHERE条件を作成するのが良いでしょうか?
単純に考えると、たぶんこうなると思います。
日付 BETWEEN #2011/11/01# AND #2011/11/30#
私的には、これが正解だと思ってます。
システム設計の話 その4・売上入力と関連帳票の詳細 [システム設計の話]
詳細事項の検討に入っていきます。まずは、売上入力画面や、その関連帳票を作るに当たって、「売上」の情報というのが、具体的にどんな物かを確認します。
今回の例では、顧客が手動で業務を行っているという設定なので、現状使用している物を参考にして、検討することにします。
実際の作業でも、こうするケースが多いと思います。こういうシステム化の打ち合わせに慣れているお客さんだと、要望を具体的にまとめた物を提出して貰える事もあります。逆に、お客さんから何の提示も要望もなく、とりあえず適当に作ってみたいな事もあります。
さて、顧客は現状の業務の中で、納品書と、売上伝票を手作業で作成しています。これを元にどんな入力画面や帳票を作るか考えます。
で、適当なサンプルがないかと探してみたら、Excelのテンプレートに良さそうなのがあったので、これを使って考えてみようと思います。
こんな感じ。元のテンプレートからちょっといじくってます。
こういう帳票を印刷したい、と言う事で進めようと思います。
では、必要な情報を洗い出していきます。上から順に。
・発行日
うーん、ちょっと定義が曖昧になりそうなので、これは変更します。
とりあえず、データとして管理する日付は、「入力日」「変更日」「注文日」「納品日」をざっくり考えるようにします。
また、帳票には、印刷日時を表示するようにします。
・伝票番号
納品書を一意に特定する為の、ユニークな(重複しない)番号を付ける所です。
採番ルールは、後で考えるとして、そう言う項目が必要と言うことです。
・担当
売上情報には、だれが担当者か、という項目を持たせます。
・顧客情報
納品書の左上に、宛先の顧客情報が印刷されています。
「顧客名」「顧客郵便番号」「顧客住所」などの情報が必要という事です。
「顧客担当者名」まで管理するとめんどくさいので、無しと言うことにします。
また、窓空き封筒の窓に合うように印刷してっていう要望もよくあるのですが、めんどくさいので考えません。
・弊社情報
ちょっと下がった位置に、自社の情報を印刷します。
「会社名」「会社郵便番号」「会社住所」「会社電話番号」などの情報が必要です。
担当者名もこの位置に入れた方がいいかな。
・明細情報
納品する商品の明細情報です。
「商品番号」「商品名」「数量」「単価」「金額」「備考」の項目があります。
これを参考に、売上データのテーブルを設計します。
・合計
「税抜合計」「消費税額」「総額」を、最後に表示します。
ここで「金額」「単価」は、基本的に「税抜き」だろうと推測できます。一般消費者向けの価格表示では、総額表示(税込みの金額)が一般的になりましたが、それ以外は、明細は税抜きで、最後に税を計算することが多いと思います。
単価を税込みで考えると、いろいろとめんどくさいので、税抜きで考えます。
・その他
紙はA4縦で印刷するとします。
1ページの明細数は、帳票設計で決める事にします。
ここで一つ、まためんどくさい事があります。
明細が1ページに収まらないときはどうするか?
考え方は、とりあえず2つ。
合計を印刷せずに、同一ヘッダーを次ページに印刷して、続きの明細を印刷する。明細を出力し終えたら、合計を印刷する。
または、1ページに収まる明細数までしか、1伝票に入力できないようにする。
後者はなんだか作る側の都合を押しつけているようですが、標準形式の伝票はそれぞれ行数も決められているので、そういう作りの物もあります。
うーん、前者で作ると、多少面倒なので、後者にします。
こんな感じで、サンプル帳票からどんな情報があるのか洗い出せました。
ここまででも、どんなマスターが必要か、売上データテーブルはどんな項目が必要か、などいろいろ考えられる段階になったと思います。
「納品書」「売上伝票」はこの情報を元に考えるとしますが、まだ他に「経理売上報告書」「売上実績表」がありますので、それらを確認したうえで、テーブルなどの設計に進もうと思います。
レポート 印刷を制御するプロパティ [レポート]
タイトルがなんかざっくりですみません。
ACCESSのレポートは、簡単な設定で帳票が作成できる便利な物なんですが、基本的な印刷方法から外れた帳票を作成しようとするとちょっと工夫が必要です。
そう言う場合に、知っておくと便利なプロパティが3つあります。
○MoveLayoutプロパティ
Trueの場合は、通常通り、そのセクションが印刷されて、その分だけ次の印刷位置が移動します。
Falseに設定した場合、そのセクションが印刷されたあと、次の印刷内容が、また先ほどの印刷開始位置と同じ位置から印刷されます。
上から重ねて印刷されるような感じになります。
例えば、グループヘッダーを、ページの左よりに印刷されるようにレイアウトして、明細をページの右よりにレイアウトすると、グループヘッダーと明細が並んだ形で印刷できます。
多少、例が強引ですが、こんな感じの事ができます。
この場合、左のヘッダーの高さ分ほど、明細行が印刷されないと、次のグループの印刷がさらに重なってしまうので、その場合は、明細の空打ちが必要になります。
その辺は、続きを参照してください。
○NextRecordプロパティ
通常Trueに設定されていて、詳細セクションが印刷されると、印刷データが次のレコードに変わって、次の詳細セクションなどが印刷されます。
Falseに設定すると、現在のレコードのまま、次の印刷処理へ進みます。
現在のレコード位置のまま、好きなだけ詳細セクションを印刷することができます。
○PrintSectionプロパティ
通常Trueに設定されていて、現在のセクションの印刷内容が印刷されます。
Falseに設定すると、セクションの内容は印刷されませんが、印刷開始位置は、現在のセクション分ほど先に進みます。
先ほどのNextRecordプロパティと組み合わせることで、いわゆる行の空打ちができます。
これらのプロパティによる制御の組み合わせで、いろんなレポートが実現できると思います。