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);
                    }
                }
            }
        }
Example #4
0
        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));
        }