月別アーカイブ: 2014年9月

ファイルメーカーで販売管理、納品書・請求書印刷と消費税対応

今年3月頃(2014/3)から手がけてた販売管理ソフトがほぼ出来上がりました。失敗と改良を重ね、初版に約半年かかりました。

開発に使用したファイルメーカーはPro12.0v4、使用PCはiMac(OSX10.9.4)です。
Windows機ではWindows8.1でテスト確認を行いました。
基本仕様は、見積、受注、納品、請求、仕入、在庫、支払及び各帳票の出力管理です。管理メニューとしては、在庫、顧客別販売実績、仕入先別購入実績、顧客クレーム等S。
フォローメニューを設け、未発注、未入荷、未請求、売掛残、などをチェック管理できるようにしました。
販売、仕入れの取引モードは、掛け、現金または振込、都度請求に対応しています。
このソフトの最大の特徴は、データベースは大規模なリレーショナルデータベースを構築できるファイルメーカーですが、レイアウトデザインが優れています。
本販売管理では、ファイルメーカーのレイアウトにポータルを使用し、伝票イメージレイアウトを採用したことです。
使いやすいGUIになっています。

少し内部の説明を致します。
優れたデータベースですが、開発当初はフィールド間計算でつまずきました。昔経験した配列計算などが出来ません。レイアウトを構成して、フィールドの値を計算するには、フィールドのOptionによる内部計算には限界がありました。
_MG_8293-2<Photo Data>2014/08/25 安曇野大王わさび農場の水車小屋。ここはビックリするほど豊富な水が流れています。水の豊かさを求めましたが、そのショットはNGショットでした。このアングルはもっと右の方が良いのですが、、、。
EOS5DMarkII EF70-200mm f/2.8L IS II USM 1/800 f/2.8

 

内部処理は、計算が出来ないというわけではありませんが、分岐や応用を十分に使用するにはしっかりとScriptを作って計算しな変えればなりません。

_MG_8303-2

 

<Photo data>2014/08/25 旅の途中碌山美術館を見学。荻原守衛の「女」など代表的な作品が展示されていました。美術館を出たところで中学生が見知らぬ私たちに元気よく挨拶してくれました。とても気持ちの良い旅になりました。

EOS 5DMarkII EF24-105mm f/4L IS USM 1/125 f4.0

 

 

 

 

このため、伝票内の計算はフィールドOptionで計算し、消費税などの細かな計算の場合は、伝票入力後伝票を締め切る時に複雑な計算を処理させることにしました。
消費税の整数化、一品別の税率対応なおいです。

<下記の地図は、美術館と挨拶してくれた学校(安曇野市穂高東中学校)の場所です。>
スクリーンショット 2014-10-21 15.20.04

 

 

 

 

 

 

 

 

 

<Photo data>2014/08/25 大糸線「HB-E 300系リゾートビューふるさと」の様です。美術館横を丁度走ってきた電車をとらえました。後で調べてみますと、この電車ハイブリッドだそうです。
EOS5DMarkII EF24-105mm f/4L IS USM 1/1600 f4
_MG_8316

(さて、本文に戻ります)
1.納品書印刷
納品書などの伝票イメージは、ファイルメーカーのレイアウトで設計しますが、作成した印刷事例を以下にご紹介します。
納品書・請求書で2例掲載します。
レイアウトは、台帳から自社情報と顧客情報を引っ張ってきます。
商品入力は、ファイルメーカーのポータルによる構成です。
このサンプルは納品書・請求書が上下2段になっている納品書の部分です。請求書側のレイアウトも全く同じです。
レイアウトは、納品書側のポータルとフィールドの構成を決め、請求書側にはコピー&ペーストで完了です。
フィールドの位置調整は、オブジェクトを下地にはさんで調整すると簡単にアジャスト出来ます
。下地に参考に貼り付けたオブジェクトはレイアウト確定後削除します。
もちろん、フィールドの順番の変更や、印刷書式変更にも対応させることが出来ます。印刷は、納品書・請求書の入力・編集メニューから印刷コマンドボタンにスクリプトを組み込み印刷を実行します。

