Esempio n. 1
0
        /// <summary>
        /// 生成表单文件
        /// </summary>
        /// <param name="formDesignerWorkbenchWindow"></param>
        /// <param name="FilePath"></param>
        /// <returns></returns>
        //public bool Execute(FormDesignerWorkbenchWindow formDesignerWorkbenchWindow, out string xmlString)
        //{
        //    bool isCheckerok = true;
        //    xmlString = string.Empty;
        //    try
        //    {
        //        List<object> list = new List<object>();
        //        list.Add(formDesignerWorkbenchWindow.formValidatesCollection);
        //        //list.Add(formDesignerWorkbenchWindow.dataDefineResource);
        //        list.Add(formDesignerWorkbenchWindow.formDataCollection);
        //        list.Add(formDesignerWorkbenchWindow.formRightsCollection);
        //        BuildRuleChecker.CheckReference(formDesignerWorkbenchWindow);
        //        string message = string.Empty;
        //        if (isCheckerok)
        //        {
        //            xmlString = DistFormXmlBuilder.BuildXml(list,formDesignerWorkbenchWindow,
        //                formDesignerWorkbenchWindow.SheetLayoutXML);
        //        }
        //    }
        //    catch(Exception E)
        //    {
        //        isCheckerok = false;
        //        MessageBox.Show(E.Message);
        //    }
        //    return isCheckerok;
        //}

        /// <summary>
        /// 读取单个表单文件
        /// </summary>
        /// <param name="dockFormDesigner"></param>
        /// <param name="filePath"></param>
        public void ResetXml(DockFormDesigner dockFormDesigner, string fileContent)
        {
            #region
            //控件
            FormXmlParser formXmlParser = new FormXmlParser(fileContent, true);
            PageProperty.IsPrint = formXmlParser.GetPrintProperty("/Form", "isprint");

            Dictionary <string, string> dic = new Dictionary <string, string>();
            ControlCollection           controlCollection = formXmlParser.GetControls(dockFormDesigner, "/Form/Control", out dic);

            string width, height;
            dic.TryGetValue("width", out width);
            dic.TryGetValue("height", out height);
            FormProvoider.SetFormViewSize(Convert.ToInt32(width), Convert.ToInt32(height));

            foreach (KeyValuePair <string, object> kvp in controlCollection)
            {
                #region FormItemType == 5
                if (((GeneralAttribute)kvp.Value).FormItemType == 5)
                {
                    FormProvoider.Rect rcRect = new FormProvoider.Rect();
                    SetRect(out rcRect, (GeneralAttribute)kvp.Value);
                    FormProvoider.CreateFormItem(Convert.ToInt32(((GeneralAttribute)kvp.Value).FormItemType),
                                                 rcRect, Convert.ToInt32(kvp.Key), ((GeneralAttribute)kvp.Value).ExtensionType);

                    TableContorlAttribute tableContorlAttribute = (TableContorlAttribute)kvp.Value;
                    int page = 0;
                    foreach (KeyValuePair <string, Group> kvpGroup in tableContorlAttribute.Groups)
                    {
                        FormProvoider.InsertTabPage(((GeneralAttribute)kvp.Value).FormItemId, kvpGroup.Value.Name, page);

                        foreach (KeyValuePair <string, GeneralAttribute> kvpChildAttribute in kvpGroup.Value.GroupControls)
                        {
                            FormProvoider.Rect rcRectChild = new FormProvoider.Rect();
                            SetRect(out rcRectChild, (GeneralAttribute)kvpChildAttribute.Value);
                            FormProvoider.CreateChlidFormItem(kvpChildAttribute.Value.FormItemType, rcRectChild, Convert.ToInt32(kvpChildAttribute.Key),
                                                              Convert.ToInt32(kvp.Key), page, ((GeneralAttribute)kvpChildAttribute.Value).ExtensionType);
                            if (((GeneralAttribute)kvpChildAttribute.Value).Multiline == true && ((GeneralAttribute)kvpChildAttribute.Value).FormItemType == 1)
                            {
                                FormProvoider.SetFormItemStyle(Convert.ToInt32(kvpChildAttribute.Key), 0x00010000, true);//0x00010000
                            }
                            if (((GeneralAttribute)kvpChildAttribute.Value).FormItemType == 7)
                            {
                                //SetDataGrid(formDesignerWorkbenchWindow, kvpChildAttribute.Key, kvpChildAttribute.Value);
                            }
                            if (((GeneralAttribute)kvpChildAttribute.Value).FormItemType == 20)
                            {
                                SetRadioButtonList(kvpChildAttribute.Value);
                            }
                            if (((GeneralAttribute)kvpChildAttribute.Value).FormItemType == 4 ||
                                ((GeneralAttribute)kvpChildAttribute.Value).FormItemType == 15 ||
                                ((GeneralAttribute)kvpChildAttribute.Value).FormItemType == 3 ||
                                ((GeneralAttribute)kvpChildAttribute.Value).FormItemType == 6)
                            {
                                FormProvoider.SetStaticText(Convert.ToInt32(kvpChildAttribute.Key), kvpChildAttribute.Value.Text);
                            }
                            if (((GeneralAttribute)kvpChildAttribute.Value).FormItemType == 4)
                            {
                                FormProvoider.FontWnd font = new FormProvoider.FontWnd();
                                font.itemName = ((GeneralAttribute)kvpChildAttribute.Value).WindowTextFont.FontFamily.Name;
                                font.ftSize   = Convert.ToInt32(((GeneralAttribute)kvpChildAttribute.Value).WindowTextFont.Size);
                                font.ftStyle  = GeneralAttribute.GetFontStyle(((GeneralAttribute)kvpChildAttribute.Value).WindowTextFont);
                                FormProvoider.SetFormItemFont(((GeneralAttribute)kvpChildAttribute.Value).FormItemId, font);
                                FormProvoider.SetFormItemStyle(((GeneralAttribute)kvpChildAttribute.Value).FormItemId, 0x00800000, ((GeneralAttribute)kvpChildAttribute.Value).Border);
                            }
                        }
                        page++;
                    }
                }
                #endregion
                else if (((GeneralAttribute)kvp.Value).FormItemType == 7)
                {
                    FormProvoider.Rect rcRect = new FormProvoider.Rect();
                    SetRect(out rcRect, (GeneralAttribute)kvp.Value);
                    FormProvoider.CreateFormItem(Convert.ToInt32(((GeneralAttribute)kvp.Value).FormItemType),
                                                 rcRect, Convert.ToInt32(kvp.Key), ((GeneralAttribute)kvp.Value).ExtensionType);
                    //SetDataGrid(formDesignerWorkbenchWindow, kvp.Key, kvp.Value);
                }
                else if (((GeneralAttribute)kvp.Value).FormItemType == 20)
                {
                    FormProvoider.Rect rcRect = new FormProvoider.Rect();
                    SetRect(out rcRect, (GeneralAttribute)kvp.Value);
                    FormProvoider.CreateFormItem(Convert.ToInt32(((GeneralAttribute)kvp.Value).FormItemType),
                                                 rcRect, Convert.ToInt32(kvp.Key), ((GeneralAttribute)kvp.Value).ExtensionType);
                    SetRadioButtonList(kvp.Value);
                }
                else if (((GeneralAttribute)kvp.Value).FormItemType == 255)//直线
                {
                    FormProvoider.Rect rcRect = new FormProvoider.Rect();
                    SetRect(out rcRect, (GeneralAttribute)kvp.Value);
                    FormProvoider.CreateFormItem(Convert.ToInt32(((GeneralAttribute)kvp.Value).FormItemType),
                                                 rcRect, Convert.ToInt32(kvp.Key), ((GeneralAttribute)kvp.Value).ExtensionType);
                }
                else
                {
                    FormProvoider.Rect rcRect = new FormProvoider.Rect();
                    SetRect(out rcRect, (GeneralAttribute)kvp.Value);
                    FormProvoider.CreateFormItem(Convert.ToInt32(((GeneralAttribute)kvp.Value).FormItemType),
                                                 rcRect, Convert.ToInt32(kvp.Key), ((GeneralAttribute)kvp.Value).ExtensionType);
                    if (((GeneralAttribute)kvp.Value).FormItemType == 1)
                    {
                        DockFormDesigner.controlIdItems.Add(kvp.Key);
                    }
                    else
                    {
                        FormProvoider.SetStaticText(Convert.ToInt32(kvp.Key), ((GeneralAttribute)kvp.Value).Text);
                    }
                    //Dap2xProvoider.SetFormItemStyle(((GeneralAttribute)kvp.Value).FormItemId, 0x00800000, false);

                    if (((GeneralAttribute)kvp.Value).FormItemType == 1 && ((GeneralAttribute)kvp.Value).Multiline == true)
                    {
                        FormProvoider.SetFormItemStyle(((GeneralAttribute)kvp.Value).FormItemId, 0x00010000, true);
                    }
                    else
                    {
                        FormProvoider.SetFormItemStyle(((GeneralAttribute)kvp.Value).FormItemId, 0x00010000, false);
                    }
                    if (((GeneralAttribute)kvp.Value).FormItemType == 4)
                    {
                        FormProvoider.FontWnd font = new FormProvoider.FontWnd();
                        font.itemName = ((GeneralAttribute)kvp.Value).WindowTextFont.FontFamily.Name;
                        font.ftSize   = Convert.ToInt32(((GeneralAttribute)kvp.Value).WindowTextFont.Size);
                        font.ftStyle  = GeneralAttribute.GetFontStyle(((GeneralAttribute)kvp.Value).WindowTextFont);
                        FormProvoider.SetFormItemFont(((GeneralAttribute)kvp.Value).FormItemId, font);
                        Color color = ((GeneralAttribute)kvp.Value).WindowTextColor;
                        FormProvoider.SetFormItemColor(((GeneralAttribute)kvp.Value).FormItemId, color.B << 16 | color.G << 8 | color.R);
                        //边框
                        FormProvoider.SetFormItemStyle(((GeneralAttribute)kvp.Value).FormItemId, 0x00800000, ((GeneralAttribute)kvp.Value).Border);
                    }
                }
            }
            #endregion

            //formDesignerWorkbenchWindow.formDataCollection = formDesignerWorkbenchWindow.FormParameter.FormDataCollection;
            //formDesignerWorkbenchWindow.formValidatesCollection = getObjectFromXml.GetFormValidatesCollection("/Form/Validation");//formValidatesCollection
            //formDesignerWorkbenchWindow.formRightsCollection = getObjectFromXml.GetFormRightsCollection("/Form/Right");//formRightsCollection
            ////zhanben20100919 新增表单脚本功能
            //formDesignerWorkbenchWindow.FormScriptString = getObjectFromXml.GetFormScriptString("/Form/Script");
        }
