Esempio n. 1
0
        /// <summary>
        /// 根据从表数据创建控件,设置样式,并添加至table
        /// </summary>
        /// <param name="objSubList"></param>
        public void CreateSubList(ObjSubList[] objSubList, ObjBill bill)
        {
            if (null != objSubList && objSubList.Length > 0)
            {
                int dgID = 1;
                foreach (ObjSubList subList in objSubList)
                {
                    //如果是空行则退出
                    if (subList.RowList.Length == 0)
                    {
                        continue;
                    }
                    //DataTable dt = subList.GetDataTable();
                    #region Verticle
                    if (subList.Align == "verticle")
                    {
                        if (null != subList.ColumnList && subList.ColumnList.Length > 0)
                        {
                            {
                                HtmlTableRow tr = new HtmlTableRow();
                                HtmlTableCell td = CreateTD(1, null, null, "billTopTd");

                                Label label = new Label();
                                label.Text = subList.Text;
                                td.Controls.Add(label);

                                tr.Controls.Add(td);
                                TableCtrl.Controls.Add(tr);
                            }
                            HtmlTable tbSubList = new HtmlTable();
                            tbSubList.Width = "100%";
                            tbSubList.BgColor = "#999999";
                            tbSubList.Border = 0;
                            tbSubList.CellSpacing = 1;
                            tbSubList.CellPadding = 3;
                            foreach (ObjRow row in subList.RowList)
                            {
                                int n = 0;
                                HtmlTableRow tr = null;
                                int columncount = 0;
                                foreach (ObjColumn column in subList.ColumnList[0].ColumnList)
                                {
                                    if (column.IsVisible)
                                    { columncount++; }
                                }
                                string name = "";
                                foreach (ObjColumn column in subList.ColumnList[0].ColumnList)
                                {
                                    if (column.IsVisible)
                                    {
                                        if (n == 0)
                                        {
                                            tr = new HtmlTableRow();
                                            HtmlTableCell td = new HtmlTableCell();
                                            td.InnerText = row.GetObjFieldValue(column.Name);
                                            name = td.InnerText;
                                            td.BgColor = "white";
                                            td.Width = "25%";
                                            td.RowSpan = columncount - 1;
                                            td.Align = "center";
                                            td.Style.Add("font-size", "14px");
                                            td.Style.Add("font-weight", "bold");
                                            tr.Cells.Add(td);
                                        }
                                        else
                                        {
                                            if (n > 1)
                                            {
                                                tr = new HtmlTableRow();
                                            }
                                            HtmlTableCell td = new HtmlTableCell();
                                            td.InnerText = column.Text;
                                            td.BgColor = "#f1f1f1";
                                            td.Width = "25%";
                                            tr.Cells.Add(td);

                                            HtmlTableCell tdcontent = new HtmlTableCell();
                                            tdcontent.InnerText = row.GetObjFieldValue(column.Name);
                                            tdcontent.BgColor = "white";
                                            tdcontent.Width = "25%";

                                            tr.Cells.Add(tdcontent);

                                            if (n == 1)
                                            {
                                                HtmlTableCell tdview = new HtmlTableCell();
                                                HtmlTable tbDetail = new HtmlTable();
                                                tbDetail.Width = "100%";
                                                tbDetail.BgColor = "#999999";
                                                tbDetail.Border = 0;
                                                tbDetail.CellSpacing = 1;
                                                tbDetail.CellPadding = 3;


                                                HtmlTableRow trDetail1 = new HtmlTableRow();
                                                HtmlTableCell tdDetail1 = new HtmlTableCell();
                                                tdDetail1.Align = "left";
                                                tdDetail1.BgColor = "#e1e1e1";
                                                tdDetail1.Style.Add("font-weight", "bold");
                                                tdDetail1.InnerHtml = name + "薪资详情";
                                                tdDetail1.Height = "35";
                                                trDetail1.Cells.Add(tdDetail1);

                                                HtmlTableCell tdDetail4 = new HtmlTableCell();
                                                tdDetail4.Align = "right";
                                                tdDetail4.BgColor = "#e1e1e1";
                                                tdDetail4.Style.Add("font-weight", "bold");
                                                tdDetail4.InnerHtml = @"<input type=""button"" value=""关闭"" onclick=""javascript:closeDetail();"" onmousemove=""javascript:MousemoveAudit(this.id);""

                                    onmouseout=""javascript:MouseoutAudit(this.id);"" id=""btn_close"" name=""btn_close"" class=""billAuditYes"" />";
                                                tdDetail4.Height = "35";
                                                trDetail1.Cells.Add(tdDetail4);


                                                tbDetail.Rows.Add(trDetail1);

                                                foreach (ObjColumn detailcolumn in subList.ColumnList[0].ColumnList)
                                                {
                                                    HtmlTableRow trDetail2 = new HtmlTableRow();
                                                    HtmlTableCell tdDetail2 = new HtmlTableCell();
                                                    tdDetail2.Align = "left";
                                                    tdDetail2.Width = "50%";
                                                    tdDetail2.BgColor = "#f1f1f1";
                                                    tdDetail2.InnerHtml = detailcolumn.Text;
                                                    trDetail2.Cells.Add(tdDetail2);

                                                    HtmlTableCell tdDetail3 = new HtmlTableCell();
                                                    tdDetail3.Align = "left";
                                                    tdDetail2.Width = "50%";
                                                    tdDetail3.BgColor = "#ffffff";
                                                    tdDetail3.InnerHtml = row.GetObjFieldValue(detailcolumn.Name);
                                                    trDetail2.Cells.Add(tdDetail3);


                                                    tbDetail.Rows.Add(trDetail2);
                                                }
                                                tdview.RowSpan = columncount - 1;
                                                tdview.InnerHtml = "<a href=\"javascript:showDetail('virdetail" + row.Id + "')\">详请</a>";
                                                HtmlGenericControl div = new HtmlGenericControl();
                                                div.TagName = "div";
                                                div.Style.Add("display", "none");
                                                div.ID = "virdetail" + row.Id;
                                                div.Controls.Add(tbDetail);
                                                tdview.Controls.Add(div);
                                                tdview.BgColor = "white";
                                                tdview.Width = "25%";
                                                tdview.Align = "center";
                                                tr.Cells.Add(tdview);
                                            }
                                        }

                                        if (n > 0)
                                        {
                                            tbSubList.Rows.Add(tr);
                                        }
                                        n++;
                                    }

                                }
                            }
                            {
                                int n = 0;
                                HtmlTableRow tr = null;
                                int columncount = 0;
                                foreach (Field field in bill.DetailLists[0].GetFieldDict())
                                {
                                    if (!String.IsNullOrEmpty(field.ColumnOrder) && Convert.ToInt32(field.ColumnOrder) > 0)
                                    {
                                        columncount++;
                                    }
                                }
                                foreach (Field field in bill.DetailLists[0].GetFieldDict())
                                {

                                    if (!String.IsNullOrEmpty(field.ColumnOrder) && Convert.ToInt32(field.ColumnOrder) > 0)
                                    {
                                        if (n == 0)
                                        {
                                            tr = new HtmlTableRow();
                                            HtmlTableCell td = new HtmlTableCell();
                                            td.InnerText = "总计";
                                            td.BgColor = "white";
                                            td.Width = "25%";
                                            td.RowSpan = columncount;
                                            td.Align = "center";
                                            td.Style.Add("font-size", "14px");
                                            td.Style.Add("font-weight", "bold");
                                            td.Style.Add("border-top", "1px black solid");
                                            tr.Cells.Add(td);


                                        }

                                        {
                                            if (n > 0)
                                            {
                                                tr = new HtmlTableRow();
                                            }
                                            HtmlTableCell td = new HtmlTableCell();
                                            td.InnerText = field.CaptionName.TrimEnd(':');
                                            td.BgColor = "#f1f1f1";
                                            td.Width = "25%";
                                            if (n == 0)
                                            {
                                                td.Style.Add("border-top", "1px black solid");
                                            }
                                            tr.Cells.Add(td);

                                            HtmlTableCell tdcontent = new HtmlTableCell();
                                            tdcontent.Controls.Add((Control)field.MainControl[0]);
                                            tdcontent.BgColor = "white";
                                            tdcontent.Width = "25%";
                                            if (n == 0)
                                            {
                                                tdcontent.Style.Add("border-top", "1px black solid");


                                            }
                                            tr.Cells.Add(tdcontent);

                                            if (n == 0)
                                            {
                                                HtmlTableCell tdview = new HtmlTableCell();
                                                tdview.InnerHtml = "&nbsp;";
                                                tdview.BgColor = "white";
                                                tdview.Width = "25%";
                                                tdview.Align = "center";
                                                tdview.RowSpan = columncount;
                                                if (n == 0)
                                                {
                                                    tdview.Style.Add("border-top", "1px black solid");
                                                }
                                                tr.Cells.Add(tdview);
                                            }

                                        }

                                        //if (n > 0)
                                        {
                                            tbSubList.Rows.Add(tr);
                                        }
                                        n++;
                                    }

                                }
                            }

                            HtmlTableRow tra = new HtmlTableRow();
                            HtmlTableCell tda = CreateTD(1, "100%", null, null);
                            tda.Controls.Add(tbSubList);
                            tra.Cells.Add(tda);
                            TableCtrl.Rows.Add(tra);
                        }
                    }
                    #endregion
                    else
                    {
                        if (null != subList.ColumnList && subList.ColumnList.Length > 0)
                        {
                            if (subList.RowList.Length == 0)
                            {
                                continue;
                            }
                            if (subList.RowList[0] == null)
                            {
                                continue;
                            }
                            if (subList.HideWhenEmpty == "1" && subList.CheckEmpty())
                            {
                                continue;
                            }
                            {
                                //HtmlTableRow tr = new HtmlTableRow();
                                //HtmlTableCell td = CreateTD(1, null, null, "billTopTd");

                                //Label label = new Label();
                                //label.Text = subList.Text;
                                //td.Controls.Add(label);

                                //tr.Controls.Add(td);
                                //TableCtrl.Controls.Add(tr);
                                //从表头
                                HtmlGenericControl DivTop = new HtmlGenericControl("div");
                                DivTop.Attributes.Add("class", "tabpanelheaddiv");
                                HtmlGenericControl span = new HtmlGenericControl("span");
                                span.Attributes.Add("style", "height:30px;line-height:30px;");
                                span.InnerText = subList.Text;
                                DivTop.Controls.Add(span);

                                HtmlTableRow tr = new HtmlTableRow();
                                HtmlTableCell td = CreateTD(1, null, null, "");
                                td.Attributes.Add("style", "padding:3px 0px 0px 0px;margin:0px;");
                                td.Controls.Add(DivTop);
                                tr.Controls.Add(td);
                                TableCtrl.Controls.Add(tr);
                            }
                            {
                                HtmlTable tbSubList = new HtmlTable();
                                tbSubList.Width = "100%";
                                tbSubList.BgColor = "#999999";
                                tbSubList.Border = 0;
                                tbSubList.CellSpacing = 1;
                                tbSubList.CellPadding = 3;
                                tbSubList.Attributes.Add("class", "audit ClassTableNew MobileTabGrid");
                                //tbSubList.Attributes.Add("style", "border: 1px solid #5F5F5F;");
                                HtmlTableRow tr = new HtmlTableRow();
                                tr.Attributes.Add("class", "auditHeader");
                                {
                                    
                                    HtmlTableCell td = new HtmlTableCell("th");
                                    td.Attributes.Add("style", "padding:3px 0px 0px 0px;margin:0px;");
                                    td.InnerHtml = "<div></div>";
                                    //td.BgColor = "#E1EFF7";
                                    td.Width = "3%";
                                    tr.Cells.Add(td);
                                }
                                double sum = 0;
                                bool isSum = false;
                                string sumName = string.Empty;
                                List<string> sumList = new List<string>();
                                HtmlTableRow sumRow = new HtmlTableRow();
                                var sumTD = new HtmlTableCell() { InnerText = "" };
                                sumTD.Attributes.Add("class", "Align_Right");
                                sumRow.Cells.Add(sumTD);

                                sumRow.Attributes.Add("class", "ClassTableNewSum");
                                int cellIndex = 1;
                                int cellCols = 0;
                                int cellColsOut = 0;
                                foreach (ObjColumn column in subList.ColumnList[0].ColumnList)
                                {
                                    if (column.IsVisible)
                                    {
                                        HtmlTableCell td = new HtmlTableCell("th");
                                        td.Attributes.Add("Title",column.ToolTip);
                                        td.InnerHtml = "<div>" + column.Text + "</div>";
                                        // td.Attributes.Add("class", "ui-state-default ui-th-column ui-th-ltr");
                                        // td.BgColor = "#E1EFF7";
                                        td.Width = column.Width;
                                        tr.Cells.Add(td);
                                        if (column.ColumnSum != null)
                                        {
                                            if (column.ColumnSum.ToLower() == "true")
                                            {
                                                sumName = column.Name;
                                                isSum = true;
                                                cellCols++;
                                                cellColsOut = 1;
                                                sumList.Add(column.Name);
                                            }
                                            else
                                            {
                                                cellCols = 0;
                                            }
                                        }
                                        else
                                        {
                                            cellCols = 0;
                                        }
                                        cellIndex++;
                                        if (cellCols > 1)
                                        {
                                            sumRow.Cells[sumRow.Cells.Count - 1].ColSpan = (cellIndex - sumRow.Cells.Count) + 1;
                                        }
                                        else
                                        {
                                            sumRow.Cells.Add(new HtmlTableCell() { InnerText = "" });
                                        }

                                       
                                    }

                                }
                                tbSubList.Rows.Add(tr);
                                int i = 0;
                                bool hassub = false;
                                foreach (ObjRow row in subList.RowList)
                                {
                                    //忽略空行
                                    if (row == null)
                                    {
                                        continue;
                                    }

                                    HtmlTableRow trcontent = new HtmlTableRow();
                                    trcontent.Attributes.Add("class", "auditRow");
                                    {
                                        HtmlTableCell td = new HtmlTableCell();
                                        if (row.SubSubList != null && row.SubSubList.Length > 0)
                                        {
                                            td.InnerHtml = "<img src='" + this.Template.ImageUrl + "plus.gif' id='subimg" + i + "'>";
                                            td.RowSpan = 1;
                                            td.ID = "tdsub" + i;

                                        }
                                        else
                                        {
                                            td.InnerHtml = "&nbsp;";
                                            td.RowSpan = 1;
                                            td.ID = "tbsub" + i;
                                        }
                                        td.Align = "center";
                                        td.VAlign = "top";
                                        td.BgColor = "white";
                                        td.Width = "3%";
                                        trcontent.Cells.Add(td);
                                    }
                                    if (row.SubSubList != null && row.SubSubList.Length > 0)
                                    {
                                        trcontent.Attributes.Add("onclick", @"showsub(""tr" + i + @""",""subimg" + i + @""",""tdsub" + i + @""")");
                                    }
                                    int rowIndex = 1;
                                    cellIndex = 1;
                                    foreach (ObjColumn column in subList.ColumnList[0].ColumnList)
                                    {
                                        if (column.IsVisible)
                                        {
                                            HtmlTableCell tdcontent = new HtmlTableCell();
                                            
                                            ObjField field = row.GetObjFieldDict()[column.Name];
                                            if ( field != null)
                                            {
                                                string rowValue = field.DataValue;
                                                var tempValue = rowValue;
                                                if (!string.IsNullOrEmpty(column.Format))
                                                {
                                                    tempValue = field.GetFormatValue(column.Format);
                                                }
                                                tdcontent.InnerText = tempValue;
                                                

                                                if (!string.IsNullOrEmpty(field.Color))
                                                {
                                                    tdcontent.Style.Add("color", field.Color);
                                                }
                                                if (!string.IsNullOrEmpty(field.Tooltip))
                                                {
                                                    tdcontent.Attributes.Add("title", field.Tooltip);
                                                }
                                                var align = "Left";
                                                if (!string.IsNullOrEmpty(column.Align))
                                                {
                                                    align = column.Align;
                                                }
                                                tdcontent.Attributes.Add("class", "Align_" + align);
                                                if (isSum)
                                                {
                                                    if (sumList.Contains(column.Name))
                                                    {
                                                        double tryValue = 0;
                                                        if (double.TryParse(rowValue, out tryValue))
                                                        {
                                                            sum += tryValue;
                                                        }
                                                        sumRow.Cells[cellIndex].InnerText = string.Format("合计:{0}", sum);
                                                    }
                                                    else
                                                    {
                                                        cellIndex++;
                                                    }

                                                }
                                            }
                                            tdcontent.BgColor = "white";
                                            trcontent.Cells.Add(tdcontent);
                                           
                                            rowIndex++;
                                        }

                                    }
                                    tbSubList.Rows.Add(trcontent);
                                    #region 如果有嵌套的明细数据
                                    //如果有嵌套的明细数据
                                    if (row.SubSubList != null && row.SubSubList.Length > 0)
                                    {
                                        hassub = true;
                                        foreach (ObjSubList subsubList in row.SubSubList)
                                        {
                                            HtmlTable tbSubSubList = new HtmlTable();
                                            tbSubSubList.Width = "100%";
                                            tbSubSubList.BgColor = "#999999";
                                            tbSubSubList.Border = 0;
                                            tbSubSubList.CellSpacing = 1;
                                            tbSubSubList.CellPadding = 3;
                                            tbSubSubList.Attributes.Add("style", "margin: 5px 2%;width: 96%;");
                                            HtmlTableRow trSub = new HtmlTableRow();
                                            //设置DataGrid控件的列
                                            foreach (ObjColumn column in subsubList.ColumnList[0].ColumnList)
                                            {
                                                if (column.IsVisible)
                                                {
                                                    
                                                    HtmlTableCell tdsub = new HtmlTableCell("th");
                                                    tdsub.Attributes.Add("Title", column.ToolTip);
                                                    tdsub.InnerText = column.Text;
                                                    tdsub.BgColor = "#E1EFF7";
                                                    tdsub.Width = column.Width;
                                                    trSub.Cells.Add(tdsub);
                                                }

                                            }
                                            tbSubSubList.Rows.Add(trSub);
                                            foreach (ObjRow rowsub in subsubList.RowList)
                                            {
                                                HtmlTableRow trcontentsub = new HtmlTableRow();
                                                foreach (ObjColumn column in subsubList.ColumnList[0].ColumnList)
                                                {
                                                    if (column.IsVisible)
                                                    {
                                                        HtmlTableCell tdcontent = new HtmlTableCell();
                                                        tdcontent.InnerText = rowsub.GetObjFieldValue(column.Name);
                                                        tdcontent.BgColor = "white";
                                                        trcontentsub.Cells.Add(tdcontent);
                                                    }

                                                }

                                                tbSubSubList.Rows.Add(trcontentsub);
                                            }
                                            HtmlTableRow trsubsub = new HtmlTableRow();
                                            trsubsub.ID = "tr" + i;
                                            trsubsub.Style.Add("display", "none");
                                            HtmlTableCell tdsubsub = CreateTD(1, "100%", null, null);
                                            tdsubsub.BgColor = "#dddddd";
                                            tdsubsub.ColSpan = subList.ColumnList[0].ColumnList.Count(item => item.IsVisible);
                                            tdsubsub.Controls.Add(tbSubSubList);
                                            trsubsub.Cells.Add(tdsubsub);
                                            tbSubList.Rows.Add(trsubsub);
                                        }

                                    }
                                    #endregion
                                    if (hassub == false)
                                    {
                                        //tbSubList.Rows[0].Cells[0].Visible = false;
                                        //trcontent.Cells[0].Visible = false;
                                    }
                                    i++;
                                }

                                HtmlTableRow tra = new HtmlTableRow();
                                HtmlTableCell tda = CreateTD(1, "100%", null, null);
                                tda.Attributes.Add("style", "margin:0px;padding:3px 0px 1px 0px;");
                                //添加合计
                                if (isSum)
                                {
                                    tbSubList.Rows.Add(sumRow);
                                }
                                tda.Controls.Add(tbSubList);
                                tra.Cells.Add(tda);
                                TableCtrl.Rows.Add(tra);

                            }

                        }

                    }





                    dgID++;
                }
            }

        }
