⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dxgrclms.pas

📁 人事管理源码 Delphi+ADO+Acce
💻 PAS
📖 第 1 页 / 共 2 页
字号:
    property SortBySummary;
    property OnSummary;
    property SummaryGroupName;

    property SummaryFooterType;
    property SummaryFooterField;
    property SummaryFooterFormat;
    property OnSummaryFooter;
    property OnDrawSummaryFooter;
  end;

  { TdxDBGridTimeColumn }
  TdxDBGridTimeColumn = class(TdxDBTreeListTimeColumn)
  public
    property SummaryGroup;
  published
    property DisableFilter;
    property GroupIndex;
    property SummaryType;
    property SummaryField;
    property SummaryFormat;
    property SortBySummary;
    property OnSummary;
    property SummaryGroupName;

    property SummaryFooterType;
    property SummaryFooterField;
    property SummaryFooterFormat;
    property OnSummaryFooter;
    property OnDrawSummaryFooter;
  end;

  { TdxDBGridCurrencyColumn }
  TdxDBGridCurrencyColumn = class(TdxDBTreeListCurrencyColumn)
  public
    property SummaryGroup;
  published
    property DisableFilter;
    property GroupIndex;
    property SummaryType;
    property SummaryField;
    property SummaryFormat;
    property SortBySummary;
    property OnSummary;
    property SummaryGroupName;

    property SummaryFooterType;
    property SummaryFooterField;
    property SummaryFooterFormat;
    property OnSummaryFooter;
    property OnDrawSummaryFooter;
  end;

  { TdxDBGridMemoColumn }
  TdxDBGridMemoColumn = class(TdxDBTreeListMemoColumn)
  public
    property SummaryGroup;
  published
    property GroupIndex;
    property SummaryType;
    property SummaryField;
    property SummaryFormat;
    property SortBySummary;
    property OnSummary;
    property SummaryGroupName;

    property SummaryFooterType;
    property SummaryFooterField;
    property SummaryFooterFormat;
    property OnSummaryFooter;
    property OnDrawSummaryFooter;
  end;

  { TdxDBGridGraphicColumn }
  TdxDBGridGraphicColumn = class(TdxDBTreeListGraphicColumn)
  public
    property SummaryGroup;
  published
    property GroupIndex;
    property SummaryType;
    property SummaryField;
    property SummaryFormat;
    property SortBySummary;
    property OnSummary;
    property SummaryGroupName;

    property SummaryFooterType;
    property SummaryFooterField;
    property SummaryFooterFormat;
    property OnSummaryFooter;
    property OnDrawSummaryFooter;
  end;

  { TdxDBGridMRUColumn }
  TdxDBGridMRUColumn = class(TdxDBTreeListMRUColumn)
  public
    property SummaryGroup;
  published
    property DisableFilter;
    property GroupIndex;
    property SummaryType;
    property SummaryField;
    property SummaryFormat;
    property SortBySummary;
    property OnSummary;
    property SummaryGroupName;

    property SummaryFooterType;
    property SummaryFooterField;
    property SummaryFooterFormat;
    property OnSummaryFooter;
    property OnDrawSummaryFooter;
  end;

  { TdxDBGridWrapperColumn }
  TdxDBGridWrapperColumn = class(TdxDBTreeListWrapperColumn)
  public
    property SummaryGroup;
  published
    property GroupIndex;
    property SummaryType;
    property SummaryField;
    property SummaryFormat;
    property SortBySummary;
    property OnSummary;
    property SummaryGroupName;

    property SummaryFooterType;
    property SummaryFooterField;
    property SummaryFooterFormat;
    property OnSummaryFooter;
    property OnDrawSummaryFooter;
  end;

implementation

{ TdxDBGridCheckColumn }
procedure TdxDBGridCheckColumn.Assign(Source: TPersistent);
begin
  if Source is TdxDBGridCheckColumn then
  begin
    if Assigned(ATreeList) then ATreeList.BeginUpdate;
    try
      inherited Assign(Source);
      DisplayChecked := TdxDBGridCheckColumn(Source).DisplayChecked;
      DisplayUnChecked := TdxDBGridCheckColumn(Source).DisplayUnChecked;
      DisplayNull := TdxDBGridCheckColumn(Source).DisplayNull;
    finally
      if Assigned(ATreeList) then ATreeList.EndUpdate;
    end;
  end
  else
    inherited Assign(Source);
end;

procedure TdxDBGridCheckColumn.RestoreDefaults;
begin
  inherited RestoreDefaults;
  FDisplayCheck := '';
  FDisplayUnCheck := '';
  FDisplayNull := '';
