void Device_Seuic6LWithScan_OnScannerReader(Scanner.CodeInfo obj) { OnScannerReader(this, new ScanEventArgs() { BarCode = obj.barcode }); }
public void CheckData(Scanner.CodeInfo obj) { string sql = @"select * from CaseNumber"; try { DataTable dt = db.ExecuteDataTable(sql, null); if (dt != null && dt.Rows.Count > 0) { hkMain.Stop(); MsgBox prompt = new MsgBox("还有单据没有上传,是否要删除?", "警告", 3); prompt.ConfirmSelectionDelegate += delegate(int selection) { if (selection == 1) { ClearAllData(); DownloadDetailHandler(obj); } else { hkMain.Start(); } }; prompt.Show(); } else { hkMain.Stop(); DownloadDetailHandler(obj); } } catch (Exception ex) { } }
void scanner_OnScanedEvent(Scanner.CodeInfo obj) { if (this.InvokeRequired) { Action <Scanner.CodeInfo> delegateFun = new Action <Scanner.CodeInfo>(scanner_OnScanedEvent); this.Invoke(delegateFun, obj); } else { if (!string.IsNullOrEmpty(obj.barcode)) { SetProdInfo(obj.barcode, 1); } } }
void scanner_OnScanedEvent(Scanner.CodeInfo obj) { if (this.InvokeRequired) { Action <Scanner.CodeInfo> delegateFun = new Action <Scanner.CodeInfo>(scanner_OnScanedEvent); this.Invoke(delegateFun, obj); } else { if (!string.IsNullOrEmpty(obj.barcode)) { //保存当前的 SaveCurrentProdDetail(); //加载扫条码的 LoadProdDetailByBarcode(obj.barcode); } } }
void scanner_OnScanedEvent(Scanner.CodeInfo obj) { if (this.InvokeRequired) { Action <Scanner.CodeInfo> delegateFun = new Action <Scanner.CodeInfo>(scanner_OnScanedEvent); this.Invoke(delegateFun, obj); } else { if (wholeCase) { hkCaseMgr.Stop(); CaseDetailMgrWholeCaseAdd detailAddFrm = new CaseDetailMgrWholeCaseAdd(obj.barcode); detailAddFrm.GetCaseDetailMgrWholeCaseAddDelegate += new CaseDetailMgrWholeCaseAdd.GetCaseDetailMgrWholeCaseAdd(detailAddFrm_GetCaseDetailMgrWholeCaseAddDelegate); detailAddFrm.Show(); } else { //跳到增加明细界面上 if (!string.IsNullOrEmpty(obj.barcode)) { hkCaseMgr.Stop(); DataTable dt = (DataTable)dgCaseList.DataSource; if (dt != null && dt.Rows.Count > 0) { string caseNumberID = dt.Rows[dgCaseList.CurrentRowIndex].ItemArray[2].ToString(); string caseNo = dt.Rows[dgCaseList.CurrentRowIndex].ItemArray[0].ToString(); CaseDetailMgrAdd detailAddFrm = new CaseDetailMgrAdd(caseNumberID, obj.barcode, caseNo); detailAddFrm.Show(); } else { msg.ShowMessage("请按F1键新建箱号", 1); hkCaseMgr.Start(); } } } } }
void scanner_OnScanedEvent(Scanner.CodeInfo obj) { if (this.InvokeRequired) { Action <Scanner.CodeInfo> delegateFun = new Action <Scanner.CodeInfo>(scanner_OnScanedEvent); this.Invoke(delegateFun, obj); } else { if (!string.IsNullOrEmpty(obj.barcode)) { if (!CheckLoginInfo()) { hkMain.Stop(); UserLogin loginFrm = new UserLogin(); loginFrm.LoginSelectionDelegate += delegate(int selection, string loginID) { if (selection == 1) { AddLoginInfo(loginID); CheckData(obj); } else { hkMain.Start(); //msgDialog.ShowMessage("登录失败", 1); } }; loginFrm.Show(); } else { CheckData(obj); } } } }
void scanner_OnScanedEvent(Scanner.CodeInfo obj) { if (this.InvokeRequired) { Action <Scanner.CodeInfo> delegateFun = new Action <Scanner.CodeInfo>(scanner_OnScanedEvent); this.Invoke(delegateFun, obj); } else { //填充产品详情 if (!string.IsNullOrEmpty(obj.barcode)) { hkProductDetail.Stop(); SQLiteDBHelper helper = new SQLiteDBHelper("prodDB"); List <SQLiteParameter> parameters = new List <SQLiteParameter>(); //箱码 string sql = @"select * from APISysProduct where BoxBarcode=@BoxBarcode"; parameters = new List <SQLiteParameter>() { new SQLiteParameter("@BoxBarcode", obj.barcode) }; //处理Code128C码奇数位前面补零的问题 sql += " or BoxBarcode=@FormatBoxBarcode "; parameters.Add(new SQLiteParameter("@FormatBoxBarcode", obj.barcode.Substring(1))); DataTable partsDt = helper.ExecuteDataTable(sql, parameters.ToArray()); if (partsDt != null && partsDt.Rows.Count > 0) { this.lblBrands.Text = partsDt.Rows[0]["Brands"].ToString(); this.lblProdName.Text = partsDt.Rows[0]["ProdName"].ToString(); this.lblModel.Text = partsDt.Rows[0]["Model"].ToString(); this.lblNorm.Text = partsDt.Rows[0]["Norm"].ToString(); this.lblClassName.Text = partsDt.Rows[0]["ClassName"].ToString(); this.lblOrigCode.Text = partsDt.Rows[0]["OrigCode"].ToString(); this.lblFMSICode.Text = partsDt.Rows[0]["FMSICode"].ToString(); this.lblMaterial.Text = partsDt.Rows[0]["Material"].ToString(); this.lblUnit.Text = partsDt.Rows[0]["Unit"].ToString(); this.lblPlaceofOrigin.Text = partsDt.Rows[0]["PlaceofOrigin"].ToString(); this.lblGW.Text = partsDt.Rows[0]["GW"].ToString(); this.lblSize.Text = partsDt.Rows[0]["Size"].ToString(); this.lblParameters.Text = partsDt.Rows[0]["Parameters"].ToString(); this.lblSuitVehicles.Text = partsDt.Rows[0]["SuitVehicles"].ToString(); } else { if (obj.barcode.Contains("-")) { //件码-数量 string[] infoArray = obj.barcode.Split(new char[] { '-' }); sql = @"select * from APISysProduct where Barcode=@Barcode"; parameters = new List <SQLiteParameter>() { new SQLiteParameter("@Barcode", infoArray[0]) }; //处理Code128C码奇数位前面补零的问题 sql += " or Barcode=@FormatBarcode "; parameters.Add(new SQLiteParameter("@FormatBarcode", infoArray[0].Substring(1))); DataTable dtFirst = helper.ExecuteDataTable(sql, parameters.ToArray()); if (dtFirst != null && dtFirst.Rows.Count > 0) { this.lblBrands.Text = dtFirst.Rows[0]["Brands"].ToString(); this.lblProdName.Text = dtFirst.Rows[0]["ProdName"].ToString(); this.lblModel.Text = dtFirst.Rows[0]["Model"].ToString(); this.lblNorm.Text = dtFirst.Rows[0]["Norm"].ToString(); this.lblClassName.Text = dtFirst.Rows[0]["ClassName"].ToString(); this.lblOrigCode.Text = dtFirst.Rows[0]["OrigCode"].ToString(); this.lblFMSICode.Text = dtFirst.Rows[0]["FMSICode"].ToString(); this.lblMaterial.Text = dtFirst.Rows[0]["Material"].ToString(); this.lblUnit.Text = dtFirst.Rows[0]["Unit"].ToString(); this.lblPlaceofOrigin.Text = dtFirst.Rows[0]["PlaceofOrigin"].ToString(); this.lblGW.Text = dtFirst.Rows[0]["GW"].ToString(); this.lblSize.Text = dtFirst.Rows[0]["Size"].ToString(); this.lblParameters.Text = dtFirst.Rows[0]["Parameters"].ToString(); this.lblSuitVehicles.Text = dtFirst.Rows[0]["SuitVehicles"].ToString(); } } else { //自编条码 sql = @"select * from APISysProduct where Barcode=@Barcode"; parameters = new List <SQLiteParameter>() { new SQLiteParameter("@Barcode", obj.barcode) }; //处理Code128C码奇数位前面补零的问题 sql += " or Barcode=@FormatBarcode "; parameters.Add(new SQLiteParameter("@FormatBarcode", obj.barcode.Substring(1))); DataTable dtSecond = helper.ExecuteDataTable(sql, parameters.ToArray()); if (dtSecond != null && dtSecond.Rows.Count > 0) { this.lblBrands.Text = dtSecond.Rows[0]["Brands"].ToString(); this.lblProdName.Text = dtSecond.Rows[0]["ProdName"].ToString(); this.lblModel.Text = dtSecond.Rows[0]["Model"].ToString(); this.lblNorm.Text = dtSecond.Rows[0]["Norm"].ToString(); this.lblClassName.Text = dtSecond.Rows[0]["ClassName"].ToString(); this.lblOrigCode.Text = dtSecond.Rows[0]["OrigCode"].ToString(); this.lblFMSICode.Text = dtSecond.Rows[0]["FMSICode"].ToString(); this.lblMaterial.Text = dtSecond.Rows[0]["Material"].ToString(); this.lblUnit.Text = dtSecond.Rows[0]["Unit"].ToString(); this.lblPlaceofOrigin.Text = dtSecond.Rows[0]["PlaceofOrigin"].ToString(); this.lblGW.Text = dtSecond.Rows[0]["GW"].ToString(); this.lblSize.Text = dtSecond.Rows[0]["Size"].ToString(); this.lblParameters.Text = dtSecond.Rows[0]["Parameters"].ToString(); this.lblSuitVehicles.Text = dtSecond.Rows[0]["SuitVehicles"].ToString(); } } } //string detailStrJson = DataUpDownload.GetProductDetail(obj.barcode); //if (!string.IsNullOrEmpty(detailStrJson) && !detailStrJson.Equals("\"\"") && !detailStrJson.Equals("Failed")) //{ // SysProduct model = JsonConvert.DeserializeObject<SysProduct>(detailStrJson); //this.lblBrands.Text = model.Brands; //this.lblProdName.Text = model.ProdName; //this.lblModel.Text = model.Model; //this.lblNorm.Text = model.Norm; //this.lblClassName.Text = model.ClassName; //this.lblOrigCode.Text = model.OrigCode; //this.lblFMSICode.Text = model.FMSICode; //this.lblMaterial.Text = model.Material; //this.lblUnit.Text = model.Unit; //this.lblPlaceofOrigin.Text = model.PlaceofOrigin; //this.lblGW.Text = model.GW; //this.lblSize.Text = model.Size; //this.lblParameters.Text = model.Parameters; //this.lblSuitVehicles.Text = model.SuitVehicles; //} hkProductDetail.Start(); } } }
/// <summary> /// 扫描事件 /// </summary> /// <param name="obj"></param> void scanner_OnScannerReaderEvent(Scanner.CodeInfo obj) //扫描事件响应函数,返回扫描到条码相关信息 { try { if (string.IsNullOrEmpty(obj.barcode) || obj.len == 0) { this.Tip("请重新扫描"); return; } if (this.InvokeRequired) { Action <Scanner.CodeInfo> delegateFun = new Action <Scanner.CodeInfo>(scanner_OnScannerReaderEvent); this.Invoke(delegateFun, obj); } else { if (IsAbleScan) { this.lblCurrentMaterialCode.Text = "";//清空提示信息 this.lblCurrentMaterialCode.ForeColor = Color.Navy; //判断是合件条码还是材料条码 if (IsHjScan) //当为合件时 { if (obj.len < 14) { this.Tip("请重新扫描"); return; } //D300SysUI.PlaySound(BaseVariable.ScanSound); IsOK = false; this.lblOK.Text = ""; this.txtHJCode.Text = ""; //清空合件条码 this.txtHJCode.Text = obj.barcode; if (ValidateFeatureCode(obj.barcode, productModel.FeatureIndex, featureCode)) { foreach (ListViewItem item in lvMaterial.Items) { item.SubItems[1].Text = ""; //初始化状态为空 item.SubItems[3].Text = "0"; //初始化状态为空 item.ForeColor = Color.Black; //初始化字体颜色为黑色 } //记录扫描信息 RecordScanInfo(); IsHjScan = false; this.Tip("请扫描零件条码"); } else { IsHjScan = true; MessageBox.Show("合件不在此产品之列"); } } else //当为材料时 { if (obj.len < 10) { this.Tip("请重新扫描"); return; } //D300SysUI.PlaySound(BaseVariable.ScanSound); this.lblCurrentMaterialCode.Text = obj.barcode; ValidateMaterialInfo(obj.barcode); //材料防错,对比特征码 } } else { this.Tip("材料条码信息不全"); //提示 } } } catch (Exception ex) { this.Tip("扫描失败"); //提示 CLog.WriteErrLog("[FrmScan.ScanEvent]" + ex.Message); } }
public void DownloadDetailHandler(Scanner.CodeInfo obj) { #region 记录发货单条码 string sql = @"delete from AppConfig where Key=@Key"; SQLiteParameter[] parameters = new SQLiteParameter[] { new SQLiteParameter("@Key", "CaseBarcode"), new SQLiteParameter("@Value", obj.barcode) }; try { db.ExecuteNonQuery(sql, parameters); sql = @"insert into AppConfig(Key,Value) values(@Key,@Value)"; //parameters = new SQLiteParameter[]{ // new SQLiteParameter("@Key", "CaseBarcode"), // new SQLiteParameter("@Value", "0000000004-01") // }; db.ExecuteNonQuery(sql, parameters); } catch (Exception ex) { } #endregion #region 条码,下载发货单明细 if (D300SysUI.CheckNetworkStatus()) { string detailStrJson = DataUpDownload.DownloadInvoiceDetail(obj.barcode); FromERPJson model = JsonConvert.DeserializeObject <FromERPJson>(detailStrJson); if (model.IsSuccess) { msgDialog.ShowMessage("正在处理中,请稍后···", 1); sql = @"delete from FromERPDetail"; try { db.ExecuteNonQuery(sql, null); } catch (Exception ex) { } if (model.ReturnData.Count > 0) { bool isSuccess = false; using (SQLiteConnection connection = new SQLiteConnection(db.ConnectionString)) { connection.Open(); using (DbTransaction transaction = connection.BeginTransaction()) { using (SQLiteCommand command = new SQLiteCommand(connection)) { try { for (int i = 0; i < model.ReturnData.Count; i++) { command.CommandText = @"insert into FromERPDetail(InvoiceID,ProdID,Model,ProdName,Num,Barcode,BoxBarcode,NormNum,Title,bJianMaInBox,siteCode,ModType,ModID,DH) values (@InvoiceID,@ProdID,@Model,@ProdName,@Num,@Barcode,@BoxBarcode,@NormNum,@Title,@bJianMaInBox,@siteCode,@ModType,@ModID,@DH)"; parameters = new SQLiteParameter[] { new SQLiteParameter("@InvoiceID", model.ReturnData[i].InvoiceID), new SQLiteParameter("@ProdID", model.ReturnData[i].ProdID), new SQLiteParameter("@Model", model.ReturnData[i].Model), new SQLiteParameter("@ProdName", model.ReturnData[i].ProdName), new SQLiteParameter("@Num", model.ReturnData[i].Num), new SQLiteParameter("@Barcode", model.ReturnData[i].Barcode), new SQLiteParameter("@BoxBarcode", model.ReturnData[i].BoxBarcode), new SQLiteParameter("@NormNum", model.ReturnData[i].NormNum), new SQLiteParameter("@Title", model.ReturnData[i].Title), new SQLiteParameter("@bJianMaInBox", model.ReturnData[i].bJianMaInBox), new SQLiteParameter("@siteCode", model.ReturnData[i].siteCode), new SQLiteParameter("@ModType", model.ReturnData[i].ModType), new SQLiteParameter("@ModID", model.ReturnData[i].ModID), new SQLiteParameter("@DH", model.ReturnData[i].DH) }; if (parameters != null) { command.Parameters.AddRange(parameters); } command.ExecuteNonQuery(); } transaction.Commit(); isSuccess = true; } catch (Exception ex) { transaction.Rollback(); isSuccess = false; } } } } if (isSuccess) { CaseMgr caseMgrFrm = new CaseMgr(0); caseMgrFrm.Show(); } } } else { msgDialog.ShowMessage("没有该发货草稿单据", 1); } } else { msgDialog.ShowMessage("网络没有连接", 1); } #endregion }