📄 fuqexport4xlseditor.pas.~1~
字号:
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 + -