AX リストボックスの扱い方 −LibreOffice Base−

リストボックスの扱い方 −LibreOffice Base−


JA福岡市様の作成のPDF(実践編PDF)では、リストボックスの項目用のテーブルを作ってSQLでリスト内容を設定して、という方法が推奨されているようです。
ただ、リレーション前提のテーブル設計は、Base では初心者は躓きやすい
上記のPDFでは2番目に説明されている、直接リストボックスに値を設定する方法をお薦めします。

 

リストボックスの設定方法は、下記のとおり。

1.リストボックスのコントロールのプロパティの”データ”タブの”リストの内容の種類”を”値リスト”にする。
2.”全般”タブの”リストの項目”欄に任意の項目を記述。Shift+Enterで改行しながら。
 この時、最終行に空行を1行入れること。 未選択状態の把握に使う。
3.”全般”タブの”行数”に、空行も含めた行数を設定。(本当に使う項目数より1多く)
4.”全般”タブの”標準選択範囲”に、空行が標準選択になるよう数値を入力。
 この項目は0から数字が始まるので、設定数値は上の”行数”の設定数値より1少なくなるはず。

 

このリストボックスで選択された文字列を取得するマクロの例は、下記。
ボタンに割り当てる等して、試してみてください


Sub GetListStr

	Dim formRealName As String
	Dim listName As String
	DIm lineCnt As Integer
	Dim selectedNum As String
	Dim selectedStr As String

	formRealName = "●●フォームの本名●●"
	listname = "●●リストボックスの名前●●"

	oDoc = ThisComponent.getParent()
	oAConnection = oDoc.CurrentController.ActiveConnection
	oDraw = ThisComponent.getDrawPage()
	oForm = oDraw.getForms().getByName(formRealName)
	lineCnt = oForm.getbyname(listName).LineCount    '全行数を取得。項目数ではなく、”全般”タブの”行数”のこと。表示される行数のこと。
	selectedNum = oForm.getbyname(listName).SelectedItems(0) '選択された要素の番号を取得
	If selectedNum = lineCnt - 1 Then
		msgbox "何か選択してください。",,""
		Exit Sub
	End If
	selectedStr = oForm.getbyname(listName).StringItemList(selectedNum) '文字列を取得
	msgbox selectedStr & " が選択されました。"

End Sub

続けて、「リストボックスの扱い方(その2)」の記事もどうぞ。

( LibreOffice 6.2.4.2 / Linux Mint Debian Edition3(LMDE3)”Cindy” )

シェアする

  • このエントリーをはてなブックマークに追加

フォローする