예제 #1
0
        public BasicResponse <DataTable> WebGetReportData(Sys.Safety.Request.ReportWebGetReportDataRequest reportRequest)
        {
            BasicResponse <DataTable> response = new BasicResponse <DataTable>();

            var ListID              = reportRequest.ListID;
            var ListDataID          = reportRequest.ListDataID;
            var _strFreQryCondition = reportRequest._strFreQryCondition;
            var _listdate           = reportRequest._listdate;
            //var pageNum = reportRequest.pageNum;
            //var perPageRecordNum = reportRequest.perPageRecordNum;
            int    filterType      = reportRequest.FilterType;
            int    removeRepetType = reportRequest.RemoveRepetType;
            string arrangeTime     = reportRequest.ArrangeTime;

            SetDayTableSql(_strFreQryCondition, ListID, _listdate, filterType, removeRepetType);

            if (_strFreQryCondition.ToLower().IndexOf("datsearch") > 0)
            {
                string strdate = _strFreQryCondition.Substring(_strFreQryCondition.ToLower().IndexOf("datsearch") + 10, 55);
                _strFreQryCondition = _strFreQryCondition.Replace(strdate, " <> '1900-1-1'");
            }

            var item = _ListdataexRepository.Datas.FirstOrDefault(o => o.ListID == ListID && o.ListDataID == ListDataID);

            string strsql = string.Empty;

            if (item != null)
            {
                string strSortWhere = "";
                IList <ListdatalayountInfo> listDataLayoutDTO = this.GetListLayout(filterType, arrangeTime, ListDataID);
                strSortWhere = listDataLayoutDTO != null && listDataLayoutDTO.Count > 0 ? "and " + listDataLayoutDTO[0].StrConTextCondition : "";
                strsql       = item.StrListSQL;
                strsql       = strsql.Replace("where 1=1", "where 1=1 " + _strFreQryCondition + strSortWhere);
            }
            if (this.GetDBType() == "mysql")
            {
                strsql = strsql.Replace("ISNULL", "IFNULL").Replace("isnull", "ifnull");
            }
            this.GetDistinctSql(ref strsql, ListID);

            SqlRequest sqlrequest = new SqlRequest
            {
                Sql = strsql
            };
            DataTable dt = _SqlService.QueryTableBySql(sqlrequest).Data;

            dt = GetPointSort(dt, this.GetListLayout(filterType, arrangeTime, ListDataID));
            //处理二维表(即行数据变为列数据的情况)
            DataTable dtListDisplay = this.Getlistdisplayex(ListID);

            DataRow[] rows1 = dtListDisplay.Select("lngProivtType=1");
            DataRow[] rows2 = dtListDisplay.Select("lngProivtType=2");
            DataRow[] rows3 = dtListDisplay.Select("lngProivtType=3");
            DataRow[] rows4 = dtListDisplay.Select("lngProivtType=4");


            DataRow[] rowssort = dtListDisplay.Select("strListDisplayFieldNameCHS='参数排序号'");//列排序暂时写死
            if (rows1.Length > 0 && rows2.Length > 0 && rows3.Length > 0)
            {
                string strColummFileName = Convert.ToString(rows1[0]["strListDisplayFieldName"]);
                string strRowFileName    = Convert.ToString(rows2[0]["strListDisplayFieldName"]);
                string strValeFileName   = Convert.ToString(rows3[0]["strListDisplayFieldName"]);
                string strColummChsName  = Convert.ToString(rows2[0]["strListDisplayFieldNameCHS"]);
                string strColumnSortName = rowssort.Length > 0 ? rowssort[0]["strListDisplayFieldName"].ToString() : "";

                dt = RowConvertColumm(dt, strColummFileName, strColumnSortName, rows4, strColummChsName, strRowFileName, strValeFileName);
            }

            //如果是抽放日报表,则把viewjc_lld1_timer列改为字符类型,并把值改为yyyy-MM-dd格式
            if (ListID == 38)
            {
                dt = ConvertAcculutionDataTable(dt);
            }

            response.Data = dt;
            return(response);
        }
예제 #2
0
        public BasicResponse <DataTable> WebGetReportData(Sys.Safety.Request.ReportWebGetReportDataRequest reportRequest)
        {
            var responseStr = HttpClientHelper.Post(Webapi + "/v1/Report/WebGetReportData?token=" + Token, JSONHelper.ToJSONString(reportRequest));

            return(JSONHelper.ParseJSONString <BasicResponse <DataTable> >(responseStr));
        }
예제 #3
0
 public BasicResponse <DataTable> WebGetReportData(Sys.Safety.Request.ReportWebGetReportDataRequest reportRequest)
 {
     return(reportService.WebGetReportData(reportRequest));
 }