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 + -
显示快捷键?