【Biz】コンボとか

なんかいろいろありすぎて訳わかんなくなったので整理。


参考リンク

参考 ListBoxクラスBizの宝箱
参考 PulldownListクラスBizの宝箱
参考 ComboBoxクラスBizの宝箱
参考 CheckBoxクラスBizの宝箱
参考 OptionButtonクラスBizの宝箱

実行環境

・OS:Windows 10
・Biz/Designer:5.1.0.0

使い方

ListBox


	ListBox ListBox1 {
		X = 24;
		Y = 16;
		Width = 240;
		Height = 72;
		ListItem ListItem1[];
		
		ListItem1 << csv(.title, .value) {
			"タイトル1","001"
			"タイトル2","002"
			"タイトル3","003"
			"タイトル4","004"
			"タイトル5","005"
			"タイトル6","006"
		};/* 注意事項 カンマの後にスペースを入れるのはNG */
		
		Function GetTitle() {
			/* 未選択 */
			if (this.Value < 0) return;
			/* 値返却 */
			return ListItem1[this.Value].Title;
		}
		
		Function GetValue() {
			/* 未選択 */
			if (this.Value < 0) return;
			/* 値返却 */
			return ListItem1[this.Value].Value;
		}
	}

	Button Button2 {
		X = 272;
		Y = 16;
		Width = 80;
		Height = 72;
		Title = "値取得";
		
		Function OnTouch( e ) {
			/* インデックスの場所を取得 */
			//.MessageBox("Index:" + Str(^.ListBox1.Value));
			
			/* 各種Functionを呼び出し値を取得 */
			//.MessageBox("Title:" + ^.ListBox1.GetTitle());
			//.MessageBox("Value:" + ^.ListBox1.GetValue());
		}
	}

PulldownList


	PulldownList PulldownList1 {
		X = 24;
		Y = 16;
		Width = 240;
		Height = 72;
		PulldownItem PulldownItem1[];
		
		PulldownItem1 << csv(.title, .value) {
			"タイトル1","001"
			"タイトル2","002"
			"タイトル3","003"
			"タイトル4","004"
			"タイトル5","005"
			"タイトル6","006"
		};/* 注意事項 カンマの後にスペースを入れるのはNG */
		
		Function GetTitle() {
			/* 未選択 */
			if (this.Value < 0) return;
			/* 値返却 */
			return PulldownItem1[this.Value].Title;
		}

		Function GetValue() {
			/* 未選択 */
			if (this.Value < 0) return;
			/* 値返却 */
			return PulldownItem1[this.Value].Value;
		}
		
	}
	
	Button Button3 {
		X = 272;
		Y = 16;
		Width = 80;
		Height = 72;
		Title = "値取得";
		
		Function OnTouch( e ) {
			/* インデックスの場所を取得 */
			//.MessageBox("Index:" + Str(^.PulldownList1.Value));
			
			/* 各種Functionを呼び出し値を取得 */
			//.MessageBox("Title:" + ^.PulldownList1.GetTitle());
			//.MessageBox("Value:" + ^.PulldownList1.GetValue());
		}
	}

ComboBox


	ComboBox ComboBox1 {
		X = 24;
		Y = 16;
		Width = 240;
		Height = 72;
		ComboItem ComboItem1[];
		
		ComboItem1 << csv(.value) {
			"001"
			"002"
			"003"
			"004"
			"005"
			"006"
		};
		
		Function ConfirmChange(){
			var result = false;
			for( var i = 0; i < ComboItem1.length; i++ ) {
				if(ComboItem1[i].Value == this.Value){
					result = true;
				}
			}
			return result;
		}
	}
	
	Button Button4 {
		X = 272;
		Y = 16;
		Width = 80;
		Height = 72;
		Title = "値取得";
		
		Function OnTouch( e ) {
			/* 値を取得 */
			//.MessageBox(Str(^.ComboBox1.Value));
			
			/* CSVの中に存在するか */
			//.MessageBox("存在確認:" + Str(^.ComboBox1.ConfirmChange()));
		}
	}

※ComboBoxは手入力が可能なので、Valueを取得してもそのまま値が取得されます。

