Exemple #1
0
    private void initTache()
    {
        DataTable dt;

        //任务名称
        obj = DBOpt.dbHelper.ExecuteScalar("select f_desc from DMIS_SYS_PACK where F_NO=" + ViewState["PackNo"].ToString());
        if (obj != null)
        {
            tdPackName.InnerText = obj.ToString();
        }

        //当前环节
        obj = DBOpt.dbHelper.ExecuteScalar("select f_flowname from dmis_sys_workflow where f_packno=" + ViewState["PackNo"].ToString() + " and f_flowno=" + ViewState["CurLinkNo"].ToString());
        if (obj != null)
        {
            tdCurrentTacheName.InnerText = obj.ToString();
        }

        //列出本环节下面的所有步骤,
        //如果是退回的情况下,有的环节发送了,故只显示还没有发送(即退回分支的环节)
        _sql = "select F_NO,F_NAME from DMIS_SYS_FLOWLINK where F_PACKTYPENO=" + ViewState["PackTypeNo"] + " and F_NO IN ("
               + "select F_ENDNO from DMIS_SYS_FLOWLINE where F_PACKTYPENO=" + ViewState["PackTypeNo"] + " and  F_STARTNO=" + ViewState["CurLinkNo"] + ")";
        dt = DBOpt.dbHelper.GetDataTable(_sql);
        DataColumn[] key1 = new DataColumn[1];
        key1[0]       = dt.Columns["F_NO"];
        dt.PrimaryKey = key1;

        //显示已经发送的环节.
        _sql = "select f_flowno,f_flowname from dmis_sys_workflow where f_packno=" + ViewState["PackNo"].ToString() + " and (f_status='1' or f_status='2') "
               + " and f_flowno in (select F_ENDNO from DMIS_SYS_FLOWLINE where F_PACKTYPENO=" + ViewState["PackTypeNo"] + " and  F_STARTNO=" + ViewState["CurLinkNo"] + ")";
        DataTable haveSendTache = DBOpt.dbHelper.GetDataTable(_sql);


        //去掉已经发送的分支
        DataRow row;

        for (int i = 0; i < haveSendTache.Rows.Count; i++)
        {
            row = dt.Rows.Find(haveSendTache.Rows[i][0]);
            if (row != null)
            {
                dt.Rows.Remove(row);
            }
        }

        //找出满足条件的环节
        string    LinkNo;
        DataTable target = dt.Clone();

        for (int i = 0; i < dt.Rows.Count; i++)
        {
            LinkNo = DBOpt.dbHelper.ExecuteScalar("select f_no from dmis_sys_flowline where  F_STARTNO=" + ViewState["CurLinkNo"] + " and F_ENDNO=" + dt.Rows[i]["F_NO"].ToString()).ToString();
            if (WebWorkFlow.LinkGetCondition(ViewState["PackTypeNo"].ToString(), LinkNo, ViewState["PackNo"].ToString(),
                                             ViewState["CurWorkFlowNo"].ToString(), ViewState["TableName"].ToString(), ViewState["RecNo"].ToString()))
            {
                DataRow row2 = target.NewRow();
                row2[0] = dt.Rows[i]["F_NO"];
                row2[1] = dt.Rows[i]["F_NAME"];
                target.Rows.Add(row2);
            }
        }

        //再绑定
        if (target.Rows.Count > 0)
        {
            rblTache.DataTextField  = "F_NAME";
            rblTache.DataValueField = "F_NO";
            rblTache.DataSource     = target;
            rblTache.DataBind();
            rblTache.SelectedIndex = 0;
            rblTache_SelectedIndexChanged(null, null);
        }
    }