1

グリッドに複数のレコード選択機能を実装しようとしています。これはhttp://www.tek-tips.com/faqs.cfm?fid=3831
と非常によく似ています 。チェックボックス付きの列が追加されます。それらのチェックボックスが欲しい!

ただし、基礎となるテーブルの追加の論理フィールドに依存します。CHECKBOXを継承するクラスclscheckを作成する必要があります。チェックボックスにこのCLICKプロシージャが必要な理由がわかりません。

 PROCEDURE CLICK
    IF DODEFAULT()
        KEYBOARD '{DNARROW}'
    ENDIF
 ENDPROC

削除すると、行の選択が期待どおりに正しく機能しませんでした。なぜこれ?

要件は次のとおりです
。1)基になるテーブルに論理フィールドを追加したくない。
2)グリッド内のコントロールを操作するには、AllowCellSelectionが.Tである必要があると思います。AllowCellSelection=.Fが必要です。チェックボックス以外のグリッド内のコントロールを操作する必要がないためです。チェックボックスのみを使用する必要があります。他の列は読み取り専用になります。
3)基になるテーブルに論理フィールドのないリストを選択できますか?
4)KEYBOARD'{DNARROW}'の使用を削除できますか?

実際、AllowCellSelection=.Fのグリッドがあります。、ただし、単一の選択のみを提供します。
複数選択で拡張する必要があるため、ユーザーが複数のレコードを選択できることをユーザーが認識できるように、チェックボックス付きの列を追加したいと思います。
ばかユーザーに馴染みのないShift+クリックやCtrl+クリックは必要ありません。

私はこれを見つけました-http://www.tek-tips.com/faqs.cfm?fid
=433 これは追加の論理フィールドにも依存し、Shift+ClickとCtrl+Clickに依存します。

4

1 に答える 1

2

表示されているのは、複数選択グリッドでは非常に一般的です。私は過去にこれに似たものを使用しました。ただし、基になるテーブルの余分な列が心配です。それは本当かもしれません/そうでないかもしれません。ORIGINAL テーブルを常に更新する必要はありませんが、ユーザーに提示する一時的な CURSOR を更新する必要があります。例:従業員の一覧をテーブルで表示したい場合。いいえ、この列を元の従業員テーブルに追加し続けたくありません。複数選択を行おうとしている他の誰かが誤ってあなたの選択を取得する可能性があるからです。ただし、独自のローカル カーソルを取得してユーザーに表示する場合は問題ありません。例...

Thisform.YourGrid.RecordSource = "Employees"
(bound directly to your employee table -- not necessarily the right thing)

use in select( "C_MultiPickEmployees" )
select ;
      .F. as IsChosen, ;
      E.* ;
   from ;
      Employees E;
   into ;
      cursor C_MultiPickEmployees READWRITE

Thisform.YourGrid.RecordSource = "C_MultiPickEmployees"

これで、基になるテーブルの問題に対処することなく、追加の列ができました。特定の部門/部門の従業員など、表示していたものをさらにフィルター処理する場合は、それを WHERE 句に追加し、必要に応じて Order By を追加すれば、準備完了です。

「セルの選択を許可する」に関しては、私はそれに対処する必要はありませんでした。最初の列に「チェックボックス」を追加して設定するだけです

Thisform.YourGrid.Column[1].CurrentControl = "CheckBoxControl"
(列に追加される名前に基づく)。

次に、列 1 の "ControlSource" = "C_MultiPickEmployees.IsChosen" を設定すると、ほぼ完了です。

下向き矢印を強制しようとする「CLICK」イベントについて。これは、次のレコードに自動的にスクロールするためのものなので、クリック、クリック、クリックするだけで複数のエントリを取得できます。

これがあなたのために物事を明確にするのに役立つことを願っています.

于 2012-11-20T08:40:27.947 に答える