スクリーンショット 2014-09-26 11.33.26

_MG_8491-5

 

 

 

 

この納品書例は、5件/1枚のです。商品の数が5件以上は、次ページへ繰り越し処理します。繰り越しは、データテーブルにページフィールドを設け、関数Ceiling(行数/5)でページ数を求め、全ページ数を5の倍数でインクリメントさせます。Ceilingを使う場合、6件目のデータのページフィールドは6/5となり、切り上がってMaxページは2になるわけです。

スクリーンショット 2014-09-26 13.34.44

今度は納品書・請求書の印刷スクリプトは左の様になります。
印刷テクニックとしては、金額合計、税抜額合計、消費税額の合計額はダミーフィールドに収め、最終ページに総額を印刷します。
プリンタは、スクリプトで印刷レイアウトに切り替えて(この例では納品・請求書印刷(1))データを送ります。プリンタの印刷設定はA4縦とか倍率など書式はあらかじめ設定が必要をしておきます。印刷は1ページ目、2ページ目と印刷が連続で行われ、最終ページを印刷してLoopから抜け出します。
いきなりプリンタに出力せず、プリンタダイアログを開いて紙などを設定しながら印刷したいときは、スクリプトでダイアログをオンにします。

2.消費税特例対応
納品書には、受注日と受注伝票番号を左下余白に印刷するようにしました。売上は売上日起算で確定させます。消費税については、今年(2014年)のように税率が期中で改定される場合、特殊処理としました。
売掛では、消費税更新前後では一伝票内で変更前税率と変更後税率が混在します。期間内償税率が異なる対応として、明細単位計算モード(基本的に行単位計算)を設けました。
例えば本例3月度の納品書サンプルの様に消費税が5%と8%の商品が混在しても、行単位で個々の税率で計算します。
(追記:この計算方法は2019年の軽減税制対応に適応させる予定です。)
課税の組み合わせをまとめますと下記のようになります。

伝票単位 外税、内税、一括消費税率
明細行単位 外税、内税、個別消費税率

上記の納品書印刷例は、平成26年4月の改正前税制です。何もなければ消費税は売上確定月の消費税(この場合は5%自動計算)、個別ケースについては8%で自動計算されます。税率8%の場合のみ特例という意味でコメント印刷します。もちろん今後消費税改定が行われても変更は可能です(スクリプトの変更で対応することになります)。

ポータルの活用例は、別途またご紹介できると思います。

「ファイルメーカー販売管理は主に個人事業主や企業立ち上げ支援向けにリリースしています。」ご利用を希望される際は、本HPの販売管理システム FKM販売管理から利用できます。
個人開発版ですが、スタンダードな販売管理が出来ます。
本ページ記載以降追加した主な機能は、明細、支払いのダウンまたはアプロード、ゆうパック出荷処理の自社印刷などです。
Server版もあります。
HP問い合わせよりメール送信願います。

1st 2014/09/26 K.Fukuma
2nd 印刷関連の内容修正とタイトル見直し2014/09/28 K.Fukuma
3rd 文言修正 2014/09/29 K.Fukuma
4th ミス修正 2014/11/01 K.Fukuma
5th 以後の状況について追加記述 2015/03/29
6th 文言追加 2015/08/05
7th 追加 2015/09/27
8th 追記 2019/02/07
9th 追加 2019/05/26
K.Fukuma

 

Dynabook Satellite J32、Windows XP機をVine Linux6.2でCanon CAPTプリンタ印刷

現在のホームLAN構成は、Mac Server(Ver3.03)とクライアントにWindows 8とMac OSX10.9の混合使用です。

<Photo data>2014/08/23白川郷です。真夏の水蒸気で山肌のグリーンが弱くなっています。
EOS5DMarkII EF24-105mm f/4L IS USM 1/125、f/10