Esempio n. 2
0
        /// <summary>
        /// 获取控件信息集
        /// </summary>
        /// <param name="xPath"></param>
        /// <returns></returns>
        public ControlCollection GetControls(DockFormDesigner dockFormDesigner, string xPath, out Dictionary <string, string> panelProperty)
        {
            _dockFormDesigner = dockFormDesigner;
            ControlCollection controlCollection = new ControlCollection();
            XmlNode           contorlNodes      = formXmlParser.GetNode(xPath);

            panelProperty = new Dictionary <string, string>();
            //textBoxsType = new TextBoxsType();
            panelProperty.Add("width", contorlNodes.Attributes["width"].Value);
            panelProperty.Add("height", contorlNodes.Attributes["height"].Value);
            DockFormDesigner.controlDictionary.Clear();
            foreach (XmlNode xmlnode in contorlNodes)
            {
                GeneralAttribute generalAttribute = new GeneralAttribute();

                Int16 ItemType = 0;
                ItemType = Convert.ToInt16(ControlMapping.GetInstance().GetFormItemType(xmlnode.Name));

                switch (ItemType)
                {
                case 5:
                    #region ItemType=5
                    TableContorlAttribute tableContorlAttribute = new TableContorlAttribute();
                    BindGeneralAttribute(tableContorlAttribute, xmlnode, Convert.ToInt16(ControlMapping.GetInstance().GetFormItemType(xmlnode.Name)));
                    foreach (XmlNode groupNode in xmlnode)
                    {
                        Group group = new Group();
                        group.Name = groupNode.Attributes["name"].Value;
                        foreach (XmlNode childNode in groupNode)
                        {
                            Int16 ItemTypec;
                            //if (childNode.Name == "DateTimePicker")
                            //{
                            //    ItemTypec = 1;
                            //    textBoxsType.AddTextBox(childNode.Attributes["id"].Value);
                            //}
                            //else
                            ItemTypec = Convert.ToInt16(ControlMapping.GetInstance().GetFormItemType(childNode.Name));
                            switch (ItemTypec)
                            {
                            case 7:
                                DataGridControlAttribute DataGridControlAttribute = AppendGrid(childNode);
                                group.AddGroupControl(DataGridControlAttribute.ControlId, DataGridControlAttribute);
                                break;

                            case 20:
                                RadioButtonListAttribute rbtlist = AppendRadioButton(childNode);
                                group.AddGroupControl(rbtlist.ControlId, rbtlist);
                                break;

                            default:

                                GeneralAttribute childContrlAttribute = new GeneralAttribute();
                                BindGeneralAttribute(childContrlAttribute, childNode, ItemTypec);
                                group.AddGroupControl(childContrlAttribute.ControlId, childContrlAttribute);
                                break;
                            }
                        }
                        tableContorlAttribute.AddGroup(group.Name, group);
                    }
                    generalAttribute = tableContorlAttribute;
                    #endregion
                    break;

                case 7:
                    generalAttribute = AppendGrid(xmlnode);
                    break;

                case 20:
                    generalAttribute = AppendRadioButton(xmlnode);
                    break;

                default:
                    BindGeneralAttribute(generalAttribute, xmlnode, ItemType);
                    break;
                }
                controlCollection.Add(xmlnode.Attributes["id"].Value, generalAttribute);
            }
            return(controlCollection);
        }