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 指定的配置查询 -- }
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); } } } }