2014-10-23

受注・受注残管理モジュールを作る(3)受注残タブの実装― FMEasy在庫のカスタマイズ


 本稿では受注管理モジュールを作成します。受注レイアウトには受注品目入力用の「受注」タブと、受注残管理用の「受注残」タブを配置します。


仕上がりイメージ

受注残関連仕様

下表は上図の受注残関連オブジェクトの仕様になります。
オブジェクト タイプ 説明
伝票区分 数値FD レコード確定時、1:全残(納品した商品無)、2:残有(受注残の商品有)、3:過納(過剰納品した商品有)、4:完納(受注した商品を全て納品)の何れかの値がセットされる。
OnRecordCommitを使用しスクリプトを起動。尚、本フィールドを計算フィールドにすることもできるが、索引が設定できずレコードが増えるに従い検索速度が劣化してしまう。
Id 数値FD
(主キー)
「受発注明細」テーブルの主キー。“出庫移行”ボタン実行時、このキーの値を移行先のテーブルである「入出明細」テーブルの[受注明細ID]に貼り付け、納品数算出用のTO(入出明細_受注#注残)の外部キーとして使用。下表及び下のリレーション図参照。
受注数 数値 =受注タブの[数量]
納品数 計算FD(数値) 当該商品の出庫への移行数合計、下表及び下のリレーション図参照。
受注残 計算FD(数値) 受注数-納品数、本値が0以外(受注残がある)の場合、本フィールドの背面が赤くなるように条件書式を設定すと、受注残がある商品が一目で解る。
移行数 数値FD 当該商品を出庫移行する数量をユーザが指定する。
ボタン 上記[受注残]を[移行数]に貼りつける。
出庫移行 ボタン 各商品を[移行数]分、出庫へ移行・登録する。
FD:フィールド


EasyData15.fmp12 のテーブル定義

名称 タイプ 補足
■受注テーブ
伝票区分 数値 上表参照
■受発注明細テーブル
ID 数値(主キー) 上表参照
納品計 計算(数値) Sum(入出明細_受注#注残::出庫数量)、上表及び下表参照
受注残 計算(数値) 上表参照
移行数 数値 上表参照
■入出明細テーブル
受注明細ID 数値(外部キー) 上表及び下表参照

EasyData15.fmp のリレーション

受発注明細テーブルに、[納品数]=Sum(入出明細_受注#注残::出庫数量)、を作成

EasyApp15.fmpの出庫移行ボタンのスクリプト

出庫移行ボタンは[移行数]で指定した数量分の商品を出庫に移行します ― つまり、受注画面で入力されたデータの一部を出庫(出庫/入出明細テーブル)にコピーします。ポータルを含むデータを他のテーブルにコピーする場合、1.元のデータを一旦変数に格納して変数をコピー先のテーブルに貼りつける方法と、2.元のデータを格納するテーブルからコピー先のテーブルへ取り込む方法、の2つがありますが、後者の方が高速になります。

 以下は後者の方法を用いたスクリプト例です。
(当スクリプトは検証不十分です。利用は自己責任でお願いします。 m( _ _ )m




#
#事前チェック
#
スクリプト実行 [ 「gブラウズ以外実行不可-IwpWD」 ]
スクリプト実行 [ 「gレコード無CK-IwpWD」 ]
スクリプト実行 [ 「gレコード確定強制-IwpWD」 ]
#
#受注ヘッダ情報をUIのグローバルフィールドにセット(後でUIを取り込み、出庫ヘッダを作成する前処理)
#
フィールド設定 [ UI::gCompId; 受注::得意先ID ]
フィールド設定 [ UI::gDeptId; 受注::請求部署ID ]
フィールド設定 [ UI::gPicId; 受注::担当ID ]
フィールド設定 [ UI::gTaxRate; 受注::消費税率 ]
フィールド設定 [ UI::gDate; Get(日付) ]
変数を設定 [ $oriWinName; 値:Get ( ウインドウ名 ) //スクリプトの最後でこのウインドウに戻る為、記憶する ]
#
#移行する受注明細を抽出
#
関連レコードへ移動 [ テーブル: 「受発注明細_受注」; 使用するレイアウト: 「受注明細#取込」 (受発注明細_受注) ] [ 関連レコードのみを表示; 新規ウインドウ ]
変数を設定 [ $orderNo; 値:受注::受注No ]
検索実行 [ 指定された検索条件: レコードの検索; 条件: 受発注明細_受注::受注No: 「$orderNo」 AND 受発注明細_受注::移行数量: 「>-9999999999」 ] [ 記憶する ]
#
#UI→出庫取込
#

関連レコードへ移動 [ テーブル: 「出庫」; 使用するレイアウト: 「出庫」 (出庫) ] [ 関連レコードのみを表示 ]
レコードのインポート [ ソース: 「file:EasyApp15_p」; ターゲット: 「出庫」; 方法: 追加; 文字セット: 「シフト JIS」; フィールドデータのインポート順: ソースフィールド 37 のインポート 出庫::得意先ID ソースフィールド 38 のインポート 出庫::請求部署ID ソースフィールド 39 のインポート 出庫::担当ID ソースフィールド 40 のインポート 出庫::消費税率 ソースフィールド 41 のインポート 出庫::出庫日 ] [ ダイアログなし ]
変数を設定 [ $shipNo; 値:出庫::出庫No ]
#
#受注明細→出庫明細を取込
#
レイアウト切り替え [ 「出庫伝票」 (入出明細_出庫) ]
レコードのインポート [ ソース: 「file:EasyApp15_p」; ターゲット: 「入出明細_出庫」; 方法: 追加; 文字セット: 「シフト JIS」; フィールドデータのインポート順: ソースフィールド 2 のインポート 入出明細_出庫::商品ID ソースフィールド 3 のインポート 入出明細_出庫::販売単価 ソースフィールド 13 のインポート 入出明細_出庫::備考 ソースフィールド 14 のインポート 入出明細_出庫::単位 ソースフィールド 15 のインポート 入出明細_出庫::受注明細ID ソースフィールド 20 のインポート 入出明細_出庫::出庫数量 ] [ ダイアログなし ]
フィールド内容の全置換 [ 入出明細_出庫::出庫No; 計算で置き換える: $shipNo ] [ ダイアログなし ]
フィールド内容の全置換 [ 入出明細_出庫::入出庫日; 計算で置き換える: Get(日付) ] [ ダイアログなし ]
関連レコードへ移動 [ テーブル: 「出庫」; 使用するレイアウト: 「出庫」 (出庫) ] [ 関連レコードのみを表示 ]
ウインドウの調整 [ 収まるようにサイズ変更 ]
ウインドウを選択 [ 名前: $oriWinName; 現在のファイル ]
フィールドへ移動 [ 受発注明細_受注::移行数量 ]
#
#移行数FDはクリアしておく
#
Loop
  Exit Loop If [ 受発注明細_受注::Id = "" ]
  フィールド設定 [ 受発注明細_受注::移行数量; "" ]
  ポータル内の行へ移動 [ 次の; 最後まできたら終了 ]
End Loop
レコード/検索条件確定 [ ダイアログなし ]


以上


(土屋)

2014-10-08

iPad のバーコードスキャンで入庫伝票を作成 ― FMEasy在庫のカスタマイズ

FileMaker Go 13 を使ったバーコード読み取り機能について

 FileMaker Go 13 にはバーコード読み取り機能が付属しています。
 専用のバーコードリーダーをお持ちであれば、もともとデスクトップからバーコード入力できますが、バーコードリーダーをお持ちでなくても、iPhone や iPad のカメラ機能でバーコードを読み取れるようになったのは嬉しいですね。



 外回りが多い営業さんや、倉庫管理をする際にも、モバイル操作でバーコード読み取りができれば、適用範囲も広がりそうです。

 今回は、弊社製品『FMEasy在庫』をカスタマイズすることによって、iPad から商品バーコード(JAN)を読み取りながら、入庫登録ができるようにする方法をご紹介します。


【開発レベル】
中級(レイアウト修正、テーブル修正、スクリプト修正について理解している)

【用意するもの】
1. 『FMEasy在庫 R1.0』または『FMEasy在庫 IWP/WD R1.5』
『FMEasy在庫』はこちらからダウンロードできます。
2. iPad/iPad Mini
3. FileMaker Go 13 (iPad にインストール)
FileMaker Go 13 はこちらからダウンロードできます。


注意:
1. 作業を始めるまえに、必ず『FMEasy在庫』のバックアップをお取りください。
バックアップのしかたはこちらを参照
2. 作業の際、修正場所を間違えると、既存の機能が動作しなくなる可能性があります。細心の注意を払い、ご自身の責任で行ってください。

『FMEasy在庫』に JAN 読み取り機能を追加する

 今回は、『FMEasy在庫 IWP/WD R1.5』を使って説明を進めていきますが、『FMEasy在庫 R1.0』開発版をご利用の方も、操作は同様となります。

1. 商品レイアウトに [JAN] フィールドを配置

 『FMEasy 在庫』には、[JAN] という名前の予備フィールドがあらかじめ用意されていますので、FileMaker Pro 12/13 を起動して開発者パスワードで EasyApp15.fmp12/EasyApp.fmp12 を開き、下図のように、お好みの位置に [JAN] フィールドを配置してください。



2. iPad からのJAN コード読み取り機能を商品レイアウトに追加


 iPad からから上図の[JAN]フィールドをタップしたときに、バーコード読み取り機能が走るようにします。

 スクリプトエディタを開き、「デバイスから挿入」スクリプトステップを使って[JAN]フィールドにバーコードが挿入されるように指定します。




 このとき、FileMaker Go で [JAN] フィールドをタップしたときのみ、このスクリプトが実行されるようにしますので、一行目の If 文に PatternCount(Get ( アプリケーションバージョン ); "Go") が指定されているところに注目してください。

 バーコードの読み取りが終わったら、次のフィールドに移動するように設計しておくと、システム運用時に使いやすくなるでしょう。

 これをスクリプトトリガとして、商品画面の [JAN] フィールドに設定します。
 イベント発生のタイミングは、OnObjectEnter (タップ時)になります。



 ここまでできたらレイアウトを保存します。

 FileMaker Go 13 で商品レコードにアクセスし、[JAN] フィールドをタップするとカメラに切り替わりますので、JAN のバーコードを読み取ると、JAN コードが登録されます。



 同じ要領で、JAN コードを商品マスタに登録していきましょう。



3. 入出明細テーブルに [JAN] フィールドを追加

 EasyData15.fmp12/EasyData.fmp12 のフィールド定義を開き、入出明細テーブルに [JAN] フィールドをテキスト型で追加します。



4. 入出明細の [JAN] から商品マスタの [商品ID]を呼び出すためのリレーションを追加

 EasyApp15.fmp12/EasyApp.fmp12 のリレーション定義を開き、「入庫レイアウト TOG」のセクションに下図のようにリレーションを追加します。

 入庫_商品#JAN TO の参照テーブルは商品テーブルです。
 商品と入出明細の [JAN] を関連づけます。



5. iPad 用の入庫管理レイアウトを作る

 EasyApp15.fmp12/EasyApp.fmp12 のレイアウトモードで新規レイアウトを作成します。
 FileMaker Pro 13 では、下図のように視覚的にレイアウトを作成できます。

 このとき、表示するレコードは「入庫」、レイアウト名は ipad 用の入庫画面とわかる名前を指定しておきます。

 また、ここでは縦置きを前提にしたレイアウト選択を行っていますが、運用時に縦置きと横置きとでどちらが使い勝手が良くなるかを事前によく検討しておくと、後々のレイアウト調整の手間が省けます。



 レイアウトのテーマや体裁はお好みで結構ですが、明細部分に [入出明細_入庫::JAN] フィールドを配置するのを忘れないようにしてください。

 たとえば、できあがったレイアウトを FileMaker Go 13 で閲覧してみると、以下のようになります。


 上図のように、[商品ID]と[JAN]フィールドは両方配置してください。

6. [JAN] のバーコード読み取りスクリプトを作り、OnObjectEnter のスクリプトトリガとして動作させる

 前述「2. iPad からのJAN コード読み取り機能を商品レイアウトに追加」と同じ操作になりますので、ここでは説明を省略します。
 
7. [商品ID]/[JAN] 相互呼び出しのスクリプトトリガを追加する

 iPad入庫画面で、[商品ID] を入力したら [JAN] を自動的に呼び出し、また[JAN]を入力したら [商品ID]を自動的に呼び出すようにスクリプトを作成します。

 『FMEasy在庫』のような分離モデルを採用したシステムの場合、レコード未確定状態ではフィールド定義のルックアップが正常に動作しないことがありますので、このスクリプトを考慮されるとよいでしょう。

備考: [仕入単価]、[単位]の呼び出しも用意しておくとより確実でしょう。



 スクリプトができたら、iPad入庫画面の [商品ID] と [JAN] のそれぞれに、OnObjectSave のタイミングでスクリプトトリガを設定します。



 これで準備が整いました。


 以降はデモビデオで実際の操作感をご覧ください。

『FMEasy在庫』に iPad から入庫登録をするデモ動画

商品を仕入れたという前提で、iPad入庫画面で商品のバーコードを読み取って JAN コードを入力しているところです。

 

 JAN コードの入力のタイミングで、[商品ID] が自動入力されます。
[数量]を入力すると、制御が次の行に移ることによって[JAN] 読み取りのスタンバイ状態になりますので、連続的な操作でバーコード読み取りができます。


 実際にやってみてわかったことですが、カメラ機能のフォーカスを合せるのに少々コツがいります。
 今回は手ブレ対策として、このように鉄アレイで本体を固定してバーコード読み取りをしました。



補足:
 このような iPad スタンドを使ってみると作業しやすくなるかもしれません。
 鉄アレイに比べれば見た目もグーーーンとおシャレですし、何と言っても角度を変えられますから^^。



※『FMEasy在庫』をカスタマイズするには、開発版が必要となります。


参考記事:
FileMaker Go による iPad/iPhone 向けソリューションの開発ヒント集


『FMEasy在庫』カスタマイズ関連記事:
受注・受注残管理モジュールを作る ― FMEasy在庫のカスタマイズ (1)
受注・受注残管理モジュールを作る ― FMEasy在庫のカスタマイズ (2)



2014-10-07

土屋企画のソフトウェア販売サイトのご案内

 本稿土屋企画の製品購入サイトの説明となります。購入サイトをご利用いただくには、こちらをクリックして以下のページを表示します。


注:
本システムは FileMakerインスタントWeb(IWP)と SQL Server 2000 により開発・運用されています。


1. 新規購入と登録ユーザによる購入

上図のページで新規のお客様は“新規購入”ボタンをクリックしてください(以下、「2-A 新規購入」参照)。土屋企画製品の登録ユーザの方は“ログイン”ボタンをクリックし、次の画面で[アカウント名]と[パスワード]を入力して“ログイン”をクリックします(以下、「2-B 登録ユーザによる購入」参照)。

2-A. 新規購入

“新規購入”ボタンをクリックすると、下記のページが表示されます。

  1. まず「お客様情報」欄の各項目に必要な情報を入力してください。*が付いている項目は入力が必須です。
  2. 次に希望の商品を「買い物カゴ」タブに入れます。[新規購入]タブ内の商品の右端にある“カゴへ”をクリックすると、その商品が「買い物カゴ」タブ内に表示されます(以下、「3.買い物カゴ」参照)。

    注:
    [製品名]をクリックすると、製品の案内ページが表示されます。

2-B. 登録ユーザによる購入

ログインに成功する以下のページが表示されます。ウインドウ右上部にある“製品購入申込”ボタンをクリックします。

「購入/アップグレード ― 入力」のページに、お客様の情報が入力された状態で表示されます。
必要に応じて「お客様情報」欄の項目を変更してください。 本システムにログインするときに必要となる[アカウント名]および[パスワード]もこちらのページで変更が可能です。

本ページ下部には4つのタブがあります。
タブ 説明
アップグレード アップグレード可能な製品がある場合、表示される
新規購入 新規購入可能な製品が表示される
お得意様優待 優待販売がある場合、表示される
買い物カゴ 他の3つのタブ上にある“カゴへ”ボタンで選択された製品が表示される


■アップグレードタブ

[対象ライセンス]が複数ある場合、つまりアップグレード可能なライセンスが複数ある場合、
目的のライセンスをクリックして選択すると、右にアップグレード可能な製品が表示される

アップグレード可能な製品がある場合は、「アップグレード」タブ内にその製品が表示されます。アップグレードする製品の右にある“カゴへ”をクリックすると、その商品が「買い物カゴ」タブ内に表示されます(以下、「3.買い物カゴ」参照)。

注:
[対象ライセンス]が複数行ある場合、アップグレードするライセンスをクリックして選択してください。選択したライセンスに対するアップグレード可能な製品が右側に表示されます。

■新規購入タブ
上記「2-A 新規購入」参照。

■お得意様優待タブ
お得意様を対象とした優待販売製品が表示されます。製品の右にある“カゴへ”をクリックすると、その製品が「買い物カゴ」タブ内に表示されます(以下、「3.買い物カゴ」参照)。
注:
優待販売は期間限定の為、本タブには何も表示されないことがあります。

3. 買い物カゴ

上述の各タブにある“カゴへ”ボタンをクリックすると、その製品が[買い物カゴ]タブ内に移動します。他にも購入する製品がある場合は、適切なタブをクリックして購入する製品の“カゴへ”ボタンをクリックして、その製品を[買い物カゴ]タブへ移動します。購入する製品を登録し終えたら、“確認画面へ”ボタンをクリックします。 


項目説明

項目 説明 補足
クリックすると数量が1増す アップグレード製品の場合、本ボタンは動作せず
クリックすると数量が1減る アップグレード製品の場合、本ボタンは動作せず
× 製品を買い物カゴから削除する
確認画面へ 確認画面へ移動

4. ご注文確認ページ

 本ページで注文内容をご確認頂き、修正が必要であれば“前画面へ戻る”を、修正が不要であれば“注文を確定する”をクリックしてください。 “注文を確定する”をクリックすると、注文完了ページが表示されます。



5. 注文完了ページ

注文が完了しました。お客様には注文の確認のメールが自動送信されます。



以上



【IWP関連記事】

【IWP関連の製品・サービス】



2014-10-02

土屋企画のCRM(ユーザサポート)サイトのご案内

TPC ― Customers Relationship & Support サイト は、土屋企画の製品・サービスをご利用のお客様に、製品・サービスの購入履歴情報、サポート履歴情報、お得意様限定のサービスやファイルダウンロードを提供するために設けられました。

注:
本システムは FileMakerインスタントWeb(IWP)と SQL Server 2000 により開発・運用されています。 


ご利用に際しては、こちらから“ログイン”ボタンをクリックしてください。

主な機能は以下の通りです。


B-1 購入履歴タブ

お客様の製品・サービスの購入履歴と、付属のサポートのインシデント情報が照会できます。



項目説明
項目 説明 補足
ご購入日 製品またはサービスの購入日 この日付がサポート開始日となります。
サポート期限 サポートの終了日
Inc/単位 製品付属のインシデントまたはサポートを受けられる時間と、その単位
  • 上図Aでは、240分(4時間)のコンサルティングを受けることができます。
  • 上図Bの 「売上猫くん」の[Inc]は空欄ですが、この場合、期限前であれば原則として回数/時間による制限無く、メールにより質問をして頂けます。
  • 上図Cの「FMEasy在庫 R1.0 開発版」は、ご購入から365日間、2件までメールにより質問をして頂けます。
前繰越 前月の未消化時間の繰越分 現在、繰越はコンサルティングのオプションでのみ有効です。
消費計 消費した[Inc]
[Inc]の残
翌繰越 翌月へ繰り越す未消化時間
有効 サポートの有効/無効を表示


B-2 サポート履歴タブ

過去に受けたサポート/コンサルティングの履歴を照会できます。 [消費Inc]はサポート/コンサルティングで消費したインシデント数または時間が表示されます。



B-3 特典タブ

個々のお客様限定の特典または製品付属の特典(ファイルダウンロードやサービスへのアクセス)をご利用になれます。 
 2014年10月現在、土屋企画の製品・サービスをご購入頂いたすべてのお客様は、『FMEasy在庫 IWP/WD R1.5』のインスタントWeb及びWebDirectの体験サイトをご利用頂けます。

以上 


【IWP関連記事】

【IWP関連の製品・サービス】



2014-08-18

FileMaker Go による iPad/iPhone 向けソリューションの開発ヒント集

 FileMaker Pro で開発したソリューションは、ほぼそのまま FileMaker Go ソリューションとして iPhone や iPad で使用できます。
 今回は、今後 FileMaker Go 向けのデータベース開発を検討している方向けに、FileMaker Go の特徴と効率のよい開発方法のまとめ的なものを作成してみました。

 FileMaker Go 自体は App Store から無料でダウンロードして iOS デバイスにインストールできます。


FileMaker Go 12/13/14 機能比較

 最新リリースから順にご紹介します。

FileMaker Go 14

無料ダウンロード: FileMaker Go 13


重要:接続について

 FileMaker Server 14 でホストされるデータベースに FileMaker Go からアクセスする場合、デフォルトでは 1 接続、FileMaker Pro 14 Advanced に FileMaker Go からアクセスする場合は、デフォルトでは 5 接続までがサポートされています。

 接続人数を増やす場合は、"同時接続"の購入が必要となります。

 同時接続とは(PDF)


FileMaker Go 14 で利用できるようになった機能

FileMaker Go 14 の公式紹介ビデオを見ながら確認するとわかりやすいです。
 以下、タイムスタンプのあるものは、この動画のタイムスタンプを表しています。



1. 0:09 新しいユーザインタフェース

 iOS8 スタイルにデザインを一新。
 ソリューションのフルスクリーンで表示、FileMaker Go のメニューバーなども非表示にすることもできる。
 頻繁に利用する操作は左右のアイコンに整理されるのでスクリーンを有効活用できる。


2. 起動センター

 ソリューションを視覚的に整理。
 ソリューションのアイコンを割り当てることができ、カスタムアイコンも追加できる。
 起動スクリーンに固定することもできる。




3. 8:50 バーコードの挿入

 スクリプト不要でバーコード読み取りを行える。
 

4. リッチテキストの編集

 テキストのサイズ、色、フォントを選択したり、太字、下線、イタリックが指定可能。


5. 2:41 画面方向の設定

 デバイスの縦置き、横置きのときにスクリーンの動作をスクリプトで定義できる。

 
6. 2:52 署名キャプチャの機能強化

 レイアウトのボタン指定時、単一ステップで署名取り込みができるようになっている。
 ボタン操作時にプロンプトメッセージを表示させることもできる。


7. 3:09 ビデオとオーディオの再生コントロール

 ビデオをオブジェクトフィールドでもフルスクリーンでも再生可能。
 ビデオの再生中でもレイアウトを操作可能。
 新しいスクリプトで、ビデオまたはオーディオの再生を開始および停止するポイントを自動化できる。


8. 7:32 タッチキーボードの有効化

 オンスクリーンキーボードの表示/非表示をスクリプトで制御。
 
9. 垂直スクロールバー

 スクロールバーはフィールドでスクロールするときにだけ表示される。


FileMaker Server 14 と FileMaker Go13/14 のハイブリット運用時の注意点

 FileMaker Go 13/14、および FileMaker Server 14 のハイブリッド環境でデータベースを運用したい場合は、接続制限や機能制限に十分お気をつけください。
こちらの資料が参考になります。

FileMaker Server 14 ホストとクライアントの互換性チャート(英語)


重要: FileMaker Go 12 を使って FileMaker Server 14 でホストされているデータベースにアクセスすることはできません。




FileMaker Go 13

無料ダウンロード: FileMaker Go 13

※ 2015 年 5 月 13 日に FileMaker 14 が発売されたことにより、FileMaker Go 13 の提供は近いうちに終了する予定です。
Filemaker Go 13 が必要な方はお急ぎください。


重要:接続について

 FileMaker Pro 12/13 をホストにして、FileMaker Go からアクセスする場合、最大 5 接続までをサポートしています。
 FileMaker Server 13 でホストされるデータベースに FileMaker Go からアクセスする場合、デフォルトでは 1 接続、FileMaker Server 13 に FileMaker Go からアクセスする場合は、デフォルトでは 5 接続までがサポートされています。

 接続人数を増やす場合は、"同時接続"の購入が必要となります。

 同時接続とは(PDF)


 後述の、「FileMaker Server 13 と FileMaker Go12/13 のハイブリット運用時の注意点」のセクションも併せてご覧ください。


FileMaker Go 13 で利用できるようになった機能

1. スワイプによるレコード移動(スワイプジェスチャー)

 指1本のスワイプジェスチャー --- スライドコントロールでパネルを変更
 指2本のスワイプジェスチャー --- レコードを変更

 ジェスチャー動作中はアニメーションが表示されます。

 FileMaker 社のサンプル動画(英語)



2. 7つのタッチキーボードタイプ

 フィールド別に適したキーボードが表示されます。

電話
電子メール
URL
数字10キー
数字キーパッド
数字と句読点
ASCII

 FileMaker Go に適したキーボードレイアウトの特定方法は、以下のページが参考になります。

 FileMaker Go での特定のデータ型に対応したキーボードの使い方(英語)
 How to use specific data type keyboards with FileMaker Go


3. バーコードの読み取り

 スクリプトステップ「デバイスから挿入」を使い、iPad や iPhone のカメラ機能からバーコードスキャンできます。

FileMaker 社のサンプル動画(英語)
より正確な動作コントロールを FileMaker Go の iOS ソリューションに導入する方法
How-to Include Precise Controls in your iOS Solution for FileMaker Go




4. スライドコントロール

 フォームに複数のスライドパネルを追加でき、変更可能なコンテンツ領域を作成可能。

 FileMaker 社のサンプルビデオ - スライドコントロール




5. ポップオーバー/タッチテーマ

 フィールドのグループ化や、リンクの追加、その他詳細の表示
 テーマデザインは 5 種類から選択可能

 [テーマの変更]ダイアログボックスで、デバイス用に設計されたタッチテーマのいずれかを選択。
 タッチテーマではMS Pゴシックとヒラギノ角ゴProN W3のフォントが使用される。

 
FileMaker Server 13 と FileMaker Go12/13 のハイブリット運用時の注意点

FileMaker Go 12/13、および FileMaker Server 13/FileMaker Server 13 のハイブリッド環境でデータベースを運用したい場合は、接続制限や機能制限に十分お気をつけください。
こちらの資料が参考になります。

FileMaker Server 13 ホストとクライアントの互換性チャート




 FileMaker Go 向けのデータベースを開発する際は、あらかじめレイアウトの操作性やパフォーマンスなどを考慮する必要がでてきます。

 ここでは、できるだけ手間をかけずに開発するヒントと開発に役立ちそうなリソースをご紹介します。


効率のよい開発方法 ― Starter Solution


 FileMaker Pro 12/13 の「ファイル(F)」メニューに用意されている「Starter Solution から新規作成」コマンドを使うと、汎用的なソリューションのテンプレートを作成できます。



 試しに FileMaker Pro 12 の Starter Solution でタスクデータベースを作成してみます。


 すぐにタスク.fmp12 というデータベースができあがります。


 このデータベースには、すでに iOS 向けに最適化されたレイアウトがいくつか登録されています。


 既存の iOS 向けレイアウトを修正したり、複製したりしてデータベース設計を行うことにより、開発を効率化することができます。

 以下は、iPad 向けに最適化されたタスクフォームです。
 iPad の表示領域に合わせ、フィールドの幅を伸縮できるようにするには、インスペクタの自動調整機能でアンカーを設定します。


 FileMaker Pro 12 の Starter Solution に用意されている iOS 向けのレイアウトは、縦置き向けのみが用意されています。
 よって、横置き向けのレイアウトが必要な場合は、別途作成する必要があります。

 FileMaker 社のサンプルビデオ - FileMaker Go 12 iPad 用レイアウトの作成




FileMaker Pro 13 の場合

 FileMaker Pro 13 では、デバイス別に最適化されたレイアウトを簡単に作成できます。
 新規レイアウトを作成する際に、以下のような選択ダイアログが表示されます。


 「タッチデバイス」を選択すると、各種モバイルデバイスに最適化されたレイアウトサイズの一覧が表示されますので、その中から作成したいサイズのデバイスを選択します。

 また、画面左下のアイコンを切り替えることにより、縦置き、または横置きレイアウトを選択できるようになっています。

注意:
 横置き向けに最適化されたサイズのレイアウトは、実際に FileMaker Go で縦置きにブラウズした場合、レイアウトに情報が入りきらない可能性があります。

 あらかじめ縦置き向けにレイアウトを作成するのが手間のかからない方法ですが、横置きで情報を見せる必要がある場合は、縦置き用レイアウト、横置き用レイアウトの両方を用意して対応する必要があるかもしれません。



FileMaker Go 12

ダウンロード版配布終了。
これから使用をご検討中の方は、FileMaker Go 14 をご検討ください。

FileMaker Go 12 で利用できるようになった機能

1. 以下のグラフタイプをサポート
  縦棒グラフ
  積み重ね縦棒グラフ
  正負縦棒グラフ
  横棒グラフ
  積み重ね横棒グラフ
  円グラフ
  線グラフ
  面グラフ
  散布図
  バブルグラフ

2. リモートコンテナのサポート
 オブジェクトフィールドで外部参照を行うことで、オブジェクトフィールドの中にデータ埋め込みができます。
  カメラ
  オーディオ(録音)
  署名
  写真
  音楽(ミュージックイブラリ)
  ファイル

 実際の操作方法は、後述の「より正確な動作コントロールを FileMaker Go の iOS ソリューションに導入する方法」の動画をご覧ください。

3. タブパネルで条件式書式を設定できる

4. レコードのエクスポート
 ほぼすべてのエクスポート機能をサポート(ファイルフォーマット制限あり)


参考:FileMaker 社の FileMaker Go 12 新機能紹介ビデオ(英語)
What's New in FileMaker Go 12?



FileMaker 社が提供しているリソースを使ってじっくり開発

 FileMaker Go (iPad/iPhone 用 FileMaker アプリ)向けにデータベースを設計する際に参考になるリンク集

a) FileMaker Go リソースセンター

FileMaker 社が提供する FileMaker Go リソースセンターから、FileMaker Go 向けのソリューションの開発方法を学べます。

FileMaker Go リソースセンター



b) FileMaker Go テクニカルブリーフ(FileMaker Pro 12 向け。13 は見つからず)

 FileMaker Go 向けのソリューションを開発する際の OS 条件、から機能的な制約、特徴などが簡潔にまとめられた PDF ファイルです。


FileMaker Go テクニカルブリーフ


c) FileMaker ® Go 13 デベロップメントガイド


1) データベースの定義
2) インポート
3) .fmp12、XML、または Excel .xls 形式へのエクスポート
4) スペルチェック
5) プラグイン
6) レイアウトモードとプレビューモード

 あたりは、FileMaker Go では使えませんので、開発時に特に気を付ける必要がありますね。

