選択した項目の値をグリッドから取得してテキスト ボックスに入れるにはどうすればよいですか? ありがとう!
4 に答える
AfterRowColChange() イベントを使用して、最新の「ControlSource」をグリッドにバインドされたものとして保持できます。次に、値を取得して別の場所に配置したい場合は、そのソースの EVALUATE() を実行します。このサンプルを確認するために、グリッドとラベルを含む単純なフォームを作成しました。グリッドの列数を -1 に設定すると、デフォルトで、表示に使用されるテーブル/カーソル内のすべての列の列が自動作成されます。
行と列の間を上下左右にスクロールすると、現在の列のコントロール ソースを取得し、ラベルのキャプションをそのようなソースの EVALUATION に設定します。「TRANSFORM()」は、値を互換性のある文字列に強制するため、論理、日付、日付/時刻、int、数値などでクラッシュすることはありません.ただし、「一般」タイプのフィールドでは問題が発生する可能性があります.
LPARAMETERS nColIndex
lcSrc = This.Columns[nColIndex].ControlSource
Thisform.label1.Caption = TRANSFORM( EVALUATE( lcSrc ))
繰り返しますが、保存するために、グリッドの「COMMENT」プロパティに「フォーカスのある最後の列」として保存することをお勧めします... (上記の lcSrc と同じように)、割り当てから必要に応じて割り当てますラベル。このようにして、DID がフォーカスされた時点でどの列が最新であったかを知ることができます...
This.Comment = This.Columns[nColIndex].ControlSource
データソースがテーブルまたはカーソルの場合、メモリからグリッドがテーブルの現在の行を変更すると思います。したがって、テーブルにアクセスするだけです。
しかし、私は休暇中とiPhoneを使用しているので、思い出に残ることになります。
グリッドでは、行に移動すると、レコード ポインターが基になるテーブルの対応する行に移動します。したがって、テーブルの適切な項目を参照するだけで済みます。
ThisForm.Text1.Value = TheRelevantTable.TheRelevantField
タマル