Avatar billede steen-h Mester
23. oktober 2013 - 07:28 Der er 1 løsning

Sammentæl .DataTable()

Jeg har en tabel. Det er til noget google charts med ControlWrapper

var data = new google.visualization.DataTable();
      data.addColumn('date', 'Dato');
      data.addColumn('number', 'Vægt forandring');
      data.addColumn('number', 'Samled vægt');


data.addRow([new Date(2012,05,02), 2.00,27.20]); 
data.addRow([new Date(2012,05,03), 0.20,32.10]); 
data.addRow([new Date(2012,05,04), -0.30,31.80]); 
data.addRow([new Date(2012,05,05), 0.01,31.80]); 
data.addRow([new Date(2012,05,06), -0.40,31.40]); 
data.addRow([new Date(2012,05,07), 0.00,31.40]); 
data.addRow([new Date(2012,05,08), -0.30,31.10]); 
data.addRow([new Date(2012,05,09), -0.30,30.80]); 
data.addRow([new Date(2012,05,10), -0.50,30.30]); 

Når jeg bevæger min ControlWrapper kommer følgende kald


google.visualization.events.addListener(control, 'statechange',
  function(event) {

//document.getElementById('veight').value =control.getState()["range"]["end"];
document.getElementById('veight').value =control.getState()["range"]["start"];
//document.getElementById('veight').value = data;
  }
);

Min control.getState()["range"]["start"] og END levere en dato.
Så vil jeg gerne have 2. felt i min tabel talt sammen fra start + 1 dag til end. Start er feltet før det man skal bruge.

F.eks hvis første og sidste er start og end.

data.addRow([new Date(2012,05,04), -0.30,31.80]); 
data.addRow([new Date(2012,05,05), 0.01,31.80]); 
data.addRow([new Date(2012,05,06), -0.40,31.40]); 
data.addRow([new Date(2012,05,07), 0.00,31.40]); 

så skal den første ikke bruges.
så vil jeg gerne have 0.01 + -0.4 + 0.00 = -0.39

Hvordan laver jeg det ?
Avatar billede steen-h Mester
25. oktober 2013 - 06:14 #1
Så fandt jeg en løsning

google.visualization.events.addListener(control, 'statechange', function(event) {

var value = 0;
var data2 = data.getFilteredRows([{column: 0, minValue: control.getState().range.start, maxValue: control.getState().range.end}]);

for (var i  = 0; i < data2.length; i++) {

    value += data.getValue(data2[i],1);
}
document.getElementById('veight').value = value;
});
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester