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

📄 frmprintmanunit.pas

📁 小票样式打印模板设计,和管家婆的pos收银系统小票样式设计差不多
💻 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 + -