Esempio n. 1
0
 /// <summary>
 /// 设置控件元素的形状参数
 /// </summary>
 /// <param name="rcRect"></param>
 /// <param name="GenerAttribute"></param>
 private void SetRect(out FormProvoider.Rect rcRect, GeneralAttribute GenerAttribute)
 {
     rcRect.left   = GenerAttribute.Left;
     rcRect.right  = GenerAttribute.Left + GenerAttribute.Width;
     rcRect.top    = GenerAttribute.Top;
     rcRect.bottom = GenerAttribute.Top + GenerAttribute.Height;
 }
Esempio n. 2
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");
        }