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

📄 unitmain.pas

📁 绿色衡器称重系统(串口)
💻 PAS
📖 第 1 页 / 共 3 页
字号:

procedure TfrmMain.N8Click(Sender: TObject);
begin
 if Not assigned(frmHuoPin) then
 begin
  frmHuoPin:=TfrmHuoPin.Create(application);
  frmHuoPin.Show;
 end
 else
 begin
 frmHuoPin.Show;
 end;
 FHelper.Speak('此模块主要管理货品字典表!','');
end;

procedure TfrmMain.N9Click(Sender: TObject);
begin
 if Not assigned(frmChePaiQ) then
 begin
  frmChePaiQ:=TfrmChePaiQ.Create(application);
  frmChePaiQ.Show;
 end
 else
 begin
 frmChePaiQ.Show;
 end;
 FHelper.Speak('此模块主要管理车牌前缀字典表!','');
end;

procedure TfrmMain.N10Click(Sender: TObject);
begin
 if Not assigned(frmPortConfig) then
 begin
  frmPortConfig:=TfrmPortConfig.Create(application);
  frmPortConfig.Show;
 end
 else
 begin
 frmPortConfig.Show;
 end;
 FHelper.Speak('此模块主要管理端口设置(非专业人员请慎用)!','');
end;

procedure TfrmMain.FormShow(Sender: TObject);
var
str:String;
Reg:TRegistry;
begin
try
Caption:=ClientUSN;
reg:=Tregistry.Create;
reg.RootKey:=HKEY_LOCAL_MACHINE;
str:='SOFTWARE\Microsoft\Windows\CurrentVersion\Run\';
if reg.OpenKey(str,false) then
begin
 if Trim(reg.ReadString('DYapp'))<>'' then
 begin
  N30.Checked:=True;
  N31.Checked:=False;
 end
 else
 begin
  N30.Checked:=False;
  N31.Checked:=True;
 end;
end;
reg.CloseKey;
reg.Free;
controlDBGridFieldVisible;
objFun.MainfromDictIni;
objFun.ReadDevicePortSetup;
timer1.Enabled:=true;
if adotable1.Active then
begin
 str:=objFun.GetJianJinNo;
 if str='' then
 begin
  str:='0000000000';
 end ;
 adotable1.Insert;
 lbJianJinDanHao.DataSource.DataSet.FieldByName('ListID').AsString:= str;
 lbJianJinDanHao.DataSource.DataSet.FieldByName('SiBangYuan').AsString:=userNick;
end;
if NeedHelper=True then
begin
  N35.Checked:=False;
end
else
begin
  N35.Checked:=True;
end;
except
end;
end;

procedure TfrmMain.N12Click(Sender: TObject);
begin
  if Not assigned(frmChePaiN) then
 begin
  frmChePaiN:=TfrmChePaiN.Create(application);
  frmChePaiN.Show;
 end
 else
 begin
 frmChePaiN.Show;
 end;
 FHelper.Speak('此模块主要管理车牌号码字典表!','');
end;

procedure TfrmMain.BitBtn1Click(Sender: TObject);
begin
try
if adoTable1.Active then
begin
adoTable1.Insert;
lbJianJinDanHao.DataSource.DataSet.FieldByName('ListID').AsString:=objFun.GetJianJinNo;
lbJianJinDanHao.DataSource.DataSet.FieldByName('SiBangYuan').AsString:=userNick;
end;
except
end;
end;

procedure TfrmMain.ADOTable1BeforePost(DataSet: TDataSet);
var
strSQL:string;
begin
 try
 //防止无数据引起的错误提示
 getTmpTBInfo;
 if Trim(DataSet.FieldByName('ChePai').AsString)='' then
 exit;
 if Trim(DataSet.FieldByName('ChePaiN').AsString)='' then
 exit;
 if Trim(DataSet.FieldByName('HuoPin').AsString)='' then
 exit;
 if Trim(DataSet.FieldByName('FaHuoDW').AsString)='' then
 exit;
 if Trim(DataSet.FieldByName('ShouHuoDW').AsString)='' then
 exit;
 //
 strSQL:='Select * from uWeightTmp where ChePai='+ quotedstr(Trim(DataSet.FieldByName('ChePai').AsString)) + ' and ChePaiN=' + quotedstr(Trim(DataSet.FieldByName('ChePaiN').AsString));
 adoTemp.Close;
 adoTemp.SQL.Clear;
 adoTemp.SQL.Add(strSQL);
 adoTemp.Open;
 //如果是第一次称重
 if adoTemp.RecordCount<=0 then
 begin
 adoTemp.Insert;
 adoTemp.FieldByName('ChePai').AsString:=DataSet.FieldByName('ChePai').AsString;
 adoTemp.FieldByName('ChePaiN').AsString:=DataSet.FieldByName('ChePaiN').AsString;
 adoTemp.FieldByName('HuoPin').AsString:=DataSet.FieldByName('HuoPin').AsString;
 adoTemp.FieldByName('FaHuoDW').AsString:=DataSet.FieldByName('FaHuoDW').AsString;
 adoTemp.FieldByName('ShouHuoDW').AsString:=DataSet.FieldByName('ShouHuoDW').AsString;
 adoTemp.FieldByName('MaoZhong').AsFloat:=DataSet.FieldByName('MaoZhong').AsFloat;
 adoTemp.FieldByName('PiZhong').AsFloat:=DataSet.FieldByName('PiZhong').AsFloat;
 adoTemp.FieldByName('JingZhong').AsFloat:=DataSet.FieldByName('JingZhong').AsFloat;
 adoTemp.FieldByName('ShiJian').AsDateTime:=Time;
 adoTemp.FieldByName('RiQi').AsDateTime:=Date;
 adoTemp.Post;
 end
 //否则更新当前数据
 else
 begin
 adoTemp.Edit;
 adoTemp.FieldByName('ChePai').AsString:=DataSet.FieldByName('ChePai').AsString;
 adoTemp.FieldByName('ChePaiN').AsString:=DataSet.FieldByName('ChePaiN').AsString;
 adoTemp.FieldByName('HuoPin').AsString:=DataSet.FieldByName('HuoPin').AsString;
 adoTemp.FieldByName('FaHuoDW').AsString:=DataSet.FieldByName('FaHuoDW').AsString;
 adoTemp.FieldByName('ShouHuoDW').AsString:=DataSet.FieldByName('ShouHuoDW').AsString;
 adoTemp.FieldByName('MaoZhong').AsFloat:=DataSet.FieldByName('MaoZhong').AsFloat;
 adoTemp.FieldByName('PiZhong').AsFloat:=DataSet.FieldByName('PiZhong').AsFloat;
 adoTemp.FieldByName('JingZhong').AsFloat:=DataSet.FieldByName('JingZhong').AsFloat;
 adoTemp.FieldByName('ShiJian').AsDateTime:=Time;
 adoTemp.FieldByName('RiQi').AsDateTime:=Date;
 adoTemp.Post;
 end;
 adoTemp.Close;
 except
 MessageBox(handle,'操作数据库发生异常,请重试!',pChar(ClientUSN),MB_OK+MB_ICONERROR);
 end;
end;

procedure TfrmMain.getTmpTBInfo;
var
 strSQL:string;
 sInt:double;
 sCode:Integer;
