/// <summary>
        /// 保存到数据库
        /// </summary>
        bool SaveXmlToDB()
        {
            var item = this.xtnEvents.SelectedItem;

            if (null == item)
            {
                Wrapper.ShowDialog("请选择事件。");
                return(false);
            }
            if (null != _EventDesigner && item.ID.Equals(_EventDesigner.ContentID))
            {
                return(true);
            }
            cmd             = new CtrlPlatformCommandInfo();
            cmd.CommandName = ConstantCollection.CommandName_SaveEventDesigner;
            EventDesigner edi = new EventDesigner();

            edi.PageGuid        = IDesignFramework.GetCurrentXmlTemplate().BaseInfo.PageGUID;
            edi.ControlName     = _GetControlName();
            edi.EventName       = this.EventName;
            edi.ContentID       = item.ID;
            cmd.ParamCollection = edi.ToXElement();
            cmd.TempValue       = Wrapper.SetXmlValue("Save", "SaveXmlToDB");
            this.SendToService(cmd, this);
            return(true);
        }
        bool UpdateMetaDataInfo()
        {
            var fields = this.lboxFields.Tag as List <MetaDataColumnInfo>;

            if (null == fields || 0 == fields.Count)
            {
                Wrapper.ShowDialog("字符参数为空");
                return(false);
            }
            var          dt  = fields[0];
            MetaDataInfo mdi = new MetaDataInfo();

            //-->克隆出数据。
            mdi.Item          = fields.CloneList <MetaDataColumnInfo>();
            mdi.table_comment = dt.table_comment;
            mdi.table_name    = dt.table_name;
            mdi.table_type    = dt.table_type;
            foreach (var data in mdi.Item)
            {
                data.table_comment = string.Empty;
                data.table_name    = string.Empty;
                data.table_type    = string.Empty;
            }
            var xml = IDesignFramework.GetCurrentXmlTemplate();
            var ci  = IDesignFramework.GetControlInfoByControlName(this.CurrentSelectedControlName);

            if (null == ci)
            {
                Wrapper.ShowDialog("找不着控件信息。");
                return(false);
            }
            ci.MetaData   = ci.MetaData.IsNullOrEmpty() ? _TableName : ci.MetaData;
            ci.ColumnName = ci.ColumnName.IsNullOrEmpty() ? _SaveField : ci.ColumnName;

            ci.ControlDataSourceTableName = mdi.table_name;
            //-->判断tableName是否已经增加了
            MetaDataInfo old_mdi = IDesignFramework.GetMetaDataInfoByTableName(mdi.table_name);

            if (null == old_mdi)
            {
                xml.MetaDataItem.Add(mdi);
            }
            else
            {
                //-->判断列是否已经存在。
                foreach (var column in mdi.Item)
                {
                    var col = old_mdi.Item.Where(p => p.column_name.Equals(column.column_name)).GetFirst <MetaDataColumnInfo>();
                    if (null != col)
                    {
                        old_mdi.Item.Remove(col);
                    }
                    old_mdi.Item.Add(column);
                }
            }
            IDesignFramework.UpdateCurrentTemplate();
            return(true);
        }
Exemple #3
0
        /// <summary>
        ///
        /// </summary>
        /// <returns></returns>
        public bool CheckSave()
        {
            if (_CurrentSelectedGuid.IsNullOrEmpty())
            {
                Wrapper.ShowDialog("请选择要切换的窗体");
                return(false);
            }
            if (_CurrentSelectedGuid.Equals(_PageGuid))
            {
                Wrapper.ShowDialog("自己不能切换到自己,你是否要重置刷新一下页面的内容?是的话请设置页面刷新即可");
                return(false);
            }

            string eventName    = string.Format("{0}", CurrentApiSelector.Name);
            string _controlName = string.Format("{0}", this.EventControlName);
            var    xml          = IDesignFramework.GetCurrentXmlTemplate();

            if (null == xml.EventLinkItem)
            {
                xml.EventLinkItem = new List <EventLinkInfo>();
            }
            //-->事件
            var eli = xml.EventLinkItem.Where(p => p.ControlName == _controlName && p.EventName == EventName).GetFirst <EventLinkInfo>();

            if (null == eli)
            {
                eli = new EventLinkInfo();
                xml.EventLinkItem.Add(eli);
            }
            eli.ControlName = _controlName;
            eli.EventName   = this.EventName;
            if (null == eli.Item)
            {
                eli.Item = new List <ControlActivityInfo>();
            }
            //-->行为
            var cai = eli.Item.Where(p => p.ControlName.IsNotEmpty() &&
                                     p.ControlName.Equals(_controlName) &&
                                     p.EventName.IsNotEmpty() &&
                                     p.EventName.Equals(eventName)).GetFirst <ControlActivityInfo>();

            if (null == cai)
            {
                cai = new ControlActivityInfo();
                eli.Item.Add(cai);
            }
            //-->保存操作。
            cai.ActivityName = this.ActivityName;
            cai.ActivityType = this.ActivityType;
            cai.ControlName  = _controlName;
            cai.EventName    = eventName;
            var _guid = this.IDesignFramework.GetCurrentXmlTemplate().BaseInfo.PageGUID;

            cai.Description = "切换窗体" + _guid;
            cai.PageGuid    = string.Format("{0},{1}", _CurrentSelectedGuid, _guid);
            IDesignFramework.UpdateCurrentTemplate();
            return(true);
        }
Exemple #4
0
        /// <summary>
        /// 保存
        /// </summary>
        bool SaveOperator()
        {
            if (null == lb_Controls1Function.SelectedItem)
            {
                Wrapper.ShowDialog("方法名称1没有选择");
                return(false);
            }

            CtrlFuctionInfo cfi         = (lb_Controls1Function.SelectedItem as ListBoxItem).Tag as CtrlFuctionInfo;
            string          eventName   = string.Format("{0}", cfi.Name);
            string          controlName = string.Format("{0}", (lb_Controls1.SelectedItem as ListBoxItem).Content);

            var xml = IDesignFramework.GetCurrentXmlTemplate();

            if (null == xml.EventLinkItem)
            {
                xml.EventLinkItem = new List <EventLinkInfo>();
            }
            string _controlName = _GetControlName();
            //-->事件
            var eli = xml.EventLinkItem.Where(p => p.ControlName == _controlName && p.EventName == EventName).GetFirst <EventLinkInfo>();

            if (null == eli)
            {
                eli = new EventLinkInfo();
                xml.EventLinkItem.Add(eli);
            }
            eli.ControlName = _controlName;
            eli.EventName   = this.EventName;
            eli.Item        = new List <ControlActivityInfo>();
            //-->行为
            var cai = eli.Item.Where(p => p.ControlName.Equals(controlName) && p.EventName.Equals(eventName)).GetFirst <ControlActivityInfo>();

            if (null == cai)
            {
                cai = new ControlActivityInfo();
                eli.Item.Add(cai);
            }
            //-->保存操作。
            cai.ActivityName = this.ActivityName;
            cai.ActivityType = this.ActivityType;
            cai.ControlName  = controlName;
            cai.EventName    = eventName;
            cai.Description  = cfi.Description;
            cai.Param        = new List <ParamInfo>();
            foreach (var v in this.sp_Children.Children)
            {
                ParameterSelected select = v as ParameterSelected;
                if (null == select || null == select.ParamForamt)
                {
                    continue;
                }
                cai.Param.Add(select.ParamForamt);
            }
            IDesignFramework.UpdateCurrentTemplate();
            return(true);
        }
Exemple #5
0
        void lb_Controls1Function_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            sp_Children.Children.Clear();
            ListBoxItemExtend controls = lb_Controls1.SelectedItem as ListBoxItemExtend;
            var parameterItem          = controls.Tag as List <MetaDataColumnInfo>;

            if (null != parameterItem)
            {
                foreach (var v in parameterItem)
                {
                    ParameterSelected ps = new ParameterSelected();
                    ps.txtParamName.Text = string.Format("{0}【{1}】", v.column_name, v.column_comment);
                    ps.OrgMetaDataColumn = v;
                    ps.FieldName         = v.column_name;
                    ps.DeleteClick      += ps_DeleteClick;
                    ps.ModifyClick      += ps_ModifyClick;
                    sp_Children.Children.Add(ps);
                }
            }

            var ci = controls.ControlInfo;

            /******************************************************************************
             *
             * 控件的参数就是控件MetaData里的row信息,
             *
             * ControlDataSourceTable 所处在的 MetaData信息也要取出来。
             *
             * *****************************************************************************/
            if (!ci.ControlDataSourceTableName.IsNullOrEmpty())
            {
                var mdi = IDesignFramework.GetMetaDataInfoByTableName(ci.ControlDataSourceTableName);
                if (null != mdi && null != mdi.Item && 0 < mdi.Item.Count)
                {
                    Label lbl = new Label();
                    lbl.Height     = 2;
                    lbl.Background = new SolidColorBrush(Colors.Black);
                    sp_Children.Children.Add(lbl);
                    foreach (var item in mdi.Item)
                    {
                        ParameterSelected ps = new ParameterSelected();
                        ps.txtParamName.Text = string.Format("{0}【{1}】", item.column_name, item.column_comment);
                        ps.OrgMetaDataColumn = item;
                        ps.FieldName         = item.column_name;
                        ps.OrgIsDataSource   = true;
                        ps.DeleteClick      += ps_DeleteClick;
                        ps.ModifyClick      += ps_ModifyClick;
                        sp_Children.Children.Add(ps);
                    }
                }
            }
            if (sp_Children.Children.Count > 0)
            {
                _CurrentParamterSelected = sp_Children.Children[0] as ParameterSelected;
            }
        }
