This topic is locked
[SOLVED]

 How disabled / enabled all the controls on edit page depending of a flag field

5/28/2017 12:50:02 AM
PHPRunner General questions
Myr0n author

Hi

Can someone help me with this please
I want to disabled / enabled all the controls on edit page depending of a flag field, let say that on the edit page I have a flag field named closed_transaction, if this field has a valued of 0 = false all the controls should be enabled meaning, the user can edit or change any value, otherwise all the controls should be disabled.
I was thinking to use in the Javascript onload event
[size="2"]var [/size]ctrl_closed_transaction[size="2"] = Runner.getControl(pageId,'[/size]closed_transaction[size="2"]');[/size]
if (ctrl_closed_transaction==1){

var ctrl = Runner.getControl(pageId,'field001');

ctrl.setDisabled();
var ctrl = Runner.getControl(pageId,'transfield002');

ctrl.setDisabled();
var ctrl = Runner.getControl(pageId,'transfield003');

ctrl.setDisabled();
var ctrl = Runner.getControl(pageId,'field004');

ctrl.setDisabled();
var ctrl = Runner.getControl(pageId,'field005');

ctrl.setDisabled();
var ctrl = Runner.getControl(pageId,'field006');

ctrl.setDisabled();
var ctrl = Runner.getControl(pageId,'field007');

ctrl.setDisabled();
var ctrl = Runner.getControl(pageId,'field008');

ctrl.setDisabled();
var ctrl = Runner.getControl(pageId,'field009');

ctrl.setDisabled();
var ctrl = Runner.getControl(pageId,'field010');

ctrl.setDisabled();

//....meaning 20 more fields
}else{
var ctrl = Runner.getControl(pageId,'field001');

ctrl.setEnabled();

var ctrl = Runner.getControl(pageId,'transfield002');

ctrl.setEnabled();

var ctrl = Runner.getControl(pageId,'transfield003');

ctrl.setEnabled();

var ctrl = Runner.getControl(pageId,'field004');

ctrl.setEnabled();

var ctrl = Runner.getControl(pageId,'field005');

ctrl.setEnabled();

var ctrl = Runner.getControl(pageId,'field006');

ctrl.setEnabled();

var ctrl = Runner.getControl(pageId,'field007');

ctrl.setEnabled();

var ctrl = Runner.getControl(pageId,'field008');

ctrl.setEnabled();

var ctrl = Runner.getControl(pageId,'field009');

ctrl.setEnabled();

var ctrl = Runner.getControl(pageId,'field010');

ctrl.setEnabled();

//....meaning 20 more fields

}
anybody knows other form to change to disabled / enabled all the controls with less code?
the situation is the maintenance, when you have more than 20 fields on a page, it's a kind of boring.
Thank you.

romaldus 5/28/2017

This "Field Level Events" feature will available in upcoming phprunner 9.8.

As explained in xlinesoft newsletter, Field level events perform an action when cursor enters edit field or leaves it or mouse is over a field. Perform any sort of validation, make other fields hidden or required etc. Designed to work on Add, Edit and Register pages (CMIIW).

jadachDevClub member 5/28/2017

On your Edit page Before display event use this:
pageObject.setProxyValue("closed_transaction", values["closed_transaction"]);
On your Edit page JavaScript Onload event use this:
var ctrlclosed_transaction = Runner.getControl(pageid, 'closed_transaction');

var ctrltransfield002 = Runner.getControl(pageid, 'transfield002');

var ctrltransfield003 = Runner.getControl(pageid, 'transfield003');

// the rest of your fields
if(proxy['closed_transaction']==1){

ctrltransfield002.setDisabled();

ctrltransfield003.setDisabled();

// the rest of your fields

}
Another way is to use the Is Record Editable event:
if (values["closed_transaction"] == "1")

return false;

else

return true;

Myr0n author 5/28/2017

Thank you so much, I'll wait the version 9.8 then.

Thank you.