FileMaker® Go 13 デベロップメントガイド




参考になりそうなサードパーティ製の無料ツール

a) FileMaker Go Cheat Sheets

 Kcunning Consulting 社で配布されている FileMaker Go 開発早見シートです。
 2 ページ構成の PDF ファイルですぐに要点を抑えられるように工夫されています。



 FileMaker Go Cheat Sheet (iPad Edition) (英語)


b) FileMaker Go ToolKit

 Soliant Consulting 社で配布されている、無料の FileMaker Go 用ツールキット。
 FileMaker Pro 11 版向けに作られたものですので、FileMaker Pro 12/13 で使用する際はファイル変換が必要となります。

 モバイルデバイスの要件に合わせたデータベース設計時のヒントも示されていますので、大変参考になります。

 日本語版も配布されていますね。



FileMaker Go Toolkit


c) FileMaker Go Training Tool

 Richard Carlton Consulting 社で配布されている FileMaker ファイル形式のトレーニングツールです。
FileMaker Go 向けの開発ヒントが画像りで解説されています。
英語版です。



 FileMaker Go Training Tool (英語)






参考になりそうなビデオ:
FileMaker プラットフォームでビジネスソリューションを手早く作る
Create business solutions quickly with the FileMaker platform (英語)


参考記事:
iPad のバーコードスキャンで入庫伝票を作成 ― FMEasy在庫のカスタマイズ



