月別アーカイブ: 2016年12月

FileMaker販売管理、注文書の作成

今回はFileMaker販売管理、注文書の作成のベーシック部分です。注文書が出来ると仕入れ販売への展開が容易になります。
<Photo Data>2016/11/15 妙義山
Canon EOS5DMarkⅡ
EF24-105mm f/4L IS USM
1/200 f9.0

<最初に>
注文書は、「何を」、「どこから」、「いくら」で「何個」購入するかということの発注版です。主なフィールドは、「仕入れ先」、「商品名」、「注文数」、「注文価格」等です。
仕入れ先と商品名は台帳管理(マスター)とします。注文書からはリレーションで呼び出して使用します。
<関係図の作成>
左記は一部仕入れ伝票まで含んでいますが、注文伝票まわりのリレーション図です。
リレーションを結ぶとき、下記の様な「関係図」を作成しながら必要なテーブルをクリエートしたり、どこでレコード発番するかなどを描いていくと良いと思います。
注文書作成では仕入れ先への伝票発番以外に、入荷してくる商品の処理もあらかじめ決めておきます。
また、仕入れへのデータのつなぎは、入荷時点で未納となることもあります。直ちに入荷=仕入れとしてデータは渡せません。こうしたことを考慮しながら進めていきます。

<入力にポータルを使う>
注文書の商品入力は下記の様なレイアウトにて行うようにしました。商品情報は注文伝票の中にポータルで組みました。

 

 

注番(注文伝票番号)は、フィールドオプションで数字のシリアル連番としましたが、本格的には001のような頭ゼロ番号とするのが良いと思います。このやり方は例えば下記の様なサブスクリプトで作ることが出来ます。

$r = 1
Loop
”X00-” & Right ( “000” & NumToText ( $r ) , 3 )
Exit Loop記述
$r = $r +1
End Loop

(上記の場合、X00-001のようなヘッダー分類を持ったシリアル番号を付けることが出来ます。)

<ポータルのデータ>
注文書のポータルで構成したフィールドは、下記のような「注文データ」レイアウトを別に作りました。

<注文書の印刷>
伝票に入力が完了したら、注文書を印刷します。印刷用のレイアウトを下記の様におこしました。
仕入れ先の会社名や住所などの情報は仕入れ先台帳から呼び出します。フィールドは通常のフィールドとマージフィールドの混用としました。その他のコメントや自社情報は固定的なもので、テキストボックスに調節入力しました。
発注伝票の商品名や注文数などの各フィールドは、繰り返しフィールドとし、注文金額の合計は後部集計で発生するようにしました。集計パートに合計を貼り付けると桁ズレが起こりません。
この注文内容の部分は罫線で囲い、注文書として体裁を整えました。

印刷データは、発注伝票番号を読み取って注番に該当するレコードを抽出し、印刷レイアウトに展開するスクリプトです。印刷まで自動で行います。
スクリプトの一部を下記に記載します。

