Example #1
0
        //获取二维数组的字段信息
        private List <List <ExtControlBase> > GetFieldsRows(Dictionary <int, SortedList <int, PbBaseControlInfo> > dic, FieldSet fset, TableLayoutForm lForm)
        {
            List <List <ExtControlBase> > fieldRows = new List <List <ExtControlBase> >();
            ExtControlBase extControl = null;

            foreach (var item in dic)
            {
                List <ExtControlBase> list = new List <ExtControlBase>();

                foreach (var control in item.Value)
                {
                    extControl = ControlConverter.ConvertToExtControl(control.Value);
                    list.Add(extControl);

                    if (fset != null)
                    {
                        fset.AllFields.Add(extControl);
                    }
                    if (lForm != null)
                    {
                        lForm.AllFields.Add(extControl);
                    }
                }

                if (list.Count > 0)
                {
                    fieldRows.Add(list);
                }
            }

            return(fieldRows);
        }
Example #2
0
        //groupbox转fieldset,没有groupbox转ngFormPanel
        private void SetContainer(PbBillInfo billInfo)
        {
            //含有groupbox表头
            if (billInfo.HeadInfo.PbBaseControlInfos.Count > 0)
            {
                //将容器都先放入containers
                foreach (var headinfo in billInfo.HeadInfo.PbBaseControlInfos)
                {
                    AppFieldSet fieldSet = new AppFieldSet();
                    fieldSet.X      = headinfo.XPos;
                    fieldSet.Y      = headinfo.YPos;
                    fieldSet.Width  = headinfo.Width;
                    fieldSet.Height = headinfo.Height;
                    fieldSet.ID     = headinfo.Id;
                    fieldSet.Title  = ((PbGroupboxInfo)(headinfo)).Text;
                    fieldSets.Add(fieldSet);
                }
            }

            foreach (var pbColumn in billInfo.HeadInfo.PbColumns)
            {
                //将控件放到指定的容器内
                FindContain(pbColumn, pbColumn.XPos, pbColumn.YPos);
            }

            //因为要赋值回去,所以不能foreach
            for (int i = 0; i < fieldSets.Count; i++)
            {
                Dictionary <int, SortedList <int, PbBaseControlInfo> > dic =
                    new Dictionary <int, SortedList <int, PbBaseControlInfo> >();
                fieldSets[i].Items = this.Sort(fieldSets[i].Items, ref dic);
            }


            for (int i = 0; i < fieldSets.Count; i++)
            {
                //转类型
                foreach (var item in fieldSets[i].Items)
                {
                    fieldSets[i].AllFields.Add(ControlConverter.ConvertToExtControl(item));
                }
            }
        }
Example #3
0
        public static List <ExtGridColumn> GetListColumns(IList <PbBaseTextInfo> pbcontrols)
        {
            SortedList <int, PbBaseControlInfo> list = new SortedList <int, PbBaseControlInfo>();
            List <ExtGridColumn> columns             = new List <ExtGridColumn>();

            foreach (PbBaseControlInfo item in pbcontrols)
            {
                if (list.ContainsKey(item.XPos))    //如果x坐标重复,则跳过 //0000000038 这里有重复的
                {
                    continue;
                }
                list.Add(item.XPos, item);//以x坐标排序
            }

            foreach (KeyValuePair <int, PbBaseControlInfo> element in list)
            {
                PbBaseTextInfo textInfo = element.Value as PbBaseTextInfo;
                if (textInfo != null)
                {
                    ExtGridColumn col = new ExtGridColumn();
                    col.Header    = textInfo.LeftText;
                    col.DataIndex = textInfo.Name;
                    col.Datatype  = SqlTypeConverter.ConvertToExtControl(textInfo.ColumnInfo.ColumnDataType);
                    ExtControlBase column = ControlConverter.ConvertToExtControl(textInfo); //转换下xtype的类型;
                    col.editor.XType = column.XType;
                    if (col.editor.XType == "ngRadio")
                    {
                        var temp = column as NGRadio;
                        col.editor.Items = temp.Items;
                    }
                    columns.Add(col);
                }
            }

            return(columns);
        }
