今回はBHT-BASICのキー入力について説明したいと思います。
私が使った BHT-1306B ですが、 商品コードなどはバーコードでスキャンすれば入力できますが、 数量などを入力するにはキー入力が必要になります。
以下のソースは、画面モードを「漢字モード」に設定し、キー入力を数字入力方式に設定して 文字列入力を行います。 カーソル表示の制御は LOCATE 命令で、ブロック表示になる様に行います。
このソースの実行の様子は以下の様になります。
この場合、入力はずっとできるのかと思いきや、40文字を入力したところでカーソルが止まります。 BHT-BASICでは INPUT 命令では文字変数の最大文字列長までしか入力できない様です。
当然以下の様に文字列変数の領域を4文字までとすれば、4文字までしか入力できません。
この INPUT 命令の仕様は便利なように思いますが、 キー入力の途中で何かを行いたい場合は別の方法が必要だと思います。
このソースでは桁数が短い場合は問題無く数値入力ができますが、 下図の様に桁数を長く入力すると以下の実行時エラーが発生します。
エラーコード(&H06)(演算結果が許容範囲をこえています。)
この結果から業務プログラムでは INPUT 命令は使えない様に思います。
ではどうすればいいのかは今後の記事にご期待ください。
=====
2016/04/02:の時の情報
私が使った BHT-1306B ですが、 商品コードなどはバーコードでスキャンすれば入力できますが、 数量などを入力するにはキー入力が必要になります。
以下のソースは、画面モードを「漢字モード」に設定し、キー入力を数字入力方式に設定して 文字列入力を行います。 カーソル表示の制御は LOCATE 命令で、ブロック表示になる様に行います。
PRIVATE CD$ SCREEN 1 '漢字モード OUT .pnKeyEnt, .pvKyNm '数字入力方式に設定 LOCATE , , 2 'カーソルをブロック表示 INPUT "コード=", CD$ '文字列入力 WAIT 0, &h01 'キー入力待ち END
このソースの実行の様子は以下の様になります。
この場合、入力はずっとできるのかと思いきや、40文字を入力したところでカーソルが止まります。 BHT-BASICでは INPUT 命令では文字変数の最大文字列長までしか入力できない様です。
当然以下の様に文字列変数の領域を4文字までとすれば、4文字までしか入力できません。
PRIVATE CD$[4] '4文字がMAX SCREEN 1 '漢字モード OUT .pnKeyEnt, .pvKyNm '数字入力方式に設定 LOCATE , , 2 'カーソルをブロック表示 INPUT "コード=", CD$ '文字列入力 WAIT 0, &h01 'キー入力待ち END
この INPUT 命令の仕様は便利なように思いますが、 キー入力の途中で何かを行いたい場合は別の方法が必要だと思います。
PRIVATE NN& '長整数変数 SCREEN 1 '漢字モード OUT .pnKeyEnt, .pvKyNm '数字入力方式に設定 LOCATE , , 2 'カーソルをブロック表示 INPUT "数量=", NN& '数値入力 WAIT 0, &h01 'キー入力待ち END
このソースでは桁数が短い場合は問題無く数値入力ができますが、 下図の様に桁数を長く入力すると以下の実行時エラーが発生します。
エラーコード(&H06)(演算結果が許容範囲をこえています。)
この結果から業務プログラムでは INPUT 命令は使えない様に思います。
ではどうすればいいのかは今後の記事にご期待ください。
=====
2016/04/02:の時の情報
PR
コメント