예제 #1
0
 /// <summary>
 /// 设置行高
 /// </summary>
 /// <param name="text"></param>
 public void SetD19(string text)
 {
     if (!string.IsNullOrEmpty(text))
     {
         MyDataGrid.RowHeight = CommonConverter.StringToInt(text);
     }
 }
        /// <summary>
        /// 获取控件基本信息
        /// </summary>
        /// <param name="pageid"></param>
        /// <returns></returns>
        private List <ControlDetailForPage> GetControlBaseInfo(int pageid)
        {
            string sql = @"select * from hs_new_page_ctrls t where t.page_id = '{0}'";

            sql = string.Format(sql, pageid);
            SQLiteDataReader            reader      = this.ExcuteReader(sql);
            List <ControlDetailForPage> listControl = new List <ControlDetailForPage>();

            while (reader.Read())
            {
                //int index = 0;
                ControlDetailForPage obj = new ControlDetailForPage();
                foreach (var prop in obj.GetType().GetFields())
                {
                    string value = reader[prop.Name].ToString();
                    //这里判断一下类型
                    if ("Boolean".Equals(prop.FieldType.Name))
                    {
                        prop.SetValue(obj, CommonConverter.StringToBool(value));
                    }
                    else if ("Int32".Equals(prop.FieldType.Name))
                    {
                        prop.SetValue(obj, CommonConverter.StringToInt(value));
                    }
                    else
                    {
                        prop.SetValue(obj, value);
                    }
                }
                listControl.Add(obj);
            }
            reader.Close();
            this._connection.Close();
            return(listControl);
        }
        /// <summary>
        /// 获取列与值对应
        /// </summary>
        /// <param name="inText"></param>
        /// <returns></returns>
        private Dictionary <int, string> GetDicCtrlToColumn(string inText)
        {
            Dictionary <int, string> dicresult = new Dictionary <int, string>();

            //顺便获取列名与属性名对应的字典
            _propertyNameToColumnName.Clear();
            string[] array         = inText.Split('&');
            int      propertyIndex = 0;

            foreach (string str in array)
            {
                string[] value = str.Split('=');
                int      tagId = CommonConverter.StringToInt(value[0].Split('.')[0]);
                if (!dicresult.ContainsKey(tagId))
                {
                    dicresult.Add(tagId, value[1]);
                    if (!_propertyNameToColumnName.ContainsKey(value[1]))
                    {
                        _propertyNameToColumnName.Add(value[1], "Value" + propertyIndex.ToString());
                        propertyIndex++;
                    }
                }
            }
            return(dicresult);
        }
 /// <summary>
 /// 设置表格的数据
 /// </summary>
 /// <param name="value"></param>
 public void SetD6(string value)
 {
     //1、sql 2、字典实体
     if ("1".Equals(_sourceType))
     {
         string        sql       = value.ToString();
         SqlController cn        = new SqlController();
         var           dicReturn = cn.ExcuteSqlWithReturn(sql);
         Dictionary <string, string>[]      result = dicReturn.data;
         List <KeyValuePair <string, int> > source = this.DictionaryToListKeyValuePair(result);
         this.MyChart.DataContext = source;
     }
     else if ("2".Equals(_sourceType))
     {
         string   valueStr   = value.Trim();
         string[] valueArray = valueStr.Split('&');
         List <KeyValuePair <string, int> > dicTemp = new List <KeyValuePair <string, int> >();
         foreach (string str in valueArray)
         {
             dicTemp.Add(new KeyValuePair <string, int>(str.Split('=')[0], CommonConverter.StringToInt(str.Split('=')[1])));
         }
         //foreach (string key in dicTemp.Keys)
         //{
         //    //暂时注释,后面h实现事件的时候顺便实现这个
         //    //LocalCacher.AddCache(key, DecoderAssistant.FormatSql(dicTemp[key], this));
         //}
     }
 }