Example #4
0
        //groupbox里面的fieldset
        public List <FieldSet> GetFieldSetInfo(PbBillInfo billInfo)
        {
            //含有groupbox表头
            if (billInfo.HeadInfo.PbBaseControlInfos.Count > 0)
            {
                //将容器都先放入containers
                foreach (var headinfo in billInfo.HeadInfo.PbBaseControlInfos)
                {
                    FieldSet fieldSet = new FieldSet();
                    fieldSet.X      = headinfo.XPos;
                    fieldSet.Y      = headinfo.YPos;
                    fieldSet.Width  = headinfo.Width;
                    fieldSet.Height = headinfo.Height;
                    fieldSet.ID     = headinfo.Id;
                    fieldSet.Title  = ((PbGroupboxInfo)(headinfo)).Text;
                    containers.Add(fieldSet);
                }
            }

            foreach (var pbColumn in billInfo.HeadInfo.PbColumns)
            {
                //将控件放到指定的容器内
                FindContain(pbColumn, pbColumn.XPos, pbColumn.YPos);
            }

            //因为要赋值回去,所以不能foreach
            for (int i = 0; i < containers.Count; i++)
            {
                Dictionary <int, SortedList <int, PbBaseControlInfo> > dic =
                    new Dictionary <int, SortedList <int, PbBaseControlInfo> >();
                containers[i].Items = this.Sort(containers[i].Items, ref dic);

                //计算该fieldset 每行最多的colspan
                //算占多少  //不能用ref 动态类
                containers[i] = CalColSpan(containers[i], dic);
            }

            //含有表体
            if (billInfo.PbGrids.Count > 0)
            {
                foreach (var gridpanel in billInfo.PbGrids)
                {
                    FindContain(gridpanel, gridpanel.XPos, gridpanel.YPos);
                }
            }

            //含有金格控件
            if (billInfo.OfficeInfo.Visible)
            {
                FieldSet fieldSet = new FieldSet();
                fieldSet.X      = billInfo.OfficeInfo.XPos;
                fieldSet.Y      = billInfo.OfficeInfo.YPos;
                fieldSet.Width  = billInfo.OfficeInfo.Width;
                fieldSet.Height = billInfo.OfficeInfo.Height;
                fieldSet.Title  = "金格控件";
                containers.Add(fieldSet);
            }

            //含有进度控件
            if (billInfo.ScheduleInfo.Visible)
            {
                FieldSet fieldSet = new FieldSet();
                fieldSet.X      = billInfo.ScheduleInfo.XPos;
                fieldSet.Y      = billInfo.ScheduleInfo.YPos;
                fieldSet.Width  = billInfo.ScheduleInfo.Width;
                fieldSet.Height = billInfo.ScheduleInfo.Height;
                fieldSet.Title  = "进度控件";
                containers.Add(fieldSet);
            }

            //为容器内的控件进行布局 region
            SetLayout();

            for (int i = 0; i < containers.Count; i++)
            {
                //转类型
                foreach (var item in containers[i].Items)
                {
                    if (item is PbGridInfo)
                    {
                        containers[i].Panels.Add(ControlConverter.ConvertToExtPanel((PbGridInfo)item));
                    }
                    else
                    {
                        containers[i].AllFields.Add(ControlConverter.ConvertToExtControl(item));
                    }
                    //PbBaseControlInfo pbcontrol = item;
                    // expressions.Add(()pbcontrol.);
                }
            }
            CommonParser.Log("GroupBox转换成功.");
            return(containers);
        }
Example #5
0
        public static List <ExtGridColumn> GetListColumns(IList <PbBaseTextInfo> pbcontrols)
        {
            SortedList <int, PbBaseControlInfo> list = new SortedList <int, PbBaseControlInfo>();
            List <ExtGridColumn> columns             = new List <ExtGridColumn>();

            foreach (PbBaseControlInfo item in pbcontrols)
            {
                if (list.ContainsKey(item.XPos))    //如果x坐标重复,则跳过 //0000000038 这里有重复的
                {
                    continue;
                }
                list.Add(item.XPos, item);//以x坐标排序
            }

            foreach (KeyValuePair <int, PbBaseControlInfo> element in list)
            {
                PbBaseTextInfo textInfo = element.Value as PbBaseTextInfo;

                if (textInfo != null)
                {
                    ExtGridColumn col = new ExtGridColumn();
                    if (textInfo.Name.Equals("t_sum"))
                    {
                        continue;
                    }
                    col.Header          = textInfo.LeftText;
                    col.DataIndex       = textInfo.Name;
                    col.Datatype        = SqlTypeConverter.ConvertToExtControl(textInfo.ColumnInfo.ColumnDataType);
                    col.DefaultValue    = textInfo.DefaultValue;
                    col.Width           = textInfo.Width;                                    //Grid每一列的宽度
                    col.RgbColor        = ControlConverter.GetRgb(textInfo.Color);           //grid列的字体颜色
                    col.BackgroundColor = ControlConverter.GetRgb(textInfo.backgroundColor); //grid列的背景颜色

                    ExtControlBase column = ControlConverter.ConvertToExtControl(textInfo);  //转换下xtype的类型;
                    col.Protect      = column.Protect;
                    col.MustInput    = column.MustInput;
                    col.Format       = column.Format;
                    col.EditMask     = column.EditMask;
                    col.editor.XType = column.XType;


                    if (col.editor.XType == "ngCustomFormHelp" || col.editor.XType == "ngRichHelp")
                    {
                        var temp = column as NGHelpBase;
                        if (temp.Helpid == "itemdata")
                        {
                            col.DataIndex            = "itemid";
                            col.Header               = "物资";
                            col.editor.ValueField    = "phid";
                            col.editor.DisplayField  = "itemname";
                            col.editor.ListFields    = "itemid,c_name,spec,msname";
                            col.editor.ListHeadTexts = "编码,名称,规格,单位";
                            col.editor.Helpid        = temp.Helpid;
                        }
                        else
                        {
                            col.editor.ValueField    = temp.ValueField;
                            col.editor.DisplayField  = temp.DisplayField;
                            col.editor.ListFields    = temp.ListFields;
                            col.editor.ListHeadTexts = temp.ListHeadTexts;
                            col.editor.CmpName       = temp.CmpName;
                            col.editor.OutFilter     = temp.OutFilter;
                            col.editor.Helpid        = temp.Helpid;
                            col.editor.MultiSelect   = temp.MultiSelect;
                        }
                    }
                    else if (col.editor.XType == "ngComboBox")
                    {
                        if (column is NGComboBox)
                        {
                            NGComboBox temp = column as NGComboBox;
                            col.editor.QueryMode = temp.QueryMode;
                            col.editor.Data      = temp.Data;
                        }
                        else if (column is NGCommonHelp)
                        {
                            NGCommonHelp temp = column as NGCommonHelp;
                            col.editor.QueryMode = temp.QueryMode;
                            col.editor.Data      = temp.Data;
                        }
                    }
                    else if (col.editor.XType == "ngRadio")
                    {
                        var temp = column as NGRadio;
                        col.editor.Items = temp.Items;
                    }

                    columns.Add(col);
                }
            }

            return(columns);
        }