Smobiler中,PopList通用選擇實現

一、PopList控件實現通用選擇難點:
1.1通用加載過程;一層加與兩層加載; 
1.2選擇結果分配;

二、過程實現
2.1數據加載過程的實現
public static Boolean PopListCommAddList(PopList Vlist, String GSQL, String GItrmFld, String LSQL, String LItrmFld, String GrpText, Boolean MulSel, Boolean SngSelMode )
    {
        //功能:PopList通用加載過程
        Boolean blnOK = false;
        string MTTYItem = "",SSQL="";

        if (GSQL.Trim() == "")   //只有一個Group GrpText
        {
            PopListGroup plg = new PopListGroup() { Title = "" + GrpText, TitleVisible = true };

            SSQL = LSQL;
            DataSet dsCangzhi = SqlHelper.Ex_Query(LSQL);
            if (dsCangzhi.Tables[0].Rows.Count > 0)
            {
                for (int J = 0; J <= dsCangzhi.Tables[0].Rows.Count - 1; J++)
                {
                    MTTYItem = dsCangzhi.Tables[0].Rows[J][LItrmFld].ToString();
                    plg.Items.Add(new PopListItem("" + MTTYItem));
                }
            }

            Vlist.Groups.Add(plg);
        }
        else
        {
            Vlist.Groups.Clear();
            Vlist.MultiSelect = MulSel; //可以多選擇
            Vlist.SingleSelectMode = SngSelMode; //去掉單選模式

            DataSet dsFirstZM = SqlHelper.Ex_Query(GSQL);
            if (dsFirstZM.Tables[0].Rows.Count > 0)
            {
                for (int I = 0; I <= dsFirstZM.Tables[0].Rows.Count - 1; I++)
                {
                    MTTYItem = dsFirstZM.Tables[0].Rows[I][GItrmFld].ToString();

                    PopListGroup plg = new PopListGroup() { Title = "" + MTTYItem, TitleVisible = true }; //pl.Groups.

                    //"SELECT DEF_STOCKADD_ID+'-'+DEF_STOCKADD_DESC AS [ADDLIST] FROM DEF_STOCKADD WHERE DEF_STOCKADD_ID LIKE '" + MTTYItem + @"%' AND  DEF_STOCKADD_TYPE='1' ORDER BY DEF_STOCKADD_ID"
                    SSQL = LSQL.Replace("@GPID", MTTYItem);
                    DataSet dsCangzhi = SqlHelper.Ex_Query(LSQL);
                    if (dsCangzhi.Tables[0].Rows.Count > 0)
                    {
                        for (int J = 0; J <= dsCangzhi.Tables[0].Rows.Count - 1; J++)
                        {
                            MTTYItem = dsCangzhi.Tables[0].Rows[J][LItrmFld].ToString();
                            plg.Items.Add(new PopListItem("" + MTTYItem));
                        }
                    }

                    Vlist.Groups.Add(plg);
                }
            }

        }

        return blnOK;

    }
2.2選擇結果的分配
2.2.A,加載過程要定義選擇窗口標題
    private void btnADD_Press(object sender, EventArgs e)
        {
            string ASQL= "SELECT DEF_STOCKADD_ID+'-'+DEF_STOCKADD_DESC AS [ADDLIST] FROM DEF_STOCKADD INNER JPDYL_ADDR ONOIN  DEF_STOCKADD.DEF_STOCKADD_ID=PDYL_ADDR.PDYL_ADDRID  WHERE PDYL_ADDR.PDYL_M_ID= '" + PDID + @"' AND  DEF_STOCKADD.DEF_STOCKADD_TYPE='1' ORDER BY DEF_STOCKADD_ID"
            SqlHelper.PopListCommAddList(this.pL1,"", "", ASQL, "ADDLIST", "倉址列表",false,true);
            pL1.Title = "倉址選擇";
            pL1.Show();
        }
2.2.B,選擇結果分配:通過識別標題
        private void pL1_Selected(object sender, EventArgs e)
        {
            switch(pL1.Title)
            {
                case "倉址選擇":  //倉址選擇 單選
                    txtADDR.Text = this.pL1.Selection.Text;
                    break;
                case "":
                    break;
            }
        }

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章