예제 #1
0
        protected virtual void WfIniSqlBody()
        {
            StringBuilder sbSql;
            StringBuilder sbSqlSelect, sbSqlFrom, sbSqlInner, sbSqlWhere;

            try
            {
                if (MsgInfoReturned == null)
                {
                    throw new Exception("未實體化msgInfoReturned");
                }

                sbSql = new StringBuilder();
                sbSql.AppendLine(string.Format(" SELECT * FROM vw_admi650 WHERE azp01='{0}' ", StrPickNo));
                var drAzp = BoMaster.OfGetDataRow(sbSql.ToString());
                if (drAzp == null)
                {
                    throw new Exception("查無此pick_no!");
                }

                sbSql = new StringBuilder();
                sbSql.AppendLine(string.Format(" SELECT *  FROM vw_admi650s WHERE azq01='{0}' ", StrPickNo));
                sbSql.AppendLine(string.Format(" ORDER BY azq02 "));
                var dtAzq = BoMaster.OfGetDataTable(sbSql.ToString());
                if (drAzp == null)
                {
                    throw new Exception("查無此pick_no 明細資料!");
                }
                Admi650Model = drAzp.ToItem <vw_admi650>();
                Admi650sList = dtAzq.ToList <vw_admi650s>();

                //設定form名稱
                this.Text = string.Format("{0} {1}", Admi650Model.azp01, Admi650Model.azp02);

                #region 取得select body
                sbSqlSelect = new StringBuilder();
                sbSqlSelect.AppendLine(string.Format("SELECT "));
                if (Admi650Model.azp06 == "Y")
                {
                    sbSqlSelect.AppendLine(string.Format("DISTINCT"));
                }

                if (_iMaxPickRow != 1)                                                          //表示多選,增加is_pick_yn
                {
                    sbSqlSelect.AppendLine(string.Format("convert(nvarchar(1),'N') is_pick,")); //0,1
                }
                //組合select 欄位,最後一欄不加,
                for (int i = 0; i < Admi650sList.Count; i++)
                {
                    var selectField = string.Format(Admi650sList[i].azq03 + "." + Admi650sList[i].azq04);
                    if (i != Admi650sList.Count - 1)
                    {
                        selectField += ",";
                    }

                    sbSqlSelect.AppendLine(selectField);
                }
                #endregion

                #region 取得from body
                sbSqlFrom = new StringBuilder();
                sbSqlFrom.AppendLine(string.Format("FROM " + Admi650Model.azp03));
                #endregion

                #region 取得join
                sbSqlInner = new StringBuilder();
                //if (GlobalFn.isNullRet(drAzp["azp04"], "") != "")
                if (GlobalFn.isNullRet(Admi650Model.azp04, "") != "")
                {
                    //sbSqlInner.AppendLine(string.Format(GlobalFn.isNullRet(drAzp["azp04"], "")));
                    sbSqlInner.AppendLine(string.Format(GlobalFn.isNullRet(Admi650Model.azp04, "")));
                }
                #endregion

                #region 取得where
                sbSqlWhere = new StringBuilder();

                if (GlobalFn.isNullRet(Admi650Model.azp05, "") != "")
                {
                    sbSqlWhere.AppendLine(string.Format("WHERE " + GlobalFn.isNullRet(Admi650Model.azp05, "")));
                }
                else
                {
                    sbSqlWhere.AppendLine(string.Format("WHERE 1=1 "));
                }
                #endregion

                //組合好不含order by的字串
                StrSqlBody = sbSqlSelect.ToString() + sbSqlFrom.ToString() + sbSqlInner.ToString() + sbSqlWhere.ToString();
                if (MsgInfoReturned.StrWhereAppend != "")
                {
                    StrSqlBody += MsgInfoReturned.StrWhereAppend;
                }

                if (MsgInfoReturned.ParamSearchList == null)
                {
                    DtMaster = BoMaster.OfGetDataTable(StrSqlBody + " AND 1<>1 ");
                }
                else
                {
                    DtMaster = BoMaster.OfGetDataTable(StrSqlBody + " AND 1<>1 ", MsgInfoReturned.ParamSearchList.ToArray());
                }
                //修改column 型別為string 並將實際的型別丟到 column.prefix
                foreach (DataColumn dcTempColumn in DtMaster.Columns)
                {
                    if (dcTempColumn.Prefix != "")
                    {
                        continue;
                    }
                    dcTempColumn.Prefix   = dcTempColumn.DataType.Name;
                    dcTempColumn.DataType = typeof(string);
                }
                BindingMaster.DataSource = DtMaster;
                uGrid_Master.DataSource  = BindingMaster;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
예제 #2
0
        protected override void WfIniSqlBody()
        {
            StringBuilder sbSql;

            try
            {
                if (MsgInfoReturned == null)
                {
                    throw new Exception("未實體化msgInfoReturned");
                }

                sbSql = new StringBuilder();
                sbSql.AppendLine("SELECT CONVERT(NVARCHAR(1),'N') is_pick,");
                sbSql.AppendLine("CONVERT(NVARCHAR(100),'') AS action,");
                sbSql.AppendLine("CONVERT(NVARCHAR(100),'') AS action_c");
                StrSqlBody = sbSql.ToString();
                DtMaster   = BoMaster.OfGetDataTable(sbSql.ToString());

                Admi650Model = new vw_admi650()
                {
                    azp01   = StrPickNo,
                    azp02   = "action功能挑選",
                    azp03   = "",
                    azp03_c = "",
                    azp04   = "",
                    azp05   = "",
                    azp06   = "N",
                    azp07   = "",
                    azp08   = "Y",
                };
                Admi650sList = new List <vw_admi650s>()
                {
                    new vw_admi650s()
                    {
                        azq01   = Admi650Model.azp01,
                        azq02   = 1,
                        azq03   = "",
                        azq04   = "action",
                        azq04_c = "action",
                        azq06   = "1",
                        azq08   = 100
                    },
                    new vw_admi650s()
                    {
                        azq01   = Admi650Model.azp01,
                        azq02   = 2,
                        azq03   = "",
                        azq04   = "action_c",
                        azq04_c = "action名稱",
                        azq06   = "1",
                        azq08   = 200
                    }
                };


                //修改column 型別為string 並將實際的型別丟到 column.prefix
                foreach (DataColumn dcTempColumn in DtMaster.Columns)
                {
                    if (dcTempColumn.Prefix != "")
                    {
                        continue;
                    }
                    dcTempColumn.Prefix   = dcTempColumn.DataType.Name;
                    dcTempColumn.DataType = typeof(string);
                }
                BindingMaster.DataSource = DtMaster;
                uGrid_Master.DataSource  = BindingMaster;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
예제 #3
0
        protected override bool WfFormCheck()
        {
            vw_admi650  masterModel = null;
            vw_admi650s detailModel = null;
            UltraGrid   uGrid;
            string      msg;
            Control     chkControl;
            string      chkColName;
            int         iChkDetailTab;

            try
            {
                masterModel = DrMaster.ToItem <vw_admi650>();
                #region 單頭資料檢查
                chkColName = "azp01";
                chkControl = ute_azp01;
                if (GlobalFn.varIsNull(masterModel.azp01))
                {
                    this.uTab_Master.SelectedTab = uTab_Master.Tabs[0];
                    chkControl.Focus();
                    msg  = TabMaster.AzaTbList.Where(p => p.aza03 == chkColName).Select(p => p.aza04).FirstOrDefault();
                    msg += "不可為空白";
                    errorProvider.SetError(chkControl, msg);
                    WfShowErrorMsg(msg);
                    return(false);
                }

                chkColName = "azp02";
                chkControl = ute_azp02;
                if (GlobalFn.varIsNull(masterModel.azp02))
                {
                    this.uTab_Master.SelectedTab = uTab_Master.Tabs[0];
                    chkControl.Focus();
                    msg  = TabMaster.AzaTbList.Where(p => p.aza03 == chkColName).Select(p => p.aza04).FirstOrDefault();
                    msg += "不可為空白";
                    errorProvider.SetError(chkControl, msg);
                    WfShowErrorMsg(msg);
                    return(false);
                }

                chkColName = "azp03";
                chkControl = ute_azp03;
                if (GlobalFn.varIsNull(masterModel.azp03))
                {
                    this.uTab_Master.SelectedTab = uTab_Master.Tabs[0];
                    chkControl.Focus();
                    msg  = TabMaster.AzaTbList.Where(p => p.aza03 == chkColName).Select(p => p.aza04).FirstOrDefault();
                    msg += "不可為空白";
                    errorProvider.SetError(chkControl, msg);
                    WfShowErrorMsg(msg);
                    return(false);
                }
                #endregion

                #region 單身資料檢查
                iChkDetailTab = 0;
                uGrid         = TabDetailList[iChkDetailTab].UGrid;
                foreach (DataRow drTemp in TabDetailList[iChkDetailTab].DtSource.Rows)
                {
                    detailModel = drTemp.ToItem <vw_admi650s>();
                    #region azq03-資料表代碼
                    chkColName = "azq03";
                    if (GlobalFn.varIsNull(detailModel.azq03))
                    {
                        this.uTab_Detail.SelectedTab = uTab_Detail.Tabs[iChkDetailTab];
                        msg  = TabDetailList[iChkDetailTab].AzaTbList.Where(p => p.aza03 == chkColName).Select(p => p.aza04).FirstOrDefault();
                        msg += "不可為空白";
                        WfShowErrorMsg(msg);
                        WfFindErrUltraGridCell(uGrid, drTemp, chkColName);
                        return(false);
                    }
                    #endregion

                    #region azq04-資料欄位代碼
                    chkColName = "azq04";
                    if (GlobalFn.varIsNull(detailModel.azq04))
                    {
                        this.uTab_Detail.SelectedTab = uTab_Detail.Tabs[iChkDetailTab];
                        msg  = TabDetailList[iChkDetailTab].AzaTbList.Where(p => p.aza03 == chkColName).Select(p => p.aza04).FirstOrDefault();
                        msg += "不可為空白";
                        WfShowErrorMsg(msg);
                        WfFindErrUltraGridCell(uGrid, drTemp, chkColName);
                        return(false);
                    }
                    #endregion

                    #region azq06-資料元件類型
                    chkColName = "azq06";
                    if (GlobalFn.varIsNull(detailModel.azq06))
                    {
                        this.uTab_Detail.SelectedTab = uTab_Detail.Tabs[iChkDetailTab];
                        msg  = TabDetailList[iChkDetailTab].AzaTbList.Where(p => p.aza03 == chkColName).Select(p => p.aza04).FirstOrDefault();
                        msg += "不可為空白";
                        WfShowErrorMsg(msg);
                        WfFindErrUltraGridCell(uGrid, drTemp, chkColName);
                        return(false);
                    }
                    #endregion
                }
                #endregion

                return(true);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }