FileMaker(ファイルメーカー)」カテゴリーアーカイブ

ファイルメーカーで動的値一覧を使う

ファイルメーカーの動的値一覧を簡単な例でご紹介します。
売上伝票を作成する時、顧客別担当が決まっている場合です。
FileMaker Ver19/Windows10 PCを使用しました。

動的値一覧は「値一覧を使って他のテーブルを制御」する方法です。
担当というフィールドを値一覧にします。

(1)顧客テーブルの作成
売上伝票は顧客に対して発行しますので、「顧客名」、顧客を特定するのは「顧客コード、」、値一覧となる「担当」という構成にします。
各フィールドの書式は左のスクリーンショットの様にしました。
顧客コードは頭ゼロのSerial番号、担当フィールドが担当別の番号になります。
サンプルは、顧客コード001から003までが担当者1番、004から006までが担当者2番としました(下記スクリーンショット参照下さい)。

(2)売上伝票の作成
売上伝票は「誰」が「どこ」に売るかですが、誰=担当者、どこ=顧客です。
そして、レコード発番毎に売上伝票番号を繰り上げる様にします。

「担当」、「顧客コード」、「顧客名」と伝票番号を格納する「売上伝票番号」、値一覧をセレクトする「顧客」というフィールド持つ「売上伝票」というテーブルを作ります。

(2)リレーションを設定します
値一覧でフィールドの値を引き出すために二つのテーブルに担当=担当リレーションをかけます(左のスクリーンショットを参照下さい)。
伝票作成者は担当で自分の番号を選択します。
その時、担当顧客だけを表示するようにします。
(3)売上伝票レイアウトの作成
テーブルを表示する売上伝票テーブルというレイアウトを作ります。
主に表示させるテーブルは売上伝票です。
「売上伝票番号」、「担当」、「顧客」の3個のフィールドをレイアウトに配置します。
レイアウトに配置した「担当」はドロップダウンキーを使って、クリックすると顧客テーブルの担当の値一覧を参照するようにします。
同じく、「顧客」フィールドをセレクターとし、クリックしたときに顧客テーブルの値一覧を参照できるようにします。

値一覧は二つ作ります。
担当の値一覧はドロップダウンで自分の番号を決めるための値一覧。

顧客フィールドの値一覧は、今度はクリックするとポップアップメニューを表示で顧客テーブルの「顧客コード」と「顧客名」が並列表示する様にする値一覧の二つです。
最初の値一覧と、もう一つの値一覧のスクリーンショットを下に掲示します。
絞り込まれた顧客を表示させるのはポップアップメニューを使います。
最初の値一覧は売上伝票の「担当」フィールドに値一覧を設定します。
最初のフィールドの値を使用=「担当」とし、すべての値を含めるにチェックを入れます。

二つ目の値一覧は、「顧客コード」と「顧客名」を並べて同一顧客名があってもコードで識別できる様にします。

最初のフィールドの値を使用は顧客テーブルの「顧客コード」にします。2番目のフィールドの値も表示は顧客テーブルの「顧客名」にします。

「次のテーブルから関連レコードの値のみを含める」を選択し、関連テーブルを「売上伝票」にします。

 

 

 

 

 

 

売上伝票というレイアウトでレコードを作ると下記の様に伝票番号が発番され、担当をセレクトすると自分の担当顧客のみポップアップします。

 

伝票明細は記載していませんが、売上伝票というレイアウトの中にポータルで作成すると売上明細付きの伝票レイアウトになります。
(上の事例で使用した顧客名はサンプルです)

Kazunori Fukuma
1st 2021/08/11

Claris FileMaker Server 19 WebDirectの設定

本ページは、Macにインストールした FileMaker Server19にWindows PC端末から接続する時の設定メモです。
FileMaker ServerはLocal PCに設置。独自ドメインはレンタルサーバーのサブドメインを利用。クライアントはLocalネットワーク内からの接続に関しての設定メモです。

