AccessとLinux

中小企業での販売管理プログラムの作成についての所感

FAXサーバーの構築5

2011年09月27日 07時51分18秒 | Weblog
(6)パソコンが古すぎる
FAXサーバーに使用しているパソコンは8年前に購入した遊休品を使用していましたが意外に処理が重く、処理に時間がかかってしまうことでプログラムが止まってしまうようでした。
Accessでタイマーイベントを60秒ごとに発生させて、FAXを行っていますが、1分以内にFAXが完了していないので、「まいとーくFAX」が送信中にWordやExcelが印刷作業に入ってしまうことも度々でした。なので、昨年購入した2コアのパソコンと入れ替えました。

同時に稼働しているプログラムが

Access
印刷プログラム(Word、Excel、イメージビューワーのいずれか)
まいとーくFAX

なので1コアCPUだときつかったようです。

昨年購入したパソコンはさすがに速い。一応、これで処理はスムーズに流れるようになり、停止する頻度が減りました。

が、まだ止まってしまいます。

(7)タイマーイベントが発生しない
原因はよくわかりませんが、タイマーイベントが発生しなくなってしまい、プログラムが止まってしまいます。
リモートディスクトップで接続に行くと、データが何個か残ったままになっていて、急にタイマーイベントが発生してFAX送信が始ります。

Doeventsを所々に入れて様子をみることに。
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

iPadって囲碁に本当に向いてる

2011年09月25日 17時38分20秒 | Weblog

今年6月にiPadを購入して毎日、便利に使っています。最初は「週刊碁」のiPad版を読むために購入したのですが、いざ使い始めると主に使うのは以前も書いたことのあるSmartGoKifuばかり。「週刊碁」のiPad版は参考図の自動再生機能がないので結局、トップ棋譜はsgfファイルをダウンロードしてきてSmartGoKifuで並べています。ちなみに棋譜は
http://weiqi.sports.tom.com/
からダウンロードしてきて、中国語の部分はiPadを用のテキストエディタTextWriterで削除してからSmartGoKifuに取り込んでいます。中国語文字がデータに含まれていると、SmartGoKifuにうまく取り込めないので、面倒ですがしょうがありません。パソコンで取り込んでデータ編集してからメールでsgfファイルをiPadに送る手もあるのですが、パソコンを立ち上げるのが面倒くさい。

(iPadを使い始めてから自宅のパソコンはほとんど使用しなくなりました。実際、プログラムを作るということがなければ個人でパソコンを持ってる必要って無いんじゃないかと思います。インターネットは携帯なり、スマートフォンで利用すればいいわけだし。)

(iPadって何が良いかって、ボタンを押せば直ぐ使えるのが本当にいい。パソコンだと立ち上がってセキュリティーソフトが安定するまで、どうかすると2、3分待たなければなりません。立ち上げたはいいけど、急に何か別のことをしなければならなくなって、また、直ぐ電源を落としてしまわければならないこともあります。例えば、「あなた、明日は燃えるゴミの日よ! パソコン何かせずにゴミ集めて!」って。)

(TextWriterはiPadの「メモ」に無い方向キーだとか、Delキーがあって編集し易いです。価格も105円だったような。まあ、便利ですな。)

(http://weiqi.sports.tom.com/って本当にすごいホームページです。日本の棋戦データもsgfでダウンロードできます。9月21日、22日に行われた名人戦第3局の棋譜が24日にはもうダウンロードできました。
実際には23日にダウンロードできたのかもしれませんが、思い立ってダウンロードしたのが24日でした。日本にもこんなホームページは無いものでしょうか。完全に中国に負けてる。韓国にも似たようなホームページがあるのかもしれませんが、ハングルではちっともわからないので、まだ読める漢字が所々でもある中国のホームページが使い易いです。はい。)

iPadの何が便利かって、iPadで「ヒカルの碁」を読んで、saiと塔矢行洋の棋譜をインターネットで落として、SmartGoKifuで並べる。
http://homepage1.nifty.com/tomospace/hikagokifu/hikagokifu.html
これが便利でなかったら何なんだろう。
「ヒカルの碁」を読んでビックリしたのはプロって総譜を見てわかるんだ。やっぱり、宇宙人。そんな人は囲碁をするのにiPadは必要ないでしょうが、「参考図も並べてみなけりゃチットもわからん」というわたしにはiPadは神からの贈り物。詰碁でさえiPadで並べてしまいます。
「週刊碁」にしても、新聞棋譜にしてもこんなに丁寧に並べてみたことはありません。同じ棋譜を、「週刊碁」で並べて、新聞棋譜で並べて、「月刊碁ワールド」で並べる。正直言って、紙版も含めて「月刊碁ワールド」を購入したのは今回が始めてです。並べてみると、色んな人が、色んな参考図を示してくれるので、また、面白かったりします。コメントを削除してしまったhttp://weiqi.sports.tom.com/からダウンロードした棋譜にも参考図は残っていて、全く違った場面で参考図が載っていたりします。

iPadって囲碁初心者には必須アイテムでは。
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

FAXサーバーの構築4

2011年09月21日 07時07分58秒 | Weblog
(5)Word文書印刷時「まいとーくFAX 7」にイメージが渡せない
Office2007のAccessでFAXサーバーを作っていますが、Excelの印刷では「まいとーくFAX 7」にイメージが渡せるのに、Wordではどうしても失敗してしまいます。

Excelの場合はこれでうまくいきます。

Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook

Set xlApp = CreateObject("Excel.Application")
Set xlBook = xlApp.Application.Workbooks.Open(ファイル名)

xlBook.Worksheets(1).PrintOut

Workbooks(1).Close SaveChanges:=False '保存しないで終了
xlApp.Quit

Set xlBook = Nothing
Set xlApp = Nothing

Wordの場合、下記で「まいとーくFAX 7」にどうしてもイメージが渡せません。

Dim wdApp As Word.Application
Dim wdDoc As Word.Document

Set wdApp = CreateObject("Word.Application")
Set wdDoc = wdApp.Documents.Open(ファイル名)

wdDoc.PrintOut
wdApp.Quit SaveChanges:=wdDoNotSaveChanges ’保存しないで終了

Set wdDoc = Nothing
Set wdApp = Nothing

おかしなことに、デバッグモードだとうまくいきます。どうもタイミングの問題のようです。
あれこれ試してみたあげくにwdApoQuitを「保存して終了」にしてみました。

wdApp.Quit SaveChanges:=wdSaveChanges  ’保存して終了

今度はうまくいきました。(これってバグ?)
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

FAXサーバーの構築3

2011年09月14日 16時11分03秒 | Weblog
FAXサーバーを作るに当たってクリヤーしなければならない問題が何個かあったので、ここに解決した方法を書きます。

(1)Access2007のレポートイメージをどうやってデータ化するか
請求書はAccessから直接FAX番号を渡してR社の複合機で送っていました。今度は「まいとーくFAX」にFAX前イメージとしてデータを渡してやらなければなりません。
まず、考えたのはイメージをPDFファイルとして渡す方法です。この方法を調べていると、
PDF Writer(bioPDFSetup_7_2_0_1304)に行き当たりました。
http://www.biopdf.com/index.php
このプログラムはGhostscript(Version=8.70)を使ってPDF化します。PDFだけでなく、
 BMP, EPS, PS, PNG, PCX, JPEG, TIFF
にも対応しています。その中にTIFFがあります。TIFFならAccessから「FAX失敗通知」を印刷する時、Access標準のイメージコントロールで簡単に表示できます。PDFだとAccess標準のイメージコントロールでは表示できないので、別の方法を考えなければなりません。面倒なので、TIFFでやることにしました。
が、PDF WriterでTIFF形式の設定方法がわかりません。サンプルプログラムでは「PDF」になっていて、単に「TIFF」に変えてみてもうまく行きません。
あきらめかけて、Ghostscriptのホームページをみると、書いてあるではないですか。「TIFF file formats」。TIFFって色々な形式があります。結局、FAXしてみて一番きれいそうな「tiffg32d」で行うことにしました。
http://www.ghostscript.com/doc/9.05/Devices.htm#PDF

(2)tifをどうやって印刷するか
これも悩みました、WindowsXPで手で操作して印刷するのは簡単なのですが、プログラムから印刷するとなると、また別問題です。さんざんぱ調べたあげく、次に行き当たりました。Windows2000用のイメージングを使用することにしました。

http://oshiete.goo.ne.jp/qa/1575230.html

==================
No.1ベストアンサー20pt

    回答者:xcrOSgS2wY
    回答日時:2005/08/12 17:24

1. Windows XPを起動。
2. Windows 2000 CD-ROMを入れる。(以下、CD-ROMドライブをD:と仮定します。)
3. コマンドプロンプトを開く。
4. 適当なフォルダに移動する。
5. 「expand -r d:\i386\imagevue.in_ .」を実行する。(imagevue.infが作成されます。)
6. エクスプローラを起動。
7. 5.で作成されたimagevue.infを右クリックして「インストール(I)」を選択。
8. ファイルの場所を聞かれた、コピー元に「d:\i386」を指定してOK。

これでImagingがインストールされます。

なお、Windows 2000に付属のImagingをWindows XPで使用することの是非、特にライセンス関係については、私には分かりませんので、著作権者にお尋ねください。

==================

そして、プログラムから

Shell """C:\Program Files\Windows NT\Accessories\ImageVue\kodakimg.exe """ & " /p " & """" & ファイル名 & """", vbNormalFocus

で印刷。


(2)doc、xlsの印刷
docファイル、xlsファイルも(1)の方法でtif化したイメージをFAXすることはできるのですが、tif化した画像があまりきれいでありません。Word、Excelから直接FAXする方がよほどきれいです。
doc、xlsをWord、Excelから印刷してFAXするのは簡単なのですが、tifの場合に簡単だった「FAX失敗通知」にイメージを貼り付けるのが今度は難しい。「FAX失敗通知」には

   FAX画像
   失敗したこと
   失敗した理由(「話し中」だったとか、相手が「FAXじゃない」とか)

を表示しなければなりません。docファイルは「透かし」を使って表示して印刷することにしました。
xlsは「透かし」がうまくいかなかったので、仕方なくセルの一部に表示させて印刷ました。

(3)Accessの印刷がうまくいかなくなった
これまで、A4、B4、ミシン目A4などの印刷条件をそれぞれ、印刷条件を設定した別個のプリンターを用意しておき、「通常使うプリンター」を変更することで使い分けていました。同じ複合機で条件を変えていただけだったので、プリンタードライバーそのものを切り換えていたわけではありませんでした。
今回初めてPDFWriterと複合機のプリンタードライバーの使い分けをすることになったのですが、PDFWriterでtif出力した後、

Set Application.Printer = Application.Printers(複合機のIndex)

で元の複合機にセットしても、PDFWriterを使用しない時のように「通常使うプリンター」を切り換えることでの印刷条件の使い分けができなくなってしまいました。

PrtDevModeプロパティを使用して、それぞれ印刷する際に印刷条件を設定すれば良いのでしょうが、全ての印刷で条件設定してやらなければならないので、修正が膨大です。

http://www.accessclub.jp/samplefile/samplefile_58.htm

一度、販売管理プログラムを終了してしまえば、また「通常使うプリンター」の切り替えで問題無く使用できるので、当面、PDFWriterを使用した後は一端、販売管理プログラムを終了、起動して使用することにしました。トホホ...

ーーーーーーーーー
以前、試してみたことがあるのですが、Accessのプリンターオブジェクトは色分解印刷に対応していません。
なのでPrtDevModeプロパティを使ったとしても色分解印刷はできないので、やはりこれまで通りの使い方は無理ということになります。
一度Application.Printerを設定してしまうと、設定を複合機に戻してやってもうまく行かないというのは、多分これまでApplication.PrinterがNullの状態で使用していたのではないかと思います。設定をNullにするのはチョット無理なのではないかと思っています。

