Ejemplo n.º 1
0
        private void btnGetSqlRegex_Click(object sender, EventArgs e)
        {
            LoadDataToFormDevEditorAdapter adapter = this.HostAdapter as LoadDataToFormDevEditorAdapter;

            this.txtSqlRegex.Text = String.Empty;
            if (adapter.ParameterPanels.DataEntity.DataEntityId == String.Empty)
            {
                return;
            }
            string                dataEntityId = adapter.ParameterPanels.DataEntity.DataEntityId;
            DataEntity            dataEntity   = _dataEntityComponentService.GetDataEntity(dataEntityId);
            List <DataItemEntity> dataItems    = dataEntity.Items.ToList();
            string                sqlRegex     = "SELECT {Field} FROM {Table} WHERE 1=1";
            string                tableName    = dataEntity.Code;

            sqlRegex = sqlRegex.Replace("{Table}", "[" + tableName + "]");
            string dataItemName;

            foreach (LoadDataToFormDev.LoadItem load in adapter.ParameterPanels.Load.Loads)
            {
                List <DataItemEntity> items =
                    (from c in dataItems where c.Id.Equals(load.DataItem) select c).ToList();
                Debug.Assert(items.Count == 1, "没有找到指定的数据项实体");
                dataItemName = items[0].Code;
                sqlRegex     = sqlRegex.Replace("{Field}", "[" + dataItemName + "],{Field}");
            }
            sqlRegex = sqlRegex.Replace(",{Field}", "");
            sqlRegex = sqlRegex.Replace("{Field}", "*");
            if (adapter.ParameterPanels.DataEntity.Wheres.Count == 0)
            {
                this.txtSqlRegex.SetContent(sqlRegex.Replace("WHERE 1=1", String.Empty));
                return;
            }
            sqlRegex += Environment.NewLine;
            string valueName = String.Empty;

            foreach (LoadDataToFormEvent.WhereItem whereItem in adapter.ParameterPanels.DataEntity.Wheres)
            {
                List <DataItemEntity> items =
                    (from c in dataItems where c.Id.Equals(whereItem.DataItem) select c).ToList();
                Debug.Assert(items.Count == 1, "没有找到指定的数据项实体");
                dataItemName = items[0].Code;
                if (whereItem.Source.Type == EnumEventDataSource.FormElement)
                {
                    valueName = "{FormElement." +
                                this.HostAdapter.HostFormEntity.FindFormElementById(whereItem.Source.Source).Code + "}";
                }
                else
                {
                    valueName = "{System." +
                                ((EnumSystemDataSource)Convert.ToInt32(whereItem.Source.Source)).ToString() + "}";
                }
                sqlRegex += Environment.NewLine + " AND " + CommonOperater.CombineFieldAndValue(
                    dataItemName, valueName, whereItem.MatchType);
            }
            this.txtSqlRegex.SetContent(sqlRegex.Replace("1=1" + Environment.NewLine + Environment.NewLine + " AND ",
                                                         Environment.NewLine));
        }
        private void btnGetSqlRegex_Click(object sender, EventArgs e)
        {
            DeleteDataDevEditorAdapter adapter = this.HostAdapter as DeleteDataDevEditorAdapter;

            this.txtSqlRegex.Text = String.Empty;
            if (adapter.ParameterPanels.DataEntity.DataEntityId == String.Empty)
            {
                return;
            }
            string     dataEntityId = adapter.ParameterPanels.DataEntity.DataEntityId;
            DataEntity dataEntity   = _dataEntityComponentService.GetDataEntity(dataEntityId);
            string     sqlRegex     = "DELETE FROM {Table} WHERE 1=1";
            string     tableName    = dataEntity.Code;

            sqlRegex = sqlRegex.Replace("{Table}", "[" + tableName + "]");
            if (adapter.ParameterPanels.DataEntity.Where.Count == 0)
            {
                this.txtSqlRegex.SetContent(sqlRegex.Replace("WHERE 1=1", String.Empty));
                return;
            }
            sqlRegex += Environment.NewLine;
            string dataItemName = String.Empty;
            string valueName    = String.Empty;

            foreach (DeleteDataEvent.WhereItem whereItem in adapter.ParameterPanels.DataEntity.Where)
            {
                UIElement      formElement;
                DataItemEntity item = dataEntity.Items.GetEntityById(whereItem.DataItem);
                Debug.Assert(item != null, "没有找到指定的数据项实体");
                dataItemName = item.Code;
                if (whereItem.Source.Type == EnumEventDataSource.FormElement)
                {
                    formElement = this.HostAdapter.HostFormEntity.FindFormElementById(whereItem.Source.Source);
                    valueName   = "{FormElement." + formElement.FullCode + "}";
                }
                else
                {
                    valueName = "{System." + ((EnumSystemDataSource)Convert.ToInt32(whereItem.Source.Source)).ToString() + "}";
                }
                sqlRegex += Environment.NewLine + " AND " + CommonOperater.CombineFieldAndValue(
                    dataItemName, valueName, whereItem.MatchType);
            }
            this.txtSqlRegex.SetContent(sqlRegex.Replace("1=1" + Environment.NewLine + Environment.NewLine + " AND ",
                                                         Environment.NewLine));
        }
        private void btnGetSqlRegex_Click(object sender, EventArgs e)
        {
            UpdateFormDataDevEditorAdapter adapter = this.HostAdapter as UpdateFormDataDevEditorAdapter;

            this.txtSqlRegex.Text = String.Empty;
            if (adapter.ParameterPanels.Update.Updates.Count == 0 &&
                adapter.ParameterPanels.Where.Wheres.Count == 0)
            {
                return;
            }
            string     dataEntityId = adapter.ParameterPanels.Update.DataEntityId;
            DataEntity dataEntity   = _dataEntityComponentService.GetDataEntity(dataEntityId);
            string     sqlRegex     = "UPDATE {Table} SET {Field} WHERE 1=1";
            string     tableName    = dataEntity.Code;

            sqlRegex = sqlRegex.Replace("{Table}", "[" + tableName + "]");
            string dataItemName = String.Empty;
            string valueName    = String.Empty;

            if (adapter.ParameterPanels.Update.Updates.Count > 0)
            {
                sqlRegex += Environment.NewLine;
                foreach (UpdateFormDataDev.UpdateItem update in adapter.ParameterPanels.Update.Updates)
                {
                    dataItemName = dataEntity.Items.GetEntityById(update.DataItem).Code;
                    if (update.Source.Type == EnumEventDataSource.FormElement)
                    {
                        valueName = "{FormElement." +
                                    this.HostAdapter.HostFormEntity.FindFormElementById(update.Source.Source).Code + "}";
                    }
                    else
                    {
                        valueName = "{System." +
                                    ((EnumSystemDataSource)Convert.ToInt32(update.Source.Source)).ToString() + "}";
                    }
                    sqlRegex = sqlRegex.Replace("{Field}", "[" + dataItemName + "] = " + valueName + ",{Field}");
                }
                sqlRegex = sqlRegex.Replace(",{Field}", "");
            }
            else
            {
                sqlRegex = sqlRegex.Replace("{Field}", "");
            }
            if (adapter.ParameterPanels.Where.Wheres.Count == 0)
            {
                this.txtSqlRegex.SetContent(sqlRegex.Replace("WHERE 1=1", String.Empty));
                return;
            }
            sqlRegex += Environment.NewLine;
            foreach (UpdateFormDataEvent.WhereItem where in adapter.ParameterPanels.Where.Wheres)
            {
                dataItemName = dataEntity.Items.GetEntityById(where.DataItem).Code;
                if (where.Source.Type == EnumEventDataSource.FormElement)
                {
                    valueName = "{FormElement." +
                                this.HostAdapter.HostFormEntity.FindFormElementById(where.Source.Source).Code + "}";
                }
                else
                {
                    valueName = "{System." +
                                ((EnumSystemDataSource)Convert.ToInt32(where.Source.Source)).ToString() + "}";
                }
                sqlRegex += Environment.NewLine + " AND " + CommonOperater.CombineFieldAndValue(
                    dataItemName, valueName, where.MatchType);
            }
            this.txtSqlRegex.SetContent(sqlRegex.Replace("1=1" + Environment.NewLine + Environment.NewLine + " AND ",
                                                         Environment.NewLine));
        }
        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));
        }