📄 main.pas
字号:
unit Main;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Grids, SMEEngine, SMEEngSG, ExportDS, SME2Cell, SME2XML,
ExtCtrls;
type
TfrmMain = class(TForm)
StringGrid1: TStringGrid;
btnExport: TButton;
btnAbout: TButton;
btnClose: TButton;
SMEStringGridDataEngine1: TSMEStringGridDataEngine;
SMExportToXML1: TSMExportToXML;
RadioGroup1: TRadioGroup;
CheckBox1: TCheckBox;
procedure btnCloseClick(Sender: TObject);
procedure btnAboutClick(Sender: TObject);
procedure btnExportClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
frmMain: TfrmMain;
implementation
{$R *.DFM}
procedure TfrmMain.btnCloseClick(Sender: TObject);
begin
Close
end;
procedure TfrmMain.btnAboutClick(Sender: TObject);
begin
SMExportToXML1.AboutSME
end;
procedure TfrmMain.btnExportClick(Sender: TObject);
var
i: Integer;
begin
{export from string grid}
SMExportToXML1.ColumnSource := csDataEngine;
{XML formatting}
SMExportToXML1.Format := TSMEXMLFormat(RadioGroup1.ItemIndex);
SMExportToXML1.GenerateXSL := CheckBox1.Checked;
SMExportToXML1.FileName := ExtractFilePath(Application.ExeName) + 'smexport.xml';
{add header and footer}
SMExportToXML1.Header.Clear;
SMExportToXML1.Header.Add(Caption);
SMExportToXML1.Header.Add('');
SMExportToXML1.Footer.Clear;
SMExportToXML1.Footer.Add('');
SMExportToXML1.Footer.Add('Generated by SMExport suite: http://www.scalabium.com');
{fill a column list that must be exported}
SMExportToXML1.Columns.Clear;
for i := 0 to StringGrid1.ColCount-1 do
with SMExportToXML1.Columns.Add do
begin
FieldName := IntToStr(i);
Title.Caption := 'Column' + IntToStr(i);
Visible := True;
Width := StringGrid1.ColWidths[i] div 4
end;
{start}
SMExportToXML1.Options := SMExportToXML1.Options + [soUseFieldNameAsCaption];
SMExportToXML1.Execute;
end;
procedure TfrmMain.FormCreate(Sender: TObject);
var
i, j: Integer;
begin
{fill random values for StringGrid}
with StringGrid1 do
begin
ColCount := Random(100)+5;
RowCount := Random(1000)+7;
FixedCols := 1;
FixedRows := 1;
for j := 0 to ColCount-1 do
begin
ColWidths[j] := Random(150);
for i := 0 to RowCount-1 do
Cells[j, i] := 'Random' + IntToStr(Random(10000));
end;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -