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 { RunReportFinalTableDataSource, RunReportFinalTableItem } from './run-report-result-set-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-result-set',
13 templateUrl: './run-report-result-set.component.html',
14 styleUrls: ['./run-report-result-set.component.css']
16 export class RunReportResultSetComponent 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: RunReportFinalTableDataSource;
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 RunReportFinalTableDataSource();
40 this._route.params.subscribe(params => {
42 this.IncomingReportId = params["reportId"];
45 // console.log(this.IncomingReportId);
47 this._runService.getReportData(this.reportId1)
48 .subscribe((response) => {
49 console.log(response);
52 while(response["reportDataColumns"][i])
54 this.displayedColumnsArr.push(response["reportDataColumns"][i]["columnTitle"] +","+ response["reportDataColumns"][i]["colId"]);
59 while(response["reportDataRows"][j])
62 let obj = new Object();
63 while(this.displayedColumnsArr[k])
65 if(response["reportDataRows"][j][this.displayedColumnsArr[k].split(",")[1]])
67 //console.log(response["reportDataRows"][j][this.displayedColumnsArr[k].split(",")[1]]);
68 obj[response["reportDataRows"][j][this.displayedColumnsArr[k].split(",")[1]]["colId"]] = response["reportDataRows"][j][this.displayedColumnsArr[k].split(",")[1]]["displayValue"];
69 //this.displayedRowObj.push(response["reportDataRows"][j][this.displayedColumnsArr[k].split(",")[1]]);
73 this.displayedRowObj.push(obj);
74 //console.log(response["reportDataRows"][j]);
78 console.log(this.displayedColumnsArr);
79 console.log(this.displayedRowObj);
81 for(let l=0; l<this.displayedColumnsArr.length; l++)
83 this.displayedColumns.push(this.displayedColumnsArr[l].split(",")[1]);
86 this.dataSource.data = this.displayedRowObj;
87 this.dataSource.sort = this.sort;
88 this.dataSource.paginator = this.paginator;
89 this.table.dataSource = this.dataSource;
93 // this.dataSource.data = [{id: 1, name: 'Hydrogen'}];
98 this._runService.getReportData(this.reportId1)
99 .subscribe((response) => {
100 console.log(response);
103 while(response["reportDataColumns"][i])
105 this.displayedColumnsArr.push(response["reportDataColumns"][i]["columnTitle"] +","+ response["reportDataColumns"][i]["colId"]);
110 while(response["reportDataRows"][j])
113 let obj = new Object();
114 while(this.displayedColumnsArr[k])
116 if(response["reportDataRows"][j][this.displayedColumnsArr[k].split(",")[1]])
118 //console.log(response["reportDataRows"][j][this.displayedColumnsArr[k].split(",")[1]]);
119 obj[response["reportDataRows"][j][this.displayedColumnsArr[k].split(",")[1]]["colId"]] = response["reportDataRows"][j][this.displayedColumnsArr[k].split(",")[1]]["displayValue"];
120 //this.displayedRowObj.push(response["reportDataRows"][j][this.displayedColumnsArr[k].split(",")[1]]);
124 this.displayedRowObj.push(obj);
125 //console.log(response["reportDataRows"][j]);
129 console.log(this.displayedColumnsArr);
130 console.log(this.displayedRowObj);
132 for(let l=0; l<this.displayedColumnsArr.length; l++)
134 this.displayedColumns.push(this.displayedColumnsArr[l].split(",")[1]);
137 this.dataSource.data = this.displayedRowObj;
138 this.dataSource.sort = this.sort;
139 this.dataSource.paginator = this.paginator;
140 this.table.dataSource = this.dataSource;