Thema: Delphi QuantumGrid Multiselect

Einzelnen Beitrag anzeigen

Benutzerbild von dataspider
dataspider

Registriert seit: 9. Nov 2003
Ort: 04539 Groitzsch
1.350 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: QuantumGrid Multiselect

  Alt 5. Dez 2012, 12:55
Hi,

wie Union schon sagt, du musst auf jeden Fall KeyFields den / die Feldname(n) des PK zuweisen.

Hier mal ein Beispiel, wie ich die PK - Werte hole:

Delphi-Quellcode:
procedure AssignSelectedKeyValues(AView: TcxGridDBTableView; AValues:
    TIntegerList);
Var
  I : Integer;
  RecordId: Variant;
  DataController: TcxGridDBDataController;
  Controller: TcxGridTableController;
  AKeyFields: TList;
begin
  DataController := AView.DataController;
  Controller := AView.Controller;
  AKeyFields := TList.Create;
  try
    DataController.GetKeyDBFields(AKeyFields);
    if AKeyFields.Count = 1 then
    begin
      if Controller.SelectedRowCount = 0 then
      begin
        RecordId := DataController.GetRecordId(Controller.FocusedRecordIndex);
        if not VarIsNull(RecordId) then
          AValues.Add(RecordId);
      end
      else
      begin
        for i := 0 to Controller.SelectedRecordCount - 1 do
        begin
          RecordId := DataController.GetRecordId(Controller.SelectedRecords[i].RecordIndex);
          if not VarIsNull(RecordId) then
            AValues.Add(RecordId);
        end;
      end;
    end;
  finally
    AKeyFields.Free;
  end;
end;
Du kannst also über den RecordIndex die RecordId (PK) ermitteln.

Frank
Frank Reim
  Mit Zitat antworten Zitat