begin
try
 //当前称重值
 Val( Label8.Caption ,sInt,sCode);
 strSQL:='Select * from uWeightTmp Where ChePai='+ quotedstr(Trim(dbcCPH.Text)) +' and ChePaiN='+ quotedstr(trim(dbcCPHN.Text))+'Order By ShiJian Desc';
 adoTemp.Close;
 adoTemp.SQL.Clear;
 adoTemp.SQL.Add(strSQL);
 adoTemp.Open;
 //存在车号的相关称重数据
 if adoTemp.RecordCount>0 then
 begin
 if (Trim(dbcCPH.Text)<>'') and (Trim(dbcCPHN.Text)<>'') and (ADOTable1.State in [dsEdit, dsInsert])then
  begin
     //Shape4.Brush.Color:=clRed; //★测试,发布时一定要注释掉该行[此处假设称重设备稳定]。
     if (Shape4.Brush.Color=clRed) and (Shape5.Brush.Color=clMaroon) and (Shape6.Brush.Color=clMaroon) then
     begin
         //sInt:=500.342; //测试数据用,发布时必须注释该行;
         //当前称重大于以前称重进行比较 [毛重]
         if (sCode=0) and (sInt>0.0000) and (sInt> adoTemp.FieldByName('MaoZhong').AsFloat) then
         begin
           dbcCPH.DataSource.DataSet.FieldByName('ChePai').asString:=adoTemp.FieldByName('ChePai').AsString;
           dbcCPHN.DataSource.DataSet.FieldByName('ChePaiN').asString:=adoTemp.FieldByName('ChePaiN').AsString;
           dbcHPMC.DataSource.DataSet.FieldByName('HuoPin').asString:=adoTemp.FieldByName('HuoPin').AsString;
           dbcFHDW.DataSource.DataSet.FieldByName('FaHuoDW').asString:=adoTemp.FieldByName('FaHuoDW').AsString;
           dbcSHDW.DataSource.DataSet.FieldByName('ShouHuoDW').asString:=adoTemp.FieldByName('ShouHuoDW').AsString;
           dbedtWweight.DataSource.DataSet.FieldByName('MaoZhong').AsFloat:=sInt;   //毛重
           dbedtWweight.DataSource.DataSet.FieldByName('MaoZhongRQ').AsDateTime:=Date;
           dbedtWweight.DataSource.DataSet.FieldByName('MaoZhongSJ').AsDateTime:=Time;
           dbedtFWeight.DataSource.DataSet.FieldByName('PiZhong').AsFloat:=adoTemp.FieldByName('MaoZhong').AsFloat;  //皮重
           dbedtFweight.DataSource.DataSet.FieldByName('PiZhongSJ').AsDateTime:=adoTemp.FieldByName('ShiJian').AsDateTime;  //皮重
           dbedtFweight.DataSource.DataSet.FieldByName('PiZhongRQ').AsDateTime:=adoTemp.FieldByName('RiQi').AsDateTime;  //皮重
           dbedtNweight.DataSource.DataSet.FieldByName('JingZhong').AsFloat:=sInt - adoTemp.FieldByName('MaoZhong').AsFloat;   //净重
           dbedtNweight.DataSource.DataSet.FieldByName('SibangYuan').AsString:=userNick;
           dbedtNweight.DataSource.DataSet.FieldByName('JingZhongSJ').AsDateTime:=Time;
           dbedtNweight.DataSource.DataSet.FieldByName('JingZhongRQ').AsDateTime:=Date;
         end
         else
         //当前称重小于以前称重进行比较
         if (sCode=0) and (sInt>0.0000) and (sInt<=adoTemp.FieldByName('MaoZhong').AsFloat) then
         begin
           dbcCPH.DataSource.DataSet.FieldByName('ChePai').asString:=adoTemp.FieldByName('ChePai').AsString;
           dbcCPHN.DataSource.DataSet.FieldByName('ChePaiN').asString:=adoTemp.FieldByName('ChePaiN').AsString;
           dbcHPMC.DataSource.DataSet.FieldByName('HuoPin').asString:=adoTemp.FieldByName('HuoPin').AsString;
           dbcFHDW.DataSource.DataSet.FieldByName('FaHuoDW').asString:=adoTemp.FieldByName('FaHuoDW').AsString;
           dbcSHDW.DataSource.DataSet.FieldByName('ShouHuoDW').asString:=adoTemp.FieldByName('ShouHuoDW').AsString;
           dbedtWweight.DataSource.DataSet.FieldByName('MaoZhong').AsFloat:=adoTemp.FieldByName('MaoZhong').AsFloat;
           dbedtWweight.DataSource.DataSet.FieldByName('MaoZhongSJ').AsDateTime:=adoTemp.FieldByName('ShiJian').AsDateTime;
           dbedtWweight.DataSource.DataSet.FieldByName('MaoZhongRQ').AsDateTime:=adoTemp.FieldByName('RiQi').AsDateTime;
           dbedtFWeight.DataSource.DataSet.FieldByName('PiZhong').AsFloat:=sInt;
           dbedtFweight.DataSource.DataSet.FieldByName('PiZhongSJ').AsDateTime:=Time;
           dbedtFweight.DataSource.DataSet.FieldByName('PiZhongRQ').AsDateTime:=Date;                                       //皮重
           dbedtNweight.DataSource.DataSet.FieldByName('JingZhong').AsFloat:=adoTemp.FieldByName('MaoZhong').AsFloat-sInt;  //净重
           dbedtNweight.DataSource.DataSet.FieldByName('JingZhongSJ').AsDateTime:=Time;
           dbedtNweight.DataSource.DataSet.FieldByName('JingZhongRQ').AsDateTime:=Date;
           dbedtNweight.DataSource.DataSet.FieldByName('SibangYuan').AsString:=userNick;
         end;
     end;
  end;
 end
 //若在历史中查不到该项
 else
 begin
   if (sCode=0) and (sInt>0.0000) then
   begin
           dbedtWweight.DataSource.DataSet.FieldByName('MaoZhong').AsFloat:=0.000;  //毛重
           dbedtFWeight.DataSource.DataSet.FieldByName('PiZhong').AsFloat:=sInt;                                      //皮重
           dbedtWweight.DataSource.DataSet.FieldByName('JingZhong').AsFloat:=0.000;//净重
           dbedtNweight.DataSource.DataSet.FieldByName('SibangYuan').AsString:=userNick;
   end;
 end;