変数を設定 [ $$発注伝票番号 ; 値 : 発注伝票 :: 発注伝票番号 ]
レイアウト切り替え [ 「発注データ」(発注データ)]
検索実行 [ 指定された検索条件: レコードの検索; 条件; 発注データ::発注伝票番号照合F:  「=$$発注伝票番号照合F」] [記憶する]
レイアウトの切り替え [ 「注文書の印刷(発注データ)」
以下、印刷スクリプトへ、、、

<最後に>
この注文書はリスト部分もファイルメーカーの罫線で作成してみました。倍率を上げて罫線の突き合わせなど行いましたがこういう作業は年ですね、疲れました。
印刷はきれいに仕上がりましたが、やはり注文書はWordで図案を作るかまたは市販の注文書にスクリプトで印刷する方が簡単だと思いました。

1st初稿と文言訂正 2016/12/11
2nd 変換ミスなど訂正 2016/12/15
3rd ファイルメーカーにカテゴリー変更 2017/06/25
K.Fukuma

 

FileMaker任意の位置にラベル印刷する

今回はFileMakerラベル印刷の応用編です。
例として、A4 -14枚の任意のラベルに、または任意の位置から連続で印刷する方法をファイルメーカーで構築したいと思います。使用したFileMakerは、 Advanced Pro Ver.14、ラベルはマクセルL7163-20A(レーザーラベル14枚)です。PCはMac Mini Late 2012、レーザープリンターはCanon MF222dwを使用しました。

_mg_2502-1<Photo Data>2016/11/07 権現山の銀杏
Canon EOS5DMarkⅡ EF16-35mm f/2.8L USM

何故こんな面倒なことをとお思いでしょう。ラベル印刷は印刷残りが出ます。この残りのラベルを再度利用したいだけです。ただし、この方法はレーザープリンターのドラムが傷みます。ほどほどにということにはなります。

ラベルのある位置にだけ印刷するには少し工夫が必要です。ここで説明致する方法は空レコードを使う方法です。14枚ラベルでは空レコードを14個用意します。そして指定位置のみ実データを転送します。

任意のラベルに印刷するには、まずメインの住所録から印刷対象のデータを選びます(下記住所録画面)。印刷データは右上の方の宛先を会社か自宅宛かをあらかじめ選択しておきます。
次に右上のラベル1枚印刷ボタンより印刷スクリプトを実行します。

下記のスクリーンショットは、「氏名」、「住所」など住所録のデータを印刷する時の印刷レイアウトです。印刷フィールドは小さなスペースへの印字となるためマージフィールドを使用します。
スクリプトはラベルの印刷位置指定(住所録の次のの画面)に飛び、ラベルが残っていて印刷したい場所をマウスで選択します。
%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2016-11-18-22-51-43

印刷はラベル1枚印刷という印刷用のテーブルとレイアウトを作成します。このテーブルとメイン住所録をリレーションで結合します。
(リレーション図を参照下さい)

住所録IDをキーフィールドとしてリレーションをかけて該当IDの住所データをルックアップで取り出しラベル1枚印刷のテーブルにコピーします。

この印刷手続きはスクリプトで行います。

先ずラベル1枚印刷というテーブルに14個の空白レコードを用意します。
印刷位置の検出は位置検出スクリプトで選択された番号を取得します。
(位置検出選択の方法は前の投稿の年賀はがき印刷に例を記載しています。ご参照下さい。)
変数「$$選択位置」にラベル番号が入ります。

印刷スクリプトは下記になります(メインの記述のみです)%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2016-11-30-21-48-57

レイアウト切り替え 「ラベル1枚印刷のフィールド」(ラベル1枚印刷」
レコード・検索条件/ページへ移動[ $$選択位置 ][ ダイヤログ無し ]
フィールド指定 [ ラベル1枚印刷::ラベル1枚氏名; Lookup ( 住所:: 氏名; ”” )
…..
その他の必要な住所データを同様にlookupで取得します。

レイアウト切り替え「自宅宛ラベル1枚印刷l-7163」(ラベル1枚印刷)
印刷指定 [ 用紙の向き 縦; 用紙サイズ 8.26” x 11.69”
印刷 [ 対象レコード; 全てのページ; 印刷の向き 縦 ; 用紙サイズ: 8.26” x 11.69” ]
   [ 記憶する: Canon MF220 ]
3枚目のラベルに印刷する場合、2枚目まで空白レコード、3枚目は実データ、4枚目以降再び14枚目まで空データを印刷します。

注意事項として、プリンターの設定は空レコードも印刷しますので、印刷設定は対象レコードを全てとします。
また2段7行のような段組印刷は使用したプリンターに設定がありません。
ファイルメーカーにはレイアウトが利用出来ます。%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2016-11-19-22-26-48下記のスクリーンショットの様に、レイアウト設定の印刷で、印刷時の段数をチェックし段数を入力します。2段7枚計14枚のラベルは2段とします。

3枚目以降連続データとする時も以上の応用となります。
一番下に3番目にサンプル印刷した例を載せました。

1st 2016/12/05
2nd 参照位置修正 2016/12/06
3rd 説明と事例画面追加 2017/06/24
4th 事例画面再追加 とファイルメーカーにカテゴリー変更2017/06/25
K.Fukuma