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

📄 fuqexport4xlseditor.pas.~1~

📁 Advanced.Export.Component.v4.01.rar,delphi 第三方控件
💻 ~1~
📖 第 1 页 / 共 3 页
字号:

    FExportSourceList: TStringList;

    FLoading: boolean;
    FNeedSelected: boolean;

    FCurrSheet: TListItem;
    FCurrColumn: TListItem;
    FCurrOption: TListItem;
    FCurrStyle: TListItem;

    FHyperlinkNode: TTreeNode;
    FNoteNode: TTreeNode;
    FChartNode: TTreeNode;
    FCellNode: TTreeNode;
    FMergedCellNode: TTreeNode;

    FStandardFormatPageIndex: integer;
    FNoteFormatPageIndex: integer;
    FNotePageIndex: integer;
    FHyperlinkPageIndex: integer;
    FChartPageIndex: integer;
    FSeriesPageIndex: integer;
    FCellPageIndex: integer;
    FMergedCellPageIndex: integer;

    FCurrList: integer;
    FCurrFormat: integer;

    procedure ShowCurrSheet;

    procedure TuneSheetButtons;
    procedure TuneExportRecCount;
    procedure TuneHeader;
    procedure TuneFooter;
    procedure TuneFormats;
    procedure TuneXLSChartPosition;
    procedure TuneXLSChartCategoryLabel;
    procedure TuneXLSSeriesDataRange;

    function GetCurrFmtList: TListView;
    function GetCurrFmtItem: TxlsCustomItem;

    function GetCurrFont: TxlsFont;
    function GetCurrAlignment: TxlsAlignment;
    function GetCurrBorders: TxlsBorders;
    function GetCurrFill: TxlsFill;
    procedure SetCurrDefault;

    procedure ShowColumnButtons;
    procedure ShowStyleButtons;

    procedure LoadSheets;
    procedure SaveSheets;

    procedure SetFormatsActivePage(Value: TTabSheet);

    procedure FillLists(Sheet: TxlsSheet);
    procedure ClearLists;
    procedure FillExportSourceList;
    procedure AddExportSourceListItem(const S: string);
    procedure SetSheetExportSource(Sheet: TxlsSheet; Source: TComponent);
    procedure MoveListItemUp(ListView: TListView);
    procedure MoveListItemDown(ListView: TListView);
    procedure RenumStyles;
    function CurrentSheetMemo: TMemo;

    procedure XLSUpdateItemFont(Item: TxlsCustomItem);
    procedure XLSUpdateItemFontSize(Item: TxlsCustomItem);
    procedure XLSUpdateItemFontColor(Item: TxlsCustomItem);
    procedure XLSUpdateItemFontBold(Item: TxlsCustomItem);
    procedure XLSUpdateItemFontItalic(Item: TxlsCustomItem);
    procedure XLSUpdateItemFontStrikeOut(Item: TxlsCustomItem);
    procedure XLSUpdateItemFontUnderline(Item: TxlsCustomItem);
    procedure XLSUpdateItemHorAlignment(Item: TxlsCustomItem);
    procedure XLSUpdateItemVertAlignment(Item: TxlsCustomItem);
    procedure XLSUpdateItemBorderTop(Item: TxlsCustomItem);
    procedure XLSUpdateItemBorderTopColor(Item: TxlsCustomItem);
    procedure XLSUpdateItemBorderBottom(Item: TxlsCustomItem);
    procedure XLSUpdateItemBorderBottomColor(Item: TxlsCustomItem);
    procedure XLSUpdateItemBorderLeft(Item: TxlsCustomItem);
    procedure XLSUpdateItemBorderLeftColor(Item: TxlsCustomItem);
    procedure XLSUpdateItemBorderRight(Item: TxlsCustomItem);
    procedure XLSUpdateItemBorderRightColor(Item: TxlsCustomItem);
    procedure XLSUpdateItemFillPattern(Item: TxlsCustomItem);
    procedure XLSUpdateItemFillBackground(Item: TxlsCustomItem);
    procedure XLSUpdateItemFillForeground(Item: TxlsCustomItem);
    procedure XLSUpdateItemAggregate(Item: TxlsCustomItem);
    procedure XLSUpdateItemSetDefault(Item: TxlsCustomItem);

    procedure SheetAllowCaptions(Item: TListItem);
    procedure SheetGoToFirstRecord(Item: TListItem);
    procedure SheetOnlyVisibleFields(Item: TListItem);
    procedure SheetAutoCalcStrType(Item: TListItem);
    procedure SheetSkipRecCount(Item: TListItem);
    procedure SheetExportRecCount(Item: TListItem);
    procedure SheetStartDataCol(Item: TListItem);
    procedure SheetCaptionRow(Item: TListItem);
    procedure SheetHeaderRows(Item: TListItem);
    procedure SheetHeader(Item: TListItem);
    procedure SheetFooterRows(Item: TListItem);
    procedure SheetFooter(Item: TListItem);
    procedure SheetIntegerFormat(Item: TListItem);
    procedure SheetFloatFormat(Item: TListItem);
    procedure SheetDateFormat(Item: TListItem);
    procedure SheetTimeFormat(Item: TListItem);
    procedure SheetDateTimeFormat(Item: TListItem);
    procedure SheetCurrencyFormat(Item: TListItem);
    procedure SheetBooleanTrue(Item: TListItem);
    procedure SheetBooleanFalse(Item: TListItem);
    procedure SheetNullString(Item: TListItem);

    procedure SheetDeleteSelected(Item: TListItem);

    procedure StyleRenumber(Item: TListItem);
    procedure UnselectItem(Item: TListItem);
    procedure SelectItem(Item: TListItem);
    procedure DeleteItem(Item: TListItem);
    procedure SetSelectedToFocused(Item: TListItem);

    procedure DownloadDataFormat(Item: TListItem);
    procedure UploadDataFormat(Item: TListItem);

  protected
    procedure Loaded; override;
  public
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;
  end;

