private void InitForm() { if (this.DataListId != null && this.DataListId != String.Empty) { dtDataColumn = new DataTable(); dtDataColumn.Columns.Add("Text"); dtDataColumn.Columns.Add("Value"); UIElementDataListEntity dataListEntity = (UIElementDataListEntity)this.formEntity.FindFormElementById(this.dataListId); DataRow drDataColumn; foreach (UIElementDataListTextBoxColumnEntity dc in dataListEntity.DataColumns) { drDataColumn = dtDataColumn.NewRow(); drDataColumn["Text"] = dc.Name; drDataColumn["Value"] = dc.Id; dtDataColumn.Rows.Add(drDataColumn); } this.btnBrowse.Visible = false; ddlDataColumn.Visible = true; txtDataColumn.Visible = false; ddlDataColumn.AllowEmpty = false; txtDataColumn.AllowEmpty = true; ddlDataColumn.DataSource = dtDataColumn; } else { this.btnBrowse.Visible = true; ddlDataColumn.Visible = false; txtDataColumn.Visible = true; ddlDataColumn.AllowEmpty = true; txtDataColumn.AllowEmpty = false; } }
public override void SetParameter(EventBase even) { DataListAddRowDev _event = even as DataListAddRowDev; this.DataListId = _event.DataList; this.TargetWindow = _event.TargetWindow; this._datas = new BindingList <DataListAddRowEvent.DataItem>(_event.Data); this._warningTable.Clear(); bool warningRow = false; DataSourceProvideArgs args = new DataSourceProvideArgs() { WindowEntity = this.HostAdapter.HostFormEntity }; foreach (DataListAddRowEvent.DataItem data in _event.Data) { data.SourceName = DataSourceProvideFactory.Instance.GetDisplayString(data.Source, args); if (String.IsNullOrEmpty(data.SourceName)) { warningRow = true; } if (this.TargetWindow == EnumTargetWindow.Current) { UIElement formElementDataList = this.HostAdapter.HostFormEntity.FindFormElementById(_event.DataList); if (formElementDataList == null) { warningRow = true; } else { UIElementDataListEntity dataList = (UIElementDataListEntity)formElementDataList; UIElementDataListColumnEntityAbstract dataColumn = dataList.GetDataColumn(data.DataColumn); if (dataColumn == null) { warningRow = true; } else { data.DataColumnName = dataColumn.Name; } } } else { data.DataColumnName = data.DataColumn; } this._warningTable.Add(data, warningRow); } this.dataGridViewDataSet.DataSource = this._datas; }
public static void CheckWarning(DataListRefreshDev entity) { entity.Warning.Clear(); UIElementDataListEntity dataListEntity = entity.HostFormEntity.Elements.GetFormElementById(entity.DataListId) as UIElementDataListEntity; if (dataListEntity == null) { entity.Warning.AddWarningSign(entity, Language.Current.EventDev_RefreshListDev_DataListNotExist); } DataEntity dataEntity = null; if (dataListEntity != null) { dataEntity = _dataEntityComponentService.GetDataEntity(dataListEntity.DataEntityId); if (dataEntity == null) { entity.Warning.AddWarningSign(entity, Language.Current.EventDev_RefreshListDev_DataEntityNotExist); } } foreach (DataListRefreshDev.WhereItem where in entity.Where) { if (dataEntity != null) { if (dataEntity.Items.Contains(where.DataItem) == false) { entity.Warning.AddWarningSign(entity, Language.Current.EventDev_RefreshListDev_DataItemEntityNotExist); } } if (where.Source.Type == EnumEventDataSource.FormElement) { if (entity.HostFormEntity.Elements.Contains(where.Source.Source) == false) { entity.Warning.AddWarningSign(entity, Language.Current.EventDev_RefreshListDev_FormElementNotExist); } } } }
public override void SetParameter(EventBase even) { DataListDeleteRowDev _event = even as DataListDeleteRowDev; this.DataListId = _event.DataList; this.TargetWindow = _event.TargetWindow; this._wheres = new BindingList <DataListDeleteRowEvent.WhereItem>(_event.Where); this._warningTable.Clear(); //为用于显示的DataColumnName和SourceName赋值 bool warningRow = false; DataSourceProvideArgs args = new DataSourceProvideArgs() { WindowEntity = this.HostAdapter.HostFormEntity }; foreach (DataListDeleteRowEvent.WhereItem where in _wheres) { //where.SourceName = StringParserLogic.DataSourceVisibleString(this.HostAdapter.HostFormEntity, where.Source.ToString(), out warningRow); where.SourceName = DataSourceProvideFactory.Instance.GetDisplayString(where.Source, args); if (String.IsNullOrEmpty(where.SourceName)) { warningRow = true; } //如果是当前窗体 if (this.TargetWindow == EnumTargetWindow.Current) { UIElement formElementDataList = this.HostAdapter.HostFormEntity.FindFormElementById(_event.DataList); if (formElementDataList == null) { warningRow = true; } else { //FormElementDataListEntityDev UIElementDataListEntity dataList = (UIElementDataListEntity)formElementDataList; UIElementDataListColumnEntityAbstract dataColumn = dataList.GetDataColumn(where.DataColumn); if (dataColumn == null) { warningRow = true; } else { where.DataColumnName = dataColumn.Name; } } } //如果是调用者窗体 else { where.DataColumnName = where.DataColumn; } this._warningTable.Add(where, warningRow); } this.dataGridViewDataSet.DataSource = this._wheres; }
private void btnGetSqlRegex_Click(object sender, EventArgs e) { DataListRefreshDevEditorAdapter adapter = this.HostAdapter as DataListRefreshDevEditorAdapter; this.txtSqlRegex.Text = String.Empty; string dataEntityId = adapter.ParameterPanels.General.DataEntityId; if (dataEntityId == String.Empty || dataEntityId == null) { return; } UIElementDataListEntity dataListEntity = this.HostAdapter.HostFormEntity.Elements.GetFormElementById( adapter.ParameterPanels.General.DataListId) as UIElementDataListEntity; if (dataListEntity == null) { return; } string sqlRegex = String.Empty; sqlRegex += @"SELECT Count(Id) FROM {Table}; SELECT {Field} FROM {Table} WHERE 1=1 {Where}; WITH tableOrder AS ( SELECT Id,{Field}, ROW_NUMBER() OVER (order by Id) AS RowNumber FROM {Table} WHERE 1=1 {Where} ) SELECT * FROM tableOrder WHERE RowNumber BETWEEN @rowNumberStart AND @rowNumberEnd ORDER BY Id; "; DataEntity dataEntity = _dataEntityComponentService.GetDataEntity(dataEntityId); string tableName = dataEntity.Code; sqlRegex = sqlRegex.Replace("{Table}", "[" + tableName + "]"); foreach (UIElementDataListTextBoxColumnEntity column in dataListEntity.DataColumns) { sqlRegex = sqlRegex.Replace("{Field}", "[" + column.GetDataItemCode() + "],{Field}"); } sqlRegex = sqlRegex.Replace(",{Field}", ""); if (adapter.ParameterPanels.Where.Wheres == null || adapter.ParameterPanels.Where.Wheres.Count == 0) { sqlRegex = sqlRegex.Replace("{Where}", String.Empty); this.txtSqlRegex.SetContent(sqlRegex.Replace("WHERE 1=1", String.Empty)); return; } sqlRegex += Environment.NewLine; string strWhere = String.Empty; string dataItemName = String.Empty; string valueName = String.Empty; foreach (DataListRefreshEvent.WhereItem whereItem in adapter.ParameterPanels.Where.Wheres) { DataItemEntity item = dataEntity.Items.GetEntityById(whereItem.DataItem); Debug.Assert(item != null, "没有找到指定的数据项实体"); dataItemName = item.Code; if (whereItem.Source.ToString().Split('.')[0] == "FormElement") { valueName = "{FormElement." + this.HostAdapter.HostFormEntity.FindFormElementById(whereItem.Source.ToString().Split('.')[1]).Code + "}"; } else { valueName = "{System." + ((EnumSystemDataSource)Convert.ToInt32(whereItem.Source.ToString().Split('.')[1])).ToString() + "}"; } strWhere += " AND " + CommonOperater.CombineFieldAndValue(dataItemName, valueName, whereItem.MatchType); } sqlRegex = sqlRegex.Replace("{Where}", strWhere); this.txtSqlRegex.SetContent(sqlRegex.Replace("1=1" + Environment.NewLine + Environment.NewLine + " AND ", Environment.NewLine)); }