none
值列表会动态变化时,是否有其它好的解决方案======请不要标注答案,我会确认是否是答案,多谢! RRS feed

  • 问题

  • 场景:

    我有张系统服务修改单,可以指派工程师,

    工程师是使用人事资料绑定的DropDownList绑定的值列表,

    开始选择了A工程师,等下次我打开这张单据的时候,A离职了,

    我的值列表里筛选了离职人员,就不会有A,这时,就会在DropDownList绑定时报错

    请问大家有没有好的解决方案?

    注意:1. 已经清楚DropDownList绑定时报错的原因为A工程师离职

             2. 因为指定人员和查看都用DropDownList,所以,历史处理完的单据也会有这个问题,所以不能在A离职时替换处理人员

             3. 我想问的是,当使用值列表选择时,如果值列表有变化,如何处理的。


    做有意义的事^_^
    2010年8月6日 1:22

全部回复

  • 在DropDownList绑定时报错?你指的是什么呢?你是怎么绑定的?数据源里删除不就可以了吗?

     


    【孟子E章】
    2010年8月6日 2:02
    版主
  • 你好『刘军』,

    這個問題還不難,

    雖然你在列表中篩選了A,但是歷史處理過的單據裡面還是他~~~

    你可以將帳號跟姓名分開存在數據庫裡,

    這樣就算帳號被篩選了,名字還是能保留下來的。

     

    然後在你綁定DropDownList的時候多加一個「已離職人員」的選項,

    然後在指定的時候限制使用者無法指定為「已離職人員」,

    相反的,在查看的時候讓使用者可以指定看「已離職人員」處理過的單據,

    這樣子雖然沒有帳號,還是有個名字可以辨認的~~~



    2010年8月6日 2:45
  • 上次也有人问这个问题

    可以在单据表里保存工程师的姓名,而不是ID

    我觉得比较稳妥的方法是,工程师表中设置一个标志位,标记工程师是否已离职,也就是说离职的工程师不要真正的从表中删除,只标记一下就可以了,这样其他地方要查询的时候还可以查询到。绑定的时候可以根据标志位显示此工程师已离职。

    2010年8月6日 3:20
  • 伪删除,表中设置一个字段用来表示是否已经离职,取DropdwonList列表数据的时候只取在职人员的数据。

    比如离职为0,在职为1

    select * from table where IsJob=1

    2010年8月7日 5:40
  • 我已经在员工表中标注离职

    我的问题是,我已经确定DropdwonList的数据源不存在离职人员,但是,还是想用DropdwonList之类的控件,该如何处理


    做有意义的事^_^
    2010年8月7日 7:30
  • 如果人员比较多,变化也比较频繁,这样,很多人员明明不能选还在DropdwonList,操作者不方便


    做有意义的事^_^
    2010年8月7日 7:32
  • 这不矛盾啊,不要把所有的工程师绑定到DropdownList,,DropdwonList只绑定正常在职的工程师,在显示工单信息的时候,先判断此工程师是否已经离职,如果已离职,则用一个Label之类的控件显示他。如果此工程师在职,则设置DropdwonList中此工程师为选中项。

    //绑定在职的工程师列表
    this.BindManager();
    //判断此工单的工程师是否离职
    Model m = new Model.ServiceNote;
    m = bllServiceNote.GetModel(ID);
    BLL bllUser = new BLL.User;
    Model mUser = bllUser.GetModel(m.Manager);
    if(mUser.Status="离职")
    {
    lblManager.Text = mUser.TrueName;
    }
    else
    {
    ddlManager.Item.FindByValue(mUser.UserName).Select = true;
    }
    2010年8月8日 3:05
  • 场景:

    我有张系统服务修改单,可以指派工程师,

    工程师是使用人事资料绑定的DropDownList绑定的值列表,

    开始选择了A工程师,等下次我打开这张单据的时候,A离职了,

    我的值列表里筛选了离职人员,就不会有A,这时,就会在DropDownList绑定时报错

    请问大家有没有好的解决方案?

    注意:1. 已经清楚DropDownList绑定时报错的原因为A工程师离职

             2. 因为指定人员和查看都用DropDownList,所以,历史处理完的单据也会有这个问题,所以不能在A离职时替换处理人员

             3. 我想问的是,当使用值列表选择时,如果值列表有变化,如何处理的。

     

    补充说明:1. 工程师是通过职员表筛选的,离职人员只是将在职状态更改,并没有删除

                   2.不建议将离职人员也放置到DropDownList中,时间长了,会造成多无用的值

                   3.要考虑在同一界面修改工程师状况,所以,依据离职状况设置成Lable也不行

                   4.不一定用DropDownList控件,有其它好的方法也可以提出

     

    2010年9月4日 5:55
  • 你好 『刘军』 ,

    你有考慮過要不要使用「代理人」機制嗎?

    用另外一張表儲存已離職人員與其代理人 primary key 之對應 pair,

    然後利用 stored procedure,

    透過 join 還有 union 的方式取出已離職人員的代理人姓名,並在姓名後面加註 (代理)

    這樣就可以清楚知道這是已離職員工處理的單據,

    也不會報錯..........

     

    但要考慮的是一人代理多人,還有代理機制的設計,

    如果你的工程師有辦法做到這些的話應該就可以滿足你的需求......



    Best regards

    • 已编辑 DK. Da 2012年6月10日 1:31
    2010年9月4日 6:24
  • 系统已有代理人机制

    但是,我认为代理人机制和这个问题无关。因为我目前是想离职的人员能够显示,也能够去更改离职的工程师

    2010年9月6日 1:42