API version 1
- ‐
setMenu¶
Biz/Browserのタブ(Root)毎に独自のメニューを設定します。
メニューの定義にはXMLまたはJSONを使用します。XMLやJSONの階層構造がそのままメニューの階層構造になります。
メニュー選択時はMenuSelectedイベントが発生します。
タブ毎ではなく、アプリケーションウィンドウのメニューを設定したい場合は FrameWindow.setMenu メソッドを使用してください。
呼出形式一覧
呼出形式 |
説明 |
---|---|
void setMenu(CRS::Common::Core::XmlDocument xmlDoc) |
Biz/Browserのメニューバーに表示する独自のメニューをXML形式で指定します。 |
void setMenu(CRS::Common::Core::JsonDocument jsonDoc) |
Biz/Browserのメニューバーに表示する独自のメニューをJSON形式で指定します。 |
戻り値一覧
戻り値 |
説明 |
---|---|
void |
なし |
引数一覧
引数 |
説明 |
---|---|
xmlDoc |
独自のメニューを、XML形式で指定します。 |
jsonDoc |
独自のメニューを、JSON形式で指定します。 |
例外
識別子 |
説明 |
---|---|
SYS-23:5 |
メソッドの引数が不正です |
関連項目
MenuSelected イベント
使用例(XML)
var x = new XmlDocument();
x << xml <<-
<?xml version="1.0" encoding="utf-8"?>
<menudefine>
<menu title="ファイル">
<menuitem id="11" title="トップ" />
<separator />
<menuitem id="18" title="設定" />
<menuitem id="19" title="終了" />
</menu>
<menu title="業務">
<menuitem id="31" title="日報入力" />
<menuitem id="32" title="出勤入力" />
<menuitem id="33" title="販売管理" />
</menu>
<menu title="マスタ管理">
<menuitem id="91" title="ユーザー情報">
</menuitem>
</menu>
</menudefine>
->>;
//.SetMenu(x);
使用例(JSON)
var j = new JsonDocument;
j << json <<-
{
"menudefine": {
"menu": [
{
"@title": "ファイル",
"menuitem": [
{
"@id": "11",
"@title": "トップ"
},
{
"@id": "18",
"@title": "設定"
},
{
"@id": "19",
"@title": "終了"
}
],
"separator": ""
},
{
"@title": "業務",
"menuitem": [
{
"@id": "31",
"@title": "日報入力"
},
{
"@id": "32",
"@title": "出勤入力"
},
{
"@id": "33",
"@title": "販売管理"
}
]
},
{
"@title": "マスタ管理",
"menuitem": {
"@id": "91",
"@title": "ユーザー情報"
}
}
]
}
}
->>;
//.setMenu(j);
//.menuBar = true;
メニュー定義データの書式¶
メニュー要素
要素名 |
説明 |
親要素 |
属性 |
---|---|---|---|
menu |
トップレベルのメニュー要素です。
メニューバーに表示される項目を指定します。
|
ルート |
title、checked、grayed |
menuitem |
メニュー要素です。
メニューの各項目、サブメニューの親項目になります。
|
menu、menuitem |
id、title、checked、grayed |
separator |
セパレータ要素です。
メニューに区切り線を挿入します。
|
menu、menuitem |
なし |
メニュー属性
属性名 |
説明 |
指定できる値 |
---|---|---|
id |
メニューIDです。
選択されたメニューのIDがMenuSelectedイベントに設定されます。
|
整数値(0~65535) |
title |
メニューに表示されるタイトルです。
|
文字列 |
checked |
チェックマークの有無です。
trueを設定するとメニューの左側にチェックマークが表示されます。
|
true |
grayed |
メニューの有効/無効を指定します。
trueを設定するとメニューが無効状態になります。
|
true |
使用例
CRSダウンロード
ダウンロード(neko1.jpg)
Form Root_win {
X = 0;
Y = 0;
Width = 720;
Height = 480;
/*
iconサンプル(neko1.jpg)とcrsは同じディレクトリで実行してください
Designerでの実行の場合は画像をプロジェクトに登録します。
*/
Number indType=0;
Number indStat=0;
OptionButton optType {
x = 25;
y = 43;
Width = 257;
Height = 106;
OptionItem OptionItem1[4] {
height = 25;
Width = 254;
this[0].Title = "INDTYPE_STD (タブアイコン部分)";
this[1].Title = "INDTYPE_STATUSBAR (ステータスバー)";
this[2].Title = "INDTYPE_WINDOW (ウィンドウ上)";
this[3].Title = "INDTYPE_SILENT (表示なし)";
Function OnTouch( e ) {
^.^.indType = e.from.index;
//.Indicator = ^.^.indStat + ^.^.indType;
}
}
value = 2;
^.indStat = root.INDSTAT_ALL;
//.Indicator = ^.indType + ^.indStat;
}
Button btnMSG {
x = 322;
y = 47;
Width = 171;
Height = 38;
Title = "MessageBox表示(エンジン)";
Function OnTouch( e ) {
MessageBox("インジケータを確認");
}
}
OptionButton OptionButton1 {
x = 35;
y = 215;
Width = 99;
Height = 59;
Border = BORDER_FLATSUNKEN;
OptionItem OptionItem1[2] {
Height = 25;
Width = 81;
Y = 1;
X = 1;
this[0].title = "false";
this[1].title = "true";
}
Value = 0;
Function OnTouch( e ) {
/* XMLサンプルは FrameWindows.crsを参照 */
var j = new JsonDocument;
j << json <<-
{
"menudefine": {
"menu": [
{
"@title": "ファイル",
"menuitem": [
{
"@id": "11",
"@title": "トップ"
},
{
"@id": "18",
"@title": "設定"
},
{
"@id": "19",
"@title": "終了"
}
],
"separator": ""
},
{
"@title": "業務",
"menuitem": [
{
"@id": "31",
"@title": "日報入力"
},
{
"@id": "32",
"@title": "出勤入力"
},
{
"@id": "33",
"@title": "販売管理"
}
]
},
{
"@title": "マスタ管理",
"menuitem": {
"@id": "91",
"@title": "ユーザー情報"
}
}
]
}
}
->>;
//.setMenu(j);
//.menuBar=e.from.index;
}
}
Label Label1 {
x = 31;
y = 193;
Width = 106;
Height = 17;
Value = "メニュー表示";
}
Label Label2 {
x = 32;
y = 22;
width = 171;
Height = 16;
Value = "インジケータ表示位置の指定";
}
Label Label3 {
x = 329;
y = 21;
width = 137;
Height = 16;
Value = "実表示確認用ボタン";
}
Button btnMSG1 {
x = 325;
y = 106;
Width = 171;
Height = 38;
title = "findSession(通信)";
Function OnTouch( e ) {
try {
var session = HttpSession.findSession("http://httpbin/org/");
var res = session.Get("/get");
}
catch(e) {
//.MessageBox("Message=" + str(e.Message) + "\r\nCategory=" + str(e.Category) + "\r\nCode="+ str(e.Code) + "\r\nSubCode=" + str(e.subCode));
}
}
}
Button btnFront {
x = 230;
y = 218;
width = 229;
height = 50;
title = "5秒後にこのタブがアクティブになります。\n押下後に他のタブに切り替えてください。";
function onTouch(e) {
setTimer(5, true);
}
function onTimer(e) {
//.setWindowState(Root.STATE_FRONT);
}
}
/* 左上のタブアイコンがねこ絵になります */
var ic1 = new Image();
var fs = new FileSystem;
var fname = "neko1.jpg" ;
var file1 = fs.Open( fname ,FileSystem.OPEN_READ);
/* ic1.loadImage(file1); */
ic1.loadImage("neko1.jpg");
//.icon = ic1;
}