Example #1
0
 protected void ToExcel_Click(object sender, EventArgs e)
 {
     string json = ExcelGridData.Value.ToString();
     StoreSubmitDataEventArgs eSubmit = new StoreSubmitDataEventArgs(json, null);
     XmlNode xml = eSubmit.Xml;
     this.Response.Clear();
     this.Response.ContentType = "application/vnd.ms-excel";
     this.Response.AddHeader("Content-Disposition", "attachment; filename=SaleRank.xls");
     XslCompiledTransform xtExcel = new XslCompiledTransform();
     xtExcel.Load(Server.MapPath("./Styles/Excel.xsl"));
     xtExcel.Transform(xml, null, this.Response.OutputStream);
     this.Response.End();
 }
Example #2
0
        protected void ToCsv(object sender, EventArgs e)
        {
            string json = GridData.Value.ToString();
            StoreSubmitDataEventArgs eSubmit = new StoreSubmitDataEventArgs(json, null);
            XmlNode xml = eSubmit.Xml;

            this.Response.Clear();
            this.Response.ContentType = "application/octet-stream";
            this.Response.AddHeader("Content-Disposition", "attachment; filename=Reporte.csv");
            XslCompiledTransform xtCsv = new XslCompiledTransform();
            xtCsv.Load(Server.MapPath("/Docs/XSL/Csv.xsl"));
            xtCsv.Transform(xml, null, this.Response.OutputStream);
            this.Response.End();
        }
Example #3
0
        protected void ToXml(object sender, EventArgs e)
        {
            string json = GridData.Value.ToString();
            StoreSubmitDataEventArgs eSubmit = new StoreSubmitDataEventArgs(json, null);
            XmlNode xml = eSubmit.Xml;

            string strXml = xml.OuterXml;

            this.Response.Clear();
            this.Response.AddHeader("Content-Disposition", "attachment; filename=Reporte.xml");
            this.Response.AddHeader("Content-Length", strXml.Length.ToString());
            this.Response.ContentType = "application/xml";
            this.Response.Write(strXml);
            this.Response.End();
        }
Example #4
0
        protected void SubmitData(object sender, StoreSubmitDataEventArgs e)
        {
            string json = e.Json;
            XmlNode xml = e.Xml;
            List<Country> countries = e.Object<Country>();

            StringBuilder sb = new StringBuilder(255);

            sb.Append("<h3>Selected Countries</h3>");

            foreach (Country country in countries)
            {
                sb.AppendFormat("{0}<br />", country.Name);
            }

            this.Label1.Html = sb.ToString();
        }
Example #5
0
        protected void SubmitData(object sender, StoreSubmitDataEventArgs e)
        {
            string json = e.Json;
            XmlNode xml = e.Xml;
            List<Country> countries = e.Object<Country>();

            StringBuilder sb = new StringBuilder(255);

            sb.Append("Selected:");

            foreach (Country country in countries)
            {
                sb.AppendFormat("{0},", country.ID);
            }

            this.txtTo1.Text = sb.ToString().Substring(0, sb.ToString().Length - 1);
        }
        protected void btnExport_Click(object sender, EventArgs e)
        {
            XlsDocument xls = new XlsDocument();//新建一个xls文档
            xls.FileName = DateTime.Now.ToString("yyyyMMddHHmmss") + ".xls";

            Worksheet sheet;
            sheet = xls.Workbook.Worksheets.Add(DateTime.Now.ToString("yyyyMMddHHmmss"));

            XF titleXF = xls.NewXF(); // 为xls生成一个XF实例,XF是单元格格式对象
            titleXF.HorizontalAlignment = HorizontalAlignments.Left; // 设定文字居中
            titleXF.VerticalAlignment = VerticalAlignments.Centered; // 垂直居中
            titleXF.UseBorder = false; // 使用边框
            titleXF.Font.Height = 12 * 20; // 字大小(字体大小是以 1/20 point 为单位的)

            XF titleXF1 = xls.NewXF(); // 为xls生成一个XF实例,XF是单元格格式对象
            titleXF1.HorizontalAlignment = HorizontalAlignments.Left; // 设定文字居中
            titleXF1.VerticalAlignment = VerticalAlignments.Centered; // 垂直居中
            titleXF1.UseBorder = false; // 使用边框
            titleXF1.Font.Bold = true;
            titleXF1.Font.Height = 12 * 20; // 字大小(字体大小是以 1/20 point 为单位的)
            // 开始填充数据到单元格
            org.in2bits.MyXls.Cells cells = sheet.Cells;
            cells.Add(1, 1, "NO#", titleXF1);
            cells.Add(1, 2, "Claim Type", titleXF1);
            cells.Add(1, 3, "Amount", titleXF1);
            cells.Add(1, 4, "Owner", titleXF1);
            cells.Add(1, 5, "Process", titleXF1);
            cells.Add(1, 6, "Current Approver", titleXF1);
            cells.Add(1, 7, "Submit Date", titleXF1);
            cells.Add(1, 8, "Remark", titleXF1);

            //添加数据
            string json = GridData.Value.ToString();
            StoreSubmitDataEventArgs eSubmit = new StoreSubmitDataEventArgs(json, null);
            XmlNode xml = eSubmit.Xml;
            XmlDocument doc = new XmlDocument();
            doc.LoadXml(xml.InnerXml);
            for (int i = 0; i < doc.SelectNodes("records").Item(0).SelectNodes("record").Count; i++)
            {
                if (!string.IsNullOrEmpty(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(i).SelectNodes("Tamount").Item(0).InnerXml))
                {
                    cells.Add(2 + i, 3, Convert.ToDouble(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(i).SelectNodes("Tamount").Item(0).InnerXml), titleXF);
                }
                else
                {
                    cells.Add(2 + i, 3, "", titleXF);
                }
                cells.Add(2 + i, 1, doc.SelectNodes("records").Item(0).SelectNodes("record").Item(i).SelectNodes("No").Item(0).InnerXml, titleXF);
                cells.Add(2 + i, 2, doc.SelectNodes("records").Item(0).SelectNodes("record").Item(i).SelectNodes("Type1").Item(0).InnerXml, titleXF);
                cells.Add(2 + i, 4, doc.SelectNodes("records").Item(0).SelectNodes("record").Item(i).SelectNodes("Person").Item(0).InnerXml, titleXF);
                cells.Add(2 + i, 5, doc.SelectNodes("records").Item(0).SelectNodes("record").Item(i).SelectNodes("Status1").Item(0).InnerXml, titleXF);
                cells.Add(2 + i, 6, doc.SelectNodes("records").Item(0).SelectNodes("record").Item(i).SelectNodes("Approver").Item(0).InnerXml, titleXF);
                cells.Add(2 + i, 7, doc.SelectNodes("records").Item(0).SelectNodes("record").Item(i).SelectNodes("CreadedDate").Item(0).InnerXml, titleXF);
                cells.Add(2 + i, 8, doc.SelectNodes("records").Item(0).SelectNodes("record").Item(i).SelectNodes("Remark").Item(0).InnerXml, titleXF);
            }

            xls.Send();
        }
Example #7
0
        protected bool SaveDetail(string detail, string header0string, string header1string, string header2string, string Cur, string dept)
        {
            cs.DBCommand dbc = new cs.DBCommand();
            //删除现有数据
            string deletesql = "delete from ETraveleDetail where [No]='" + hdTravelRequestID.Value.ToString() + "'";
            string newid1 = dbc.UpdateData("eReimbursement", deletesql, "Update");

            SqlConnection sqlConn = new SqlConnection(ConfigurationManager.ConnectionStrings["eReimbursement"].ConnectionString);
            //如果出差站点为空,则不保存信息
            StoreSubmitDataEventArgs eSubmit = new StoreSubmitDataEventArgs(detail, null);
            XmlNode xml = eSubmit.Xml;
            XmlDocument doc = new XmlDocument();
            doc.LoadXml(xml.InnerXml);
            int dtcol = doc.SelectNodes("records").Item(0).SelectNodes("record").Item(0).ChildNodes.Count;
            //doc.SelectNodes("records").Item(0).SelectNodes("record").Item(i).ChildNodes[j].InnerText;
            int dtrow = doc.SelectNodes("records").Item(0).SelectNodes("record").Count;
            int groupcount = (dtcol - 3) / 2;//多少个站点会被更新,如果站点为空则不更新
            decimal psum = 0, csum = 0;//记录该申请单的费用合计
            for (int i = 0; i < groupcount; i++)
            {
                if (header0string.Split(',')[i] != "NA")//站点为空则不更新
                {
                    DataSet ds2 = DIMERCO.SDK.Utilities.LSDK.getUserProfilebyUserList(hdOwnerID.Value.ToString());
                    string station = "",Tstation="";
                    if (ds2.Tables[0].Rows.Count == 1)
                    {
                        DataTable dt1 = ds2.Tables[0];
                        station = dt1.Rows[0]["stationCode"].ToString();
                        DataTable dttemp = new DataTable();
                        string sqltemp = "select * from ESUSER where Userid='" + hdOwnerID.Value.ToString() + "'";
                        dttemp = dbc.GetData("eReimbursement", sqltemp);
                        if (dttemp.Rows.Count > 0)
                        {
                            station = dttemp.Rows[0]["Station"].ToString();
                        }
                    }
                    Tstation = header1string.Split(',')[i] == "NA" ? station : header1string.Split(',')[i];
                    double re = System.Math.Round(DIMERCO.SDK.Utilities.LSDK.GetLatestStationUSDConvertRate(station) / DIMERCO.SDK.Utilities.LSDK.GetLatestStationUSDConvertRate(Tstation), 4);
                    //共新增11行固定数据
                    for (int j = 0; j < 11; j++)
                    {
                        try
                        {
                            SqlCommand scdetail = sqlConn.CreateCommand();
                            scdetail.CommandText = "insert into ETraveleDetail ([No],[Tocity],[AccountCode],[Cur],[Pamount],[Camount],[TSation],[Createdby],[CreadedDate],[Tdate],[Department1],[DetailCode],[Tdate0],[CenterAmountP],[CenterAmountC]) values (@No,@Tocity,@AccountCode,@Cur,@Pamount,@Camount,@TSation,@Createdby,@CreadedDate,@Tdate,@Department1,@DetailCode,@Tdate0,@CenterAmountP,@CenterAmountC)";
                            SqlParameter spdetail = new SqlParameter("@No", SqlDbType.VarChar, 50);
                            spdetail.Value = hdTravelRequestID.Value.ToString();
                            scdetail.Parameters.Add(spdetail);

                            spdetail = new SqlParameter("@Tocity", SqlDbType.VarChar, 10);
                            spdetail.Value = header0string.Split(',')[i];
                            scdetail.Parameters.Add(spdetail);

                            spdetail = new SqlParameter("@AccountCode", SqlDbType.VarChar, 50);
                            switch (j)
                            {
                                case 4:
                                    spdetail.Value = "62010900";
                                    break;
                                case 5:
                                    spdetail.Value = "62011900";
                                    break;
                                case 6:
                                    spdetail.Value = "62010500";
                                    break;
                                default:
                                    spdetail.Value = "62012000";
                                    break;
                            }
                            scdetail.Parameters.Add(spdetail);

                            spdetail = new SqlParameter("@Cur", SqlDbType.VarChar, 50);
                            spdetail.Value = Cur;
                            scdetail.Parameters.Add(spdetail);

                            spdetail = new SqlParameter("@Pamount", SqlDbType.Decimal);
                            if (doc.SelectNodes("records").Item(0).SelectNodes("record").Item(j).ChildNodes[1 + i * 2].InnerText != "")
                            {
                                spdetail.Value = System.Math.Round(Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(j).ChildNodes[1 + i * 2].InnerText), 2);
                                psum += System.Math.Round(Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(j).ChildNodes[1 + i * 2].InnerText), 2);
                            }
                            else
                            {
                                spdetail.Value = DBNull.Value;
                            }
                            scdetail.Parameters.Add(spdetail);

                            spdetail = new SqlParameter("@CenterAmountP", SqlDbType.Decimal);
                            if (doc.SelectNodes("records").Item(0).SelectNodes("record").Item(j).ChildNodes[1 + i * 2].InnerText != "")
                            {
                                spdetail.Value = Convert.ToDecimal(System.Math.Round(Convert.ToDouble(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(j).ChildNodes[1 + i * 2].InnerText) * re, 2));
                                
                            }
                            else
                            {
                                spdetail.Value = DBNull.Value;
                            }
                            scdetail.Parameters.Add(spdetail);

                            spdetail = new SqlParameter("@Camount", SqlDbType.Decimal);
                            if (doc.SelectNodes("records").Item(0).SelectNodes("record").Item(j).ChildNodes[2 + i * 2].InnerText != "")
                            {
                                spdetail.Value = System.Math.Round(Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(j).ChildNodes[2 + i * 2].InnerText), 2);
                                csum += System.Math.Round(Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(j).ChildNodes[2 + i * 2].InnerText), 2);
                            }
                            else
                            {
                                spdetail.Value = DBNull.Value;
                            }
                            scdetail.Parameters.Add(spdetail);

                            spdetail = new SqlParameter("@CenterAmountC", SqlDbType.Decimal);
                            if (doc.SelectNodes("records").Item(0).SelectNodes("record").Item(j).ChildNodes[2 + i * 2].InnerText != "")
                            {
                                spdetail.Value = Convert.ToDecimal(System.Math.Round(Convert.ToDouble(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(j).ChildNodes[2 + i * 2].InnerText) * re, 2));

                            }
                            else
                            {
                                spdetail.Value = DBNull.Value;
                            }
                            scdetail.Parameters.Add(spdetail);

                            spdetail = new SqlParameter("@TSation", SqlDbType.VarChar, 50);
                            spdetail.Value = header1string.Split(',')[i] == "NA" ? "" : header1string.Split(',')[i];
                            scdetail.Parameters.Add(spdetail);

                            spdetail = new SqlParameter("@Createdby", SqlDbType.VarChar, 50);
                            spdetail.Value = hdOwnerID.Value.ToString();
                            scdetail.Parameters.Add(spdetail);

                            spdetail = new SqlParameter("@CreadedDate", SqlDbType.DateTime);
                            spdetail.Value = DateTime.Now;
                            scdetail.Parameters.Add(spdetail);

                            spdetail = new SqlParameter("@Tdate", SqlDbType.DateTime);
                            if (header2string.Split(',')[i * 2 + 1] == "NA")
                            {
                                spdetail.Value = DBNull.Value;
                            }
                            else
                            {
                                spdetail.Value = Convert.ToDateTime(header2string.Split(',')[i * 2 + 1]);
                            }
                            scdetail.Parameters.Add(spdetail);

                            spdetail = new SqlParameter("@Tdate0", SqlDbType.DateTime);
                            if (header2string.Split(',')[i * 2] == "NA")
                            {
                                spdetail.Value = DBNull.Value;
                            }
                            else
                            {
                                spdetail.Value = Convert.ToDateTime(header2string.Split(',')[i * 2]);
                            }
                            scdetail.Parameters.Add(spdetail);

                            spdetail = new SqlParameter("@Department1", SqlDbType.VarChar, 50);
                            spdetail.Value = dept;
                            scdetail.Parameters.Add(spdetail);

                            spdetail = new SqlParameter("@DetailCode", SqlDbType.Int);
                            spdetail.Value = j;
                            scdetail.Parameters.Add(spdetail);

                            sqlConn.Open();
                            int row = scdetail.ExecuteNonQuery();
                            sqlConn.Close();
                        }
                        catch (Exception er)
                        {
                            throw er;
                        }
                    }
                }
            }
            try
            {
                SqlCommand scdetail = sqlConn.CreateCommand();
                scdetail.CommandText = "update ETravel set Pamout=@Pamout,Camount=@Camount,Tamount=@Tamount where [ID]=@ID";
                SqlParameter spdetail = new SqlParameter("@ID", SqlDbType.VarChar, 50);
                spdetail.Value = hdTravelRequestID.Value.ToString();
                scdetail.Parameters.Add(spdetail);

                spdetail = new SqlParameter("@Pamout", SqlDbType.Decimal);
                spdetail.Value = psum;
                scdetail.Parameters.Add(spdetail);

                spdetail = new SqlParameter("@Camount", SqlDbType.Decimal);
                spdetail.Value = csum;
                scdetail.Parameters.Add(spdetail);

                spdetail = new SqlParameter("@Tamount", SqlDbType.Decimal);
                spdetail.Value = psum + csum;
                scdetail.Parameters.Add(spdetail);

                sqlConn.Open();
                int row = scdetail.ExecuteNonQuery();
                sqlConn.Close();
            }
            catch (Exception)
            {

                throw;
            }

            return true;
        }
Example #8
0
        public void SaveAll(string type, string detail, string MailList, string header0string, string header1string, string header2string, string Cur, string dept)
        {
            if (Request.Cookies.Get("eReimUserID") == null || hdUser.Value.ToString() != Request.Cookies.Get("eReimUserID").Value)
            {
                if (Request.Cookies["lang"] != null && Request.Cookies["lang"].Value.ToLower() == "zh-cn")
                {
                    X.AddScript("Ext.Msg.show({ title: '提示', msg: '已切换用户,将刷新页面.', buttons: { ok: 'Ok' }, fn: function (btn) { window.location.reload(); } });");
                }
                else
                {
                    X.AddScript("Ext.Msg.show({ title: 'Message', msg: 'Current user changed,reloading...', buttons: { ok: 'Ok' }, fn: function (btn) { window.location.reload(); } });");
                }
                return;
            }
            
            DateTime dtnull = new DateTime(1, 1, 1, 0, 0, 0);
            cs.DBCommand dbc = new cs.DBCommand();
            ////检查是否已经为该申请人设置过审批人
            string sqlCheckFlow = "";
            //if (Radio1.Checked)
            ////if (cbxBudget.Value.ToString() == "YES")//使用Budget审批流程
            //{
            sqlCheckFlow = "select * from GroupFlow where [Type]!=2 and GID=(select GID from GroupUsers where UserID='" + hdOwnerID.Value.ToString() + "')";
            //}
            //else//使用unBudget审批流程
            //{
            //    sqlCheckFlow = "select * from GroupFlow where [Type]=2 and GID=(select GID from GroupUsers where UserID='" + hdOwnerID.Value.ToString() + "')";
            //}
            DataTable dtGroupFlowData = dbc.GetData("eReimbursement", sqlCheckFlow);
            //if (dtGroupFlowData.Rows.Count < 1)
            //{
            //    if (Request.Cookies["lang"] != null && Request.Cookies["lang"].Value.ToLower() == "zh-cn")
            //    {
            //        ErrorHandle("请先设置审批人.");
            //    }
            //    else
            //    {
            //        ErrorHandle("Not set Approve flow,please contact with Local MIS.");
            //    }
            //    return;
            //}

            //处理抄送人列表
            string CCMailList = "";
            JavaScriptSerializer ser = new JavaScriptSerializer();
            List<CCMailList> CCMailList1 = ser.Deserialize<List<CCMailList>>(MailList);
            foreach (CCMailList mail in CCMailList1)
            {
                CCMailList += mail.Email + ",";
            }
            CCMailList = CCMailList.Length > 0 ? CCMailList.Substring(0, CCMailList.Length - 1) : "";

            string userid = hdOwnerID.Value.ToString();
            string ostation = ""; string station = ""; string department = "";
            DataSet ds2 = DIMERCO.SDK.Utilities.LSDK.getUserProfilebyUserList(userid);
            if (ds2.Tables[0].Rows.Count == 1)
            {
                DataTable dt1 = ds2.Tables[0];
                //dpt = dt1.Rows[0]["DepartmentName"].ToString();
                ostation = dt1.Rows[0]["CostCenter"].ToString();
                station = dt1.Rows[0]["stationCode"].ToString();
                department = dt1.Rows[0]["CRPDepartmentName"].ToString();
                //DataTable dttemp = new DataTable();
                //string sqltemp = "select * from ESUSER where Userid='" + userid + "'";
                //dttemp = dbc.GetData("eReimbursement", sqltemp);
                //if (dttemp.Rows.Count > 0)
                //{
                //    ostation = dttemp.Rows[0]["Station"].ToString();
                //}
            }
            string para = type;
            for (int i = 0; i < header0string.Split(',').Length; i++)
            {
                //判断出差站点名称是否合法
                //if (header0string.Split(',')[i] != "NA")//站点为空则不更新
                //{
                //    bool isstation = DIMERCO.SDK.Utilities.LSDK.isStationExist(header0string.Split(',')[i]);
                //    if (!isstation)//如果不是合法站点,提示可选站点
                //    {
                //        DataSet GetCityInfo = DIMERCO.SDK.Utilities.LSDK.GetCityInfo(header0string.Split(',')[i], 5);
                //        DataTable dtGetCityInfo = (DataTable)GetCityInfo.Tables[0];
                //        string suggestStation = "";
                //        for (int j = 0; j < dtGetCityInfo.Rows.Count; j++)
                //        {
                //            suggestStation += dtGetCityInfo.Rows[j]["CityCode"].ToString() + ",";
                //        }
                //        if (suggestStation.Trim()!="")
                //        {
                //            suggestStation = suggestStation.Substring(0, suggestStation.Length - 1);
                //            X.AddScript("Ext.Msg.show({ title: 'Message', msg: 'Invalid DSTN(" + header0string.Split(',')[i] + ").Suggestion:" + suggestStation + ".', buttons: { ok: 'Ok' }, fn: function (btn) {  } });");
                //            return;
                //        }
                //        else
                //        {
                //            X.AddScript("Ext.Msg.show({ title: 'Message', msg: 'Please input valid DSTN.', buttons: { ok: 'Ok' }, fn: function (btn) {  } });");
                //            return;
                //        }
                //    }
                //}
                //判断成本中心名称是否合法
                if (header0string.Split(',')[i] != "NA" && header1string.Split(',')[i]!="NA")//站点为空则不更新
                {
                    bool isstation = DIMERCO.SDK.Utilities.LSDK.isCostCenterExist(header1string.Split(',')[i]);
                    if (!isstation)//如果不是合法站点,提示可选站点
                    {
                        DataSet GetCityInfo = DIMERCO.SDK.Utilities.LSDK.getCostCenterBYStationCode(header1string.Split(',')[i], 5);
                        DataTable dtGetCityInfo = (DataTable)GetCityInfo.Tables[0];
                        string suggestStation = "";
                        for (int j = 0; j < dtGetCityInfo.Rows.Count; j++)
                        {
                            suggestStation += dtGetCityInfo.Rows[j]["StationCode"].ToString() + ",";
                        }
                        if (suggestStation.Trim() != "")
                        {
                            suggestStation = suggestStation.Substring(0, suggestStation.Length - 1);
                            X.AddScript("Ext.Msg.show({ title: 'Message', msg: 'Invalid Cost Center(" + header1string.Split(',')[i] + ").Suggestion:" + suggestStation + ".', buttons: { ok: 'Ok' }, fn: function (btn) {  } });");
                            return;
                        }
                        else
                        {
                            X.AddScript("Ext.Msg.show({ title: 'Message', msg: 'Please input valid Cost Center.', buttons: { ok: 'Ok' }, fn: function (btn) {  } });");
                            return;
                        }
                    }
                }
            }

            //140306
            if (true)
            {
                DataTable dtbudget = new DataTable();
                dtbudget.Columns.Add("EName", typeof(System.String));
                dtbudget.Columns.Add("COACode", typeof(System.String));
                dtbudget.Columns.Add("Current", typeof(System.Decimal));
                dtbudget.Columns.Add("PU", typeof(System.Decimal));
                dtbudget.Columns.Add("PB", typeof(System.Decimal));
                dtbudget.Columns.Add("PPercent", typeof(System.Decimal));
                dtbudget.Columns.Add("DU", typeof(System.Decimal));
                dtbudget.Columns.Add("DB", typeof(System.Decimal));
                dtbudget.Columns.Add("DPercent", typeof(System.Decimal));
                dtbudget.Columns.Add("SU", typeof(System.Decimal));
                dtbudget.Columns.Add("SB", typeof(System.Decimal));
                dtbudget.Columns.Add("SPercent", typeof(System.Decimal));

                DataTable dtA = new DataTable();
                dtA.Columns.Add("COACode", typeof(System.String));
                dtA.Columns.Add("Amount", typeof(System.Decimal));
                dtA.Columns.Add("Date", typeof(System.DateTime));

                StoreSubmitDataEventArgs eSubmit = new StoreSubmitDataEventArgs(detail, null);
                XmlNode xml = eSubmit.Xml;
                XmlDocument doc = new XmlDocument();
                doc.LoadXml(xml.InnerXml);
                int dtcol = doc.SelectNodes("records").Item(0).SelectNodes("record").Item(0).ChildNodes.Count;
                int dtrow = doc.SelectNodes("records").Item(0).SelectNodes("record").Count;
                int groupcount = (dtcol - 3) / 2;//多少个站点会被更新,如果站点为空则不更新
                //string tstation = "", year = "", month = "", coacode = "";
                for (int i = 0; i < groupcount; i++)
                {
                    if (header0string.Split(',')[i] != "NA")//站点为空则不更新
                    {
                        //1. Air Ticket - Int'l
                        if ((doc.SelectNodes("records").Item(0).SelectNodes("record").Item(0).ChildNodes[1 + i * 2].InnerText != "" && Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(0).ChildNodes[1 + i * 2].InnerText) != 0) || (doc.SelectNodes("records").Item(0).SelectNodes("record").Item(0).ChildNodes[2 + i * 2].InnerText != "" && Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(0).ChildNodes[2 + i * 2].InnerText) != 0))
                        {
                            DataRow drnew = dtA.NewRow();
                            drnew["COACode"] = "62012000";
                            drnew["Date"] = Convert.ToDateTime(header2string.Split(',')[i * 2]);
                            decimal r1 = doc.SelectNodes("records").Item(0).SelectNodes("record").Item(0).ChildNodes[1 + i * 2].InnerText == "" ? 0 : Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(0).ChildNodes[1 + i * 2].InnerText);
                            decimal r2 = doc.SelectNodes("records").Item(0).SelectNodes("record").Item(0).ChildNodes[2 + i * 2].InnerText == "" ? 0 : Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(0).ChildNodes[2 + i * 2].InnerText);
                            drnew["Amount"] = r1 + r2;
                            dtA.Rows.Add(drnew);
                        }
                        //Domestic
                        if ((doc.SelectNodes("records").Item(0).SelectNodes("record").Item(1).ChildNodes[1 + i * 2].InnerText != "" && Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(1).ChildNodes[1 + i * 2].InnerText) != 0) || (doc.SelectNodes("records").Item(0).SelectNodes("record").Item(1).ChildNodes[2 + i * 2].InnerText != "" && Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(1).ChildNodes[2 + i * 2].InnerText) != 0))
                        {
                            DataRow drnew = dtA.NewRow();
                            drnew["COACode"] = "62012000";
                            drnew["Date"] = Convert.ToDateTime(header2string.Split(',')[i * 2]);
                            decimal r1 = doc.SelectNodes("records").Item(0).SelectNodes("record").Item(1).ChildNodes[1 + i * 2].InnerText == "" ? 0 : Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(1).ChildNodes[1 + i * 2].InnerText);
                            decimal r2 = doc.SelectNodes("records").Item(0).SelectNodes("record").Item(1).ChildNodes[2 + i * 2].InnerText == "" ? 0 : Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(1).ChildNodes[2 + i * 2].InnerText);
                            drnew["Amount"] = r1 + r2;
                            dtA.Rows.Add(drnew);
                        }
                        //2. Hotel Bill
                        if ((doc.SelectNodes("records").Item(0).SelectNodes("record").Item(2).ChildNodes[1 + i * 2].InnerText != "" && Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(2).ChildNodes[1 + i * 2].InnerText) != 0) || (doc.SelectNodes("records").Item(0).SelectNodes("record").Item(2).ChildNodes[2 + i * 2].InnerText != "" && Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(2).ChildNodes[2 + i * 2].InnerText) != 0))
                        {
                            DataRow drnew = dtA.NewRow();
                            drnew["COACode"] = "62012000";
                            drnew["Date"] = Convert.ToDateTime(header2string.Split(',')[i * 2]);
                            decimal r1 = doc.SelectNodes("records").Item(0).SelectNodes("record").Item(2).ChildNodes[1 + i * 2].InnerText == "" ? 0 : Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(2).ChildNodes[1 + i * 2].InnerText);
                            decimal r2 = doc.SelectNodes("records").Item(0).SelectNodes("record").Item(2).ChildNodes[2 + i * 2].InnerText == "" ? 0 : Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(2).ChildNodes[2 + i * 2].InnerText);
                            drnew["Amount"] = r1 + r2;
                            dtA.Rows.Add(drnew);
                        }
                        //3. Meals
                        if ((doc.SelectNodes("records").Item(0).SelectNodes("record").Item(3).ChildNodes[1 + i * 2].InnerText != "" && Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(3).ChildNodes[1 + i * 2].InnerText) != 0) || (doc.SelectNodes("records").Item(0).SelectNodes("record").Item(3).ChildNodes[2 + i * 2].InnerText != "" && Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(3).ChildNodes[2 + i * 2].InnerText) != 0))
                        {
                            DataRow drnew = dtA.NewRow();
                            drnew["COACode"] = "62012000";
                            drnew["Date"] = Convert.ToDateTime(header2string.Split(',')[i * 2]);
                            decimal r1 = doc.SelectNodes("records").Item(0).SelectNodes("record").Item(3).ChildNodes[1 + i * 2].InnerText == "" ? 0 : Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(3).ChildNodes[1 + i * 2].InnerText);
                            decimal r2 = doc.SelectNodes("records").Item(0).SelectNodes("record").Item(3).ChildNodes[2 + i * 2].InnerText == "" ? 0 : Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(3).ChildNodes[2 + i * 2].InnerText);
                            drnew["Amount"] = r1 + r2;
                            dtA.Rows.Add(drnew);
                        }
                        //4. Entertainment
                        if ((doc.SelectNodes("records").Item(0).SelectNodes("record").Item(4).ChildNodes[1 + i * 2].InnerText != "" && Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(4).ChildNodes[1 + i * 2].InnerText) != 0) || (doc.SelectNodes("records").Item(0).SelectNodes("record").Item(4).ChildNodes[2 + i * 2].InnerText != "" && Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(4).ChildNodes[2 + i * 2].InnerText) != 0))
                        {
                            DataRow drnew = dtA.NewRow();
                            drnew["COACode"] = "62010900";
                            drnew["Date"] = Convert.ToDateTime(header2string.Split(',')[i * 2]);
                            decimal r1 = doc.SelectNodes("records").Item(0).SelectNodes("record").Item(4).ChildNodes[1 + i * 2].InnerText == "" ? 0 : Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(4).ChildNodes[1 + i * 2].InnerText);
                            decimal r2 = doc.SelectNodes("records").Item(0).SelectNodes("record").Item(4).ChildNodes[2 + i * 2].InnerText == "" ? 0 : Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(4).ChildNodes[2 + i * 2].InnerText);
                            drnew["Amount"] = r1 + r2;
                            dtA.Rows.Add(drnew);
                        }
                        //5. Car Rental/Transportation
                        if ((doc.SelectNodes("records").Item(0).SelectNodes("record").Item(5).ChildNodes[1 + i * 2].InnerText != "" && Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(5).ChildNodes[1 + i * 2].InnerText) != 0) || (doc.SelectNodes("records").Item(0).SelectNodes("record").Item(5).ChildNodes[2 + i * 2].InnerText != "" && Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(5).ChildNodes[2 + i * 2].InnerText) != 0))
                        {
                            DataRow drnew = dtA.NewRow();
                            drnew["COACode"] = "62011900";
                            drnew["Date"] = Convert.ToDateTime(header2string.Split(',')[i * 2]);
                            decimal r1 = doc.SelectNodes("records").Item(0).SelectNodes("record").Item(5).ChildNodes[1 + i * 2].InnerText == "" ? 0 : Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(5).ChildNodes[1 + i * 2].InnerText);
                            decimal r2 = doc.SelectNodes("records").Item(0).SelectNodes("record").Item(5).ChildNodes[2 + i * 2].InnerText == "" ? 0 : Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(5).ChildNodes[2 + i * 2].InnerText);
                            drnew["Amount"] = r1 + r2;
                            dtA.Rows.Add(drnew);
                        }
                        //6. Communication
                        if ((doc.SelectNodes("records").Item(0).SelectNodes("record").Item(6).ChildNodes[1 + i * 2].InnerText != "" && Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(6).ChildNodes[1 + i * 2].InnerText) != 0) || (doc.SelectNodes("records").Item(0).SelectNodes("record").Item(6).ChildNodes[2 + i * 2].InnerText != "" && Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(6).ChildNodes[2 + i * 2].InnerText) != 0))
                        {
                            DataRow drnew = dtA.NewRow();
                            drnew["COACode"] = "62010500";
                            drnew["Date"] = Convert.ToDateTime(header2string.Split(',')[i * 2]);
                            decimal r1 = doc.SelectNodes("records").Item(0).SelectNodes("record").Item(6).ChildNodes[1 + i * 2].InnerText == "" ? 0 : Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(6).ChildNodes[1 + i * 2].InnerText);
                            decimal r2 = doc.SelectNodes("records").Item(0).SelectNodes("record").Item(6).ChildNodes[2 + i * 2].InnerText == "" ? 0 : Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(6).ChildNodes[2 + i * 2].InnerText);
                            drnew["Amount"] = r1 + r2;
                            dtA.Rows.Add(drnew);
                        }
                        //7. Local Trip
                        if ((doc.SelectNodes("records").Item(0).SelectNodes("record").Item(7).ChildNodes[1 + i * 2].InnerText != "" && Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(7).ChildNodes[1 + i * 2].InnerText) != 0) || (doc.SelectNodes("records").Item(0).SelectNodes("record").Item(7).ChildNodes[2 + i * 2].InnerText != "" && Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(7).ChildNodes[2 + i * 2].InnerText) != 0))
                        {
                            DataRow drnew = dtA.NewRow();
                            drnew["COACode"] = "62012000";
                            drnew["Date"] = Convert.ToDateTime(header2string.Split(',')[i * 2]);
                            decimal r1 = doc.SelectNodes("records").Item(0).SelectNodes("record").Item(7).ChildNodes[1 + i * 2].InnerText == "" ? 0 : Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(7).ChildNodes[1 + i * 2].InnerText);
                            decimal r2 = doc.SelectNodes("records").Item(0).SelectNodes("record").Item(7).ChildNodes[2 + i * 2].InnerText == "" ? 0 : Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(7).ChildNodes[2 + i * 2].InnerText);
                            drnew["Amount"] = r1 + r2;
                            dtA.Rows.Add(drnew);
                        }
                        //8. Overseas Trip USD15/day
                        if ((doc.SelectNodes("records").Item(0).SelectNodes("record").Item(8).ChildNodes[1 + i * 2].InnerText != "" && Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(8).ChildNodes[1 + i * 2].InnerText) != 0) || (doc.SelectNodes("records").Item(0).SelectNodes("record").Item(8).ChildNodes[2 + i * 2].InnerText != "" && Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(8).ChildNodes[2 + i * 2].InnerText) != 0))
                        {
                            DataRow drnew = dtA.NewRow();
                            drnew["COACode"] = "62012000";
                            drnew["Date"] = Convert.ToDateTime(header2string.Split(',')[i * 2]);
                            decimal r1 = doc.SelectNodes("records").Item(0).SelectNodes("record").Item(8).ChildNodes[1 + i * 2].InnerText == "" ? 0 : Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(8).ChildNodes[1 + i * 2].InnerText);
                            decimal r2 = doc.SelectNodes("records").Item(0).SelectNodes("record").Item(8).ChildNodes[2 + i * 2].InnerText == "" ? 0 : Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(8).ChildNodes[2 + i * 2].InnerText);
                            drnew["Amount"] = r1 + r2;
                            dtA.Rows.Add(drnew);
                        }
                        //9. Airport Tax/Travel Insurance
                        if ((doc.SelectNodes("records").Item(0).SelectNodes("record").Item(9).ChildNodes[1 + i * 2].InnerText != "" && Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(9).ChildNodes[1 + i * 2].InnerText) != 0) || (doc.SelectNodes("records").Item(0).SelectNodes("record").Item(9).ChildNodes[2 + i * 2].InnerText != "" && Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(9).ChildNodes[2 + i * 2].InnerText) != 0))
                        {
                            DataRow drnew = dtA.NewRow();
                            drnew["COACode"] = "62012000";
                            drnew["Date"] = Convert.ToDateTime(header2string.Split(',')[i * 2]);
                            decimal r1 = doc.SelectNodes("records").Item(0).SelectNodes("record").Item(9).ChildNodes[1 + i * 2].InnerText == "" ? 0 : Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(9).ChildNodes[1 + i * 2].InnerText);
                            decimal r2 = doc.SelectNodes("records").Item(0).SelectNodes("record").Item(9).ChildNodes[2 + i * 2].InnerText == "" ? 0 : Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(9).ChildNodes[2 + i * 2].InnerText);
                            drnew["Amount"] = r1 + r2;
                            dtA.Rows.Add(drnew);
                        }
                        //10. Others
                        if ((doc.SelectNodes("records").Item(0).SelectNodes("record").Item(10).ChildNodes[1 + i * 2].InnerText != "" && Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(10).ChildNodes[1 + i * 2].InnerText) != 0) || (doc.SelectNodes("records").Item(0).SelectNodes("record").Item(10).ChildNodes[2 + i * 2].InnerText != "" && Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(10).ChildNodes[2 + i * 2].InnerText) != 0))
                        {
                            DataRow drnew = dtA.NewRow();
                            drnew["COACode"] = "62012000";
                            drnew["Date"] = Convert.ToDateTime(header2string.Split(',')[i * 2]);
                            decimal r1 = doc.SelectNodes("records").Item(0).SelectNodes("record").Item(10).ChildNodes[1 + i * 2].InnerText == "" ? 0 : Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(10).ChildNodes[1 + i * 2].InnerText);
                            decimal r2 = doc.SelectNodes("records").Item(0).SelectNodes("record").Item(10).ChildNodes[2 + i * 2].InnerText == "" ? 0 : Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(10).ChildNodes[2 + i * 2].InnerText);
                            drnew["Amount"] = r1 + r2;
                            dtA.Rows.Add(drnew);
                        }
                    }
                }
                
                //合计
                DataTable dtB = new DataTable();
                dtB.Columns.Add("COACode", typeof(System.String));
                dtB.Columns.Add("Amount", typeof(System.Decimal));
                if (dtA.Compute("Sum(Amount)", "COACode = 62010900").ToString() != "" && Convert.ToDecimal(dtA.Compute("Sum(Amount)", "COACode = 62010900").ToString()) != 0)
                {
                    DataRow dr = dtB.NewRow();
                    dr["COACode"] = "62010900";
                    dr["Amount"] = Convert.ToDecimal(dtA.Compute("Sum(Amount)", "COACode = 62010900").ToString());
                    dtB.Rows.Add(dr);
                }
                if (dtA.Compute("Sum(Amount)", "COACode = 62011900").ToString() != "" && Convert.ToDecimal(dtA.Compute("Sum(Amount)", "COACode = 62011900").ToString()) != 0)
                {
                    DataRow dr = dtB.NewRow();
                    dr["COACode"] = "62011900";
                    dr["Amount"] = Convert.ToDecimal(dtA.Compute("Sum(Amount)", "COACode = 62011900").ToString());
                    dtB.Rows.Add(dr);
                }
                if (dtA.Compute("Sum(Amount)", "COACode = 62010500").ToString() != "" && Convert.ToDecimal(dtA.Compute("Sum(Amount)", "COACode = 62010500").ToString()) != 0)
                {
                    DataRow dr = dtB.NewRow();
                    dr["COACode"] = "62010500";
                    dr["Amount"] = Convert.ToDecimal(dtA.Compute("Sum(Amount)", "COACode = 62010500").ToString());
                    dtB.Rows.Add(dr);
                }
                if (dtA.Compute("Sum(Amount)", "COACode = 62012000").ToString() != "" && Convert.ToDecimal(dtA.Compute("Sum(Amount)", "COACode = 62012000").ToString()) != 0)
                {
                    DataRow dr = dtB.NewRow();
                    dr["COACode"] = "62012000";
                    dr["Amount"] = Convert.ToDecimal(dtA.Compute("Sum(Amount)", "COACode = 62012000").ToString());
                    dtB.Rows.Add(dr);
                }

                ////取得传递预算的参数
                //string userid = dt.Rows[0]["PersonID"].ToString();
                //string dpt = dt.Rows[0]["Department"].ToString();
                //string ostation = dt.Rows[0]["CostCenter"].ToString();//预算站点,与基本信息中的CostCenter一致(Station2)
                string tstation = ostation;//Etravel表中的Station2,目前与预算站点一致,不允许更改
                string year = Convert.ToDateTime(dtA.Compute("Min(Date)", "").ToString()).Year.ToString();
                string month = Convert.ToDateTime(dtA.Compute("Min(Date)", "").ToString()).Month.ToString();
                //string accountcode = "";
                //for (int g = 0; g < dtB.Rows.Count; g++)
                //{
                //    if (Convert.ToDecimal(dtB.Rows[g]["Amount"].ToString()) != 0)
                //    {
                //        DataRow dr = dtbudget.NewRow();
                //        dr["Current"] = Convert.ToDecimal(dtB.Rows[g]["Amount"].ToString());
                //        dr["Type"] = dtB.Rows[g]["Type"].ToString();
                //        accountcode = dtB.Rows[g]["Type"].ToString();
                //        DataTable dtC = new DataTable();
                //        dtC = Comm.RtnEB(userid, dpt, ostation, tstation, accountcode, year, month);
                //        for (int i = 0; i < dtC.Rows.Count; i++)
                //        {
                //            if (dtC.Rows[i]["Type"].ToString() == "全年个人")
                //            {
                //                dr["PU"] = Convert.ToDecimal(dtC.Rows[i]["Used"].ToString());
                //                dr["PB"] = Convert.ToDecimal(dtC.Rows[i]["Budget"].ToString());
                //            }
                //            else if (dtC.Rows[i]["Type"].ToString() == "全年部门")
                //            {
                //                dr["DU"] = Convert.ToDecimal(dtC.Rows[i]["Used"].ToString());
                //                dr["DB"] = Convert.ToDecimal(dtC.Rows[i]["Budget"].ToString());
                //            }
                //            else if (dtC.Rows[i]["Type"].ToString() == "全年站点")
                //            {
                //                dr["SU"] = Convert.ToDecimal(dtC.Rows[i]["Used"].ToString());
                //                dr["SB"] = Convert.ToDecimal(dtC.Rows[i]["Budget"].ToString());
                //            }
                //        }
                //        dtbudget.Rows.Add(dr);
                //    }
                //}
                ////计算%,取得名称
                //for (int i = 0; i < dtbudget.Rows.Count; i++)
                //{
                //    if (Convert.ToDecimal(dtbudget.Rows[i]["PB"].ToString()) != 0)//如果Budget不为0,则计算%
                //    {
                //        dtbudget.Rows[i]["PPercent"] = System.Math.Round(Convert.ToDecimal(dtbudget.Rows[i]["PU"].ToString()) / Convert.ToDecimal(dtbudget.Rows[i]["PB"].ToString()), 4) * 100;
                //    }
                //    if (Convert.ToDecimal(dtbudget.Rows[i]["DB"].ToString()) != 0)//如果Budget不为0,则计算%
                //    {
                //        dtbudget.Rows[i]["DPercent"] = System.Math.Round(Convert.ToDecimal(dtbudget.Rows[i]["DU"].ToString()) / Convert.ToDecimal(dtbudget.Rows[i]["DB"].ToString()), 4) * 100;
                //    }
                //    if (Convert.ToDecimal(dtbudget.Rows[i]["SB"].ToString()) != 0)//如果Budget不为0,则计算%
                //    {
                //        dtbudget.Rows[i]["SPercent"] = System.Math.Round(Convert.ToDecimal(dtbudget.Rows[i]["SU"].ToString()) / Convert.ToDecimal(dtbudget.Rows[i]["SB"].ToString()), 4) * 100;
                //    }
                //    if (dtbudget.Rows[i]["Type"].ToString() == "62010900")
                //    {
                //        dtbudget.Rows[i]["EName"] = "Travel expense";
                //    }
                //    else if (dtbudget.Rows[i]["Type"].ToString() == "62011900")
                //    {
                //        dtbudget.Rows[i]["EName"] = "Entertainment";
                //    }
                //    else if (dtbudget.Rows[i]["Type"].ToString() == "62010500")
                //    {
                //        dtbudget.Rows[i]["EName"] = "Transportation";
                //    }
                //    else if (dtbudget.Rows[i]["Type"].ToString() == "62012000")
                //    {
                //        dtbudget.Rows[i]["EName"] = "Communication";
                //    }
                //}

                //bool PB = false, DB = false, SB = false;
                //for (int i = 0; i < dtbudget.Rows.Count; i++)
                //{
                //    if (Convert.ToDecimal(dtbudget.Rows[i]["PB"].ToString()) != 0)//是否显示个人预算列
                //    {
                //        PB = true;
                //    }
                //    if (Convert.ToDecimal(dtbudget.Rows[i]["DB"].ToString()) != 0)//是否显示部门预算列
                //    {
                //        DB = true;
                //    }
                //    if (Convert.ToDecimal(dtbudget.Rows[i]["SB"].ToString()) != 0)//是否显示站点预算列
                //    {
                //        SB = true;
                //    }
                //}
                ////添加数据列
                //var cm = GridPanelBudget.ColumnModel;
                //cm.Columns.Add(new Column
                //{
                //    DataIndex = "EName",
                //    Header = "Expense Item",
                //    Sortable = false,
                //    Resizable = false,
                //    MenuDisabled = true,
                //    Width = 100
                //});
                //cm.Columns.Add(new Column
                //{
                //    DataIndex = "Current",
                //    Header = "Current",
                //    Renderer = new Renderer { Fn = "GetNumber" },
                //    Sortable = false,
                //    Resizable = false,
                //    MenuDisabled = true,
                //    Width = 100
                //});
                ////显示个人预算部分
                //if (PB)
                //{
                //    cm.Columns.Add(new Column
                //    {
                //        DataIndex = "PU",
                //        Header = "Personal Used",
                //        Renderer = new Renderer { Fn = "GetNumber" },
                //        Sortable = false,
                //        Resizable = false,
                //        MenuDisabled = true,
                //        Width = 100
                //    });
                //    cm.Columns.Add(new Column
                //    {
                //        DataIndex = "PB",
                //        Header = "Personal Budget",
                //        Renderer = new Renderer { Fn = "GetNumber" },
                //        Sortable = false,
                //        Resizable = false,
                //        MenuDisabled = true,
                //        Width = 100
                //    });
                //    cm.Columns.Add(new Column
                //    {
                //        DataIndex = "PPercent",
                //        Header = "%(Used/Budget)",
                //        Renderer = new Renderer { Fn = "GetNumberPercent" },
                //        Sortable = false,
                //        Resizable = false,
                //        MenuDisabled = true,
                //        Width = 100
                //    });
                //}
                //if (DB)
                //{
                //    cm.Columns.Add(new Column
                //    {
                //        DataIndex = "DU",
                //        Header = "Department Used",
                //        Renderer = new Renderer { Fn = "GetNumber" },
                //        Sortable = false,
                //        Resizable = false,
                //        MenuDisabled = true,
                //        Width = 100
                //    });
                //    cm.Columns.Add(new Column
                //    {
                //        DataIndex = "DB",
                //        Header = "Department Budget",
                //        Renderer = new Renderer { Fn = "GetNumber" },
                //        Sortable = false,
                //        Resizable = false,
                //        MenuDisabled = true,
                //        Width = 100
                //    });
                //    cm.Columns.Add(new Column
                //    {
                //        DataIndex = "DPercent",
                //        Header = "%(Used/Budget)",
                //        Renderer = new Renderer { Fn = "GetNumberPercent" },
                //        Sortable = false,
                //        Resizable = false,
                //        MenuDisabled = true,
                //        Width = 100
                //    });
                //}
                //if (SB)
                //{
                //    cm.Columns.Add(new Column
                //    {
                //        DataIndex = "SU",
                //        Header = "Unit Used",
                //        Renderer = new Renderer { Fn = "GetNumber" },
                //        Sortable = false,
                //        Resizable = false,
                //        MenuDisabled = true,
                //        Width = 100
                //    });
                //    cm.Columns.Add(new Column
                //    {
                //        DataIndex = "SB",
                //        Header = "Unit Budget",
                //        Renderer = new Renderer { Fn = "GetNumber" },
                //        Sortable = false,
                //        Resizable = false,
                //        MenuDisabled = true,
                //        Width = 100
                //    });
                //    cm.Columns.Add(new Column
                //    {
                //        DataIndex = "SPercent",
                //        Header = "%(Used/Budget)",
                //        Renderer = new Renderer { Fn = "GetNumberPercent" },
                //        Sortable = false,
                //        Resizable = false,
                //        MenuDisabled = true,
                //        Width = 100
                //    });
                //}
                //StoreBudget.DataSource = dtbudget;
                //StoreBudget.DataBind();
            }
            string srr = "";
            return;
            //判断Budget下是否符合预算要求
            DataTable dtlocal = new DataTable();
            dtlocal.Columns.Add(new DataColumn("Station", typeof(System.String)));
            dtlocal.Columns.Add(new DataColumn("COACode", typeof(System.String)));
            dtlocal.Columns.Add(new DataColumn("Year", typeof(System.Int16)));
            dtlocal.Columns.Add(new DataColumn("Month", typeof(System.Int16)));
            dtlocal.Columns.Add(new DataColumn("Amount", typeof(System.Decimal)));
            if (Radio1.Checked)
            //if (cbxBudget.Value.ToString() == "YES")
            {
                StoreSubmitDataEventArgs eSubmit = new StoreSubmitDataEventArgs(detail, null);
                XmlNode xml = eSubmit.Xml;
                XmlDocument doc = new XmlDocument();
                doc.LoadXml(xml.InnerXml);
                int dtcol = doc.SelectNodes("records").Item(0).SelectNodes("record").Item(0).ChildNodes.Count;
                //doc.SelectNodes("records").Item(0).SelectNodes("record").Item(i).ChildNodes[j].InnerText;
                int dtrow = doc.SelectNodes("records").Item(0).SelectNodes("record").Count;
                int groupcount = (dtcol - 3) / 2;//多少个站点会被更新,如果站点为空则不更新
                //string tstation = "", year = "", month = "", coacode = "";
                for (int i = 0; i < groupcount; i++)
                {
                    if (header0string.Split(',')[i] != "NA")//站点为空则不更新
                    {
                        //处理数据,准备合并后比较预算
                        string costcenter = header1string.Split(',')[i] == "NA" ? ostation : header1string.Split(',')[i];
                        //1. Air Ticket - Int'l
                        if ((doc.SelectNodes("records").Item(0).SelectNodes("record").Item(0).ChildNodes[1 + i * 2].InnerText != "" && Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(0).ChildNodes[1 + i * 2].InnerText) != 0) || (doc.SelectNodes("records").Item(0).SelectNodes("record").Item(0).ChildNodes[2 + i * 2].InnerText != "" && Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(0).ChildNodes[2 + i * 2].InnerText) != 0))
                        {
                            DataRow drnew = dtlocal.NewRow();
                            drnew["Station"] = costcenter;
                            drnew["Year"] = Convert.ToDateTime(header2string.Split(',')[i * 2 + 1]).Year.ToString();
                            drnew["Month"] = Convert.ToDateTime(header2string.Split(',')[i * 2 + 1]).Month.ToString();
                            drnew["COACode"] = "62012000";
                            decimal r1 = doc.SelectNodes("records").Item(0).SelectNodes("record").Item(0).ChildNodes[1 + i * 2].InnerText == "" ? 0 : Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(0).ChildNodes[1 + i * 2].InnerText);
                            decimal r2 = doc.SelectNodes("records").Item(0).SelectNodes("record").Item(0).ChildNodes[2 + i * 2].InnerText == "" ? 0 : Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(0).ChildNodes[2 + i * 2].InnerText);
                            drnew["Amount"] = r1 + r2;
                            dtlocal.Rows.Add(drnew);
                        }
                        //Domestic
                        if ((doc.SelectNodes("records").Item(0).SelectNodes("record").Item(1).ChildNodes[1 + i * 2].InnerText != "" && Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(1).ChildNodes[1 + i * 2].InnerText) != 0) || (doc.SelectNodes("records").Item(0).SelectNodes("record").Item(1).ChildNodes[2 + i * 2].InnerText != "" && Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(1).ChildNodes[2 + i * 2].InnerText) != 0))
                        {
                            DataRow drnew = dtlocal.NewRow();
                            drnew["Station"] = costcenter;
                            drnew["Year"] = Convert.ToDateTime(header2string.Split(',')[i * 2 + 1]).Year.ToString();
                            drnew["Month"] = Convert.ToDateTime(header2string.Split(',')[i * 2 + 1]).Month.ToString();
                            drnew["COACode"] = "62012000";
                            decimal r1 = doc.SelectNodes("records").Item(0).SelectNodes("record").Item(1).ChildNodes[1 + i * 2].InnerText == "" ? 0 : Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(1).ChildNodes[1 + i * 2].InnerText);
                            decimal r2 = doc.SelectNodes("records").Item(0).SelectNodes("record").Item(1).ChildNodes[2 + i * 2].InnerText == "" ? 0 : Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(1).ChildNodes[2 + i * 2].InnerText);
                            drnew["Amount"] = r1 + r2;
                            dtlocal.Rows.Add(drnew);
                        }
                        //2. Hotel Bill
                        if ((doc.SelectNodes("records").Item(0).SelectNodes("record").Item(2).ChildNodes[1 + i * 2].InnerText != "" && Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(2).ChildNodes[1 + i * 2].InnerText) != 0) || (doc.SelectNodes("records").Item(0).SelectNodes("record").Item(2).ChildNodes[2 + i * 2].InnerText != "" && Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(2).ChildNodes[2 + i * 2].InnerText) != 0))
                        {
                            DataRow drnew = dtlocal.NewRow();
                            drnew["Station"] = costcenter;
                            drnew["Year"] = Convert.ToDateTime(header2string.Split(',')[i * 2 + 1]).Year.ToString();
                            drnew["Month"] = Convert.ToDateTime(header2string.Split(',')[i * 2 + 1]).Month.ToString();
                            drnew["COACode"] = "62012000";
                            decimal r1 = doc.SelectNodes("records").Item(0).SelectNodes("record").Item(2).ChildNodes[1 + i * 2].InnerText == "" ? 0 : Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(2).ChildNodes[1 + i * 2].InnerText);
                            decimal r2 = doc.SelectNodes("records").Item(0).SelectNodes("record").Item(2).ChildNodes[2 + i * 2].InnerText == "" ? 0 : Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(2).ChildNodes[2 + i * 2].InnerText);
                            drnew["Amount"] = r1 + r2;
                            dtlocal.Rows.Add(drnew);
                        }
                        //3. Meals
                        if ((doc.SelectNodes("records").Item(0).SelectNodes("record").Item(3).ChildNodes[1 + i * 2].InnerText != "" && Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(3).ChildNodes[1 + i * 2].InnerText) != 0) || (doc.SelectNodes("records").Item(0).SelectNodes("record").Item(3).ChildNodes[2 + i * 2].InnerText != "" && Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(3).ChildNodes[2 + i * 2].InnerText) != 0))
                        {
                            DataRow drnew = dtlocal.NewRow();
                            drnew["Station"] = costcenter;
                            drnew["Year"] = Convert.ToDateTime(header2string.Split(',')[i * 2 + 1]).Year.ToString();
                            drnew["Month"] = Convert.ToDateTime(header2string.Split(',')[i * 2 + 1]).Month.ToString();
                            drnew["COACode"] = "62012000";
                            decimal r1 = doc.SelectNodes("records").Item(0).SelectNodes("record").Item(3).ChildNodes[1 + i * 2].InnerText == "" ? 0 : Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(3).ChildNodes[1 + i * 2].InnerText);
                            decimal r2 = doc.SelectNodes("records").Item(0).SelectNodes("record").Item(3).ChildNodes[2 + i * 2].InnerText == "" ? 0 : Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(3).ChildNodes[2 + i * 2].InnerText);
                            drnew["Amount"] = r1 + r2;
                            dtlocal.Rows.Add(drnew);
                        }
                        //4. Entertainment
                        if ((doc.SelectNodes("records").Item(0).SelectNodes("record").Item(4).ChildNodes[1 + i * 2].InnerText != "" && Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(4).ChildNodes[1 + i * 2].InnerText) != 0) || (doc.SelectNodes("records").Item(0).SelectNodes("record").Item(4).ChildNodes[2 + i * 2].InnerText != "" && Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(4).ChildNodes[2 + i * 2].InnerText) != 0))
                        {
                            DataRow drnew = dtlocal.NewRow();
                            drnew["Station"] = costcenter;
                            drnew["Year"] = Convert.ToDateTime(header2string.Split(',')[i * 2 + 1]).Year.ToString();
                            drnew["Month"] = Convert.ToDateTime(header2string.Split(',')[i * 2 + 1]).Month.ToString();
                            drnew["COACode"] = "62010900";
                            decimal r1 = doc.SelectNodes("records").Item(0).SelectNodes("record").Item(4).ChildNodes[1 + i * 2].InnerText == "" ? 0 : Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(4).ChildNodes[1 + i * 2].InnerText);
                            decimal r2 = doc.SelectNodes("records").Item(0).SelectNodes("record").Item(4).ChildNodes[2 + i * 2].InnerText == "" ? 0 : Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(4).ChildNodes[2 + i * 2].InnerText);
                            drnew["Amount"] = r1 + r2;
                            dtlocal.Rows.Add(drnew);
                        }
                        //5. Car Rental/Transportation
                        if ((doc.SelectNodes("records").Item(0).SelectNodes("record").Item(5).ChildNodes[1 + i * 2].InnerText != "" && Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(5).ChildNodes[1 + i * 2].InnerText) != 0) || (doc.SelectNodes("records").Item(0).SelectNodes("record").Item(5).ChildNodes[2 + i * 2].InnerText != "" && Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(5).ChildNodes[2 + i * 2].InnerText) != 0))
                        {
                            DataRow drnew = dtlocal.NewRow();
                            drnew["Station"] = costcenter;
                            drnew["Year"] = Convert.ToDateTime(header2string.Split(',')[i * 2 + 1]).Year.ToString();
                            drnew["Month"] = Convert.ToDateTime(header2string.Split(',')[i * 2 + 1]).Month.ToString();
                            drnew["COACode"] = "62011900";
                            decimal r1 = doc.SelectNodes("records").Item(0).SelectNodes("record").Item(5).ChildNodes[1 + i * 2].InnerText == "" ? 0 : Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(5).ChildNodes[1 + i * 2].InnerText);
                            decimal r2 = doc.SelectNodes("records").Item(0).SelectNodes("record").Item(5).ChildNodes[2 + i * 2].InnerText == "" ? 0 : Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(5).ChildNodes[2 + i * 2].InnerText);
                            drnew["Amount"] = r1 + r2;
                            dtlocal.Rows.Add(drnew);
                        }
                        //6. Communication
                        if ((doc.SelectNodes("records").Item(0).SelectNodes("record").Item(6).ChildNodes[1 + i * 2].InnerText != "" && Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(6).ChildNodes[1 + i * 2].InnerText) != 0) || (doc.SelectNodes("records").Item(0).SelectNodes("record").Item(6).ChildNodes[2 + i * 2].InnerText != "" && Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(6).ChildNodes[2 + i * 2].InnerText) != 0))
                        {
                            DataRow drnew = dtlocal.NewRow();
                            drnew["Station"] = costcenter;
                            drnew["Year"] = Convert.ToDateTime(header2string.Split(',')[i * 2 + 1]).Year.ToString();
                            drnew["Month"] = Convert.ToDateTime(header2string.Split(',')[i * 2 + 1]).Month.ToString();
                            drnew["COACode"] = "62010500";
                            decimal r1 = doc.SelectNodes("records").Item(0).SelectNodes("record").Item(6).ChildNodes[1 + i * 2].InnerText == "" ? 0 : Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(6).ChildNodes[1 + i * 2].InnerText);
                            decimal r2 = doc.SelectNodes("records").Item(0).SelectNodes("record").Item(6).ChildNodes[2 + i * 2].InnerText == "" ? 0 : Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(6).ChildNodes[2 + i * 2].InnerText);
                            drnew["Amount"] = r1 + r2;
                            dtlocal.Rows.Add(drnew);
                        }
                        //7. Local Trip
                        if ((doc.SelectNodes("records").Item(0).SelectNodes("record").Item(7).ChildNodes[1 + i * 2].InnerText != "" && Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(7).ChildNodes[1 + i * 2].InnerText) != 0) || (doc.SelectNodes("records").Item(0).SelectNodes("record").Item(7).ChildNodes[2 + i * 2].InnerText != "" && Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(7).ChildNodes[2 + i * 2].InnerText) != 0))
                        {
                            DataRow drnew = dtlocal.NewRow();
                            drnew["Station"] = costcenter;
                            drnew["Year"] = Convert.ToDateTime(header2string.Split(',')[i * 2 + 1]).Year.ToString();
                            drnew["Month"] = Convert.ToDateTime(header2string.Split(',')[i * 2 + 1]).Month.ToString();
                            drnew["COACode"] = "62012000";
                            decimal r1 = doc.SelectNodes("records").Item(0).SelectNodes("record").Item(7).ChildNodes[1 + i * 2].InnerText == "" ? 0 : Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(7).ChildNodes[1 + i * 2].InnerText);
                            decimal r2 = doc.SelectNodes("records").Item(0).SelectNodes("record").Item(7).ChildNodes[2 + i * 2].InnerText == "" ? 0 : Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(7).ChildNodes[2 + i * 2].InnerText);
                            drnew["Amount"] = r1 + r2;
                            dtlocal.Rows.Add(drnew);
                        }
                        //8. Overseas Trip USD15/day
                        if ((doc.SelectNodes("records").Item(0).SelectNodes("record").Item(8).ChildNodes[1 + i * 2].InnerText != "" && Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(8).ChildNodes[1 + i * 2].InnerText) != 0) || (doc.SelectNodes("records").Item(0).SelectNodes("record").Item(8).ChildNodes[2 + i * 2].InnerText != "" && Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(8).ChildNodes[2 + i * 2].InnerText) != 0))
                        {
                            DataRow drnew = dtlocal.NewRow();
                            drnew["Station"] = costcenter;
                            drnew["Year"] = Convert.ToDateTime(header2string.Split(',')[i * 2 + 1]).Year.ToString();
                            drnew["Month"] = Convert.ToDateTime(header2string.Split(',')[i * 2 + 1]).Month.ToString();
                            drnew["COACode"] = "62012000";
                            decimal r1 = doc.SelectNodes("records").Item(0).SelectNodes("record").Item(8).ChildNodes[1 + i * 2].InnerText == "" ? 0 : Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(8).ChildNodes[1 + i * 2].InnerText);
                            decimal r2 = doc.SelectNodes("records").Item(0).SelectNodes("record").Item(8).ChildNodes[2 + i * 2].InnerText == "" ? 0 : Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(8).ChildNodes[2 + i * 2].InnerText);
                            drnew["Amount"] = r1 + r2;
                            dtlocal.Rows.Add(drnew);
                        }
                        //9. Airport Tax/Travel Insurance
                        if ((doc.SelectNodes("records").Item(0).SelectNodes("record").Item(9).ChildNodes[1 + i * 2].InnerText != "" && Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(9).ChildNodes[1 + i * 2].InnerText) != 0) || (doc.SelectNodes("records").Item(0).SelectNodes("record").Item(9).ChildNodes[2 + i * 2].InnerText != "" && Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(9).ChildNodes[2 + i * 2].InnerText) != 0))
                        {
                            DataRow drnew = dtlocal.NewRow();
                            drnew["Station"] = costcenter;
                            drnew["Year"] = Convert.ToDateTime(header2string.Split(',')[i * 2 + 1]).Year.ToString();
                            drnew["Month"] = Convert.ToDateTime(header2string.Split(',')[i * 2 + 1]).Month.ToString();
                            drnew["COACode"] = "62012000";
                            decimal r1 = doc.SelectNodes("records").Item(0).SelectNodes("record").Item(9).ChildNodes[1 + i * 2].InnerText == "" ? 0 : Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(9).ChildNodes[1 + i * 2].InnerText);
                            decimal r2 = doc.SelectNodes("records").Item(0).SelectNodes("record").Item(9).ChildNodes[2 + i * 2].InnerText == "" ? 0 : Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(9).ChildNodes[2 + i * 2].InnerText);
                            drnew["Amount"] = r1 + r2;
                            dtlocal.Rows.Add(drnew);
                        }
                        //10. Others
                        if ((doc.SelectNodes("records").Item(0).SelectNodes("record").Item(10).ChildNodes[1 + i * 2].InnerText != "" && Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(10).ChildNodes[1 + i * 2].InnerText) != 0) || (doc.SelectNodes("records").Item(0).SelectNodes("record").Item(10).ChildNodes[2 + i * 2].InnerText != "" && Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(10).ChildNodes[2 + i * 2].InnerText) != 0))
                        {
                            DataRow drnew = dtlocal.NewRow();
                            drnew["Station"] = costcenter;
                            drnew["Year"] = Convert.ToDateTime(header2string.Split(',')[i * 2 + 1]).Year.ToString();
                            drnew["Month"] = Convert.ToDateTime(header2string.Split(',')[i * 2 + 1]).Month.ToString();
                            drnew["COACode"] = "62012000";
                            decimal r1 = doc.SelectNodes("records").Item(0).SelectNodes("record").Item(10).ChildNodes[1 + i * 2].InnerText == "" ? 0 : Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(10).ChildNodes[1 + i * 2].InnerText);
                            decimal r2 = doc.SelectNodes("records").Item(0).SelectNodes("record").Item(10).ChildNodes[2 + i * 2].InnerText == "" ? 0 : Convert.ToDecimal(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(10).ChildNodes[2 + i * 2].InnerText);
                            drnew["Amount"] = r1 + r2;
                            dtlocal.Rows.Add(drnew);
                        }
                    }
                }
            }
            decimal sum1 = 0M;
            DataTable dt3 = new DataTable();
            dt3.Columns.Add(new DataColumn("Station",typeof(System.String)));
            dt3.Columns.Add(new DataColumn("Year", typeof(System.Int16)));
            dt3.Columns.Add(new DataColumn("COACode", typeof(System.String)));
            dt3.Columns.Add(new DataColumn("Amount", typeof(System.Decimal)));
            DataTable drnw = new DataTable();
            dtlocal.DefaultView.Sort = "Station ASC,Year ASC,COACode ASC";
            drnw = dtlocal.DefaultView.ToTable();

            for (int i = 0; i < drnw.Rows.Count; i++)
            {
                sum1 += Convert.ToDecimal(drnw.Rows[i]["Amount"].ToString());
                if (i == drnw.Rows.Count - 1)//第一行,也是最后一行
                {
                    DataRow dr3 = dt3.NewRow();
                    dr3["Station"] = drnw.Rows[i]["Station"].ToString();
                    dr3["Year"] = Convert.ToInt16(drnw.Rows[i]["Year"].ToString());
                    dr3["COACode"] = drnw.Rows[i]["COACode"].ToString();
                    dr3["Amount"] = sum1;
                    dt3.Rows.Add(dr3);
                }
                else
                {
                    if ((drnw.Rows[i]["Station"].ToString() != drnw.Rows[i + 1]["Station"].ToString()) || (drnw.Rows[i]["Year"].ToString() != drnw.Rows[i + 1]["Year"].ToString()) || (drnw.Rows[i]["COACode"].ToString() != drnw.Rows[i + 1]["COACode"].ToString()))
                    {
                        //与下一行内容不同,新增一行合计后重置sum1
                        DataRow dr3 = dt3.NewRow();
                        dr3["Station"] = drnw.Rows[i]["Station"].ToString();
                        dr3["Year"] = Convert.ToInt16(drnw.Rows[i]["Year"].ToString());
                        dr3["COACode"] = drnw.Rows[i]["COACode"].ToString();
                        dr3["Amount"] = sum1;
                        dt3.Rows.Add(dr3);
                        sum1 = 0M;
                    }
                }
            }
            string warningmsg = "";
            for (int i = 0; i < dt3.Rows.Count; i++)
            {
                decimal budgetstation = 0M, budgetusedstation = 0M;
                DataTable dt4 = new DataTable();
                dt4 = Comm.RtnEB(userid, department, ostation, dt3.Rows[i]["Station"].ToString(), dt3.Rows[i]["COACode"].ToString(), dt3.Rows[i]["Year"].ToString(), "1");
                for (int j = 0; j < dt4.Rows.Count; j++)
                {
                    if (dt4.Rows[j]["Type"].ToString() == "全年站点")
                    {
                        budgetstation = Convert.ToDecimal(dt4.Rows[j]["Budget"].ToString());
                        budgetusedstation = Convert.ToDecimal(dt4.Rows[j]["Used"].ToString());
                        if (ostation!=dt3.Rows[i]["Station"].ToString())
                        {
                            budgetstation = Convert.ToDecimal(System.Math.Round(Convert.ToDouble(dt4.Rows[j]["Budget"].ToString()) * (DIMERCO.SDK.Utilities.LSDK.GetLatestStationUSDConvertRate(dt3.Rows[i]["Station"].ToString()) / DIMERCO.SDK.Utilities.LSDK.GetLatestStationUSDConvertRate(ostation)), 2));
                            budgetusedstation = Convert.ToDecimal(System.Math.Round(Convert.ToDouble(dt4.Rows[j]["Used"].ToString()) * (DIMERCO.SDK.Utilities.LSDK.GetLatestStationUSDConvertRate(dt3.Rows[i]["Station"].ToString()) / DIMERCO.SDK.Utilities.LSDK.GetLatestStationUSDConvertRate(ostation)), 2));
                        }
                        break;
                    }
                }
                if (dt3.Rows[i]["COACode"].ToString() == "62012000")
                {
                    if (Convert.ToDecimal(dt3.Rows[i]["Amount"].ToString()) + budgetusedstation - budgetstation > Convert.ToDecimal(6.01)*500)
                    {
                        X.AddScript("Ext.Msg.show({ title: 'Message', msg: '差旅费部分超出 " + dt3.Rows[i]["Station"].ToString() + " 全年预算总额500美元以上,仅可按<a style=\"color:Red\">Un-Budget</a>流程申请,是否接受?', buttons: { ok: 'Ok',cancel:'No' }, fn: function (btn) { if(btn=='ok'){Radio2.setValue(true);}else{return false;} } });");
                        //X.AddScript("Ext.Msg.show({ title: 'Message', msg: '差旅费部分超出 " + dt3.Rows[i]["Station"].ToString() + " 全年预算总额500美元以上,仅可按<a style=\"color:Red\">Un-Budget</a>流程申请.', buttons: { ok: 'Ok' }, fn: function (btn) { return false; } });");
                        return;
                    }
                }
                else
                {
                    if (Convert.ToDecimal(dt3.Rows[i]["Amount"].ToString()) + budgetusedstation - budgetstation > Convert.ToDecimal(6.01) * 500)
                    {
                        string rw = "";
                        switch (dt3.Rows[i]["COACode"].ToString())
                        {
                            case "62010900":
                                rw = "交际费";
                                break;
                            case "62011900":
                                rw = "交通费";
                                break;
                            case "62010500":
                                rw = "通讯费";
                                break;
                            default:
                                break;
                        }
                        warningmsg += rw + "部分超出 " + dt3.Rows[i]["Station"].ToString() + " 全年预算总额500美元以上.";
                    }
                }
            }
            
            if (warningmsg.Length>0)
            {
                //X.AddScript("Ext.Msg.show({ title: 'Message', msg: '" + warningmsg + "', buttons: { ok: 'Ok' }, fn: function (btn) { RM.SaveAll1('" + type + "','" + detail + "','" + MailList + "','" + header0string + "','" + header1string + "','" + header2string + "','" + Cur + "','" + dept + "',{eventMask:{showMask:true,target:'Page'}}); } });");
                X.AddScript("Ext.Msg.show({ title: 'Message', msg: '" + warningmsg + "', buttons: { ok: 'Ok' }, fn: function (btn) { SaveAll1('" + type + "','" + warningmsg + "')} });");
            }
            else
            {
                if (para == "ND")//保存并申请
                {
                    if (hdTravelRequestID.Value.ToString() == "")//直接新增申请,不通过草稿
                    {
                        string word = "[No],[Person],[Station],[Department],[ReportFile],[Tamount],[Pamout],[Camount],[CreadedBy],[CreadedDate],[Attach],[Remark],[Bdate],[Edate],[PersonID],[CreadedByID],[ApplyDate],[CCMailList],[Budget],[Station2]";
                        string value = "";
                        value += "'" + station + DateTime.Now.Year.ToString().Substring(2, 2) + DateTime.Now.Month.ToString().PadLeft(2, '0') + "',";//edit
                        value += "'" + hdOwner.Value.ToString() + "',"; value += "'" + station + "',"; value += "'" + department + "',";//edit
                        value += "'" + hdReport.Value.ToString() + "',";
                        value += hdSum.Value.ToString() == "" ? "null" : hdSum.Value.ToString();
                        value += "," + (hdPamountSum.Value.ToString() == "" ? "null" : hdPamountSum.Value.ToString());
                        value += "," + (hdCamountSum.Value.ToString() == "" ? "null" : hdCamountSum.Value.ToString());
                        value += ",'" + Request.Cookies.Get("eReimUserName").Value + "'";//edit
                        value += ",'" + DateTime.Now.ToString("yyyy/MM/dd hh:mm:ss") + "',";
                        value += "'" + hdScanFile.Value.ToString() + "',";
                        value += "'" + txtRemark.Text.Replace("'", "''") + "',";
                        value += "null,null";
                        value += ",'" + hdOwnerID.Value.ToString() + "'";
                        value += ",'" + Request.Cookies.Get("eReimUserID").Value + "'";
                        value += ",'" + DateTime.Now.ToString("yyyy/MM/dd hh:mm:ss") + "'";
                        value += ",'" + CCMailList + "'";
                        value += "," + (Radio1.Checked ? "1" : "0");
                        //value += "," + (cbxBudget.Value.ToString() == "YES" ? "1" : "0");
                        value += ",'" + ostation + "'";
                        string updatesql = "insert into ETravel (" + word + ") values(" + value + ");update ETravel set [No]=[No]+(select [MonthCount]=right('0000'+cast(count(ID) as varchar(10)),4) from ETravel where (month(ApplyDate) in (select month(ApplyDate) from ETravel where [ID]=@@IDENTITY) and (year(ApplyDate) in (select year(ApplyDate) from ETravel where [ID]=@@IDENTITY)) and Station=(select Station from ETravel where ID=@@IDENTITY)))+'T' where ID=@@IDENTITY;select [msg]=convert(varchar,ID)+','+[No] from ETravel where ID=@@IDENTITY";

                        string newid = dbc.UpdateData("eReimbursement", updatesql, "Insert");

                        string rows = "";
                        for (int i = 0; i < dtGroupFlowData.Rows.Count; i++)
                        {
                            string wordflow = "[No],[Type],[Station],[Department],[Person],[CreadedBy],[CreatedDate],[Tamount],[Step],[Status],[Approver],[ApproverID],[RequestID],[FlowFn]";
                            if (dtGroupFlowData.Rows[i]["FlowNo"].ToString() == "1")
                            {
                                wordflow += ",[Active]";
                            }
                            string valueflow = "";
                            valueflow += "'" + newid.Split(',')[1] + "',";
                            valueflow += "'T',";
                            valueflow += "'" + station + "',";
                            valueflow += "'" + department + "',";
                            valueflow += "'" + hdOwner.Value.ToString() + "',";
                            valueflow += "'" + Request.Cookies.Get("eReimUserName").Value + "',";
                            valueflow += "'" + DateTime.Now.ToString("yyyy/MM/dd hh:mm:ss") + "',";
                            valueflow += hdSum.Value.ToString() == "" ? "null," : hdSum.Value.ToString() + ",";
                            valueflow += dtGroupFlowData.Rows[i]["FlowNo"].ToString() + ",";
                            valueflow += "1,";
                            valueflow += "'" + dtGroupFlowData.Rows[i]["FlowUser"].ToString() + "',";
                            valueflow += "'" + dtGroupFlowData.Rows[i]["FlowUserid"].ToString() + "',";
                            valueflow += "'" + newid.Split(',')[0] + "'";
                            valueflow += ",'" + (dtGroupFlowData.Rows[i]["Fn"].ToString() == "" ? "Approver" : dtGroupFlowData.Rows[i]["Fn"].ToString()) + "'";
                            if (dtGroupFlowData.Rows[i]["FlowNo"].ToString() == "1")
                            {
                                valueflow += ",1";
                            }
                            string sqlupdateEFlow = "insert into Eflow (" + wordflow + ") values(" + valueflow + ")";
                            rows = dbc.UpdateData("eReimbursement", sqlupdateEFlow, "Update");
                        }
                        if (newid == "-1" || rows == "-1" || rows == "")
                        {
                            ErrorHandle("Data Error.");
                            return;
                        }
                        else
                        {
                            hdTravelRequestID.Value = newid.Split(',')[0];//新增后记录ID
                            hdTravelRequestNo.Value = newid.Split(',')[1];//新增后记录No

                            if (!SaveDetail(detail, header0string, header1string, header2string, Cur, dept) || !SendMail(warningmsg))
                            {
                                ErrorHandle("Data Error.");
                                return;
                            }
                            if (Request.Cookies["lang"] != null && Request.Cookies["lang"].Value.ToLower() == "zh-cn")
                            {
                                Panel3.Title = "差旅费申请单: " + newid.Split(',')[1];
                                UpdateMSG("保存申请单:" + newid.Split(',')[1] + "成功.");
                            }
                            else
                            {
                                Panel3.Title = "Travel Expense Form: " + newid.Split(',')[1];
                                UpdateMSG("Saved Travel Expense Form: " + newid.Split(',')[1] + " successfully.");
                            }

                        }
                        //
                    }
                    else//由草稿升级为正式申请
                    {
                        string updatesql = "update ETravel set [Person]='" + hdOwner.Value.ToString();
                        updatesql += "',[Station]='" + station;
                        updatesql += "',[Department]='" + department;
                        updatesql += "',[ReportFile]='" + hdReport.Value.ToString();
                        updatesql += "',[Tamount]=" + (hdSum.Value.ToString() == "" ? "null" : hdSum.Value.ToString());
                        updatesql += ",[Pamout]=" + (hdPamountSum.Value.ToString() == "" ? "null" : hdPamountSum.Value.ToString());
                        updatesql += ",[Camount]=" + (hdCamountSum.Value.ToString() == "" ? "null" : hdCamountSum.Value.ToString());
                        updatesql += ",[Remark]='" + txtRemark.Text.Replace("'", "''") + "'";
                        updatesql += ",[Attach]='" + hdScanFile.Value.ToString() + "'";
                        updatesql += ",[Type]=0";
                        updatesql += ",[PersonID]='" + hdOwnerID.Value.ToString() + "'";
                        string oldno = hdTravelRequestNo.Value.ToString();
                        string newno = hdTravelRequestNo.Value.ToString().Substring(0, hdTravelRequestNo.Value.ToString().Length - 1);
                        updatesql += ",[No]='" + newno + "',";
                        updatesql += "[CreadedDate]='" + DateTime.Now.ToString("yyyy/MM/dd hh:mm:ss") + "',";
                        updatesql += "[CreadedBy]='" + Request.Cookies.Get("eReimUserName").Value + "',";
                        updatesql += "[CreadedByID]='" + Request.Cookies.Get("eReimUserID").Value + "'";
                        updatesql += ",[CCMailList]='" + CCMailList + "'";
                        updatesql += ",[Budget]=" + (Radio1.Checked ? "1" : "0");
                        //updatesql += ",[Budget]=" + (cbxBudget.Value.ToString() == "YES" ? "1" : "0");
                        updatesql += ",[Station2]='" + ostation + "'";
                        updatesql += " where ID=" + hdTravelRequestID.Value.ToString();

                        string newid = dbc.UpdateData("eReimbursement", updatesql, "Update");

                        //操作Flow表
                        string sqlDeleteEflow = "delete from Eflow where [Type]='T' and [RequestID]='" + hdTravelRequestID.Value.ToString() + "'";
                        string deleterows = dbc.UpdateData("eReimbursement", sqlDeleteEflow, "Update");
                        string rows = "";
                        for (int i = 0; i < dtGroupFlowData.Rows.Count; i++)
                        {
                            string wordflow = "[No],[Type],[Station],[Department],[Person],[CreadedBy],[CreatedDate],[Tamount],[Step],[Status],[Approver],[ApproverID],[RequestID],[FlowFn]";
                            if (dtGroupFlowData.Rows[i]["FlowNo"].ToString() == "1")
                            {
                                wordflow += ",[Active]";
                            }
                            string valueflow = "";
                            valueflow += "'" + newno + "',";
                            valueflow += "'T',";
                            valueflow += "'" + station + "',";
                            valueflow += "'" + department + "',";
                            valueflow += "'" + hdOwner.Value.ToString() + "',";
                            valueflow += "'" + Request.Cookies.Get("eReimUserName").Value + "',";
                            valueflow += "'" + DateTime.Now.ToString("yyyy/MM/dd hh:mm:ss") + "',";
                            valueflow += hdSum.Value.ToString() == "" ? "null," : hdSum.Value.ToString() + ",";
                            valueflow += dtGroupFlowData.Rows[i]["FlowNo"].ToString() + ",";
                            valueflow += "1,";
                            valueflow += "'" + dtGroupFlowData.Rows[i]["FlowUser"].ToString() + "',";
                            valueflow += "'" + dtGroupFlowData.Rows[i]["FlowUserid"].ToString() + "',";
                            valueflow += hdTravelRequestID.Value.ToString();
                            valueflow += ",'" + (dtGroupFlowData.Rows[i]["Fn"].ToString() == "" ? "Approver" : dtGroupFlowData.Rows[i]["Fn"].ToString()) + "'";
                            if (dtGroupFlowData.Rows[i]["FlowNo"].ToString() == "1")
                            {
                                valueflow += ",1";
                            }
                            string sqlupdateEFlow = "insert into Eflow (" + wordflow + ") values(" + valueflow + ")";
                            rows = dbc.UpdateData("eReimbursement", sqlupdateEFlow, "Update");
                        }
                        //
                        if (newid == "-1" || rows == "-1" || rows == "")
                        {
                            ErrorHandle("Data Error.");
                            return;
                        }
                        else
                        {
                            hdTravelRequestNo.Value = newno;

                            if (!SaveDetail(detail, header0string, header1string, header2string, Cur, dept) || !SendMail(warningmsg))
                            {
                                ErrorHandle("Data Error.");
                                return;
                            }


                            if (Request.Cookies["lang"] != null && Request.Cookies["lang"].Value.ToLower() == "zh-cn")
                            {
                                Panel3.Title = "差旅费申请单:" + newno;
                                UpdateMSG("保存差旅费申请单:" + hdTravelRequestNo.Value.ToString() + "成功.");
                            }
                            else
                            {
                                Panel3.Title = "Travel Expense Form: " + newno;
                                UpdateMSG("Saved Travel Expense Form: " + hdTravelRequestNo.Value.ToString() + " successfully.");
                            }

                        }
                    }
                    X.AddScript("btnAddDSTN.disable();btnGeteLeave.disable();btnSaveDraft.disable();btnSaveAndSend.disable();Radio1.disable();Radio2.disable();btnExport.enable();btnCC.disable();");
                    //X.AddScript("btnAddDSTN.disable();btnGeteLeave.disable();btnSaveDraft.disable();btnSaveAndSend.disable();cbxBudget.setReadOnly(true);btnExport.enable();btnCC.disable();");
                }
                else//保存草稿
                {
                    if (hdTravelRequestID.Value.ToString() != "")//由链接进入的草稿更新
                    {
                        string updatesql = "update ETravel set [Person]='" + hdOwner.Value.ToString();
                        updatesql += "',[Station]='" + station;
                        updatesql += "',[Department]='" + department;
                        updatesql += "',[ReportFile]='" + hdReport.Value.ToString();
                        updatesql += "',[Tamount]=" + (hdSum.Value.ToString() == "" ? "null" : hdSum.Value.ToString());
                        updatesql += ",[Pamout]=" + (hdPamountSum.Value.ToString() == "" ? "null" : hdPamountSum.Value.ToString());
                        updatesql += ",[Camount]=" + (hdCamountSum.Value.ToString() == "" ? "null" : hdCamountSum.Value.ToString());
                        updatesql += ",[Remark]='" + txtRemark.Text.Replace("'", "''") + "'";
                        updatesql += ",[Attach]='" + hdScanFile.Value.ToString() + "'";
                        updatesql += ",[PersonID]='" + hdOwnerID.Value.ToString() + "'";
                        updatesql += ",[CCMailList]='" + CCMailList + "'";
                        updatesql += ",[Budget]=" + (Radio1.Checked ? "1" : "0");
                        //updatesql += ",[Budget]=" + (cbxBudget.Value.ToString() == "YES" ? "1" : "0");
                        updatesql += ",[Station2]='" + ostation + "'";
                        updatesql += " where ID=" + hdTravelRequestID.Value.ToString();

                        string newid = dbc.UpdateData("eReimbursement", updatesql, "Update");

                        if (newid == "-1")
                        {
                            ErrorHandle("Data Error.");
                            return;
                        }
                        else
                        {
                            if (!SaveDetail(detail, header0string, header1string, header2string, Cur, dept))
                            {
                                ErrorHandle("Data Error.");
                                return;
                            }
                            //hdTravelRequestID.Value = newid.Split(',')[0];//新增后记录ID
                            //Panel3.Title = "差旅费申请单:" + newid.Split(',')[1];
                            //X.AddScript("GridPanel2.submitData();");
                            if (Request.Cookies["lang"] != null && Request.Cookies["lang"].Value.ToLower() == "zh-cn")
                            {
                                UpdateMSG("保存差旅费申请单草稿: " + hdTravelRequestNo.Value.ToString() + "成功.");
                            }
                            else
                            {
                                UpdateMSG("Saved Travel Expense Draft: " + hdTravelRequestNo.Value.ToString() + " successfully.");
                            }
                        }

                    }
                    else//如果ID为空则判断为新增草稿
                    {
                        string word = "[No],[Person],[Station],[Department],[ReportFile],[Tamount],[Pamout],[Camount],[Attach],[Remark],[Bdate],[Edate],[Type],[PersonID],[ApplyDate],[CCMailList],[Station2],[Budget]";
                        string value = "";
                        value += "'" + station + DateTime.Now.Year.ToString().Substring(2, 2) + DateTime.Now.Month.ToString().PadLeft(2, '0') + "',";//edit
                        value += "'" + hdOwner.Value.ToString() + "',"; value += "'" + station + "',"; value += "'" + department + "',";//edit
                        value += "'" + hdReport.Value.ToString() + "',";
                        value += (hdSum.Value.ToString() == "" ? "null" : hdSum.Value.ToString());
                        value += "," + (hdPamountSum.Value.ToString() == "" ? "null" : hdPamountSum.Value.ToString());
                        value += "," + (hdCamountSum.Value.ToString() == "" ? "null" : hdCamountSum.Value.ToString());
                        value += ",'" + hdScanFile.Value.ToString() + "',";
                        value += "'" + txtRemark.Text.Replace("'", "''") + "',";
                        value += "null,null,";
                        value += "1";//标识为草稿
                        value += ",'" + hdOwnerID.Value.ToString() + "'";
                        value += ",'" + DateTime.Now.ToString("yyyy/MM/dd hh:mm:ss") + "'";
                        value += ",'" + CCMailList + "'";
                        value += ",'" + ostation + "'";
                        value += "," + (Radio1.Checked ? "1" : "0");
                        //value += "," + (cbxBudget.Value.ToString() == "YES" ? "1" : "0");
                        string updatesql = "insert into ETravel (" + word + ") values(" + value + ");update ETravel set [No]=[No]+(select [MonthCount]=right('0000'+cast(count(ID) as varchar(10)),4) from ETravel where (month(ApplyDate) in (select month(ApplyDate) from ETravel where [ID]=@@IDENTITY) and (year(ApplyDate) in (select year(ApplyDate) from ETravel where [ID]=@@IDENTITY)) and Station=(select Station from ETravel where ID=@@IDENTITY)))+'TD' where ID=@@IDENTITY;select [msg]=convert(varchar,ID)+','+[No] from ETravel where ID=@@IDENTITY";

                        string newid = dbc.UpdateData("eReimbursement", updatesql, "Insert");

                        //操作Flow表
                        string wordflow = "[No],[Type],[Station],[Department],[Person],[CreadedBy],[CreatedDate],[Tamount],[RequestID],[Active]";
                        string valueflow = "";
                        valueflow += "'" + newid.Split(',')[1] + "',";
                        valueflow += "'T',";
                        valueflow += "'" + station + "',";
                        valueflow += "'" + department + "',";
                        valueflow += "'" + hdOwner.Value.ToString() + "',";
                        valueflow += "'" + Request.Cookies.Get("eReimUserName").Value + "',";
                        valueflow += "'" + DateTime.Now.ToString("yyyy/MM/dd hh:mm:ss") + "',";
                        valueflow += hdSum.Value.ToString() == "" ? "null," : hdSum.Value.ToString() + ",";
                        valueflow += "'" + newid.Split(',')[0] + "'";
                        valueflow += ",1";
                        string sqlupdateEFlow = "insert into Eflow (" + wordflow + ") values(" + valueflow + ")";
                        string rows = dbc.UpdateData("eReimbursement", sqlupdateEFlow, "Update");
                        //
                        if (newid == "-1" || rows == "-1")
                        {
                            ErrorHandle("Data Error."); return;
                        }
                        else
                        {
                            hdTravelRequestID.Value = newid.Split(',')[0];//新增后记录ID
                            hdTravelRequestNo.Value = newid.Split(',')[1];//新增后记录No
                            if (!SaveDetail(detail, header0string, header1string, header2string, Cur, dept))
                            {
                                ErrorHandle("Data Error.");
                                return;
                            }
                            if (Request.Cookies["lang"] != null && Request.Cookies["lang"].Value.ToLower() == "zh-cn")
                            {
                                Panel3.Title = "差旅费申请单草稿: " + newid.Split(',')[1];
                                UpdateMSG("新增差旅费申请单草稿: " + newid.Split(',')[1] + "成功.");
                            }
                            else
                            {
                                Panel3.Title = "Travel Expense Draft: " + newid.Split(',')[1];
                                UpdateMSG("Added Travel Expense Draft: " + newid.Split(',')[1] + " successfully.");
                            }
                        }
                    }
                }
            }
        }
Example #9
0
        public void AddCol(string StoreData, string header0string, string header1string, string header2string, string DSTN, string LeaveDate1, string LeaveDate2)
        {
            StoreSubmitDataEventArgs eSubmit = new StoreSubmitDataEventArgs(StoreData, null);
            XmlNode xml = eSubmit.Xml;
            XmlDocument doc = new XmlDocument();
            doc.LoadXml(xml.InnerXml);
            int dtcol = doc.SelectNodes("records").Item(0).SelectNodes("record").Item(0).ChildNodes.Count;
            int colc = (dtcol - 3) / 2;
            DataTable dt = new DataTable();

            Store2.Reader[0].Fields.Add("Category", RecordFieldType.String);
            dt.Columns.Add(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(0).ChildNodes[0].Name, typeof(String));
            for (int i = 0; i < (dtcol - 3) / 2; i++)
            {
                Store2.Reader[0].Fields.Add("Station_" + i.ToString() + "_P", RecordFieldType.String);
                Store2.Reader[0].Fields.Add("Station_" + i.ToString() + "_C", RecordFieldType.String);
                dt.Columns.Add("Station_" + i.ToString() + "_P", typeof(String));
                dt.Columns.Add("Station_" + i.ToString() + "_C", typeof(String));
            }
            string fieldPNameNew = "Station_" + colc.ToString() + "_P";
            Store2.Reader[0].Fields.Add(fieldPNameNew, RecordFieldType.String);
            string fieldCNameNew = "Station_" + colc.ToString() + "_C";
            Store2.Reader[0].Fields.Add(fieldCNameNew, RecordFieldType.String);
            dt.Columns.Add(fieldPNameNew, typeof(String));
            dt.Columns.Add(fieldCNameNew, typeof(String));
            //合计列
            Store2.Reader[0].Fields.Add("TotalP", RecordFieldType.String);
            Store2.Reader[0].Fields.Add("TotalC", RecordFieldType.String);
            dt.Columns.Add("TotalP", typeof(String));
            dt.Columns.Add("TotalC", typeof(String));
            //decimal row0Psum = 0, row0Csum = 0, row1Psum = 0, row1Csum = 0, row2Psum = 0, row2Csum = 0, row3Psum = 0, row3Csum = 0, row4Psum = 0, row4Csum = 0, row5Psum = 0, row5Csum = 0, row6Psum = 0, row6Csum = 0, row7Psum = 0, row7Csum = 0, row8Psum = 0, row8Csum = 0, row9Psum = 0, row9Csum = 0, row10Psum = 0, row10Csum = 0;

            for (int i = 0; i < doc.SelectNodes("records").Item(0).SelectNodes("record").Count - 1; i++)
            {
                DataRow dr = dt.NewRow();
                dt.Rows.Add(dr);
                for (int j = 0; j < dtcol - 3; j++)
                {
                    string wr = doc.SelectNodes("records").Item(0).SelectNodes("record").Item(i).ChildNodes[j].InnerText;
                    dt.Rows[i][j] = doc.SelectNodes("records").Item(0).SelectNodes("record").Item(i).ChildNodes[j].InnerText;
                }
            }
            dt.Rows.Add(dt.NewRow());
            dt.Rows[11][0] = "Total";
            for (int i = 0; i < 11; i++)
            {
                for (int j = 1; j < dtcol - 3; j++)
                {
                    if (j % 2 == 1)
                    {
                        dt.Rows[i][dtcol - 1] = (Convert.ToDecimal(dt.Rows[i][dtcol - 1].ToString() == "" ? "0" : dt.Rows[i][dtcol - 1].ToString()) + Convert.ToDecimal(dt.Rows[i][j].ToString() == "" ? "0" : dt.Rows[i][j].ToString())).ToString() == "0" ? "" : (Convert.ToDecimal(dt.Rows[i][dtcol - 1].ToString() == "" ? "0" : dt.Rows[i][dtcol - 1].ToString()) + Convert.ToDecimal(dt.Rows[i][j].ToString() == "" ? "0" : dt.Rows[i][j].ToString())).ToString();
                        dt.Rows[11][dtcol - 1] = (Convert.ToDecimal(dt.Rows[11][dtcol - 1].ToString() == "" ? "0" : dt.Rows[11][dtcol - 1].ToString()) + Convert.ToDecimal(dt.Rows[i][j].ToString() == "" ? "0" : dt.Rows[i][j].ToString())).ToString() == "0" ? "" : (Convert.ToDecimal(dt.Rows[11][dtcol - 1].ToString() == "" ? "0" : dt.Rows[11][dtcol - 1].ToString()) + Convert.ToDecimal(dt.Rows[i][j].ToString() == "" ? "0" : dt.Rows[i][j].ToString())).ToString();
                    }
                    else
                    {
                        dt.Rows[i][dtcol] = (Convert.ToDecimal(dt.Rows[i][dtcol].ToString() == "" ? "0" : dt.Rows[i][dtcol].ToString()) + Convert.ToDecimal(dt.Rows[i][j].ToString() == "" ? "0" : dt.Rows[i][j].ToString())).ToString() == "0" ? "" : (Convert.ToDecimal(dt.Rows[i][dtcol].ToString() == "" ? "0" : dt.Rows[i][dtcol].ToString()) + Convert.ToDecimal(dt.Rows[i][j].ToString() == "" ? "0" : dt.Rows[i][j].ToString())).ToString();
                        dt.Rows[11][dtcol] = (Convert.ToDecimal(dt.Rows[11][dtcol].ToString() == "" ? "0" : dt.Rows[11][dtcol].ToString()) + Convert.ToDecimal(dt.Rows[i][j].ToString() == "" ? "0" : dt.Rows[i][j].ToString())).ToString() == "0" ? "" : (Convert.ToDecimal(dt.Rows[11][dtcol].ToString() == "" ? "0" : dt.Rows[11][dtcol].ToString()) + Convert.ToDecimal(dt.Rows[i][j].ToString() == "" ? "0" : dt.Rows[i][j].ToString())).ToString();
                    }
                    dt.Rows[11][j] = (Convert.ToDecimal(dt.Rows[11][j].ToString() == "" ? "0" : dt.Rows[11][j].ToString()) + Convert.ToDecimal(dt.Rows[i][j].ToString() == "" ? "0" : dt.Rows[i][j].ToString())).ToString() == "0" ? "" : (Convert.ToDecimal(dt.Rows[11][j].ToString() == "" ? "0" : dt.Rows[11][j].ToString()) + Convert.ToDecimal(dt.Rows[i][j].ToString() == "" ? "0" : dt.Rows[i][j].ToString())).ToString();
                }
            }

            Store2.DataSource = dt;
            Store2.DataBind();

            var TitleCol = new Column();
            TitleCol.DataIndex = "Category";
            TitleCol.Sortable = false;
            TitleCol.Resizable = false;
            TitleCol.MenuDisabled = true;
            TitleCol.Width = 180;
            this.GridPanel2.ColumnModel.Columns.Add(TitleCol);

            var Title1 = new Ext.Net.Label();
            Title1.Text = "Destination:";
            HeaderColumn hcTitle1 = new HeaderColumn();
            hcTitle1.Component.Add(Title1);
            this.GridPanel2.GetView().HeaderRows[0].Columns.Add(hcTitle1);

            var Title2 = new Ext.Net.Label();
            Title2.Text = "Cost Center:";
            HeaderColumn hcTitle2 = new HeaderColumn();
            hcTitle2.Component.Add(Title2);
            this.GridPanel2.GetView().HeaderRows[1].Columns.Add(hcTitle2);

            var Title3 = new Ext.Net.Label();
            Title3.Text = "Travel Period:";
            HeaderColumn hcTitle3 = new HeaderColumn();
            hcTitle3.Component.Add(Title3);
            this.GridPanel2.GetView().HeaderRows[2].Columns.Add(hcTitle3);
            //取得出差站点列表
            DataSet GetCityInfo = DIMERCO.SDK.Utilities.LSDK.GetCityInfo("", 8000);
            DataTable dtstation = GetCityInfo.Tables[0];
            //取得成本中心列表
            DataSet GetCCInfo = DIMERCO.SDK.Utilities.LSDK.getCostCenterBYStationCode("", 8000);
            DataTable dtCC = GetCCInfo.Tables[0];
            for (int i = 0; i < colc; i++)//准备复制已有信息
            {
                string fieldPName = "Station_" + i.ToString() + "_P";
                //RecordField field1 = new RecordField(fieldAName, RecordFieldType.Float);
                //Store2.Reader[0].Fields.Add(fieldPName, RecordFieldType.Float);
                //this.Store2.AddField(field1, columncount);
                string fieldCName = "Station_" + i.ToString() + "_C";
                //RecordField field1 = new RecordField(fieldAName, RecordFieldType.Float);
                //Store2.Reader[0].Fields.Add(fieldCName, RecordFieldType.Float);

                var txtP = new Ext.Net.NumberField();
                //txtP.Listeners.Blur.Fn = "Cal";
                var colP = new Column();
                colP.Header = "Person Pay";
                colP.DataIndex = fieldPName;
                colP.Sortable = false;
                colP.Resizable = false;
                colP.MenuDisabled = true;
                colP.Width = 110;
                colP.Editor.Add(txtP);
                this.GridPanel2.ColumnModel.Columns.Add(colP);

                var txtC = new Ext.Net.NumberField();
                //txtC.Listeners.Blur.Fn = "Cal";
                var colC = new Column();
                colC.Header = "Company Pay";
                colC.DataIndex = fieldCName;
                colC.Sortable = false;
                colC.Resizable = false;
                colC.MenuDisabled = true;
                colC.Width = 110;
                colC.Editor.Add(txtC);
                this.GridPanel2.ColumnModel.Columns.Add(colC);

                var Station = new Ext.Net.TextField();
                if (header0string.Split(',')[i] != "NA")
                {
                    Station.Text = header0string.Split(',')[i];
                }
                HeaderColumn hcStation = new HeaderColumn();
                hcStation.Component.Add(Station);
                this.GridPanel2.GetView().HeaderRows[0].Columns.Add(hcStation);


                var Button = new Ext.Net.Button();
                Button.Text = "Remove";
                Button.Listeners.Click.Handler = "removecol(this," + i.ToString() + ");";
                Button.Listeners.Click.Delay = 50;
                HeaderColumn hcButton = new HeaderColumn();
                hcButton.Component.Add(Button);
                this.GridPanel2.GetView().HeaderRows[0].Columns.Add(hcButton);

                var CostCenter = new Ext.Net.TextField();
                CostCenter.Disabled = true;
                CostCenter.EmptyText = "Station Code";
                if (header1string.Split(',')[i] != "NA")
                {
                    CostCenter.Text = header1string.Split(',')[i];
                }
                HeaderColumn hcCostCenter = new HeaderColumn();
                hcCostCenter.Component.Add(CostCenter);
                this.GridPanel2.GetView().HeaderRows[1].Columns.Add(hcCostCenter);

                var ButtonGetSum = new Ext.Net.Button();
                ButtonGetSum.Text = "Calculate";
                ButtonGetSum.Listeners.Click.Handler = "GetSum();";
                ButtonGetSum.Listeners.Click.Delay = 50;
                HeaderColumn hcButtonGetSum = new HeaderColumn();
                hcButtonGetSum.Component.Add(ButtonGetSum);
                this.GridPanel2.GetView().HeaderRows[1].Columns.Add(hcButtonGetSum);

                var datefrom = new DateField();
                if (header2string.Split(',')[i * 2] != "NA")
                {
                    datefrom.SetValue(header2string.Split(',')[i * 2]);
                }
                datefrom.EmptyText = "yyyy/MM/dd";
                datefrom.Format = "yyyy/MM/dd";
                HeaderColumn Date1 = new HeaderColumn();
                Date1.Component.Add(datefrom);
                this.GridPanel2.GetView().HeaderRows[2].Columns.Add(Date1);

                var dateto = new DateField();
                if (header2string.Split(',')[i * 2 + 1] != "NA")
                {
                    dateto.SetValue(header2string.Split(',')[i * 2 + 1]);
                }
                dateto.EmptyText = "yyyy/MM/dd";
                dateto.Format = "yyyy/MM/dd";
                HeaderColumn Date2 = new HeaderColumn();
                Date2.Component.Add(dateto);
                this.GridPanel2.GetView().HeaderRows[2].Columns.Add(Date2);
            }



            var txtPNew = new Ext.Net.NumberField();
            //txtPNew.Listeners.Blur.Fn = "Cal";
            var colPNew = new Column();
            colPNew.Header = "Person Pay";
            colPNew.DataIndex = fieldPNameNew;
            colPNew.Sortable = false;
            colPNew.Resizable = false;
            colPNew.MenuDisabled = true;
            colPNew.Width = 110;
            colPNew.Editor.Add(txtPNew);
            this.GridPanel2.ColumnModel.Columns.Add(colPNew);

            var txtCNew = new Ext.Net.NumberField();
            //txtCNew.Listeners.Blur.Fn = "Cal";
            var colCNew = new Column();
            colCNew.Header = "Company Pay";
            colCNew.DataIndex = fieldCNameNew;
            colCNew.Sortable = false;
            colCNew.Resizable = false;
            colCNew.MenuDisabled = true;
            colCNew.Width = 110;
            colCNew.Editor.Add(txtCNew);
            this.GridPanel2.ColumnModel.Columns.Add(colCNew);

            var TotalP = new Ext.Net.TextField();
            TotalP.ReadOnly = true;
            TotalP.Cls = "custom-row";
            var colTotalP = new Column();
            colTotalP.DataIndex = "TotalP";
            colTotalP.Sortable = false;
            colTotalP.Resizable = false;
            colTotalP.MenuDisabled = true;
            colTotalP.Width = 110;
            colTotalP.Locked = true;
            colTotalP.Editor.Add(TotalP);
            this.GridPanel2.ColumnModel.Columns.Add(colTotalP);

            var TotalC = new Ext.Net.TextField();
            TotalC.ReadOnly = true;
            TotalC.Cls = "custom-row";
            var colTotalC = new Column();
            colTotalC.DataIndex = "TotalC";
            colTotalC.Sortable = false;
            colTotalC.Resizable = false;
            colTotalC.MenuDisabled = true;
            colTotalC.Width = 110;
            colTotalC.Locked = true;
            colTotalC.Editor.Add(TotalC);
            this.GridPanel2.ColumnModel.Columns.Add(colTotalC);

            var StationNew = new Ext.Net.TextField();
            StationNew.Text = DSTN;
            HeaderColumn hcStationNew = new HeaderColumn();
            hcStationNew.Component.Add(StationNew);
            this.GridPanel2.GetView().HeaderRows[0].Columns.Add(hcStationNew);


            var ButtonNew = new Ext.Net.Button();
            ButtonNew.Text = "Remove";
            ButtonNew.Listeners.Click.Handler = "removecol(this," + colc.ToString() + ");";
            ButtonNew.Listeners.Click.Delay = 50;
            HeaderColumn hcButtonNew = new HeaderColumn();
            hcButtonNew.Component.Add(ButtonNew);
            this.GridPanel2.GetView().HeaderRows[0].Columns.Add(hcButtonNew);

            HeaderColumn hcTotal1 = new HeaderColumn();
            this.GridPanel2.GetView().HeaderRows[0].Columns.Add(hcTotal1);

            HeaderColumn hcTotal2 = new HeaderColumn();
            this.GridPanel2.GetView().HeaderRows[0].Columns.Add(hcTotal2);

            var CostCenterNew = new Ext.Net.TextField();
            CostCenterNew.Disabled = true;
            CostCenterNew.EmptyText = "Station Code";
            HeaderColumn hcCostCenterNew = new HeaderColumn();
            hcCostCenterNew.Component.Add(CostCenterNew);
            this.GridPanel2.GetView().HeaderRows[1].Columns.Add(hcCostCenterNew);


            //HeaderColumn hcCostCenter1New = new HeaderColumn();
            //this.GridPanel2.GetView().HeaderRows[1].Columns.Add(hcCostCenter1New);
            var ButtonGetSumNew = new Ext.Net.Button();
            ButtonGetSumNew.Text = "Calculate";
            ButtonGetSumNew.Listeners.Click.Handler = "GetSum();";
            ButtonGetSumNew.Listeners.Click.Delay = 50;
            HeaderColumn hcButtonGetSumNew = new HeaderColumn();
            hcButtonGetSumNew.Component.Add(ButtonGetSumNew);
            this.GridPanel2.GetView().HeaderRows[1].Columns.Add(hcButtonGetSumNew);

            HeaderColumn hcTotal3 = new HeaderColumn();
            this.GridPanel2.GetView().HeaderRows[1].Columns.Add(hcTotal3);

            HeaderColumn hcTotal4 = new HeaderColumn();
            this.GridPanel2.GetView().HeaderRows[1].Columns.Add(hcTotal4);

            var dateFromNew = new DateField();
            dateFromNew.EmptyText = "yyyy/MM/dd";
            dateFromNew.Format = "yyyy/MM/dd";
            dateFromNew.SetValue(LeaveDate1);
            HeaderColumn Date1New = new HeaderColumn();
            Date1New.Component.Add(dateFromNew);
            this.GridPanel2.GetView().HeaderRows[2].Columns.Add(Date1New);

            var datetoNew = new DateField();
            datetoNew.EmptyText = "yyyy/MM/dd";
            datetoNew.Format = "yyyy/MM/dd";
            datetoNew.SetValue(LeaveDate2);
            HeaderColumn Date2New = new HeaderColumn();
            Date2New.Component.Add(datetoNew);
            this.GridPanel2.GetView().HeaderRows[2].Columns.Add(Date2New);

            var TitleTotalP = new Ext.Net.Label();
            TitleTotalP.Text = "Total(Person)";
            TitleTotalP.Cls = "custom-row";
            HeaderColumn hcTitleTotalP = new HeaderColumn();
            hcTitleTotalP.Component.Add(TitleTotalP);
            this.GridPanel2.GetView().HeaderRows[2].Columns.Add(hcTitleTotalP);

            var TitleTotalC = new Ext.Net.Label();
            TitleTotalC.Text = "Total(Comp)";
            TitleTotalC.Cls = "custom-row";
            HeaderColumn hcTitleTotalC = new HeaderColumn();
            hcTitleTotalC.Component.Add(TitleTotalC);
            this.GridPanel2.GetView().HeaderRows[2].Columns.Add(hcTitleTotalC);

            //HeaderColumn hcTotal5 = new HeaderColumn();
            //this.GridPanel2.GetView().HeaderRows[2].Columns.Add(hcTotal5);

            //HeaderColumn hcTotal6 = new HeaderColumn();
            //this.GridPanel2.GetView().HeaderRows[2].Columns.Add(hcTotal6);
            this.GridPanel2.Render();
            //Store store2 = this.GridPanel2.GetStore();



            //this.GridPanel2.RefreshView();
            GridPanel2.Reconfigure();
            //string last = (dtcol - 1).ToString();
            //string sf = "$(\"#\"+$('#GridPanel2 .x-grid3-col-" + last + " input')[0].id).css('font-weight','bold')";
            //X.AddScript(sf);
        }
Example #10
0
        protected void btnExport_Click(object sender, EventArgs e)
        {
            XlsDocument xls = new XlsDocument();//新建一个xls文档

            xls.FileName = DateTime.Now.ToString("yyyyMMddHHmmss") + ".xls";

            Worksheet sheet;

            sheet = xls.Workbook.Worksheets.Add(DateTime.Now.ToString("yyyyMMddHHmmss"));

            XF titleXF = xls.NewXF();                                   // 为xls生成一个XF实例,XF是单元格格式对象

            titleXF.HorizontalAlignment = HorizontalAlignments.Left;    // 设定文字居中
            titleXF.VerticalAlignment   = VerticalAlignments.Centered;  // 垂直居中
            titleXF.UseBorder           = false;                        // 使用边框
            titleXF.Font.Height         = 12 * 20;                      // 字大小(字体大小是以 1/20 point 为单位的)

            XF titleXF1 = xls.NewXF();                                  // 为xls生成一个XF实例,XF是单元格格式对象

            titleXF1.HorizontalAlignment = HorizontalAlignments.Left;   // 设定文字居中
            titleXF1.VerticalAlignment   = VerticalAlignments.Centered; // 垂直居中
            titleXF1.UseBorder           = false;                       // 使用边框
            titleXF1.Font.Bold           = true;
            titleXF1.Font.Height         = 12 * 20;                     // 字大小(字体大小是以 1/20 point 为单位的)
            // 开始填充数据到单元格
            org.in2bits.MyXls.Cells cells = sheet.Cells;
            cells.Add(1, 1, "NO#", titleXF1);
            cells.Add(1, 2, "Status", titleXF1);
            cells.Add(1, 3, "Claim Type", titleXF1);
            cells.Add(1, 4, "Amount", titleXF1);
            cells.Add(1, 5, "Process", titleXF1);
            cells.Add(1, 6, "Current Approver", titleXF1);
            cells.Add(1, 7, "Owner", titleXF1);
            cells.Add(1, 8, "Submitted by", titleXF1);
            cells.Add(1, 9, "Submit date", titleXF1);
            cells.Add(1, 10, "Remark", titleXF1);

            //添加数据
            string json = GridData.Value.ToString();
            StoreSubmitDataEventArgs eSubmit = new StoreSubmitDataEventArgs(json, null);
            XmlNode     xml = eSubmit.Xml;
            XmlDocument doc = new XmlDocument();

            doc.LoadXml(xml.InnerXml);
            for (int i = 0; i < doc.SelectNodes("records").Item(0).SelectNodes("record").Count; i++)
            {
                if (!string.IsNullOrEmpty(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(i).SelectNodes("Tamount").Item(0).InnerXml))
                {
                    cells.Add(2 + i, 4, Convert.ToDouble(doc.SelectNodes("records").Item(0).SelectNodes("record").Item(i).SelectNodes("Tamount").Item(0).InnerXml), titleXF);
                }
                else
                {
                    cells.Add(2 + i, 4, "", titleXF);
                }
                cells.Add(2 + i, 1, doc.SelectNodes("records").Item(0).SelectNodes("record").Item(i).SelectNodes("No").Item(0).InnerXml, titleXF);
                cells.Add(2 + i, 2, doc.SelectNodes("records").Item(0).SelectNodes("record").Item(i).SelectNodes("Draft1").Item(0).InnerXml, titleXF);
                cells.Add(2 + i, 3, doc.SelectNodes("records").Item(0).SelectNodes("record").Item(i).SelectNodes("Type1").Item(0).InnerXml, titleXF);
                cells.Add(2 + i, 5, doc.SelectNodes("records").Item(0).SelectNodes("record").Item(i).SelectNodes("Status1").Item(0).InnerXml, titleXF);
                cells.Add(2 + i, 6, doc.SelectNodes("records").Item(0).SelectNodes("record").Item(i).SelectNodes("Approver").Item(0).InnerXml, titleXF);
                cells.Add(2 + i, 7, doc.SelectNodes("records").Item(0).SelectNodes("record").Item(i).SelectNodes("Person").Item(0).InnerXml, titleXF);
                cells.Add(2 + i, 8, doc.SelectNodes("records").Item(0).SelectNodes("record").Item(i).SelectNodes("CreadedBy").Item(0).InnerXml, titleXF);
                cells.Add(2 + i, 9, doc.SelectNodes("records").Item(0).SelectNodes("record").Item(i).SelectNodes("CreadedDate").Item(0).InnerXml, titleXF);
                cells.Add(2 + i, 10, doc.SelectNodes("records").Item(0).SelectNodes("record").Item(i).SelectNodes("Remark").Item(0).InnerXml, titleXF);
            }

            xls.Send();
        }