_MG_8197

 

 

_MG_8625

 

 

 

 

 

<Photo data>2014/11/27 八雲風穴近くの里山の風景、昔この近くに風穴を利用した冷蔵所があったそうです。
 EOS5D MarkII EF24-105mm IS USM ISO200 1/250 f7.1

 

 

 

ホームネットワークでの印刷は、Windows XPが健在でしたので、このDynabook Satellite J32(以下XP機)をXPのプリンタサーバーを用いて複数のPCから印刷利用していました。XPがOSサポート終了して以降は使用出来なくなってしまいました。
Mac、Windows混合使用のため、プリントサーバーは専用PCが必要と考え、XP M/Cの再活用を検討してみることにしました。今回はその1としてのアタック記載です。

下記は使用しましたXP機のスペックです。

Dynabook Satellite J32 モデル:160L/5
Windows XP Pro Service Pack2、Pentium M 1.6GHz 、1.4GBメモリー、XGA、40GB HDD、CD-RWドライブ

PCをプリントサーバー化する簡単な方法はWindows7以上にアップグレードすることですが、この機種はWindows7ではIntelの内蔵ビデオカードがサポート対象外で使えません。また、ビデオカードを汎用ドライバーにしたとしても、Windows7はインストールディスクがDVDのため、この機種はCD-Rまでしか対応しておらず、新しいOSのインストールは出来ませんでした。

Windwsのアップグレードをあきらめ、ネットで書き込みの多いLinuxにトライすることにしました。ところがLinuxのインストールも殆どDVD版です。CDで可能なものは32bit版のVine Linux6.0とubuntu11.04など数件だけとたよりない状況でした。USBメモリを使うインストール方法もあるようですが、このXP機のBIOSは対応していません。

さて、インストールはubuntu Ver11.04 32bit版が何とかインストール出来ましたが、実際に動かしてみると、このXP機ではあきらかに能力不足。コマンド操作など動作が緩慢で断念しました。結局、Vine Linux 6.0だけ残りました。

Linuxは未経験で、コマンドや操作など見知らぬことが多く、ここはしっかり吸収必要と決め猛勉強しました。古いVerのディスク付き書と雑誌を購入しました(文末参照方)。Vine Linux入門キットに添付されていたVer4.0をガイド通りにインストールを行い、CDドライブからインストールに成功しました。

①Vine Linux6.0は、ダウンロードサイト(北陸先端大など)から入手できますが、今回は購入した日経Linux2012年2月号に付録メディアがついており、Vine Linux 6.0 32bit CD版(Vine60-CD-i686 ディスクイメージファイル、692.224KB)を使いました。
②ダウンロード後、Windows 8 PCに上記①のDVDメディアをドライブに入れ、Exprolerで上記i686ファイルを選択し、更に右クリックして上部の管理のディスクイメージツールをクリックします。「マウント」と「書き込み」が出てきますので、空のCD-R(データ用)をDVDドライブに挿入して「書き込み」を選択しますと焼き込みが始まります。(インストールディスクの作成には他のイメージ書き込みソフトが使えます。)
③WindowsXP機の電源をONにし、Windows XP起動後②で作成したVine Linux6.0のインストールディスクをドライブに入れます。次に無線LANカード、USBメモリをつなぎます。OSが立ち上がったらここで再起動をかけ、シャットダウンした頃合いでF2キー(機種によって違います)を押し続けます。ドライブを読み込む状態になりましたら矢印キー 「→」押して、CDドライブを起動ディスクになるよう変更します(既にWindowsXPはサポート外です。LANに短時間つながりますので試される方は自己責任でお願い致します)。
④Linuxのインストールが始まります。Vine Linux6の設定方法はインストールガイドVine Linuxのサイトを参照されるとよいでしょう。WindowXPは不要ですので、ここはきっぱりXP全領域をLinuxパーテーションに設定します。この処理でWindows時代のこのPCの全てのデータがなくなりますのでデータなどがある場合は事前にバックアップが必要です。
インストールの過程で、無線LANカード(バッファロー WLI-CB-AG Air Station 54Mbps)、USBメモリー(ELSONIC USB2.0 8GB)、マウス(マイクロソフトマウス)は自動認識してくれました(無線LANのセキュリティーは手入力になります。AOSSなどには対応していません。)。Vine Linux6.0のインストールモデルはデスクトップtypeを選択しました。

