FastReport_2022_VCL/LibD28x64/frxExportXLSXDialog.pas
2024-01-01 16:13:08 +01:00

93 lines
2.3 KiB
ObjectPascal

{******************************************}
{ }
{ FastReport VCL }
{ XLSX export dialog }
{ }
{ Copyright (c) 1998-2021 }
{ }
{******************************************}
unit frxExportXLSXDialog;
interface
{$I frx.inc}
uses
{$IFNDEF FPC}
Windows, Messages, ShellAPI,
{$ELSE}
LCLType, LCLIntf,
{$ENDIF}
SysUtils, Classes, Graphics, Controls, Forms, Dialogs, Types,
StdCtrls, ExtCtrls, ComCtrls, frxExportBaseDialog
{$IFDEF DELPHI16}
, System.UITypes
{$ENDIF}
;
type
TfrxXLSXExportDialog = class(TfrxBaseExportDialog)
ContinuousCB: TCheckBox;
SplitToSheetGB: TGroupBox;
RPagesRB: TRadioButton;
NotSplitRB: TRadioButton;
RowsCountRB: TRadioButton;
edChunk: TEdit;
PageBreaksCB: TCheckBox;
WCB: TCheckBox;
DataOnlyCB: TCheckBox;
protected
procedure InitControlsFromFilter(ExportFilter: TfrxBaseDialogExportFilter); override;
procedure InitFilterFromDialog(ExportFilter: TfrxBaseDialogExportFilter); override;
end;
implementation
uses
frxRes, frxrcExports, frxExportXLSX;
{$R *.dfm}
{ TfrxXLSXExportDialog }
procedure TfrxXLSXExportDialog.InitControlsFromFilter(
ExportFilter: TfrxBaseDialogExportFilter);
begin
inherited;
with TfrxXLSXExport(ExportFilter) do
begin
NotSplitRB.Checked := SingleSheet;
RPagesRB.Checked := not SingleSheet and (ChunkSize = 0);
RowsCountRB.Checked := ChunkSize > 0;
edChunk.Text := IntToStr(ChunkSize);
WCB.Checked := Wysiwyg;
ContinuousCB.Checked := not EmptyLines;
PageBreaksCB.Checked := ExportPageBreaks;
DataOnlyCB.Checked := DataOnly;
end;
end;
procedure TfrxXLSXExportDialog.InitFilterFromDialog(
ExportFilter: TfrxBaseDialogExportFilter);
begin
with TfrxXLSXExport(ExportFilter) do
begin
Wysiwyg := WCB.Checked;
EmptyLines := not ContinuousCB.Checked;
ExportPageBreaks := PageBreaksCB.Checked and (not ContinuousCB.Checked);
SingleSheet := NotSplitRB.Checked;
DataOnly := DataOnlyCB.Checked;
if RowsCountRB.Checked then
try
ChunkSize := StrToInt(edChunk.Text);
except
ChunkSize := 0;
end;
end;
inherited;
end;
end.