TRL:Terminal Request Library
ターミナルリクエストライブラリ

TrlClientLib(Windows版)- VBAでの利用

インストール方法
  1. PC上にダウンロードしたファイルを展開(解凍)してください。
  2. フォルダ内の「TrlDotNetComRegister.exe」を管理者権限で実行してください。
  3. ExcelやAccessのVBA画面から、「参照設定」で「TrlClientLib」を参照してください。

※開発したPC以外で使用する場合も、そのPC上で上記1~2の作業が必要になります。



アンインストール方法
  1. インストール時に展開したフォルダを使用します。
  2. フォルダ内の「TrlDotNetComUnregister.exe」を管理者権限で実行してください。
  3. もう使わなければ、フォルダごと削除してください。

※開発したPC以外で使用した場合も、そのPC上で上記と同様の作業が必要になります。



使用方法
 Excelを例に記載していますが、AccessでもFormを使って使用できます。

クラスの宣言
 UserFormのモジュール内で、TrlClientLib.Clientクラスを宣言してください。
Option Explicit

    Private WithEvents objTrlClient As TrlClientLib.Client


インスタンスの作成と破棄
 UserFormのInitializeイベントなどでClientクラスのインスタンスを作成します。
Private Sub UserForm_Initialize()

    Set objTrlClient = New TrlClientLib.Client

End Sub
 UserFormのTerminateイベントなどでClientクラスのインスタンスを破棄します。
Private Sub UserForm_Terminate()

    Set objTrlClient = Nothing

End Sub

リクエスト
 サーバーへ以下のリクエストを処理する例を記載しています。
  1. 商品名問い合わせ
    • クライアントからのリクエスト情報(pstrData)には、"0001"(処理区分)に続いて商品コードをセット。
    • サーバーからのレスポンス情報として、商品名を取得します。
 CommandButtonのClickイベントなどに、リクエストのロジックを追加します。 以下の例では、通信状況を表示するためListBoxをひとつフォーム上に配置しています。ボタンを配置し、CommandButtonのCaptionを"通信開始"としておきます。 また、"0001"という処理コードに続けて、TextBoxの文字列(商品コード)をリクエスト情報としてセットしています。
Private Sub CommandButton1_Click()

    Dim strErrorMessage As String = ""

    If CommandButton1.Caption = "通信開始" Then
        ListBox1.Items.Clear()
        If objTrlClient.TrlRequest("192.168.0.2", 65001, Environ("COMPUTERNAME"), "0001" & TextBox1.Text, ThisWorkbook.Path & "\Files", strErrorMessage) = True Then

            CommandButton1.Caption = "通信中断"
        Else
            Call MsgBox(strErrorMessage, vbExclamation)
        End If
    Else
        Call objTrlClient.TrlAbort
    End If

End Sub
TrlRequestメソッド
サーバーへリクエストします。 TrlRequest( _ ByVal pstrIp As String, _ ByVal pintPort As Integer, _ ByVal pstrClientKey As String, _ ByRef pstrData As String, _ ByVal pstrFolder As String, _ ByRef pstrErrorMessage As String) As Boolean
引数内容
pstrIp String型
サーバーのIPアドレスです。
pintPort Integer型
サーバー側で待ち受けているTCPソケット番号です。
pstrClientKey String型
サーバー側でクライアントを識別するための文字列です。各端末で重複しない値をセットすることを推奨します。
pstrData String型
サーバーへ受け渡すリクエスト情報で、任意の文字列です。処理を判別するコードや値をサーバー側へ受け渡すことができます。 ※送信できるリクエストは1KBまでです。 なお、この引数はShift-JISにエンコードしてバイナリデータとして送信され、サーバー側で適切なエンコードに戻されます。よって、送信できる文字数は、すべてが半角文字であれば1024文字、すべてが全角文字であれば512文字ということになります。バイナリ情報などを送信したい場合は一旦ファイルに出力してから、サーバーからTrlRecvFileメソッドを実行して受け渡してください。
pstrFolder String型
サーバーからファイル送受信が実行された際、読み込み先、保存先として使用するフォルダです。 サーバーからTrlSendFileが実行された際、このフォルダに保存されます。 サーバーからTrlRecvFileが実行された際、このフォルダにあるファイルが送信されますので、事前にこのフォルダに必要なファイルを準備しておく必要があります。
pstrErrorMessage String型
メソッドが失敗した場合に、エラーメッセージが返されます。
戻り値
Boolean型
True
リクエスト成功です。

False
リクエスト失敗です。エラーメッセージが、pstrErrorMessageに格納されています。
TrlAbortメソッド
サーバーへの通信を強制中断します。 TrlAbort()

イベントプロシージャの定義
 コードの表示画面の上段にあるドロップダウンリストの「オブジェクト」で「objTrlClient」を選択します。
続いて、ドロップダウンリストの「プロシージャ」で「TrlClientEvent」を選択するとイベントプロシージャがコード内に現れます。
Private Sub objTrlClient_TrlClientEvent( _
    ByVal pintStatus As TrlClientLib.TRL_STATUS, _
    ByVal pstrData As String, _
    ByVal pstrErrorMessage As String)

    Select Case pintStatus

        Case TrlClientLib.TRL_STATUS_mInfo
            Call mdlSetList("INF:" & Replace(pstrData, vbCrLf, ""))

        Case TrlClientLib.TRL_STATUS_mResult
            Call mdlSetList("RET:" & pstrData) 'pstrDataに商品名がセットされている。
            CommandButton1.Caption = "通信開始"

        Case TrlClientLib.TRL_STATUS_mError
            Call mdlSetList("ERR:" & Replace(pstrErrorMessage, vbCrLf, ""))
            CommandButton1.Caption = "通信開始"

    End Select

End Sub

Private Sub mdlSetList(ByVal pstrBuff As String)

    Call ListBox1.AddItem(Format(Now(), "yyyy/mm/dd hh:nn:ss") & pstrBuff, 0)
    ListBox1.Selected(0) = True

End Sub
TrlClientEventイベント
サーバーからレスポンスを受け取った場合や通信エラーとなった場合に発生します。 また、サーバーから実行されている状況が報告されます。 Private Sub objTrlClient_TrlClientEvent( _ ByVal pintStatus As TrlClientLib.TRL_STATUS, _ ByVal pstrData As String, _ ByVal pstrErrorMessage As String)
引数内容
pintStatus TrlClientLib.TRL_STATUS型
TRL_STATUS_mInfo
リクエストスレッドからの状況報告です。pstrDataに報告内容が格納されています。

TRL_STATUS_mResult
リクエストスレッドからの終了報告です。pstrDataにサーバーからのレスポンス情報が格納されています。リクエストスレッドは停止します。

TRL_STATUS_mError
リクエストスレッドからのエラー報告です。pstrErrorMessageにエラー内容が格納されています。リクエストスレッドは停止します。TrlAbortが呼ばれた際も発生します。
pstrData String型
サーバーからレスポンス時にセットされたレスポンス情報です。この値はサーバーから任意の文字列をセットできるので、処理の結果情報などを受け取ることができます。
pstrErrorMessage String型
通信が失敗した場合などに、エラーメッセージが返されます。

ダウンロード
ファイル内容
20160415_TrlClientLib_Windows.zip ベータ版(バージョン0.0.0.0)を配布します。十分、動作ご確認の上、ご利用ください。 ※使用するPCには、.NET Framework 2.0/3.0/3.5のいずれかがインストールされている必要があります。





累積:
今日:
昨日:
Copyright (C) 2016 森山商店 All Rights Reserved.