⑤インストール途中でLinuxの管理者名、名前、パスワードなどの入力をします。インストールが終了しましたら、システムのSynapticパッケージマネージャーから全てを選択してVer6.2に更新します(略)。

⑥次がいよいよプリンタ接続です。プリンターはドキュメント印刷に使用していますキヤノンCAPTプリンターLBP3100を用います。プリンターの電源をONにしてXP機の裏側のUSBポートにUSBプリンタケーブルを差し込みます。この時システムの印刷からLBP-3100が見えれば、該当ドライバーのインストールに移行できるのですがここで問題が起きました
このLBP3100は欧州仕様なのか、何故かプリンタ名がCanon LBP3108-LBP3100-LBP3150として認識されてしまいます。この品名のドライバーは以前UKサイトに出ていましたが、今は探しても見当たりません。やむなく、表示名とは異なるもののキヤノンの国内のダウンロードサイトよりLBP3100のlinuxのドライバーを選び、CAPT Printer Driver for linux Ver 2.60(32bit)をダウンロードします。オンラインマニュアルを見ますと、インストールにはターミナルからコマンドによる設定が必須の様です。Linuxは大変と感じました。

マニュアルに従いドライバーファイルを解凍します。拡張子がrpmのファイルを2個取り出し、デスクトップにペーストします。メニューからターミナルを起動し下記の様に入力します。

$ rpm -ivhの行の後にドライバーファイルをドラッグしてきてEnterキーを押すとインストールされます(またはディレクトリを解凍したフォルダーに移動して実行します)。

$ rpm -ivh linux-capt-common-2.60-1.i386.rpm
$ rpm -ivh cndrvcups-capt-2.60-1.i386.rpm
マニュアルにはcapt-commonの方を先にインストールしなさいと書いてありますので、その様にします。
$ /etc/init.d/cups restart
(ppdファイルとデバイスを登録します。USBポートのプリンタ0番設定のつもりです。)
$ /usr/sbin/lploadmin -p LBP3100 -m CNCUPSLBP3100CAPTJ.ppd -v ccp:localhost:59687 -E
$ /usr/sbin/ccpdadmin -p LBP3100 -o /dev/usb/lp0
(ccpdが起動します)
$ /etc/ini.d/ccpd start

この結果は、しかし残念ながら全く印刷されませんでした(マニュアル通りなのですけれど)。この方法ではキヤノンもVineLinux4.2迄しかサポートしていないため動作しないのかもしれません。

今度は実行された内容のリストをとってみました。

[KFukuma@localhost ~]$ su

パスワード:
[root@localhost rpm]# rpm -ivh ‘/home/KFukuma/デスクトップ/cndrvcups-common-2.60-1.i386.rpm’
準備中… ########################################### [100%]
パッケージ cndrvcups-common-2.60-1.i386 は既にインストールされています。
[root@localhost rpm]# rpm -ivh ‘/home/KFukuma/デスクトップ/cndrvcups-capt-2.60-1.i386.rpm’
準備中… ########################################### [100%]
パッケージ cndrvcups-capt-2.60-1.i386 は既にインストールされています。
[root@localhost rpm]# /etc/init.d/cups restart
cupsを停止中: [ OK ]
cupsを起動中: [ OK ]
[root@localhost rpm]# /usr/sbin/lpadmin -p LBP3100 -m CNCUPSLBP3100CAPTJ.ppd -v ccp://localhost:59687 -E
[root@localhost rpm]# /usr/sbin/ccpdadmin -p LBP3100 -o /dev/lp0

