Ejemplo n.º 1
0
        /// <summary>
        /// 将一列变成可绑定的多列  最大只有5大列
        /// </summary>
        /// <param name="printInCommonView"></param>
        private void ConvertForDuoLie(PrintInCommonView printInCommonView)
        {
            List <PrintInCommonItemView> printInCommonItemViewListOld = printInCommonView.PrintInCommonTabViewList1.PrintInCommonItemViewList;

            if (printInCommonItemViewListOld == null)
            {
                return;
            }
            Dictionary <string, string> dicstr = InCommonNoteBiz.GetReportxmlCol(printInCommonView);

            if (!dicstr.ContainsKey("maxCols"))
            {
                return;
            }
            string maxcols = dicstr["maxCols"]; //大列数
            int    maxcolsint;                  //大列
            bool   ismax = int.TryParse(maxcols, out maxcolsint);

            if (maxcolsint <= 1 || maxcolsint > 5)
            {
                return;
            }
            List <PrintInCommonItemView> printInCommonItemViewListNew = new List <PrintInCommonItemView>();

            for (int i = 0; i < printInCommonItemViewListOld.Count; i++)
            {
                int yushu = i % maxcolsint;
                if (yushu == 0)
                {
                    PrintInCommonItemView printInCommonItemView = new PrintInCommonItemView();
                    if (maxcolsint >= 5 &&
                        (i + 4 < printInCommonItemViewListOld.Count))
                    {
                        printInCommonItemView.PrintInCommonItemView5 = printInCommonItemViewListOld[i + 4];
                    }
                    if (maxcolsint >= 4 &&
                        (i + 3 < printInCommonItemViewListOld.Count))
                    {
                        printInCommonItemView.PrintInCommonItemView4 = printInCommonItemViewListOld[i + 3];
                    }
                    if (maxcolsint >= 3 &&
                        (i + 2 < printInCommonItemViewListOld.Count))
                    {
                        printInCommonItemView.PrintInCommonItemView3 = printInCommonItemViewListOld[i + 2];
                    }
                    if (maxcolsint >= 2 &&
                        (i + 1 < printInCommonItemViewListOld.Count))
                    {
                        printInCommonItemView.PrintInCommonItemView2 = printInCommonItemViewListOld[i + 1];
                    }
                    printInCommonItemView.PrintInCommonItemView1 = printInCommonItemViewListOld[i];

                    printInCommonItemViewListNew.Add(printInCommonItemView);  //添加整理好的一行
                }
            }

            printInCommonView.PrintInCommonTabViewList1.PrintInCommonItemViewList = printInCommonItemViewListNew;
        }
Ejemplo n.º 2
0
        public void FillOtherInfo(PrintInCommonItemView printInCommonItemViewOther)
        {
            try
            {
                if (printInCommonItemViewOther == null)
                {
                    return;
                }
                XmlNode      otherInfoNode = CommonMethods.GetElementByTagName("OtherInfo", doc);
                Type         type          = printInCommonItemViewOther.GetType();
                PropertyInfo pro           = null;
                foreach (XmlNode node in otherInfoNode.ChildNodes)
                {
                    int       x         = int.Parse(node.Attributes["x"].Value == "" ? "0" : node.Attributes["x"].Value);
                    int       y         = int.Parse(node.Attributes["y"].Value == "" ? "0" : node.Attributes["y"].Value);
                    int       w         = int.Parse(node.Attributes["width"].Value == "" ? totalWidth.ToString() : node.Attributes["width"].Value);
                    int       h         = int.Parse(node.Attributes["height"].Value == "" ? "0" : node.Attributes["height"].Value);
                    string    text      = node.Attributes["text"].Value;
                    int       fontsize  = int.Parse(node.Attributes["fontsize"].Value == "" ? "0" : node.Attributes["fontsize"].Value);
                    FontStyle fs        = node.Attributes["bold"].Value == "1" ? FontStyle.Bold : FontStyle.Regular;
                    string    dataField = node.Attributes["datafield"].Value;
                    pro = type.GetProperty(dataField);
                    Font   f        = new Font("新宋体", fontsize, fs);
                    string horAlign = node.Attributes["align"].Value;
                    switch (horAlign)
                    {
                    case "-1":
                        sf.Alignment     = StringAlignment.Near;
                        sf.LineAlignment = StringAlignment.Center;
                        break;

                    case "0":
                    case "":
                        sf.Alignment     = StringAlignment.Center;
                        sf.LineAlignment = StringAlignment.Center;
                        break;

                    case "1":
                        sf.Alignment     = StringAlignment.Far;
                        sf.LineAlignment = StringAlignment.Near;
                        break;
                    }
                    if (pro == null || pro.GetValue(printInCommonItemViewOther, null) == null)
                    {
                        gra.DrawString(text.Replace("@", ""), f, Brushes.Black, new Rectangle(x, y, w, h), sf);
                    }
                    else
                    {
                        gra.DrawString(text.Replace("@", pro.GetValue(printInCommonItemViewOther, null).ToString()), f, Brushes.Black, new Rectangle(x, y, w, h), sf);
                    }
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 打印表格时一行不过换行显示
        /// </summary>
        /// <param name="printInCommonView"></param>
        private void ConvertForChangeRow(PrintInCommonView printInCommonView)
        {
            List <PrintInCommonItemView> printInCommonItemViewListOld = printInCommonView.PrintInCommonTabViewList1.PrintInCommonItemViewList;

            if (printInCommonItemViewListOld == null)
            {
                return;
            }
            List <PrintInCommonItemView>         printInCommonItemViewListNew = new List <PrintInCommonItemView>();
            Dictionary <string, ColmonXMLEntity> dicwordcounts = InCommonNoteBiz.GetReportxmlwords(printInCommonView);  //xml中属性 和最大字符数

            if (dicwordcounts == null || dicwordcounts.Count == 0)
            {
                return;
            }
            foreach (var inCommonItem in printInCommonItemViewListOld)
            {
                int maxrow = -1;                                                             //用于获取一个对象中被分成的最大行数
                Dictionary <string, string> dicNeedRows = new Dictionary <string, string>(); //需要换行的列 值
                foreach (var item in dicwordcounts)
                {
                    if (item.Value == null)
                    {
                        break;
                    }
                    string       proName  = item.Key;                                    //属性名
                    PropertyInfo property = inCommonItem.GetType().GetProperty(proName); //获取该对象的该属性
                    if (property != null)
                    {
                        string valuestr = "";
                        object valueobj = property.GetValue(inCommonItem, null);
                        if (valueobj != null)
                        {
                            valuestr = valueobj.ToString();
                        }
                        dicNeedRows.Add(proName, valuestr);
                        int zheshu = GetNeedRows(valuestr, item.Value).Count;
                        if (zheshu > maxrow)
                        {
                            maxrow = zheshu;
                        }
                    }
                }
                if (maxrow == -1)
                {
                    continue;
                }
                if (maxrow == 1 || maxrow == 0)
                {
                    PrintInCommonItemView printInCommonItemView = inCommonItem;
                    printInCommonItemViewListNew.Add(printInCommonItemView);
                }
                else
                {
                    List <PrintInCommonItemView> printInCommonItemOnemore = new List <PrintInCommonItemView>();  //一个正常行最终变成的多行
                    for (int i = 0; i < maxrow; i++)
                    {
                        PrintInCommonItemView printInCommonItemView;
                        if (i == 0)
                        {
                            printInCommonItemView = inCommonItem;
                        }
                        else
                        {
                            printInCommonItemView = new PrintInCommonItemView();
                        }
                        foreach (var itemneed in dicNeedRows)  //对各列进行截取
                        {
                            string       proName       = itemneed.Key;
                            PropertyInfo property      = printInCommonItemView.GetType().GetProperty(proName); //获取该对象的该属性
                            string       rowindexvalue = GetIndexStr(i, GetNeedRows(itemneed.Value, dicwordcounts[proName]));
                            property.SetValue(printInCommonItemView, rowindexvalue, null);
                        }
                        printInCommonItemOnemore.Add(printInCommonItemView);
                    }
                    printInCommonItemOnemore[printInCommonItemOnemore.Count - 1].RecordDoctorName = printInCommonItemOnemore[0].RecordDoctorName;
                    printInCommonItemOnemore[printInCommonItemOnemore.Count - 1].RecordDoctorId   = printInCommonItemOnemore[0].RecordDoctorId;
                    printInCommonItemOnemore[printInCommonItemOnemore.Count - 1].RecordDoctorImg  = printInCommonItemOnemore[0].RecordDoctorImg;
                    printInCommonItemOnemore[0].RecordDoctorName = "";
                    printInCommonItemOnemore[0].RecordDoctorId   = "";
                    printInCommonItemOnemore[0].RecordDoctorImg  = "";
                    printInCommonItemViewListNew.AddRange(printInCommonItemOnemore);
                }
            }
            printInCommonView.PrintInCommonTabViewList1.PrintInCommonItemViewList = printInCommonItemViewListNew;
        }