function RunQExportXLSEditor(ExportXLS: TQExport4XLS;
  ADesigner: {$IFNDEF VCL4}TFormDesigner
             {$ELSE}
               {$IFNDEF VCL6}IFormDesigner
               {$ELSE}IDesigner
               {$ENDIF}
             {$ENDIF}): boolean;

implementation

uses {$IFDEF WIN32}QExport4StrIDs{$ENDIF}
     {$IFDEF LINUX}QExport4Consts{$ENDIF}, Db, DBGrids, fuQExport4SourceList,
     fuQExport4XLSColorEditor, QExport4XLSCommon, QExport4CustomSource, TypInfo;

{$R *.dfm}

const
  xlsUnknownFormat    = -1;
  xlsStandardFormat   = 0;
  xlsNoteFormat       = 1;
  xlsHyperlinkFormat  = 2;
  xlsChartFormat      = 3;
  xlsSeriesFormat     = 3;
  xlsCellFormat       = 4;
  xlsMergedCellFormat = 5;

  lstColumns = 0;
  lstOptions = 1;
  lstStyles  = 2;
  lstExtensions = 3;

  xlsHyperlink  = 7;
  xlsNote       = 8;
  xlsChart      = 9;
  xlsSeries     = 10;
  xlsCell       = 11;
  xlsMergedCell = 12;

function RunQExportXLSEditor(ExportXLS: TQExport4XLS;
  ADesigner: {$IFNDEF VCL4}TFormDesigner
             {$ELSE}
               {$IFNDEF VCL6}IFormDesigner
               {$ELSE}IDesigner
               {$ENDIF}
             {$ENDIF}): boolean;
var
  WasNoSheets: boolean;
begin
  Result := false;

  if not Assigned(ExportXLS) then
    raise Exception.Create('The QExportXLS parameter is not assigned!');

  with TfmQExport4XLSEditor.Create(nil) do
  try
    FExportXLS := ExportXLS;
    FDesigner := ADesigner;

    FillExportSourceList;

    WasNoSheets := FExportXLS.Sheets.Count = 0;
    try
      if WasNoSheets then
        FExportXLS.Sheets.Add.LoadFromQExportXLS;
      LoadSheets;
      Result := ShowModal = mrOk;
      if Result then
        SaveSheets;
      if WasNoSheets and (FExportXLS.Sheets.Count = 1) then begin
        FExportXLS.Sheets[0].SaveToQExportXLS;
        FExportXLS.Sheets.Clear;
      end;
    except
      if WasNoSheets then
        FExportXLS.Sheets.Clear;
      raise;
    end;
  finally
    Free;
  end;
