PK が TDBAdvGrid の列 0 に関連付けられているレコードで Locate を必死に実行しようとしています。私が持っている TMS Component Pack のバージョンは 6.8.something です。Delphi XE 1 を搭載した Win7x64 で使用しています。PageMode はオフになっています。これは、クライアント レベルでの並べ替えとグループ化が必要になるためです (現時点ではバックエンド データベースはなく、オフライン モードのクライアント データセットのみ)。
見つけるための私のコードは次のようなものです:
procedure TMainFrm.EditAction;
var ItemID : Integer;
ItemIDStr: String;
begin
// With PageMode set to false(which we need), the dataset is not synchronized.
//ItemID := GetActionGrid.Columns[ 0 ].Field.AsInteger;
ItemIDStr := GetActionGrid.Cells[ 0,GetActionGrid.SelectedRow[ 0 ] ];
ItemID := StrToIntDef( ItemIDStr ,-1 );
// GetActionGrid.Fields[ 0 ].AsInteger;
If DMMain.CLNActions.Locate( 'ITEM_ID',ItemID,[] ) Then
CreateApplicationForm( TActionFrm, True );
end;
ただし、ItemIDStr は常に空の文字列を返すため、機能しません。私は今、本当にアイデアが不足しています。
提案?
ありがとうございました!