(4)Application.QuitでExcelのプロセスが終了しない
VBAで起動したExcelがQuitしてもプロセスが残ってしまというバグが今回も影響して、FAXサーバーが止まってしまいます。しょうがないのでその都度、下記で、Excelのプロセスを強制終了させることに。
(プログラム例は「notepad.exe」ですが、「EXCEL.EXE」に変更)

http://gallery.technet.microsoft.com/scriptcenter/8178678e-fe4f-41ec-8939-f9dfb033b073/

strComputer = "."  
Set objWMIService = GetObject("winmgmts:" _  
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")  
Set colProcessList = objWMIService.ExecQuery _  
    ("Select * from Win32_Process Where Name = 'Notepad.exe'")  
For Each objProcess in colProcessList  
    objProcess.Terminate()  
Next  

ーーーーーーーーーーーーーーーー
とりあえず、以上でしばらく運用してみることにしました。
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

FAXサーバーの構築2

2011年09月14日 16時10分32秒 | Weblog
FAXは受発注に使用する非常に重要な通信手段なので、FAXの受信発信のミスは許されません。現在1回線で送受信を行っているので、受信の際、かなり待たされる場合もあります。「FAX送ったのですが、届いたらTEL下さい。」と言われて、「おっかしいな、まだ、FAX来ないけどな~」ということがたまにあります。
正直に言うと、こういった大事なベースになるよう部分はソフトでやりたくないのが正直なところです。が、やるのなら安全をみてやりたい。
なので、受信回線と送信回線をアッサリ分けて行うことにしました。
今回、問題になっているは「FAX送信のプログラム操作」で、送信部分だけです。受信は従来通り複合機で行えば問題ありません。幸い、ほとんど使用していないが、やめられない電話回線が1本あり、うまいぐあいにアナログ回線です。この回線を使用して送信分についてFAXサーバーで行うことにしました。

使用したのは、

まいとーくFAX 7 Pro(インターコム)
遊休品のWindowsXP機
遊休品のモデム(アイ・オー・データ DFML_560E)

です。

「まいとーくFAX 7 Pro」は随分古いバージョンですが、以前購入したものです。あまり使用していませんでしたが、今回、API操作可能なFAXソフトとして使用しました。

「まいとーくFAX 7 Pro」は

スタンドアローン
SOHOクライアント
SOHOサーバー

と3種類の使用方法がありますが、今回はSOHOサーバーとして使用することにしました。

どうしても実現したかった機能は

(1)モデムが使用中でもデータを引き渡してしまい、ユーザーを待たせないこと。

(2)FAXに失敗した際、紙で「FAX失敗通知」を印刷すること。

で、本来、「まいとーくFAX 7 Pro」を使用するのなら、

SOHOサーバー + SOHOクライアント

の組み合わせで、各クラアントにSOHOクライアントとして「まいとーくFAX」をインストールすれば良いのですが、この方法だと、FAXに失敗した場合、FAXサーバーが紙で「失敗通知」を出してくれません。(紙出力するような「SOHOサーバー」の設定があるのかもしれませんが、わかりませんでした。できるのでしょうか?)

なので、考えた末に次のような構成にすることにしました。

(1)「まいとーくFAX」はSOHOサーバーとして常時稼働

(2)FAXサーバーPCに送信前データフォルダーを作成、このフォルダーにクライアントからFAXイメージ(tifファイル、Wordのdocファイル、Excelのxlsファイル)を保存

(3)FAXサーバー機の送信前データフォルダーから「まいとーくFAX」にデータを順次印刷するプログラムを常時稼働。また、このプログラムから「FAX失敗通知」を印刷。

「SOHOサーバー」を使用しないで、「スタンドアローン」で使用することも考えましたが、相手先が話し中で何回か続けてFAXしなければならない場合に、処理がややこしくなりそうだったので、この部分は「SOHOサーバー」に任せることにしました。
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする