一个简单的物料防错DEMO

前言

   快2个月没写过博客了,就算是记流水账似的文章都没时间写,主要是太忙了;太多的bug要修复、太多由于bug引起的异常问题要解决、还有新的项目要开发,不忙怎么行呢?最近利用业余时间在鼓捣一个PDA的程序,主要是想用来通过wifi连接服务器,快速的扫描物料,进行备料、续料、卸料之类的操作,相信只要是在工厂接触过SMT机器的朋友一定知道这一块的流程。这个小程序也是费了很大的精力才慢慢有点儿起色,感谢帮助过我的朋友。 

实现逻辑

   主要业务在API里面实现,API里面将结果返回来,客户端通过API里面的返回信息进行操作,需要执行哪一些步骤也都是在API里面进行控制,如下代码:

 1  public AppendMaterial()
 2         {
 3             baseExcuteActionDelegate Step1 = new baseExcuteActionDelegate(init);
 4             baseExcuteActionDelegateList.Add(Step1, null);
 5
 6             baseExcuteActionDelegate Step2 = new baseExcuteActionDelegate(CheckProduct);
 7             baseExcuteActionDelegateList.Add(Step2, null);
 8
 9             baseExcuteActionDelegate Step3 = new baseExcuteActionDelegate(CheckSlot);
10             baseExcuteActionDelegateList.Add(Step3, null);
11
12
13             baseExcuteActionDelegate Step4 = new baseExcuteActionDelegate(CheckPartNumber_Old);
14             baseExcuteActionDelegateList.Add(Step4, null);
15
16             baseExcuteActionDelegate Step5 = new baseExcuteActionDelegate(CheckPartNumber_New);
17             baseExcuteActionDelegateList.Add(Step5, null);
18         }

在所有的操作之前,需要先导入物料上料表,我这里用来测试,所以物料非常简单,其实这是不完整的,还应该包含机器、当前生产工单和飞达等信息,如下图:

在系统中会设定哪一些工位是需要记录物料信息的,在操作过程中,我会根据用户的设定来记录一些物料信息,比如说某一个条码在XXX工序用到了XXXX物料等等,如下图所示,可以对工序进行设定:

  

开发环境

   开发工具:Visual Studio 2008

   数据库  : SQL Server 2008 R2

   模拟器  : WinCE 模拟器(网上下载的)

   API      :  发布在本机IIS中的一个站点。

运行效果

   以下为程序运行效果,以截图为主,因为通过图片可以更直观的看到实际效果。

数据库中会记录着每一步的操作记录,包含事物名称、涉及的物料料号等等详细信息。

 

时间: 2024-10-03 20:43:22

一个简单的物料防错DEMO的相关文章

一个简单的IM系统(Demo附源码)-- ESFramework 4.0 快速上手(08)

      前面的文章已经介绍完了基于ESFramework/ESPlus进行二次开发的所有要点,现在,我们可以开始小试牛刀了.       本文将介绍使用ESFramework的Rapid引擎开发的两个最简单的Demo,ESFramework.Demos.Simplest 和 ESFramework.Demos.Silverlight.这两个Demo是一个简单的聊天系统,并演示了以下功能: (1)客户端用户上下线时,通知其他在线用户. (2)当客户端与服务端网络断开时,进行自动重连,当网络恢复

一个简单的 PHP防注入类

 代码如下 复制代码 <?php /**  * 参数处理类  * @author JasonWei  */ class Params {     public $get = array();       public $post = array();       function __construct()     { if (!empty($_GET)) {     foreach ($_GET as $key => $val) { if (is_numeric($val)) {     $

做一个简单的jsp登陆界面servlet报错

问题描述 做一个简单的jsp登陆界面servlet报错 package com.demo; import java.io.IOException; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import javax.servlet.Serv

一个简单不报错的summernote 图片上传案例_javascript技巧

一个比较完整的summernote上传图片的案例,没有后台(上传图片网上案例太多),只有前端js.修正了网上提供的,但是有bug的代码. 这个例子,js保证不报错.亲测可用 <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <!DOCTYPE html > <html> <head&

malloc-小弟谢了一个简单的字符串求最大子串的程序不知道错哪里,請大神帮忙回答下

问题描述 小弟谢了一个简单的字符串求最大子串的程序不知道错哪里,請大神帮忙回答下 程序要求如下: 一个字符串,字符连续的部分为子串(不含带数字的部分) 下面是我写的程序 #include using namespace std; char* BiggestStr(char* str) { char* pStr = (char*)malloc(sizeof(str)+1); //申请一个空间存最大子串 int nCount = 0; //用于记录最大子串的长度 int J_nCount=0; ch

一个简单计算器java程序,不知道为什么除法总是算错

问题描述 一个简单计算器java程序,不知道为什么除法总是算错 一个简单计算器java程序,不知道为什么除法总是算错(不是全概率是高概率应该说,麻烦大大帮忙看看,非常感激 package com.calculator; import java.awt.BorderLayout; import java.awt.EventQueue; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.border.Em

setonclicklistener-初学andriod,工具为studio,就是一个简单的按钮事件,模拟器执行时报错,请专家指点

问题描述 初学andriod,工具为studio,就是一个简单的按钮事件,模拟器执行时报错,请专家指点 初学andriod,工具为studio,就是一个简单的按钮事件,请专家指点: protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); if (savedInstanceState == null

jsp问题-一个简单jsp文件检查了好几遍不知道为什么报错,求高手指点

问题描述 一个简单jsp文件检查了好几遍不知道为什么报错,求高手指点 <%@ page language="java" import="java.util.*" contentType="text/html; charset=utf-8"%> <% Locale locale = request.getLocale(); Calendar calendar = Calendar.getInstance(locale); int

linux-awk脚本 一个简单的报错问题

问题描述 awk脚本 一个简单的报错问题 awk脚本 $linux@ubuntu:~/jwx$ awk -F:'{print $0}' passwd.txt >>bak.txt $awk: passwd.txt $awk: ^ syntax error 刚学脚本 不知道为什么会报错? 解决方案 一个简单的awk脚本 解决方案二: 一个简单的awk脚本 解决方案三: awk -F ':' '{print $1}' /etc/passwd >>bak.txt