Esempio n. 2
0
        public void CreateRtf(ObjBill bill)
        {
            if (!String.IsNullOrEmpty(bill.RtfData))
            {
                HtmlTableRow trrtf = new HtmlTableRow();
                HtmlTableCell tdrtf = new HtmlTableCell();
                tdrtf.Attributes.Add("class", "billTopTd");
                Label label = new Label();
                label.Text = "内容";
                tdrtf.Controls.Add(label);

                trrtf.Controls.Add(tdrtf);
                TableCtrl.Controls.Add(trrtf);

                HtmlTableRow trHd = new HtmlTableRow();
                HtmlTableCell tdHd = new HtmlTableCell();

                HtmlInputHidden inputHd = new HtmlInputHidden();
                inputHd.ID = "hdGuid";
                inputHd.Value = bill.RtfData;
                tdHd.Controls.Add(inputHd);
                HtmlGenericControl div = new HtmlGenericControl("div");
                string rtfContent = bill.RtfData.Equals("System.Byte[]") ? bill.FormID : bill.RtfData;
                div.InnerHtml = GetRtf(bill.FormID);
                div.ID = "divContext";
                tdHd.Controls.Add(div);
                /*
                Panel panel = new Panel();
                panel.ID = "divContext";
                
                Label lab = new Label();
                lab.Text = "正在加载内容...";
                
                HtmlImage img = new HtmlImage();
                img.Src = Template.ImageUrl + "loading.gif";

                panel.Controls.Add(lab);
                panel.Controls.Add(img);
                 
                tdHd.Controls.Add(panel);*/

                trHd.Controls.Add(tdHd);

                TableCtrl.Controls.Add(trHd);

                //td3.Controls.Add(panel);
            }
        }
Esempio n. 3
0
        public static ObjSubList[] CreateSubList(XmlNode nodeObject, string listName, ObjBill schemaBill, bool isSub)
        {

            //选取ObjectList节点
            XmlNodeList listList = nodeObject.SelectNodes("ObjectList");
            //根据节点数建立实体集
            ObjSubList[] sublists = new ObjSubList[listList.Count];
            //遍历结点
            for (int j = 0; j < listList.Count; j++)
            {
                //从该结点获取一个ObjectList的Name
                string subListName = ((XmlElement)listList[j]).GetAttribute("Name");
                string subListText = ((XmlElement)listList[j]).GetAttribute("Text");
                //建立Sublist对象
                ObjSubList objSubList = new ObjSubList();
                objSubList.Name = subListName;
                objSubList.Text = subListText;
                var temp =schemaBill.GetSubListsDict()[subListName];
                if (temp != null)
                {
                    objSubList.Align = temp.Align;
                    objSubList.HideWhenEmpty = temp.HideWhenEmpty;
                }

                //把billschema的columnList的信息赋给bill

                //从该结点中获取Object节点集,对应Sublist的行数据
                XmlNodeList objlist = listList[j].SelectNodes("Object");
                //根据xml数据中的object节点数建立sublist对象的rowlist数组
                objSubList.RowList = new ObjRow[objlist.Count];
                //遍历 object节点集,以构建数据
                for (int i = 0; i < objlist.Count; i++)
                {
                    //得到object的name
                    string rowName = ((XmlElement)objlist[i]).GetAttribute("Name");
                    string rowID = ((XmlElement)objlist[i]).GetAttribute("id");
                    if (string.IsNullOrEmpty(rowID))
                    {
                      //  continue;
                    }
                    //从object结点中得到所有的attribute,即该行的所有字段
                    XmlNodeList list = objlist[i].SelectNodes("Attribute");
                    //建立对应的objrow对象以容纳字段数据
                    ObjRow row = new ObjRow();
                    row.Name = rowName;
                    row.Id = rowID;
                    //根据attribut的数量建立fieldlist数组
                    row.ObjFieldList = new ObjField[list.Count];
                    //遍历attribute结点
                    for (int m = 0; m < list.Count; m++)
                    {
                        //从attribute节点中得到数据信息
                        XmlElement node = list[m] as XmlElement;
                        string Name = ((XmlElement)node).GetAttribute("Name");
                        string Text = ((XmlElement)node).GetAttribute("Text");
                        string DataType = ((XmlElement)node).GetAttribute("DataType");
                        string DataValue = ((XmlElement)node).GetAttribute("DataValue");

                        //建立对应的objfield对象
                        ObjField dataField = new ObjField();
                        dataField.Name = Name;
                        //dataField.Text = Text;
                        dataField.DataType = DataType;
                        dataField.DataValue = DataValue;
                        string fgColor = string.Empty;
                        string Tooltip = string.Empty;
                        if (node.HasAttribute("Color"))
                        {
                            fgColor = node.GetAttribute("Color");
                        }
                        if (node.HasAttribute("Tooltip"))
                        {
                            Tooltip = node.GetAttribute("Tooltip");
                        }
                        dataField.Color = fgColor;
                        dataField.Tooltip = Tooltip;


                        //如果能够在配置文件中找到对应的定义项,则把该定义项的相关信息赋值到该对象。
                        //通过Name作为key进行过索引
                        if (schemaBill.GetSubListsDict()[subListName] != null && schemaBill.GetSubListsDict()[subListName].GetRowDict()[rowID] != null && schemaBill.GetSubListsDict()[subListName].GetRowDict()[rowID].GetObjFieldDict()[Name] != null)
                        {
                            ObjField schemaField = schemaBill.GetSubListsDict()[subListName].GetRowDict()[rowID].GetObjFieldDict()[Name];
                            dataField.Colspan = schemaField.Colspan;
                            dataField.IsVisible = schemaField.IsVisible;
                            dataField.CssName = schemaField.CssName;
                            dataField.ColumnOrder = schemaField.ColumnOrder;
                        }
                        //把建立的field对象赋给对应索引的fieldlist数组。
                        row.ObjFieldList[m] = dataField;

                    }
                    //把建立的row对象赋给对应索引的 rowlist数组
                    objSubList.RowList[i] = row;
                    row.SubSubList = CreateSubList(objlist[i], objSubList.Name, schemaBill, true);
                }
                //把建立的sublist对象赋给对应索引的sublist数组
                if (schemaBill.GetSubListsDict()[objSubList.Name] != null && isSub == false)
                {
                    objSubList.ColumnList = schemaBill.GetSubListsDict()[objSubList.Name].ColumnList;
                }
                //把建立的sublist对象赋给对应索引的sublist数组
                if (schemaBill.GetSubListsDict()[listName] != null && isSub == true)
                {
                    objSubList.ColumnList = schemaBill.GetSubListsDict()[listName].SubColumnList;
                }
                sublists[j] = objSubList;
            }
            return sublists;
        }
Esempio n. 4
0
        private void CreatForm(ObjBill bill, bool IsApproval)
        {
            //创建头部显示标题
            {
                HtmlGenericControl DivTop = new HtmlGenericControl("div");
                DivTop.Attributes.Add("class", "tabpanelheaddiv");
                HtmlGenericControl span = new HtmlGenericControl("span");
                span.Attributes.Add("style", "height:30px;line-height:30px;");
                span.InnerText = bill.Text;
                DivTop.Controls.Add(span);
                HtmlTableRow tr = new HtmlTableRow();
                HtmlTableCell td = CreateTD(1, null, null, "");
                td.Attributes.Add("style", "padding:0px;margin:0px;");
                td.Controls.Add(DivTop);
                tr.Controls.Add(td);
                //Label label = new Label();
                //label.Text = text;
                //td.Controls.Add(label);
                //tr.Controls.Add(td);
                TableCtrl.Controls.Add(tr);
                //TableCtrl.Controls.Add(CreateTop(bill.Text));
            }

            //创建主表
            CreateDetails(bill.DetailLists);

            //创建rtf内容
            CreateRtf(bill);

            int sum = 0;
            //创建从表
            CreateSubList(bill.SubLists, bill);

            //创建附件列表
            CreateAttachList(bill.AttachLists);

            //创建审核列表

            if (IsApproval == true)
                CreateApprovalList(bill.ApprovalLists);

            //if (IsCreateConsultation)
            //{
            //    CreateConsultationList(bill.ConsultationLists);
            //}
        }
Esempio n. 5
0
        public static ObjBill CreateBill(string xml, ref string error)
        {
            ObjBill bill = new ObjBill();

            XmlDocument doc = new XmlDocument();
            doc.LoadXml(xml);

            //读取Form中的数据
            XmlNode nodeResult = doc.SelectSingleNode("//Result");
            if (nodeResult != null)
            {
                if (((XmlElement)nodeResult).GetAttribute("Code") != "0")
                {
                    error = ((XmlElement)nodeResult).InnerText.ToString();
                    throw new SmtException(((XmlElement)nodeResult).InnerText);
                }
                else
                {
                    XmlNode nodeForm = doc.SelectSingleNode("//Form");
                    bill.ModelCode = ((XmlElement)nodeForm).GetAttribute("ModelCode");
                    bill.OrderType = ((XmlElement)nodeForm).GetAttribute("OrderType");
                    bill.Text = ((XmlElement)nodeForm).GetAttribute("Text");
                    bill.FormID = ((XmlElement)nodeForm).GetAttribute("FormID");
                    bill.MessageStatus = ((XmlElement)nodeForm).GetAttribute("MESSAGESTATUS");
                    ObjBill schemaBill = DataManager<ObjBill>.Get(HttpContext.Current.Server.MapPath("BillSchema/" + bill.ModelCode + ".xml"));

                    XmlNode nodeObject = doc.SelectSingleNode("//Object");

                    { //读取主表数据

                        XmlNodeList list = nodeObject.SelectNodes("Attribute");
                        ObjDetailList detailList = new ObjDetailList();
                        detailList.ObjFieldList = new ObjField[list.Count];
                        foreach (var item in schemaBill.DetailLists)
                        {
                            item.Load();
                        }
                        for (int i = 0; i < list.Count; i++)
                        {
                            XmlElement node = list[i] as XmlElement;
                            string Name = ((XmlElement)node).GetAttribute("Name");
                            string Text = ((XmlElement)node).GetAttribute("Text");
                            string DataType = ((XmlElement)node).GetAttribute("DataType");
                            string DataValue = ((XmlElement)node).GetAttribute("DataValue");
                            string fgColor = string.Empty;
                            string Tooltip = string.Empty;
                            if (node.HasAttribute("Color"))
                            {
                                fgColor = node.GetAttribute("Color");
                            }
                            if (node.HasAttribute("Tooltip"))
                            {
                                Tooltip = node.GetAttribute("Tooltip");
                            }

                            ObjField dataField = new ObjField();
                            dataField.Name = Name;
                            dataField.Text = Text;
                            dataField.DataType = DataType;
                            dataField.DataValue = DataValue.Replace("\n","<br />");
                            dataField.Color = fgColor;
                            dataField.Tooltip = Tooltip;

                            //将数据样式应用于字段
                            if (schemaBill.DetailLists.Length > 0 &&
                                schemaBill.DetailLists[0].ObjFieldList.Length > 0 && schemaBill.DetailLists[0].GetObjFieldDict()[Name] != null)
                            {

                                ObjField schemaField = schemaBill.DetailLists[0].GetObjFieldDict()[Name];
                                dataField.Colspan = schemaField.Colspan;
                                dataField.IsVisible = schemaField.IsVisible;
                                dataField.CssName = schemaField.CssName;
                                dataField.Orderno = schemaField.Orderno;
                                dataField.ColumnOrder = schemaField.ColumnOrder;
                                dataField.Text = schemaField.Text;
                                dataField.IsShowCaption = schemaField.IsShowCaption;
                                dataField.IsLink = schemaField.IsLink;
                                if (dataField.DataType.ToLower() == "rtf")
                                {
                                    bill.RtfData = dataField.DataValue;
                                }
                                //因业务编号的问题,需要重新获取编号(目前出差报销)
                                if (dataField.DataValue == "")
                                {
                                    //TODO:需要重新获取编号
                                    //UNDONE:需要重新获取编号

                                }
                            }
                            else //在配置文件中没找到的字段,都不显示 
                            {
                                dataField.IsVisible = false;
                            }
                            detailList.ObjFieldList[i] = dataField;
                            detailList.PadRepeatCount = schemaBill.DetailLists[0].PadRepeatCount;
                            detailList.PhoneRepeatCount = schemaBill.DetailLists[0].PhoneRepeatCount;
                        }
                        bill.DetailLists = new ObjDetailList[] { detailList };

                    }


                    bill.SubLists = CreateSubList(nodeObject, "", schemaBill, false);

                    XmlNode ConsultationList = doc.SelectSingleNode("//ConsultationList");
                    if (ConsultationList != null)
                    {
                        bill.ConsultationLists = CreateConsultationList(ConsultationList);
                    }
                    XmlNode nodeApproval = doc.SelectSingleNode("//ApprovalList");

                    if (nodeApproval != null)
                    {//读取审核列表数据

                        XmlNodeList list = nodeApproval.SelectNodes("Atrribute");
                        ObjApprovalList approvalList = new ObjApprovalList();
                        approvalList.Text = "审核信息";
                        approvalList.ApprovalList = new ObjApproval[list.Count];
                        for (int i = 0; i < list.Count; i++)
                        {
                            XmlNode node = list[i];
                            string Approver = ((XmlElement)node).GetAttribute("Approver");
                            string ApprovalTime = ((XmlElement)node).GetAttribute("ApprovalTime");
                            string ApprovalState = ((XmlElement)node).GetAttribute("ApprovalState");
                            string ApprovalRemark = ((XmlElement)node).GetAttribute("ApprovalRemark");
                            string FlowType = ((XmlElement)node).GetAttribute("FlowType");
                            string Flag = ((XmlElement)node).GetAttribute("Flag");
                            ObjApproval dataField = new ObjApproval();
                            dataField.Approver = Approver;
                            dataField.ApprovalTime = Convert.ToDateTime(ApprovalTime);
                            dataField.ApprovalState = ApprovalState;
                            dataField.ApprovalRemark = ApprovalRemark;
                            dataField.Flag = Flag;
                            dataField.FlowType = FlowType;

                            //应用样式于字段
                            if (null != schemaBill.ApprovalLists && schemaBill.ApprovalLists.Length > 0 && null != schemaBill.ApprovalLists[0].ApprovalList &&
                                schemaBill.ApprovalLists[0].ApprovalList.Length > 0 && schemaBill.ApprovalLists[0].GetApprovalDict()[Approver] != null)
                            {
                                ObjApproval schemaField = schemaBill.ApprovalLists[0].GetApprovalDict()[Approver];

                                //dataField.Colspan = schemaField.Colspan;
                            }
                            approvalList.ApprovalList[i] = dataField;
                        }
                        bill.ApprovalLists = new ObjApprovalList[] { approvalList };
                    }


                    XmlNode nodeAttach = doc.SelectSingleNode("//AttachList");
                    if (nodeAttach != null)
                    {//读取附件列表数据

                        XmlNodeList list = nodeAttach.SelectNodes("Atrribute");
                        ObjAttachList approvalList = new ObjAttachList();
                        approvalList.AttachList = new ObjAttach[list.Count];
                        for (int i = 0; i < list.Count; i++)
                        {
                            XmlNode node = list[i];
                            string Name = ((XmlElement)node).GetAttribute("Name");
                            string Url = ((XmlElement)node).GetAttribute("Url");

                            ObjAttach dataField = new ObjAttach();
                            dataField.Name = Name;
                            dataField.Url = Url;

                            //将样式应用于字段
                            if (null != schemaBill && null != schemaBill.AttachLists && schemaBill.AttachLists.Length > 0 &&
                                schemaBill.AttachLists[0].AttachList != null &&
                                schemaBill.AttachLists[0].AttachList.Length > 0 && schemaBill.AttachLists[0].GetAttachDict()[Name] != null)
                            {
                                ObjAttach schemaField = schemaBill.AttachLists[0].GetAttachDict()[Name];
                                //dataField.Colspan = schemaField.Colspan;
                            }
                            approvalList.AttachList[i] = dataField;
                        }
                        bill.AttachLists = new ObjAttachList[] { approvalList };
                    }


                }



            }

            return bill;

        }