CheckBox


	CheckBox CheckBox1 {
		X = 24;
		Y = 16;
		Width = 240;
		Height = 72;
		
		CheckItem CheckItem1[] {
			Height = 20;
			Width = 150;
			LayoutSpacing = 0;
			LayoutMargin = 2;
			Layout = $VERTICAL;
			LayoutSpacing = 2;
		};

		CheckItem1 << csv(.title, .value) {
			"タイトル1","001"
			"タイトル2","002"
			"タイトル3","003"
			"タイトル4","004"
			"タイトル5","005"
			"タイトル6","006"
		};/* 注意事項 カンマの後にスペースを入れるのはNG */
		
		Function GetTitle(index) {
			/* 未選択 */
			if (index < 0) return;
			/* 値返却 */
			return CheckItem1[index].Title;
		}

		Function GetValue(index) {
			/* 未選択 */
			if (index < 0) return;
			/* 値返却 */
			return CheckItem1[index].Value;
		}
		
		Function GetValues() {
			var arr = new Array;
			for( var i = 0; i < CheckItem1.length; i++ ) {
				arr[i] = CheckItem1[i].Selected;
			}
			return arr;
		}
		
	}
	
	Button Button5 {
		X = 272;
		Y = 16;
		Width = 80;
		Height = 72;
		Title = "値取得";
		
		Function OnTouch( e ) {
			/* 値を取得 */
			var arr = ^.CheckBox1.GetValues();
			for( var i = 0; i < arr.length; i++ ) {
				if(arr[i] == true) {
					//.MessageBox("Title:" + ^.CheckBox1.GetTitle(i));
					//.MessageBox("Value:" + ^.CheckBox1.GetValue(i));
				}
			}
			
		}
	}

チェックボックスは複数選択が可能なので複数選択されてる考慮をして実装する必要があります。

OptionButton


	OptionButton OptionButton1 {
		X = 16;
		Y = 368;
		Width = 240;
		Height = 72;
		OptionItem OptionItem1[] {
			Height = 20;
			Width = 150;
			LayoutSpacing = 0;
			LayoutMargin = 2;
			Layout = $VERTICAL;
			LayoutSpacing = 2;
		};
		
		OptionItem1 << csv(.title, .value) {
			"タイトル1","001"
			"タイトル2","002"
			"タイトル3","003"
			"タイトル4","004"
			"タイトル5","005"
			"タイトル6","006"
		};/* 注意事項 カンマの後にスペースを入れるのはNG */
		
		Function GetTitle() {
			/* 未選択 */
			if (this.Value < 0) return;
			/* 値返却 */
			return OptionItem1[this.Value].Title;
		}

		Function GetValue() {
			/* 未選択 */
			if (this.Value < 0) return;
			/* 値返却 */
			return OptionItem1[this.Value].Value;
		}
	}
	
	Button Button6 {
		X = 272;
		Y = 368;
		Width = 80;
		Height = 72;
		Title = "値取得";
		
		Function OnTouch( e ) {
			/* 値を取得 */
			//.MessageBox("Title:" + ^.OptionButton1.GetTitle());
			//.MessageBox("Value:" + ^.OptionButton1.GetValue());
			
		}
	}

いろんな方法で設定してみる

クラスの中で直接CSVを記述してオペレーター(<< ←コレ)で流し込む以外のやり方以外。


	if ( !$DESIGNTIME ) {
		/* CSVをココで作成 */
		CSVDocument csvData = new CSVDocument;
 		csvData << csv(.title, .value) {
			"タイトル1","001"
			"タイトル2","002"
			"タイトル3","003"
			"タイトル4","004"
			"タイトル5","005"
			"タイトル6","006"
			"タイトル7","007"
		};
		ListBox1.ListItem1 << csvData;
	}
	
	if ( !$DESIGNTIME ) {
		/* ネットワークからCSVを取得 */
		CSVDocument csvData = new CSVDocument;
		csvData.get("http://localhost/Test/test.csv");
		/* カラム名を設定 */
		csvData.setColumnName(0, ".title");
		csvData.setColumnName(1, ".value");
		/* オペレーターで値を設定 */
		ListBox1.ListItem1 << csvData;
	}
	
	if ( !$DESIGNTIME ) {
		/* ループで追加する */
		CSVDocument csvData = new CSVDocument;
 		for (var i = 0; i < 10; i++ ){
			ListBox1.ListItem1.insert();
            ListBox1.ListItem1[i].Title = "タイトル" + str(i);
			ListBox1.ListItem1[i].Value = str(i);
		}
	}

まとめたソース

まとめたソース載せておきます。使いたかったらコピペでご使用ください。
ソースを表示


ということで、いろいろやってみましたが
1個使い方覚えれば、特に問題無く使えそうですね。

以上。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください