Exemple #1
0
        public void ConverToDuoRow(PrintInCommonView printInCommonView)
        {
            try
            {
                List <PrintInCommonItemView> printInCommonItemViewListOld = printInCommonView.PrintInCommonTabViewList1.PrintInCommonItemViewList;
                if (printInCommonItemViewListOld == null)
                {
                    return;
                }
                Dictionary <string, ColmonXMLEntity> dicwordcounts = InCommonNoteBiz.GetReportxmlwords(printInCommonView);  //xml中属性 和最大字符数
                if (dicwordcounts == null || dicwordcounts.Count == 0)
                {
                    return;
                }
                List <PrintInCommonItemView> printInCommonItemViewListOut = new List <PrintInCommonItemView>(); //存放处理好的对象
                List <PrintInCommonItemView> printInCommonItemViewListNew = new List <PrintInCommonItemView>();

                Dictionary <string, List <PrintInCommonItemView> > dicIncommList = new Dictionary <string, List <PrintInCommonItemView> >();

                //将datetime时间相同的分组
                for (int i = 0; i < printInCommonItemViewListOld.Count; i++)
                {
                    if (!dicIncommList.ContainsKey(printInCommonItemViewListOld[i].DateTimeShow))
                    {
                        dicIncommList.Add(printInCommonItemViewListOld[i].DateTimeShow, new List <PrintInCommonItemView>());
                    }
                    dicIncommList[printInCommonItemViewListOld[i].DateTimeShow].Add(printInCommonItemViewListOld[i]);
                }


                foreach (List <PrintInCommonItemView> incommItemList in dicIncommList.Values)
                {
                    #region 处理数据
                    printInCommonItemViewListNew = incommItemList;
                    int maxrow = -1;                                                             //用于获取一个对象中被分成的最大行数
                    Dictionary <string, string> dicNeedRows = new Dictionary <string, string>(); //需要换行的列 值
                    foreach (var item in dicwordcounts)
                    {
                        string valueStr = "";
                        if (item.Value == null)
                        {
                            break;
                        }
                        string proName = item.Key;  //属性名

                        foreach (var inCommonItem in printInCommonItemViewListNew)
                        {
                            PropertyInfo property = inCommonItem.GetType().GetProperty(proName); //获取该对象的该属性
                            if (property != null)
                            {
                                object valueobj = property.GetValue(inCommonItem, null);
                                if (valueobj != null)
                                {
                                    valueStr += valueobj.ToString();
                                }
                                property.SetValue(inCommonItem, "", null);
                            }
                        }
                        //xll 20130228 伤处字符中的/r 回车键
                        //valueStr = valueStr.Replace("\n", "");

                        dicNeedRows.Add(proName, valueStr);
                        int zheshu = GetNeedRows(valueStr, item.Value).Count;
                        if (zheshu > maxrow)
                        {
                            maxrow = zheshu;
                        }
                    }   //获得需要换行的属性和值的集合 并获得需要的最大行数


                    //处理数据 最终的分行处理
                    for (int j = 0; j < maxrow; j++)
                    {
                        foreach (var itemneed in dicNeedRows)  //对各列进行截取
                        {
                            string proName = itemneed.Key;
                            if (j >= printInCommonItemViewListNew.Count)
                            {
                                PrintInCommonItemView printInCommonItemView = new CommonNoteUse.PrintInCommonItemView();
                                printInCommonItemView.Date                = printInCommonItemViewListNew[0].Date;
                                printInCommonItemView.Time                = printInCommonItemViewListNew[0].Time;
                                printInCommonItemView.DateTimeShow        = printInCommonItemViewListNew[0].DateTimeShow;
                                printInCommonItemView.RecordDoctorId      = printInCommonItemViewListNew[0].RecordDoctorId;
                                printInCommonItemView.RecordDoctorName    = printInCommonItemViewListNew[0].RecordDoctorName;
                                printInCommonItemView.RecordDoctorImg     = printInCommonItemViewListNew[0].RecordDoctorImg;
                                printInCommonItemView.RecordDoctorImgbyte = printInCommonItemViewListNew[0].RecordDoctorImgbyte;
                                printInCommonItemViewListNew.Add(printInCommonItemView);
                            }

                            PropertyInfo property      = printInCommonItemViewListNew[j].GetType().GetProperty(proName); //获取该对象的该属性
                            string       rowindexvalue = GetIndexStr(j, GetNeedRows(itemneed.Value, dicwordcounts[proName]));
                            property.SetValue(printInCommonItemViewListNew[j], rowindexvalue, null);
                        }
                    }
                    #endregion
                    //将处理好的对象集合存放到最新的数据集中
                    printInCommonItemViewListOut.AddRange(printInCommonItemViewListNew);
                }
                printInCommonView.PrintInCommonTabViewList1.PrintInCommonItemViewList = printInCommonItemViewListOut;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Exemple #2
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;
        }