CUPS_ConfigPath = /etc/cups/
LOG Path = None
UI Port = 59787

Entry Num : Spooler : Backend : FIFO path : Device Path : Status
—————————————————————————-
[0] : LBP3100 : ccp : //localhost:59687 : /dev/lp0 : New!!

[root@localhost rpm]# /etc/init.d/ccpd start
.tarting /usr/sbin/ccpd: [ OK ]
[root@localhost rpm]#

この結果も残念ながら印刷出来ません!

さらに1週間経ち、困難だろうとあきらめつつVine Linuxのサイトをサーチしていますと、CAPTプリンタを設定させるというスクリプトを見つけました(Canon レーザープリンタ(CAPT)の設定)。早速このcapt.shというスクリプトをVineLinuxのサイトからダウンロードしました。

プリンタのドライバーはインストール済みですので端末より以下を実行しました。
# sudo sh capt.sh LBP3100 /dev/usb/lp0

同様に、capt.shというスクリプトを実行した結果は下記です。
[root@localhost KFukuma]# sudo sh capt.sh LBP3100 /dev/usb/lp0

printer ‘LBP3100’ was added.
configure ccpd …

CUPS_ConfigPath = /etc/cups/
LOG Path = None
UI Port = 59787

Entry Num : Spooler : Backend : FIFO path : Device Path : Status
—————————————————————————-
[0] : LBP3100 : ccp : //localhost:59687 : /dev/usb/lp0 : Modified

restart daemons …
cupsを停止中: [ OK ]
cupsを起動中: [ OK ]
Shutting down /usr/sbin/ccpd: [ OK ]
.tarting /usr/sbin/ccpd: [ OK ]

completed!

[root@localhost KFukuma]#

この方法でやり直した所、今度は印刷成功です

しかし翌日また印刷されません。残念な結果です、、、、。電源を再投入しても印刷されません。しかし色々やってみますと、プリンタをつないだUSB端子に原因があることを突き止めました。USBポートはPCでは電源をオンしてPCに差し込んだときのみ有効なポートと認識しないポートが有るのです。このDynabookの場合、USBポートが4個あります。右奥1カ所が「ホットポート」でした(最初の設定は背面ポート)。多分、USBハブを用いて印刷させようとしても同じようにダメなのではないかと思います。右奥のUSBポートは電源on/offなどにかかわらず問題なく印刷が出来ました
_MG_8489

この写真はUSBポートに最初に認識されたLBP3108-3100-3150に、上記設定によってLBP3100が追加出来たときの写真です。

次回はプリントサーバー化です。これはまとまり次第報告致します。

 

<追記>
2015年2月に入りLinix によるPrinter Server化に心の動きが起こりました。再びチャレンジです。ところが、昨年オーディオルームの改造工事を行って床材などの貼り付けに使用された揮発性の溶剤などが遠因だと固く思っていますがDynabook Satellite J32のキーのsとdが全く反応しません。接点復活を何度か試みましたが、このM/Cもとうとう動かなくなってしまいました。
_MG_8811(XP機の全体は左の写真です)PCの外観は未だ綺麗です。Linuxによるプリントサーバー検討は残念ながらこれにて終わることにします。

2015年新春、プリンターをwifiマルチ接続が可能な無線LAN搭載型のプリンターに更新しました。

参考書:Amazonより中古の書籍雑誌を購入
Vine Linux4入門キット 林雅人、井坂銀次著 秀和システム
日経Linux 2012年2月号

2014/09/18 K.Fukuma
2nd USBポートの影響確認による含表題修正 K.Fukuma
3rd PCキーボード故障 写真追加とプリンタサーバー断念について K.Fukuma
4th 2015/02/20 変換ミスの訂正  K.Fukuma
5th 2015/03/29 追記