Form won't load new data on initial INQ

 8 Replies
 0 Subscribed to this topic
 12 Subscribed to this forum
Sort:
Author
Messages
wilcoxmad
Veteran Member Send Private Message
Posts: 87
Veteran Member

I created a new HR11 screen to display the Job Class and its description, on the 2nd tab. The first time the program is initialized, these new fields don't get filled out. On any subsequent trans they work fine. Any suggestions?

 

John Henley
Send Private Message
Posts: 3355

<!-- Converted from text/plain format -->

How are you loading the fields? Are you using JavaScript?

Thanks for using the LawsonGuru.com forums!
John
wilcoxmad
Veteran Member Send Private Message
Posts: 87
Veteran Member

function FORM_OnAfterTransaction(data)
{
 //was transaction successful?
 if (formState.agsError) return;
 
 var vCompany=lawForm.getFormValue("text1");
 var vJobCode=lawForm.getDataValue("EMP-JOB-CODE");

 // blank out jobclass and desc fields.
 lawForm.setFormValue("text165","");
 lawForm.setFormValue("text166","");

 //Find the jobcode record 
 dmeStr = "?XCOLS=TRUE&XKEYS=TRUE&XCOUNT=TRUE" +
 "&XRELS=FALSE&XIDA=FALSE&XNEXT=FALSE" +
 "&PROD=" + portalObj.getUserVariable("PRODLINE") +
 "&FILE=JOBCODE" +
 "&FIELD=JOB-CLASS" +
 "&INDEX=JBCSET1" +
 "&KEY=" + vCompany + "=" + vJobCode +
 "&OUT=XML";

  var vDMEInfo = top.httpRequest(top.DMEPath + dmeStr);

 //Set the DME result data to an XML object to parse through.
 var DMEobj = new top.DataStorage(vDMEInfo);
 var vRecords = DMEobj.document.getElementsByTagName("RECORD");
 if (vRecords.length == 0)
 {
  alert("No JOBCODE record found.");
  return true;
 }
 else
 {
 // alert("JOBCODE record found.");
  var vCols = vRecords[0].getElementsByTagName("COL");
  //get jobclass from XML object.
  vJobCls = vCols[0].firstChild.data;
  lawForm.setFormValue("text165",vJobCls); 
 }


 //Find the jobclass record
 dmeStr = "?XCOLS=TRUE&XKEYS=TRUE&XCOUNT=TRUE" +
 "&XRELS=FALSE&XIDA=FALSE&XNEXT=FALSE" +
 "&PROD=" + portalObj.getUserVariable("PRODLINE") +
 "&FILE=JOBCLASS" +
 "&FIELD=DESCRIPTION" +
 "&INDEX=JCLSET1" +
 "&KEY=" + vCompany + "=" + vJobCls +
 "&OUT=XML";

 var vDMEInfo = top.httpRequest(top.DMEPath + dmeStr);

 //Set the DME result data to an XML object to parse through.
 var DMEobj = new top.DataStorage(vDMEInfo);
 var vRecords = DMEobj.document.getElementsByTagName("RECORD");

 if (vRecords.length == 0)
 {
  alert("No JOBCODE record found.");
  return true;
 }
 else
 {
 // alert("JOBCLASS record found.");
  var vCols = vRecords[0].getElementsByTagName("COL");
  //get jobclass from XML object.
  vJobClsDesc = vCols[0].firstChild.data; 
  lawForm.setFormValue("text166",vJobClsDesc);
  return true;
 }
}

John Henley
Send Private Message
Posts: 3355
I will go out on a limb and say that the reason it might not be working on the first inquire is because: 1) you're using FORM_OnAfterTransaction() event 2) you're using lawForm.getFormValue("text1") to get the COMPANY for your lookups My understanding of FORM_OnAfterTransaction is that it fires AFTER the AGS transaction has executed, but BEFORE the form fields/HTML elements are populated with the results of the AGS transaction. So, in other words, lawForm.getDataValue() will have AGS-supplied values, but lawForm.getFormValue() won't. Just a hunch. So, try changing: var vCompany=lawForm.getFormValue("text1"); To var vCompany=lawForm.getFormValue("EMP-COMPANY");
Thanks for using the LawsonGuru.com forums!
John
wilcoxmad
Veteran Member Send Private Message
Posts: 87
Veteran Member

I'll try that but I do know that both values load correctly, I displayed the results during my testing to be sure! Company is of course a required field, so I didn't have to rely on the resulting load of data, the user must enter it.

wilcoxmad
Veteran Member Send Private Message
Posts: 87
Veteran Member
Ok, I changed it to this: var vCompany=lawForm.getDataValue("EMP-COMPANY");

(I assume you meant getDataValue not getFormValue in you response).

Same results as I described above.

John Henley
Send Private Message
Posts: 3355
Try putting this in before you the lawForm.SetDataValue() functions
lawForm.setActiveTab('TF0-1');
Thanks for using the LawsonGuru.com forums!
John
wilcoxmad
Veteran Member Send Private Message
Posts: 87
Veteran Member

Thanks John, that worked.

I also added another lawForm.setActiveTab('TF0-0'); statement, near the bottom, to make the Main tab be the one that appears first.

Thanks for your help! Mark.

wilcoxmad
Veteran Member Send Private Message
Posts: 87
Veteran Member

Any other ideas here? The users were not happy when the main tab is always the one they see no matter which tab they started on.

TIA!