cxgriddbchartview.pas

来自「胜天进销存源码,国产优秀的进销存」· PAS 代码 · 共 596 行 · 第 1/2 页

PAS
596
字号
begin
  TcxComponentAccess(GridView).UpdateFakeLinks;
end;

procedure TcxGridDBChartDataController.DoValueTypeClassChanged(AItemIndex: Integer);
var
  AChartItem: IcxGridChartItem;
begin
  inherited;
  if Supports(GetItem(AItemIndex), IcxGridChartItem, AChartItem) then
    AChartItem.ValueTypeClassChanged;
end;

{function TcxGridDBChartDataController.GetChartViewItemIndex: Integer;
begin
  if GridView.SortedSeries = nil then
    Result := -1
  else
    Result := GridView.SortedSeries.DataBinding.DataIndex;
end;}

function TcxGridDBChartDataController.GetItemID(AItem: TObject): Integer;
var
  AChartItem: IcxGridChartItem;
begin
  if Supports(AItem, IcxGridChartItem, AChartItem) then
    Result := AChartItem.GetID
  else
    Result := -1;
end;

function TcxGridDBChartDataController.GetSortingBySummaryEngineClass: TcxSortingBySummaryEngineClass;
begin
  Result := GridView.ViewData.GetSortingBySummaryEngineClass;
end;

function CompareFields(Item1, Item2: Pointer): Integer;
begin
  if TField(Item1).DisplayName < TField(Item2).DisplayName then
    Result := -1
  else
    if TField(Item1).DisplayName > TField(Item2).DisplayName then
      Result := 1
    else
      Result := 0;
end;

procedure TcxGridDBChartDataController.GetValidValueFields(AItemClass: TcxGridChartItemClass;
  AFields: TList);
var
  I: Integer;
  AField: TField;
begin
  if DataSet = nil then Exit;
  for I := 0 to DataSet.FieldCount - 1 do
  begin
    AField := DataSet.Fields[I];
    if not AItemClass.IsValue or
      IsValueTypeClassValid(GetValueTypeClassByField(AField)) then
      AFields.Add(AField);
  end;
  AFields.Sort(CompareFields);
end;

procedure TcxGridDBChartDataController.Unlocked;
begin
  inherited;
  GridView.DataControllerUnlocked;
end;

procedure TcxGridDBChartDataController.BeginFullUpdate;
begin
  GridView.BeginUpdate;
  inherited;
end;

procedure TcxGridDBChartDataController.EndFullUpdate;
begin
  inherited;
  GridView.EndUpdate;
end;

function TcxGridDBChartDataController.GetItem(Index: Integer): TObject;
begin
  Result := Fields[Index].Item;
end;

{ TcxGridDBChartItemDataBinding }

function TcxGridDBChartItemDataBinding.GetDataController: TcxGridDBChartDataController;
begin
  Result := TcxGridDBChartDataController(inherited DataController);
end;

function TcxGridDBChartItemDataBinding.GetField: TField;
begin
  Result := DataController.GetItemField(DataIndex);
end;

function TcxGridDBChartItemDataBinding.GetFieldName: string;
begin
  Result := DataController.GetItemFieldName(DataIndex);
end;

procedure TcxGridDBChartItemDataBinding.SetFieldName(const Value: string);
begin
  DataController.ChangeFieldName(DataIndex, Value);
end;

function TcxGridDBChartItemDataBinding.GetDefaultDisplayText: string;
begin
  if Field = nil then
    Result := inherited GetDefaultDisplayText
  else
    Result := Field.DisplayName;
end;

function TcxGridDBChartItemDataBinding.GetDefaultRepositoryItem: TcxEditRepositoryItem;
begin
  Result := GetDefaultEditDBRepositoryItems.GetItemByField(Field);
end;

function TcxGridDBChartItemDataBinding.GetDefaultValuesProviderClass: TcxCustomEditDefaultValuesProviderClass;
begin
  Result := TcxCustomDBEditDefaultValuesProvider;
end;

function TcxGridDBChartItemDataBinding.GetDefaultValueTypeClass: TcxValueTypeClass;
begin
  Result := nil;
end;

procedure TcxGridDBChartItemDataBinding.InitDefaultValuesProvider(ADefaultValuesProvider: TcxCustomEditDefaultValuesProvider);
begin
  inherited;
  TcxCustomDBEditDefaultValuesProvider(ADefaultValuesProvider).DataSource := DataController.DataSource;
  TcxCustomDBEditDefaultValuesProvider(ADefaultValuesProvider).Field := Field;
end;

function TcxGridDBChartItemDataBinding.IsValueTypeStored: Boolean;
begin
  Result := FieldName = '';
end;

procedure TcxGridDBChartItemDataBinding.Assign(Source: TPersistent);
begin
  if Source is TcxGridDBChartItemDataBinding then
    FieldName := TcxGridDBChartItemDataBinding(Source).FieldName;
  inherited;
end;

{ TcxGridDBChartCategories }

