新規投稿 記事一覧 ホーム
●ご利用方法,ご利用に際しての規約はこちらをお読みください。
こちらからの投稿は、先頭に表示されているコメントへの返信になります。
Autowebでカーソル位置による検索プログラムの起動 伊集院博 さん [ 6月12日(木) 7時54分 ]

    お世話になります。
    通常のエミュレータを使用したアプリで、
    カーソル位置でF4などの検索キーを押下した時、
    座標(又は項目ID)を読取って、
    検索プログラムを起動するという事が良く有りますが、
    EPSのAutowebで使用したとき可能なのでしょうか?
    不可能な場合、何か簡単な回避策は有るのでしょうか?

    RE:Autowebでカーソル位置による検索プログラムの起動 IKD さん [ 6月12日(木) 10時8分 ]

      可能です。

      HTML ではカーソル位置の検出は不可能に思えますが
      AutoWeb では INFDS を使ってのカーソル位置を検出して
      POPUP などの子プログラムの起動を行うこともできます。
      また HTML生成後に、そのフィールドをどのような位置にデザインを
      変更したとしても元のカーソル位置が仮想端末API に渡されます。

      さらに出力フィールドのカーソル位置の検出を行うこともできます。
      HTML の場合、カーソルは入力フィールドにしか位置づけることは
      できませんが、マウスポインターを出力フィールドの位置に
      セットして、機能キーを押せば、その出力フィールドの行・桁が
      取得されます。

      ただしカーソルが位置づけられていたカーソル内での桁位置までの
      検出はできません。(そのフィールド内のうちの何桁めに位置づけられて
      いるかの情報)

      RE:Autowebでカーソル位置による検索プログラムの起動 伊集院博 さん [ 6月12日(木) 12時38分 ]

        Autowebの仕組みが良く理解できていませんが、
        HTML上でカーソルを動かすと裏でエミュレータ画面が存在していて
        同時にカーソルが移動しているイメージなのでしょうか。
        HTMLを変更した場合、画面サイズを超える事もあるでしょうから
        何らかの形で元のカーソル位置を検出できるような仕組みになっているのですね。
        ありがとうございました。

        RE:Autowebでカーソル位置による検索プログラムの起動 IKD さん [ 6月12日(木) 15時50分 ]

          AutoWeb の背後にエミュレータ画面は存在していません。
          従来のように TELNET を起動するのではなく仮想端末API を起動して
          5250ストリームを直接、入手しています。
          ( TELNET であればフィールドの属性を読み取ることができませんので
            ユーザーが数字/文字等の妥当性検査を追加する必要があります。)

          カーソル位置を取得する仕組みは簡単で
          AutoWeb によって生成された HTML上の入力フィールドの ID は
          Bxxyy (xx=行, yy=桁) というように命名されています。
          ユーザーがこのフィールドにカーソルをセットすると
          JavaScript : OnClick によってフィールドの ID がブラウザ上で
          一時的に保管されます。
          最後にユーザーが GOボタンや機能キーを押して SUBMIT すると
          CURSOR=Bxxyy という変数としてサーバー(System i) に送られます。
          AutoWeb は、この規則に従ってカーソルの行と列を取得して、
          仮想端末API に伝えます。(仮想端末API への投入は必ず正しいカーソル位置が
          必要です。)
          この結果としてユーザーのRPG の INFDS でも正しいカーソル位置を
          取得することができるようになります。
          出力フィールドの場合はやや複雑ですが同じような原理です。
          デモでよく使用する F4キーによるPOPUP表示もカーソル位置を読んで
          POPUP 表示しています。 

お名前
パスワード
e-mailアドレス
タイトル
ホームページ
アドレス