1. 画面レイアウトの変更
SAP標準画面には多くの場合、必要のない項目が含まれています。 GuiXTを使用すると、不要なエレメントを取り除き、画面を使いやすく並べ替えることができます。 例題として、トランザクションMM03、品目マスタ、基本データ1を使います。
GuiXTは、SAPアプリケーション内の特殊構成ツール(品目マスタデータなど)とは異なり、すべてのアプリケーションおよび画面に対して同じ方法で動作します。 少数の命令(例えば、削除するdel、エレメントの位置を変更するpos)をマスターすることで、自分のPC上で画面を並べ替えることができ、多くのユーザーへのリリースが可能です。
出発点:品目マスタのSAP標準画面
不要な項目に線を引いて消す
進め方:GuiXTの “Script”ボタンをクリックして、スクリーン編集用のGuiXT Scriptを開きます。 “del”コマンドを使用して不要なエレメントをすべて削除します。 フィールド名を書き留める代わりに、GuiXTウィンドウの “Screen elements”のエレメントをクリックすると、Ctrl + Vでスクリプトに貼り付けることができます。
// 不要なフィールドを削除
del F[外部品目 Group]
del F[研究室/設計室]
del F[品目階層]
del F[プラント共通品目St]
del C[有効性への値割当]
del F[有効開始日付]
del F[一般明細CatGrp.]
del G[品目権限グループ]
del F[容積]
del F[容積単位]
del F[サイズ/寸法]
GuiXTウィンドウ “Screen Elements”
上記でF […]はフィールド、G […]はグループボックス、P […]はプッシュボタン、C […]はチェックボックスを表します。
残りのフィールドの再配置
“pos”コマンドを使用すると、残りのフィールドを再配置して目的のレイアウトが実現できます。
//フィールドの再配置
pos F[EAN/UPC] F[正味重量]+(1,0)
pos F[EAN カテゴリ] F[EAN/UPC]+(0,40)
pos G[一般データ] F[品目]+(2,0)
pos G[次元/EAN] (10,1)
pos G[梱包材データ] (15,1)
pos G[基本データテキスト] (19,1)
上記のように”pos”コマンドを使って、エレメントとその新しい位置に対して名前を付けることもできます。
仕上げに、”BoxSize”を使ってグループボックスのサイズを変更します。
//グループボックスのサイズ変更
boxsize G[一般データ] (6,78)
boxsize G[次元/EAN] (5,78)
boxsize G[梱包材データ] (4,78)
boxsize G[基本データテキスト] (3,78)
pos F[言語:] (20,52)
fieldsize F[言語:] 12
最終レイアウト
今回の新規レイアウトは「基本データ1」のみを対象としています。 GuiXT Scriptはスクリーン(SAP dynpro)ごとに保存されますが、スクリーン上のタブビューごとには保存されないため、Scriptをアクティブな”基本データ1″タブに制限する必要があります。
// GuiXT Script saplmgmm.j4004.txt
// 品目マスタ
if Q[Page=基本データ 1]
// 不要なフィールドを削除
del F[外部品目 Group]
del F[研究室/設計室]
del F[品目階層]
del F[プラント共通品目St]
del C[有効性への値割当]
del F[有効開始日付]
del F[一般明細CatGrp.]
del G[品目権限グループ]
del F[容積]
del F[容積単位]
del F[サイズ/寸法]
//フィールドの再配置
pos F[EAN/UPC] F[正味重量]+(1,0)
pos F[EAN カテゴリ] F[EAN/UPC]+(0,40)
pos G[一般データ] F[品目]+(2,0)
pos G[次元/EAN] (10,1)
pos G[梱包材データ] (15,1)
pos G[基本データテキスト] (19,1)
//グループボックスのサイズ変更
boxsize G[一般データ] (6,78)
boxsize G[次元/EAN] (5,78)
boxsize G[梱包材データ] (4,78)
boxsize G[基本データテキスト] (3,78)
pos F[言語:] (20,52)
fieldsize F[言語:] 12
endif
レイアウトを品目の照会(トランザクションMM03)のみ有効にして、品目の登録や変更には使用しないようにするには、以下のように記述します。
//Transaction MM03のみに適用
if Q[Transaction=MM03]
…
endif