Exemple #6
0
        /// <summary>
        /// 弹出窗体
        /// </summary>
        /// <returns></returns>
        public bool CheckSave()
        {
            if (_PageGuid.IsNullOrEmpty())
            {
                Wrapper.ShowDialog("请选择要弹出的页面");
                return(false);
            }
            //-->判断是否是当前的页面?
            if (this.IDesignFramework.GetCurrentXmlTemplate().BaseInfo.PageGUID.Equals(_PageGuid))
            {
                Wrapper.ShowDialog("不能弹出当前页面,请选择其它弹出页面。");
                return(false);
            }

            string eventName    = string.Format("{0}", CurrentApiSelector.Name);
            string _controlName = string.Format("{0}", this.EventControlName);
            var    xml          = IDesignFramework.GetCurrentXmlTemplate();

            if (null == xml.EventLinkItem)
            {
                xml.EventLinkItem = new List <EventLinkInfo>();
            }
            //-->事件
            var eli = xml.EventLinkItem.Where(p => p.ControlName == _controlName && p.EventName == EventName).GetFirst <EventLinkInfo>();

            if (null == eli)
            {
                eli = new EventLinkInfo();
                xml.EventLinkItem.Add(eli);
            }
            eli.ControlName = _controlName;
            eli.EventName   = this.EventName;
            if (null == eli.Item)
            {
                eli.Item = new List <ControlActivityInfo>();
            }
            //-->行为
            var cai = eli.Item.Where(p => p.ControlName.Equals(_controlName) && p.EventName.Equals(eventName)).GetFirst <ControlActivityInfo>();

            if (null == cai)
            {
                cai = new ControlActivityInfo();
                eli.Item.Add(cai);
            }
            //-->保存操作。
            cai.ActivityName = this.ActivityName;
            cai.ActivityType = this.ActivityType;
            cai.ControlName  = _controlName;
            cai.EventName    = eventName;
            cai.Description  = "弹出窗体" + _PageGuid;
            cai.PageGuid     = _PageGuid;
            //-->参数,初始化弹出窗体的时候,要有参数

            IDesignFramework.UpdateCurrentTemplate();
            return(true);
        }
 void XtnCallFunSelector_Loaded(object sender, RoutedEventArgs e)
 {
     //-->显示标题
     lblSelectCtrl.Text = string.Format("【{0}】控件参数", EventControlName);
     //-->加载其它控件
     _xml = IDesignFramework.GetCurrentXmlTemplate();
     InitLoadingOtherCtrl(_xml);
     BindControlEvent(_xml);
     //-->
     ReappearParam(_xml);
 }
Exemple #8
0
        void CallFunctionSelectors_Loaded(object sender, RoutedEventArgs e)
        {
            //-->获取出所有控件的方法来,来至两个地方,第一个接口,第二是控件自己的方法
            var xml = IDesignFramework.GetCurrentXmlTemplate();

            InitLoadingControl(xml);
            //-----------------------------注册事件绑定---------------------------
            BindControlEvent(xml);
            //--------------------------------------------------------------------
            InitParameter(xml);
        }
        void LoadCtrlParam(ControlInfo ci, List <MetaDataColumnInfo> paramItem)
        {
            if (ci.MetaData.IsNotEmpty())
            {
                foreach (var v in paramItem)
                {
                    var ps = new ParameterSelected();
                    ps.txtParamName.Text = string.Format("{0}【{1}】", v.column_name, v.column_comment);
                    ps.OrgMetaDataColumn = v;
                    ps.FieldName         = v.column_name;
                    ps.DeleteClick      += ps_DeleteClick;
                    ps.ModifyClick      += ps_ModifyClick;
                    spCtrlParams.Children.Add(ps);
                }
            }

            /******************************************************************************
             *
             * 控件的参数就是控件MetaData里的row信息,
             *
             * ControlDataSourceTable 所处在的 MetaData信息也要取出来。
             *
             * *****************************************************************************/
            if (ci.ControlDataSourceTableName.IsNotEmpty())
            {
                var mdi = IDesignFramework.GetMetaDataInfoByTableName(ci.ControlDataSourceTableName);
                if (null != mdi && null != mdi.Item && 0 < mdi.Item.Count)
                {
                    Label lbl = new Label();
                    lbl.Height     = 2;
                    lbl.Background = new SolidColorBrush(Colors.Black);
                    spCtrlParams.Children.Add(lbl);
                    foreach (var item in mdi.Item)
                    {
                        ParameterSelected ps = new ParameterSelected();
                        ps.txtParamName.Text = string.Format("{0}【{1}】", item.column_name, item.column_comment);
                        ps.OrgMetaDataColumn = item;
                        ps.FieldName         = item.column_name;
                        ps.OrgIsDataSource   = true;
                        ps.DeleteClick      += ps_DeleteClick;
                        ps.ModifyClick      += ps_ModifyClick;
                        spCtrlParams.Children.Add(ps);
                    }
                }
            }
        }
        /// <summary>
        ///
        /// </summary>
        /// <returns></returns>
        public bool CheckSave()
        {
            string eventName    = string.Format("{0}", CurrentApiSelector.Name);
            string _controlName = string.Format("{0}", this.EventControlName);
            var    xml          = IDesignFramework.GetCurrentXmlTemplate();

            if (null == xml.EventLinkItem)
            {
                xml.EventLinkItem = new List <EventLinkInfo>();
            }
            //-->事件
            var eli = xml.EventLinkItem.Where(p => p.ControlName == _controlName && p.EventName == EventName).GetFirst <EventLinkInfo>();

            if (null == eli)
            {
                eli = new EventLinkInfo();
                xml.EventLinkItem.Add(eli);
            }
            eli.ControlName = _controlName;
            eli.EventName   = this.EventName;
            if (null == eli.Item)
            {
                eli.Item = new List <ControlActivityInfo>();
            }
            //-->行为
            var cai = eli.Item.Where(p => p.ControlName.Equals(_controlName) && p.EventName.Equals(eventName)).GetFirst <ControlActivityInfo>();

            if (null == cai)
            {
                cai = new ControlActivityInfo();
                eli.Item.Add(cai);
            }
            //-->保存操作。
            cai.ActivityName = this.ActivityName;
            cai.ActivityType = this.ActivityType;
            cai.ControlName  = _controlName;
            cai.EventName    = eventName;
            var _guid = this.IDesignFramework.GetCurrentXmlTemplate().BaseInfo.PageGUID;

            cai.Description = "关闭窗体" + _guid;
            cai.PageGuid    = _guid;
            //-->参数,初始化弹出窗体的时候,要有参数

            IDesignFramework.UpdateCurrentTemplate();
            return(true);
        }
        void GetTextBoxValue()
        {
            var _xml = IDesignFramework.GetCurrentXmlTemplate();
            var eli  = _xml.EventLinkItem.Where(
                p => p.ControlName.Equals((ParentControl as FrameworkElement).Name) &&
                p.EventName.Equals(MethodName)).GetFirst <EventLinkInfo>();

            if (null != eli && 0 < eli.Item.Count)
            {
                var _eventItem = from p in eli.Item
                                 select p.Description.IsNullOrEmpty() ? p.EventName : p.Description;

                string _value      = string.Join(",", _eventItem);
                string _messageTip = string.Format("[{0}]调用[{1}]方法;{2}", MethodName, _eventItem.Count(), _value);

                LoadInitValue(_value, _messageTip);
            }
        }
        void UpdateDesignPage()
        {
            string eventName   = string.Format("{0}", CurrentApiSelector.Name);
            string controlName = string.Format("{0}", this.EventControlName);

            //-->保存操作。
            _CurrentActivityInfo.ActivityName = this.ActivityName;
            _CurrentActivityInfo.ActivityType = this.ActivityType;
            _CurrentActivityInfo.ControlName  = controlName;
            _CurrentActivityInfo.EventName    = eventName;
            _CurrentActivityInfo.Description  = CurrentApiSelector.Description;
            _CurrentActivityInfo.Param        = new List <ParamInfo>();
            foreach (var v in _DictResult)
            {
                string[]  arrayItem = v.Key.Split('|');
                ParamInfo pi        = new ParamInfo();
                pi.TargetCtrlName  = arrayItem[0];
                pi.TargetFieldName = arrayItem[1];
                pi.TargetFieldType = v.Value;

                _CurrentActivityInfo.Param.Add(pi);
            }
            if (0 <= _CurrentActivityInfoIndex)
            {
                _CurrentControlEventInfo.Item.RemoveAt(_CurrentActivityInfoIndex);
            }
            else
            {
                _CurrentActivityInfoIndex = 0;
            }
            _CurrentControlEventInfo.Item.Add(_CurrentActivityInfo);
            if (0 <= _CurrentControlEventIndex)
            {
                _XmlTemplate_Source.EventLinkItem.RemoveAt(_CurrentControlEventIndex);
            }
            else
            {
                _CurrentActivityInfoIndex = 0;
            }
            _XmlTemplate_Source.EventLinkItem.Add(_CurrentControlEventInfo);

            IDesignFramework.GetCurrentXmlTemplate().EventLinkItem = _XmlTemplate_Source.EventLinkItem;
            IDesignFramework.UpdateCurrentTemplate();
        }
Exemple #13
0
        void UpdateDesignPage()
        {
            string eventName   = string.Format("{0}", CurrentApiSelector.Name);
            string controlName = string.Format("{0}", ct.SelectedControlInfo.Name);

            //-->保存操作。
            _CurrentActivityInfo.ActivityName = this.ActivityName;
            _CurrentActivityInfo.ActivityType = this.ActivityType;
            _CurrentActivityInfo.ControlName  = controlName;
            _CurrentActivityInfo.EventName    = eventName;
            _CurrentActivityInfo.Description  = CurrentApiSelector.Description;
            _CurrentActivityInfo.Param        = new List <ParamInfo>();
            foreach (var v in this.sp_Children.Children)
            {
                ParameterSelected select = v as ParameterSelected;
                if (null == select || null == select.ParamForamt)
                {
                    continue;
                }
                _CurrentActivityInfo.Param.Add(select.ParamForamt);
            }
            if (0 <= _CurrentActivityInfoIndex)
            {
                _CurrentControlEventInfo.Item.RemoveAt(_CurrentActivityInfoIndex);
            }
            else
            {
                _CurrentActivityInfoIndex = 0;
            }
            _CurrentControlEventInfo.Item.Add(_CurrentActivityInfo);
            if (0 <= _CurrentControlEventIndex)
            {
                _XmlTemplate.EventLinkItem.RemoveAt(_CurrentControlEventIndex);
            }
            else
            {
                _CurrentControlEventIndex = 0;
            }
            _XmlTemplate.EventLinkItem.Add(_CurrentControlEventInfo);

            IDesignFramework.GetCurrentXmlTemplate().EventLinkItem = _XmlTemplate.EventLinkItem;
            IDesignFramework.UpdateCurrentTemplate();
        }
        /// <summary>
        /// 查检是否保存
        /// </summary>
        public bool CheckSave()
        {
            if (null == _CurrentDataTable)
            {
                Wrapper.ShowDialog("请选择绑定的表。");
                return(false);
            }
            //-->给控件属性赋值
            //-->判断是否选择了。如果没有选择的话,就不要这条记录
            var dt = _CurrentDataTable[0];
            //-->xml 控件信息设置
            var xml = IDesignFramework.GetCurrentXmlTemplate();
            var ci  = IDesignFramework.GetControlInfoByControlName(this.CurrentSelectedControlName);

            if (null != ci)
            {
                ci.MetaData   = dt.table_name;
                ci.ColumnName = string.Join("|", from p in _CurrentDataTable
                                            where p.IsChoose == true
                                            select p.column_name);
                //ci.ControlDataSourceTableName = dt.table_name;
            }
            //-->xaml  控件属性
            var columns = from p in _CurrentDataTable
                          where p.IsChoose == true
                          select string.Format("{0}{1}{2}{1}{4}",
                                               p.column_comment, ConstantCollection.Separator_Wavy_line,
                                               p.column_name, ConstantCollection.Separator_Wavy_line,
                                               p.data_type);

            string fields = string.Join(",", columns);
            string result = string.Format("{0}{1}{2}", dt.table_name, ConstantCollection.Separator_Sub_section_number, fields);

            //foreach (var data in _CurrentDataTable)
            //{
            //    data.IsChoose = false;
            //    data.IsHide = false;
            //}
            AddTableToXml(xml, _CurrentDataTable);
            IDesignFramework.UpdateCurrentTemplate();
            _EvaluationContent = new XElement("DataSource", result);
            return(true);
        }
        void AddPropertyToStackPanel(List <EventInfoAttribute> item)
        {
            double height = ConstantCollection.HEIGHT;

            string controlName = string.Format("{0}", this._ReadUIElement.GetValue(Canvas.NameProperty));

            if (controlName.Length > 4 && controlName.Substring(0, 4).Equals("Form"))
            {
                controlName = "Form";
            }
            var _xml = IDesignFramework.GetCurrentXmlTemplate();

            foreach (var v in item)
            {
                PropertyGridEventBindCtrl pgec = new PropertyGridEventBindCtrl();
                pgec.Name     = string.Format("pgec_{0}", v.Name);
                pgec.ShowName = v.Description;
                pgec.Height   = height;
                pgec.AssemblyQualifiedName      = v.AssemblyQualifiedName;
                pgec.MethodName                 = v.Name;
                pgec.ParentControl              = _ReadUIElement;
                pgec.IDesignFramework           = this.IDesignFramework;
                pgec.LostFocus                 += new RoutedEventHandler(pgec_LostFocus);
                pgec.AttributeInfo              = v;
                pgec.CurrentSelectedControlName = this.CurrentSelectedControlName;

                var eli = _xml.EventLinkItem.Where(
                    p => p.ControlName.Equals(controlName) &&
                    p.EventName.Equals(pgec.MethodName)).GetFirst <EventLinkInfo>();
                if (null != eli && 0 < eli.Item.Count)
                {
                    var _eventItem = from p in eli.Item
                                     select p.Description.IsNullOrEmpty() ? p.EventName : p.Description;

                    string _value      = string.Join(",", _eventItem);
                    string _messageTip = string.Format("[{0}]调用[{1}]方法;{2}", pgec.MethodName, _eventItem.Count(), _value);

                    pgec.LoadInitValue(_value, _messageTip);
                }
                spPValue.Children.Add(pgec);
            }
        }
        /// <summary>
        /// 增加控件绑定事件
        /// </summary>
        void AddCtrlBindEvent(XmlTemplate xml)
        {
            var _cc = ParseControlConfig.GetControlConfig(CurrentSelectedSetEventControl.GetType().Name);
            var _be = _cc.Events.Where(p => p.Name.Equals(this.EventName)).GetFirst <BindEvent>();

            EventBindInfo _ebi = new EventBindInfo();

            _ebi.ControlName = this.EventControlName;
            _ebi.Item        = new List <CtrlBindEventInfo>();

            CtrlBindEventInfo _cbei = new CtrlBindEventInfo();

            _cbei.EventName        = this.EventName;
            _cbei.AssemblyName     = _be.AssemblyName;
            _cbei.BindFunctionName = _be.BindFunctionName;
            _ebi.Item.Add(_cbei);

            xml.EventBindItem.Add(_ebi);
            IDesignFramework.UpdateCurrentTemplate();
        }
Exemple #17
0
        void tv_MetaData_SelectedItemChanged(object sender, RoutedPropertyChangedEventArgs <object> e)
        {
            var tv     = sender as TreeView;
            var item   = tv.SelectedItem as TreeViewItem;
            var column = item.Tag as MetaDataColumnInfo;

            if (null == column)
            {
                Wrapper.ShowDialog("请选择一张表的字段。");
                return;
            }

            var ci = IDesignFramework.GetControlInfoByControlName(CurrentSelectedControlName);

            ci.ColumnName = column.column_name;
            ci.Comment    = column.column_comment;
            ci.MetaData   = ((tv.GetParentItem(tv.SelectedItem) as TreeViewItem).Tag as MetaDataInfo).table_name;

            EvaluationContent = new XElement("DataSource", string.Format("{0}|{1}|{2}", ci.MetaData, ci.ColumnName, ci.Comment));
            IDesignFramework.UpdateCurrentTemplate();
        }
Exemple #18
0
        void InitParameter()
        {
            //-->获取出所有控件的方法来,来至两个地方,第一个接口,第二是控件自己的方法
            _XmlTemplate = IDesignFramework.GetCurrentXmlTemplate();
            string _controlName = Wrapper.ParseControlName(EventControlName);

            _CurrentControlEventInfo = _XmlTemplate.EventLinkItem.Where(p => p.ControlName == _controlName && p.EventName == EventName).GetFirst <EventLinkInfo>();
            if (null != _CurrentControlEventInfo)
            {
                _CurrentControlEventIndex = _XmlTemplate.EventLinkItem.IndexOf(_CurrentControlEventInfo);
                _CurrentActivityInfo      = _CurrentControlEventInfo.Item.Where(p => p.ActivityName == this.ActivityName).GetFirst <ControlActivityInfo>();
                if (null == _CurrentActivityInfo)
                {
                    _CurrentActivityInfo       = new ControlActivityInfo();
                    _CurrentActivityInfo.Param = new List <ParamInfo>();
                }
                else
                {
                    _CurrentActivityInfoIndex = _CurrentControlEventInfo.Item.IndexOf(_CurrentActivityInfo);
                    //-->1、初始化界面信息
                    if (null == _CurrentActivityInfo.Param || 0 == _CurrentActivityInfo.Param.Count)
                    {
                        _CurrentActivityInfo.Param = new List <ParamInfo>();
                        return;
                    }
                    //-->获取出是哪个控件。
                    ct.SetSelectionControl(_CurrentActivityInfo.ControlName);
                }//End if;
            }
            else
            {
                _CurrentControlEventInfo             = new EventLinkInfo();
                _CurrentControlEventInfo.EventName   = this.EventName;
                _CurrentControlEventInfo.ControlName = _controlName;
                _CurrentControlEventInfo.Item        = new List <ControlActivityInfo>();

                _CurrentActivityInfo       = new ControlActivityInfo();
                _CurrentActivityInfo.Param = new List <ParamInfo>();
            }
        }
