Exemple #1
0
        protected internal override void OnTSEditorSetValue(TSEditorSetValueEventArgs args)
        {
            base.OnTSEditorSetValue(args);

            #region -- 使用 FieldEntity 指定的配置查询 --

            if (args.ToSetValue == null || args.ToSetValue.ToString().Trim() == "")
            {
                return;
            }

            int iPromptBizObjID = this.LBViewType;
            if (iPromptBizObjID > 0)
            {
                #region -- 基类的查询条件 --

                string        strCriteriaBase = "";
                StringBuilder sb = new StringBuilder();
                //int iNCodeClassID = this.NCodeClassID;
                //StringBuilder sb = new StringBuilder();
                //if (iNCodeClassID > 0)
                //{
                //    TS.Win.BizObj.BizObjHelper.AddServerCriteria(ref sb, "NCodeClassID=", iNCodeClassID.ToString(), false, false);
                //    TS.Win.BizObj.BizObjHelper.AddServerCriteria(ref sb, "", "NCodeIsLeaf<>0", false, false);

                //    // 设置值时不判断
                //    ////TS.Win.BizObj.BizObjHelper.AddServerCriteria( ref sb, "", "NCodeForbidden=0", false, false );
                //}

                switch (args.SetByMember)
                {
                case enTSTextBoxMemberType.ID:
                    //TS.Win.BizObj.BizObjHelper.AddServerCriteria(
                    //    ref sb, this.IDColumnName + "=", args.ToSetValue.ToString(), false, false);
                    sb.AppendLine(this.IDColumnName + "=" + args.ToSetValue.ToString());
                    break;

                case enTSTextBoxMemberType.Code:
                    //TS.Win.BizObj.BizObjHelper.AddServerCriteria(
                    //    ref sb, this.CodeColumnName + "=", args.ToSetValue.ToString(), true, false);
                    sb.AppendLine(this.CodeColumnName + "='" + args.ToSetValue.ToString() + "'");
                    break;

                case enTSTextBoxMemberType.Text:
                    //TS.Win.BizObj.BizObjHelper.AddServerCriteria(
                    //    ref sb, this.TextColumnName + "=", args.ToSetValue.ToString(), true, false);
                    sb.AppendLine(this.TextColumnName + "='" + args.ToSetValue.ToString() + "'");
                    break;
                }

                strCriteriaBase = sb.ToString();

                #endregion -- 基类的查询条件 --

                // 触发事件
                string strCriteriaCustomer      = "";
                bool   bUseCriteriaCustomerOnly = false;
                if (PromptBizObjCreated != null)
                {
                    PromptBizObjCreatedArgs argsPrompt = new PromptBizObjCreatedArgs(enPromptBizObjCreatedAction.TSEditorSetValue, strCriteriaBase);
                    PromptBizObjCreated(this, argsPrompt);
                    strCriteriaCustomer      = argsPrompt.CriteriaCustomer;
                    bUseCriteriaCustomerOnly = argsPrompt.UseCriteriaCustomerOnly;
                    strCriteriaBase          = argsPrompt.CriteriaBase;
                }

                // 最终的查询条件
                if (!bUseCriteriaCustomerOnly)
                {
                    if (!string.IsNullOrEmpty(strCriteriaCustomer))
                    {
                        strCriteriaCustomer = "(" + strCriteriaCustomer + ")";
                    }
                    if (!string.IsNullOrEmpty(strCriteriaBase))
                    {
                        strCriteriaBase = "(" + strCriteriaBase + ")";
                    }
                    if (!string.IsNullOrEmpty(strCriteriaCustomer) && !string.IsNullOrEmpty(strCriteriaBase))
                    {
                        strCriteriaCustomer += " AND ";
                    }
                    strCriteriaCustomer += strCriteriaBase;
                }

                // 执行查询
                try
                {
                    DataView dvResult = ExecuteSQL.CallView(LBViewType, "", strCriteriaCustomer, LBSort).DefaultView;

                    // 返回参数
                    if (dvResult.Count == 1)
                    {
                        args.ValueDataRow = dvResult[0].Row;
                    }
                }
                catch (Exception ex)
                {
                }
            }

            #endregion -- 使用 FieldEntity 指定的配置查询 --
        }
Exemple #2
0
        internal void SelectRowReturn(int index)
        {
            if (index < 0 && lstBox.Items.Count > 0)
            {
                index = 0;
            }

            if (index >= 0 && index < lstBox.Items.Count)
            {
                DataRowView drv = mdvSource[index];
                if (drv != null)
                {
                    #region -- 由于 PromptStep 查询的不是所有列,这里需要重新对这一行查询所有字段 --

                    bool      bHasSetSelectedRow = false;
                    TSTextBox txtBox             = mOwnerControl as TSTextBox;
                    if (txtBox != null)
                    {
                        string strColName;
                        switch (txtBox.ValueMember)
                        {
                        case enTSTextBoxMemberType.ID:
                            strColName = txtBox.IDColumnName;
                            break;

                        case enTSTextBoxMemberType.Code:
                            strColName = txtBox.CodeColumnName;
                            break;

                        case enTSTextBoxMemberType.Text:
                        default:
                            strColName = txtBox.TextColumnName;
                            break;
                        }

                        if (drv.Row.Table.Columns.Contains(strColName))
                        {
                            TSEditorSetValueEventArgs args = new TSEditorSetValueEventArgs(txtBox.ValueMember, drv[strColName], index);
                            txtBox.OnTSEditorSetValue(args);
                            if (args.ValueDataRow != null)
                            {
                                bHasSetSelectedRow = true;
                                mdrSelected        = args.ValueDataRow;
                            }
                        }
                    }
                    else if (mOwnerControl is DataGridViewTextBoxEditingControl)
                    {
                        //TODO TSDataGridView 注释
                        //                  DataGridViewTextBoxEditingControl editingControl = (DataGridViewTextBoxEditingControl)mOwnerControl;
                        //TSDataGridView gridView = (TSDataGridView)editingControl.EditingControlDataGridView;
                        //TSDataGridViewTextBoxColumn column = gridView.Columns[miGridColumnIndex] as TSDataGridViewTextBoxColumn;

                        //if( column != null )
                        //{
                        //	string strColName;
                        //	switch( column.ValueMember )
                        //	{
                        //		case enTSTextBoxMemberType.ID:
                        //			strColName = column.IDColumnName;
                        //			break;

                        //		case enTSTextBoxMemberType.Code:
                        //			strColName = column.CodeColumnName;
                        //			break;

                        //		case enTSTextBoxMemberType.Text:
                        //		default:
                        //			strColName = column.TextColumnName;
                        //			break;
                        //	}

                        //	if( drv.Row.Table.Columns.Contains( strColName ) )
                        //	{
                        //		TSEditorSetValueEventArgs args = new TSEditorSetValueEventArgs( column.ValueMember, drv[strColName], index );
                        //		gridView.OnInputPromptSetValue( args );
                        //		if( args.ValueDataRow != null )
                        //		{
                        //			bHasSetSelectedRow = true;
                        //			mdrSelected = args.ValueDataRow;
                        //		}
                        //	}
                        //}
                    }

                    #endregion -- 由于 PromptStep 查询的不是所有列,这里需要重新对这一行查询所有字段 --

                    if (!bHasSetSelectedRow)
                    {
                        mdrSelected = drv.Row;
                    }

                    this.Hide();
                    OnPromptReturn();

                    if (txtBox != null)
                    {
                        txtBox.SetSelectedIndexInternal(index);
                    }
                }
            }
        }