Einzelnen Beitrag anzeigen

Benutzerbild von dataspider
dataspider

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

AW: DevExpress Grid: Record Daten

  Alt 26. Feb 2018, 15:32
Ich hoffe, ich habe dein Problem richtig verstanden.

Ich habe mir dafür mal einen Helper (für den DataController) gebastelt.

Delphi-Quellcode:
procedure TcxGridDBDataControllerHelper.GetFieldStringValues(AValues:
    TGenericStringList; const AFieldName: string; const AAllRecords: Boolean =
    True);
Var
  I: Integer;
  AItem: TcxCustomGridTableItem;
  AItemIndex: Integer;

  procedure AddValue(const AValue: Variant);
  Var
    AStringValue: string;
  begin
    AStringValue := VarToStr(AValue);
    if (AStringValue <> '') then
      AValues.Add(AStringValue);
  end;

begin
  if (Controller.SelectedRecordCount = 0) and not AAllRecords then
    Exit;
  if DataModeController.GridMode then
    raise Exception.Create('Methode in GridMode nicht möglich');
  AItem := GetItemByFieldName(AFieldName);

  if AItem = nil then
    Exit;

  AItemIndex := AItem.Index;
  if (Controller.SelectedRecordCount > 1) then
  begin
    for i := 0 to Controller.SelectedRecordCount - 1 do
      AddValue(Controller.SelectedRecords[i].Values[AItemIndex]);
  end
  else
    if AAllRecords then
    begin
      for i := 0 to FilteredRecordCount - 1 do
        AddValue(Values[FilteredRecordIndex[i], AItemIndex]);
    end
    else
      AddValue(Controller.FocusedRecord.Values[AItemIndex]);
end;
Hier werden die Werte eines beliebigen Feldes in eine Liste geschrieben.
Ich brauchte die Werte zur Weiterverwendung im SQL für ein IN Statement.

Ist es das was du suchst?

Frank
Frank Reim
  Mit Zitat antworten Zitat