Example #11
0
        private void RaiseAjaxPostBackEvent(string eventArgument)
        {
            try
            {
                if (eventArgument.IsEmpty())
                {
                    throw new ArgumentNullException("eventArgument");
                }

                string data = null;
                JToken parametersToken = null;

                if (this.DirectConfig != null)
                {
                    parametersToken = this.DirectConfig.SelectToken("config.extraParams", false);

                    JToken serviceToken = this.DirectConfig.SelectToken("config.serviceParams", false);

                    if (serviceToken != null)
                    {
                        data = JSON.ToString(serviceToken);
                    }
                }

                string action = eventArgument;

                BeforeDirectEventArgs e = new BeforeDirectEventArgs(action, data, parametersToken);
                this.OnAjaxPostBack(e);

                if (this.AutoDecode && data.IsNotEmpty())
                {
                    data = HttpUtility.HtmlDecode(data);
                }

                switch (action)
                {
                    case "create":
                    case "destroy":
                    case "update":
                    case "batch":
                        if (data == null)
                        {
                            throw new InvalidOperationException("No data in request");
                        }

                        this.DoSaving(action, data, parametersToken);

                        break;
                    case "read":
                        StoreReadDataEventArgs refreshArgs = new StoreReadDataEventArgs(parametersToken);
                        this.OnReadData(refreshArgs);
                        PageProxy dsp = this.Proxy.Primary as PageProxy;

                        if (dsp != null)
                        {
                            if (refreshArgs.Total > -1)
                            {
                                dsp.Total = refreshArgs.Total;
                            }
                        }

                        break;
                    case "submit":
                        if (data == null)
                        {
                            throw new InvalidOperationException("No data in request");
                        }

                        StoreSubmitDataEventArgs args = new StoreSubmitDataEventArgs(data, parametersToken);
                        this.OnSubmitData(args);

                        break;
                }
            }
            catch (Exception ex)
            {
                success = false;
                msg = this.IsDebugging ? ex.ToString() : ex.Message;

                if (this.ResourceManager.RethrowAjaxExceptions)
                {
                    throw;
                }
            }

            AfterDirectEventArgs eAjaxPostBackResult = new AfterDirectEventArgs(new Response(success, msg));
            this.OnAjaxPostBackResult(eAjaxPostBackResult);

            StoreResponseData response = new StoreResponseData();

            if (eAjaxPostBackResult.Response.Success)
            {
                switch (eventArgument)
                {
                    case "read":

                        if (this.RequiresDataBinding)
                        {
                            this.DataBind();
                        }

                        response.Data = this.GetAjaxDataJson();
                        PageProxy dsp = this.Proxy.Primary as PageProxy;
                        response.Total = dsp != null ? dsp.Total : -1;
                        break;
                    case "create":
                    case "destroy":
                    case "update":
                        response.Data = JSON.Serialize(this.responseRecords);
                        break;
                }
            }

            eAjaxPostBackResult.Response.Data = response.ToString();

            ResourceManager.ServiceResponse = eAjaxPostBackResult.Response;
        }
