各位哥哥能帮忙注释一下最好
procedure TGridModeDemoMainForm.tvDataControllerFilterGetValueList(
Sender: TcxFilterCriteria; AItemIndex: Integer;
AValueList: TcxDataFilterValueList); //定义参数
var
AColumn: TcxGridDBColumn;
ADataSet: TDataSet;
AProperties: TcxLookupComboBoxProperties;
AValue: Variant;
AIsLookupColumn: Boolean;
begin
ADataSet := TcxGridDBTableView(Grid.FocusedView).DataController.DataSet; //给dataset赋值
AColumn := TcxGridDBTableView(Grid.FocusedView).Columns[AItemIndex]; //给列赋值
AIsLookupColumn := AColumn.PropertiesClass = TcxLookupComboBoxProperties;
with GridModeDemoDataDM do //引用数据窗体
try
Screen.Cursor := crHourGlass;
qryHelper.SQL.Clear;
qryHelper.SQL.Add(
'Select DISTINCT ' + AColumn.DataBinding.FieldName + ' From ' +
GetTableNameByDataSet(ADataSet));
qryHelper.SQL.Add(
GetSQLCondition(TcxGridDBTableView(Grid.FocusedView), False));
qryHelper.Open;
qryHelper.First;
while not qryHelper.Eof do
begin
AValue := qryHelper.Fields[0].Value;
if AIsLookupColumn then
begin
AProperties := TcxLookupComboBoxProperties(AColumn.GetProperties);
ADataSet := AProperties.ListSource.DataSet;
AValue := ADataSet.Lookup(
AProperties.KeyFieldNames,AValue, AProperties.ListFieldNames);
end;
if VarIsNull(AValue) then Exit;
AValueList.Add(fviValue, qryHelper.Fields[0].Value, AValue, False);
qryHelper.Next;
end;
qryHelper.Close;
finally
Screen.Cursor := crDefault;
end;
end; //实在看不懂.
procedure TGridModeDemoMainForm.tvDataControllerFilterGetValueList(
Sender: TcxFilterCriteria; AItemIndex: Integer;
AValueList: TcxDataFilterValueList); //定义参数
var
AColumn: TcxGridDBColumn;
ADataSet: TDataSet;
AProperties: TcxLookupComboBoxProperties;
AValue: Variant;
AIsLookupColumn: Boolean;
begin
ADataSet := TcxGridDBTableView(Grid.FocusedView).DataController.DataSet; //给dataset赋值
AColumn := TcxGridDBTableView(Grid.FocusedView).Columns[AItemIndex]; //给列赋值
AIsLookupColumn := AColumn.PropertiesClass = TcxLookupComboBoxProperties;
with GridModeDemoDataDM do //引用数据窗体
try
Screen.Cursor := crHourGlass;
qryHelper.SQL.Clear;
qryHelper.SQL.Add(
'Select DISTINCT ' + AColumn.DataBinding.FieldName + ' From ' +
GetTableNameByDataSet(ADataSet));
qryHelper.SQL.Add(
GetSQLCondition(TcxGridDBTableView(Grid.FocusedView), False));
qryHelper.Open;
qryHelper.First;
while not qryHelper.Eof do
begin
AValue := qryHelper.Fields[0].Value;
if AIsLookupColumn then
begin
AProperties := TcxLookupComboBoxProperties(AColumn.GetProperties);
ADataSet := AProperties.ListSource.DataSet;
AValue := ADataSet.Lookup(
AProperties.KeyFieldNames,AValue, AProperties.ListFieldNames);
end;
if VarIsNull(AValue) then Exit;
AValueList.Add(fviValue, qryHelper.Fields[0].Value, AValue, False);
qryHelper.Next;
end;
qryHelper.Close;
finally
Screen.Cursor := crDefault;
end;
end; //实在看不懂.
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货