AP90.1 Design Studio Javascript code for ImageNow

 8 Replies
 0 Subscribed to this topic
 12 Subscribed to this forum
Sort:
Author
Messages
maalimsimo
Veteran Member Send Private Message
Posts: 49
Veteran Member
I am a complete novice at Design Studio, so I will ask very basic questions. I need to create a push button (or buttons) on the AP90.1 form to call ImageNow. Am I required to create a button for each of the detail rows? If not, how do I pass the Invoice Nbr and Voucher Nbr values for rows 2 thru 7 to ImageNow? Has anyone succesfully done this?

I have searched on the forum unsuccessfully. 

Thanks in advance.

Maalim
David Williams
Veteran Member Send Private Message
Posts: 1127
Veteran Member
You just add one button in the detail section and then go into the Sorce Code and modify the button reference by adding r0 to it. That will allow you to recognize which line you're on when you click it.
David Williams
maalimsimo
Veteran Member Send Private Message
Posts: 49
Veteran Member
Thanks, David.
Looking at the Source code it is difficult for me to see exactly where to place the 'r0'. Could you possibly shed more light on this aspect?
David Williams
Veteran Member Send Private Message
Posts: 1127
Veteran Member
Refer to:

https://www.lawsonguru.co...om-a-dme-call/#17673
David Williams
maalimsimo
Veteran Member Send Private Message
Posts: 49
Veteran Member
Thanks, David.
It worked finally......! Now I got my first Design Studio project under my belt!
maalimsimo
Veteran Member Send Private Message
Posts: 49
Veteran Member
I have since gone on to create a good number of customized forms. However, one problem I am having in a couple of them is that even when an error is issued, for instance when a required is not populated, when I click 'OK', there is no hard stop. I still call ImageNow. I would like to remain on the form to await the value. Any idea why this is happening?

Herebelow is a snippet of my code (AP30.2):

function grabAllFormvalues()
{
// Get INVOICE NUMBER field information from the screen
Invoice = lawForm.getFormValue("text3", 0);
while (INVOICE.CharAt(0)==" ")
{
var InvoiceLength=Invoice.Length;
Invoice = Invoice.slice(1,InvoiceLength);
}
If (Invoice == '')
{
alert("Cannot display image without a valid Invoice value on the form.");
return;
}

}

function DisplayImageWeb()
{
grabAllFormValues();
......
......
}


Terry P
Veteran Member Send Private Message
Posts: 234
Veteran Member
Try adding "return false" to your function. That should stop further processing. 
maalimsimo
Veteran Member Send Private Message
Posts: 49
Veteran Member
Unfortunately, that did not work...

I even to position the cursor in the field to no avail.

Here's the full code: *** The asterisks are to mask our server identities

function grabAllFormValues()
{
//Get COMPANY field information from the screen
Company = lawForm.getFormValue("text1", 0);
if (Company == '')
{
alert("Cannot display image without a valid Company value on the form.");
return false;
}

//Get VENDOR NUMBER field information from the screen
Vendor = lawForm.getFormValue("text2", "0");
if (Vendor == '')
{
alert("Cannot display image without a valid Vendor value on the form.");
return false;
}
while (Vendor.charAt(0)==" ")
{
var VendorLength=Vendor.length;
Vendor = Vendor.slice(1,VendorLength);
}

//Get INVOICE NUMBER field information from the screen
Invoice = lawForm.getFormValue("text3", "0");
if (Invoice == '')
{
// position cursor in required code field
lawForm.positionInFieldById("_f8");
alert("Cannot display image without a valid Invoice value on the form.");
return false;
}
// while (Invoice.charAt(0)==" ")
// {
// var InvoiceLength=Invoice.length;
// Invoice = Invoice.slice(1,InvoiceLength);
// }
}

function DisplayImageWeb()
{
grabAllFormValues();
//Get the Lawson hostname and determine if it is production or not
if(location.host == "********.com" || location.host == "********.com"){
isprod = "Y";
} else {isprod = "N";}
//If this is Lawson production, use a different URL than test/dev
if (isprod == 'Y'){
imgAddress = "http://**************/webnow/index.jsp?action=document";
} else {
imgAddress = "http://**************/webnow/index.jsp?action=document";
}
imgAddress = imgAddress + "&folder=" + Vendor;
imgAddress = imgAddress + "&tab=" + Company;
imgAddress = imgAddress + "&field4=" + Invoice;
imgWindow=window.open(imgAddress,"invoiceWindow","location=yes,menubar=no,resizable=yes,scrollbars=yes,titlebar=yes,toolbar=no");
imgWindow.focus();
return true;
}
Randall
Veteran Member Send Private Message
Posts: 44
Veteran Member
I'm not sure if you're still having an issue with this or not.

However, since you're calling grabAllFormValues() within another function, your 'return' or 'return false' will only terminate the grabAllFormValues() function.  The return is only the result of the function that you called.

Given that, the rest of your DisplayImageWeb() function will continue to process unless you check on what the return value was for grabAllFormValues().

You might try adding a return true at the end of your grabAllFormValues() function if everything passes.  Then in your DisplayImageWeb() function, it could be something like:

if (!grabAllFormValues())
return;

If grabAllFormValues() returns an error, check will keep the DisplayImageWeb() from processing as well.

Hope this helps,
Randall