function TcxGridDBChartCategories.GetDataBinding: TcxGridDBChartItemDataBinding;
begin
  Result := TcxGridDBChartItemDataBinding(inherited DataBinding);
end;

procedure TcxGridDBChartCategories.SetDataBinding(Value: TcxGridDBChartItemDataBinding);
begin
  inherited DataBinding := Value;
end;

{ TcxGridDBChartDataGroup }

function TcxGridDBChartDataGroup.GetDataBinding: TcxGridDBChartItemDataBinding;
begin
  Result := TcxGridDBChartItemDataBinding(inherited DataBinding);
end;

procedure TcxGridDBChartDataGroup.SetDataBinding(Value: TcxGridDBChartItemDataBinding);
begin
  inherited DataBinding := Value;
end;

{ TcxGridDBChartSeries }

function TcxGridDBChartSeries.GetDataBinding: TcxGridDBChartItemDataBinding;
begin
  Result := TcxGridDBChartItemDataBinding(inherited DataBinding);
end;

procedure TcxGridDBChartSeries.SetDataBinding(Value: TcxGridDBChartItemDataBinding);
begin
  inherited DataBinding := Value;
end;

{ TcxGridDBChartView }

function TcxGridDBChartView.GetCategories: TcxGridDBChartCategories;
begin
  Result := TcxGridDBChartCategories(inherited Categories);
end;

function TcxGridDBChartView.GetDataController: TcxGridDBChartDataController;
begin
  Result := TcxGridDBChartDataController(FDataController);
end;

function TcxGridDBChartView.GetDataGroup(Index: Integer): TcxGridDBChartDataGroup;
begin
  Result := TcxGridDBChartDataGroup(inherited DataGroups[Index]);
end;

function TcxGridDBChartView.GetSeries(Index: Integer): TcxGridDBChartSeries;
begin
  Result := TcxGridDBChartSeries(inherited Series[Index]);
end;

procedure TcxGridDBChartView.SetCategories(Value: TcxGridDBChartCategories);
begin
  inherited Categories := Value;
end;

procedure TcxGridDBChartView.SetDataController(Value: TcxGridDBChartDataController);
begin
  FDataController.Assign(Value);
end;

procedure TcxGridDBChartView.SetDataGroup(Index: Integer; Value: TcxGridDBChartDataGroup);
begin
  inherited DataGroups[Index] := Value;
end;

procedure TcxGridDBChartView.SetSeries(Index: Integer; Value: TcxGridDBChartSeries);
begin
  inherited Series[Index] := Value;
end;

function TcxGridDBChartView.GetCategoriesClass: TcxGridChartCategoriesClass;
begin
  Result := TcxGridDBChartCategories;
end;

function TcxGridDBChartView.GetDataControllerClass: TcxCustomDataControllerClass;
begin
  Result := TcxGridDBChartDataController;
end;

function TcxGridDBChartView.GetItemDataBindingClass: TcxGridChartItemDataBindingClass;
begin
  Result := TcxGridDBChartItemDataBinding;
end;

function TcxGridDBChartView.FindItemByFieldName(AItemClass: TcxGridChartItemClass;
  const AFieldName: string): TcxGridChartItem;
var
  AItems: TList;
  I: Integer;
begin
  AItems := GetItemList(AItemClass);
  for I := 0 to AItems.Count - 1 do
  begin
    Result := TcxGridChartItem(AItems[I]);
    if SameText(TcxGridDBChartItemDataBinding(Result.DataBinding).FieldName, AFieldName) then Exit;
  end;
  Result := nil;
end;

function TcxGridDBChartView.CreateDataGroup: TcxGridDBChartDataGroup;
begin
  Result := TcxGridDBChartDataGroup(inherited CreateDataGroup);
end;

function TcxGridDBChartView.FindDataGroupByFieldName(const AFieldName: string): TcxGridDBChartDataGroup;
begin
  Result := TcxGridDBChartDataGroup(FindItemByFieldName(GetDataGroupClass, AFieldName));
end;

function TcxGridDBChartView.GetDataGroupClass: TcxGridChartDataGroupClass;
begin
  Result := TcxGridDBChartDataGroup;
end;

function TcxGridDBChartView.CreateSeries: TcxGridDBChartSeries;
begin
  Result := TcxGridDBChartSeries(inherited CreateSeries);
end;

function TcxGridDBChartView.FindSeriesByFieldName(const AFieldName: string): TcxGridDBChartSeries;
begin
  Result := TcxGridDBChartSeries(FindItemByFieldName(GetSeriesClass, AFieldName));
end;

function TcxGridDBChartView.GetSeriesClass: TcxGridChartSeriesClass;
begin
  Result := TcxGridDBChartSeries;
end;

initialization
  cxGridRegisteredViews.Register(TcxGridDBChartView, 'DB Chart');
  Classes.RegisterClasses([TcxGridDBChartDataGroup, TcxGridDBChartSeries]);

finalization
  cxGridRegisteredViews.Unregister(TcxGridDBChartView);

end.

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?