end;

{ TfmQExport4XLSEditor }

constructor TfmQExport4XLSEditor.Create(AOwner: TComponent);
begin
  inherited;
  FExportSourceList := TStringList.Create;
  FLoading := false;
  FNeedSelected := false;
  cbXLSFont.Items.Assign(Screen.Fonts);

  FCurrSheet := nil;
  FCurrColumn := nil;
  FCurrOption := nil;
  FCurrStyle := nil;

  FStandardFormatPageIndex := 0;
  FNoteFormatPageIndex := 1;
  FNotePageIndex := 0;
  FHyperlinkPageIndex := 0;
  FChartPageIndex := 0;
  FSeriesPageIndex := 0;
  FCellPageIndex := 0;
  FMergedCellPageIndex := 0;

  FCurrFormat := xlsUnknownFormat;
  FCurrList := lstColumns;

  lvOptions.Items.BeginUpdate;
  try
    lvOptions.Items.Clear;
    lvOptions.Items.Add.Caption := {$IFDEF WIN32}QExportLoadStr(QED_XLS_Header){$ENDIF}
                                   {$IFDEF LINUX}QED_XLS_Header{$ENDIF};
    lvOptions.Items.Add.Caption := {$IFDEF WIN32}QExportLoadStr(QED_XLS_Caption){$ENDIF}
                                   {$IFDEF LINUX}QED_XLS_Caption{$ENDIF};
    lvOptions.Items.Add.Caption := {$IFDEF WIN32}QExportLoadStr(QED_XLS_Data){$ENDIF}
                                   {$IFDEF LINUX}QED_XLS_Data{$ENDIF};
    lvOptions.Items.Add.Caption := {$IFDEF WIN32}QExportLoadStr(QED_XLS_Aggregate){$ENDIF}
                                   {$IFDEF LINUX}QED_XLS_Aggregate{$ENDIF};
    lvOptions.Items.Add.Caption := {$IFDEF WIN32}QExportLoadStr(QED_XLS_Footer){$ENDIF}
                                   {$IFDEF LINUX}QED_XLS_Footer{$ENDIF};
    lvOptions.Items.Add.Caption := {$IFDEF WIN32}QExportLoadStr(QED_XLS_Hyperlink){$ENDIF}
                                   {$IFDEF LINUX}QED_XLS_Hyperlink{$ENDIF};
    lvOptions.Items.Add.Caption := {$IFDEF WIN32}QExportLoadStr(QED_XLS_Note){$ENDIF}
                                   {$IFDEF LINUX}QED_XLS_Note{$ENDIF};

    lvOptions.Items[0].Focused := true;
    lvOptions.Items[0].Selected := true;
  finally
    lvOptions.Items.EndUpdate;
  end;
end;

destructor TfmQExport4XLSEditor.Destroy;
begin
  FExportSourceList.Free;
  inherited;
end;

procedure TfmQExport4XLSEditor.TuneSheetButtons;
begin
  tbtSheetEdit.Enabled := Assigned(lvSheets.ItemFocused);
  tbtSheetDel.Enabled := Assigned(lvSheets.ItemFocused) or
    (lvSheets.SelCount > 0);
  tbtSheetUp.Enabled := Assigned(lvSheets.ItemFocused) and
    (lvSheets.ItemFocused.Index > 0);
  tbtSheetDown.Enabled := Assigned(lvSheets.ItemFocused) and
    (lvSheets.ItemFocused.Index < lvSheets.Items.Count - 1);
  pcFormats.Enabled := Assigned(lvSheets.ItemFocused);{//mp - 漕徉怆屙

⌨️ 快捷键说明

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