except
 MessageBox(handle,'操作数据库发生异常,请重试!',pChar(ClientUSN),MB_OK+MB_ICONERROR);
end;
end;

procedure TfrmMain.dbcCPHNChange(Sender: TObject);
begin
getTmpTBInfo;
end;

procedure TfrmMain.dbcCPHChange(Sender: TObject);
begin
getTmpTBInfo;
end;

procedure TfrmMain.BitBtn2Click(Sender: TObject);
begin
try
if (AdoTable1.Active) and (adoTable1.RecordCount>0) then
begin
 if MessageBox(handle,'确定要删除当前记录吗?(不可恢复)',pChar(ClientUSN),MB_OKCANCEL+MB_ICONINFORMATION)=ID_OK then
 begin
 adoTable1.Delete;
 adoTable1.Refresh;
 end;
end;
except
end;
end;

procedure TfrmMain.BitBtn3Click(Sender: TObject);
begin
try
if adoTable1.Active then
begin
 adotable1.Edit;
end;
except
end;
end;

procedure TfrmMain.BitBtn4Click(Sender: TObject);
begin
try
if adotable1.Active then
begin
 adotable1.Cancel;
 adotable1.Refresh;
end;
except
end;
end;

procedure TfrmMain.BitBtn5Click(Sender: TObject);
begin
try
if adotable1.Active then
begin
if (Trim(adotable1.FieldByName('ChePai').AsString)='') and (Trim(adotable1.FieldByName('ChePaiN').AsString)='') and (Trim(adotable1.FieldByName('HuoPin').AsString)='') and (Trim(adotable1.FieldByName('HuoPin').AsString)='') and (Trim(adotable1.FieldByName('FaHuoDW').AsString)='') and (Trim(adotable1.FieldByName('ShouHuoDW').AsString)='') then
begin
Messagebox(handle,'数据没有填写就提交?这样是不安全的!',pChar(ClientUSN),MB_OK+MB_ICONERROR);
exit
end
else
begin
 adotable1.Edit;
 adotable1.Post;
 if MessageBox(handle,'数据保存成功,现在就打印磅单吗?',pChar(ClientUSN),MB_OKCancel+MB_ICONINFORMATION)=ID_OK then
 begin
 RvProject1.Execute;
 end;
end;
end;
except
end;
end;

procedure TfrmMain.N13Click(Sender: TObject);
begin
  if Not assigned(frmCarHistory) then

⌨️ 快捷键说明

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