예제 #5
0
 /// <summary>
 /// 获取该页面所有版本
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void BtnGetPageVersionClick(object sender, RoutedEventArgs e)
 {
     if (!string.IsNullOrEmpty(txtPageId.Text) && CommonConverter.StringToInt(txtPageId.Text) != -1)
     {
         RefreshDataGrid(txtPageId.Text);
     }
 }
예제 #6
0
        /// <summary>
        /// 刷新版本列表
        /// </summary>
        /// <param name="pageId"></param>
        private async void RefreshDataGrid(string pageId)
        {
            var listpageresult = await _pageConnection.GetPageGroupInfo(pageId);

            listpageresult         = listpageresult.OrderBy(p => CommonConverter.StringToInt(p.version)).ToList();
            MyDataGrid.ItemsSource = listpageresult;
        }
        /// <summary>
        /// 初始化控件,由于比较复杂,所以这种情况由控件自身进行初始化
        /// </summary>
        /// <param name="controlObj"></param>
        /// <param name="listControlObj"></param>
        /// <param name="listControl"></param>
        public void InitControl(ControlDetailForPage controlObj, List <ControlDetailForPage> listControlObj, List <IControl> listControl)
        {
            this.Items.Clear();

            List <ControlDetailForPage> listgroups = this.GetParentGroups(listControlObj, controlObj.d17);

            //开始生成控件
            foreach (ControlDetailForPage groupobj in listgroups)
            {
                //生成树节点
                TreeViewItem itemGroup = new TreeViewItem();
                itemGroup.Header = ProduceTreeviewItem(listControlObj, listControl, groupobj);

                //获取该目录下的子节点
                List <ControlDetailForPage> listItems = listControlObj.Where(p => groupobj.ctrl_id.ToString().Equals(p.d13) &&
                                                                             xinLongyuControlType.pcnavigationBarItemType.Equals(p.ctrl_type)).ToList();
                if (object.Equals(listItems, null) || listItems.Count < 1)
                {
                    continue;
                }
                //排序
                listItems = listItems.OrderBy(p => CommonConverter.StringToInt(p.d21)).ToList();

                foreach (ControlDetailForPage itemObj in listItems)
                {
                    TreeViewItem childItem = new TreeViewItem();
                    childItem.Header            = ProduceTreeviewItem(listControlObj, listControl, itemObj);
                    childItem.Tag               = itemObj;
                    childItem.MouseDoubleClick += ChildItem_MouseDoubleClick;
                    itemGroup.Items.Add(childItem);
                }

                this.Items.Add(itemGroup);
            }
        }
        /// <summary>
        /// 装载窗体
        /// 这里暂时唯一的用处是用来与菜单栏控件进行关联
        /// </summary>
        /// <param name="value"></param>
        public async void SetA1(string value)
        {
            if (string.IsNullOrEmpty(value))
            {
                return;
            }
            // 这里加载新的窗口ID的页面
            int pageId = CommonConverter.StringToInt(value);

            if (pageId == -1)
            {
                return;
            }
            _currentPageId = pageId;
            var page = await _pageFactory.ProducePage(_currentPageId, true);

            if (object.Equals(page, null))
            {
                return;
            }
            Frame frame = new Frame();

            page.HorizontalAlignment = HorizontalAlignment.Left;
            page.VerticalAlignment   = VerticalAlignment.Top;
            frame.Content            = page;
            frame.Width               = page.Width;
            frame.Height              = page.Height;
            frame.VerticalAlignment   = VerticalAlignment.Top;
            frame.HorizontalAlignment = HorizontalAlignment.Left;
            this.Children.Clear();
            this.Children.Add(frame);
        }
예제 #9
0
 /// <summary>
 /// 解析右半边部分
 /// </summary>
 /// <param name="rightPart"></param>
 /// <param name="control"></param>
 private void DecodeRightPart(string rightPart, DecoderOfControl control)
 {
     //先看看简单的情况
     if (!rightPart.StartsWith("{"))
     {
         control.RightDirectValue = rightPart;
     }
     else
     {
         //右边也包含控件ID的情况
         string           pattern     = @"{(.*)}";
         string           trimPattern = Regex.Match(rightPart, pattern).Groups[1].ToString();
         string[]         rightpart   = trimPattern.Split('.');
         DecoderOfControl obj         = new DecoderOfControl();
         obj.CtrlId = CommonConverter.StringToInt(rightpart[0]);
         //obj.LeftCtrlProperty = rightpart[1];
         if (Regex.IsMatch(trimPattern, @"\d+.a\d+[(]\w*[)]"))
         {
             //取参数值
             obj.Patameter        = Regex.Match(trimPattern, @"[(](.*)[)]").Groups[1].ToString();
             obj.LeftCtrlProperty = rightpart[1].Replace(Regex.Match(trimPattern, @"[(](.*)[)]").Groups[0].ToString(), string.Empty);
         }
         else
         {
             obj.LeftCtrlProperty = rightpart[1];
         }
         control.RightDirectValue = obj;
     }
 }
예제 #10
0
        /// <summary>
        /// 设置总时长
        /// </summary>
        /// <param name="text"></param>
        public void SetD10(string text)
        {
            int value = CommonConverter.StringToInt(text);

            if (value != -1)
            {
                this._totalTime = value;
            }
        }
예제 #11
0
        /// <summary>
        /// 设置时间间隔
        /// </summary>
        /// <param name="text"></param>
        public void SetD11(string text)
        {
            int interval = CommonConverter.StringToInt(text);

            if (interval != -1)
            {
                _timer.Interval = new TimeSpan(interval * 1000);
            }
        }
예제 #12
0
        /// <summary>
        /// 解析事件实体
        /// </summary>
        /// <param name="inText"></param>
        /// <returns></returns>
        public DecoderOfControl DecodeNewCharacter(string inText)
        {
            DecoderOfControl control = new DecoderOfControl();

            inText = inText.Trim();
            if (inText.ToLower().StartsWith("sql:"))
            {
                //sql语法的进行单独处理
                return(DecodeSqlEvent(inText));
            }

            if (inText.IndexOf("=") != -1 && Regex.IsMatch(inText, @"\d+.d\d+ *= *\w*"))
            {
                if (Regex.IsMatch(inText, @"\d+.d\d+ *=.*"))
                {
                    string leftPart = inText.Trim().Split('=')[0];
                    leftPart = Regex.Match(leftPart, @"\d+.\w\d+").Groups[0].ToString();

                    int    rightIndex = inText.Trim().IndexOf("=");
                    string rightPart  = inText.Substring(rightIndex + 1, inText.Length - rightIndex - 1).Trim();

                    this.DecodeLeftPart(leftPart, control);
                    this.DecodeRightPart(rightPart, control);
                }
            }
            else if (Regex.IsMatch(inText, @"\d+.a\d+[(]((.|\n)*)[)]"))
            {
                if (Regex.IsMatch(inText, @"\d+.a\d+[(]\d+,\w+=.*"))
                {
                    string leftParttern = Regex.Match(inText, @"[(]((.|\n)*)[)]").Groups[0].ToString().Trim();
                    string leftPart     = inText.Replace(leftParttern, string.Empty);
                    leftPart                 = Regex.Match(leftPart, @"\d+.\w\d+").Groups[0].ToString();
                    control.CtrlId           = CommonConverter.StringToInt(leftPart.Split('.')[0]);
                    control.LeftCtrlProperty = leftPart.Split('.')[1];
                    control.RightDirectValue = leftParttern.Substring(1, leftParttern.Length - 2);
                }
                else
                {
                    control.CtrlId = CommonConverter.StringToInt(inText.Split('.')[0]);
                    string rightpart = inText.Substring(inText.IndexOf(".") + 1);
                    control.RightDirectValue = Regex.Match(rightpart, @"[(]((.|\n)*)[)]").Groups[1].ToString();
                    control.LeftCtrlProperty = rightpart.Replace(Regex.Match(rightpart, @"[(]((.|\n)*)[)]").Groups[0].ToString(), string.Empty);
                }
            }
            //事件语法,例如12.a1
            else if (Regex.IsMatch(inText, @"\d+.a|A\d+"))
            {
                control.CtrlId           = CommonConverter.StringToInt(inText.Trim().Split('.')[0]);
                control.LeftCtrlProperty = inText.Trim().Split('.')[1];
            }
            //事件语法,例如12.a5(1236)

            return(control);
        }
 private bool dealWithLowerAndEqual(string leftvalue, string rightValue)
 {
     if (CommonConverter.StringToInt(leftvalue) <= CommonConverter.StringToInt(rightValue))
     {
         return(true);
     }
     else
     {
         return(false);
     }
 }
 private bool dealWithUpper(string leftvalue, string rightValue)
 {
     if (CommonConverter.StringToInt(leftvalue) > CommonConverter.StringToInt(rightValue))
     {
         return(true);
     }
     else
     {
         return(false);
     }
 }
        /// <summary>
        /// 设置底部显示的一些相关信息
        /// </summary>
        private void DealWithPageIndex()
        {
            _rowCount = GetTotalRowCount();
            _pageSize = CommonConverter.StringToInt(_CurrentCtObj.d15);
            if (_pageSize != 0 && _pageSize != -1)
            {
                _totalPage = _rowCount / _pageSize;
            }

            lblCurrentPageIndex.Text = _currentPageIndex.ToString() + " / " + _totalPage.ToString(); //当前页面设置
            lblTotalPageCount.Text   = "共" + _rowCount.ToString() + " 条";                            //总数据条数设置
        }
