問題タブ [3270]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
excel - 行ごとに Excel データをループする VB スクリプト
Excel からデータを取得し、それを IBM 3270 メインフレーム内の画面に入力する VB スクリプトに取り組んでいます。以下のコードを使用すると、Excel ワークブックを開いてセルごとにデータをコピーし、定義した subEnterData および subMovecursor プロシージャを使用して、選択したセルの値を 3270 画面に入力できます。それは素晴らしい作品です。しかし、以下のコードからわかるように、Excel オブジェクトの行 2 (行 1 はヘッダー) にあるセルからのみデータを取得しています。各行内の各セルからデータを取得してから、次の行に移動する必要があります。したがって、Row 2 が終了したら、Row 3 に移動し、Row 3 内の各セルに移動し、各セルからデータをコピーして 3270 の画面に貼り付ける必要があります。Row 4 も同様です。約 50 行ですが、それより多い場合も少ない場合もあります。
以下はコードの本体です。
オブジェクトを呼び出して値を取得していることを、subStringExcelData で確認できます。
次に、subDoWork を使用して、3270 画面上の正しい場所を見つけ、正しい場所に値を貼り付けます。それはうまく機能しますが、多くの行でこれを行うことができる必要があり、これを行った方法では、現在一度に1行しか取得できません。助けてください!
サブ subDelpScreen は、subDoWork を実行するトリガーを保持します。
excel - 行単位で Excel にデータを書き込む
現在、Excel スプレッドシートを行ごとにループし、Excel からデータを読み取り、3270 エミュレータ内の画面を更新するスクリプトを実行しています。ループは、次の手順を使用して完了します。
手順 を使用して、ループによって読み取られたデータを 3270 画面に貼り付けることができますsubDoWork
。Excel スプレッドシートで列 A から L までを使用してsubDoWork
おり、スプレッドシートを 1 行ずつ下に移動し、Excel からデータをコピーして 3270 画面に貼り付けることができます。以下は、Excel スプレッドシートの列 B から 3270 画面にデータを入力するために使用している例です。
次に、データを貼り付けた後funcReadScreen
、3270 で画面を読み取り、Excel の特定の行から受け取った結果を含むポップアップを生成します。
私が探しているのは、関数funcReadScreen
を使用してその結果を Excel の列 M に書き込むことです。現在、列 A - L を読んでおり、特定の行のデータに基づいて、funcReadScreen から受け取った結果を Excel の列 M に入力したいと考えています。
つまり、そのエラーはその行の列 M に貼り付けてから次の行に移動し、別の結果/エラーが を介して与えられた場合は、funcReadScreen
その結果/エラーをその行の列 M に貼り付けて次の行に移動する必要があります終わるまで並びます。そのため、画面読み取り関数を介して「無効な番号」というエラーを受け取った場合、その結果をその行の列 M に書き込みたいと考えています。
現在、これを試みるために次のサブを使用していますが、機能していません。
誰でも手伝ってもらえますか?
編集: 動作していないように見えるのは、Excel オブジェクトを「取得」できないことです。エラーが表示される
オブジェクトはこのプロパティまたはメソッドをサポートしていません: objExcel.ActiveWorkbook
ただし、値をobjExcelSht.Cells(2,13).Value
(または行2、列M)に貼り付けるだけでなく、その後ループで移動し、識別されるIf
ステートメントに基づいて常に列Mに貼り付ける必要がありfuncReadScreen
ます。
emulation - Fiddler を使用して、PCOMM セッションまたは任意の 3270 エミュレーター セッションを監視できますか?
Fiddlerを使用してメインフレームPCOMMセッションを監視できますか? それとも、 3270 エミュレーターソフトウェアを使用したメインフレーム セッションですか? もしそうなら、どのように?Fiddler のドキュメントを見て検索しましたが、言及されていません。
最終的な目標は、Java コードを使用してメインフレームに接続することです。ログオンし、CICS にアクセスし、トランザクションを実行し、画面をスクレイピングし、画面データをファイルに書き込む PCOMM 自動化ソリューションを既に提供しました。現在、クライアントは、PCOMM を使用せずに同じことを行うように求めています。ユーザーは Java ソリューションを使用したいと考えています。メインフレームに接続する Java プログラムがあります。ただし、メインフレームに「ログオン」するための初期メニュー画面は返されません。255 (IAC) 253 (DO) 40 (?) などの一連の 3270 コードが表示されます。255、253 (Will do) 40 (?) EOR で応答します。メインフレームは、255、250 (サブネゴシエート) 40 (?) などで戻ってきます。そのようなコードをさまざまな方法で試しましたが、今のところうまくいきません。http://www.faqs.org/rfcs/rfc1576.htmlを参照してください。セッション 3270 をネゴシエートするためのコードの詳細については、これは非常に古いドキュメントであり、その後更新されている可能性があります。またhttp://www.faqs.org/rfcs/rfc854.html
私が考えたのは、PCOMM セッションを監視して、3270 セッションへの接続をネゴシエートするための正しい会話を発見することでした。結局のところ、PCOMM はそのセッションを実現するために取り組んでいます。
ありがとう、バルーク・アッタ
zos - コンピューターから x3270 エミュレーターにコードをコピーするにはどうすればよいですか?
Ubuntu 16.04 で x3270 を使用しています。zOS には優れたエディターがなく、大量のコードを記述して修正するのは苦痛です。
コンピューターにコードを書き、それを x3270 ウィンドウにコピーしたいと考えています。
これを行う方法はありますか?