|
-
-
EPSON OPOS ADK ドライバー OCX対応版では、ResultCode、ResultCodeExtended プロパティを使用して直前に実行されたメソッドか変更した書込み可能プロパティのステータス(結果)を取得することができました。
しかし.NET対応版では、この直前の実行結果を取得するためのプロパティはありません。
OCX対応版で使用されていた ResultCode、ResultCodeExtended プロパティと同様の動作をおこなう場合、.NET対応版では以下のようなプログラムコードになります。
Visual Basic 6.0(OCX対応版)
'---------------------省略---------------------
With OPOSPOSPrinter1
.PrintNormal PTR_S_RECEIPT, "Hello OPOS!"
If .ResultCode <> OPOS_SUCCESS Then
pMSG = GetErrorMsg()
MsgBox pMSG, vbExclamation
End If
End With
'---------------------省略---------------------
Function GetErrorMsg() As String
Dim BF As String
'イベント情報ごとにメッセージを作成する
Select Case OPOSPOSPrinter1.ResultCodeExtended
Case OPOS_EPTR_COVER_OPEN
BF = "Printer cover is open."
Case OPOS_EPTR_JRN_EMPTY
BF = "No jurnal paper."
Case OPOS_EPTR_REC_EMPTY
BF = "No receipt paper."
Case OPOS_EPTR_SLP_EMPTY
BF = "No slip form."
End Select
GetErrorMsg = BF
End Function
|
Visual Basic 2005(.NET対応版)
'---------------------省略---------------------
Try
m_Printer.PrintNormal(PrinterStation.Receipt, "Hello OPOS!")
Catch ex As PosControlException
If ex.ErrorCode <> ErrorCode.Success Then
Dim strMessage As String
strMessage = GetErrorCode(ex)
MessageBox.Show(strMessage, "Error")
End If
End Try
'---------------------省略---------------------
Private Function GetErrorCode(ByVal ex As PosControlException) As String
Dim strErrorCodeEx As String = ""
Select Case ex.ErrorCodeExtended
Case PosPrinter.ExtendedErrorCoverOpen
strErrorCodeEx = ex.Message
Case PosPrinter.ExtendedErrorJournalEmpty
strErrorCodeEx = ex.Message
Case PosPrinter.ExtendedErrorReceiptEmpty
strErrorCodeEx = ex.Message
Case PosPrinter.ExtendedErrorSlipEmpty
strErrorCodeEx = ex.Message
End Select
GetErrorCode = strErrorCodeEx
End Function
|
.NET対応版は、Microsoft POS for .NET(.NET Framework)を基本として動作しています。
.NET Framework では、エラーが発生すると、システムまたは現在実行中のアプリケーションは、そのエラー(例外)に関する情報をスローします。(エラーの報告)
(問題が発生したコード領域から)スローされた例外は、アプリケーションが例外を処理するか、またはプログラムが終了するまで保持されます。
.NET Framework による開発では、あるブロックのアプリケーション コードの実行中に発生する例外を処理する場合は、そのコードを try ステートメントの内部に入れる必要があります。
- .NET Framework では、例外は Exception クラスの継承オブジェクトです。
- POSControlException などのクラス
- 例外によって POS アプリケーションにエラー状態を伝達するために使用されます。
- PosControlException などは、名前空間Microsoft.PointOfServiceで定義されています。
Microsoft POS for .NET の処理は同期と非同期の2つのタイプがあり、上記コードによるエラーの取得は主に同期処理のときに使用できます。
非同期処理を行っている最中にエラーが発生した場合、ErrorEventが通知され、イベントハンドラから処理の再試行を行うか、またはそれをクリアすることができます。
ErrorEventによって通知された例外の取得/処理を行うには、アプリケーションの開始時(またはフォームのロード時など)にErrorEventHandlerの追加とアプリケーションの終了時(フォームのクローズ時など)にErrorEventHandlerの削除を行う必要があります。
ErrorEventが通知された際の例外処理の方法については、弊社ドライバー:EPSON OPOS ADK for .NET に附属しているサンプルプログラム[Step 10]を参考にしてください。
SASPORTシリーズ |
SASPORT ARCX,SASPORT Cubie,SASPORT CubieII,SASPORT CubieIII,SASPORT MR,SASPORT URBAN,SASPORT URBANII |
カスタマーディスプレイ |
DM-D110,DM-D120 (ARCX専用),DM-D210,DM-D500 |
モバイルプリンター |
TM-P20,TM-P60II |
PC一体型プリンター |
TM-T70II-DT,TM-T88V-DT |
キャッシュドロアー |
DLA-58EDIII,DM-Z100,DM-Z400,DMA-48EDIII,DSA-35EDIII |
TMシリーズ |
TM-H5000II,TM-H6000II,TM-H6000III,TM-H6000IV,TM-L90 オートカッターモデル,TM-L90 ピーラーモデル,TM-T20,TM-T20II,TM-T70,TM-T70II,TM-T88III,TM-T88IIIX (ARCX搭載),TM-T88IV,TM-T88V,TM-T90,TM-T90II,TM-U220A,TM-U220B,TM-U220D,TM-U675,TM-U950 |
|