예제 #16
0
        /// <summary>
        /// 设置限制的长度
        /// </summary>
        /// <param name="text"></param>
        public void SetD11(string text)
        {
            if (string.IsNullOrEmpty(text))
            {
                return;
            }
            var length = CommonConverter.StringToInt(text);

            if (length != -1)
            {
                this.txtContent.MaxLength = length;
            }
        }
        /// <summary>
        /// 获取所有的一级目录
        /// </summary>
        /// <returns></returns>
        private List <ControlDetailForPage> GetParentGroups(List <ControlDetailForPage> listControlObj, string childlistStr)
        {
            List <int> controlIdList = JsonController.DeSerializeToClass <List <int> >(childlistStr);

            if (controlIdList.Count < 1)
            {
                return(null);
            }
            //获取父目录控件并进行排序
            List <ControlDetailForPage> childrenList = listControlObj.Where(p => controlIdList.Contains(p.ctrl_id) &&
                                                                            validStr.Equals(p.d12))
                                                       .OrderBy(p => CommonConverter.StringToInt(p.d21)).ToList();

            return(childrenList);
        }
        /// <summary>
        /// 获取行数
        /// </summary>
        /// <returns></returns>
        private int GetTotalRowCount()
        {
            string _rowCountSql = _CurrentCtObj.d14;

            _rowCountSql = EventAssitant.FormatSql(_rowCountSql, _currentIControl);
            if (!string.IsNullOrEmpty(_rowCountSql))
            {
                var result = _sqlController.ExcuteSqlWithReturn(_rowCountSql);
                if (!object.Equals(result.data, null) && result.data.Length > 0)
                {
                    int totalCount = CommonConverter.StringToInt(result.data[0].First().Value);
                    return(totalCount);
                }
            }
            return(0);
        }
        /// <summary>
        /// 页面跳转事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnJumpPage(object sender, RoutedEventArgs e)
        {
            if (string.IsNullOrEmpty(this.txtJumpPage.Text))
            {
                return;
            }
            int pageIndex = CommonConverter.StringToInt(this.txtJumpPage.Text);

            if (pageIndex <= _totalPage && pageIndex >= 1)
            {
                _currentPageIndex        = pageIndex;
                lblCurrentPageIndex.Text = _currentPageIndex.ToString() + " / " + _totalPage.ToString();//当前页面设置
                PageTurning();
            }
            else
            {
                MessageBox.Show("输入的页面不存在!");
            }
        }
        /// <summary>
        /// 设置表格的列
        /// </summary>
        /// <param name="listControlObj"></param>
        /// <param name="gridObj"></param>
        private void SetDataGridColumns(List <ControlDetailForPage> listControlObj, ControlDetailForPage gridObj)
        {
            mydatagridview.Columns.Clear();
            //获取所有的列
            List <int> listChildId = JsonController.DeSerializeToClass <List <int> >(gridObj.d17);
            List <ControlDetailForPage> listAllColumns = listControlObj.Where(p => listChildId.Contains(p.ctrl_id) &&
                                                                              xinLongyuControlType.GridColumnName.Equals(p.ctrl_type))
                                                         .OrderBy(p => CommonConverter.StringToInt(p.d21)).ToList();
            //获取键值对应字典
            Dictionary <int, string> ctrlIdToColumnName = this.GetDicCtrlToColumn(gridObj.d22);

            //生成列类型
            foreach (ControlDetailForPage ctObj in listAllColumns)
            {
                DataGridColumn column = GetDataGridColumn(ctObj, ctrlIdToColumnName, listControlObj);
                column.Header = ctObj.d0;
                mydatagridview.Columns.Add(column);
            }
            //设置行高
            mydatagridview.RowHeight = CommonConverter.StringToInt(gridObj.d19);
        }
        /// <summary>
        /// 打开新的窗体
        /// </summary>
        /// <param name="inText"></param>
        /// <param name="isDialog"></param>
        private async void OpenPage(string inText, bool isDialog = false)
        {
            int pageId = CommonConverter.StringToInt(inText);

            if (pageId != -1)
            {
                OpenPageById(pageId, isDialog);
            }
            //接下来是有传值的方法,格式应该是类似(1236, text={1.d0}&type=animal)
            else
            {
                if (Regex.IsMatch(inText, @"\d+, *\w+=.*"))
                {
                    pageId = CommonConverter.StringToInt(inText.Split(',')[0].Trim());
                    string   parameters     = inText.Split(',')[1].Trim();
                    string[] parameterArray = parameters.Split('&');
                    Dictionary <string, string> dicParameter       = new Dictionary <string, string>();
                    Dictionary <string, string> dicParameterResult = new Dictionary <string, string>();
                    foreach (string str in parameterArray)
                    {
                        dicParameter.Add(str.Split('=')[0], str.Split('=')[1]);
                    }
                    foreach (string key in dicParameter.Keys)
                    {
                        dicParameterResult.Add(key, EventAssitant.FormatSql(dicParameter[key], this));
                    }
                    OpenPageById(pageId, isDialog, dicParameterResult);
                }
                else
                {
                    string pageid = EventAssitant.FormatSql(inText, this);
                    pageId = CommonConverter.StringToInt(pageid);
                    if (pageId != -1)
                    {
                        OpenPageById(pageId, isDialog);
                    }
                }
            }
        }