ハードは以下です。

  • Server:Macmini、* macOS Catalina(Version 10.15.7)、Intel core i5 、8GB、Fusion 1TB、Claris FileMaker19.0.1.103、ESET(Versionは文中)
  • Client -1:MacBook Pro(13” Early2011)、Intel Core i5、8GB、500GB SATA SSD、ESET 6.8.300.0
  • Client -2:Dell Workstation 3600、Windows10 Pro、Xeon 8-Core、16GB、RAID1 HDD 1TB、 Chrome 83.0.4103.116(Official Build)64ビット、Windows defender
  • Router:PR-500MI 07.00.0010 IPv4 PPPoE接続

<Server18のアンインストール>
旧Version18をインストールしており、FileMaker Server19のリリースにより更新します。

<Server19のインストール>
ServerのインストールはClarisのライセンス証明書が必要です。
ダウンロード取得した証明書がDownloadsにあればOKです。無い場合はサーバーインストール案内メールリンクからダウンロードページに移動し証明書をダウンロードします。

<Javaのインストール>
JavaはOpenJDK(OpenJDKインストール)をインストールしました。

<Admin Consoleの設定>
Serverを起動します。
Admin ConsoleにIDとパスワードを入力し、マスタマシンを「オン」、Web公開を「有効」にします。(スクリーンショットを参照下さい)。

<カスタム証明書インポート>
Serverを設置するPC(Macmini)のターミナルを起動し、証明書リクエストを作成します(証明書を更新する時は現在の証明書を先ず削除します)。
リクエストコマンドは以下です。
$ fmsadmin certificates create ”/C=国/ST=県/L=市/O=事業者名または個人名/CN=fqdn名” –keyfilepass”パスワード” [Enter]
–keyfilepassは見えにくいですが、半角マイナス記号二個を並列記述させます。
username ”ユーザー名” [Enter]
password ”パスワード” [Enter]
国や県などは全て半角英数字で記述します。
日本はJP、神奈川県はKanagawa、市はXX-city、事業者名はABD Companyか個人名、fqdnは独自ドメイン名の様に記述します。
$fmsadmin certificate create実行すると、MacのライブラリにあるFileMaker ServerのCStoreにserverRequest.pem、serverKey.pem、keystoreの3個のファイルが生成されます。
(設定したIDとパスワードは記録しておきます/証明書インストール時に必要になります。)

SSL証明書発行サイトに所定の登録を行い証明書購入手続きをします。
FileMaker推奨の証明書がベストですが今回はWebDirect接続テスト用としてセコムの証明書を使用しました(証明書の有効期間によりますが1000円からあります)。
証明書要求のページに、上記で生成した「serverRequest.pem」をVisualStudioCodeなどのテキストエディターで開き、リクエストキー箇所にserverRequest.pemを全選択しペーストします。
その他記載事項を登録し証明書発行を申し込みます。

証明書発行は、メール承認で行うときは、使用する独自ドメイン名で受信できるメールアドレスが必要です。自分の場合はサブドメインメールを持っていませんのでadmin@ドメイン名をメールアドレスに指定し、通常使用している自分のメールアドレス宛てに転送設定を行います。
サブドメインを保有していない場合は、レンタルサーバーサイトにサブドメイン追加します。
ドメインに設定したメールアドレスに着信したメールをいつも使っているメールアドレス(他社のメールアドレスでも可)に転送する記述をします。
証明書サイトが指定するフォルダー内にクロールされたとき確認可能なファイルをアップロードしておき承認されるのを待ちます。

<証明書のインポート>
承認されると、メール転送先に証明書が送付されてきます。
1.独自ドメイン名.crt
2.ca-bundle.ca
2件のファイルが送られてきます。
デスクトップに新規フォルダー1を作成し上記1,2を保存します。新規フォルダー2を作成し、2にも同じく上記2件のファイルを保存します。
フォルダー1は保存用。2は作業用にします。
VisualStudioCode(他のテキストエディターでもOKです)でフォルダー2にある独自ドメイン名.crt1を開き、もう一つVisualStudioCodeなどのエディターでca-bundle.caも開きます。ca-bundle.caの内容を全選択し、開いている独自ドメイン名.crtの下にペーストして追加します。
合体したファイルを、独自ドメイン名.crtからchain.pemにファイル名称を変更し、作業用フォルダー2に保存します。

<Admin Cosoleに証明書をインストール>
FileMakerServer AdminConsoleにログインします。
「構成」にある証明書インストールのファイル参照を使用して次のファイルを選択しします。

署名済の証明書   → 作業用フォルダーにある「独自ドメイン名.crt」を選択
プライベートキーファイル     → FileMakerServerの/CStoreにある「serverKey.pem」を選択
中間証明書    → 作業用フォルダーにある「chain.pem」を選択
インストールが終われば接続テストです。

<接続設定>
FileMaker Serverを自サイトで公開するときは簡単ですが、LocalPCにServerを置くときはクライアントが独自ドメイン名をCallしたとき、Local Serverに切り替え操作が必要になります。
ルーターアドレスチェンジは使用しているルーターは利用出来ませんでした。
たむをえず、クライアントのlocalhostに転送設定してServerに接続させます。
MaminiはServerをおいているホストですが、ホストからも接続させます。
この時は、Macminiの/private/etc/下にあるhostsファイルをVisualStudioCodeなどで開き、次の様な記述をします。(アンダーラインのところ)。
Windows クライアントはSystem32/Drivers/にあるhostsを編集します。

サーバーPCからFileMakerServerに接続するときは
127.0.0.1        ドメイン名
Clients PCから
ServerのIPアドレス  ドメイン名

<Serverへの接続>
クライアントまたはサーバーPC自身から、ChromeなどのWebにhttps://ドメイン名/fmi/webdを記述し接続させます。
下の画像は、Severにアップロードした販売管理やSampleDBなどのアイコンが表示されています。WebDirectによる接続初期画面です。

<Security設定>
ClientsのSecurityは、Windowsはdefender、MacはキヤノンのESETです。ESETのVersionは、 Windowsが13.0.24.0、Macは6.8.3としましたが、ServerにインストールしたESET 6.8.3はClient からの呼び出しがNGでした。
ESETに検討依頼しました。
Mac ServerにESETのファイアウォールを使う場合はVer6.8.1.0で行うことになりました(以降のVersionは接続出来ないことがあります)。

ClientはWindowsのDefenderでもESETでもServerとの接続は可能でした。
MacをServerに設置したときは、Mac自身のファイアウォール、ESETもどのVersionでも使用可能です。MacにSeverを設置して、ESETを使うときは使用できるVersionが限られます。
MacにServerを設置したとき、Mac自身のファイアウォール、ESETファイアウォールには、FileMakerが公開しているServerのバイナリプリグラムを使用するアプリケーションとして登録します。ファイルリストはFileMaker Communityに記載されています(ファイアウォールリスト)。
この設定後もクライアントから接続出来ないときは、サーバー機で他の接続禁止アプリでFileMakerServerが使用するポート80などが閉じられている可能性があります。この時は、次の特定ポートを次の様に設定してみて接続出来るかどうかチェックを試みます。
プロトコルはTCP、特定ポートは80、443、2399、5003、16000を順に、または全部を接続許可に設定します。(https://support.filemaker.com/s/answerview?を参照下さい)。

以上です。

Kazunori Fukuma
1st 2020/06/29
2nd 一部修正 2020/06/30
3rd 文言訂正 2020/07/04
4th スペルミス修正 2020/07/09
5th Clients-2との接続結果を追記 2020/07/06
6th 証明書関連の記述追加 2020/08/21
7th 誤記の訂正 2020/09/01
8th 追記 2020/12/27
9th ESET アップデート追加 2021/05/02
10th 内容修正 2021/06/19
11th 一部追記 2021/07/04

 

Mac TerminalからVB MySQLにssh接続する

Mac miniの開発環境にMySQLを加えましたので、ご紹介します。
今まではDBというとFileMakerでした。
今回はMySQLをLinuxに構築します。
LinuxはVine Linux以来です。コマンドなど殆ど忘れてしまっています。VineLinuxでプリンターサーバーを作ったことがあります。まあその程度です。
DB(DataBase)は、ファイルメーカーとつなぐことも考えています。
Serverコストがあまりかからないというのが背景にあります。
よく使用されているSQLは、マイクロソフトSQLの開発専用のものやMariaDB、MySQLなどでしょうか。今回はMySQLをセレクトしてみました。

あくまでも開発用です。しかもmacからDBにアクセスします。Macは変更せず、VirtualBOXをたててLinux を動かしたいと思います。

1.最初に
使用PCはMac miniです。OSは10.14、 2.5GHz Intel Core i5、Late2012の8GB、1TB Fusion Driveです。

2.VBのインストール

最初はVirtualBox(VB)のインストールです(VBのInstall手順は省略致します)。MacにVBのサイトからダウンロードしてインストールしました。通常のアプリと同じです。問題無くインストール出来ました。

3.Ubuntu16.04 LTSのインストール
Linuxは最初はCentOSをインストールしましたが、自分のPCの能力ではデスクトップの動きが緩慢で、Ubuntuにしました。Ubuntuも最新版ではなく、最初は少し前のVer16.04を北陸先端大のサイトからダウンロードしました。
ダウンロード手順は、Qiitaさんの「VirtualBoxにUbuntu16.04をインストール」及び「Ubuntu 18.04にLAMP環境をインストールする」の手順などを参考にさせて頂きました。
16.04 LTSはファイルメーカーとの連動性で選びました。MySQL5.7版が欲しかったからです。Ubuntu16.04 LTSでMySQLやApache、phpをlamp-serverでセットインストールします(Ubuntu18でも良かったかもしれませんが)。

VBを起動し、VBの端末で以下のコマンドを実行しました。
$ sudo apt install tasksel
$ sudo tasksel install lamp-server
インストール後、ダミーphpを記述し、所定のフォルダーに保存後、localhostにWeb表示出来ていました。
ubuntu以外にインストールしたパッケージは次の通りです。

MySQL Distribution5.7.27 for Linux
Apache /2.4.18(Ubuntu)
PHP 7.0.33

4.ssh接続の準備
Macをクライアントとしますので、VBにssh接続とするため、IPアドレスは固定にします。
Ubuntuをインストールした直後は全部ポートが閉まっています。端末で最初に22番を開放しました。
$ sudo ufw allow 22
$ sudo ufw reload

次に、ssh-serverをインストールします。
$ sudo apt-get install openssh-server
(openssh-serverはネットワークがつながってないとダウンロード出来ませんので、同じようにVBの80番ポートを空けます。)
ssh接続する前に、VB内の端末でMySQLが起動できるか、予めチェックします。root以外の専用userを作成し、仮DBを作成し、権限を付与させておきます(MySQLのuser作成やDB作成は省略致します)。

5.設定とssh接続
MySQLにDATAを入力できたら、VBのネットワーク設定を以下の様に設定します。接続はブリッジにしました(ポートフォワーディングでも接続出来ます。どちらでも良いと思います)。

ブリッジ設定は、VBの設定でネットワークを選び、アダプター1を選択し、割り当てをブリッジアダプターにします。名称はen0: Ethernetとなっています(これは使用する環境で異なります)。この名称をメモしておきます。「高度」の設定はしません。

次に、VBの端末で、ゲストとなるVBのenアドレスを$ ifconfigで確認します。
端末に表示されたenpアドレスをメモします。

Ifconfigで確認出来るアドレスに、Macのターミナルでssh接続させます。
Macのコマンドは、$ ssh ‘user_nama’@’ip-address’の書式です。

user_nameはVBインストール時に登録したuser名です。
このコマンドを打つと、鍵が発行され、known listに登録されます。その後、続いてパスワードが求められます。このパスワードは、VBインストール時に設定したパスワードを入力します。
これでMacから仮想OS LinuxのVBに接続されます。

VBにつながったら、続いてMacの端末でMySQLを起動します。
$ mysql -u mysql_user_name -p
mysql_user_nameは、MySQLをインストールした時に設定したuser名です。パスワードもMySQLのパスワードです。
下のスクリーンショットは、MacからMySQLが起動された画面です。

セッティングの使い勝手など別途投稿致します。

Kazunori Fukuma
1st投稿とリンク追加 2019/11/12
2nd 文言修正 2019/11/20
3rd インストールパッケージのVer名追加 2019/11/28
4th 変換ミスの修正など 2019/12/15

電子印鑑の簡単な作成方法

販売管理の伝票等で使用可能な簡単な電子印鑑の作成方法を紹介いたします。

電子印鑑は、専用サイトで購入する方法もありますが、図形加工ソフトがあれば自分で作成してもそんなに時間はかかりません。今回は多くの利用者がいると思われるマイクロソフトPowerPointを使用しました。

<電子印鑑の作成手順>
PowerPointを起動し、新しいプレゼンテーションを選びます(PowerPoinTのVersionは下を参照下さい)。

 

 

 

 

 

プレゼンテーション画面は、起動時に出てくる最初のページでも、追加したページでも、どちらでも構いません。

最初の画面に表示されている「タイトルを入力」や「テキストを入力」の枠は全て消去します。

 

 

 

 

 

 

次に、PowerPointのヘッダーの「図形」から、基本図形の「丸」を選びます(次のスクリーンショット参照)。基本図形を選んだら、プレゼンテーションページの中央付近に上下3等分位になる程度の大きさの「青い丸」をマウスで描きます。下記のスクリーンショットの様な円形の丸にします(楕円の印鑑の時は、楕円にします)。

 

次に、青い丸の図形全体を選択した状態にします。PowerPointのヘッダーから「図形の塗りつぶし」で、Color=[白」を選ぶと青い丸が白い丸になります。

次に、丸の中央部をダブルクリックして姓名を入力します。入力した文字を選択し、フォントの色を朱肉に近い色に変換します。文字は「フォントの色変換」で、外周の青は「た図形の塗りつぶし」で同じ朱色にします。
下の例は、浅川さんという姓名を書き込んだ例です。文字は横書きで書き、縦書きに変換しています。縦書きは、文字を選択し、ヘッダーの文字拡大(A▲)をしていくと、フルサイズになったところで縦書きになります。

 

 

 

 

まだ、PowerPointは閉じません。
続いて、作成した印鑑図の中央にマウスを置き、右クリックします。ドロップダウンで出てきたメニューから印鑑画像の書式設定を「Jpeg」にします。続けて右クリックし、「図として保存」を選び、印鑑画像を保存します。

開いたままのPowerPointのプレゼン資料は、xxさんの印鑑図などの名前を付けて保存します。別の名前を作成する特は、この保存したプレゼン資料を読み出し、姓を書き換えることで追加出来ます。

 

 

 

 

 

 

 

 

次は適用例です。
下のスクリーンショットは販売管理の納品書に電子印鑑を使用した例です。伝票のレイアウトが白の時は印鑑画像の下地を白にするのがポイントです。または、スルー画像にして伝票下地=白でも構いません。

作成例の販売管理は、本ホームページの「ファイルメーカー 販売管理」からご利用可能です。

 

 

 

 

 

 

 

Kazunori Fukuma
1st 2019/ 10/29

販売管理 軽減税率の内部計算

2019年10月から予定されている販売管理の軽減税率内部計算について記載します。
一般的な消費税計算は、伝票合計額に消費税率を乗じた伝票ベースの計算を使用することが多いと思います。外税では、税抜合計額×消費税率、内税は税抜合計額の8/108が消費税額になります。

軽減税率が摘要されると、伝票合計額に対する消費税計算はほぼ使用出来なくなります。商品の中に軽減税率適用品目があると、その商品のみ税率を変更することが必要です。販売管理では、一品毎に税率が異なることを想定して、商品単位で税額を計算する必要があります。

下のスクリーンショットの例で説明します。
取り扱う商品の中に、軽減税率対象品目が在ると、軽減税率を特定するフィールドに8%を特定できるマークを付与する方法で進めることにしました。
上のスクリーンショットの例で説明します。
商品単位に是下津を特定するフィールドを設けます。上の例では、特税フィールドになっています。このフィールドに * の表示を付け、標準税率品目と区分させます。

上の例では、「果物詰め合わせ」に、* が付いています。その消費税額は 5960 × .08 = ¥476.8になります。「肉」は、60,000 × .08 = ¥4,800です。
その他は、標準税率です。特税フィールドはnullとします。

伝票の軽減税率品の消費税額合計は、¥5276.8ですが、切り捨て整数化するときの消費全額は¥5,276となります。

標準税率についても、.08が.1とするだけで計算は同じです。
この様に、軽減税率は内部計算はシンプルですが、伝票出力は少々面倒です。税率単位の区分記載では集計欄が8%戸10%の2行必要です。これを、売上伝票や、仕入伝票以外の請求書、元帳など全て変更しなければなりません。
以上、計算方法についての簡単な紹介でした。

販売管理は、当ホームページの販売管理ページから、ダウンロードして利用することができます。
ページは以下です。

 

Kazunori Fukuma
1st 初稿 2019/09/11
2nd 一部追記 2019/09/21

ファイルメーカー 販売管理のID番号欠落を埋める

今回はファイルメーカー販売管理のID番号欠落を埋めるについてです。
ファイルメーカー販売管理の顧客IDや伝票IDは、プログラムで識別する固有数字を使用しています(テキストを使用しても問題はありません)。
<Photo data>
2018/11/08 美郷町野間より
EOS1DX EF24-105mm f4/L IS USM
1/500 f4 47mm 絞り優先AE

一般的に、ID番号はシリアル自動発番が使われますが、自動発番、つまりSerial自動とすると、伝票起票後に伝票を削除した時、ID番号が抜けてしまいます。使用していく内に次第に番号欠落が増えていくという問題があります(たいした問題ではありませんが)。
例えば、
レコード番号 伝票番号
1      1
2      2
3      4
4      5
5      8

の如く、データ5件中、伝票番号3、6、7番を削除すると、レコード番号とSerial番号が合わなくなってきます。合わなくても、捨ててしまえばそれで良いのですが、整理する方法もあります。

テストとして欠落番号を再利用してみました。
(過去に取引のあった伝票またはミス伝票を再度使用することになります。前に印刷した伝票が残っているときはおなじ番号は存在する事になりますので、この場合は事後に使用した番号との違いは日付や内容ということになります)
そうした背景は承知の上で、あえて作成すると以下の様になります。

ID欠落を探す方法は、
(1)発番済みの伝票番号の中から最大値を取得し、その値を+1とし、次のID番号にする
(2)欠落番号を順次探し穴埋めする
といったやり方でしょうか。
(1)の方法では結局埋まりません。
(2)は番号が大きくなると欠落番号を探すのに時間がかかるかもしれませんが、ここを工夫してやれば解決すると考えました。

ということで(2)のやり方で作ってみました。
最初に伝票番号をソートします。
欠落番号はレコード番号とのANDか、差分1か、またはレコード番号との不一致を探すかとなりますが、不一致を探す方法で行いました。

スクリプトサンプルは以下です。

 

 

 

レコード番号 伝票番号
1      1
2      2
3      4
4      5
5      8
6      3
7      6
8      7
9      9

スクリプト内の $flg はフラグです。
欠落があるとフラグを立て、最終レコードまで欠落無しで連続している時は最終レコード番号を+1としてID番号とします。
上の例では記載していませんが、以降伝票が削除された時は順次サーチ、全部補完された後は最終番号+1とすればサーチ時間は解決できると思います。
アルゴリズムの検討にしかなっていませんが、とりあえず開発Verはこのままとし、本体プログラムは元に戻しました。

以上
Kazunori Fukuma
1st 初稿 2018/02/07
2nd 一部見直し 2018/12/11
3rd 一部修正 2018/12/14
4th 一部訂正 2019/06/05

ファイルメーカーのフィールドに条件付き書式を摘要する

今回はファイルメーカーの条件付き書式です。フィールドに条件付き書式を設定して見栄えを改善します。
<Photo Data>
白川郷
2018/08/13
EOS-1DX 24-105mm f/4L 1/250 f4

 

 

 

 

 

 

 

入金予定日が今日より後の日付を青色にします。
やり方は、入金予定日フィールドを選択し書式設定の中の条件付き書式で設定します。
日付が今日より後の文字の色を変えることが出来ます。

 

 

 

 

 

 

 

違う使い方として、例えばまだ入金がされてない時の入金予定額は通常より薄い色とするなど(上の条件付き書式の例の入金額フィールド)変化を持たせることが出来ます。また、入金済み伝票のテキスト色は普通の黒とし、未締切の時グレーにするなどです。
さらに、日付が迫ってきた時、アイコンの色を赤に変えて入力者の操作誘導も可能になります。

 

 

 

 

更にフィールドの背景とテキストの色を同じにする(例えば下地が白でテキストも白)ことで条件によってそのフィールドの表示を見えなくすることも出来ます。ソートや検索では有効としながら実際には見えないという表示応用です。
今回は条件付き書式の簡単な例を記載しました。
上の回収予定表が小さく見えにくいため下に部分拡大を載せました。ご参照下さい。


Kazunori Fukuma
1st 2018/08/31
2nd 予定表拡大部を追加 2018/09/01

FileMaker販売管理 請求明細書のID番号発番方法

今回はファイルメーカーのシリアル番号発番方法のご紹介です。
通常シリアル番号は該当フィールドを自動発番にすることで可能です。しかし販売管理では、請求明細書のように、先月の締日から当月締日までに請求書が何件か存在する場合困ることがあります。
<Photo Data>2018/05/04 三重なばなの里にて
EOS1DX EF24-105mm F/4L IS USM
1/160 f4 105mm 天候雨

 

 

 

 

 

 

 

 

納品書番号 納品日付
123 2018/05/04
130 2018/05/15
137 2018/0522

納品書と請求書に番号の関連性がありません。
対策として、納品書単位で発番せず、請求明細書という別テーブルを作り、リレーションをかけました。
この時のリレーションシップ例を左記に掲載します。

請求明細書は顧客単位に締日でくくった番号発生にします。
この明細書を明細書ID台帳として明細書の番号を発番させる元帳にします。明細書ID番号というフィールドを作り、フィールドOptionで番号をシリアル自動発番にセットします。
この明細書テーブルは、明細書が新規発生する都度ID番号が一つ増加します。
掛け販売または仕入の場合、1顧客(または仕入先)に対し1締日、1明細書になります。生成した番号が重複しないようにスクリプトで制御管理します。

下記はそのスクリプト事例です。
動作としては、明細書ID台帳に同じ顧客、同じ締日の登録が既にあればその明細書番号を読み出します。番号が存在しなければレコードを新規発番し、発番された番号が明細書番号になります。

この番号を請求明細書に印刷時に送信してプリントします。
このレイアウトの例を最下部に掲載しました。

以上です。

Kazunori Fukuma
1st 2018/05/04
2nd 文言修正 2018/05/17

ファイルメーカー住所録(その4 年賀状出し受け管理)

毎年正月になると年賀状の出し受けチェックや整理に時間をとられてしまいます。皆様年賀状のデータ整理はどうされていますか。
自分の住所録は現役の頃からの継続でファイルメーカーで構築を続けています。ファイルメーカーとしたのはMacで動く住所録ソフトがなかったことが主な理由です。またMac用の住所録ソフトが出てきても動きも悪く使いづらいものでした。
<Photo Data>2017/12/06
日の出前
目久尻川 Walkingコースにて
Canon EOS-1DX EF24-105mm f/4L IS USM
1/125 f4 EV補正無し 85mm ISO 50

ファイルメーカーは、自作ということで汎用性が高い(自分でプログラミングしているので当然ですが)訳ですが、更新を重ねてだいぶ修正も少なくなってきました。

またファイルメーカーを頼りにしていることはデータの信頼性が高いと考えています。スタートはVerが一桁の頃からで、データー数が3000、4000、5000と増えても一度も消失などのトラブルはありません。
残念な点は日本語フォントです。横書き印刷は問題ありませんが縦書き印刷がダメです。プログラム的に制御するのがむずかしく目下あきらめ状態です。

今回は、ファイルメーカー住所録の年賀状の受け出し管理の部分のご紹介です。
左のスクリーンショットは年賀状の出し受け表になります。チェック年度は、今年を中心に翌年と過去3年前まで可能です。レンジは拡大出来ますが、最低数年が分かればよしととしました。よってビジブルな期間は絶対年次ではなく相対年度で計5年間を1年単位で更新させることにしました。

管理表は年賀受け取り、出しとマーク、及び年賀に関してのお相手に帯するコメントとなる備考です。いずれも表のようにしていますがフィールドで構成しています。
記載事例は2017年に年賀状を受けとり、同年この相手にも発信しているということです。
右の数字のマークは何らかの決まり事チェックに使用します。プライオリティーをつけたり、受けとった日にちにしたり、会社・自宅のダブル送付、マークなどに応用出来ます。

年賀受け取りのフィールドは、漢字で「受」とし、喪中はがき受け取りは「喪」としました。受けと喪の選択はファイルメーカーのフィールドに選択可能なリストを登録し、マウスで設定します。

年度は毎年新年に年次更新とします。年賀受け、年賀出しの各フィールド内容を前年のフィールドにデータをムーブさせて更新します。
データムーブはスクリプトで行うことが出来る様にしました。

ムーブは2017年「受」を→2016に。さらに2015年、→2014年といった具合です。

更新後はスクリプトに現在の西暦年をチェックしインターロックをとって二重更新ミスがないようにしています。
住所録は3月頃までに細かな修正などを行ってランタイム版を生成し(またはファイルメーカー版で)、指摘やご指導をいただこうと考えています。

1st 2018/01/03
2nd 一部文書訂正 2018/01/04
3rd タイトル修正 2018/01/11
Kazunori Fukuma

FileMaker ポータルの行を追加する

ファイルメーカーのポータルで、スクリプトを使った行の追加を掲載します。

<Photo Data>2017/05/05鳥取砂丘にて

Canon EOS-1D MarkⅣ
EF16-35mm f/2.8L USM
ISO100 1/200 f8.0 35mm

下のスクリーンショットは、販売管理の受注伝票のポータルを使ったサンプルです。
2番目のスクリーンショットはその時のリレーションシップです。

受注伝票を事例に説明いたします。
商品を受注すると、その情報を保存する場所が必要となります。
このサンプルでは「受注データ」というテーブルに保存することにします。受注データに受注価格や数量などといった名前のフィールドを作ります。

ポータルの下地となる受注伝票は顧客と伝票番号を発番して登録します。
ファイルメーカーのポータルの定義は、(ポータルを組んだレイアウトに)リレーションした関連データを表示させるとなっています。
ポータル設定で、関連レコード表示の所を「受注データ」とします。
これで「受注データ」の内容がポータルに表示される様になります。
ポータルのフィールド配置などは他の投稿を参照ください。

受注伝票で商品の各情報を入力すると、ポータルで入力、保存、表示の3つを行うことが出来る様になります。

一番上の伝票画面はサンプルデータが2件入っています。更に商品を追加入力しなければならないこともあります。
この時、ポータルに行を追加する場合、上のリレーションシップの図の編集で、受注データ側の「このリレーションシップを使用して、このテーブルにレコード作成を許可」をチェックするのが一般的です(レコード作成を許可とすると下の受注伝票のスクリーンショットの様に最下行がいつでも入力出来る状態になります)。

この方法ではポータルの最下行に入力がまだ終わってない時も行Max値と行数が異なるといったことがおこります。ポータル内の語句サーチや行の挿入並び替えなどを行うとき不便になることがあります。

スクリプトによる方法を以下に紹介します。
やり方は受注データに新規にレコードを起こしポータルに新行を発生させるやり方です。
この時は、リレーションシップ編集のレコード作成を許可はチェックしません。
ポータル行とデータ数も一致します。

このスクリプトを使った方法による新行を追加した画面を最下部に載せました。

K.Fukuma
1st 2017/07/01
2nd 一部見直し 2017/07/06
3rd ミス修正 2017/07/07
4th 他と共通の題目に見直し 2017/07/07