Exemple #19
0
        void SetParameterSelectedValue(ParameterSelected ps, ParamInfo pi)
        {
            var _target_ci = IDesignFramework.GetControlInfoByControlName(pi.TargetCtrlName);

            if (null == _target_ci)
            {
                return;
            }
            var _target_mdi = IDesignFramework.GetMetaDataInfoByTableName(_target_ci.MetaData);

            if (null == _target_mdi)
            {
                return;
            }
            var _target_mdc = _target_mdi.Item.Where(p => p.column_name.Equals(pi.TargetFieldName)).GetFirst <MetaDataColumnInfo>();

            if (null == _target_mdc)
            {
                return;
            }
            ps.InitLoadValue = pi;
            ps.Text          = _target_mdc.column_comment;
        }
Exemple #20
0
        /// <summary>
        /// 方法
        /// </summary>
        /// <param name="ui"></param>
        internal void ReadFunctions(UIElement ui)
        {
            spPValue.Children.Clear();
            DisposePValue();
            _ReadUIElement = ui;
            if (null == ui)
            {
                return;
            }
            var cc = ParseControlConfig.GetControlConfig(ui.GetType().Name);

            if (null == cc)
            {
                return;
            }
            //-->如果是Form里的子控件话吧,还得把Form里的函数取出来。
            string controlName = string.Format("{0}", this._ReadUIElement.GetValue(Canvas.NameProperty));

            var _xml = IDesignFramework.GetCurrentXmlTemplate();

            AddFunctionToStackPanel(controlName, cc.Functions, _xml);

            string _newControlName = Wrapper.ParseControlName(controlName);

            if (_newControlName.Equals(controlName))
            {
                return;
            }
            //-->说明此控件是Form控件里的一个子项
            var _formCC = ParseControlConfig.GetControlConfig(ConstantCollection.FORM_PREFIX);

            if (null == _formCC || null == _formCC.Functions || 0 == _formCC.Functions.Count)
            {
                return;
            }
            AddFunctionToStackPanel(_newControlName, _formCC.Functions, _xml);
        }
Exemple #21
0
        /// <summary>
        /// 获取控件参数
        /// </summary>
        /// <param name="xml"></param>
        /// <param name="MetaData"></param>
        /// <param name="ColumnName"></param>
        /// <returns></returns>
        List <MetaDataColumnInfo> _GetControlParameter(XmlTemplate xml, string MetaData, string ColumnName)
        {
            if (MetaData.IsNullOrEmpty() || ColumnName.IsNullOrEmpty())
            {
                return(null);
            }
            //-->查找 metadata 里 row里的信息
            var mdis = IDesignFramework.GetMetaDataInfoByTableName(MetaData);

            if (null == mdis)
            {
                return(null);
            }
            var items = ColumnName.Split('|');

            if (1 < items.Length)
            {
                List <MetaDataColumnInfo> datas = new List <MetaDataColumnInfo>();
                foreach (var field in items)
                {
                    foreach (var mdci in mdis.Item)
                    {
                        if (mdci.column_name.Equals(field))
                        {
                            datas.Add(mdci);
                            break;
                        }
                    }
                }
                return(datas);
            }
            else
            {
                return(mdis.Item.Where(p => p.column_name.Equals(ColumnName)).GetTList <MetaDataColumnInfo>());
            }
        }