예제 #22
0
 /// <summary>
 /// 设置字体大小
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <param name="inControl"></param>
 /// <param name="text"></param>
 public static void SetD6 <T>(this T inControl, string text) where T : IControl
 {
     if (!object.Equals(text, null))
     {
         ControlDetailForPage ctobj = (inControl as FrameworkElement).Tag as ControlDetailForPage;
         ctobj.d6 = text;
     }
     //这里增加一个判断流程是为了兼容字体样式之前的版本,防止需要全部回去修改配置
     if (!string.IsNullOrEmpty(text))
     {
         try
         {
             if (!string.IsNullOrEmpty(text) && CommonConverter.StringToInt(text) == -1)
             {
                 ExcuteClassMethodByname(inControl, "SetD6", text);
             }
         }
         catch
         { }
         //if (ExcuteClassMethodByname(inControl, "SetD6", text) == ReturnConst.CancleReturn)
         //{
         //}
     }
 }
예제 #23
0
        /// <summary>
        /// 格式化sql,主要就是为了讲里面的参数赋值
        /// </summary>
        /// <param name="inText"></param>
        /// <returns></returns>
        public static string FormatSql(string inText, IControl ic)
        {
            SetCurrentControlList(ic);
            string pattern   = @"[{]\d+.d\d+[}]";
            string resultSql = inText.Clone().ToString();

            foreach (var data in Regex.Matches(inText, pattern))
            {
                string ctrlId       = data.ToString().Substring(1, data.ToString().Length - 2).Split('.')[0];
                string ctrlProperty = data.ToString().Substring(1, data.ToString().Length - 2).Split('.')[1];

                try
                {
                    int controlIndex = CurrentControlList.FindIndex(p => ctrlId.Equals(((p as FrameworkElement).Tag as ControlDetailForPage).ctrl_id.ToString()));
                    if (controlIndex != -1)
                    {
                        IControl rightControl = CurrentControlList[controlIndex];
                        string   paramter     = GetValue(rightControl, ctrlProperty).ToString();
                        resultSql = resultSql.Replace(data.ToString(), paramter);
                    }
                    else
                    {
                        resultSql = resultSql.Replace(data.ToString(), string.Empty);
                    }
                }
                catch
                {
                    resultSql = resultSql.Replace(data.ToString(), string.Empty);
                }
            }

            string secondPattern = @"[{]\d+.a\d+[(]\w+[)][}]";

            foreach (var data in Regex.Matches(inText, secondPattern))
            {
                string pairStr      = data.ToString().Substring(1, data.ToString().Length - 2);
                string parameter    = Regex.Match(pairStr.Split('.')[1], @"\((.*?)\)").Groups[1].ToString();
                string ctrlProperty = pairStr.Split('.')[1].Replace(Regex.Match(pairStr.Split('.')[1], @"\((.*?)\)").Groups[0].ToString(), string.Empty);
                string ctrlId       = pairStr.Split('.')[0];

                try
                {
                    int controlIndex = CurrentControlList.FindIndex(p => CommonConverter.StringToInt(ctrlId) == ((p as FrameworkElement).Tag as ControlDetailForPage).ctrl_id);
                    if (controlIndex != -1)
                    {
                        IControl rightControl = CurrentControlList[controlIndex];
                        string   paramter     = GetValueWithParameter(rightControl, ctrlProperty, parameter).ToString();
                        resultSql = resultSql.Replace(data.ToString(), paramter);
                    }
                    else
                    {
                        resultSql = resultSql.Replace(data.ToString(), string.Empty);
                    }
                }
                catch
                {
                    resultSql = resultSql.Replace(data.ToString(), string.Empty);
                }
            }
            return(resultSql);
        }
 /// <summary>
 /// 设置图标类型
 /// </summary>
 /// <param name="text"></param>
 public void SetD5(string text)
 {
     this.SetType(CommonConverter.StringToInt(text));
 }
예제 #25
0
        /// <summary>
        /// 审核页面
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private async void BtnReviewClick(object sender, RoutedEventArgs e)
        {
            pageDetailForGroup tagItem = (sender as Button).Tag as pageDetailForGroup;
            bool result = await _pageConnection.ReviewPage(tagItem.page_id.ToString(), CommonConverter.StringToInt(tagItem.version));

            if (result)
            {
                //RefreshDataGrid(tagItem.page_id.ToString());
                //这里为了提高性能,不去数据库重新获取
                var listpageresult = MyDataGrid.ItemsSource as List <pageDetailForGroup>;
                listpageresult = listpageresult.Select(
                    x => {
                    if (x.version.Equals(tagItem.version))
                    {
                        x.review = "1";
                    }
                    else
                    {
                        x.review = "-1";
                    }
                    return(x);
                }).ToList();
                MyDataGrid.ItemsSource   = listpageresult;
                MyDataGrid.SelectedIndex = -1;
                //

                MessageBox.Show("审核成功!");
            }
            else
            {
                MessageBox.Show("审核失败!");
            }
        }
예제 #26
0
 /// <summary>
 /// 解析左半边部分
 /// </summary>
 /// <param name="leftPart"></param>
 private void DecodeLeftPart(string leftPart, DecoderOfControl control)
 {
     control.CtrlId = CommonConverter.StringToInt(leftPart.Trim().Split('.')[0]);
     //排除掉"."符号
     control.LeftCtrlProperty = leftPart.Trim().Split('.')[1];
 }
        /// <summary>
        /// 字典转键值对数组
        /// </summary>
        /// <param name="dicArray"></param>
        /// <returns></returns>
        private List <KeyValuePair <string, int> > DictionaryToListKeyValuePair(Dictionary <string, string>[] dicArray)
        {
            List <KeyValuePair <string, int> > listresult = new List <KeyValuePair <string, int> >();

            foreach (Dictionary <string, string> dic in dicArray)
            {
                List <string> keyList = new List <string>(dic.Keys);
                KeyValuePair <string, int> keyvalue = new KeyValuePair <string, int>(dic[keyList[0]], CommonConverter.StringToInt(dic[keyList[1]]));
                listresult.Add(keyvalue);
            }
            return(listresult);
        }
