Rakuten

  • 楽天市場

天気予報

最近のトラックバック

  • event (夢茶爺&苦茶爺のPC奮戦備忘録)

カウンタ

Amazon

Powered by Six Apart

VC2

  • デル株式会社

2017年6月26日 (月)

VB.NET:SpreadSheetGearを使って印刷処理

以前はVB.NETからエクセルを使って印刷処理を行うプログラムを作成したことがありました。

エクセル上に雛形となるシートを作成しておいて、そのシートをコピーし、 該当するデータを指定されたセルに当てはめて、印刷を行うというものです。
連続帳票ではなく、A4単票の印刷ではよく行ったものです。

エクセル印字をVBのプログラムから行うためには、エクセルのインストールが必須だったり、 「Microsoft.Office.Interop.Excel」を使ったCOM参照での処理が必要だったりします。
このCOM参照が曲者で、参照を開放しないとエクセルのプロセスがメモリ上に残ったままになったりします。 メモリに残ったままだと、次の印刷ができなかったりと、いろいろ悪さをします。 COM参照をしっかり開放してやれば、問題はないのですが...

やはりパソコンにエクセルがインストールしていないと動かないのがネックです。
そこで、サードパーティ製でエクセル互換のツールが無いかと探したら、 「XLSOFT」から直接エクセルファイルを操作できるツールが出ていました。
それが「SpreadSheetGear」という製品です。(外国製の様で、日本語対応したもののようです)

このツールですがDLLファイルを参照設定して利用しますが、上記のエクセルのCOM参照のオブジェクト内の 関数とほぼ同等の名称を使用している様です。

今回は印刷処理での利用がメインなので、サンプル等を見てみたのですが、 「WorkbookView」を使った印字例はあるのですが、このオブジェクトを使用しない例が なかったので以下の様なソースで試すと、とりあえず印刷はできました。 (何かのご参考までに...)


EXEと同じフォルダに存在する「TEST.xlsx」内の先頭のシートを単に印刷するサンプルです。

デル株式会社

2017年6月21日 (水)

BHT-BASIC4.0:[BS/C]キー入力ではまった件について

BHT-BASICのシステムで処理の実行を行うかどうかを、[BS/C][ENT]キーで処理を行っているのですが、 もちろん[BS/C]キーは処理中断で、[ENT]キーは処理続行としています。

処理を中断しようとして[BS/C]キーを押すのですが、中断できない場合があるとの現象が発生しました。

ソース的には以下の様な組み方で、[BS/C][ENT]キーのどちらかのキーのみの反応行う様にしています。


DENSOさんのサンプルプログラムを見ても、処理の中断の判定は「バックスペース(&H08)」のみで処理しているので、 深く考えずに「BS」のみで中断処理をしていました。

しかし、たまに「BS」が利かない場合があるとのことで、バグの連絡を受けたので、少し調べてみました。 なんと、「BHT1300_Programmers_Manual_J1.pdf」にはちゃんと説明がされていました。 「付録Eキーボードとキー番号」のページからの引用ですが、以下の通りです。

==========================
[BS/C] *1 *2

*1 BSはバックスペース(08h)、CRはキャリッジリターン(0Dh)、Cはキャンセル(18h)、SPはスペース(20h)コードを表します。

*2 一定時間(デフォルト500ms)以上長押しでキャンセル(18h)コードを返します。
==========================
[BS/C]キーの長押しだとキャンセル(18h)コードが返ってくるのでした。

そこで、中止の判定をキャンセル(18h)コードでも行う様に変更し、バグを解消しました。



■関連記事
BHT-BASIC:DENSOのハンディターミナルの開発言語のBHT-BASIC4.0を使ってみた
BHT-BASIC4.0:変数宣言の書き方(BHT-1300)
BHT-BASIC4.0:変数宣言の書き方その2(BHT-1300)
BHT-BASIC4.0:ユーザ定義関数について(BHT-1300)
BHT-BASIC4.0:演算子について(BHT-1300)
BHT-BASIC4.0:画面への表示について(BHT-1300)
BHT-BASIC4.0:キー入力について(BHT-1300)
BHT-BASIC4.0:数値用キー入力関数(ユーザ定義関数)について(BHT-1300)
BHT-BASIC4.0:ユーザ定義関数の値渡し・参照渡しについて(BHT-1300)
BHT-BASIC4.0:文字列を扱うユーザ定義関数について
BHT-BASIC4.0:文字列を扱うユーザ定義関数についてその2
BHT-BASIC4.0:文字列を扱うユーザ定義関数についてその3
BHT-BASIC4.0:TeraTermを使ってDENSOのハンディターミナルにファイル(プログラム)転送を行う方法
BHT-BASIC4.0:I/OポートとWAIT、さらにTIMERについて(BHT-1300)
BHT-BASIC4.0:データファイルの取り扱いについて(BHT-1300)
BHT-BASIC4.0:データファイルの取り扱いについてその2(書込み・読込みの実用的な関数)
BHT-BASIC4.0:データファイルの検索について(SEARCH関数)
BHT-BASIC4.0:ユーザ関数の引数の仮変数に対する代入の注意点
BHT-BASIC4.0:データファイルの削除等について(KILL、CLFILEのラッパ関数)
BHT-BASIC4.0:ファイルの存在確認関数を作ってみました
BHT-BASIC4.0:拡張関数のバイナリサーチ処理関数(BSEARCH.FN3)の使い方
BHT-BASIC4.0:拡張関数のサーチ処理関数(SEARCH.FN3)の使い方
BHT-BASIC4.0:簡単なメニュー表示・選択を行うユーザ関数について
BHT-BASIC4.0:ファイル伝送におけるXFILE命令の使い方
BHT-BASIC4.0:バーコードの読込み(バーコードスキャン)について
BHT-BASIC4.0:Bluetoothデバイスアドレス取得等について
VB.NET:ハンディターミナル(BHT-1300等)とのデータファイルの送受信について

デル株式会社

2017年6月17日 (土)

BHT-BASIC4.0:ハンディBHT-1306Bへの送信エラー(Active USB-COMポートドライバ)

私事なのですが、最近更新したシステムで客先より「データファイルをハンディへ送信できない」との連絡が在りました。
1か月以上は問題なく稼働していたのですが、ある日送信できなくなった様です。その日の午前中には送信できたのですが、 午後での送信でエラーが発生しました。

その日の1回目は送信できたが、2回目には送信できないとはプログラムのエラーでもなさそうですが、 原因がすぐには分かりませんでした。
DENSOにも問い合わせましたが、いままでそんな事例は無いとのことで、原因がはっきりしませんでした。

よくよく客先に伺ってみると、去年の2016年にはOSがWindows7だったものをWindows10にアップされたとのことでした。
(マイクロソフトが無償でWindows10へのアップを推奨していたので、お客様もアップされた様です)

DENSOの「Active USB-COMポートドライバ」を確認すると、最新バージョンが「2.1.0.0」でWindows10に対応となっていました。 去年の「2.0.1.8」からは既にWindows10対応だった様です。

客先のバージョンは「2.0.1.5」でWindows8.1までの対応だったので、早速、バージョン「2.1.0.0」のものを 再インストールしてもらい、通信が出来る様になりました。

Windows8.1までのUSB-COMドライバで、OSがWindows10にアップしても動いていたことも不思議なのですが、 途中までは何とか動いていたが、ついに限界が来たんでしょうか?
とにかく、ドライバのバージョンアップで事無き得て良かったというところでしょうか。 USB-COMドライバが以前のドライバのままで、人知れずWindows10にOSがアップされていて ハンディへの通信が出来なくなった場合には、ドライバのアップをお勧めします。

■DENSO
Active-USB-COMポートドライバ

■関連記事
BHT-BASIC:DENSOのハンディターミナルの開発言語のBHT-BASIC4.0を使ってみた
BHT-BASIC4.0:変数宣言の書き方(BHT-1300)
BHT-BASIC4.0:変数宣言の書き方その2(BHT-1300)
BHT-BASIC4.0:ユーザ定義関数について(BHT-1300)
BHT-BASIC4.0:演算子について(BHT-1300)
BHT-BASIC4.0:画面への表示について(BHT-1300)
BHT-BASIC4.0:キー入力について(BHT-1300)
BHT-BASIC4.0:数値用キー入力関数(ユーザ定義関数)について(BHT-1300)
BHT-BASIC4.0:ユーザ定義関数の値渡し・参照渡しについて(BHT-1300)
BHT-BASIC4.0:文字列を扱うユーザ定義関数について
BHT-BASIC4.0:文字列を扱うユーザ定義関数についてその2
BHT-BASIC4.0:文字列を扱うユーザ定義関数についてその3
BHT-BASIC4.0:TeraTermを使ってDENSOのハンディターミナルにファイル(プログラム)転送を行う方法
BHT-BASIC4.0:I/OポートとWAIT、さらにTIMERについて(BHT-1300)
BHT-BASIC4.0:データファイルの取り扱いについて(BHT-1300)
BHT-BASIC4.0:データファイルの取り扱いについてその2(書込み・読込みの実用的な関数)
BHT-BASIC4.0:データファイルの検索について(SEARCH関数)
BHT-BASIC4.0:ユーザ関数の引数の仮変数に対する代入の注意点
BHT-BASIC4.0:データファイルの削除等について(KILL、CLFILEのラッパ関数)
BHT-BASIC4.0:ファイルの存在確認関数を作ってみました
BHT-BASIC4.0:拡張関数のバイナリサーチ処理関数(BSEARCH.FN3)の使い方
BHT-BASIC4.0:拡張関数のサーチ処理関数(SEARCH.FN3)の使い方
BHT-BASIC4.0:簡単なメニュー表示・選択を行うユーザ関数について
BHT-BASIC4.0:ファイル伝送におけるXFILE命令の使い方
BHT-BASIC4.0:バーコードの読込み(バーコードスキャン)について
BHT-BASIC4.0:Bluetoothデバイスアドレス取得等について
VB.NET:ハンディターミナル(BHT-1300等)とのデータファイルの送受信について

