Skip to content
PeiSongDianYanShouJinE.aspx.cs 8.89 KiB
Newer Older
Jack Dan's avatar
Jack Dan committed
using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Text;


public partial class Admin_Statistical_PeiSongDianYanShouJinE :  MyPage
{
    protected void Page_Load(object sender, EventArgs e)
    {
        MySession.CheckSession();
        CheckPermission(PermissionHelper.PermissionCode.Check);
        if (!IsPostBack)
        {
            lstNian.Items.Add(new ListItem("2018", "2018"));
            lstNian.Items.Add(new ListItem("2019", "2019"));
            lstNian.Items.Add(new ListItem("2020", "2020"));
            lstNian.Items.Add(new ListItem("2021", "2021"));
            lstNian.Items.Add(new ListItem("2022", "2022"));

            lstYue.Items.Add(new ListItem("01", "01"));
            lstYue.Items.Add(new ListItem("02", "02"));
            lstYue.Items.Add(new ListItem("03", "03"));
            lstYue.Items.Add(new ListItem("04", "04"));
            lstYue.Items.Add(new ListItem("05", "05"));
            lstYue.Items.Add(new ListItem("06", "06"));
            lstYue.Items.Add(new ListItem("07", "07"));
            lstYue.Items.Add(new ListItem("08", "08"));
            lstYue.Items.Add(new ListItem("09", "09"));
            lstYue.Items.Add(new ListItem("10", "10"));
            lstYue.Items.Add(new ListItem("11", "11"));
            lstYue.Items.Add(new ListItem("12", "12"));

            lstNian.SelectedValue = DateTime.Now.Year.ToString();
            lstYue.SelectedValue = DateTime.Now.Month < 10 ? "0" + DateTime.Now.Month.ToString() : DateTime.Now.Month.ToString();
            LoadList();
        }
    }

    protected void excel_Click(object sender, EventArgs e)
    {
        //配送点
        string sql = "select GroupName,GroupID from  Permission.GroupInfo where ParentID='00000002-0000-0000-0000-000000000000' and IsDel=0 ";
        DataTable dt = Sdbo.ExecuteDataTable(sql);
        StringBuilder sb = new StringBuilder();
        sb.Append("<table id='tmpTable' border='1' width='100%'><thead class='tblHead'><tr><th>日期</th>");
        for (int i = 0; i < dt.Rows.Count; i++)
        {
            sb.Append(String.Format("<th  width='58'>{0}</th>", dt.Rows[i]["GroupName"]));

        }
        sb.Append("</tr></thead></table>");
        LiteralTh.Text = sb.ToString();

        //时间
        int days = DateTime.DaysInMonth(int.Parse(this.lstNian.SelectedValue), int.Parse(this.lstYue.SelectedValue));
        StringBuilder sbData = new StringBuilder();
        sbData.Append("<table width='100%' border='2px'>");
        for (int i = 1; i <= days; i++)
        {
            string datetime = "";
            sbData.Append("<tr>");
            sbData.Append(String.Format("<td width='58'>{0}</td>", i));
            if (i < 10)
            {
                datetime = this.lstNian.SelectedValue + this.lstYue.SelectedValue + "0" + i.ToString();
            }
            else
            {
                datetime = this.lstNian.SelectedValue + this.lstYue.SelectedValue + i.ToString();
            }
            string newdatetime = datetime.Substring(0, 4) + "-" + datetime.Substring(4, 2) + "-" + datetime.Substring(6, 2);
            for (int j = 0; j < dt.Rows.Count; j++)
            {
                sql = @"select sum(b.AcceptAmount) as AccepTotal, sum(c.Price * b.AcceptAmount) as AccepPrice from MyOrder.Accept a inner join MyOrder.AcceptDetail b on a.AcceptID=b.AcceptID 
                        inner join Supplier.PriceSheetDetail  c on b.GoodsID=c.GoodsID 
                        inner join Supplier.PriceSheet d on d.PriceSheetID=c.PriceSheetID
                        inner join Permission.GroupInfo z on a.DeliveryID=z.GroupID 
                        where SUBSTRING(CONVERT(varchar(12) ,a.PostTime, 23),1,10) ='{0}' 
                        and a.PostTime> d.BeginTime and a.PostTime < d.EndTime 
                        and (z.ParentID='{1}' or a.DeliveryID='{1}')";
                DataTable dtData = Sdbo.ExecuteDataTable(sql, newdatetime, dt.Rows[j]["GroupID"]);
                if (dtData.Rows.Count != 0)
                {
                    if (dtData.Rows[0]["AccepPrice"].ToString() != "")
                    {
                        sbData.Append(String.Format("<td width='58'>{0}</td>", String.Format("{0:F}", dtData.Rows[0]["AccepPrice"])));
                    }
                    else
                    {
                        sbData.Append(String.Format("<td width='58'>-</td>"));
                    }
                }
                else
                {
                    sbData.Append(String.Format("<td width='58'>-</td>"));
                }


            }
            sbData.Append("</tr>");

        }
        sbData.Append("</table>");


        this.EnableViewState = false;
        HttpContext.Current.Response.ClearHeaders();
        HttpContext.Current.Response.AppendHeader("Expires ", System.DateTime.Now.AddMinutes(30).ToString());
        HttpContext.Current.Response.AppendHeader("Pragma ", "public ");
        HttpContext.Current.Response.AppendHeader("Cache-Control ", "must-revalidate, post-check=0, pre-check=0 ");
        HttpContext.Current.Response.AppendHeader("Cache-Control ", "public ");
        HttpResponse resp = this.Response;
        resp.Charset = "gb2312";
        string totalOne =lstNian.SelectedItem+"年"+lstYue.SelectedItem+"月"+"配送点验收金额";
        resp.ContentEncoding = System.Text.Encoding.GetEncoding("UTF-8");
        resp.AppendHeader("Content-Disposition",
                          "Attachment;filename=" + System.Web.HttpUtility.UrlEncode(totalOne, System.Text.Encoding.UTF8) +
                          ".xls");
        resp.ContentType = "application/ms-excel";
        resp.Write(sb);
        resp.Write(sbData);
        resp.End();
    }