예제 #28
0
        /// <summary>
        /// 赋值操作
        /// </summary>
        /// <param name="control"></param>
        /// <param name="controlValue"></param>
        /// <param name="propertyName"></param>
        private static void SetValue(IControl control, object controlValue, string propertyName)
        {
            if (!object.Equals(controlValue, null))
            {
                switch (propertyName.ToLower())
                {
                case "d0":
                    if (controlValue is string)
                    {
                        //处理转义符的换行问题
                        controlValue = FormatSql(controlValue.ToString(), control);
                        controlValue = controlValue.ToString().Replace("#newline#", "\r\n");
                    }
                    control.SetD0(controlValue);
                    break;

                case "d1":
                    control.SetD1(CommonConverter.StringToInt(controlValue.ToString()));
                    break;

                case "d2":
                    control.SetD2(CommonConverter.StringToInt(controlValue.ToString()));
                    break;

                case "d3":
                    control.SetD3D4(CommonConverter.StringToInt(controlValue.ToString()), (int)(control as FrameworkElement).Margin.Left);
                    break;

                case "d4":
                    control.SetD3D4((int)(control as FrameworkElement).Margin.Top, CommonConverter.StringToInt(controlValue.ToString()));
                    break;

                case "d5":
                    control.SetD5(controlValue.ToString());
                    break;

                case "d6":
                    control.SetD6(controlValue.ToString());
                    break;

                case "d7":
                    control.SetD7(controlValue.ToString());
                    break;

                case "d15":
                    control.SetD15(controlValue.ToString());
                    break;

                case "d20":
                    control.SetD20(controlValue.ToString());
                    break;

                case "a0":
                    control.SetA0(string.Empty);
                    break;

                case "a1":
                    control.SetA1(controlValue.ToString());
                    break;

                //缓存事件
                case "a2":
                    control.SetA2(controlValue.ToString());
                    break;

                //最小化窗体的方法
                case "a4":
                    control.SetA4(controlValue.ToString());
                    break;

                //跳转页面方法
                case "a5":
                    control.SetA5(controlValue.ToString());
                    break;

                //对话框跳转页面方法
                case "a6":
                    control.SetA6(controlValue.ToString());
                    break;

                case "a7":
                    control.SetA7(string.Empty);
                    break;

                case "a8":
                    control.SetA8(controlValue.ToString());
                    break;

                //这里是默认调用的方法
                case "":
                    control.SetD0(controlValue);
                    break;

                default:
                    break;
                }
            }
        }