Generate Barchart from List











up vote
2
down vote

favorite












I have this JPA query from which I want to generate Angular Barchart from Spring:



    public List<PaymentTransactionsDailyFacts> findPaymentTransactionsDailyFacts(LocalDateTime start_date, LocalDateTime end_date) {

String hql = "SELECT SUM(amount) AS sum_volume, COUNT(*) AS sum_Transactions " +
" WHERE (created_at BETWEEN :start_date AND :end_date )" +
" GROUP BY DATE(created_at)";

TypedQuery<PaymentTransactionsDailyFacts> query = entityManager.createQuery(hql,
PaymentTransactionsDailyFacts.class).setParameter("start_date", start_date).setParameter("end_date", end_date);
List<PaymentTransactionsDailyFacts> data = query.getResultList();
return data;
}


Expected query result:



Date       | Amount| Number of transactions per day |
11-11-2018 | 30 | 3 |
11-12-2018 | 230 | 13 |


Mapped Object from JPA query:



public class DashboardDTO {

private Date date;

private int sum_volume;

private int sum_Transactions;

... getters and setters
}


Angular Service:



@Injectable({
providedIn: 'root'
})
export class DashboardService {

constructor(private http: HttpClient) {
}

getCurruncyList(): Observable<Array<CurruncyList>> {
return this.http.get<Array<CurruncyList>>(environment.api.urls.dashboard.getVolumes);
}
}


Interface



export interface CurruncyList {
date: Date,
amount: number,
number_of_transactions: number
}


Dashboard component with Barchart:



  selector: 'app-dashboard',
templateUrl: './dashboard.component.html',
styleUrls: ['./dashboard.component.scss']
})
export class DashboardComponent implements OnInit {

barData: any;

constructor() {
}

ngOnInit() {
this.barChart();
}


barChart() {
this.barData = {
labels: ['02-10-2018', '03-10-2018', '04-10-2018', '05-10-2018', '06-10-2018', '07-10-2018', '08-10-2018'],
datasets: [
{
label: 'USD',
backgroundColor: '#42A5F5',
borderColor: '#1E88E5',
data: [65, 59, 80, 81, 56, 55, 40]
},
{
label: 'EUR',
backgroundColor: '#9CCC65',
borderColor: '#7CB342',
data: [28, 48, 40, 19, 86, 27, 90]
}
]
}
}
}


How I can generate Barchant from <Array<CurruncyList>? I would like to take the data from database query listed above using the above code.



Update: tested example:



import {Component, OnInit} from '@angular/core';
import {DashboardService} from "../service/dashboard.service";

@Component({
selector: 'app-dashboard',
templateUrl: './dashboard.component.html',
styleUrls: ['./dashboard.component.scss']
})
export class DashboardComponent implements OnInit {

barData: any;

constructor(private dashboardService: DashboardService) {
}

ngOnInit() {
this.barChart();
}

barChart(){
this.dashboardService.getCurruncyList().subscribe(data => {
this.barData = data.map(t => t.date);
response.map(function (o) {
return {
data: 22,
label: o.date
};
});
});


}
}










share|improve this question

















This question has an open bounty worth +50
reputation from user1285928 ending in 3 days.


Looking for an answer drawing from credible and/or official sources.




















    up vote
    2
    down vote

    favorite












    I have this JPA query from which I want to generate Angular Barchart from Spring:



        public List<PaymentTransactionsDailyFacts> findPaymentTransactionsDailyFacts(LocalDateTime start_date, LocalDateTime end_date) {

    String hql = "SELECT SUM(amount) AS sum_volume, COUNT(*) AS sum_Transactions " +
    " WHERE (created_at BETWEEN :start_date AND :end_date )" +
    " GROUP BY DATE(created_at)";

    TypedQuery<PaymentTransactionsDailyFacts> query = entityManager.createQuery(hql,
    PaymentTransactionsDailyFacts.class).setParameter("start_date", start_date).setParameter("end_date", end_date);
    List<PaymentTransactionsDailyFacts> data = query.getResultList();
    return data;
    }


    Expected query result:



    Date       | Amount| Number of transactions per day |
    11-11-2018 | 30 | 3 |
    11-12-2018 | 230 | 13 |


    Mapped Object from JPA query:



    public class DashboardDTO {

    private Date date;

    private int sum_volume;

    private int sum_Transactions;

    ... getters and setters
    }


    Angular Service:



    @Injectable({
    providedIn: 'root'
    })
    export class DashboardService {

    constructor(private http: HttpClient) {
    }

    getCurruncyList(): Observable<Array<CurruncyList>> {
    return this.http.get<Array<CurruncyList>>(environment.api.urls.dashboard.getVolumes);
    }
    }


    Interface



    export interface CurruncyList {
    date: Date,
    amount: number,
    number_of_transactions: number
    }


    Dashboard component with Barchart:



      selector: 'app-dashboard',
    templateUrl: './dashboard.component.html',
    styleUrls: ['./dashboard.component.scss']
    })
    export class DashboardComponent implements OnInit {

    barData: any;

    constructor() {
    }

    ngOnInit() {
    this.barChart();
    }


    barChart() {
    this.barData = {
    labels: ['02-10-2018', '03-10-2018', '04-10-2018', '05-10-2018', '06-10-2018', '07-10-2018', '08-10-2018'],
    datasets: [
    {
    label: 'USD',
    backgroundColor: '#42A5F5',
    borderColor: '#1E88E5',
    data: [65, 59, 80, 81, 56, 55, 40]
    },
    {
    label: 'EUR',
    backgroundColor: '#9CCC65',
    borderColor: '#7CB342',
    data: [28, 48, 40, 19, 86, 27, 90]
    }
    ]
    }
    }
    }


    How I can generate Barchant from <Array<CurruncyList>? I would like to take the data from database query listed above using the above code.



    Update: tested example:



    import {Component, OnInit} from '@angular/core';
    import {DashboardService} from "../service/dashboard.service";

    @Component({
    selector: 'app-dashboard',
    templateUrl: './dashboard.component.html',
    styleUrls: ['./dashboard.component.scss']
    })
    export class DashboardComponent implements OnInit {

    barData: any;

    constructor(private dashboardService: DashboardService) {
    }

    ngOnInit() {
    this.barChart();
    }

    barChart(){
    this.dashboardService.getCurruncyList().subscribe(data => {
    this.barData = data.map(t => t.date);
    response.map(function (o) {
    return {
    data: 22,
    label: o.date
    };
    });
    });


    }
    }










    share|improve this question

















    This question has an open bounty worth +50
    reputation from user1285928 ending in 3 days.


    Looking for an answer drawing from credible and/or official sources.


















      up vote
      2
      down vote

      favorite









      up vote
      2
      down vote

      favorite











      I have this JPA query from which I want to generate Angular Barchart from Spring:



          public List<PaymentTransactionsDailyFacts> findPaymentTransactionsDailyFacts(LocalDateTime start_date, LocalDateTime end_date) {

      String hql = "SELECT SUM(amount) AS sum_volume, COUNT(*) AS sum_Transactions " +
      " WHERE (created_at BETWEEN :start_date AND :end_date )" +
      " GROUP BY DATE(created_at)";

      TypedQuery<PaymentTransactionsDailyFacts> query = entityManager.createQuery(hql,
      PaymentTransactionsDailyFacts.class).setParameter("start_date", start_date).setParameter("end_date", end_date);
      List<PaymentTransactionsDailyFacts> data = query.getResultList();
      return data;
      }


      Expected query result:



      Date       | Amount| Number of transactions per day |
      11-11-2018 | 30 | 3 |
      11-12-2018 | 230 | 13 |


      Mapped Object from JPA query:



      public class DashboardDTO {

      private Date date;

      private int sum_volume;

      private int sum_Transactions;

      ... getters and setters
      }


      Angular Service:



      @Injectable({
      providedIn: 'root'
      })
      export class DashboardService {

      constructor(private http: HttpClient) {
      }

      getCurruncyList(): Observable<Array<CurruncyList>> {
      return this.http.get<Array<CurruncyList>>(environment.api.urls.dashboard.getVolumes);
      }
      }


      Interface



      export interface CurruncyList {
      date: Date,
      amount: number,
      number_of_transactions: number
      }


      Dashboard component with Barchart:



        selector: 'app-dashboard',
      templateUrl: './dashboard.component.html',
      styleUrls: ['./dashboard.component.scss']
      })
      export class DashboardComponent implements OnInit {

      barData: any;

      constructor() {
      }

      ngOnInit() {
      this.barChart();
      }


      barChart() {
      this.barData = {
      labels: ['02-10-2018', '03-10-2018', '04-10-2018', '05-10-2018', '06-10-2018', '07-10-2018', '08-10-2018'],
      datasets: [
      {
      label: 'USD',
      backgroundColor: '#42A5F5',
      borderColor: '#1E88E5',
      data: [65, 59, 80, 81, 56, 55, 40]
      },
      {
      label: 'EUR',
      backgroundColor: '#9CCC65',
      borderColor: '#7CB342',
      data: [28, 48, 40, 19, 86, 27, 90]
      }
      ]
      }
      }
      }


      How I can generate Barchant from <Array<CurruncyList>? I would like to take the data from database query listed above using the above code.



      Update: tested example:



      import {Component, OnInit} from '@angular/core';
      import {DashboardService} from "../service/dashboard.service";

      @Component({
      selector: 'app-dashboard',
      templateUrl: './dashboard.component.html',
      styleUrls: ['./dashboard.component.scss']
      })
      export class DashboardComponent implements OnInit {

      barData: any;

      constructor(private dashboardService: DashboardService) {
      }

      ngOnInit() {
      this.barChart();
      }

      barChart(){
      this.dashboardService.getCurruncyList().subscribe(data => {
      this.barData = data.map(t => t.date);
      response.map(function (o) {
      return {
      data: 22,
      label: o.date
      };
      });
      });


      }
      }










      share|improve this question















      I have this JPA query from which I want to generate Angular Barchart from Spring:



          public List<PaymentTransactionsDailyFacts> findPaymentTransactionsDailyFacts(LocalDateTime start_date, LocalDateTime end_date) {

      String hql = "SELECT SUM(amount) AS sum_volume, COUNT(*) AS sum_Transactions " +
      " WHERE (created_at BETWEEN :start_date AND :end_date )" +
      " GROUP BY DATE(created_at)";

      TypedQuery<PaymentTransactionsDailyFacts> query = entityManager.createQuery(hql,
      PaymentTransactionsDailyFacts.class).setParameter("start_date", start_date).setParameter("end_date", end_date);
      List<PaymentTransactionsDailyFacts> data = query.getResultList();
      return data;
      }


      Expected query result:



      Date       | Amount| Number of transactions per day |
      11-11-2018 | 30 | 3 |
      11-12-2018 | 230 | 13 |


      Mapped Object from JPA query:



      public class DashboardDTO {

      private Date date;

      private int sum_volume;

      private int sum_Transactions;

      ... getters and setters
      }


      Angular Service:



      @Injectable({
      providedIn: 'root'
      })
      export class DashboardService {

      constructor(private http: HttpClient) {
      }

      getCurruncyList(): Observable<Array<CurruncyList>> {
      return this.http.get<Array<CurruncyList>>(environment.api.urls.dashboard.getVolumes);
      }
      }


      Interface



      export interface CurruncyList {
      date: Date,
      amount: number,
      number_of_transactions: number
      }


      Dashboard component with Barchart:



        selector: 'app-dashboard',
      templateUrl: './dashboard.component.html',
      styleUrls: ['./dashboard.component.scss']
      })
      export class DashboardComponent implements OnInit {

      barData: any;

      constructor() {
      }

      ngOnInit() {
      this.barChart();
      }


      barChart() {
      this.barData = {
      labels: ['02-10-2018', '03-10-2018', '04-10-2018', '05-10-2018', '06-10-2018', '07-10-2018', '08-10-2018'],
      datasets: [
      {
      label: 'USD',
      backgroundColor: '#42A5F5',
      borderColor: '#1E88E5',
      data: [65, 59, 80, 81, 56, 55, 40]
      },
      {
      label: 'EUR',
      backgroundColor: '#9CCC65',
      borderColor: '#7CB342',
      data: [28, 48, 40, 19, 86, 27, 90]
      }
      ]
      }
      }
      }


      How I can generate Barchant from <Array<CurruncyList>? I would like to take the data from database query listed above using the above code.



      Update: tested example:



      import {Component, OnInit} from '@angular/core';
      import {DashboardService} from "../service/dashboard.service";

      @Component({
      selector: 'app-dashboard',
      templateUrl: './dashboard.component.html',
      styleUrls: ['./dashboard.component.scss']
      })
      export class DashboardComponent implements OnInit {

      barData: any;

      constructor(private dashboardService: DashboardService) {
      }

      ngOnInit() {
      this.barChart();
      }

      barChart(){
      this.dashboardService.getCurruncyList().subscribe(data => {
      this.barData = data.map(t => t.date);
      response.map(function (o) {
      return {
      data: 22,
      label: o.date
      };
      });
      });


      }
      }







      java angular typescript angular6






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited 2 days ago

























      asked Nov 8 at 10:28









      Peter Penzov

      6955177370




      6955177370






      This question has an open bounty worth +50
      reputation from user1285928 ending in 3 days.


      Looking for an answer drawing from credible and/or official sources.








      This question has an open bounty worth +50
      reputation from user1285928 ending in 3 days.


      Looking for an answer drawing from credible and/or official sources.


























          1 Answer
          1






          active

          oldest

          votes

















          up vote
          2
          down vote













          You need to subscribe in your component and generate the dataLabels using Array.map as follows,



          constructor(private chartService : DashboardService)

          renderChart(){
          this.chartService.getCurruncyList().subscribe(data=>{
          this.chartLables = data.map(t=>t.date);
          response.map(function (o) {
          return {
          data: push the transactions count
          label: o.date
          };
          });
          }





          share|improve this answer





















          • I updated the post. What should I put for data?
            – Peter Penzov
            2 days ago










          • How should I put data: from the Array?
            – Peter Penzov
            2 days ago












          • @Sajeetharan Can you advice, please?
            – user1285928
            yesterday












          • Data should be transactions
            – Sajeetharan
            yesterday










          • data should be an array so you need data.push ( your object);
            – Sajeetharan
            yesterday











          Your Answer






          StackExchange.ifUsing("editor", function () {
          StackExchange.using("externalEditor", function () {
          StackExchange.using("snippets", function () {
          StackExchange.snippets.init();
          });
          });
          }, "code-snippets");

          StackExchange.ready(function() {
          var channelOptions = {
          tags: "".split(" "),
          id: "1"
          };
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function() {
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled) {
          StackExchange.using("snippets", function() {
          createEditor();
          });
          }
          else {
          createEditor();
          }
          });

          function createEditor() {
          StackExchange.prepareEditor({
          heartbeatType: 'answer',
          convertImagesToLinks: true,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: 10,
          bindNavPrevention: true,
          postfix: "",
          imageUploader: {
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          },
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          });


          }
          });














           

          draft saved


          draft discarded


















          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53205837%2fgenerate-barchart-from-list%23new-answer', 'question_page');
          }
          );

          Post as a guest
































          1 Answer
          1






          active

          oldest

          votes








          1 Answer
          1






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes








          up vote
          2
          down vote













          You need to subscribe in your component and generate the dataLabels using Array.map as follows,



          constructor(private chartService : DashboardService)

          renderChart(){
          this.chartService.getCurruncyList().subscribe(data=>{
          this.chartLables = data.map(t=>t.date);
          response.map(function (o) {
          return {
          data: push the transactions count
          label: o.date
          };
          });
          }





          share|improve this answer





















          • I updated the post. What should I put for data?
            – Peter Penzov
            2 days ago










          • How should I put data: from the Array?
            – Peter Penzov
            2 days ago












          • @Sajeetharan Can you advice, please?
            – user1285928
            yesterday












          • Data should be transactions
            – Sajeetharan
            yesterday










          • data should be an array so you need data.push ( your object);
            – Sajeetharan
            yesterday















          up vote
          2
          down vote













          You need to subscribe in your component and generate the dataLabels using Array.map as follows,



          constructor(private chartService : DashboardService)

          renderChart(){
          this.chartService.getCurruncyList().subscribe(data=>{
          this.chartLables = data.map(t=>t.date);
          response.map(function (o) {
          return {
          data: push the transactions count
          label: o.date
          };
          });
          }





          share|improve this answer





















          • I updated the post. What should I put for data?
            – Peter Penzov
            2 days ago










          • How should I put data: from the Array?
            – Peter Penzov
            2 days ago












          • @Sajeetharan Can you advice, please?
            – user1285928
            yesterday












          • Data should be transactions
            – Sajeetharan
            yesterday










          • data should be an array so you need data.push ( your object);
            – Sajeetharan
            yesterday













          up vote
          2
          down vote










          up vote
          2
          down vote









          You need to subscribe in your component and generate the dataLabels using Array.map as follows,



          constructor(private chartService : DashboardService)

          renderChart(){
          this.chartService.getCurruncyList().subscribe(data=>{
          this.chartLables = data.map(t=>t.date);
          response.map(function (o) {
          return {
          data: push the transactions count
          label: o.date
          };
          });
          }





          share|improve this answer












          You need to subscribe in your component and generate the dataLabels using Array.map as follows,



          constructor(private chartService : DashboardService)

          renderChart(){
          this.chartService.getCurruncyList().subscribe(data=>{
          this.chartLables = data.map(t=>t.date);
          response.map(function (o) {
          return {
          data: push the transactions count
          label: o.date
          };
          });
          }






          share|improve this answer












          share|improve this answer



          share|improve this answer










          answered Nov 11 at 4:27









          Sajeetharan

          113k27153209




          113k27153209












          • I updated the post. What should I put for data?
            – Peter Penzov
            2 days ago










          • How should I put data: from the Array?
            – Peter Penzov
            2 days ago












          • @Sajeetharan Can you advice, please?
            – user1285928
            yesterday












          • Data should be transactions
            – Sajeetharan
            yesterday










          • data should be an array so you need data.push ( your object);
            – Sajeetharan
            yesterday


















          • I updated the post. What should I put for data?
            – Peter Penzov
            2 days ago










          • How should I put data: from the Array?
            – Peter Penzov
            2 days ago












          • @Sajeetharan Can you advice, please?
            – user1285928
            yesterday












          • Data should be transactions
            – Sajeetharan
            yesterday










          • data should be an array so you need data.push ( your object);
            – Sajeetharan
            yesterday
















          I updated the post. What should I put for data?
          – Peter Penzov
          2 days ago




          I updated the post. What should I put for data?
          – Peter Penzov
          2 days ago












          How should I put data: from the Array?
          – Peter Penzov
          2 days ago






          How should I put data: from the Array?
          – Peter Penzov
          2 days ago














          @Sajeetharan Can you advice, please?
          – user1285928
          yesterday






          @Sajeetharan Can you advice, please?
          – user1285928
          yesterday














          Data should be transactions
          – Sajeetharan
          yesterday




          Data should be transactions
          – Sajeetharan
          yesterday












          data should be an array so you need data.push ( your object);
          – Sajeetharan
          yesterday




          data should be an array so you need data.push ( your object);
          – Sajeetharan
          yesterday


















           

          draft saved


          draft discarded



















































           


          draft saved


          draft discarded














          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53205837%2fgenerate-barchart-from-list%23new-answer', 'question_page');
          }
          );

          Post as a guest




















































































          Popular posts from this blog

          Guess what letter conforming each word

          Port of Spain

          Run scheduled task as local user group (not BUILTIN)