end;

function TdxDBGridCheckColumn.GetGroupText(const Value: string): string;
var
  AState: TdxCheckBoxState;
begin
  Result := Value;
  AState := GetCheckBoxState(Value);
  case AState of
    cbsGrayed: if FDisplayNull <> '' then Result := FDisplayNull;
    cbsChecked: if FDisplayCheck <> '' then Result := FDisplayCheck;
    cbsUnchecked: if FDisplayUnCheck <> '' then Result := FDisplayUnCheck;
  end;
end;

type
  TCustomdxFilterImageEditWrapper = class(TCustomdxFilterImageEdit);

procedure TdxDBGridCheckColumn.PrepareFilterEdit(AEdit: TdxInplaceEdit);
begin
  inherited PrepareFilterEdit(AEdit);
  if AEdit is TCustomdxFilterImageEdit then
    with TCustomdxFilterImageEditWrapper(AEdit) do
    begin
      if (DisplayChecked <> '') or (DisplayUnChecked <> '') or (DisplayNull <> '') then
      begin
        Descriptions.Clear;
        Descriptions.Add(FDisplayNull);
        Descriptions.Add(FDisplayUnCheck);
        Descriptions.Add(FDisplayCheck);
      end;  
    end;
end;

procedure TdxDBGridCheckColumn.SetDisplayCheck(const Value: string);
begin
  if FDisplayCheck <> Value then
  begin
    FDisplayCheck := Value;
    Changed(True);
  end;
end;

procedure TdxDBGridCheckColumn.SetDisplayUnCheck(const Value: string);
begin
  if FDisplayUnCheck <> Value then
  begin
    FDisplayUnCheck := Value;
    Changed(True);
  end;
end;

procedure TdxDBGridCheckColumn.SetDisplayNull(const Value: string);
begin
  if FDisplayNull <> Value then
  begin
    FDisplayNull := Value;
    Changed(True);
  end;
end;

{ TdxDBGridImageColumn }
function TdxDBGridImageColumn.GetGroupText(const Value: string): string;
var
  AImageIndex, ADescIndex: Integer;
begin
  GetIndexes(Value, AImageIndex, ADescIndex);
  if (0 <= ADescIndex) and (ADescIndex < Descriptions.Count) then
    Result := Descriptions[ADescIndex]
  else Result := Value;
end;

{ InitDBGridColumnList }

procedure InitDBGridColumnList(AFieldType: TFieldType; AFieldKind: TFieldKind;
  var Info: TdxDBTreeListColumnClassInfo);
const
  AVer = 1;
begin
  if AFieldKind <> fkLookup then
  begin
    case AFieldType of
      ftBoolean: Info.ColumnClass := TdxDBGridCheckColumn;
      ftDate, ftDateTime: Info.ColumnClass := TdxDBGridDateColumn;
      ftTime: Info.ColumnClass := TdxDBGridTimeColumn;
      ftCurrency, ftBCD: Info.ColumnClass := TdxDBGridCurrencyColumn;
      ftMemo: Info.ColumnClass := TdxDBGridMemoColumn;
      ftGraphic: Info.ColumnClass := TdxDBGridGraphicColumn;
      ftBytes, ftVarBytes, ftBlob, ftFmtMemo, ftParadoxOle,
        ftDBaseOle, ftTypedBinary{$IFDEF DELPHI5}, ftOraBlob, ftOraClob{$ENDIF}:
          Info.ColumnClass := TdxDBGridBlobColumn;
    else
      Info.ColumnClass := TdxDBGridMaskColumn;
    end;
    Info.Version := AVer;
  end
  else {lookup}
  begin
    Info.ColumnClass := TdxDBGridLookupColumn;
    Info.Version := AVer;
  end;
end;

initialization
  Classes.RegisterClasses([TdxDBGridButtonColumn, TdxDBGridDateColumn,
    TdxDBGridCheckColumn, TdxDBGridImageColumn, TdxDBGridSpinColumn,
    TdxDBGridLookupColumn, TdxDBGridPickColumn, TdxDBGridCalcColumn,
    TdxDBGridBlobColumn,
    TdxDBGridHyperLinkColumn, TdxDBGridTimeColumn, TdxDBGridCurrencyColumn,
    TdxDBGridMemoColumn, TdxDBGridGraphicColumn, TdxDBGridMRUColumn,
    TdxDBGridWrapperColumn]);

  InitDefaultDBGridColumnClasses(InitDBGridColumnList);

finalization
  ResetDefaultDBGridColumnClasses;

end.

⌨️ 快捷键说明

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