2014-07-27

受注・受注残管理モジュールを作る(2)テーブル、リレーション、レイアウトの設計 ― FMEasy在庫のカスタマイズ

 受注残は面倒なので脇に置いておき、まず受注モジュールを作ります。
 作業にあたり、カスタマイズする『FMEasy在庫 R1.0/R1.5』は分離モデル(注)を採用しているため、作業するファイルが2つ ― EasyApp15.fmp12とEasyData15.fmp12 ― あることに注意してください。

 EasyData15.fmp12 は業務データ用のファイルで、原則として業務用テーブルに加え、業務用テーブルの計算フィールドに使用する最小限のリレーションを含みます。
 EasyApp15.fmp12 はアプリケーション/システム用のファイルで業務用テーブルは含まず、アプリ用のテーブルとリレーション、レイアウト(画面や帳票)、さらに業務ロジックを組み込んだスクリプトを含んでいます。

 作業に際しては、このことを念頭に混乱のないよう作業を進めてください。

注:『FMEasy在庫 R1.0/R1.5』は テンプレートですので、データファイルとアプリファイルの分離度は高くなっていません。
 分離度を高めるためには、データファイル(EasyData.fmp12)では計算フィールドやフィールド制御は極力行わないように設計します。

受注モジュールのテーブル、リレーション、レイアウト、スクリプトを作る

 受注モジュールは出庫モジュールと類似していますので、出庫関連のテーブル、リレーション、レイアウト、 スクリプトをある時はコピー・変更し、あるときは直接変更し、またあるときは変更することなく共用します。

 『FMEasy在庫 R1.0/R1.5』は、最小限の労力で他の類似モジュールを追加できるよう設計しています。

