📄 frmprintmanunit.~pas
字号:
unit FrmPrintManUnit;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls, Buttons,Math, ExtCtrls, Spin,PosPrintFunction,
PosControl, YtxGrids, YtxStringGrideh;
type
TFrmDesign = class(TForm)
ScrollBox1: TScrollBox;
mePage: TMemo;
Panel1: TPanel;
Panel2: TPanel;
lstFields: TListBox;
cbDataType: TComboBox;
CheckBox1: TCheckBox;
CheckBox2: TCheckBox;
SpeedButton1: TSpeedButton;
Label2: TLabel;
cbDriveType: TComboBox;
Label3: TLabel;
cbCom: TComboBox;
Label1: TLabel;
etOpenBoxStr: TEdit;
Label5: TLabel;
etPageWidth: TSpinEdit;
Label4: TLabel;
etComByte: TEdit;
bBtnPrint: TBitBtn;
bBtnPreview: TBitBtn;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
etSpaceRows: TSpinEdit;
Label9: TLabel;
etTitleRows: TSpinEdit;
Label10: TLabel;
etQuantityDiciaLength: TSpinEdit;
Label11: TLabel;
etMoneyDiciaLength: TSpinEdit;
bBtnSave: TBitBtn;
Bevel1: TBevel;
ckAutoOpenBox: TCheckBox;
BitBtn1: TBitBtn;
Label12: TLabel;
etFontSize: TSpinEdit;
procedure FormCreate(Sender: TObject);
procedure etPageWidthChange(Sender: TObject);
procedure bBtnSaveClick(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure cbDataTypeClick(Sender: TObject);
procedure etTitleRowsChange(Sender: TObject);
procedure etQuantityDiciaLengthChange(Sender: TObject);
procedure etMoneyDiciaLengthChange(Sender: TObject);
procedure etOpenBoxStrChange(Sender: TObject);
procedure ckAutoOpenBoxClick(Sender: TObject);
procedure etSpaceRowsClick(Sender: TObject);
procedure bBtnPreviewClick(Sender: TObject);
procedure lstFieldsDblClick(Sender: TObject);
procedure cbDriveTypeChange(Sender: TObject);
procedure cbComChange(Sender: TObject);
procedure etComByteChange(Sender: TObject);
procedure etSpaceRowsChange(Sender: TObject);
procedure etFontSizeChange(Sender: TObject);
private
procedure Save;
// procedure Open;
{ Private declarations }
public
{ Public declarations }
PageControl:TPosReport;
end;
var
FrmDesign:TFrmDesign;
implementation
uses FrmPreviewDlg;
{$R *.dfm}
procedure TFrmDesign.FormCreate(Sender: TObject);
{var
FileName:String;
FFont:TFont;
VarType:TDataType;}
begin
// if not Assigned(PageControl) then
// PageControl:=TPosReport.Create(self);
{FileName:=ExtractFilePath(ParamStr(0));
if FileName[Length(FileName)]<>'\' then
FileName:=FileName+'\';
FileName:=FileName+'PosReport.PRT';
PageControl.LoadFromFile(FileName);
//Open;
//添加变量列表
case cbDataType.ItemIndex of
0:VarType:=dtTitleFields;
1:VarType:=dtBodyFields;
2:VarType:=dtSysFields;
end;
if Assigned(PageControl) then
begin
PageControl.ShowVarList(VarType,lstFields);
end;}
end;
{procedure TFrmDesign.Open;
begin
cbDataType.Items.Clear;
cbDataType.Items.Add('表头字段');
cbDataType.Items.Add('表体字段');
cbDataType.Items.Add('系统变量');
with PageControl do
begin
case DriveMode of
dmNone:cbDriveType.ItemIndex:=0;
dmWindows:cbDriveType.ItemIndex:=1;
end;
etFontSize.Value:=PageControl.Font.Size;
cbCom.Text:=ComName;
etComByte.Text:=intToStr(ComByte);
etOpenBoxStr.Text:=OpenBoxCode;
ckAutoOpenBox.Checked:=AutoOpenBox;
etSpaceRows.Text:=intToStr(FootSpaceRow);
mePage.Lines.Clear;
if Assigned(ReportLines) then
mePage.Lines.Assign(ReportLines);
etPageWidth.Value:=PageWidth;
etTitleRows.Value:=TitleRowCount;
etQuantityDiciaLength.Value:=QuantityDicial;
etMoneyDiciaLength.Value:=MoneyDicial;
if ((BodyType=btGrid) and Assigned(Grid)) or
((BodyType=btDataSet) and Assigned(DataSet)) then
ShowVarList(dtBodyFields,lstFields);
end;
cbDataType.ItemIndex:=1;
MePage.Width:=MMToPixel(etPageWidth.Value);
end;}
procedure TFrmDesign.etPageWidthChange(Sender: TObject);
begin
MePage.Width:=MMToPixel(etPageWidth.Value);
PageControl.PageWidth:=etPageWidth.Value;
end;
procedure TFrmDesign.bBtnSaveClick(Sender: TObject);
var
FileName:String;
begin
FileName:=ExtractFilePath(ParamStr(0));
if FileName[Length(FileName)]<>'\' then
FileName:=FileName+'\';
FileName:=FileName+'PosReport.PRT';
save;
try
PageControl.SaveToFile(FileName);
messageDlg('小票样式保存成功!',mtInformation,[mbok],0);
except
on e:Exception do
application.ShowException(e);
end;
end;
Procedure TFrmDesign.Save;
begin
with PageControl do
begin
case cbDriveType.ItemIndex of
0:DriveMode:=dmNone;
1:DriveMode:=dmWindows;
end;
Font:=mePage.Font;
ComName:=cbCom.Text;
ComByte:=strToInt(etComByte.Text);
OpenBoxCode:=etOpenBoxStr.Text;
AutoOpenBox:=ckAutoOpenbox.Checked;
FootSpaceRow:=etSpaceRows.Value;
PageWidth:=etPageWidth.Value;
TitleRowCount:=etTitleRows.Value;
QuantityDicial:=etQuantityDicialength.Value;
MoneyDicial:=etMoneyDicialength.Value;
ReportLines.Assign(mePage.Lines);
end;
end;
procedure TFrmDesign.FormDestroy(Sender: TObject);
begin
// PageControl.Free;
// PageControl:=nil;
end;
procedure TFrmDesign.cbDataTypeClick(Sender: TObject);
var
VarType:TDataType;
begin
case cbDataType.ItemIndex of
0:VarType:=dtTitleFields;
1:VarType:=dtBodyFields;
2:VarType:=dtSysFields;
end;
if Assigned(PageControl) then
begin
PageControl.ShowVarList(VarType,lstFields);
end;
end;
procedure TFrmDesign.etTitleRowsChange(Sender: TObject);
begin
PageControl.TitleRowCount:=etTitleRows.Value;
end;
procedure TFrmDesign.etQuantityDiciaLengthChange(Sender: TObject);
begin
PageControl.QuantityDicial:=etQuantityDicialength.Value;
end;
procedure TFrmDesign.etMoneyDiciaLengthChange(Sender: TObject);
begin
PageControl.MoneyDicial:=etMoneyDiciaLength.Value;
end;
procedure TFrmDesign.etOpenBoxStrChange(Sender: TObject);
begin
PageControl.OpenBoxCode:=etOpenBoxStr.Text;
end;
procedure TFrmDesign.ckAutoOpenBoxClick(Sender: TObject);
begin
PageControl.AutoOpenBox:=ckAutoOpenBox.Checked;
end;
procedure TFrmDesign.etSpaceRowsClick(Sender: TObject);
begin
PageControl.FootSpaceRow:=etspaceRows.Value;
end;
procedure TFrmDesign.bBtnPreviewClick(Sender: TObject);
begin
Save;
FrmPreview:=TFrmPreview.Create(Self);
FrmPreview.PageControl:=self.PageControl;
if PageControl.DriveMode=dmNone then
begin
FrmPreview.imgPage.Visible:=false;
PageControl.PrintReport(FrmPreview.mePage);
end else
begin
FrmPreview.mePage.Visible:=false;
PageControl.PrintReport(FrmPreview.imgPage);
// FrmPreview.Width:=MMToPixel(pagecontrol.PageWidth);
// FrmPreview.imgPage.Height:=MMToPixel(PageControl.PageHeight);
end;
if FrmPreview.ShowModal=mrok then
begin
end;
FrmPreview.Free;
FrmPreview:=nil;
end;
procedure TFrmDesign.lstFieldsDblClick(Sender: TObject);
begin
if Assigned(lstFields.Items.Objects[LstFields.itemIndex]) then
begin
if cbDataType.ItemIndex=0 then
MePage.SelText:='[!.'+ TReportVar(lstFields.Items.Objects[lstFields.ItemIndex]).Caption+']';
if cbDataType.ItemIndex=1 then
begin
MePage.SelText:='[#.'+ lstFields.Items[lstFields.itemIndex] + ']';
end;
if cbDataType.ItemIndex=2 then
MePage.SelText:=TReportVar(lstFields.Items.Objects[lstFields.ItemIndex]).Name;
end;
end;
procedure TFrmDesign.cbDriveTypeChange(Sender: TObject);
begin
case cbDriveType.ItemIndex of
0:PageControl.DriveMode:=dmNone;
1:PageControl.DriveMode:=dmWindows;
end;
end;
procedure TFrmDesign.cbComChange(Sender: TObject);
begin
PageControl.ComName:=cbCom.Text;
end;
procedure TFrmDesign.etComByteChange(Sender: TObject);
begin
PageControl.ComByte:=strToInt(etComByte.Text);
end;
procedure TFrmDesign.etSpaceRowsChange(Sender: TObject);
begin
PageControl.FootSpaceRow:=etSpaceRows.Value;
end;
procedure TFrmDesign.etFontSizeChange(Sender: TObject);
begin
if Assigned(PageControl) then
begin
PageControl.Font.Size:=etFontSize.Value;
MePage.Font.Size:=etFontSize.Value;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -