unit U_iniParam;

interface

uses
  IniFiles, SysUtils;

var
  Filename: string;      //文件名
  iParam2: integer;
  bParam1: Boolean;
  bParam2: Boolean;
  SCXFlag: string;  //生产线   根据此标志获取卷条码前缀 不能包含字母  1,2
  SCXCount: string;  //机台个数
  PortNoStr: string; //端口号
  DllName: string; //端口Dll文件
  DZCDYDllName: string; //电子秤调用Dll文件
  IsDZCDYDll: string; //启用电子秤调用Dll文件
  MBDYDllName: string; // 码表调用Dll文件
  IsMBDYDll: string; // 启用码表调用Dll文件
  IsMBDYDllUnit: string; // 启用码表调用Dll文件单位
  LabQty: string; // 标签份数
  FMinLen, FMaxLen, FMinWeight, FMaxWeight: string;
  FMPlace, FYPlace, FKgPlace: string;
  gPresentNumFlag:integer; //0不变；1：减去
  gMachOperators:string;//机台操作员
  fCanInputFs:String;
  gDefaultLableFile:String;
  gDefaultPackLableFile:String;

  gzdykey1,gZdyKey2,gZdyKey3:string ;
  gBcSpeedSize:Integer;
  gRowSpeedNumber:Integer;
  gScanBarcodeMaxLen:integer;  //扫描条码最大位数
  gAutoPost:boolean;  //清0自动提交
  gAutoCheckBadNum:boolean;  //自动选择
  gMbLenMiToMa:boolean; //码表过来的数据强制米转码
  gZhxsReadonly:boolean;  //转换系数只读
  gTareReadonly:boolean;  //只读
  gPrintMdAutoOut:boolean; //打印码单自动出库
  gAutoPostClear:boolean;//码表提交后清零
  gEnterAutoPost:boolean;//启用回车提交

function IsINIFile(): Boolean;  //判断InI配置文件是否存在

procedure ReadINIFile();

procedure WriteINIFile();

implementation
///////////////////////////////////////////////////////////////////
  //读取ini文件设置参数
  //参数：
////////////////////////////////////////////////////////////////////

procedure ReadINIFile();
var
  programIni: Tinifile;  //配置文件名
begin
  FileName := ExtractFilePath(Paramstr(0)) + 'TradeInspFile.INI';
  programIni := Tinifile.create(FileName);
  SCXFlag := programIni.ReadString('生产车间配置', '卷条码机台标志', '1');
  SCXCount := programIni.ReadString('生产车间配置', '机台个数', '1');

  DZCDYDllName := programIni.ReadString('生产车间配置', '电子秤调用Dll文件', '');
  IsDZCDYDll := programIni.ReadString('生产车间配置', '启用电子秤Dll文件', '1');

  MBDYDllName := programIni.ReadString('生产车间配置', '码表调用Dll文件', '');
  IsMBDYDll := programIni.ReadString('生产车间配置', '启用码表Dll文件', '1');
  IsMBDYDllUnit := programIni.ReadString('生产车间配置', '启用码表单位', '1');

  LabQty := programIni.ReadString('生产车间配置', '标签份数', '2');

  FMinLen := programIni.ReadString('生产车间配置', '米数下限', '0');
  FMaxLen := programIni.ReadString('生产车间配置', '米数上限', '100');
  FMinWeight := programIni.ReadString('生产车间配置', '重量下限', '0');
  FMaxWeight := programIni.ReadString('生产车间配置', '重量上限', '50');

  FMPlace := programIni.ReadString('生产车间配置', '米数小数位', '1');
  FYPlace := programIni.ReadString('生产车间配置', '码数小数位', '0');
  FKgPlace := programIni.ReadString('生产车间配置', '重量小数位', '1');

  gZdyKey1 := programIni.ReadString('生产车间配置', '自定义字母键1', '');
  gZdyKey2 := programIni.ReadString('生产车间配置', '自定义字母键2', '');
  //gZdyKey3 := programIni.ReadString('生产车间配置', '自定义字母键3', '');
  gBcSpeedSize:= programIni.ReadInteger('生产车间配置', '病疵按钮大小', 60);
  gRowSpeedNumber := programIni.ReadInteger('生产车间配置', '每行病疵按钮个数', 5);

  gPresentNumFlag:=programIni.ReadInteger('生产车间配置', '赠送数计算规则', 0);

  gScanBarcodeMaxLen:=programIni.ReadInteger('生产车间配置', '扫描条码位数', 0);

  fCanInputFs:= programIni.ReadString('生产车间配置', '输入负数', '');
  gMachOperators:=programIni.ReadString('生产车间配置', '机台操作员', '');

  gDefaultLableFile:=programIni.ReadString('生产车间配置', '默认标签文件', '');
  gDefaultPackLableFile:=programIni.ReadString('生产车间配置', '默认包标签文件', '');
  gAutoPost:=  programIni.ReadBool('生产车间配置', '码表清零自动提交', false);
  gAutoCheckBadNum:=programIni.ReadBool('生产车间配置', '自动选择长度', false);
  gMbLenMiToMa:= programIni.ReadBool('生产车间配置', '码表米数强转码数', false);
  gZhxsReadonly:= programIni.ReadBool('生产车间配置', '转换系数禁止输入', false);
  gTareReadonly:= programIni.ReadBool('生产车间配置', '皮重禁止输入', false);
  gPrintMdAutoOut:=programIni.ReadBool('生产车间配置', '打印码单自动出库', false);
  gAutoPostClear:=programIni.ReadBool('生产车间配置', '码表提交后清零', false);
  gEnterAutoPost:=programIni.ReadBool('生产车间配置', '长度重量回车自动提交', false);
  programIni.Free;
end;

//////////////////////////////////////////////////////////////////
  //写设置信息到INI文件
  //参数
//////////////////////////////////////////////////////////////////
procedure WriteINIFile();
var
  programIni: Tinifile;  //配置文件名
begin
  if StrToIntDef(FMaxLen,0)=0 then  FMaxLen:='100';
  if StrToIntDef(FMaxWeight,0)=0 then  FMaxWeight:='50';

  FileName := ExtractFilePath(Paramstr(0)) + 'TradeInspFile.INI';
  programIni := Tinifile.create(FileName);
  programIni.WriteString('生产车间配置', '卷条码机台标志', SCXFlag);
  programIni.WriteString('生产车间配置', '机台个数', SCXCount);
  programIni.WriteString('生产车间配置', '端口号', PortNoStr);

  programIni.WriteString('生产车间配置', '电子秤调用Dll文件', DZCDYDllName);
  programIni.WriteString('生产车间配置', '启用电子秤Dll文件', IsDZCDYDll);

  programIni.WriteString('生产车间配置', '码表调用Dll文件', MBDYDllName);
  programIni.WriteString('生产车间配置', '启用码表Dll文件', IsMBDYDll);
  programIni.WriteString('生产车间配置', '启用码表单位', IsMBDYDllUnit);

  programIni.WriteString('生产车间配置', '标签份数', LabQty);

  programIni.WriteString('生产车间配置', '米数下限', FMinLen);
  programIni.WriteString('生产车间配置', '米数上限', FMaxLen);
  programIni.WriteString('生产车间配置', '重量下限', FMinWeight);
  programIni.WriteString('生产车间配置', '重量上限', FMaxWeight);

  programIni.WriteString('生产车间配置', '米数小数位', FMPlace);
  programIni.WriteString('生产车间配置', '码数小数位', FYPlace);
  programIni.WriteString('生产车间配置', '重量小数位', FKgPlace);

  programIni.ReadString('生产车间配置', '自定义字母键1',gZdyKey1 );
  programIni.ReadString('生产车间配置', '自定义字母键2', gZdyKey2); //不知道这里为什么要写readstring，可能写错了

  programIni.WriteInteger('生产车间配置', '赠送数计算规则', gPresentNumFlag);

  programIni.Free;
end;
//////////////////////////////////////////////////////////////////
  //判断InI文件是否存在
//////////////////////////////////////////////////////////////////

function IsINIFile(): Boolean;
begin
  FileName := ExtractFilePath(Paramstr(0)) + 'TradeInspFile.INI';
  if FileExists(FileName) then
    Result := true
  else
    Result := false;
end;

end.

