OpenOffise.org BASE でフォームに貼り付けたボタンを押したときに、
データベースのフィルタを切り替えて表示する内容を変更したかった。
3日悩んでようやくやり方が判ったのでメモしておく。
そして Form.Filter、Form.Order、Form.ApplyFilter の各プロパティをセットする。
Filter はSQL のSELECT文のWHERE 句に相当。
Order はORDER BY 句。
ApplyFilter はTrue かFalse か。(フィルタをはずしたければFalse)
さいごのReload() がミソ。
データベースのフィルタを切り替えて表示する内容を変更したかった。
3日悩んでようやくやり方が判ったのでメモしておく。
REM ***** BASIC *****
rem ----------------------------------------------------------------------
rem define variables
public Doc as object
public DrawPage as object
public Form as object
rem ----------------------------------------------------------------------
sub getForm
Doc = starDesktop.CurrentComponent '
DrawPage = Doc.DrawPage '
Form = DrawPage.Forms.getByIndex(0) '
end sub
rem ----------------------------------------------------------------------
sub FilterBalloons
dim qt as string : qt = chr(34)
dim lf as string : lf = chr(13)
' SELECT * FROM "商品" WHERE ("区分コード" LIKE '1*') ORDER BY "商品コード" ASC -- 気球関連選択
getForm()
Form.Filter = "( "+qt+"区分コード"+qt+" LIKE '1*' )"
Form.Order = qt+"商品コード"+qt+" ASC"
Form.ApplyFilter = true
Form.Reload()
end sub
まず Form を取得する。そして Form.Filter、Form.Order、Form.ApplyFilter の各プロパティをセットする。
Filter はSQL のSELECT文のWHERE 句に相当。
Order はORDER BY 句。
ApplyFilter はTrue かFalse か。(フィルタをはずしたければFalse)
さいごのReload() がミソ。