Example #12
0
 protected void BtnSaveToExcel(object sender, EventArgs e)
 {
     string json = ExcelGridData.Value.ToString();
     json = json.Replace("d_name", "店铺");
     json = json.Replace("name4", "虚拟结构");
     json = json.Replace("name5", "虚拟结构");
     json = json.Replace("styleid", "款号");
     json = json.Replace("colorid", "颜色");
     json = json.Replace("s2s", "2");
     json = json.Replace("s3s", "3");
     json = json.Replace("s4s", "4");
     json = json.Replace("s5s", "5");
     json = json.Replace("s6s", "6");
     json = json.Replace("total", "合计");
     StoreSubmitDataEventArgs eSubmit = new StoreSubmitDataEventArgs(json, null);
     XmlNode xml = eSubmit.Xml;
     this.Response.Clear();
     this.Response.ContentType = "application/vnd.ms-excel";
     this.Response.AddHeader("Content-Disposition", "attachment; filename=Report.xls");
     XslCompiledTransform xtExcel = new XslCompiledTransform();
     xtExcel.Load(Server.MapPath("ExcelTemp/Excel.xsl"));
     xtExcel.Transform(xml, null, this.Response.OutputStream);
     this.Response.End();
 }
Example #13
0
 protected void SubmitData(object sender, StoreSubmitDataEventArgs e)
 {
     if (dfbegin.SelectedDate > dfend.SelectedDate)
     {
         Ext.Msg.Alert("提示", "请重新选择时间!").Show();
         return;
     }
     if (GridData.Value == null || GridData.Value.ToString() == "-1")
     {
         if (selectedDept.Value == null || selectedDept.Value.ToString() == "-1" || selectedDept.Value.ToString() == SessionBox.GetUserSession().DeptNumber)
         {
             Ext.Msg.Alert("提示", "请选择人员或部门!").Show();
             return;
         }
         else
         {
             XmlNode     xml      = e.Xml;
             XmlNode     rxml     = xml.SelectSingleNode("records");
             XmlNodeList uRecords = rxml.SelectNodes("record");
             if (uRecords.Count > 0)
             {
                 List <string> pers = new List <string>();
                 var           per  = (from p in dc.Person
                                       from v in dc.Vgetpl
                                       where p.Personnumber == v.Personnumber && p.Areadeptid == selectedDept.Value.ToString() && v.Operatortag == "YH_fcfk" && v.Moduletag == "HiddenDanage_HDprocess"
                                       select new
                 {
                     p.Personnumber,
                     p.Name
                 }).Distinct();
                 foreach (var r in per)
                 {
                     pers.Add(r.Personnumber);
                 }
                 decimal[,] place = new decimal[uRecords.Count, 2]; int i = 0;
                 foreach (XmlNode record in uRecords)
                 {
                     if (record != null)
                     {
                         place[i, 0] = decimal.Parse(record.SelectSingleNode("Placeid").InnerText.Trim());
                         place[i, 1] = decimal.Parse(record.SelectSingleNode("Zdcs").InnerText.Trim() == "" ? "1" : record.SelectSingleNode("Zdcs").InnerText.Trim());
                         i++;
                     }
                 }
                 PlanCreate(place, pers);
             }
             else
             {
                 Ext.Msg.Alert("提示", "请选择地点!").Show();
             }
         }
     }
     else
     {
         XmlNode     xml      = e.Xml;
         XmlNode     rxml     = xml.SelectSingleNode("records");
         XmlNodeList uRecords = rxml.SelectNodes("record");
         if (uRecords.Count > 0)
         {
             decimal[,] place = new decimal[uRecords.Count, 2]; int i = 0;
             foreach (XmlNode record in uRecords)
             {
                 if (record != null)
                 {
                     place[i, 0] = decimal.Parse(record.SelectSingleNode("Placeid").InnerText.Trim());
                     place[i, 1] = decimal.Parse(record.SelectSingleNode("Zdcs").InnerText.Trim() == "" ? "1" : record.SelectSingleNode("Zdcs").InnerText.Trim());
                     i++;
                 }
             }
             PlanCreate(place, GridData.Value.ToString());
         }
         else
         {
             Ext.Msg.Alert("提示", "请选择地点!").Show();
         }
     }
 }
Example #14
0
        protected void MonthlyReportsStore_SubmitData(object sender, StoreSubmitDataEventArgs e)
        {
            DateTime beginningOfTheMonth;
            DateTime endOfTheMonth;
            Document pdfDocument;
            Dictionary <string, string> pdfDocumentHeaders;
            Dictionary <string, Dictionary <string, object> > UsersCollection;
            JavaScriptSerializer jSerializer;
            int  SiteID;
            Site SelectedSite;

            //These are created to hold the data submitted through the grid as JSON
            List <LyncBillingBase.DataModels.User> usersData;
            Dictionary <string, object>            tempUserDataContainer;

            XmlNode xml               = e.Xml;
            string  format            = this.FormatType.Value.ToString();
            string  pdfReportFileName = string.Empty;


            SiteID       = Convert.ToInt32(FilterReportsBySite.SelectedItem.Value);
            SelectedSite = Global.DATABASE.Sites.GetById(SiteID);

            int    callsType       = Convert.ToInt32(CallsTypesComboBox.SelectedItem.Value);
            string callsTypeString = string.Empty;


            // FIRST
            // CLEAR THE PAGE'S RESPONSE
            this.Response.Clear();


            switch (callsType)
            {
            case 1:
                callsTypeString = "Not Charged";
                break;

            case 2:
                callsTypeString = "Pending Charges";
                break;

            case 3:
                callsTypeString = "Charged";
                break;

            default:
                callsTypeString = "Not Charged";
                break;
            }


            switch (format)
            {
            // ---------------------------
            // CASE OF XLS SUMMARIZED REPORT
            case "xls":
                this.Response.Clear();
                this.Response.ContentType = "application/vnd.ms-excel";
                this.Response.AddHeader("Content-Disposition", "attachment; filename=MonthlyReport_Summary.xls");
                XslCompiledTransform xtExcel = new XslCompiledTransform();
                xtExcel.Load(Server.MapPath("~/Resources/excel.xsl"));
                xtExcel.Transform(xml, null, Response.OutputStream);

                break;


            // ---------------------------
            // CASE OF SUMMARIZED PDF REPORT
            case "pdf":
                UsersCollection = new Dictionary <string, Dictionary <string, object> >();
                jSerializer     = new JavaScriptSerializer();
                usersData       = jSerializer.Deserialize <List <LyncBillingBase.DataModels.User> >(e.Json);

                foreach (var user in usersData)
                {
                    tempUserDataContainer = new Dictionary <string, object>();
                    //tempUserDataContainer.Add(Enums.GetDescription(Enums.PhoneCallSummary.DisplayName), user.FullName);
                    //tempUserDataContainer.Add(Enums.GetDescription(Enums.PhoneCallSummary.EmployeeID), user.EmployeeID);
                    //tempUserDataContainer.Add(Enums.GetDescription(Enums.PhoneCallSummary.ChargingParty), user.SipAccount);

                    if (!UsersCollection.Keys.Contains(user.SipAccount))
                    {
                        UsersCollection.Add(user.SipAccount, tempUserDataContainer);
                    }
                }

                beginningOfTheMonth = new DateTime(ReportDateField.SelectedDate.Year, ReportDateField.SelectedDate.Month, 1);
                endOfTheMonth       = beginningOfTheMonth.AddMonths(1).AddDays(-1);

                //Initialize the response.
                pdfReportFileName = string.Format(
                    "{0}_Monthly_Summary_Report_{1}_{2}.pdf",
                    SelectedSite.Name.ToUpper(), beginningOfTheMonth.Month + "-" + beginningOfTheMonth.Year, callsTypeString.Replace(' ', '_')
                    );

                pdfDocumentHeaders = new Dictionary <string, string>()
                {
                    { "siteName", SelectedSite.Name },
                    { "title", "Accounting Monthly Report [Summary]" },
                    { "subTitle", String.Format("As Per: {0}; {1}", beginningOfTheMonth.Month + "-" + beginningOfTheMonth.Year, callsTypeString) }
                };

                pdfDocument = new Document();

                //if (callsType == 1)
                //    Global.DATABASE.UsersCallsSummaries.ExportUsersCallsSummaryToPDF(SelectedSite.Name, beginningOfTheMonth, endOfTheMonth, UsersCollection, Response, out pdfDocument, pdfDocumentHeaders, notChargedCalls: true);
                //else if (callsType == 2)
                //    Global.DATABASE.UsersCallsSummaries.ExportUsersCallsSummaryToPDF(SelectedSite.Name, beginningOfTheMonth, endOfTheMonth, UsersCollection, Response, out pdfDocument, pdfDocumentHeaders, pendingChargesCalls: true);
                //else if (callsType == 3)
                //    Global.DATABASE.UsersCallsSummaries.ExportUsersCallsSummaryToPDF(SelectedSite.Name, beginningOfTheMonth, endOfTheMonth, UsersCollection, Response, out pdfDocument, pdfDocumentHeaders, chargedCalls: true);

                Response.ContentType = "application/pdf";
                Response.AddHeader("content-disposition", "attachment;filename=" + pdfReportFileName);
                Response.Cache.SetCacheability(HttpCacheability.NoCache);
                Response.Write(pdfDocument);

                break;


            // ---------------------------
            // CASE OF DETAILED PDF REPORT
            case "pdf-d":
                UsersCollection = new Dictionary <string, Dictionary <string, object> >();
                jSerializer     = new JavaScriptSerializer();
                usersData       = jSerializer.Deserialize <List <LyncBillingBase.DataModels.User> >(e.Json);

                foreach (var user in usersData)
                {
                    tempUserDataContainer = new Dictionary <string, object>();
                    //tempUserDataContainer.Add(Enums.GetDescription(Enums.PhoneCallSummary.DisplayName), user.FullName);
                    //tempUserDataContainer.Add(Enums.GetDescription(Enums.PhoneCallSummary.EmployeeID), user.EmployeeID);
                    //tempUserDataContainer.Add(Enums.GetDescription(Enums.PhoneCallSummary.ChargingParty), user.SipAccount);

                    if (!UsersCollection.Keys.Contains(user.SipAccount))
                    {
                        UsersCollection.Add(user.SipAccount, tempUserDataContainer);
                    }
                }

                beginningOfTheMonth = new DateTime(ReportDateField.SelectedDate.Year, ReportDateField.SelectedDate.Month, 1);
                endOfTheMonth       = beginningOfTheMonth.AddMonths(1).AddDays(-1);

                //Initialize the response.
                pdfReportFileName = string.Format(
                    "{0}_Monthly_Detailed_Report_{1}_{2}.pdf",
                    SelectedSite.Name.ToUpper(), beginningOfTheMonth.Month + "-" + beginningOfTheMonth.Year, callsTypeString.Replace(' ', '_')
                    );

                pdfDocumentHeaders = new Dictionary <string, string>()
                {
                    { "siteName", SelectedSite.Name },
                    { "title", "Accounting Monthly Report [Detailed]" },
                    { "subTitle", String.Format("As Per: {0}; {1}", beginningOfTheMonth.Month + "-" + beginningOfTheMonth.Year, callsTypeString) }
                };

                pdfDocument = new Document();

                //if (callsType == 1)
                //    Global.DATABASE.UsersCallsSummaries.ExportUsersCallsDetailedToPDF(SelectedSite.Name, beginningOfTheMonth, endOfTheMonth, UsersCollection, Response, out pdfDocument, pdfDocumentHeaders, notChargedCalls: true);
                //else if (callsType == 2)
                //    Global.DATABASE.UsersCallsSummaries.ExportUsersCallsDetailedToPDF(SelectedSite.Name, beginningOfTheMonth, endOfTheMonth, UsersCollection, Response, out pdfDocument, pdfDocumentHeaders, pendingChargesCalls: true);
                //else if (callsType == 3)
                //    Global.DATABASE.UsersCallsSummaries.ExportUsersCallsDetailedToPDF(SelectedSite.Name, beginningOfTheMonth, endOfTheMonth, UsersCollection, Response, out pdfDocument, pdfDocumentHeaders, chargedCalls: true);

                Response.ContentType = "application/pdf";
                Response.AddHeader("content-disposition", "attachment;filename=" + pdfReportFileName);
                Response.Cache.SetCacheability(HttpCacheability.NoCache);
                Response.Write(pdfDocument);

                break;
            }

            this.Response.End();
        }//End-function
Example #15
0
        //用于保存差旅费明细
        protected void SubmitData(object sender, StoreSubmitDataEventArgs e)
        {
            DateTime dtnull = new DateTime(1, 1, 1, 0, 0, 0);
            cs.DBCommand dbc = new cs.DBCommand();
            //检查是否已经被该人设置过审批人
            string sqlCheckFlow = "select * from GroupFlow where GID=(select GID from GroupUsers where UserID='" + cbxOwner.Text + "')";
            DataTable dtCheckFlow = dbc.GetData("eReimbursement", sqlCheckFlow);
            if (dtCheckFlow.Rows.Count < 1)
            {
                return;
            }
            string json = e.Json;
            XmlNode xml = e.Xml;
            List<Detail> Details = e.Object<Detail>();
            //删除现有数据
            string deletesql = "delete from ETraveleDetail where [No]='" + hdTravelRequestID.Value.ToString() + "'";
            string newid1 = dbc.UpdateData("eReimbursement", deletesql, "Update");
            foreach (Detail detail in Details)
            {
                if (newid1 == "-1")
                {
                    ErrorHandle("Data Error.");
                    return;
                }
                //新增
                string word = "[No],[Tocity],[AccountName],[AccountCode],[AccountDes],[Cur],[Pamount],[Camount],[TSation],[Createdby],[CreadedDate],[Tdate]";
                string value = "";
                value += "'" + hdTravelRequestID.Value.ToString() + "',";
                value += "'" + detail.Tocity + "',";
                value += "'" + detail.AccountName + "',";
                value += "'" + detail.AccountCode + "',";
                value += "'" + detail.AccountDes + "',";
                value += "'" + detail.Cur + "',";
                value += detail.Pamount == "" ? "null," : detail.Pamount + ",";
                value += detail.Camount == "" ? "null," : detail.Camount + ",";
                value += "'" + detail.TSation + "',";
                value += "'" + cbxOwner.Text + "',";//edit
                value += "'" + DateTime.Now.ToString() + "',";
                value += detail.Tdate == "" ? "null" : "'" + detail.Tdate + "'";

                string updatesql = "insert into ETraveleDetail (" + word + ") values(" + value + ");select [ID]=@@IDENTITY from ETraveleDetail";

                string newid = dbc.UpdateData("eReimbursement", updatesql, "Insert");
                if (newid == "-1")
                {
                    ErrorHandle("Data Error."); return;
                }
            }
            //发送提醒邮件
            string sql = "select * from V_Eflow_ETravel where [Type]='T' and Step!=0 and RequestID=" + hdTravelRequestID.Value.ToString() + " order by Step,FlowID";
            DataTable dtMail = new DataTable();
            dtMail = dbc.GetData("eReimbursement", sql);
            if (dtMail != null && dtMail.Rows.Count > 0)
            {
                DIMERCO.SDK.MailMsg mail = new DIMERCO.SDK.MailMsg();
                mail.Title = "Dimerco eReimbursement (" + dtMail.Rows[0]["Person"].ToString() + ") - Seek For Your Approval";
                mail.FromDispName = "eReimbursement";
                mail.From = "*****@*****.**";

                string mailto = "";
                DataSet dsTo = DIMERCO.SDK.Utilities.LSDK.getUserProfilebyUserList(dtMail.Rows[0]["ApproverID"].ToString());
                if (dsTo.Tables[0].Rows.Count == 1)
                {
                    mailto += dsTo.Tables[0].Rows[0]["eMail"].ToString() + ",";
                }
                else
                {
                    ErrorHandle("Error mail address of Approver."); return;
                }

                string mailcc = "";
                DataSet dsCC = DIMERCO.SDK.Utilities.LSDK.getUserProfilebyUserList(dtMail.Rows[0]["PersonID"].ToString());
                if (dsCC.Tables[0].Rows.Count == 1)
                {
                    mailcc += dsCC.Tables[0].Rows[0]["eMail"].ToString() + ",";
                }
                else
                {
                    ErrorHandle("Error mail address of Owner."); return;
                }
                if (dtMail.Rows[0]["CreadedByID"].ToString() != "" && dtMail.Rows[0]["CreadedByID"].ToString() != dtMail.Rows[0]["PersonID"].ToString())//代理人
                {
                    dsCC = DIMERCO.SDK.Utilities.LSDK.getUserProfilebyUserList(dtMail.Rows[0]["CreadedByID"].ToString());
                    mailcc += dsCC.Tables[0].Rows[0]["eMail"].ToString() + ",";
                }

                mail.To = mailto;
                mail.Cc = mailcc;
                string divstyle = "style='font-size:small;'";
                string divstyleCurrent = "style='font-size:small;color:blue;'";
                string tdstyle = "style='border:silver 1px ridge; font-size:small;background-color: #FFFFFF'";
                StringBuilder sb = new StringBuilder();
                sb.Append("<div>");
                sb.Append("<div " + divstyle + "> Dear " + dtMail.Rows[0]["Approver"].ToString() + ",</div><br />");
                sb.Append("<div " + divstyle + ">The following eReimbursement application for your approval:</div><br /><br />");
                sb.Append("<div " + divstyle + ">eReimbursement Approval Remarks :</div><br />");
                sb.Append("<div " + divstyle + ">Owner:" + dtMail.Rows[0]["Person"].ToString() + "</div>");
                sb.Append("<div " + divstyle + ">Station:" + dtMail.Rows[0]["Station"].ToString() + "</div>");
                sb.Append("<div " + divstyle + ">Department:" + dtMail.Rows[0]["Department"].ToString() + "</div>");
                string period = "";
                period += dtMail.Rows[0]["Bdate"].ToString() == "" ? "From NA " : ("From " + Convert.ToDateTime(dtMail.Rows[0]["Bdate"].ToString()).ToString("yyyy/MM/dd") + " ");
                period += dtMail.Rows[0]["Edate"].ToString() == "" ? "To NA" : "To " + Convert.ToDateTime(dtMail.Rows[0]["Edate"].ToString()).ToString("yyyy/MM/dd");
                sb.Append("<div " + divstyle + ">Period:" + period + "</div><br />");
                sb.Append("<div><table><thead><tr><th colspan=\"9\" " + tdstyle + ">Expense Detail</th></tr><tr>");
                sb.Append("<th " + tdstyle + "></th>");
                sb.Append("<th " + tdstyle + ">Location</th>");
                sb.Append("<th " + tdstyle + ">Date</th>");
                sb.Append("<th " + tdstyle + ">Expense Type</th>");
                sb.Append("<th " + tdstyle + ">Currency</th>");
                sb.Append("<th " + tdstyle + ">Employee Pay</th>");
                sb.Append("<th " + tdstyle + ">Company Pay</th>");
                sb.Append("<th " + tdstyle + ">Collection Station</th>");
                sb.Append("<th " + tdstyle + ">Remark</th></tr></thead>");

                sb.Append("<tbody>");
                decimal ptotal = 0; decimal ctotal = 0;
                string sqldetail = "select t2.SAccountName,t1.* from ETraveleDetail t1 left join AccoundCode t2 on t2.SAccountCode=t1.AccountCode where t1.[No]='" + hdTravelRequestID.Value.ToString() + "'";
                DataTable dtdetail = new DataTable();
                dtdetail = dbc.GetData("eReimbursement", sqldetail);
                for (int i = 0; i < dtdetail.Rows.Count; i++)
                {
                    sb.Append("<tr><th " + tdstyle + ">" + (i + 1).ToString() + "</th>");
                    sb.Append("<td " + tdstyle + ">" + dtdetail.Rows[i]["Tocity"].ToString() + "</td>");
                    string tdate = dtdetail.Rows[i]["Tdate"].ToString() == "" ? "" : Convert.ToDateTime(dtdetail.Rows[i]["Tdate"].ToString()).ToString("yyyy/MM/dd");
                    sb.Append("<td " + tdstyle + ">" + tdate + "</td>");
                    sb.Append("<td " + tdstyle + ">" + dtdetail.Rows[i]["SAccountName"].ToString() + "</td>");
                    sb.Append("<td " + tdstyle + ">" + dtdetail.Rows[i]["Cur"].ToString() + "</td>");
                    sb.Append("<td " + tdstyle + ">" + dtdetail.Rows[i]["Pamount"].ToString() + "</td>");
                    sb.Append("<td " + tdstyle + ">" + dtdetail.Rows[i]["Camount"].ToString() + "</td>");
                    sb.Append("<td " + tdstyle + ">" + dtdetail.Rows[i]["TSation"].ToString() + "</td>");
                    sb.Append("<td " + tdstyle + ">" + dtdetail.Rows[i]["AccountDes"].ToString() + "</td></tr>");
                    ptotal += dtdetail.Rows[i]["Pamount"].ToString() == "" ? 0 : Convert.ToDecimal(dtdetail.Rows[i]["Pamount"].ToString());
                    ctotal += dtdetail.Rows[i]["Camount"].ToString() == "" ? 0 : Convert.ToDecimal(dtdetail.Rows[i]["Camount"].ToString());
                }
                sb.Append("</tbody>");
                sb.Append("<tfoot><tr>");
                sb.Append("<th " + tdstyle + ">Total:</th>");
                sb.Append("<td " + tdstyle + "></td>");
                sb.Append("<td " + tdstyle + "></td>");
                sb.Append("<td " + tdstyle + "></td>");
                sb.Append("<td " + tdstyle + ">" + dtdetail.Rows[0]["Cur"].ToString() + "</td>");
                sb.Append("<td " + tdstyle + ">" + ptotal.ToString() + "</td>");
                sb.Append("<td " + tdstyle + ">" + ctotal.ToString() + "</td>");
                sb.Append("<td " + tdstyle + "></td>");
                sb.Append("<td " + tdstyle + "></td>");
                sb.Append("</tr></tfoot></table></div><br />");
                
                
                StringBuilder sb1 = new StringBuilder();
                sb1.Append("<div><span " + divstyle + ">Approval Flow:</span>");
                for (int i = 0; i < dtMail.Rows.Count; i++)
                {
                    if (i == 0)
                    {
                        sb1.Append("<div " + divstyleCurrent + ">" + (i + 1).ToString() + ".Current Approver:" + dtMail.Rows[i]["Approver"].ToString() + "</div>");
                    }
                    else
                    {
                        sb1.Append("<div " + divstyle + ">" + (i + 1).ToString() + ".Approver:" + dtMail.Rows[i]["Approver"].ToString() + "</div>");
                    }
                }
                sb1.Append("</div><br />");
                sb.Append(sb1.ToString());
                string url = "http://" + Request.Url.Authority + "/Approve.aspx";
                sb.Append("<div><a href=\"" + url + "?FlowID=" + dtMail.Rows[0]["FlowID"].ToString() + "\" style=\"color: #0000FF\">Click here to visit Dimerco eReimbursement.</a></div>");
                sb.Append("</div>");
                mail.Body = sb.ToString();
                mail.Send();
            }
        }
Example #16
0
 protected void BtnSaveToExcel(object sender, EventArgs e)
 {
     string json = ExcelGridData.Value.ToString();
     json = json.Replace("vipcode", "VIP卡号");
     json = json.Replace("vipname", "姓名");
     json = json.Replace("vipsex", "性别");
     json = json.Replace("mobtel", "手机");
     json = json.Replace("vipbirth", "生日");
     json = json.Replace("tz_name", "拓展人");
     json = json.Replace("vipstate", "状态");
     json = json.Replace("centum", "积分");
     json = json.Replace("p积分", "上季积分");
     json = json.Replace("FBuyID", "首单");
     json = json.Replace("vipoccupation", "职业");
     json = json.Replace("FBuyID", "职业");
     json = json.Replace("crdate", "创建时间");
     json = json.Replace("viplastdate", "最近消费日期");
     json = json.Replace("lastSums", "消费金额");
     StoreSubmitDataEventArgs eSubmit = new StoreSubmitDataEventArgs(json, null);
     XmlNode xml = eSubmit.Xml;
     this.Response.Clear();
     this.Response.ContentType = "application/vnd.ms-excel";
     this.Response.AddHeader("Content-Disposition", "attachment; filename=Report.xls");
     XslCompiledTransform xtExcel = new XslCompiledTransform();
     xtExcel.Load(Server.MapPath("ExcelTemp/Excel.xsl"));
     xtExcel.Transform(xml, null, this.Response.OutputStream);
     this.Response.End();
 }
Example #17
0
        private void RaiseAjaxPostBackEvent(string eventArgument)
        {
            bool needConfirmation = false;

            try
            {
                if (eventArgument.IsEmpty())
                {
                    throw new ArgumentNullException("eventArgument");
                }

                XmlNode xmlData = this.SubmitConfig;
                string data = null;
                XmlNode parametersNode = null;

                if (xmlData != null)
                {
                    parametersNode = xmlData.SelectSingleNode("config/extraParams");
                
                    XmlNode serviceNode = xmlData.SelectSingleNode("config/serviceParams");

                    if (serviceNode != null)
                    {
                        data = serviceNode.InnerText;
                    }
                }

                string action = eventArgument;

                BeforeDirectEventArgs e = new BeforeDirectEventArgs(action, data, parametersNode);
                this.OnAjaxPostBack(e);
                PageProxy dsp = this.Proxy.Proxy as PageProxy;

                if (this.AutoDecode && data.IsNotEmpty())
                {
                    data = HttpUtility.HtmlDecode(data);
                }

                switch(action)
                {
                    case "update":
                        if (data == null)
                        {
                            throw new InvalidOperationException("No data in request");
                        }

                        needConfirmation = this.UseIdConfirmation;
                        this.DoSaving(data, parametersNode);
                        
                        if (this.RefreshAfterSaving == RefreshAfterSavingMode.None || dsp != null)
                        {
                            needRetrieve = false;
                        }
                        
                        break;
                    case "refresh":
                        needRetrieve = true;
                        StoreRefreshDataEventArgs refreshArgs = new StoreRefreshDataEventArgs(parametersNode);
                        this.OnRefreshData(refreshArgs);
                        
                        if (dsp != null)
                        {
                            if (refreshArgs.Total > -1)
                            {
                                dsp.Total = refreshArgs.Total; 
                            }
                        }

                        break;
                    case "submit":
                        needRetrieve = false;

                        if (data == null)
                        {
                            throw new InvalidOperationException("No data in request");
                        }

                        StoreSubmitDataEventArgs args =new StoreSubmitDataEventArgs(data, parametersNode);
                        this.OnSubmitData(args);

                        break;
                }
            }
            catch (Exception ex)
            {
                success = false;
                msg = this.IsDebugging ? ex.ToString() : ex.Message;

                if (this.ResourceManager.RethrowAjaxExceptions)
                {
                    throw;
                }
            }

            AfterDirectEventArgs eAjaxPostBackResult = new AfterDirectEventArgs(new Response(success, msg));
            this.OnAjaxPostBackResult(eAjaxPostBackResult);
            
            StoreResponseData response = new StoreResponseData();
            
            if (needRetrieve && eAjaxPostBackResult.Response.Success)
            {
                if (this.RequiresDataBinding)
                {
                    this.DataBind(); 
                }

                response.Data = this.GetAjaxDataJson();
                PageProxy dsp = this.Proxy.Proxy as PageProxy;
                response.Total = dsp != null ? dsp.Total : 0;
            }

            if (needConfirmation)
            {
                response.Confirmation = changingEventArgs.ConfirmationList;
            }

            eAjaxPostBackResult.Response.Data = response.ToString();

            ResourceManager.ServiceResponse = eAjaxPostBackResult.Response;
        }
Example #18
0
 protected void BtnSaveToExcel(object sender, EventArgs e)
 {
     string json = ExcelGridData.Value.ToString();
     json = json.Replace("retailid", "单据号");
     json = json.Replace("setdate", "销售日期");
     json = json.Replace("znums", "数量");
     json = json.Replace("zxsums", "现价金额");
     json = json.Replace("zssums", "结算金额");
     json = json.Replace("FCalcSums", "实销金额");
     json = json.Replace("yhsum", "优惠金额");
     json = json.Replace("s_sums", "实收金额");
     json = json.Replace("vipcode", "VIP卡号");
     json = json.Replace("s_name", "营业员");
     json = json.Replace("x_name", "班组");
     json = json.Replace("crdate", "制单日期");
     json = json.Replace("cr_name", "制单人");
     json = json.Replace("comment", "备注");
     StoreSubmitDataEventArgs eSubmit = new StoreSubmitDataEventArgs(json, null);
     XmlNode xml = eSubmit.Xml;
     this.Response.Clear();
     this.Response.ContentType = "application/vnd.ms-excel";
     this.Response.AddHeader("Content-Disposition", "attachment; filename=Retail" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".xls");
     XslCompiledTransform xtExcel = new XslCompiledTransform();
     xtExcel.Load(Server.MapPath("ExcelTemp/Excel.xsl"));
     xtExcel.Transform(xml, null, this.Response.OutputStream);
     this.Response.End();
 }
Example #19
0
        protected virtual void OnSubmitData(StoreSubmitDataEventArgs e)
        {
            AjaxSubmitDataEventHandler handler = (AjaxSubmitDataEventHandler)Events[EventSubmitData];

            if (handler != null)
            {
                handler(this, e);
            }
        }
Example #20
0
 /// <summary>
 /// SubmitData
 /// </summary>
 protected void CalendarEventStore_SubmitData(object sender, StoreSubmitDataEventArgs e)
 {
     //var events = e.Object<Event>();
 }