12月決算の形部商事。
年末棚卸しにも有料App Inventorサービス「AI2LiveComplete」で作った自作ハンディーターミナルアプリを使いました。
結果は
んんん〜、評判が悪い
3ヶ月作り込んだ操作画面はそれなりに使いやすいと自信を持ってます。
でも、仕様上どうしても改良出来ないのがカメラを使ったバーコードスキャン。
読み取りが遅い。
薄暗い倉庫では特に読まない!
フラッシュを光らすと、白く飛んでもっと読めない!
湾曲したバーコードは読めない!缶詰はほとんどダメ!
バッテリーが半日で7割減った!
などなど・・・・・
やれやれ「ファーウェイAscend G620S」(22,000円)で、20万円の業務用ハンディーターミナル並の操作性を実現するのは無理なのかな・・・
やっぱ、Bluetoothバーコードスキャナ(30,000円くらい)が必要みたいです。
そこで、ハンディーターミナルアプリをBluetoothバーコードスキャナー対応にすべくプログラム変更開始。
2週間ほど右往左往し、その結果は
が〜ん、作れませんでした
bluetoothキーボード接続時の仕様を調べるため簡易版受注画面を新規作成
さて、プログラム。
MS-AccessVBAなら「AfterUpdate」イベントを使うよな・・・・・
でも、App Inventorにはそれが無い!
有るのは「GotFocus」と「LostFocus」だけ
まず、困ったのがLostFocusイベントの発生方法!
手持ちBluetoothバーコードスキャナ「unitech MS910」の改行記号を何に変えてもカーソルが次のテキストボックスへ移動しない!
CR,LF,CR+LF,TAB・・・・・・、
AccessでもFileMakerでも改行記号CRでカーソルが次項目へ移動するんだけどな・・・・
このまま数日、毎晩自宅で右往左往。
いろいろ試し、ようやくイベントの使い方が分かりました 🙂
AI2LiveCompleteの仕様かな?
改行記号CRを送るとカーソルは移動しないけどLostFocusイベントは発生してるみたい!
使い方がやっとわかり、完成したのがこのプログラム
「やったー、出来た!」と実機で走らすと・・・
おおおお〜、無事動きました 🙂
と喜ぶのもつかの間、次の難題が・・・・・・・
スキャナーの読み取り情報がtextboxに入力されるには2つの条件が揃った時だけ!
1:テキストボックスにカーソルが有り
2:その上でAndroidキーボードが表示されている時
全操作を、組込10キーで操作する僕のアプリ。
Androidソフトキーボードが表示させると操作キーが隠れてしまう!
その上、bluetoothスキャナー接続中、Androidキーボードはこんな感じに縮みます。
出たり・消えたり・縮んだり・伸びたり!
bluetooth接続状態で、Androidソフトキーボードの表示がコロコロ変わり、それに伴い操作画面に使える縦サイズが変わっちゃう!
bluetoothスキャナー対応版アプリを作るのは一筋縄ではいかないよ!
夜な夜な、App Inventorと格闘!
この仕様を前提で、ジャストインタイムにAndroidキーボードの非表示・縮小表示・拡大表示をコントロールするプログラムを作りました。
「やったー、出来たぞ〜」と夜空に向かって吠えて戻ってくると・・・
あれ、何かが変だ
入力途中のデータが消えている!
動きを観察すると、スキャナーがスリープモードになりbluetooth接続が切断された時、App Inventor製入力画面はリフレッシュ(=初期化)され、入力途中の画面上の値が全部消えちゃう!
試しに、他のアプリ(メモ・GMAIL)で観察すると、この操作画面の初期化現象は起きない!
なんで?
Androidの本物アプリの操作画面とApp Inventor製操作画面って似てるようで別モノなのかも
困った!
袋小路モードです。
受注作業、棚卸作業中、数分使わなければbluetooth接続が切れ、その度ごとに指定納品日・得意先コード・受注数を入れ直す必要があるアプリって不便過ぎ・・・・
今のアプリはカメラでのバーコードスキャン専用アプリとして使い続けるしかないみたい
僕にJAVAが書けるオツムがあればな・・・・・