1 import { AfterViewInit, Component, OnInit, ViewChild, Input, SimpleChange } from '@angular/core';
2 import { MatPaginator } from '@angular/material/paginator';
3 import { MatSort } from '@angular/material/sort';
4 import { MatTable } from '@angular/material/table';
5 import { RunReportDataSource, RunReportFinalTableItem } from './run-report-datasource';
6 import { ActivatedRoute } from '@angular/router';
7 import { HttpClient } from '@angular/common/http';
8 import { environment } from '../../../../../../../environments/environment';
9 import { RunService } from '../run.service';
12 selector: 'app-run-report',
13 templateUrl: './run-report.component.html',
14 styleUrls: ['./run-report.component.css']
16 export class RunReportComponent implements AfterViewInit, OnInit {
17 @Input("reportId") reportId1 : string;
20 @ViewChild(MatPaginator, {static: false} as any) paginator: MatPaginator;
21 @ViewChild(MatSort, {static: false} as any) sort: MatSort;
22 @ViewChild(MatTable, {static: false} as any) table: MatTable<RunReportFinalTableItem>;
23 dataSource: RunReportDataSource;
25 /** Columns displayed in the table. Columns IDs can be added, removed, or reordered. */
26 displayedColumns : string[];
27 IncomingReportId : string;
28 displayedColumnsArr : string[];
29 displayedRowObj : RunReportFinalTableItem[];
31 constructor(private _http : HttpClient, private _route : ActivatedRoute, private _runService : RunService){
32 this.displayedColumnsArr = new Array();
33 this.displayedRowObj = new Array();
34 this.displayedColumns = new Array();
38 this.dataSource = new RunReportDataSource();
40 this._route.params.subscribe(params => {
42 this.IncomingReportId = params["reportId"];
43 this.reportId1 = params["reportId"];
48 // console.log(this.IncomingReportId);
50 this._runService.getReportData(this.reportId1)
51 .subscribe((response) => {
52 console.log(response);
55 while(response["reportDataColumns"][i])
57 this.displayedColumnsArr.push(response["reportDataColumns"][i]["columnTitle"] +","+ response["reportDataColumns"][i]["colId"]);
62 while(response["reportDataRows"][j])
65 let obj = new Object();
66 while(this.displayedColumnsArr[k])
68 if(response["reportDataRows"][j][this.displayedColumnsArr[k].split(",")[1]])
70 //console.log(response["reportDataRows"][j][this.displayedColumnsArr[k].split(",")[1]]);
71 obj[response["reportDataRows"][j][this.displayedColumnsArr[k].split(",")[1]]["colId"]] = response["reportDataRows"][j][this.displayedColumnsArr[k].split(",")[1]]["displayValue"];
72 //this.displayedRowObj.push(response["reportDataRows"][j][this.displayedColumnsArr[k].split(",")[1]]);
76 this.displayedRowObj.push(obj);
77 //console.log(response["reportDataRows"][j]);
81 console.log(this.displayedColumnsArr);
82 console.log(this.displayedRowObj);
84 for(let l=0; l<this.displayedColumnsArr.length; l++)
86 this.displayedColumns.push(this.displayedColumnsArr[l].split(",")[1]);
89 this.dataSource.data = this.displayedRowObj;
90 this.dataSource.sort = this.sort;
91 this.dataSource.paginator = this.paginator;
92 this.table.dataSource = this.dataSource;
96 // this.dataSource.data = [{id: 1, name: 'Hydrogen'}];
100 this._runService.getReportData(this.reportId1)
101 .subscribe((response) => {
102 console.log(response);
105 while(response["reportDataColumns"][i])
107 this.displayedColumnsArr.push(response["reportDataColumns"][i]["columnTitle"] +","+ response["reportDataColumns"][i]["colId"]);
112 while(response["reportDataRows"][j])
115 let obj = new Object();
116 while(this.displayedColumnsArr[k])
118 if(response["reportDataRows"][j][this.displayedColumnsArr[k].split(",")[1]])
120 //console.log(response["reportDataRows"][j][this.displayedColumnsArr[k].split(",")[1]]);
121 obj[response["reportDataRows"][j][this.displayedColumnsArr[k].split(",")[1]]["colId"]] = response["reportDataRows"][j][this.displayedColumnsArr[k].split(",")[1]]["displayValue"];
122 //this.displayedRowObj.push(response["reportDataRows"][j][this.displayedColumnsArr[k].split(",")[1]]);
126 this.displayedRowObj.push(obj);
127 //console.log(response["reportDataRows"][j]);
131 console.log(this.displayedColumnsArr);
132 console.log(this.displayedRowObj);
134 for(let l=0; l<this.displayedColumnsArr.length; l++)
136 this.displayedColumns.push(this.displayedColumnsArr[l].split(",")[1]);
139 this.dataSource.data = this.displayedRowObj;
140 this.dataSource.sort = this.sort;
141 this.dataSource.paginator = this.paginator;
142 this.table.dataSource = this.dataSource;