タグ: ハンディーターミナル

  • [ai]bulkインポート上限数撤廃でプログラムがこんなにシンプル

    先日知った

    SQLite3.8.8以降、bulkインポート500レコード上限数撤廃

    SQLite 500行の壁が無くなったと書かれた掲示板


    2万行を500行ずつ小分けファイルに保存。
    ファイル数だけFOR~NEXTする必要がなくなりました。

    今ならマスターインポートプログラム、劇的にシンプルに作れるはず!

    先月、試しに作ったのがFTPを使ったこれ
    これでも十分シンプルですが・・・・
    bulkインポート上限レコード数撤廃でプログラムがこんなにシンプルに!(FTP版)


    よく考えるともっとシンプルになるはず!

    HTTPでbulkファイルをダウンロードすればいいんだ

    使うコンポーネントは「Connectivity:WEB」
    bulkインポート上限レコード数撤廃でプログラムがこんなにシンプルに!


    完成したプログラムがこれ

    驚くほどシンプル!
    バカみたいにシンプル!

    bulkインポート上限レコード数撤廃でプログラムがこんなにシンプルに!(WEBGET版)


    細かな検証はしていませんが、GotTextイベントでのBulkインポート!

    Gotは過去形!
    なのでファイルダウンロード完了後のSQL実行だと思います。

    テストファイル2万行、普通にインポート出来ました。

    FTP・ZIP・FILEコンポーネントが無かった5年前に作った初回バージョンの100分の1のシンプルさ!

    便利な時代になったな・・・・
    素人でもモバイルデータベースアプリ簡単に作れるよ!


    半月板を痛め休日なのに自宅でAppyBuilderの勉強中
    暇だからハンディーターミナルアプリの市販品作ってみようかな・・・

  • [ai]SQLite、条件分岐のカラム表示を勉強中

    使えそうなTableView extensionを本番アプリへ導入したい。

    TableViewExtiensionrリスト完成かな


    でもこのextension、カラム(=項目)1個増やすだけでレイアウトがすぐ崩れる!

    TableViewExtension本番アプリ導入準備:項目の多い本番アプリ、1列増やすだけでレイアウトが崩れる!


    カラム(=項目)の多い本番アプリでTableView extensionを使うには、

    まずカラムを減らす方法を探さねば!
    AccessのIsNull、IIF、choose的なもの
    SQLiteに有るのかな?

    で、見つかったのがこのページ

    [値がNULLだった場合は指定した別の値を返す(ifnull関数, coalesce関数)]

    SQLiteではcoalesce関数を使うらしい

    では早速テスト

    目標は

    JANコードがあれば表示、
    無ければitemcd(=商品CD)を代わりに表示

    なお、テストは「DB Browser for SQLite」を使用。
    最初、AppyBuilderで勉強を始めましたが何度やっても失敗!
    検証しやすいよう「DB Browser for SQLite」に変えました。

    テストデータがこれ
    TableViewExtension本番アプリ導入準備:まずはカラムを減らす方法coalesce関数勉強中2:テストデータがこれ


    SQL文がこれ

    select
    itemcd,jan,coalesce(jan,itemcd,’NoCODE’),itemname
    from m_item

    うううう動かないよ

    JAN未登録商品で、代わりのitemcdが表示されない!
    なんで?

    TableViewExtension本番アプリ導入準備:まずは項目を減らす方法coalesce関数勉強中3:何度してもcoalesce関数が動かない!

    そして1時間、右往左往・・・・・・・

    あ、原因分かった!

    元データが違うんだ!

    (‘328030′,”,’立石園 さみどり’,0),
    ではなく、こっちだ!
    (‘328030’,NULL,’立石園 さみどり’,0),

    ブランクで無くNULLじゃないと動かないのね!

    早速、bulkインポートデータを’’(=0桁文字列)からNULLへ書き換え再インポート。
    未登録欄がNULLになった!
    ゴールが見えてきた
    TableViewExtension本番アプリ導入準備:まずは項目を減らす方法coalesce関数勉強中4:NULLでデータインポートし直し


    やっとcoalesce関数の使い方がわかりました
    TableViewExtension本番アプリ導入準備:まずは項目を減らす方法coalesce関数勉強中5:やっと動いた


    あれ?
    本番アプリは、みんなブランク!
    この場合、どうすればいいんだ?

    また検索のやり直し!

    NULLでなくブランク(=文字数0の文字列)の場合をネット検索し見つけたページがこれ

    [カラムの値に応じて異なる結果を返す条件式の記述(CASE句)]

    このページを参考にSQL文を作成

    select itemcd,jan,
    case jan when ” then itemcd || itemname
    else jan || itemname
    end as CD_NAME
    from m_item;

    うまく動きました!
    TableViewExtension本番アプリ導入準備:CASEとダブルパイプが使えそう!



    複数カラムをCASE ELSEとダブルパイプ||で1つにまとめられたら本番アプリにTableView extension導入できそう!!

    SQLite、奥が深い!
    SQLite、スゲー面白い!

  • [ai]最大レコード数制限が撤廃されたbulkインポートプログラム

    Google検索で見つけたSQLite3.8.8からbulkインポートのレコード数制限が無くなった投稿

    since version 3.8.8,the number of rows in a VALUES clause is no longer limited by SQLITE_LIMIT_COMPOUND_SELECT.

    SQLite 500行の壁が無くなったと書かれた掲示板

    500レコード制限ありの今のインポートプログラム開発
    とっても苦労したんですよ

    パソコン側で、各種マスターを500行ごとでInsert文を作り、出来た数百ファイルをUTFエンコードしZIP圧縮、そしてFTPアップロード
    アプリ側で

    1. FTPダウンロード
    2. ZIP解凍
    3. 解凍フォルダー内をls
    4. 見つけたファイルをForループでReadしながらSQLを実行
    5. ファイルが有るだけ繰り返す

    実際のプログラムがこれ。(これでも随分シンプルになったバージョン)
    開発当初、AppyBuilderにFTP & File & ZIP機能が無くhttpダウンロード+インポートをForでループさせる仕様でとっても不安定。
    エラー出まくりの為、Forループを前半・中盤・後半に3分割、タイマーで開始時間をずらし実行させてました。


    今回作ったレコード数制限撤廃版のbulkインポートプログラムがこれ

    なんてシンプル!

    ※SQL.RunQueryをlblPrice.textに繋いでる深い意味は無いです。成功ならTrueと書かれます。
    [AppyBuilderExtension]TableViewの勉強:プログラム


    ちなみに、今回のテストデータはこんなSQL文

    insert into m_item(itemcd,itemname,itemprice)
    values(“1111″,”商品1だよ”,100),
    (“2222″,”商品2だよ”,200),(“3333″,”商品3だよ”,300)

    検証用の数千レコードのSQL文はAccessクエリで作成
    [AppyBuilderExtension]TableViewの勉強:テストデータはAccessクエリで

    Accessクエリのデータシートビューをテキストファイルへコピペ
    先頭にinsert into m_item(itemcd,itemname,itemprice)valuesを付け
    最終行のカンマを消せばSQLの完成!
    あぁ、後一つ、このファイルをUTF-8で保存。
    [AppyBuilderExtension]TableViewの勉強


    今回、4000行のインポートに成功!

    次は20000行のファイルを作ってテストしてみます。

  • [ai]SQLite bulk Insert 500レコード制限が無くなってる!

    2014年夏「ハンディーターミナルアプリが自作できないか?」とネットをウロウロし辿り着いたのが下記のページ。

    [SQLite Bulk Data Load–Hossein Amerkashi’s Blog(2014/5/6)]


    「AppyBuilder(旧名Ai2LiveComplete)」開発者Hossein Amerkashiさんのブログ。
    僕のハンディーターミナルアプリは、このページを参考に開発しました。

    このページの注意書き:

    Bulk insert into SQLite database has a limit of 500 rows. If you intend to insert over 500 rows, you’ll have to break your insert statements.
    1度にインポート出来るのは500行。
    それ以上なら、500行のファイルを複数用意しろ

    レコード数1万行超の「商品・得意先マスターインポート機能」開発に、すご~く苦労しました。

    500行ごとに分けbulk insertファイルを作る

    今使ってるBulk Insertファイル生成プログラムがこれ(MS-Access製)
    前処理完了後に次の処理を始める為、目視で確認しながら各工程のボタンを押すアナログな仕様。

    20190321MS-Accessソフト「GoodMonringSQL」作成とテスト


    1000個近いbulkファイルを取り込むハンディーターミナルアプリ側プログラムもかなり複雑。

    この500行の壁がなくなれば開発が楽になるのになと思っていたら・・

    新しいSQLiteには500行制限が無いそうです!

    google検索で見つけた投稿がこれ
    SQLite 500行の壁が無くなったと書かれた掲示板


    since version 3.8.8,the number of rows in a VALUES clause is no longer limited by SQLITE_LIMIT_COMPOUND_SELECT.

    version 3.8.8以降、行数での制限は無くなった!

    早速、確認
    まず、SQLiteのバージョンの調べ方を検索

    [SQLiteのバージョン情報を取得(sqlite_version関数)]

    select sqlite_version();

    SQLite version確認用アプリを作成
    SQLite versionを調べるコマンド


    では、確認

    Android 4.4.2端末で実行するとSQLite 3.7.11(500行上限あり)
    SQLiteのbulk Insert 最大500レコードの上限無くなったのね!Android4.4.2のSQLite versionは3.7.11


    Android 5.1端末で実行するとSQLite 3.8.6.1(ぎりアウト、500行上限あり)
    SQLiteのbulk Insert 最大500レコードの上限無くなったのね!Android5.1のSQLite versionは3.8.6.1(SILVERバージョンで確認)


    Android 6.0.1端末(=Nexus7)で実行するとSQLite 3.8.10.2(500行上限なし!!!)
    Android6.0.1のSQLiteは3.8.10.2


    Android 7.0端末(=Zenfone AR)で実行するとSQLite 3.9.2(500行上限なし!!!)
    SQLiteのbulk Insert 最大500レコードの上限無くなったのね!Android7のSQLite versionは3.9.2


    うふ、僕の新スマホ「Pixel 3a」
    Android 9.0端末で実行するとSQLite 3.22.0(500行上限なし!!!)
    追記2020/5/23:Andoid10アップグレード後再実行してもSQLite 3.22.0でした。
    SQLiteのbulk Insert 最大500レコードの上限無くなったのね!Android9のSQLite versionは3.22.0


    では、実験

    生成プログラムで作られたbulk insert文の500行目を501行目にコピペ
    PRIMARY KEYの商品CDは存在しない番号、商品名は分かりやすく「501行目だよ」に変更
    bulk insert文に501行目を加え、いざテスト!


    501行目、インポート出来るかな?

    僕の元愛機Zenfone AR(=Android7.0(SQLite version3.9.2))でテスト!

    すごーい、インポート出来た!
    SQLite 500行が超えれるかのテスト。Android7(SQLite 3.9.2)は501行目が登録出来ました!


    ちょっと感動

    苦労させられた500行制限が無くなってる!

    Android 5.1端末でギリだめだったので、社内のスマホが全てAndroid 6以上になれば500行リミテーションは完全に無視できる!

    数十個の得意先マスタが、1ファイルに!
    数百個の商品マスタも、1ファイルに!

    インポート周りのプログラムを7割削れる

    でも、使えてるAndroid 4.x、5.x端末を買い換えるのはもったいないか!
    しばらくこのまま・・・

  • [ai]AppyBuilder TableView Extension v3

    「本家MIT App Inventor」で注目され、ちょっと遅れてAppyBuilderにも導入されたのがExtension機能

    [MIT App Inventor Extensions]
    [AppyBuilder]

    Extension機能とは、欲しい機能のアドインソフトを開発画面にインストールするとその拡張機能を持つアプリが開発できるようになること。

    個人的にはExtension導入直後の2016年12月、積極的にテスト。
    その際、エラー出まくりでまったく信用していない機能です。

    自作アプリにはExtensionを全く使っていません。

    もともと拡張機能の多さが売りのAppyBuilder!
    Extension機能の必要性は、僕的にはゼロ。

    あれから2.5年、そろそろこの機能安定したのかな?
    そんな最近、「AppyBuilder Community Forum」で使えそうなExtensionを発見!

    [AppyBuilder Community Forum]


    TableView Extension v3
    [AppyBuilder Extension]TableView Extension v3



    実はApp Inventor系アプリでは、よくあるtable一覧表が作れないんです!
    下記のようなListViewを使ったリストで精一杯。

    ちょっと見辛いんです、これ!

    [AppyBuilder Extension]TableView Extension v3

    TableView Extension v3を使えば見やすい一覧表が作れるかも!


    早速、テスト!
    デザイン画面がこれ
    Table View ExtensionはVerticalArrangement(visible=false:defualt)に表れます。
    左下隅、ExtensionリストのTableViweがこのテストアプリの主役
    [AppyBuilder Extension]TableView Extension v3

    プログラムがこれ
    1:比較用ListView elementsにcsv一覧を代入
    2:TableViewにもcsv一覧を代入(改ページ記号に”]”マークを指定)
    3:TableView表示先にVerticalArrangementを指定
    4:VerticalArrangementを表示(visible=true)
    [AppyBuilder Extension]TableView Extension v3


    起動し[リスト登録・表示]ボタンを押すと
    [AppyBuilder Extension]TableView Extension v3



    サイズ指定縦横98%のTableView Extensionにcsvリストが挿入され画面いっぱいに表示されました。
    [AppyBuilder Extension]TableView Extension v3



    リストの値にタッチすると一覧表が非表示になり選ばれた商品がテキストボックスに挿入されます。

    [AppyBuilder Extension]TableView Extension v3


    使えるぞ、これ!

    早速、ガンガン行数を増やすテスト。
    数十・数百・数千行、どれくらいまでなら安定するのか検証しなければ!

    数百行安定なら、ハンディーターミナルアプリに導入かな!?


    すでに数千個ブロックを使ってる僕のアプリ。
    この上に、Extension追加、そしてブロック追加か・・・・・・・
    大丈夫なんだろうか?
    不安定になるのではと、ちっと心配・・・

  • 業界初「使い捨てハンディーターミナルシステム」だよ

    が~ん、ハンディーターミナル用スマホが死んだ!
    突然、電源が入らなくなりました。

    文鎮化したのは写真右側「HUAWEI Ascend G620S」

    壊れても直さない使い捨てハンディーターミナルシステム


    [「ファーウェイAscend G620S」を買いました]

    22000円で4年半ハンディーターミナルとして
    使えたので元は取れたと思います

    ちなみに写真左側の端末が去年死んじゃった自作ハンディーターミナルシステム現場投入1号機、元僕の愛機「LGスマホ」
    今回壊れたのは現場投入2号機です。

    4年経ち、徐々にAndroid4.x世代の端末が死んでく・・・・

    でも、そんなに悲しく(=コスト増)無いのが僕のハンディーターミナル!

    僕のシステムは業界初!?
    「使い捨てハンディーターミナルシステム」
    壊れたら修理しないで捨てちゃう!
    だってハードウェア(=Androidエントリ機)安いんだもん!


    さて、今度はどのスマホを買おうかな?

    検証用にAndroid 8以上の端末が欲しいな!


    [AppyBuilder]

    今のアプリはAppyBuilder Silver Plan(=サービス終了)で作ったAndroid 4.x用

    現AppyBuilder(旧名Gold Plan)で作り直したマテリアルデザイン版アプリ(Android 5以上)は完成済み!

    ただ原色を多用するマテリアルデザインのデフォルト色が嫌い!
    ケバ過ぎて業務用アプリに向かない。
    マテリアルデザインのタイトルバーデフォルト色は赤!
    その為、完成後1年以上経っても現場投入せず、
    「あーでもないこーでもない」と配色を試行錯誤中

    僕、歌オンチで色インチ

    ちなみに下が201904最新版(=新色)

    この色、どう思います?

    くすんだパステルカラーのWEBページを探し、その配色をパクりました!

    アクセントカラーの濁ったピンクがけっこうキレイ!

    これなら仕事で長時間見ても目が疲れないかな・・・・

    まだ派手過ぎ?
    もっと淡い配色のWEBページ探すべきかな?
    ハンディーターミナルアプリ、マテリアルデザインの最新版

    愛機ZenfonARの有機ELでいい感じに見えるこの色、AQUOSの液晶ディスプレイで見ると予想以上にビビット(=鮮やか)で目が痛い!

    配色は液晶で決めるべきかも・・・・

    配色が決まるのはいつになることやら・・・・
    まだ数カ月は、Silver Plan版(=Android4用)かな!?

  • [it]Gmail・Google Driveダブル障害発生!

    2019年3月13日のGmail・Google Driveダブル障害時、焦りました?
    私は、ちょっとパニックに・・・・

    [Gmail、Googleドライブで全世界的な障害が発生中(2019年3月13日午後12時現在)–engadget]


    得意先で集めたハンディーターミナルの受注データ、他社はどうやって会社へ送信してるのかな?

    私のハンディーターミナルアプリは、Gmail送信しています。
    それがダメならGoogleドライブです。

    形部商事の受注業務
    Googleが作ったApp Inventor系サービスで開発し、
    Googleが作ったAndroid OSのスマホで実行し、
    Googleサービス「Gmail」でデータ送信。

    Google様の手のひらの上で商売させてもらってます!

    3月13日の障害は、昼食時間を挟んだ2時間超。

    11時台に送ったGmailが届かず、Googleドライブへ置いても同期されないまま昼休み。
    13時すぎGoogleドライブのファイル同期が動き出し、なんとか受注データが拾えました。

    Gmail・Google Driveダブル障害発生!


    Googleサービスって、
    水道・電気と同じように動いてて当たり前だと思ってました。
    何度か止まったが、すぐ復旧するので気になりません。

    でも、2時間停止しちゃうと実務に影響出ますね!

    私のGoogle依存症(=Google教信者)直さないとな・・・・
    データ送信方法に、普通のSMTPとFTPを加え4方法に増やせば大規模障害発生時でも大丈夫かな!?
    まぁ、最終的には営業マンが使いこなせるかが問題なんですが・・・

  • [ai]Bluetoothバーコードスキャナー3台買い増し。これで5台

    ちょっと大き目の「OPN-4000i」2台に続き、今度はスマホ背面に固定出来る薄めボディのスキャナーを買いました。

    2台購入「OPN-4000i」
    20190113Bluetoothスキャナ対応版構築


    憧れ「S800」!でも値段が・・・
    「Socket S800」が欲しいよ~


    スマホ背面固定用に薄く作られた専用スキャナー「Socket S800」が約3.5万円と高いので、今回は「Cyclops ARK-5000X」を3台購入。

    ボディ厚みはS800とほぼ同じ

    幅x奥行x厚み
    OPN-4000i:36mm x 83mm x 21.5mm
    Socket S800:53.94mm x 86.9mm x 12.7mm
    Cyclops ARK-5000X:38mm x 85mm x 13.4mm

    値段は、中古が出回っていない「Socket S800」と違い、「Cyclops ARK-5000X」の中古はけっこう有りました。
    今回買ったのは激安1台1500円プラス送料!

    3台中1台でも動けばラッキーと思って買ったら運良く全部動きました。

    20190302Bluetoothバーコードスキャナー3台買い増し。これで5台に


    マジックテープでスマホに固定した様子
    ちょっとかっこ悪いな・・・・
    思いがけず邪魔なのがXperiaの飛出した電源ボタン!
    誤って押してしまう!
    中古で買い集めたスマホ。新規購入時はXperiaは止めまいとな
    20190302Bluetoothバーコードスキャナー3台買い増し。これで5台に


    これなら専用機みたいに片手げ受注作業できそうです。
    20190302Bluetoothバーコードスキャナー3台買い増し。これで5台に

    ハンディーターミナル専用機にかなり近づけたかな?

    ちなみに誤解のないように

    ハンディターミナルシステムを外注する余裕がないので、こんなことしてるんじゃないんですよ!

    形部商事は創業以来の無借金経営。
    必要なものに投資する余裕は有リます。

    モノ作りが好きな僕個人の趣味で、投資が必要になる度、家具からアプリまでなんでも先ず自作にチャレンジしてます。

    ハンディターミナルアプリは、たまたま作れたんです。

  • [ai]MIT App Inventor for iOSベータテスト開始!

    元々はGoogleが作った教育用Androidアプリ開発環境が「App Inventor」

    プログラミングは専門言語(=文字)入力ではなく、機能別ブロックの組合せで作る初心者用。
    だから素人の僕でも業務用モバイルアプリが作れました!

    実際のプログラムはこんな感じ
    20180420新機能販売履歴


    私、これをベースにした元有料(今無料)サービス「AppyBuilder」のメンバーになって4年。
    この間に、ハンディーターミナルアプリを開発し、日々カスタマイズを続けています。
    20190113Bluetoothスキャナ対応版構築



    Google撤退後、App Inventorを管理運営しているのがMIT(マサチューセッツ工科大)

    今回、MITが発表したのが”出る出る”と噂されていたiOS端末(=iPhone用)アプリ開発版「App Inventor for iOS」のベータテスト開始のニュース

    いよいよ完成間近です!
    2019年夏公開に向けて、まず少数限定のベータテストを始めると発表しました!

    [MIT App Inventor for iOS Enters Beta Testing]

    20190225MIT App Inventor for iOS Enters Beta Testing


    正式スタートに向け徐々にテスト参加者を増やすそうです。
    下記のページで申し込めば、あなたもテストプログラムに参加できるかもよ!

    [ベータテスト参加申込ページ]



    iPhoneユーザーが妙に多い日本!
    このニュースに注目する人多いのでは?

    2019年夏、
    誰でも簡単にiPhoneアプリが作れちゃう
    時代になるよ!

    下のページで、iOS版への移植状況が確認できます。
    [Progress of App Inventor for iOS]

    各コンポーネントごとに分かりやすく箇条書きされたページ。
    ちょっと心配なのがExtensionの記述が無いこと

    個人的に、App Inventor開発をする主たる目的は

    モバイル端末で動くデータベースシステムが作りたい

    SQLite extensionが使えないのでは、欲しい(=仕事で使える)アプリ作れないな・・・・

    まぁ、きっちり作り込まれているが
    割高に感じるApple製品がキライな私。
    持ってるのは古いiPod touchだけ!
    なので、このニュース個人的にはどうでもいいニュース

    ただ、今年発売が噂されてる最新CPU、大型ディスプレイ搭載iPod touch2019が気になるんです。

    iPod touchはあくまで音楽プレイヤーなので2,3万円で買えるはず!

    現状ipod touchの4インチディスプレイが小く使い難いとお蔵入りになった僕のFileMaker製iOS版ハンディターミナルアプリ。
    新型iPod touchが本当に発売されれば買って、このアプリを復活させてみようかと思案中でした。

    でも、FileMakerの開発画面が超々使い難くて大嫌い!

    もし「App Inventor for iOS」でSQLiteが使えたらゼロからハンディターミナルアプリを作った方がFileMakerアプリのカスタマイズより早く完成できる気がする。
    FileMaker製iOS版ハンディターミナルアプリ

  • [ai]「Socket S800」が欲しいよ~

    2019年初チャレンジ

    自作ハンディーターミナルアプリをBluetoothバーコードスキャナー対応版に改造するぞ!

    いざプログラムを始めるとあっけなく完成。
    本当は、4年前の開発当初に8割完成済み。
    残り2割は旧Androidの仕様で作り込めなかった部分。

    Android 7+ 最新Google日本語入力だと微調整のみで対応版が完成しました。
    20190113Bluetoothスキャナ対応版構築


    この最新バージョン(+スキャナー)を試してもらうと、まずまずの好評価!
    そのまま1台目のスキャナーは実践投入。

    仕事に使えるプログラムが完成したのでスキャナーを経費として認めてもらえ自腹回避できました(バンザイ)

    さて次のバーコードスキャナーを買わねば!

    スマートフォンの背面に取り付け片手で操作できる薄い筐体のスキャナーは無いかな・・・

    とGoogle検索すると、まさにその為用のスキャナーが見つかりました!
    それが「Socket S800」

    これをスマホに固定して使えば、僕のアプリは一流端末「KEYENCE製ハンディーターミナル」に近づけるかな・・・?

    「Socket S800」が欲しいよ~
    問題は値段、Amazonで35,953円
    10台買うと35,953円x10=359,530円か・・・(高いな)

  • [ai]自作ハンディーターミナルアプリBluetoothスキャナ対応版完成!

    新年なので何か新しいことにトライしよう!
    まずは2015年に諦めた「自作ハンディーターミナルアプリのBluetoothスキャナー対応」に再挑戦。

    [[ai]bluetoothバーコードスキャナー対応版が作れない・・・・2015/1/11]
    [[ai]2019年ならbluetoothバーコードスキャナ対応アプリ作れるかも!・・・2019/1/8]


    取り合えずアプリ開発用に買ったBluetoothスキャナーがこれ
    [OPN-4000i-WHT CCDバーコードスキャナ–Amazon]

    なんと中古で4980円
    使い物になるプログラムが開発出来なければ経費として認めてくれない厳しい経理担当!
    最悪、自腹になっても痛みが小さい最安スキャナーを探し、たどり着いたのがこれ。

    Amazonで「OPN-4000i-WHT iOS対応(MFi認証)小型CCDバーコードスキャナ・データコレクタ 」買いました


    textbox「バーコードスキャン.LostFocus」に追加した新プログラムがこれ!
    棚卸画面と受注画面の2ヶ所、全く同じプログラムをBackpack経由で単純コピー。

    やってることはとてもシンプル!
    1:得意先情報が未登録なら何もしない
    2:バーコードが8文字以上16文字以内なら開発済み「商品マスタ参照」モジュールを実行
    20190113bluetoothスキャナ対応一応完成

    わぁ~い、これだけで対応版アプリが完成!

    従来のカメラを使った光学式バーコードスキャンでは読み取り難かった横幅のある「大野海苔 卓上味付け海苔」外箱のITFコードでスキャンテストすると・・・・・・
    20190113bluetoothスキャナ対応一応完成

    Bluetoothスキャナーなら楽々スキャン!
    20190113Bluetoothスキャナ対応版構築


    悲しいけど、未解決の問題点が1つ

    textbox「バーコードスキャン」以外でバーコードスキャンすると場所により画面がクラッシュ(=CLOSE)しちゃうんです!

    きっとスキャン時に付加されるCRLFが、何か悪さしてるハズ!
    でも週末、右往左往しましたが解決策は見つからず諦めモード。

    結局、どんな状態でBluetoothスキャンしてもクラッシュしないアプリの開発は諦めました。

    セールス担当へこう伝えます。
    「Scanバーコード」欄以外でBluetoothスキャナーを使うな!

    使って入力画面が閉じたら、また開いてね

    中途半端ですが、一応新バージョン完成!
    この緩い完成度が僕らしい!

    追記:薄暗い倉庫で棚卸しに使ってみると

    素晴らしい
    作業がすごくスピードアップ!

    これなら憧れのキーエンス製ハンディにかなり近づけたかも・・・

    と言っても、キーエンス製ハンディを触ったことがない私。
    一流メーカーの専用端末ってどんな使用感なんだろうな・・・

    次は、本格導入用のスキャナー選定。
    右手にスキャナー、左手にスマホだと両手がふさがり作業効率が下がった!
    貧乏くさいけどスマホ背面にマジックテープで貼れる薄いスキャナーがあると便利かも・・・

  • [db]Google Fusion Tablesが終了するそうです

    Googleさんのメールにこんなことが書いてました。

    we will be retiring Fusion Tables. We plan to turn down Fusion Tables and the Fusion Tables API on December 3, 2019

    2019年12月3日にGoogle Fusion Tablesが終了するそうです。

    無料MIT App Inventorでハンディーターミナルアプリ開発ができないか検討中、最初に試したのが無料クラウド型SQLデータベースサービス「Fusion Tables」

    この組合せで作れたら完全無料、懐に優しい開発環境。

    試してみるとselect・update・insert・deleteが普通に使える!

    でも、2つの問題があり不採用。
    1つは、徳島県南、西部には通信圏外エリアがまだ広くあること。
    2つ目が大問題、書込速度が超遅い!
    insert、updateの度に数秒待たされテンポ良く受注作業が出来そうにない!

    クラウド型データベースでのハンディーターミナルアプリ開発は無理でした。
    書き込みが一瞬で終わるローカルのSQLiteが必須です。

    Fusion Tablesのテスト

    それにしても、無料だけど突然止めちゃう、突然有料化されるGoogleサービスを使ってシステム開発するのって怖いですよね!
    ある日突然、苦労して作ったものが使えなくなったらすごく悲しい。

  • [ai]新サービス名は「Koudular」

    SQLiteが使えるApp Inventor系サービス「Makeroid」に久しぶりにアクセスすると・・・・・

    あれ、サイトが無い!
    僕のテストアプリが無い!
    マジ、Makeroidサービスが終わってる!

    その上、初めて見聞るサイト「Koudular」へ勝手に誘導された!

    やばい、フッシングサイトなの・・・

    [Koudular]


    このドメイン名を急ぎGoogle検索すると、3日前のこんな投稿が見つかりました!

    [What happend with Makeroid :makeroid:?]
    What happend with Makeroid :makeroid:?
    We wanted to have something unique, something which can easily identify us. Makeroid was composed by “make” and “andRoid”, and both words were used a lot nowadays
    Also, containing the word “Android” on the name restricts a little bit our possibilities. As App Inventor is working on an iOS version, it wouldn’t make sense to be called with something containing Android and offering something releated with iOS

    Why Kodular :kodular:?
    Well, it took us several days to decide a new name. We finally made up a word which can suit us: Kodular

    The word Kodular comes from joining two words:

    Kode -> This derivates at the same time from Code. We decided to add a K to it to make it different from the normal word. We pretend to tell that we provide a pseudo-code service, so it’s better calling it using a different word but at the same time similar
    Modular -> We provide a “modular coding” service. Also, we will change our products names from services to modules, in a way we will provide different modules for app development such us the Creator or the Store
    We also want to say that the word Kodular in Estonian means “the core”, so we think it perfectly suits us in a way we provide the core of the introduction to coding

    貧しい英語力で、ざっくり読むと・・・・

    サービス名「Makeroid」は、作る(=make)とAndroid OSを組み合わせた造語。
    Make もAndroidも検索キーワードとしてメジャー過ぎてサービス名が目立たない!
    その上で、本家「MIT App Inventor」はiOS対応の準備中でAndroidに特化したような名前を変えたい。

    そこで決めたのが「Kodular」
    コード(code)とモジュラー(moduler)型開発の造語。
    CodeのCをKに変え、Modulerを繋いだのが新サービス名。

    20181030:新サービス名は「Kodular」カメレオン!?


    新サイトで開いた僕のテストアプリ
    20181030:新サービス名は「Kodular」カメレオン!?


    ネット上のサービスって目まぐるしく変化し続けるので、ついてくのが大変です。

    とにかく、苦労して作った自作ハンディーターミナルアプリの開発・管理に使ってる「AppyBuilder」は末永く続いてほしいものです。
    まぁ、AppyBuilderもメンバーになってる4年間で3回サービス名が変わったんですけど・・・

  • [ai]Makeroidを勉強。ハンディーターミナルアプリ作れるかな?

    今日は、ネットで見つけたいSQLiteが使えるApp Inventor系サービスの中で最も気になる「Makeroid」を勉強。

    [Makeroid]


    「Makeroid」は、「元祖MIT App Inventor」「Thunkable」とは違い”SQLIte extension”を使うのではなく、AppyBuilderと同様にオリジナル機能としてSQLiteを実装してるサービス

    [AppyBuilder]


    で、使った感想は

    ハンディーターミナルアプリ(=Mobile Database System)作るならAppyBuilderが上かな
    理由は3つ
    1:データをリストにするとセパレータ記号がカンマ(,)記号ではなくスペース
    2:SQL実行と実行後の処理が別々のブロックに別れてる
    3:FTP、File機能のファイル指定が絶対パスなんです!(動かないデバイスがあるはず)

    デザイン画面がこれ
    紫色基調でThunkableより配色がオシャレ
    その上で、AppyBuilderに負けないオリジナル機能が盛りたくさん
    Makeroidを使ってみました。ハンディーターミナルアプリ作れるかな?


    僕のハンディーターミナルアプリに必要な3つの機能がオリジナルで実装されているのはAppyBuilder以外ではMakeroidだけ!
    その機能が、「SQLite」「FTP」そして「File:UNZIP」

    勉強用に作ったテストアプリがこれ
    Makeroidを使ってみました。ハンディーターミナルアプリ作れるかな?


    まずは、SQL executionの勉強
    「Single SQL」ブロックでcreate table、 insert、drop tableを定義・実行
    「After Execution」ブロックでSQL実行後の処理をプログラム
    Makeroidを使ってみました。ハンディーターミナルアプリ作れるかな?


    次はQuery(=データ抽出)
    「Row Query」ブロックにselect文を書き「After Query」ブロックにSQL実行後の処理をプログラム。このテストプログラムでは、select結果表示をListView:Elements(=ソース)に指定。
    Makeroidを使ってみました。ハンディーターミナルアプリ作れるかな?


    で、気になった1つ目の問題点

    リスト表示させたセパレータ記号がカンマ(,)ではなくスペースなんです!
    他のサービスではカンマ(,)記号。
    カンマ(,)なら「After Picking」の選択値(=selection)を「list from csv row text」ブロックに代入して個々の値を取り出すプログラムが作れます。
    でも、スペース記号では出来ません

    次いで2つ目の問題点

    「Row Query」と「After Query」を対にしてプログラムするみたい!
    でもSQLiteコンポーネントは、「After Query」を1個しか持てません。

    複数の検索機能を作るには、たくさんのSQLiteコンポが必要になる!

    得意先検索、商品検索、履歴検索・・・・
    同一画面に組み込みたい検索がいっぱいある時、とっても不便。
    綺麗な仕様とは思えない。

    AppyBuilderは「SQLite RunQuery」ブロックにSQL文を直書きするのでSQliteコンポ1個で好きなだけ検索機能を同一画面に持たせられる


    次はネットワーク系の勉強
    Makeroidには、ネットワーク用に「wifi」「network」の2つのブロックが有ります。
    練習プログラムがこれ
    Wifi接続On/Off、IPアドレス、SSID名、ネットワークスピードが簡単に確認できました。
    これ、すごく便利
    makeroidの勉強:Network周り

    動かした様子がこれ!
    Makeroidを使ってみました。ハンディーターミナルアプリ作れるかな?


    次は、Screenshot機能が有ったのでお遊びで追加。
    Screenshotを撮りプレビューさせるプログラムがこれ。

    Makeroidの勉強:画面キャプチャー(Screenshot)


    Screenshot画像(=png)をimageコンポーネントへ表示させた様子
    んん~、Makeroidって絶対パスで書くんだ!
    Makeroidを使ってみました。ハンディーターミナルアプリ作れるかな?

    最後は、FTPとUNZIPの勉強。
    僕のハンディーターミナルアプリでは、ZIP圧縮したマスタデータ(数百のbulk importファイル)をFTPダウンロード後UNZIP、それをインポート。受注データは、固定長に吐出しFTPアップロードする仕様。

    この仕様のアプリが作れるかテストしたプログラムがこれ!
    Makeroidの勉強:FTPとupzip


    ここで3つ目の問題点

    えええ~、MakeroidのFTPとFileコンポーネントって絶対パスを直書きしないと動かないみたい!

    テストアプリのパス「/storage/emulated/0/」は、Nexus7用(Android 6)。
    Android 7.0「Zenfone AR」では、このパスでは動かない。

    これでは端末のメーカー・OSバージョン次第で動く端末が非常に限られてしまう!

    AppyBuilderだと相対パスでOK
    ホームディレクトリのルート(/)から書くだけ!
    これ、すごく便利な仕様です!

    やっぱAppyBuilderは、世界最高No.1!

  • [ai]Thunkable Xを使ってみましたが・・・・

    「ハンディーターミナルアプリを自作出来ないか?」とGoogle検索「App Inventor + SQLite」をしてたのが2014年秋。
    その当時、唯一見つかったのが有料サービス「AL2LiveComplete(=現AppyBuilder)」でした。

    [AppyBuilder]


    あれから4年、「MIT App Inventor2」にExteision機能(=拡張用インターフェイス)が加わり、有志がSQLite Extensionを公開してくれたことで、今同じgoogle検索すると複数のサービスが見つかるようになりました。

    SQLite Extension
    [aix-SQLite(App Inventor extension for SQLite)—GitHub]

    2018年秋時点で、SQLiteが使えるApp Inventorベースのサービスがこれ!

    1. 本家App Inventor+SQLite Extension
    2. Thunkable+SQLite Extension
    3. Makeroid+SQLite Extension

    AppyBuilder以外に、ハンディーターミナルアプリをより快適に作れる開発環境がないか試してみました。
    最初にイジってみたのが「Thunkable」!

    夢のCross Platform「Thunkable X」


    このサービスの最大の売りが、同じプログラムでAndroid用とiOS(=iPhone、iPad)用プログラムが一度に作れるCross-Platfome!

    [「Thunkable Cross Platform ✕」—-Thunkable Docs]

    へぇ、App InventorプログラムがAndroidとiPhoneの両方で動くなんて夢みたい!

    で、早速テスト!
    Android用コンパニオンAppがこれ
    Thunkableコンパニオンapp


    Android用アプリ+iOS用アプリが同時に作れるサービス「Thunkable ✕」が公開されたのは4ヶ月前!
    出来立てホヤホヤ。

    [Thunkable ✕]


    iOS用コンパニオンAppがこれ
    thunkableLive for iOS


    操作画面がこれ!
    薄いピンクと濃い紫色が使われてる、配色がダサい今ひとつのデザイン!
    Thunkable Xのプログラム画面


    Thunkable Xの「User Intarface」ブロックはたったの8個!
    Cross Platformを実現するには、この超ベーシックな8個が限界なのかな?
    Checkbox、ListPicker、Spinnerが無いのは困る!
    Thunkable Xの部品は少ない!


    ちなみにAndroid専用サービス「Thunkable Classic」の「User Intarface」ブロックは17個!
    AppyBuilderGoldは26個もある!
    Thunkable Classicのインターフェイスブロックは17個。ApyBuilderは26個!


    さてと、ではテストアプリ作成開始!

    あっ、そう言えば・・・
    私、iOS端末持ってたっけ?

    僕、Apple嫌いでiOS端末を買ったことはほぼ皆無!
    丁寧に作り込まれたキレイな製品を割高プライスで買う性格ではないです!
    私の金銭感覚は、程々の製品が程々の金額で売り出され、それを直ぐには買わずに我慢!
    型落ちし値が下がってから買うのが私!

    唯一持っていたのはFileMakerでハンディーターミナルアプリ開発の勉強用に買った5世代目iPod Touch!
    FileMakerのあまりのポンコツな開発環境に嫌気がさし勉強を中止してからはほとんど使っていませんでした。

    そこで、まず久しぶりに使うiPod touchのOSをアップデート!
    対応可能な最新OS「iOS9.5.3」へアップ後、「Thunkable X」製テストアプリをメール送信しインストール。

    んんん~、実行すると予想通り「信頼性エラー」で動かない!

    厳しい「Apple Store」アプリ審査無しの野良アプリを動かすにはひと手間必要でした。

    「信頼」設定しろと警告が出て止まった!
    iOS端末でAppleStore経由でないアプリは「信頼」設定が必要でした。


    そこで、Rappidly Incを「信頼」設定!
    iOS端末でAppleStore経由でないアプリは「信頼」設定が必要でした。


    これで準備OK!

    それでは、テストアプリを実行すると・・・・(あれ?)
    夢のクロスプラットフォーム開発のテスト結果は、「即クラッシュ!」

    ならばAppleStoreからインストールしたThunkableLiveコンパニオンアプリを実行すると。。。。

    やはり、即クラッシュ

    まったく何も動かない!

    第5世代目iPod TouchへThunkableコンパニオンAppをインストール


    ipod touchのiOS9.3.5が未対応OSなのかな?

    そこでgoogle検索「Thunkable ios version」

    下のページに、iOS 8以上と書いてます!
    だったら、何でクラッシュするの!?

    [Thunkable’s DIY app builder is now cross-platform]

    Specifically, Thunkable is compatible with all Android devices that are running Android 4.1 and above and all iOS devices that are running iOS 8.0 and above.

    iOSアプリと言ってもiPod Touchでは動かないのかな?

    とにかく「Thunkable X」にはExtension機能が無い上、Android用の半分近いコンポーネントが使えない発展途上の開発環境でした!

    Apple製品にまったく興味がない私にとって「Thunkable X」は全然魅力的に見えないサービス!

    AppyBuilderの方が、10000倍使える開発環境だと思います。

  • [ai]最新MaterialDesignバージョンの実践投入は延期・・・

    App Inventorの新機能「パーツサイズのパーセント指定」で作り変えた僕のハンディーターミナルアプリ!

    20180826ハンディーターミナルアプリ最新版は、初めてGOLDから開発したんだけど・・・


    私物ZenfonAR(台湾製)、買ったばかりのZTE BladeS g03(中国製)でいい感じで動いたのに・・・・
    SHARP Aqueous(日本製)で、予想通りの不具合発生

    前者と後者の違いは、端末下部にある3つのナビゲーションボタンが、ハードウェアかソフトウェアかの違い。

    個人的に、海外製のナビボタンはハードウェアが多く、日本製はソフトウェアが多いような気がします。

    「パーツサイズのパーセント指定」機能で作った画面は、ソフトウェアナビゲーションボタン分操作画面下部が見えなくなる
    それを見越し高さを縮めるとハードウェアボタンの端末で下部に隙間が空いて不格好

    20180908:「パーツサイズのパーセン指定」機能、トナビボタンがソフトウェア表示の端末ではダメでした


    もともと、前バージョン開発時「パーツサイズのパーセント指定」機能が無かったので、自作のリサイズ機能を作成。
    それでも、同じ問題が起きたので「画面縦サイズ任意pixelマイナス」機能を加えました。

    最新バージョンは、開発環境自体が画面サイズを取得するので、画面サイズのマイナス調整ができません。

    この問題とは関係ないが、MaterialDesignのタイトルバーが無駄に太いのも気に入らない
    数字ボタン1列分以上あるのがもったいない!
    その上で、高齢化が進む我社、文字は可能な限り大きくするよう言われてる。
    やれやれ、タイトルバーの非表示を含め高さ調整のやり直しか・・・・

  • [ai]最新版、実戦投入間近かな・・Material Design版!

    Android用自作ハンディターミナルアプリversion1.0完成が2014年12月!
    あれから、もうすぐ4年になる
    当時は、完成できるか不安でいっぱいでした。

    開発環境は、ネット検索「App Inventor SQLite」で見つけたサービス「AppyBuider(=旧名Ai2LiveComplete)」

    [ AppyBuilder ]


    すべての開発はAndroid 4.x用開発サーバ「Silver Plan(=サービス終了)」で行いました。

    途中、Androidのバージョンアップと共に新開発サーバが並行稼動
    Android 5.0以上用サーバ「Gold Plan」が出来ました。

    でも、Goldで採用されたマテリアルデザイン機能が嫌いで使いませんでした。

    [マテリアルデザインとは?作り方とガイドラインまとめ]


    原色が多用される「AppyBuider」マテリアルデザインのDefaultカラーがケバ過ぎて業務用アプリに不向き!
    マテリアルデザインで作るハンディーターミナルアプリは変!

    その為、この4年間のハンディーターミナル追加機能は、すべてSilver側で開発。

    で、そろそろ心配に・・・・・

    世の中の端末は、Android 8 から年末にはAndoroid 9へ!

    Android 4.xで留まってもいられない!
    そこで、空いた時間にコツコツと「Gold Plan」サーバで最新Silver Plan版と同等機能のアプリを作り出りはじめました。

    それがようやく完成!

    僕のスマホにはアイコンが4つ。
    SilverPlan版安定バージョン、SilverPlan版最新履歴参照機能付き
    GoldPlan版ver.1、そしてGoldPlan版最新。
    20180826ハンディーターミナルアプリ最新版:マテリアルデザイン最新版完成


    Gold Planサーバには、本家MIT App Inventorに導入されたパーツサイズのPercent指定が使えるのにも注目!

    形部商事ハンディーターミナルシステムで使っているAndroid端末は、その時手に入るもっとも安価なモデルの寄せ集め!
    画面サイズは、4.7インチスマホ ~ 8インチタブレットまでバラバラ!
    その為、画面サイズから各パーツサイズを自動計算させるResize機能の開発がとても大変でした!

    それが、開発環境でpercent指定出来るなんて夢のよう!

    20180826ハンディーターミナルアプリ最新版は、初めてGOLDから開発したんだけど・・・

    で完成したのがこれ
    左が僕の私物Zenfon AR(Android7.0+5.7インチ)
    右が、ZTE BladeS g03(Androi5.0+5インチ)8000円だよ!

    嫌いな金赤タイトルバーは、グレーに変色。
    不思議なのはAndroidバージョンによってDefaultカラーが違うボタン。
    Android7のグレーの方が、見やすいような・・・・
    でも、Android5の黒白が操作しやすいのかな・・・・・
    とにかく、なんでDefaultカラーが違うの!?
    20180826ハンディーターミナルアプリ最新版は、初めてGOLDから開発したんだけど・・・


    基本画面は2つ「受注」と「棚卸」
    棚卸画面に3機能持たせ、僕のハンディーターミナルアプリは全部で4色(=4画面)
    20180829ハンディーターミナルアプリ最新版!完全マテリアルよ!


    新機能「パーツサイズのパーセント指定」を使えば独自resizeプログラム無しであらゆるディスプレイサイズに自動対応できます!
    これは僕の8インチタブレットで動かした様子
    20180826パーツサイズパーセント指定であらゆる大きさのディスプレイでも自動リサイズしてくれる!


    さて、いつ実戦投入しよう?
    使用中の3台のAndroid4.x端末にはインストール出来ないので、新規に3台買う必要が・・・
    また、出費か!

    まぁ、一般的なハンディーターミナルより絶対少ないIT投資ですむハズ!

  • [it]SQLiteの勉強は「DB Browser for SQLite」

    WindowsでSQLiteを勉強するなら、今は「DB Browser for SQLite」なんですね!

    [DB Browser for SQLite]
    [SQLite]


    4年前、ハンディーターミナルアプリ開発で初めて触ったSQLite。
    その際、SQL文のテストに使っていたのがFirefoxアドオン「SQLite Manager for Firefox Add-on」

    SQLite Manager for Firefox Add-on

    久しぶりに「SQLite Manager」を使ってみると・・・
    あれ、開発が止まり最新版Firefoxに未対応で使えない!

    困った時のGoogle検索
    「SQLite Windows 初心者 勉強 ソフト」でググってみると・・

    Google検索結果1ページ目に出てきたのが「DB Browser for SQLite」
    きっと、今一番人気の旬なソフトがこれかな!

    20180515パソコンでSQLiteの練習するには「DB Browser for SQLite」なのね!

    なぜ急にSQLiteソフトを探し始めたかと言うと・・・

    バージョンアップした僕のハンディーターミナルアプリに問題発生!
    データの一部がインポート出来ていないんです!

    そこで、問題のbulk import文をテストできるソフトが必要になりました。

    で、テストした結果がこれ

    20180515パソコンでSQLiteの練習するには「DB Browser for SQLite」なのね!


    原因は、SQLiteって数値項目にNULLがINSERT出来ない仕様みたい。

    そういえば、開発初期にも似たエラーで同じこと調べた気がする。

    4年前のこと完全に忘れてました。
    老いたのね、私・・・

  • [ai]久しぶりの新機能「販売履歴数一覧」

    ハンディーターミナルアプリの新機能「販売履歴一覧表」がほぼ完成!

    開発時間は3時間くらいかな?
    やっぱ、AppyBuilder(App Inventor+SQLite)開発は超簡単!

    [AppyBuilder]


    まぁ、他にVBA側のプログラミングが1日分くらい必要ですが・・・・

    新機能「販売履歴一覧表」は、任意商品の販売数をポップアップ表示させるもの。

    (まだ未完成)VBA商品マスタbulk import用ファイル生成機能の未使用項目に販売実績を埋め込む改良が必要。

    2017年1月に13333個の実績なら「 201701:13333; 」
    年月と販売数をコロンで繋ぎセミコロンで終える

    この年月数値セットを好きなだけ繋ぐ。

    VBAは未完成なので下のダミーデータを全商品に挿入

    201701:13333;201702:22546;201703:32542;
    201704:443;201705:5556;201706:6642;
    ・・・・・・・

    操作画面の一番下に[販売数]ボタンを追加
    20180420新機能販売履歴


    クリックすると販売数がポップアップ表示されました!

    わ~い、出来た!

    この機能、何に使うかというと僕の仕入れ業務。
    仕入数を決めるのに役立つはず!
    20180420新機能販売履歴


    で、これがApp Inventorプログラム。
    超、簡単でしょ!
    やっぱ、スゴイよAppyBuilder(=App Inventor+SQLite)!

    でも・・・

    よくよく考えると一番たいへんなのはVBAプログラムの変更だよな・・・・
    全商品の月別販売数を集計しながらbulk importファイルを作るって難しそう!
    何より処理時間が超長そうね。
    この新機能、実務投入出来るんだろうか・・・・

    20180420新機能販売履歴


    実はこれ、販売実績表示プログラムじゃないんです!
    なんでもリスト化させる雛形プログラムとして作りました。

    処理の流れはこんな感じ
    1:リスト化したい情報をSQLiteのtext項目に挿入(vbaでの開発)
    2:情報内にカンマ(,)が存在するとINSERT文が壊れるので、取り敢えずでダミー記号セミコロン(;)を使う
    3:「Select 情報 from TableName where CD=’探してるもの’」でリストデータを取得
    4:Segumentブロックで、取得文字列からデータ部だけを切り出す
    5:Replaceブロックで、セミコロン(;)をカンマ(,)に書き換え本来のCSVデータに戻す
    6:出来たcsvデータを「list from csv text」ブロックでリスト化する
    7:プルダウンリストのソース(=Elements)に代入
    8:一覧表リストをDisplayDropdownブロックで表示させる

    この雛形があれば何でもリスト表示させられる!
    さて、何に使おうかな?

    まぁ、まずはVBAか・・・・

  • [ai]AppyBuilder “Gold Plan版” 完成!

    独自拡張機能てんこ盛り(元)有料App Inventorサービス「AppyBuilder」Silver Planで作った私のハンディーターミナルアプリ。

    [AppyBuilder]
    [Hossein Amerkashi’s Blog—社長のブログ]
    完成から3年経ち、その間にいろんな変化が起きました。

    • Android5.0で導入された「Material Design
    • MIT App Inventorに導入されたExtension機能
    • これらに対応した上位サービス「AppyBuilder Gold Plan(Android5.x以降用)」開始
    • 従来サービスの名称が「Silver Plan (Androi4以前)」となる。
    • その後、Silver Planが終了。
    • そして、ビジネス的に成功しなかったのかAppyBuilderはオープンソース化され無料になる!

    一番の心配事は、プログラムメンテに使ってるSilver Plan開発サーバがいつまで使えるのか?
    無料化され半年経ったので、そろそろSilverヤバイかも・・・・・

    ちなみに私、無料化後も寄付のつもりで利用料を払い続けてます。

    とても心配になので、保険用に「Gold Plan」版アプリを作りました。

    んんん~、Goldバージョンに難あり!
    「Material Design」が超カッコ悪い!

    僕のzenfoneAR(Android7.0)で実行させたSilver版とGold版のルック比較
    20180313AppyBuilderゴールドプラン版完成! 


    AppyBuilderの「Material Design」、なぜかデザインの微調整が思うように出来ないんです。
    特にボタン!
    Defaultボタンは周りに調整不可の余白が付く黒地白文字ボタン。
    カスタムデザインを選択すると余白がゼロ!

    [5][6]がDefaultボタン、[4][7][8][9][CLR]がカスタムデザイン。
    カスタムにするとボタンがくっつき合い独立したボタンに見えない。
    ボタンに見せる唯一の方法は、交互に背景色を変えるぐらいで、とても不便!
    Gold Plan Defaultボタンで右往左往

    その上で、Android4.xで動かすとDefaultボタンの表示が淡いグレーに変わり超見づらくなる!
    これでは使えないな~
    20180313AppyBuilderゴールドプラン版完成! あれ、Android4.xだと色が変!?

    やれやれ困った!
    もし僕にJavaが書けるオツムがあればこんな心配しなくてすむのにな・・・・