| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158 |
- <%@ WebHandler Language="C#" Class="rpt" %>
- using System;
- using System.Web;
- using System.Web.SessionState;
- using System.Data;
- using System.Text;
- using System.Collections;
- using System.Collections.Generic;
- using Newtonsoft.Json;
- using Newtonsoft.Json.Linq;
- using Curtain.DataAccess;
- using DK.XuWei.WebMes;
- public class rpt : IHttpHandler, IReadOnlySessionState
- {
- public void ProcessRequest(HttpContext context)
- {
- context.Response.ContentType = "text/plain";
- using(IDataAccess conn = DataAccess.Create())
- {
- if (context.Request["m"].ToString() == "BIG")
- {
- //读取报表数据
- string sqlStr = @"
- SELECT
- ROWNUM,
- GOODSCODE,
- NUM
- FROM
- (
- SELECT
- F.GOODSCODE,
- COUNT( DISTINCT F.BARCODE ) AS NUM
- FROM
- TP_PM_FINISHEDPRODUCT F
- INNER JOIN TP_MST_GOODS G ON F.GOODSID = G.GOODSID
- INNER JOIN TP_MST_GOODSTYPE GT ON G.GOODSTYPEID = GT.GOODSTYPEID
- WHERE
- F.CREATETIME >= TRUNC(SYSDATE, 'MM')
- AND INSTR( GT.GOODSTYPECODE, '001001' ) = 1
- AND F.VALUEFLAG = 1
- GROUP BY
- F.GOODSCODE
- ORDER BY
- COUNT( DISTINCT F.BARCODE ) DESC
- )
- WHERE
- ROWNUM <= 10
- ";
- //直接获取不分页数据
- DataTable dt = conn.ExecuteDatatable(sqlStr);
- string jsonStr = new JsonResult(dt).ToJson();
- context.Response.Write(jsonStr);
- }else if (context.Request["m"].ToString() == "SMALL")
- {
- //读取报表数据
- string sqlStr = @"
- SELECT
- ROWNUM,
- GOODSCODE,
- NUM
- FROM
- (
- SELECT
- F.GOODSCODE,
- COUNT( DISTINCT F.BARCODE ) AS NUM
- FROM
- TP_PM_FINISHEDPRODUCT F
- INNER JOIN TP_MST_GOODS G ON F.GOODSID = G.GOODSID
- INNER JOIN TP_MST_GOODSTYPE GT ON G.GOODSTYPEID = GT.GOODSTYPEID
- WHERE
- F.CREATETIME >= TRUNC(SYSDATE, 'MM')
- AND INSTR( GT.GOODSTYPECODE, '001002' ) = 1
- AND F.VALUEFLAG = 1
- GROUP BY
- F.GOODSCODE
- ORDER BY
- COUNT( DISTINCT F.BARCODE ) DESC
- )
- WHERE
- ROWNUM <= 10
- ";
- //直接获取不分页数据
- DataTable dt = conn.ExecuteDatatable(sqlStr);
- string jsonStr = new JsonResult(dt).ToJson();
- context.Response.Write(jsonStr);
- }else if (context.Request["m"].ToString() == "TOTAL")
- {
- //读取报表数据
- string sqlStr = @"
- SELECT
- TO_NUMBER(TO_CHAR( F.CREATETIME, 'DD' )) AS TIME,
- COUNT( DISTINCT F.BARCODE ) AS NUM,
- (
- SELECT
- ROUND( DP.PLANNUM / 30, 0 )
- FROM
- TP_MST_DASHBOARD_PLAN DP
- INNER JOIN TP_MST_DASHBOARD D ON DP.DASHBOARDID = D.DASHBOARDID
- WHERE
- DP.PLANTYPE = 3
- AND DP.PLANYEAR = TO_NUMBER( TO_CHAR( SYSDATE, 'YYYY' ) )
- AND DP.PLANMONTH = TO_NUMBER( TO_CHAR( SYSDATE, 'MM' ) )
- AND D.DASHBOARDNAME = '包装'
- ) AS PLAN
- FROM
- TP_PM_FINISHEDPRODUCT F
- INNER JOIN
- TP_MST_GOODS G
- ON F.GOODSID = G.GOODSID
- INNER JOIN
- TP_MST_GOODSTYPE GT
- ON GT.GOODSTYPEID = G.GOODSTYPEID
- WHERE
- F.CREATETIME >= TRUNC( SYSDATE, 'MM' )
- AND F.VALUEFLAG = 1
- AND INSTR(GT.GOODSTYPECODE,'001001') = 1
- GROUP BY
- TO_CHAR( F.CREATETIME, 'DD' )
- ORDER BY
- TO_CHAR( F.CREATETIME, 'DD' )
- ";
- //直接获取不分页数据
- DataTable dt = conn.ExecuteDatatable(sqlStr);
- int year = Convert.ToInt32(DateTime.Now.Year);
- int month = Convert.ToInt32(DateTime.Now.Month);
- for (int i = dt.Rows.Count + 1; i <= DateTime.DaysInMonth(year, month); i++) {
- DataRow dr = dt.NewRow();
- dr["TIME"] = i;
- dr["NUM"] = 0;
- dr["PLAN"] = 0;
- dt.Rows.Add(dr);
- }
- string jsonStr = new JsonResult(dt).ToJson();
- context.Response.Write(jsonStr);
- }
- }
- }
- public decimal toNumber(object o)
- {
- if (o != DBNull.Value)
- return Convert.ToDecimal(o);
- else
- return 0;
- }
- public bool IsReusable
- {
- get
- {
- return false;
- }
- }
- }
|