受注明細(2)

システムでかなりのお金をつぎ込んでしまったので、FileMaker7を必要数購入するここがままならず。(そうしてる間に8も出てしまいましたが・・・)現在、大部分の人がまだFileMaker Pro6を使用しています。そこで、データをFileMaker Pro7(当時まだ7でやってました)で取り込んだものを、File Maker Pro6用に書き出しす必要があります。書き出したファイルをFileMaker Pro6で読み込んでから、LANやメールで配布します。

書出は、slkにしています。csvでもタブ切りでも良いのですが、以前どちらかで書出したときに不要な””が書き出されてしまったことがあるので、それ以来slkを使うようにしています。今後いろいろ試してみて、csvでも行けそうなら変更するかもしれません。

配布先が、WindowsとMacと両方の環境があり、しかもMacではMacOS9.2.2なのでFileMaker Pro6までしか動作しません。というわけで、どの環境でもちゃんと動作するかを確認する必要があります。このファイルに関しては、特に難しいスクリプトもなく、読み込んだファイルを検索するだけなので、特に問題は起こらないと思ってましたし、検索の機能についてはどの環境でも動作しました。(当たり前)

しかし、Windowsで印刷に問題が・・・。クレームなどで同じ商品を同じあて先に送るときに、受注明細から直接送状を印刷する機能をつけているのですが、それがうまく機能しません。直前の印刷状態を覚えているのか、毎回クリアされてしまうのか、そのへんはよく分かっていませんが、意図したとおりに印刷設定を保存してくれません。業務で使用しているマシンは、仕事柄どうしてもいろいろな帳票を印刷します。業務アプリケーションや、他のソフトは印刷設定を記憶してくれるのですが、FileMaker Pro6だけなんぼスクリプトで記憶させようとしてもできません。後で聞いたところによるとFileMakerの仕様なのだそうです。しかも、FileMaker Pro7になってもほとんど改善されておらず・・・
どんな仕様やねん!!
(・_・)☆ヾ(^^ )なんでやねん!!

Windowsのプリンタの管理方法の煩雑さにも驚きましたが、それと連携できないFile Makerにも驚きました。印刷設定を制御できるプラグインもあるそうですが、有料らしいので必要数そろえるお金あるならFile Maker Pro8をそろえるほうにまわしたいと考えました。で、現在では、その都度印刷設定をやり直してから印刷することになってます。(むっちゃいけてないと、非難囂々です・・・)

FileMaker Pro8では、印刷関係はかなり改善されているようです。(情報収集中ですが)それにしても、MacOS9までは、機能拡張にあるプリンタの設定を各マシンに配布するだけで同じ環境が作れたのですが・・・頭の痛い話です。

次は、配布の話です。LANで配布するのはすべてWindowsなのでそのままのファイルを共有サーバに入れておいて、各自更新してもらえればOKです。
メールで送る先は、Macのクラッシック環境でしかも3MBほどのファイルですので、圧縮して送らないと送れません。MacとWindowsで使える圧縮形式というと・・・LZHがありますね。試しに、+LhacaでLZH形式にして、StuffIt Expanderで解凍してみたらちゃんと開いて見れそうなので、この方法を採用することにしました。ただ、受けるマシンによっては、「受注明細」が「時注明細」に文字化けします。でも、機能的には問題ないので、結果オーライです。

将来的には、VPNで仮想LANを構築して、MacとWindowsの両方から使えるファイルサーバを立ててこにファイルを更新するようにしたいですが、とりあえず予算かかることなのでぼちぼちいきます。

最終的に↓の用な、3つのファイルができあがりました。

juchumeisai_files

| | コメント (0) | トラックバック (0)

受注明細(1)

最初に手がけたのは、会社では「受注明細」と呼ばれてるものです。
要するに、受注を受けて出荷の済んだもの、未出荷のものを調べるためのものです。これは、お客さんから出荷/未出荷の問い合わせに迅速に答えるために、以前のシステムの時に私が作ったものです。それまでは、受注残明細と称して紙に印刷したものをいちいち繰って調べていました。これは、得意先をよく知っている人、出荷指示等にかかわってる人しか、該当のページをうまくめくることができませんでした。(まあ、私が面倒くさかったということですが・・・)以前のシステムは、日次バッチ処理をかけた後、自動的に受注にかかわるデータをテキスト書き出ししてくれていたので、それを読み込むだけすんだのですが、今度のシステムそれがないので、業務データから必要な情報を取り出してこないとなりません。