デル株式会社

2016年11月29日 (火)

【天空の城】の里で作られた有機純米酢

最近テレビで情報発信されている【天空の城】が在る福井県大野市の酢醸造会社で 製造されているお酢を紹介します。

このお酢ですが、有機JASの認定を受けていて、 原料の米は化学合成農薬・化学合成肥料・遺伝子組み換え技術を 使わずに栽培されたものを使っています。

ツンとした酢独特の酢酸の匂いが無く味自体も非常にまろやかです。 (酢酸にはあまりいい思い出が無く、学生時代に科学実験で酢酸を合成した時に 強烈な臭いがよみがえります)
味・香りともやさしいので、 このお酢とオリーブオイルと胡椒と醤油少々で簡単にドレッシングができます。

いままで酢の物が嫌いだった私ですが、 このお酢に出会って酢の物が少しずつ好きなってきました。



製造されている会社は以下のところです。

合名会社 河原酢造

【天空の城】が在る福井県大野市は、このお酢の原料となるお米を栽培していますが、 お米そのものも大変おいしいのです。
大野市は四方を山に囲まれた盆地で、冬になれば1m以上も雪が降る雪国です。
雪解け水が地下水となり昔から湧水が多いところで、名水百選にも選ばれた土地柄です。
美味しい水が在るところはお米も美味しいものができます。

お米が美味しければ、お米からできるお酒・味噌も美味しいものがあります。
美味しいものがたくさんある大野ですが、今日はこれぐらいにして、 次の機会に別のものを紹介していきます。

BHT-BASICの入門編の本について等

今までBHT-BASICについてこのブログでいろいろ書いてきましたが、 このBASICでハンディターミナルを使ったシステムの開発する当初は、 この言語について全く知識が在りませんでした。

そこで、入門書的なものが無いかを調べたのですが、ネットでも全く検索できませんでした。
だれしも初めての言語での開発を行う場合は、 まず言語の形態から学び始めてから どの様にプログラムするのが最適なのかを勉強するはずです。 DENSOさんもこの言語の開発元なので、 入門と言うかプログラムの基本的組み方の本を出してほしいものです。

このBHT-BASICですが命令語をみると昔のBASIC、おそらくMS-BASICを元にしていると思われます。 30年以上前、まだNECのパソコンのPC-8001,PC-8801,PC-9801などが全盛期の時代、 それらのパソコン上にはBASICが搭載されていました。 そのBASICはMicrosoftのMS-BASICが元になっていました。 (この辺りの話は確かでは無いかもしれませんが、その様に記憶しています。)

思い起こせば、PC-8001MkⅡ・PC9801などでよく制御関係のシステムを作成したものです。 昔のパソコンはBASICから全てのI/Oを制御できたので、結構細かい処理もやれたのです。 こんな昔語りは今更何の自慢にもならないですが・・・

昔のBASICの本としては以下の様なものあります。 BHT-BASICとは言語仕様的に拡張されているのですが、基本的な部分は参考になると思います。



いずれにしてもBHT-BASICのプログラムを走らせるハンディターミナルは 型番毎に表示機能・通信機能などが異なるので、その機種に対応したDENSO提供の取扱説明書は 熟読すべきです。

また、プログラミングのマニュアルであるDENSO提供の「BHT1300_Programmers_Manual_J1.pdf」は全て目を通しました。 それでも足りない分はDENSOのサイトのサンプルプログラムを参考にしました。

後は試行錯誤して実際に組んでみてだとは思います。

中古パソコン 【Windows7】 [T14B] 東芝 dynabook R731/B Core i5 2520M 2.5GHz 2GB 250GB 13.3ワイド DVD Multi Win7 Pro 【中古ノートパソコン】【ノートパソコン】【PC】【アウトレット】【中古】【1ヶ月保証】【RCP】【おすすめ】

価格: 20,800円
(2016/11/24 11:57時点 )

感想:1件