【 ソフト名 】 楽々Web在庫管理システム with App Inventor 2 Linux版
【バージョン】 Ver.1.24.3.19
【 登録名 】 Raku2WebStockSystemLinux.zip
【 製作者名 】 中村 州男
【 動作環境 】 Debian11(コンパイルすればLazarusが動作するLinuxやRaspberry Piなどで動作)
【 製作言語 】 Lazarus 2.0.10(おそらく2.0.11~2.2.6や3.0でもOK)
【 配布条件 】 FPC modified LGPL(概ねGPL)
【ソフトウェア種別】 フリーソフトウェア(オープン・ソース・プログラム)
本ソフトは,自社にピッタリのWebシステムを自分で作るためのソフトウエアです。フロントエンド開発はApp Inventor 2,バックエンド開発はSQL文だけで,だれでも楽々Webシステムが開発できるようにしました。「この管理を何とかしたい」という思いのある人なら,だれでもシステムは開発できます。詳しい内容は,著書「楽々Web在庫管理システム with App Inventor 2 一部カラー版」または「楽々Web在庫管理システム with App Inventor 2」をご活用ください。
フロントエンド開発は,「JavaScript+コピペ開発」でシステムを作ることを前提にしていました。しかし,「JavaScript+コピペ開発も難しい」という声を多数頂戴しました。そこで,フロントエンド開発に,MITが開発し無料提供している「App Inventor 2」を使って,Androidアプリを開発する方法を考案しました。ですので,JavaScriptの知識は不要です。「在庫問合」「入庫管理」「出庫管理」「在庫分析」「棚卸管理」「画像表示」のアプリのソースコードを同梱しています。自社にピッタリになるまでアプリを成長させていく「App Inventor 2+コピペ開発」をしていってください。なお,バーコードをスキャンする機能は,別途,無料の「QRコードスキャナ」(ZXing Team)をインストールしてください。また,Bluetooth接続でプリンタに印刷する有償部品を利用しています。したがって,ソースコードから印刷部分を除いています。そのため,印刷が必要であれば有償部品を入手して,著書「楽々Web在庫管理システム with App Inventor 2 一部カラー版」または「楽々Web在庫管理システム with App Inventor 2」をご覧頂いて手入力してください。なお,Google PlayストアやAmazon Androidアプリに印刷可能なアプリを登録してあります。その際,「出庫管理」で必須になる箱番号・モノ番号のバーコードリストをご活用ください。
データベース「SQLite」を使ってSQL文だけでバックエンド開発ができる「楽々Webシステム」を作者が開発し,無料(オープンソース)で提供しています。在庫管理に必要なSQL文も同梱しています。自社にピッタリになるまでSQLを成長させていく「SQL文+コピペ開発」をしていってください。
「楽々Webシステム Linux版」は,「拠点が1か所(1つの敷地)でわざわざインターネットで繋ぐ必要がない」場合に,「非クラウド化」により「無駄なお金と労力が掛り続ける」呪縛から逃れたいと考えている人に対して,「JavaScriptとSQLiteを使ってWebシステムを自らの手で簡単に開発できるようにする」ことを目的とした軽快なWebサーバー(CGI含む)です。JavaScriptとSQLite3のサンプル等を利用して,コピペ開発(コピー&貼り付け)して,少しずつ変更しながら,Webシステムを開発できます。
また,古いWindowsパソコンでもLinuxを基本ソフトにすれば,「楽々Webシステム」のWebサーバーとして蘇ります。その手間を省くために,Live-DVDも用意しています。詳しくは,著書「楽々Web生産管理システム Linux超速導入編」(「即!運用可能DVD無料申込書」付き)を参考してください。
なお,「拠点が点在していてインターネットで繋ぐ必要がある」場合には,クラウド化(Google仮想マシン)のために著書「楽々Web生産管理システム Google Compute Engine 無料導入編」も併せて参考ください。さらに,「クラウド化」により「無駄なお金と労力が掛り続ける」呪縛から逃れる最善の方法として「Google Apps Script」開発がおススメです。簡単にWebシステムを開発できるようにした著書「Google Apps Script Webアプリ開発」第3版(サンプル・ソースコード付き)を参考にしてください。
・WebサーバーとCGIを一体化させた軽快なWebサーバー
・ブラウザだけで動作するので,スマートフォン・タブレット・パソコンの種類を問わず利用が可能
・http://127.0.0.1(またはローカルIPアドレス)/?SQL=「SQLパラメタ」&HTML=「HTMLパラメタ」で動作
・バックエンドは,「SQLパラメタ」にSQL文と必要に応じて分岐制御等を記述するだけ
・フロントエンドは,「HTMLパラメタ」にJavaScriptやHTMLを記述するだけ
・Basic認証方式で利用者の所属別メニュー表示や「SQLパラメタ」の実行権限を指定可能
・データベースは,マルチ・プラットフォーム対応の暗号化可能なSQLite3を使用(詳細は著書「SQLiteデータ料理術」参照)
・データベースのテーブル名やフィールド名(項目名)は極力,日本語で記述
・SQLite3への同時アクセスを「楽々Webシステム Linux版」側で排他制御
・JavaScriptの関数名や変数名は,極力,日本語で記述
・HTMLのid・class・nameも極力,日本語で記述
・ブラウザを使って「SQLパラメタ」「HTMLパラメタ」を作成(パラメタ名称も日本語で記述可能)
・サンプルや作成したパラメタをコピー&貼り付けしてお手軽「コピペ開発」(詳細は著書「JavaScript+SQLite楽々Webシステム」参照)
・ブラウザの印刷機能を使って,QRコードやバーコード,mm単位での位置指定を含む印刷も可能
・「楽々Webシステム Linux版」はマルチ・プラットフォーム対応のLazarusで開発(詳細は著書「無料のLazarusで簡単!プログラミング」参照)
・「楽々Webシステム Linux版」は,オープン・ソース・プログラム
などです。
・Basic認証がiPhoneやiPadのブラウザでは動作しないため,端末として利用不可(作者は「無駄なお金と労力が掛り続ける」Apple系・Microsoft系は大嫌いです。近い将来,サーバーはRaspberryPi5,端末はKindle Fire HDシリーズなど安価なAndroidスマホやタブレットを使った「無駄なお金と労力を掛けない」運用をイメージして頂きたいと思います。)
Raku2WebStockSystemLinux.zip を任意のフォルダに解凍してください。ほかにインストールの作業は必要ありません。解凍したサンプルの「db」「csv」「images」フォルダとフォルダ内のファイルを除いて,最低限必要となるファイルは2つ,「Raku2WebSystem」「SQLetc_Init.db」とフォルダは2つ,「include」「menu」フォルダです。
解凍したフォルダごと消すだけですべての情報を消すことができます。
添付している実行ファイル「Raku2WebSystem」はDebian11(Raspberry Pi for DeskTop)の特定バージョンのファイルのため,「ファイルのプロパティ」を開いて「パーミッション」の実行権限を付与しても動作しない場合は,読者の使用環境に合わせてコンパイルしてください。その際に,ソースコード下部「楽々Webシステム メインの実行部」のlibsqlcipher,libsqlite3の所在するフォルダを確認して必要に応じて変更してください。
以下の手順に沿って,コンパイルして実行ファイルを生成してください。
詳細は,著書「JavaScript+SQLite楽々Webシステム」「無料のLazarusで簡単!プログラミング」を参照してください。
【手順1】LazarusとSQLiteツール(暗号化なし)のビジュアル・インストール
【手順2】Lazarusを起動して,パッケージをインストールする
【手順3】「楽々Webシステム」のソース・コードを開いてコンパイルする
【手順4】コンパイルされた実行ファイルのある場所にファイル・フォルダを設置する
【手順5】コンパイルされた実行ファイルの起動
80番ポートを使用するため,Wifiまたは閉域LANに接続してから,LXTreminalから「sudo pcmanfm」を実行してroot権限に昇格したファイルマネージャからlib配下のマシンによって異なるフォルダ(添付は「i386-linux」)に入っている「Raku2WebSystem」をダブルクリックして「端末で実行する」を選択して起動すれば,「楽々Webシステム Linux版」は動作します。起動した「Raku2WebSystem」の画面を閉じると終了します。
「楽々Webシステム Linux版」を起動したマシン上で,ブラウザを起動し,下記URLを入力して表示します。
http://127.0.0.1(またはhttp://localhost)
すると,管理者名とパスワードを入力する画面が表示されます。Basic認証で使用しますので,必ず半角で入力して,登録ボタンをクリックしてください。すると,Basic認証画面が表示されますので,先に入力した管理者名とパスワードを入力してログインボタンをクリックしてください。すると,Web管理者登録完了画面が表示されます。ブラウザと「楽々Webシステム Linux版」を終了してください。なお,Basic認証画面でログインできなかった場合は,ブラウザと「楽々Webシステム Linux版」を終了した後,「Raku2WebSystem」と同一フォルダ上に作成された「SQLetc.db」ファイルを削除して,上記URLの入力からやり直してください。
「楽々Webシステム Linux版」を再度,起動して,ブラウザ上に上記URLを再度,入力して,Basic認証画面でログインに成功すると,Web管理者用のメニュー画面が表示されます。なお,画面上の「Web管理者(~)用メニュー」と表示されたローカルIPアドレス(例「192.168.3.227」)を上記URLの「127.0.0.1」に替えて指定すると,同一ルーター配下にある自他のパソコン/タブレット/スマートフォンから同様の表示や操作が可能です。
なお,Wifiまたは閉域LANに接続せずに初回起動時のWeb管理者登録をして,Wifiまたは閉域LANに接続してログインしようとしたり,反対に,Wifiまたは閉域LANに接続して初回起動時のWeb管理者登録をして,Wifiまたは閉域LANに接続せずにログインしようとしたりすると,Basic認証画面で正しくログインできません。
Wifiまたは閉域LANに接続している端末(自端末を含む)から,Basic認証画面でログインに成功すると,Web管理者用のメニュー画面の第1章~第6章にあるサンプルを実行できます。サンプル実行で気になった処理は,「3.SQLパラメタ・HTMLパラメタ作成」でSQL等の内容やHTML・JavaScriptの内容を確認できます。
Web管理者用のメニュー画面上の「利用者情報登録」の文字をクリックして,利用者登録ボタンをクリックしてください。すると,入力画面が表示されますので,「名前」「パスワード」「所属」を入力してください。なお,「名前」「パスワード」はBasic認証で使用しますの,必ず半角で入力してください。「所属」は日本語も使用可能です。この「所属」によりメニューを切り替えることができます。登録ボタンをクリックして,登録すると,「パスワード」が空欄になって表示されます。これは,パスワード隠すためで,パスワードの変更が必要なときのみ「パスワード」に入力してください。「パスワード」を入力しなくても,「名前」「所属」は自由に変更できます。
「楽々Webシステム Linux版」は,データベースとのやり取り(バックエンド)にSQL文等,ブラウザを通じた人とのやり取り(フロントエンド)にJavaScriptを記述して開発します。したがって,SQLパラメタやHTMLパラメタ作成は最も重要です。この重要なパラメタも,同一ルーター配下にある自他のパソコン/タブレット/スマートフォンのいずれのブラウザから,「Web管理者」としてログインすれば,作成できるようになっています。なお,「楽々Webシステム Linux版」の動作しているマシンに,「DB Drowser for SQLite」(無料)をインストールすると,「SQLtec.db」を直接開いて作成できます。インストールの途中で,DB Browser(SQLCipher)にチェックを入れると暗号化されたデータベースを開いたり,データベースを後から暗号化することができます。
Web管理者メニュー上の「SQL・HTML作成」をクリックすると,「SQL・HTML作成」画面が表示され,SQLやHTMLパラメタの作成・編集ができます。SQLパラメタの作成・編集は,SQL欄右の 「プルダウン」アイコンをクリックして,編集したいSQLパラメタを選び,SQL編集ボタンをクリックすると,SQLパラメタの編集ができます。編集できる内容は,「SQL名」「実行権限」「データベース名」「暗号化有無」「表示用のSQL文等」「入力一件分のSQL文等」「入力開始時のSQL文等」です。SQL登録ボタンをクリックして登録,SQL実行ボタンをクリックして,SQL実行のテストができます。
このうち,「SQL名」を変更して,SQL登録ボタンをクリックすれば,呼び出されたSQL編集内容をコピーしたSQLパラメタが作成できます。したがって,新規登録ボタンはありません。必ず,作ろうとするSQLパラメタのコピー元として類似しているモノをSQL編集ボタンをクリックして呼び出して,「SQL名」を必ず変更し,他の内容も必要に応じて変更して,SQL登録ボタンをクリックして新規登録すると考えてください。
また,「実行権限」を変更する際には表示ボタンをクリックしてください。すると,「Web管理者」に加えて,利用者登録された「所属」が表示されます。表示された「所属」をクリック,複数選択する場合は,CTRLキーを押してクリックして,このSQLパラメタを実行してもよい「所属」を指定します。後述のメニュー作成で「所属」別のメニューを作成しても,その「所属」に対して,「実行権限」がないSQLパラメタは,実行時にエラー画面が表示され,実行できないようになっています。
HTMLパラメタの作成・編集は,HTML欄右の 「プルダウン」アイコンをクリックして,編集したいHTMLパラメタを選び,HTML編集ボタンをクリックすると,HTMLパラメタの編集ができます。編集できる内容は,「HTML名」「内容」です。HTML登録ボタンをクリックして登録,SQL実行ボタンをクリックして,指定されているSQLパラメタと合わせて,HTML内容のテストができます。また,新規登録は,SQLパラメタと同様で,コピー元として類似しているモノをHTML編集ボタンをクリックして呼び出して,「HTML名」を必ず変更し,「内容」も必要に応じて変更して,HTML登録ボタンをクリックして新規登録すると考えてください。
Web管理者メニュー上の「メニュー作成」をクリックすると,「メニュー作成」画面が表示され,利用者登録で指定された「所属」別のメニューの作成・編集ができます。
まず,「メニュー作成」の文字直下の「所属選択」欄で 「プルダウン」アイコンをクリックして,編集したい「所属」を選びます。現在表示中の「所属」別のメニューの変更内容を反映せずに,切り替えることになりますので,警告画面が表示されます。現在表示中の「所属」別のメニューの変更内容を反映させる場合には,画面を下にスクロールした位置にある登録ボタンをクリックします。「所属」別のメニューを新規に作成する際にも,画面は空白表示になっていますが,画面を下にスクロールすると表示されるメニュー追加ボタンをクリックします。
メニューの各行では,「削除」チェックボックス,「親」「子」「孫」「名称」「SQL名」「HTML名」が指定できます。「削除」にチェックを入れると,その行を削除できます。「親」「子」「孫」には「半角00~99」の2桁の数字を指定して,メニューの階層を指定します。メニュー追加ボタンをクリックした際には,最下段に入力行が表示されますが,登録ボタンをクリックすると,「親」「子」「孫」の昇順に並び替えられて,表示されます。行の順序を気にせずに,「親」「子」「孫」の数値を入力あるいは修正してください。「名称」欄はメニュー上に表示する名称になります。あまり長いと他のメニューが表示ができなくなりますので,注意してください。「SQL名」「HTML名」は,一旦,各欄の右にある 「プルダウン」アイコンをクリックしてから,指定したSQL・HTMLパラメタを選んでください。
運用段階に入ったら,電源を入れるとバックグラウンドで自動的に「楽々Webシステム Linux版」が起動するようにスタートアップに登録しましょう。
「楽々Web在庫管理システム」のプログラム著作権は『中村州男』が保有しています。放棄することはありません。このプログラムの改造,改変,配布は自由ですが,LazarusのFPC modified LGPLに従ってください。
著書「楽々Web在庫管理システム with App Inventor 2 一部カラー版」または「楽々Web在庫管理システム with App Inventor 2」の「第4章 在庫分析」で紹介したグラフはMITライセンスのChart.jsを使用しています。
Copyright (c) 2023-2024 Kunio Nakamura
Copyright (c) 2014-2022 Chart.js Contributors http://www.chartjs.org
このプログラムを使用して起こった何らかの事故,故障などの責任は負いかねますので,ご使用の際はこのことを承諾したうえでご使用ください。
最新版は ホームページにリンクして公開しています。
ただし,自学自習を原則としていますので,著書「楽々Web在庫管理システム with App Inventor 2 一部カラー版」または「楽々Web在庫管理システム with App Inventor 2」をご活用ください。
また,バックエンド開発の学習については,著書「JavaScript+SQLite楽々Webシステム」を,「SQLパラメタ」に必要なSQLite3のSQL文の学習については,著書「SQLiteデータ料理術」を,マルチ・プラットフォーム対応のLazarusについては著書「無料のLazarusで簡単!プログラミング」をご活用ください。
自学自習を原則としています。「わからないから作者に聞く」ではなく「わからないなら,本を読むなど試行錯誤して時間を掛けて自分で解決するか,自分には向いていないと判断して諦める」ようにしてください。したがって,「わからないから作者に聞く」に類する自学自習をする意思のない問い合わせには,返信いたしません(試行錯誤をして時間を掛けるからこそ能力が身につくのであって,短絡的に聞き続けるようでは永遠に能力は身につきませんので)。
kunio.nakamura@gosien.net
○Ver.1.24.3.19 - 2024/4/19
○Ver.1.24.3.19 - 2024/3/27
○Ver.1.24.3.19 - 2024/3/21