Exemple #22
0
        List <MetaDataColumnInfo> _GetControlParameter(string MetaData, string ColumnName)
        {
            if (MetaData.IsNullOrEmpty() || ColumnName.IsNullOrEmpty())
            {
                return(null);
            }
            //-->查找 metadata 里 row里的信息
            var row = IDesignFramework.GetMetaDataInfoByTableName(MetaData);

            if (null == row)
            {
                return(null);
            }
            var items = ColumnName.Split('|');

            if (1 < items.Length)
            {
                List <MetaDataColumnInfo> columns = new List <MetaDataColumnInfo>();
                foreach (var item in items)
                {
                    foreach (var column in row.Item)
                    {
                        if (column.column_name.Equals(item))
                        {
                            columns.Add(column);
                            break;
                        }
                    }
                }
                return(columns);
            }
            else
            {
                return(row.Item.Where(p => p.column_name.Equals(ColumnName)).GetTList <MetaDataColumnInfo>());
            }
        }
        /// <summary>
        /// 加载控件事件设置器
        /// </summary>
        void LoadingControlEventDesinger()
        {
            cmd             = new CtrlPlatformCommandInfo();
            cmd.CommandName = ConstantCollection.CommandName_MixedCommand;
            string sql = string.Format("select t.* from EventDesigner t where t.PageGuid = '{0}' ", IDesignFramework.GetCurrentXmlTemplate().BaseInfo.PageGUID);

            sql        += string.Format(" and t.ControlName = '{0}' ", _GetControlName());
            sql        += string.Format(" and t.EventName = '{0}'", this.EventName);
            cmd.ExecSql = new List <CtrlExecSQLCmd>();
            var exec = new CtrlExecSQLCmd(CtrlExecSqlCmdType.Query, sql, "EventDesigner", this.Name, "LoadingControlEventDesinger");

            cmd.ExecSql.Add(exec);
            cmd.TempValue = Wrapper.SetXmlValue("Query", "LoadingControlEventDesinger");
            this.SendToService(cmd, this);
        }
        bool UpdateXml()
        {
            if (null == metadata_username)
            {
                Wrapper.ShowDialog("请选择要关联的用户名字段!");
                return(false);
            }
            if (null == metadata_password)
            {
                Wrapper.ShowDialog("请选择要关联的密码字段!");
                return(false);
            }

            var fields = xtnTableField.Fields;

            if (null == fields || 0 == fields.Count)
            {
                Wrapper.ShowDialog("字符参数为空");
                return(false);
            }
            var dt  = fields[0];
            var mdi = new MetaDataInfo();

            //-->克隆出数据。
            mdi.Item          = fields.CloneList <MetaDataColumnInfo>();
            mdi.table_comment = dt.table_comment;
            mdi.table_name    = dt.table_name;
            mdi.table_type    = dt.table_type;
            foreach (var data in mdi.Item)
            {
                data.table_comment = string.Empty;
                data.table_name    = string.Empty;
                data.table_type    = string.Empty;
            }
            var xml = IDesignFramework.GetCurrentXmlTemplate();
            var ci  = IDesignFramework.GetControlInfoByControlName(this.CurrentSelectedControlName);

            if (null == ci)
            {
                Wrapper.ShowDialog("找不着控件信息。");
                return(false);
            }

            ci.MetaData   = ci.MetaData.IsNullOrEmpty() ? _TableName : ci.MetaData;
            ci.ColumnName = string.Format("{0}|{1}", _UserField, _PasswordField);

            ci.ControlDataSourceTableName = mdi.table_name;
            //-->判断tableName是否已经增加了
            var old_mdi = IDesignFramework.GetMetaDataInfoByTableName(mdi.table_name);

            if (null == old_mdi)
            {
                xml.MetaDataItem.Add(mdi);
            }
            IDesignFramework.UpdateCurrentTemplate();

            string value = string.Format("{0}|{1}|{2}", this.xtnTableField.TableName, _UserField, _PasswordField);

            _EvaluationContent = new XElement("DataAssociated", value);

            return(true);
        }