示例#1
0
        public JsonResult List([FromBody] IEnumerable <QueryModel> querys)
        {
            var canvasModel = new MainCanvasModel();
            var res         = canvasModel.InitData(querys.ToList());

            return(Json(res));
        }
示例#2
0
        public async Task <MainCanvasModel> Post([FromBody] IEnumerable <QueryModel> querys)
        {
            var canvasModel = new MainCanvasModel();
            var res         = await canvasModel.InitData(querys.ToList());

            return(res);
        }
示例#3
0
        public async Task <JsonResult> List(IEnumerable <QueryModel> querys)
        {
            canvasModel = new MainCanvasModel();

            var res = await canvasModel.InitData(querys.Where(d => d.TagName?.Length > 0).ToList());

            return(Json(res));
        }
示例#4
0
        public async Task <ReportResult> Report()
        {
            string            tagName = Request.QueryString["name"];
            string            start   = Request.QueryString["start"];
            string            end     = Request.QueryString["end"];
            List <QueryModel> querys  = new List <QueryModel>()
            {
                new QueryModel()
                {
                    End = end, Start = start, TagName = tagName
                },
            };
            MainCanvasModel model = new MainCanvasModel();
            var             res   = await model.InitData(querys.ToList());

            if (res?.Lines?.Count() < 1)
            {
                return(null);
            }
            var list   = res.Lines.ToList()[0].Data;
            var report = list.ListViewModelToReport <LineDataNode>();
            var parm   = querys.ToList()[0];

            report.TextFields.Title = parm.TagName;
            report.RenderHints.BooleanCheckboxes  = true;
            report.RenderHints.BooleansAsYesNo    = true;
            report.RenderHints.FreezeRows         = 10;
            report.RenderHints.FreezeColumns      = 3;
            report.DataFields[0].DataFormatString = "{0:s}";
            report.TextFields.SubTitle            = parm.Start.Replace("/", "-") + " - " + parm.End.Replace("/", "-");
            report.TextFields.Footer = string.Format("Copyright {0} (c) 趋势图", DateTime.Now.Year);
            report.TextFields.Header = $@"
                    位号名称:{parm.TagName}
                    时间间隔:{(DateTime.Parse(parm.End) - DateTime.Parse(parm.Start)).TotalSeconds}秒 
                    最小值:{list.Min(d => d.Value)} 
                    最大值:{list.Max(d => d.Value)}
                    创建时间:{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}";
            return(new ReportResult(report)
            {
                FileName = parm.TagName + ".xlsx"
            });
        }