- ベストアンサー
桐V9での値の取得
桐V9-2007で質問です 左クリックイベントを使用してクリックした行のデータを取得したいと考えています このイベントだと&明細番号があるのでそれを利用すれば良いように思うのですがうまくいきません 初心者ゆえ悪戦苦闘です よろしくお願いいたします
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。 一覧表フォームで左クリックでのその行のある項目値をある変数に取りたいということでいいでしょうか。 フォーム編集と表編集切り替えて確認してみてください。左クリックでレコード位置はその行に移動しています。ということは、[氏名]を &STRに取りたいのなら、[氏名]をソースにしているオブジェクトが t氏名だとして、t氏名のオブジェクト属性のイベントタブ マウス左クリックにチェックいれて、KEVに 手続き定義開始 t氏名::マウス左クリック(長整数 &マウス位置[2],長整数 &明細番号,長整数 &フラグ,参照 長整数 &処理中止) 代入 &STR=[氏名] 手続き定義終了 これだけでいいのです。(マウス・クリックは全角表記にしています。) ただ、これでは t氏名以外のオブジェクトをクリックしても反応してくれません。それには、一覧表オブジェクトのその行の全オブジェクトに同様に設定すればよいのですが、「ファミリ」を使えば、もうちょっとスマートに処理できます。 書式→ファミリパレット 新規作成を2回クリックすれば「ファミリ_1」ができます。 書式→オブジェクトリスト→ファミリ→ファミリ_1 右クリックして両方を選びます。イベントのタブでマウス左クリックにチェック。点3つ並んだビルダボタンをクリック。KEV名はフォーム名と同じにします。KEVの記述は次。 手続き定義開始 ファミリ_1::マウス左クリック(長整数 &マウス位置[2],長整数 &明細番号,長整数 &フラグ,参照 長整数 &処理中止) 代入 &STR=[氏名] 手続き定義終了 あとは各オブジェクトへの設定。1レコードあたり1行とします。フォーム定義で行の一番左のオブジェクトクリック、Shift押しながら一番右のオブジェクトクリック。これでその行の全オブジェクト選択できているはずなので、書式→オブジェクトの属性→イベントのタブ。右下のファミリ名のところでファミリ_1選択。 これで、その行のどの項目を左クリックしても、&STRに[氏名]を代入するイベントが発生することになります。試してみてください。 (書式→定義画面の設定で「詳細プロパティを使用する」にチェックをお忘れなく。操作ナビも消去したほうがいいでしょう。)
お礼
早速の投稿ありがとうございます ご教授いただきましたことを参考にまずは実験して見ます