vb.net WinForm 工作流程如何程序化?

假设要编写某个软件,实际的工作流程如上图。我想问的是这种流程的控制如何用vb.net写出来?我的思路是,在原材料数据库中添加“状态”字段,当登记完购进的新材料时,更新状态... 假设要编写某个软件,实际的工作流程如上图。我想问的是这种流程的控制如何用vb.net写出来?
我的思路是,在原材料数据库中添加“状态”字段,当登记完购进的新材料时,更新状态为:“新材料购进,等待检验”,当一级检验通过后,更新状态为“一级检验通过,等待二级检验”,如果未通过,更新状态为“一级检验未通过,等待回退原材料”。二级检验通过,更新状态为“二级检验通过,等待入库”……以此类推

但我感觉这种以中文表示的方法好烦索,而且每个流程的文字得一字不差,容易出错,也不利于维护,想问一下做过有流程的软件大侠们有什么好经验,还望指点。

不懂的不要乱回答,谢谢!
这个流程是我简化的,而且只是整个流程中的一小段,实际整个流程是非常大,而且非常多的分支,如果全部用中文表示,感觉程序写起来太吃力,而且也不利于流程的检测,比如说:材料进入一级检验我就用红字表示,是不是就得在程序中大概这样表示:if 原材料1.状态="新材料购进,等待检验" then 原材料1.BackColor=color.wihte(当然这句程序是不对的,但就这意思) 那如果每个流程检测都要这么麻烦,这程序写起来也太费神、费力、费时了吧。
展开
 我来答
hejian511
2012-07-10 · TA获得超过845个赞
知道大有可为答主
回答量:1559
采纳率:0%
帮助的人:1472万
展开全部
用一个数字做为流程标识这是可以的 但是如果用中文标识确实麻烦
给个方法参考
1:以两位数字表示流程 AB A表示序号,B表示结果 eg:11 这一阶段测试OK 20 第二阶段检测失败.或者更多也行[有点像上位机编程里的二进制数据用法,第几位到第几位是干什么用的,代表什么]

方法2 :因为流程固定,所以可以采用在数据库里给各流程步骤设计一个逻辑型的变量用于标识是否合格即可,

方法3: 也可以用不同的数据表来表示不同流程,用一个唯一id 进行关联即可

对于显示颜色 ,可以采用过程或者函数的方法节省代码
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
尚心部落
2012-07-10 · TA获得超过302个赞
知道小有建树答主
回答量:534
采纳率:0%
帮助的人:560万
展开全部
我是初学者,遇到了与你类似的问题,我是这样解决的:数据库中同样添加状态字段,但是状态字段为整形数据,用数字表示不同的阶段。然后在程序中声明具有相同数字含义但是是用文字表示的枚举类型,不知道哪位高手还有更好的方法?
更多追问追答
追问
这种方法我也想过,只是延伸出了两个问题:
1、如果在流程中某个地方增加一个流程,那是不是要将数据库中新增的流程后面的所有流程都加1?如果不加1,新增之后,后面的流程对应的数字都不同了。

2、在显示状态时,就要多一个步骤,将数据转化为文字。
与其这样,倒不如直接新建一个“流程”数据表,两个字段“流程代码”“流程名称”,然后将“流程代码”字段与主数据库中的“状态”为连接字段。整合出带流程的数据
追答
我觉得你说的第二点就挺好。如果要解决第一点的问题,我觉得可以在 流程数据表 中再增加一个字段:流程序号。用流程序号来表示先后关系,而流程代码作为主键,与流程名称一一对应。如果在两个环节之间再增加一个环节,那么就为这个环节分配一个新的流程代码,然后将这个环节后面的所有环节对应的流程序号加1,这样既保证了流程的唯一性标识的不变性,又将流程搞得不是太死板
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式