ラベル

2015年2月15日日曜日

SAP R/3用 手作りフロントエンド Part4

SAP R/3用 手作りフロントエンド を数年前から作っていましたが、その頃には判らなかったコンテキストメニューからテキストコピーが出来ました。

以前はGoogleで検索してもエンドユーザが使うSAPのVBスクリプトの情報が殆んど無かったのですが、最近、駄目モトでもう一度検索したら、沢山の情報が有りました。

そして見つけました!

コンテキストメニューのテキストコピーの方法

これを見ながら
session.findById("wnd[0]/usr/cntlGRID1/shellcont/shell").contextMenu
session.findById("wnd[0]/usr/cntlGRID1/shellcont/shell").selectContextMenuItemByText "Text kopieren"
・・・これは出来ませんでした、さすがに「"Text kopieren"」は英語らしくないので「Text Copy」他、幾つか試しましたがエラーでした。

でも
session.findById("wnd[0]/usr/cntlGRID1/shellcont/shell").contextMenu
session.findById("wnd[0]/usr/cntlGRID1/shellcont/shell").selectContextMenuItemByPosition "0"
このVBスクリプト参考に読み込みが出来ました。

テストしていると、読み込めないケースが発生しテストを繰り返して判ったのは表示件数が180行位からエラーになっていました。

私の要件では500行を超えるデータ量が有り得るので更に調べました。

エラーメッセージをチャントメモしなかったけど、表示内容が不完全との指摘でした。

そこで、表形式の表示を最新に更新したら、一番下の行へカーソルを移動してコピーすると綺麗にコピー出来ました。


参考にスクリプトを記載します。

s = session.findById("wnd[0]/usr/ ......... shellcont[0]/shell").RowCount -1
session.findById("wnd[0]/usr/ ......... shellcont[0]/shell").firstVisibleRow = s
session.findById("wnd[0]/usr/ ......... shellcont[0]/shell").selectColumn "STATUSTEXT"
session.findById("wnd[0]/usr/ ......... shellcont[0]/shell").selectColumn "xxxx1"
session.findById("wnd[0]/usr/ ......... shellcont[0]/shell").selectColumn "xxxx2"
session.findById("wnd[0]/usr/ ......... shellcont[0]/shell").selectColumn "xxxx3"
session.findById("wnd[0]/usr/ ......... shellcont[0]/shell").setCurrentCell -1,"xxxx3"
session.findById("wnd[0]/usr/ ......... shellcont[0]/shell").contextMenu
session.findById("wnd[0]/usr/ ......... shellcont[0]/shell").selectContextMenuItemByPosition "0"
session.findById("wnd[0]/usr/ ......... shellcont[0]/shell").clearSelection

私の環境ではこの記述でOKでしたが、参考にされる場合は自己責任でお願い致します。


ちなみに、今までは印刷プレビューからデータをコピーしていました、この場合はスクリーンセーバーが働かない。
今回のテキストコピーでは、負荷が軽い?、画面偏移が無いから?、判りませんがスクリーセーバーが動作しました。

以上です。


2015年2月8日日曜日

Vue.jsを使ったテーブル表示のサンプル

※2016/02/28サンプルプログラムのエラー修正しました。

Vue.jsを使ったテーブル表示のサンプルを作ってみました。
前回のFixed TableをベースにVue.jsを追加した構成です。
どちらかと言えばVue.jsを試したくて作ったので余り実用的でないかも!

Vue.jsのGrid Component Exampleでは判り難かったのですが

var vm = new Vue({ /* options */ })
vm.$el // The View
vm.$data // The Model

この記述を頼りにテーブルを定義した後で表示するデータを差し替えることでページの切り替えをおこないました。

ただし、偶数奇数行の色分けやマウスホバーでの色付けがうまく行かず、setTimeoutで100ms後に行うとうまく行きました。

Vue.jsの使い方として正しいか、よく判っていませんので、参考にされる場合は自己責任でお願い致します。

VUE.JS & JQUERY & FIXED TABLE によるデータ一覧表示サンプル