juchumeisai_interface juchumeisai_itiran  もともとSQLを使うきっかけになったのは、この受注明細を作成をはじめたことでした。最初は、エクセルに書き出してFileMakerで加工しようとしていましたが、いろいろやってるうちにSQLで直接ファイルメーカーで取り込めることを突き止めました。

受注テーブル(受注したデータ)と販売テーブル(伝票を発行して受注から売上になったデータ)合わせて、共通する部分を削除すれば、出荷済の分と未出荷の分が取り出せると考えました。

しかし、受注テーブルと販売テーブルを結びつけるキーが見当たりません。これがないと共通する部分を取り出すことが出来ません。そこで何か他のフィールド値で代用できないものかと調べていたら、「完了区分」というフィールドがあることに気がつきました。聞いてみたら、伝票を発行して売上になったら「1」立つフラグでした。

そこで考えたのは、受注テーブルの完了区分と受注明細に必要なフィールドを取り込んでFileMaker側で完了区分が「0」のものを削除して、売上データをそれにプラスする方法です。受注データ取り出しのSQLは、↓です。

SELECT "受注テーブル"."登録日付" ,"受注テーブル"."受注日付", "受注テーブル"."相手先NO", "受注集計テーブル"."得意先略称", "受注集計テーブル"."荷送先名1", "受注集計テーブル"."荷送先名2", "受注集計テーブル"."荷送先住所1", "受注集計テーブル"."荷送先住所2", "受注集計テーブル"."荷送先住所3", "受注集計テーブル"."荷送先電話番号", "受注テーブル"."商品名1", "受注テーブル"."商品名2", "受注テーブル"."受注単価", "受注テーブル"."受注数量", "受注テーブル"."受注金額", "受注テーブル"."完了区分"
FROM "受注テーブル", "受注集計テーブル"
WHERE "受注テーブル"."受注NO" = "受注集計テーブル"."受注集計NO"  AND "受注テーブル"."受注日付">='20051021'

今では、WHRER句で、"受注テーブル"."完了区分"='0'と指定すれば、書き出せることを知ってますが、当時はそこまで頭が回りませんでした(^^ゞ
ただ、SQLで指定するとサーバ側に負担がかかりそうです。FileMakerでの負荷とどちらが軽くて済むのかをちゃんと調べて、どちらか軽い方を採用していこうと思います。とりあえず今のところは、FileMaker側での処理をしています。

この後は、売上データを追加すれば完了です。
SQLは↓です。

SELECT "売上集計テーブル"."登録日付" ,"売上集計テーブル"."相手先NO", "売上集計テーブル"."得意先略称", "売上集計テーブル"."荷送先名1", "売上集計テーブル"."荷送先名2", "売上集計テーブル"."荷送先住所1", "売上集計テーブル"."荷送先住所2", "売上集計テーブル"."荷送先住所3", "売上集計テーブル"."荷送先電話番号", "売上集計テーブル"."運送会社コード", "販売テーブル"."商品名1", "販売テーブル"."商品名2", "販売テーブル"."売上単価", "販売テーブル"."売上数量", "販売テーブル"."売上金額", "売上集計テーブル"."出荷済フラグ", "売上集計テーブル"."売上集計日付"
FROM "売上集計テーブル", "販売テーブル"
WHERE "売上集計テーブル"."売上集計NO" = "販売テーブル"."販売NO" AND "販売テーブル"."販売日付">='20051021'

ちなみにフィールドは共通のものを割り当てます。運送会社名はコードしかなかったので、FileMakerの同一ファイルの中に運送会社のテーブルを別に作成して、運送会社コードでリレーションをかけてルックアップでもってきます。

他にもいくつか問題があったのですが、ここではそれほど大きな問題ではないので、省略します。後に大きな問題になってくるので、そのとき詳しく報告します。

ただ、ひとつなんとなく引っかかるのは、SQLのWHERE句で、「何日以降」を設定する時にいちいちSQLを書き直さないとならないことです。たいした手間ではないのですが、できれば、ダイアログを出して、そこに入力したものをSQLに反映できるようにすれば、より良い感じになります。
そのうち、何かうまい方法が見つかったら、取り入れていこうと思います。

| | コメント (0) | トラックバック (0)