    private void LoadList()
    {
        //配送点
        string sql = "select GroupName,GroupID from  Permission.GroupInfo where ParentID='00000002-0000-0000-0000-000000000000' and IsDel=0 ";
        DataTable dt = Sdbo.ExecuteDataTable(sql);
        StringBuilder sb = new StringBuilder();
        sb.Append("<table id='tmpTable'  width='100%' class='BGtable'><thead><tr><th  width='86'>日期</th>");
        for (int i = 0; i < dt.Rows.Count; i++)
        {
            sb.Append(String.Format("<th  width='86'>{0}</th>", dt.Rows[i]["GroupName"]));

        }
        sb.Append("</tr></thead></table>");
        LiteralTh.Text = sb.ToString();

        //时间
        int days = DateTime.DaysInMonth(int.Parse(this.lstNian.SelectedValue), int.Parse(this.lstYue.SelectedValue));
        StringBuilder sbData = new StringBuilder();
        sbData.Append("<table width='100%' class='BGtable' id='tblGoods'>");
        for (int i = 1; i <= days; i++)
        {
            string datetime = "";
            sbData.Append("<tr>");
            sbData.Append(String.Format("<td width='86'>{0}</td>", i));
            if (i < 10)
            {
                datetime = this.lstNian.SelectedValue + this.lstYue.SelectedValue + "0" + i.ToString();
            }
            else
            {
                datetime = this.lstNian.SelectedValue + this.lstYue.SelectedValue + i.ToString();
            }
            string newdatetime = datetime.Substring(0, 4) + "-" + datetime.Substring(4,2) + "-" + datetime.Substring(6,2);
            for (int j = 0; j < dt.Rows.Count; j++)
            {
                sql = @"select sum(b.AcceptAmount) as AccepTotal, sum(c.Price * b.AcceptAmount) as AccepPrice from MyOrder.Accept a inner join MyOrder.AcceptDetail b on a.AcceptID=b.AcceptID 
                        inner join Supplier.PriceSheetDetail  c on b.GoodsID=c.GoodsID 
                        inner join Supplier.PriceSheet d on d.PriceSheetID=c.PriceSheetID
                        inner join Permission.GroupInfo z on a.DeliveryID=z.GroupID 
                        where SUBSTRING(CONVERT(varchar(12) ,a.PostTime, 23),1,10) ='{0}' 
                        and a.PostTime> d.BeginTime and a.PostTime < d.EndTime 
                        and (z.ParentID='{1}' or a.DeliveryID='{1}')";
                DataTable dtData = Sdbo.ExecuteDataTable(sql, newdatetime, dt.Rows[j]["GroupID"]);
                if (dtData.Rows.Count!=0)
                {
                    if (dtData.Rows[0]["AccepPrice"].ToString() != "")
                    {
                        sbData.Append(String.Format("<td width='86'>{0}</td>", String.Format("{0:F}", dtData.Rows[0]["AccepPrice"])));
                    }
                    else
                    {
                        sbData.Append(String.Format("<td width='86'>-</td>"));
                    }
                }
                else
                {
                    sbData.Append(String.Format("<td width='86'>-</td>"));
                }
             

            }
            sbData.Append("</tr>");
          
        }
        sbData.Append("</table>");
        lblData.Text = sbData.ToString();
    }

    protected void lstYue_SelectedIndexChanged(object sender, EventArgs e)
    {
        LoadList();
    }
}