This topic is locked
[SOLVED]

 Javascript onload event on edit page executes on add page!

1/31/2018 7:02:50 AM
ASPRunner.NET General questions
A
admin author

Hi Experts,
I have made a copy of my code from onload event in add page to onload event on editpage.

I have made changes in the code on the editpage so there are difference between addpage onload and editpage onload!
On add the addpage execute the code from editpage onload event!!

If i remove the onload code in editpage the addpage executes its own onload event code!!
What am i doing wrong?
Best regards Michael

I
i.NoLim 1/31/2018

Would you mind posting the code for both events?

A
admin author 2/2/2018

Hi I.noLim,
This is the add onload event
var ctrlbilalder = Runner.getControl(pageid, 'bilalder');

var ctrlsalgsbil = Runner.getControl(pageid, 'salgsbil');

var ctrlsalgspris = Runner.getControl(pageid, 'salgspris');

var ctrlbetaling = Runner.getControl(pageid,'betaling');

var ctrlsagstype = Runner.getControl(pageid,'sagstype');

var ctrlmdrbetal = Runner.getControl(pageid, 'mndex');

var ctrlbonus = Runner.getControl(pageid, 'bonus');

var ctrludbetaling = Runner.getControl(pageid, 'udbetalingex');

var ctrlrenterskat = Runner.getControl(pageid,'renterskat');

var ctrlrenterfinans = Runner.getControl(pageid, 'renterfinans');

var ctrlafskrivning = Runner.getControl(pageid,'afskrivning');

var ctrlafgiftsfaktor = Runner.getControl(pageid,'afgiftsfaktor');

var ctrlfregafgift = Runner.getControl(pageid,'fregafgift');

var ctrlforhmafgift = Runner.getControl(pageid,'forhmafgift');

var ctrlfleasperiode = Runner.getControl(pageid,'fleasperiode');

var ctrlfsalgspris = Runner.getControl(pageid,'fsalgspris');

var ctrlssalgspris = Runner.getControl(pageid,'ssalgspris');

var ctrlfmoms = Runner.getControl(pageid,'fmoms');

var ctrlfnetto = Runner.getControl(pageid,'fnetto');

var ctrlflevomk = Runner.getControl(pageid,'flevomk');

var ctrlfnummerplpris = Runner.getControl(pageid,'fnummerplpris');

var ctrlfexudstyrspris = Runner.getControl(pageid,'fexudstyrpris');

var ctrlfscrap = Runner.getControl(pageid,'scrap');

var ctrlfialtnetto = Runner.getControl(pageid,'fialtnetto');

var ctrllevomk = Runner.getControl(pageid, 'levomk');

var ctrlextra = Runner.getControl(pageid, 'exudstyrpris');

var ctrlomkost = Runner.getControl(pageid, 'omkost');

var ctrlnrplade = Runner.getControl(pageid, 'nrpladerpris');

var ctrlbyttebil = Runner.getControl(pageid, 'byttebilpris');

var ctrlialt = Runner.getControl(pageid, 'sialt');

var ctrlrestbeloeb = Runner.getControl(pageid, 'srest');

var ctrlregdato = Runner.getControl(pageid, 'regdato');

var currentTime = new Date();

var tabs = pageObj.getTabs();

tabs.hide(3);

tabs.hide(4);

tabs.hide(5);

tabs.hide(6);

pageObj.hideField("gavekort");

if (ctrlsagstype.getValue()!= '4')

{

pageObj.hideField("provenummer");

}

pageObj.hideField("levomk");

pageObj.hideField("exudstyrpris");

pageObj.hideField("nrpladerpris");

pageObj.hideField("levdato");

pageObj.hideField("betaling");

pageObj.hideField("nyregnr");

function monthDiff(d1, d2) {

var months;

months = (d2.getFullYear() - d1.getFullYear()) 12;

months -= d1.getMonth() + 1;

months += d2.getMonth();

return months <= 0 ? 0 : months;

}

function func() {

ctrlbilalder.makeReadWrite();

ctrlbilalder.setValue(monthDiff(ctrlregdato.getValue(), currentTime));

ctrlafgiftsfaktor.makeReadWrite();

if (Number(ctrlbilalder.getValue()) < 36)

{

if (Number(ctrlbilalder.getValue()) < 24)

{

ctrlafgiftsfaktor.setValue(0.32)

}

else

{

ctrlafgiftsfaktor.setValue(0.235);

}

}

else

{

ctrlafgiftsfaktor.setValue(0.185);

}

ctrlbilalder.makeReadonly();

ctrlafgiftsfaktor.makeReadonly();

ctrlsalgspris.setValue(Number(ctrlsalgspris.getValue()));

ctrlfleasperiode.setValue(Number(ctrlfleasperiode.getValue()));

ctrludbetaling.setValue(Number(ctrludbetaling.getValue()));

ctrlbonus.setValue(Number(ctrlbonus.getValue()));

ctrlfsalgspris.setValue(Number(ctrlsalgspris.getValue()));

ctrlssalgspris.setValue(Number(ctrlsalgspris.getValue()));

ctrlfregafgift.setValue(Number(ctrlfregafgift.getValue()));

var r = ((Number(ctrlfregafgift.getValue())
Number(ctrlafgiftsfaktor.getValue())) / 36) Number(ctrlfleasperiode.getValue());

r = Number(r).toFixed(2);

ctrlforhmafgift.setValue(r);

ctrlbyttebil.setValue(Number(ctrlbyttebil.getValue()));

ctrllevomk.setValue(Number(ctrllevomk.getValue()));

ctrlflevomk.setValue(Number(ctrllevomk.getValue()));

ctrlextra.setValue(Number(ctrlextra.getValue()));

ctrlfexudstyrspris.setValue(Number(ctrlextra.getValue()));

ctrlnrplade.setValue(Number(ctrlnrplade.getValue()));

ctrlfnummerplpris.setValue(Number(ctrlnrplade.getValue()));

var s = Number(ctrlnrplade.getValue()) + Number(ctrllevomk.getValue()) + Number(ctrlextra.getValue());

s = Number(s).toFixed(2);

ctrlomkost.setValue(s);

var t = Number(ctrlssalgspris.getValue()) + Number(ctrlnrplade.getValue()) + Number(ctrllevomk.getValue()) + Number(ctrlextra.getValue());

t = Number(t).toFixed(2);

ctrlialt.setValue(t);

var u = (Number(ctrlssalgspris.getValue()) + Number(ctrlnrplade.getValue()) + Number(ctrllevomk.getValue()) + Number(ctrlextra.getValue())) - Number(ctrlbyttebil.getValue());

u = Number(u).toFixed(2);

ctrlrestbeloeb.setValue(u);

var v = Number(ctrlfnetto.getValue()) + Number(ctrlfexudstyrspris.getValue()) + Number(ctrllevomk.getValue()) + Number(ctrlnrplade.getValue());

v = Number(v).toFixed(2);

ctrlfialtnetto.setValue(v);

var y = (Number(ctrlfsalgspris.getValue()) - Number(ctrlfregafgift.getValue()))
0.20;

y = Number(y).toFixed(2);

ctrlfmoms.setValue(y);

var z = (Number(ctrlssalgspris.getValue()) - Number(ctrlfregafgift.getValue())) - Number(ctrlfmoms.getValue());

z = Number(z).toFixed(2);

ctrlfnetto.setValue(z);

var n = (Number(ctrlfialtnetto.getValue()) - ((Number(ctrlfialtnetto.getValue()) Number(ctrlafskrivning.getValue())) / 100));

n = Number(n).toFixed(2);

ctrlfscrap.setValue(n);

var o = ((Number(ctrlfregafgift.getValue())
0.0604) / 36) Number(ctrlfleasperiode.getValue());

o = Number(o).toFixed(2);

ctrlrenterskat.setValue(o);

var p = (Number(ctrlfialtnetto.getValue()) + Number(ctrlbonus.getValue()) + Number(ctrlrenterskat.getValue()) + Number(ctrlforhmafgift.getValue()) - Number(ctrludbetaling.getValue()))
0.04 ;

p = Number(p).toFixed(2);

ctrlrenterfinans.setValue(p);

var q = ((Number(ctrlfialtnetto.getValue()) - Number(ctrlfscrap.getValue()) - Number(ctrludbetaling.getValue())) + (Number(ctrlrenterskat.getValue()) + Number(ctrlrenterfinans.getValue()) + Number(ctrlbonus.getValue()) + Number(ctrlforhmafgift.getValue()) + (Number(ctrlfialtnetto.getValue()) * 0.072))) / Number(ctrlfleasperiode.getValue());

q = Number(q).toFixed(2);

ctrlmdrbetal.setValue(q);

}

ctrllevomk.on('keyup', func);

ctrlextra.on('keyup', func);

ctrlnrplade.on('keyup', func);

ctrlbyttebil.on('keyup', func);

ctrlsalgspris.on('keyup', func);

ctrlfleasperiode.on('change', func);

ctrlafskrivning.on('keyup', func);

ctrlbonus.on('keyup', func);

ctrludbetaling.on('keyup', func);

ctrlfregafgift.on('keyup', func);

ctrlregdato.on('keyup', func);

ctrlbetaling.on('change', function(e){

if (this.getValue() == '1'){

tabs.hide(6);

}

else{

tabs.show(6);

}

});

ctrlsagstype.on('change', function(e){

if (this.getValue() != '4'){

tabs.show(3);

tabs.show(4);

tabs.show(5);

pageObj.showField("gavekort");

pageObj.showField("levomk");

pageObj.showField("exudstyrpris");

pageObj.showField("nrpladerpris");

pageObj.showField("levdato");

pageObj.showField("betaling");

pageObj.showField("nyregnr");

}

else{

tabs.hide(3);

tabs.hide(4);

tabs.hide(5);

pageObj.showField("provenummer");

}

});
I copyed the same code to the editpage onload event but the doing this the tabs hided became vissible when

opening the addpage.

If deleting the onload event on editpage the addpage Works!!
Perhaps i have the get deeper into to understanding java and the difference between a new page where data are not stored

and the editpage whicg build on stored data.
Thanks Michael

Akmedlab 2/5/2018

Before analyses your code, I Notec that when has error at JavaScript at any part of code, it is do not give exact result, then, if you try teste block by block of the code, maybe you will discover the exact line that maybe with error.

admin 2/5/2018

The code itself looks fine. I don't think it is possible to say what might be wrong just looking at this code. Someone needs to step through this code to see what exactly is happening.
Check answers to this question that explain how to step through Javascript code using Chrome browser:

https://stackoverflow.com/questions/10638059/javascript-debugging-line-by-line-using-google-chrome

A
admin author 2/18/2018

Hi all,
as Newbi in C# and Java "its learn by trying" - perhaps the only way :-)
I found the solution, after reading comments from Akmedlab and Sergey!

The order of getting/setting values to controls are different dependng of add page or edit page and

after reordering the get and setting values to controls and hide/show tabs/fields i got the JavaScripts working.

Thanks for your comments :-)
I cant explain the solving more detailed.
Best Regards Michael