EasyData15でテーブル/フィールドを作成・定義する

 まずはテーブルから作成します。EasyData12.fmp12の出庫/入出明細テーブルを下図のように選択し、コピペし、それぞれの名称を「受注」と「受発注明細」に変更します。

 入出明細テーブルは、出庫明細と入庫明細の共用テーブルであるため、今後発注モジュールに対応することを想定して「受発注明細」という名称にしておきます。

※本稿では原則として発注には触れませんが、発注関連モジュールも開発する場合、発注関連のテーブル/リレーション/スクリプトも作成しておく方が効率的です。

図1.出庫、および入出明細テーブルをコピー&ペーストして、受注、および受注明細テーブルを作る

 2テーブルの名称を変更したら、その中のフィールド名を変更(図3/4)。

注:
  • フィールド名は後述の図3と図4に準じること(変に変更すると、スクリプトの変更が大変になる)
  • フィールドの変更・削除は極力しない→動作しなくなる
  • 入庫関係のフィールド名は、発注モジュールを作成する場合に備えそれらしく変更しておく(入庫No→発注No)
なお、受注用のリレーションが無いと設定できない計算フィールドは、下記のリレーションシップを設定後に定義します。

EasyData15でリレーションシップを作成する

 EasyData15.fmp12 のリレーションシップは出庫TOG(Table Occurence Group)をコピペし、出庫TOGに準じて下図のオレンジのTOG のように設定します。
なお、、リレーションシップも複数選択してペーストができます。

図2.出庫レイアウトTOG をコピー&ペーストして受注レイアウトTOGをつくる

 リレーションシップを正しく設定すると、<不明>あるいは<フィールドが見つかりません>と表示されていた計算フィールドを定義できるようになりますので、これも出庫/入出明細の計算フィールドに準じて定義していきます。

図3.リレーションシップを設定後、受発注明細テーブルのフィールドを再定義

図4.リレーションシップを設定後、受注テーブルのフィールドを再定義

EasyApp15でリレーションシップを作成する

 EasyApp15.fmp12 のリレーションシップも出庫TOG(Table Occurence Group)をコピペし、出庫TOGに準じて下図のように受注レイアウトTOGを設定します。

 赤枠の部分の「得意先List」と「出庫商品List」はUIテーブルとのリレーションシップであるため各レイアウトから共用できるので、受注側での作成は不要となります。
 また、濃い青の3つのTO(Table Occurence)はIWP(インスタント)専用であるため今回は作成しませんが、受注モジュールをIWPに対応させる方は作成する必要があります。

 なお、TOの名称は下図に準じるようにしてください(変な名称を付けると、スクリプトの変更が大変になってしまいます)。


レイアウト/値一覧を作成する

 受注用レイアウトは EasyApp15 側でのみ作成します。出庫レイアウトをレイアウトモードで表示し、[レイアウト]―[レイアウト複製]を選択します(一種のコピペ)。
図の赤枠内のように、レイアウト名を「出庫のコピー」から「受注」に、レイアウトテーブルを「出庫」から「受注」に変更します。


 この段階ではフィールド/ポータルは出庫または入出明細のものが貼られているので、フィールドをダブルクリックしながら、受注/受注明細関連のものになるように変更していきます。
 また、出庫No/出庫日、出庫などのレーベル名も適当なものに変更しましょう。また、変更漏れがないように注意するようにしてください。

 値一覧は、伝票区分、担当ID、得意先ID、商品ID、請求部署ID、数量、単位の各フィールドで使用されているが、変更する必要があるのは、伝票区分と請求部署IDに割り当てられているもののみ。

 ここまで、慣れている人であれば1~2時間でできると思われますが、次のスクリプトからがかなり作業が複雑になってきます。

注:
 受注一覧、受注伝票の各レイアウトも実務では必要になると思われるので、前者については出庫一覧レイアウトを、後者については入庫伝票レイアウトを上記の要領でコピーして作成してください。

スクリプトを変更する

 さて、出庫レイアウトをコピーして作った受注レイアウトは以下のようになります。
 ボタンに割り振られたスクリプトだけではなく、フィールド/レイアウト等に割り振られたスクリプト(赤枠部)もひとひとつ変更が必要かどうか吟味し、必要があれば変更を加えていきます。

 スクリプト変更はかなり骨が折れる作業で、下手に変更を加えると他のモジュールに障害を与えることがあるので慎重に作業してください。 変更後のテストも十分に行う必要があります。



 下表はスクリプトが割り振られたオブジェクトの一覧です。
 チェックマークが付いてるものは変更が必要になります。
*1 『FMEasy在庫 IWP/WD R1.5』でのみ利用可。変更難度高し。“選”ボタンを受注対応させない場合、レイアウトから削除すること。


以上

 
(土屋)

2014-07-18

受注・受注残管理モジュールを作る(1)概要と開発方針― FMEasy在庫のカスタマイズ

 弊社に寄せられる各種問い合わせで多いのがモジュールの追加 ― 「売上入金残管理モジュールを作りたい」、「受注残管理をしたい」といったものです。
 これらの質問はあまりにカバーする範囲が広く、また漠然としているので、回答も漠然としたものになります。

 そこで今回から数回にわたり、『FMEasy在庫 R1.0/R1.5』をカスタマイズし、受注・受注残管理モジュールを付加する方法の概要ご説明したいと思います。 

機能概要

  • 受注管理
  • 入力支援機能(FMEasy在庫 IWP/WD R1.5 のみ)
  • 受注伝票毎及び得意先毎の受注残管理 
  • 受注明細レベルで分納に対応する


用語

  • 在庫 ― 商品の入庫数計-出庫数計
  • 受注残 ― 商品の受注数計-出庫数計
  • 可用在庫 ― 在庫-受注残


注:
 弊社では商品の[在庫]から[受注残]を差し引いた値を[可用在庫]と呼んでいます。意味としては、倉庫に物理的に存在するだけではなく、買い手が決まっておらず(受注残となっていない)、得意先から注文があればすぐに出庫できる状態にある在庫です。
 逆に、倉庫に物理的に存在していても、買い手が決まっていて何らかの事情により倉庫に留め置かれている在庫は、出庫不能な在庫(非可用在庫)となります。


画面イメージと移植する機能

 弊社が2004年6月にリリースした「FlexManager R1.5」という製品の受注・受注残モジュールの一部を『FMEasy在庫』に移植します。下図はそのオールド製品の画面です。


【受注】

受注画面
 受注情報を入れる画面。この画面から必要最低限の機能を『FMEasy在庫』に移植します。


【受注残管理】
受注残管理画面

 受注残管理画面。受注残管理だけではなく、受注情報を利用した発注処理、その発注に対する入荷情報の表示(画面の[発注数(内入荷)])にも対応していますが、今回は発注・発注残管理機能には触れません。この画面から、受注残管理の必要最低限の機能を『FMEasy在庫』に移植していきます。


【分納管理】

分納管理画面

 受注商品データを売上に移行するための画面。新規に売上伝票を作成して(“新”ボタンを使用)そこへ受注データを移行することも、既存の売上伝票([売上No]をプルダウンメニューから指定)の売上明細に受注データを付加することもできます。なお、『FMEasy在庫』では売上モジュールはなく、代わりに出庫モジュールへ移行することになります。

開発方針

 「FlexManager 1.5」は結構機能がテンコ盛なので、複雑になりすぎないよう、受注残管理に焦点をあてて、必要最低限の機能を移植したいと思います。 (次回へ続く)



(土屋)

2014-06-30

インスタント Web/WebDirect対応在庫管理テンプレート『FMEasy在庫 IWP/WD R1.5』を本日リリース

 本日、『FMEasy在庫 IWP/WD R1.5』(フリー版)のダウンロードと販売を開始。


 ホントは昨年末にインスタントWeb(IWP)に対応の「FMEasy在庫 IWP R1.5」としてリリースする予定が、同時期に IWP の後継WebDirect(WD)を含む FileMaker Pro 13 がリリースされ、「タイミング、悪!ヽ(`Д´)ノ」、 と思いつつ、「WDにも対応させよう」と思い直し、艱難辛苦の末、今日を迎えることができました\( ̄▽ ̄;)/。


 以下、 本製品についての若干のご説明。


製品概要


  『FMEasy在庫 R1.0』 に検索・入力支援機能を付加し、インスタントWebとWebDirectに対応させたのが本製品です。


製品種類

  • フリー版(無料) ― データ入力無制限
  • 開発版(価格:¥54,000、税込) ― FileMaker Pro 12/13 Advancedにより開発可

 本製品リリース後も、在庫管理テンプレート『FMEasy在庫 R1.0』(フリー版/開発版 ¥26,250)は引き続きダウンロード/購入可。

開発方針


こんな感じで開発してみました。

  1. インスタントWeb(IWP)/WebDirect(WD)の両方に対応させる
  2. 入出庫・在庫の基本機能は『FMEasy在庫 R1.0』をそのまま踏襲
  3. FileMaker/IWP/WD間で、できるだけレイアウトを共有する(下記※参照)
  4. 検索・入力支援機能 ― 取引先または商品のレコードが千~1万件を超す場合、FileMaker標準の 関連フィールドによる値一覧は実用に耐えない(特にWeb環境下) ― ので、検索・入力支援機能を搭載する(後述)
  5. 検索・入力支援機能の流用性 ― 本製品をカスタマイズして売上/入金/仕入/支払/受注/発注等々の機能を付加する場合、取引先、得意先、仕入先、商品の入力が必要となるが、その時に検索・入力支援機能を簡単に流用できるように設計する
  6. 検索・入力支援機能は FileMaker/IWP/WD の3プラットフォームで利用できること
  7. WDの実行速度を落とさないように、レイアウトテーマは前版「FMEasy在庫 R1.0」の「レトロ」から「クラッシック」に変更 ― この為、本製品R1.5と前版R1.0の画面がかなり異なっている

※レイアウト共有で工数減?

 レイアウトを共有するとレイアウトだけでなくスクリプトも共有できる可能性が高まり、工数削減につながりそうだが、レイアウトを弄る度にFileMaker/IWP/WD、3つのプラットフォームでレイアウトのズレを気にしなければならなくなり、実際の工数減に繋がるかは微妙です。
 おおざっぱな方 ― 多少、オブジェクトが被ったりズレたりしても気にしない人はレイアウト共有し、細かいことが気になる人はレイアウトを分けた方が幸せかもしれないです。

 それともかく、本製品はIWPの入力更新系画面を除き、できるかぎり3プラットフォーム間でレイアウトを共有しています。

検索・入力支援機能


本製品のキモはなんと言っても検索・入力支援機能。
下図はWebDirect環境のChromeの画面。

[取引先の検索・入力支援機能]

※取引先画面で検索支援機能を使う
“検索支援”クリック検索支援画面が開く→取引先名を入力して“表示”表示された一覧から目的とする取引先を選択クリック元の取引先画面に戻り選択した取引先が表示される。

※出庫/入力画面で入力支援機能を使う
“選”クリック入力支援画面が開く得意先または仕入先名を入力して“表示”表示された一覧から目的とする得意先/仕入先を選択クリック元の出庫/入庫画面に戻り選択した得意先/仕入先が入力される

注:実行元の画面により、検索・入力支援画面に表示されるボタン、表記、機能が若干異なります。



[商品の検索・入力支援機能]

※商品画面で検索支援機能を使う
“検索支援”クリック検索支援画面が開く商品名を入力して“表示”表示された一覧から目的とする商品を選択クリック元の商品画面に戻り選択した商品が表示される

※出庫/入力画面で入力支援機能を使う
明細の“選”クリック入力支援画面が開く商品名を入力して“表示”表示された一覧から目的とする商品を選択クリック元の出庫/入庫画面に戻り選択した商品が入力される
  • 実行元の画面により、検索・入力支援画面に表示されるボタン、表記、機能が若干異なります。
  • 入力支援画面で[伝票単価][数量]を入力すると、その値が入出庫明細の単価と数量に入力されます。



Blog連動


 いくつかの問題もあります。 例えば、インスタントWeb(IWP)/WebDirect(WD)では満足な印刷ができない。これは FileMaker Serverの問題ですが、回避策がないこともないです。
 それは、ネットワーク上に印刷専用の FileMaker クライアント(FileMaker Robot)を常に起動しておき、IWP/WDクライアント(ブラウザ)から印刷リクエストがないか常に監視し、リクエストがあればFileMaker Robotから印刷を行うようにスクリプトを作成し、そのスクリプトを常に実行した状態にしておきます。

 別の問題として、IWPではダイアログボックス表示のスクリプトステップが使用できないため、レコード削除実行時に確認のダイアログが表示されずに即刻レコードが削除されてしまう、ということがある。

 また、 WDは各種ブラウザとの互換性が低いがFileMaker クライアントの再現性が高いのでインストラネットで、IWPは各種ブラウザとの互換性が高いので不特定多数対象のインターネットで使用したいが、WD/IWPの同時使用は可能か…等。 こうした問題・課題について、できるだけ本Blogで取り上げていきたいです。


サポート

前版インシデント2→今版5インシデント(365日間有効)に!

 ご質問については、Blog 記事として回答させて頂くこともあります →例1とか例2とか。


講習とか


 本製品をベースに在庫管理を学んでみたいという方はこんなのとか、IWPをやってみたいという方はこんなのとか、WDとはなんぞやという方はこれとか、あります。

 それでは足りない!、開発支援とかコンサルティングを!という方はこちら

 その他の在庫関連記事を読む
 その他の WebDirect 関連記事を読む

(土屋)

2014-06-24

『FMEasy在庫 IWP/WD R1.5』 のクライアント強制フィールドの使用


『FMEasy在庫 IWP/WD R1.5』のユーザの方へ

 『FMEasy在庫 IWP/WD R1.5』はFileMakerクライアント、インスタントWeb(IWP)、WebDirect(WD)の3つのプラットフォームで動作する在庫管理テンプレートですが、本製品のMain Menu画面には[クライアント強制]というフィールドがあり、クリックすると「0:FM、1:IWP、2:WebDirect」のいずれかの値を選択することができます。 


本製品は「0:FM」が選択されていればPC上のFileMakerクライアントとして、「1:IWP」ならインスタントWeb環境に接続されているブラウザとして、「2:WebDirect」であればWebDirect環境に接続されているブラウザとして、実際のプラットフォームとは関係なく、動作します。 

 たとえば、PC上の FileMaker Pro 13 を使用し、『FMEasy在庫 IWP/WD R1.5』にアクセスする場合、デフォルトでは上記フィールドの値は「0:FM」が選択されています。 この時、“取引先へ”をクリックすれば、FileMakerクラインアント用に用意された以下の画面が表示され、これが本来の正しい動作です。

では、 上記のMain Menu画面の[クライアント強制]を「1:IWP」に変更して“取引先へ”をクリックするとどうなるでしょうか? その場合、インスタントWeb(IWP)用に用意された下記の画面が表示されます。


つまり、実行環境はFileMaker Pro 13であるにも関わらず、インスタントWebにアクセスしているブラウザの動作をシミュレートできます。 これは、主としてIWPアプリの開発時、デバッグ環境が存在しないため、FileMaker Pro Advanced にブラウザを動作をシミュレートさせ、デバッガに利用するための仕組みです。 よって、開発時以外は、[クライアント強制]の値は変更しないようにしてください。

注:
  • 本機能は他のプラットフォームをある程度はシミュレートしますが、プラットフォーム間でサポートするスクリプトステップや機能が異なる為、完全にシミュレートするものではありません。
  • 開発時のFileMakerクライアント上での「1:IWP」指定(IWPブラウザのシミュレート)と「2:WebDirect」指定(WebDirectシミュレート)を前提としています。その他の指定はお勧めできません。
以上


【関連リンク】
FMEasy在庫のカスタマイズ関連記事リスト