2016-07-11 25 views
1
これは、フィールドの値を取得するために働く

上のフォームフィールドの値を取得します。しかし、私は後に「フォームの上でこれを発射しようとすると、LibreOfficeの基本の基本的なイベント(例えば、ボタンのクリック)で負荷

Sub runatevent(Event as Object) 
    dim form as Object 
    dim cntrl 
    form = Event.Source.Model.Parent 
    cntrl = form.getByName("txtpath").currentvalue 
    print(cntrl) 
End Sub 

「レコード変更」イベントで、「プロパティまたはメソッドが見つかりません:モデル」

「レコード変更後」フォームイベントで「txtpath」の値を取得するにはどうすればよいですか?

答えて

2

これを理解するために、私はEventオブジェクトでXrayToolを使用しました。これは働いていたものです:your other questionに私の答えのように

form = Event.Source 

、私は結果セットから値を読み取る勧め:

nameCol = form.findColumn("PATH") 
print(form.getString(nameCol)) 

アイデアが形は、結果セットに基づいていることであるので、フォームからコントロールを取得し、コントロールの値をチェックするのではなく、結果セットから読み取ることができます。私の意見ではもう少しエレガントです。

+0

私のデータが列にないフィールド(テキストブロック)にあることを除いて、findColumn()は動作しないように見えます。フォームオブジェクトが現在どのようなメソッドのように単純なものを見つけることができますか?私のフィールドは、データパスを表示するtxtpathという名前で、ラベル(別名lblpath)を持っています。ありがとう! – Trees4theForest

+0

http://chat.stackoverflow.com/rooms/117030/room-for-jim-k-and-trees4theforest-libreoffice-base-get-form-fieldへのディスカッションの移動 –

関連する問題