Hola BPL.
Según entiendo tenés una tabla física asociada a un DBGrid, y una en memoria asociada al segundo DBGrid. Y , una vez pasados los registros de interés al segundo DBGrid, querés desde los mismos acceder a los correspondientes de la tabla física. (al menos eso entendí...)
No trabajo con rxLib, pero te hago un ejemplo usando ClientDataSet para trabajar los datos en memoria, en reemplazo de lo que supongo debe hacer el rx. Para el mismo usé la Tabla Country de DBDEMOS.
Teníamos: un TTable, dos TDataSource, dos TDBGrid y en mi caso un TClientDataSet, usé los eventos OnCellClick en ambos DBGrids.
El ejemplo queda:
Código Delphi
[-]
...
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, DBClient, Grids, DBGrids, DBTables;
type
TForm1 = class(TForm)
Table: TTable;
dsTable: TDataSource;
DBGrid1: TDBGrid;
DBGrid2: TDBGrid;
dsClientDataSet: TDataSource;
ClientDataSet: TClientDataSet;
ClientDataSetPosic: TIntegerField;
ClientDataSetName: TStringField;
ClientDataSetCapital: TStringField;
procedure FormCreate(Sender: TObject);
procedure DBGrid1CellClick(Column: TColumn);
procedure DBGrid2CellClick(Column: TColumn);
private
public
end;
var
Form1: TForm1;
implementation {$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
ClientDataSet.CreateDataSet;
ClientDataSet.Open
end;
procedure TForm1.DBGrid1CellClick(Column: TColumn);
begin
ClientDataSet.Append;
ClientDataSetPosic.Value:= Table.RecNo; ClientDataSetName.Value:= Table.FieldByName('Name').AsString;
ClientDataSetCapital.Value:= Table.FieldByName('Capital').AsString;
end;
procedure TForm1.DBGrid2CellClick(Column: TColumn);
begin
Table.Locate('Name',VarArrayOf([ClientDataSetName.Value]),[])
end;
...
Creo que lo que buscas está en el procedimiento DBGrid2CellClick. Espero aportarte alguna ayuda.
Saludos.
