urtlunit.pas

来自「群星医药系统源码」· PAS 代码 · 共 177 行

PAS
177
字号
unit uRtlUnit;

interface

uses Classes, SysUtils, Forms, IniFiles;

type
  TRtlBaseSetting = Record
    ClassCount: Integer;
    DepotID:    Integer;
    DepotName:  WideString;
    RtlPriceMode: Integer;
    SalePriceMode:Integer;
    PriceLimited: Boolean;
    MaxChange:    Integer;
  End;
  PRtlBaseSetting = ^TRtlBaseSetting;
  TRtlFixingSetting = Record
    LinePrintMode : Boolean;    //true:行打印模式 false:页打印模式
    Printer:    String;         //打印机,widows页打印模式下有效
    PrintPort:    WideString;
    PrintDelay:   Integer;
    BillHeader:  WideString;
    BillFooter1:  WideString;
    BillFooter2:  WideString;
    HeaderColor:  Integer;
    DetailColor:  Integer;
    FooterColor:  Integer;
    BillPrintMode:Integer;
    BuyerDispPort:String;       //顾客显示屏安装端口
    BuyerDispType:Integer;      //顾客显示屏型号
    BaudRate:     Integer;      //波特率
    LineDispChars:Integer;      //行宽
    DispOutDelay: Integer;      //输出延时
    CashboxPort: String;
  End;
  PRtlFixingSetting = ^TRtlFixingSetting;
  TRtlUserSetting = Record
    AutoAddEmptyLine : Boolean;
    AutoTakePayMoney : Boolean;
  End;
  PRtlUserSetting = ^TRtlUserSetting;

var
  PosIniFile: TIniFile;
  BaseSetting: TRtlBaseSetting;
  FixingSetting: TRtlFixingSetting;
  UserSetting: TRtlUserSetting;

procedure ReadSetting;
procedure ReadBaseSetting(Value: PRtlBaseSetting);
procedure ReadFixingSetting(Value: PRtlFixingSetting);
procedure ReadUserSetting(Value: PRtlUserSetting);
procedure SaveSetting;
procedure SaveBaseSetting(Value: PRtlBaseSetting);
procedure SaveFixingSetting(Value: PRtlFixingSetting);
procedure SaveUserSetting(Value: PRtlUserSetting);

implementation

procedure ReadSetting;
begin
  ReadBaseSetting(@BaseSetting);
  ReadFixingSetting(@FixingSetting);
  ReadUserSetting(@UserSetting);
end;

procedure ReadBaseSetting(Value: PRtlBaseSetting);
begin
  with PosIniFile, Value^ do
  begin
    ClassCount    := ReadInteger('Base','Classes',-1);
    RtlPriceMode  := ReadInteger('Base','RtlPriceMode',-1);
    SalePriceMode := ReadInteger('Base','SalePriceMode',-1);
    DepotID       := ReadInteger('Base','DepotID',-1);
    DepotName     := ReadString('Base','DepotName','');
    PriceLimited  := ReadBool('Base','PriceLimited',True);
    MaxChange     := ReadInteger('Base','MaxChange', 100);
  end;
end;

procedure ReadFixingSetting(Value: PRtlFixingSetting);
begin
  with PosIniFile, Value^ do
  begin
    LinePrintMode := ReadBool('OutFixing','LinePrintMode',True);
    Printer       := ReadString('OutFixing','Printer','');
    PrintPort     := ReadString('OutFixing','PrintPort','');
    PrintDelay    := ReadInteger('OutFixing','PrintDelay',-1);
    BillHeader    := ReadString('OutFixing','BillHeader','');
    BillFooter1   := ReadString('OutFixing','BillFooter1','');
    BillFooter2   := ReadString('OutFixing','BillFooter2','');
    HeaderColor   := ReadInteger('OutFixing','HeaderColor',-1);
    DetailColor   := ReadInteger('OutFixing','DetailColor',-1);
    FooterColor   := ReadInteger('OutFixing','FooterColor',-1);
    BillPrintMode := ReadInteger('OutFixing','BillPrintMode',1);
    BuyerDispPort := ReadString('OutFixing','BuyerDispPort','');
    BuyerDispType := ReadInteger('OutFixing','BuyerDispType',-1);
    BaudRate      := ReadInteger('OutFixing','BaudRate',-1);
    LineDispChars := ReadInteger('OutFixing','BuyerDispLineChars',0);
    DispOutDelay  := ReadInteger('OutFixing','BuyerDispOutDelay',0);
    CashboxPort   := ReadString('OutFixing', 'CashBoxCtrlMode', '0');
  end;
end;

procedure ReadUserSetting(Value: PRtlUserSetting);
begin
  with PosIniFile, Value^ do
  begin
    AutoAddEmptyLine := ReadBool('UserSetting', 'AutoAddEmptyLine',True);
    AutoTakePayMoney := ReadBool('UserSetting', 'AutoTakePayMoney',True);
  end;
end;

procedure SaveSetting;
begin
  SaveBaseSetting(@BaseSetting);
  SaveFixingSetting(@FixingSetting);
  SaveUserSetting(@UserSetting);
end;

procedure SaveBaseSetting(Value: PRtlBaseSetting);
begin
  with PosIniFile, Value^ do
  begin
    WriteInteger('Base','Classes', ClassCount);
    WriteInteger('Base','RtlPriceMode', RtlPriceMode);
    WriteInteger('Base','SalePriceMode', SalePriceMode);
    WriteInteger('Base','DepotID', DepotID);
    WriteString('Base','DepotName', DepotName);
    WriteBool('Base','PriceLimited', PriceLimited);
    WriteInteger('Base','MaxChange', MaxChange);
  end;
end;

procedure SaveFixingSetting(Value: PRtlFixingSetting);
begin
  with PosIniFile, Value^ do
  begin
    WriteBool('OutFixing','LinePrintMode', LinePrintMode);
    WriteString('OutFixing','Printer', Printer);
    WriteString('OutFixing','PrintPort', PrintPort);
    WriteInteger('OutFixing','PrintDelay', PrintDelay);
    WriteString('OutFixing','BillHeader', BillHeader);
    WriteString('OutFixing','BillFooter1', BillFooter1);
    WriteString('OutFixing','BillFooter2', BillFooter2);
    WriteInteger('OutFixing','HeaderColor', HeaderColor);
    WriteInteger('OutFixing','DetailColor', DetailColor);
    WriteInteger('OutFixing','FooterColor', FooterColor);
    WriteInteger('OutFixing','BillPrintMode', BillPrintMode);
    WriteString('OutFixing','BuyerDispPort', BuyerDispPort);
    WriteInteger('OutFixing','BuyerDispType', BuyerDispType);
    WriteInteger('OutFixing','BaudRate', BaudRate);
    WriteInteger('OutFixing','BuyerDispLineChars', LineDispChars);
    WriteInteger('OutFixing','BuyerDispOutDelay', DispOutDelay);
    WriteString('OutFixing', 'CashBoxPort',  CashboxPort);
  end;
end;

procedure SaveUserSetting(Value: PRtlUserSetting);
begin
  with PosIniFile, Value^ do
  begin
    WriteBool('UserSetting', 'AutoAddEmptyLine', AutoAddEmptyLine);
    WriteBool('UserSetting', 'AutoTakePayMoney', AutoTakePayMoney);
  end;
end;

initialization
  PosIniFile := TIniFile.Create(ExtractFilePath(Application.ExeName)+'PosSetting.INI');
  ReadSetting;

finalization
  PosIniFile.Free;

end.

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?