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
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
    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
      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
        Posts: 1127
        Veteran Member
          Refer to:

          https://www.lawsonguru.co...om-a-dme-call/#17673
          David Williams
          maalimsimo
          Veteran Member
          Posts: 49
          Veteran Member
            Thanks, David.
            It worked finally......! Now I got my first Design Studio project under my belt!
            maalimsimo
            Veteran Member
            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
              Posts: 234
              Veteran Member
                Try adding "return false" to your function. That should stop further processing. 
                maalimsimo
                Veteran Member
                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
                  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