1、有一个表的字段为a,b,c,d,e,f,g,h,i,用于记录零件的主要参数,因每一种零件的参数不同,只有相对应的字段才记录有字段值,并且排在后面的字段值要依赖于前面的字段值在程序里进行运算后而产生,如g值是由c值加上某个特定参数得来的。现在用dbgrid显示出a,b,c,d的值,还有edit1,和edit2两个控件,用于记录字段值,如h字段。我要想达到的要求是,当单击dbgrid中的任意一条记录后,edit1显示出g字段的值,即前一个字段的值,如果为空,则显示又把再前一个字段的值显示出来,直到有数值显示出来了为止,如c字段的值后,然后在edit2中输入特定参数,再把edit1和edit2运算后的值写入到h字段中,该怎么?
a  b  c  d  e  f  g  h  i
3  5  9           
2、各位还有没有更好的存取这种需求的数据表设计方法,请教教我。

解决方案 »

  1.   

    數據庫的設計沒有优化吧?
    1.跟據我理解的意思首先應該把零件按照計算方法的不同先分類.
    比如: A:g=(a+18)*0.9
          B:h=(b+9)*3.1
          C:i=(c+3.1)*0.5
          ..............
    如果所有的值都可以參數只有一個的話,那麼零件表就很好表示了.partID  partType  Parms1  Result         Num      Result2
              A         a                    10 
              B         b                    1000
    update TableXXX set Result1=(Parms1+18)*0.9, Result2=Result1*Num where partType=A
    update TableXXX set Result=(Parms1+9)*3.1, Result2=Result1*Num where partType=B如果作進出庫或領料的話,這個結果都應該自動生成,比如說放在存儲過程里面.
    如果是零件,界面設計复雜的話,用戶是會懶得一點的.用戶關心的是結果.公供參考.........
      

  2.   

    楼上所说的方法对于有规律的零件,这样先定义是很有用的。
    1、但我这个表里面只关心的是取值问题,可能前面的表述有点乱,现用例子来说明一下。下面的记录3,当零件做完了第3种工序即c工序后,c的入库数量为250,然后全部送去做它的最后一道工序即g工序,g工序出库的数量就应该为c工序的入库数250。界面里用dbgrig只读地显示这张表,以方便用户直观地看出零件加工的情况。当用户在dbgrid里选中这一零件后,edit1自动要显示出上一工序的入库数250(本来是显示f值的,为空,就往前一工序找,直到找到250为止)。edit2给用户输入特定的值,而这个值没规律,edit1与edit2通过计算后,得到255记录到g字段里。现在要解决的问题是如何正确地取出上一次入库数,如记录3的情况,记录2里有二次这种情况。
        a    b    c    d    e    f     g    
    1  200  225  320  310  345  345  350     (这种零件7种工序全齐) 
    2  170  195       200       228         (只有4种工序)
    3  234  245  250                  255   (只有4种工序)
    4  .....   ....2、上楼还说到了库的优化,想了很久,没有找到很合适的方法,有这种经验的,请说说你来设计这种情况的数据库想法,先谢了。
      

  3.   

    樓上的好象所說的是個工序的問題,在ERP處理生產中,我們一般這樣處理.
    A.table原材料
    就是樓主所說的第一列的值如你表上所說的(1,a),(2,a),(3,a)B.table成品
    就是樓主上表所列的(1,g),(2,f),(3,g)C.如果不合A,B的都做半成品處理
    (物理上A,B,C表是可以合在一起的,但因為單位等等原因,我們是分放不同的地方的.)D.table工序E.工序里面可能存在bom表.(也可能不存在BOM表)
    比如生產耳機時,統一的黑線,可能會生產成頭戴線,電源線,mc線等工序不一定一樣.edit2给用户输入特定的值,而这个值没规律???
    中途有損益而沒有規律??