我来说说其中的几个问题:
1、第一个难点,其实我已经做过了,就是用一个比较严禁的方法,然后加上数据库事务来实现,生成的流水号唯一,并且也是顺序生成。
2、第四个难点,我们也做过,就是自己做的一个控件,让用户可以选择其中需要的内容,还可以根据用户需要的内容来查询符合条件的记录。
3、其中第二个难点,你可以试试用嵌入excel表格来解决这个问题,输入完之后就用程序处理。并且用execl后,第三个难题和第五个难题就应该不存在了。

解决方案 »

  1.   

    不要使用windows桌面界面的方式来设计web界面,因为基于浏览器的客户端本身就有种种限制,你应该根据b/s的特点来设计,扬长避短。为什么这样说呢?因为我看你的要求就和设计一个WinForm的程序差不多 :)。
      

  2.   

    to: niwalker
    用asp.net做erp,我提的問題我認為不可避免,應該無論如何,輸入效率都是個應該重點考慮的問題。
    我之所以拋轉引玉提出這個問題,是想讓大家集思廣益。
    對於上面的問題,我已經有了一個完善的做法了,下面我講一下我大概的思路:
    第一點純粹是為了保証數據的唯一性問題,我就用我上面講的辦法去做的;
    其他的問題我想採用了Infragistics 的DataGrid控件(最新版本v2.0),並且需要改寫部分原始碼,比如原來它提供了一個多欄下拉框,CheckBox等,我要把它的多欄下拉框改寫成用PopupWindow顯示出來,這樣就不怕被其他的Select控件擋住了,然後再加上了一個可以直接把欄類型設為Date,或者Calculator,一點Button,馬上Popup出一個DatePicker或者一個計算器,這樣方便輸入,至於箭頭及Enter鍵移動,用該控件很方便實現。
    其實這些都應該在WinForm中架構比較方便,但是既然客戶要求了,總不能說我就不做吧!
      

  3.   

    to chinaver2002():
    用asp.net做erp, 无论如何性能不能和c/s相比,大量的使用控件也不是一种提高效率的办法。下面就入库单输入谈谈我的做法(已经在运行中,客户没有不满意的地方):首先,让我们看看在线购物的b/s设计的实现,通常是分类列出产品,客户点击产品添加到购物车,确定购买产品的数量(这里有两种方式,一种是:客户可以在添加产品之前输入数量;另一种是客户在选择产品之后输入产品数量),最后生成订单。
    基于以上的设计思路,我们的入库单采用了同样的设计,当用户进入入库单输入页面,页面上部是一个入库单的表格,其中可编辑栏可以设定(如计量单位,数量,价格)
    在入库单下面是一个物料列表(分左右两部分,左边为类别,右边是选择类别中的物料列表)
    物料列表中的每一项都有一个添加按钮,当客户点击这个按钮,该物料自动添加到入库单上。
    关于入库单的流水号,日期,操作员等字段实际上不需要用户来输入,系统可以自动生成。
    以后方法既简捷又直观,容易实现,而且性能也不差。同时也避免了多用户的并发冲突。所以我不认为这种设计非要模仿桌面应用的界面不可。
      

  4.   

    关于流水号,那要看你输入后在其他模块的处理方式如何,如果仅仅标志分类产品的唯一性的话,使用.Net类库里面的System.GUID.NewGuid.ToString方法可以生成一个类似于:
    3F6D4EFA-1624-423E-971B-96BF7F150045
    这样的编码,绝对保证唯一性。
    如果因为其他模块的处理需要ID主键必须为Integer数字型,而且不能跳号,那么只有在存储过程或者在后台代码进行处理,非常麻烦。而且数据库的主键字段不能为自动编号,自动编号可以实现不跳号的自动流水号,但是不能删除,执行了删除操作则这个流水号的值以后就不能用了。出现跳号。