0

I'm trying to add argument to my JS fonction to use it in my QML form but it's not working.

here working code:

function sum()
{
  var res = 0;
  var res1 = 0;
  var result = 0;
  for(var i = 0; i < listModel.count; i++){
  res += parseFloat(listModel.get(i).trip_time);
  }
  for(var i1 = 0; i1 < listView.currentRow; i1++){
  res1 += parseFloat(listModel.get(i1).trip_time);
  }
  result = res-res1;
  return result;
}

but when I try to replace "trip_time" by argument like that:

function sum(column)
{
  var res = 0;
  var res1 = 0;
  var result = 0;
  for(var i = 0; i < listModel.count; i++){
  res += parseFloat(listModel.get(i).column);
  }
  for(var i1 = 0; i1 < listView.currentRow; i1++){
  res1 += parseFloat(listModel.get(i1).column);
  }
  result = res-res1;
  return result;
}

and call the function in my qml with:

JS.sum(trip_time)

I receive error :

ReferenceError: trip_time is not defined

I used many time this method to add argument like below:

function hourtodec(hour)
{
    var res = hour.split(":")
    var hours = parseInt(res[0]);
    var minutes = parseInt(res[1]);

    var dec = hours+ minutes/60;
    return dec;
}

and I never got this problem before...

Could you help me please?

Thank you very much

Philippe
  • 25
  • 1
  • 7

1 Answers1

0

You are not using the key object column in a good way : listModel.get(i).column should be listModel.get(i)[column] and your argument should be a string : "trip_time"

function sum(column)
{
  var res = 0;
  var res1 = 0;
  var result = 0;
  for(var i = 0; i < listModel.count; i++){
  res += parseFloat(listModel.get(i)[column]);
  }
  for(var i1 = 0; i1 < listView.currentRow; i1++){
  res1 += parseFloat(listModel.get(i1)[column]);
  }
  result = res-res1;
  return result;
}

And use : JS.sum("trip_time");

Stéphane Ammar
  • 1,454
  • 10
  • 17