Alpha Software Mobile Development Tools:   Alpha Anywhere    |   Alpha TransForm subscribe to our YouTube Channel  Follow Us on LinkedIn  Follow Us on Twitter  Follow Us on Facebook

Announcement

Collapse

The Alpha Software Forum Participation Guidelines

The Alpha Software Forum is a free forum created for Alpha Software Developer Community to ask for help, exchange ideas, and share solutions. Alpha Software strives to create an environment where all members of the community can feel safe to participate. In order to ensure the Alpha Software Forum is a place where all feel welcome, forum participants are expected to behave as follows:
  • Be professional in your conduct
  • Be kind to others
  • Be constructive when giving feedback
  • Be open to new ideas and suggestions
  • Stay on topic


Be sure all comments and threads you post are respectful. Posts that contain any of the following content will be considered a violation of your agreement as a member of the Alpha Software Forum Community and will be moderated:
  • Spam.
  • Vulgar language.
  • Quotes from private conversations without permission, including pricing and other sales related discussions.
  • Personal attacks, insults, or subtle put-downs.
  • Harassment, bullying, threatening, mocking, shaming, or deriding anyone.
  • Sexist, racist, homophobic, transphobic, ableist, or otherwise discriminatory jokes and language.
  • Sexually explicit or violent material, links, or language.
  • Pirated, hacked, or copyright-infringing material.
  • Encouraging of others to engage in the above behaviors.


If a thread or post is found to contain any of the content outlined above, a moderator may choose to take one of the following actions:
  • Remove the Post or Thread - the content is removed from the forum.
  • Place the User in Moderation - all posts and new threads must be approved by a moderator before they are posted.
  • Temporarily Ban the User - user is banned from forum for a period of time.
  • Permanently Ban the User - user is permanently banned from the forum.


Moderators may also rename posts and threads if they are too generic or do not property reflect the content.

Moderators may move threads if they have been posted in the incorrect forum.

Threads/Posts questioning specific moderator decisions or actions (such as "why was a user banned?") are not allowed and will be removed.

The owners of Alpha Software Corporation (Forum Owner) reserve the right to remove, edit, move, or close any thread for any reason; or ban any forum member without notice, reason, or explanation.

Community members are encouraged to click the "Report Post" icon in the lower left of a given post if they feel the post is in violation of the rules. This will alert the Moderators to take a look.

Alpha Software Corporation may amend the guidelines from time to time and may also vary the procedures it sets out where appropriate in a particular case. Your agreement to comply with the guidelines will be deemed agreement to any changes to it.



Bonus TIPS for Successful Posting

Try a Search First
It is highly recommended that a Search be done on your topic before posting, as many questions have been answered in prior posts. As with any search engine, the shorter the search term, the more "hits" will be returned, but the more specific the search term is, the greater the relevance of those "hits". Searching for "table" might well return every message on the board while "tablesum" would greatly restrict the number of messages returned.

When you do post
First, make sure you are posting your question in the correct forum. For example, if you post an issue regarding Desktop applications on the Mobile & Browser Applications board , not only will your question not be seen by the appropriate audience, it may also be removed or relocated.

The more detail you provide about your problem or question, the more likely someone is to understand your request and be able to help. A sample database with a minimum of records (and its support files, zipped together) will make it much easier to diagnose issues with your application. Screen shots of error messages are especially helpful.

When explaining how to reproduce your problem, please be as detailed as possible. Describe every step, click-by-click and keypress-by-keypress. Otherwise when others try to duplicate your problem, they may do something slightly different and end up with different results.

A note about attachments
You may only attach one file to each message. Attachment file size is limited to 2MB. If you need to include several files, you may do so by zipping them into a single archive.

If you forgot to attach your files to your post, please do NOT create a new thread. Instead, reply to your original message and attach the file there.

When attaching screen shots, it is best to attach an image file (.BMP, .JPG, .GIF, .PNG, etc.) or a zip file of several images, as opposed to a Word document containing the screen shots. Because Word documents are prone to viruses, many message board users will not open your Word file, therefore limiting their ability to help you.

Similarly, if you are uploading a zipped archive, you should simply create a .ZIP file and not a self-extracting .EXE as many users will not run your EXE file.
See more
See less

How to calculate amount in repeating rows

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    How to calculate amount in repeating rows

    I have a dialog to record a deposit. The user will put in the total deposit amount and then in the repeating section there are rows to post specific amounts to individual accounts. I am trying to validate that the amounts in each row equals the total deposit amount. I am getting an error even I am following the sample code in the "dialogValidate" event on Server Side events....

    This is the code

    'Example for a field in a repeating section
    'dim i as n
    'dim count as n
    'count = e.dataSubmitted.qty.size()
    ''Loop over each entry in the array of data that was submitted
    'for i = 1 to count
    ' if convert_type(e.dataSubmitted.qty[i],"N") > 10 then
    ' dialogValidate.hasError = .t.
    ' dialogValidate.errorText = dialogValidate.errorText + "Quantity in row " + i + "must be less than 10 <br>"
    ' end if
    'next i


    dim depttl as n
    depttl = convert_type(e.DataSubmitted.DepositAmt,"N")

    dim rowsttl as n
    dim i as n
    dim count as n
    count = e.dataSubmitted.amount.size()
    'Loop over each entry in the array of data that was submitted
    for i = 1 to count
    rowsttl = rowsttl + convert_type(e.dataSubmitted.Amount[i],"N")
    next i +
    if depttl <> rowsttl then
    dialogValidate.hasError = .t.
    dialogValidate.errorText = "Deposit Amount does not equal row total. <br>"
    end if

    I am getting an error in the line where I am assigning the variable "count'. If I assign a value to 'count' such as the number 1, then I get the same error in 'rowsttl line saying that Property not found e.dataSubmittted.amount subelement no found.

    Can someone offer some advice? I followed the sample but I don't understand why the error.

    Here is a screen shot of the input box.
    deposit.jpg

    Thanks for your thoughts.
    Last edited by Mike Reed; 11-09-2011, 08:12 PM.
    Mike Reed
    Phoenix, AZ

    #2
    Re: How to calculate amount in repeating rows

    I haven't put your code into my grid yet, but first I would hazzard a guess that the error is caused because "count" is a reserved word... a function - I wouldn't used it anyway. Use cntRows instead and see if that clears it up. If not, then I'll try your code. And... what's the "next i +" about... I don't recognize the +

    However, the example uses count so I'm probably off on that one... I still wouldn't use count.

    Put a DEBUG(1) statement right at the top of your code - after the function statement. Then run the code in Working Preview and step through your code.

    EDIT: I put your code into my grid, just changed the field names, but it runs without error. What's the error you're getting... one of those horrible javascript things? Count doesn't cause a problem and neither does the +... so I'm way off there.
    Last edited by Davidk; 11-09-2011, 09:32 PM.

    Comment


      #3
      Re: How to calculate amount in repeating rows

      Hi David,
      I guess I didn't explain exactly right. In the code above, the first part is rem'ed out. That is the "sample" code that Alpha provides in the "dialogValidate" event. So the use of count wasn't my invention and normally I wouldn't use it either. The + after the i was a typo on my part, sorry about that.
      So having said that, my code, which starts after the rem'ed out part is my attempt to follow the sample code that Alpha provides. In reading the sample code, I would understand that the fieldname they are processing is named "qty" . It looks like the count variable is counting how many lines there are to process, which is use to the loop process. In the loop process the individual line is referenced by qty[i].
      So as I read sample code it appears as if the line " 'count = e.dataSubmitted.qty.size() " is a way to count how many lines are in the repeating section of the dialog. In the loop then, the value for the field qty is ready by the line " if convert_type(e.dataSubmitted.qty[i],"N") > 10 then "
      So in my code I use this code " count = e.dataSubmitted.amount.size()" to determine the number of lines to process (following the lead of the sample code). The only difference is my field is called amount. In using the debugger, that statement or line gives me the the error "Property not found e.dataSubmittted.amount subelement not found" . I am following the sample, but I get an error.
      The same thing happens in my code in the loop sequence. If I just assign a value to 'count' such as 1 or 2 and not use the code to assign the value, then I get this same exact error in my code " rowsttl = rowsttl + convert_type(e.dataSubmitted.Amount[i],"N")" Again I am following the sample, but I get an error.

      Hope that explains a little better what the error. I don't understand why I get the error. I'm sure there is a better way to write the code as well, I am certainly open to ideas.
      Thanks,
      Mike Reed
      Phoenix, AZ

      Comment


        #4
        Re: How to calculate amount in repeating rows

        Mike... since this is a dialog, and so not tied to any tables, export it and post it here so I can have a look at the actual dialog - should be easy to figure out from there. I just can't see what wrong with the code. Funny that I didn't get an error with the '+' sign in there.

        Comment


          #5
          Re: How to calculate amount in repeating rows

          Attached is all of the code from the dialogValidate event.

          Thanks!
          Attached Files
          Mike Reed
          Phoenix, AZ

          Comment


            #6
            Re: How to calculate amount in repeating rows

            Hey Mike... right click on the dialog component and export it, then attach it here... that way I have the full component to work with... exactly as you have it.
            Last edited by Davidk; 11-14-2011, 09:35 PM.

            Comment


              #7
              Re: How to calculate amount in repeating rows

              Here it is.
              Attached Files
              Mike Reed
              Phoenix, AZ

              Comment


                #8
                Re: How to calculate amount in repeating rows

                Either the documentation for the dialogValidate event is incorrect or there is a problem with that event. The event afterDialogValidate works with your code... dialogValidate does not.

                This is part of the documentation inside the event... but the columns are not available for size. "e.dataSubmitted.qty.size() - number of entries in the array."

                Until this gets corrected you can work with dialogValidate using the following: Get the row count from the Container, and, get the amounts using the "Instance" of the column... which is available. Because each instance is specifically named you need to use "eval" to get it to work. Ask the folks at A5 to have a look to see if there is an issue.

                Code:
                dim depttl as n
                depttl = convert_type(e.DataSubmitted.DepositAmt,"N")
                
                dim rowsttl as n
                dim i as n
                dim cntRows as n
                dim amtRow as c
                'amtRow = "e.dataSubmitted.Amount_A5INSTANCE"
                cntRows = e.repeatingSectionInfo["CONTAINER_1"].rowCount
                'Loop over each entry in the array of data that was submitted
                for i = 1 to cntRows 
                	rowsttl = rowsttl + convert_type(eval("e.dataSubmitted.Amount_A5INSTANCE"+i),"N") 
                next i
                'depttl = 15
                'rowsttl = 15
                if depttl <> rowsttl then
                	dialogValidate.hasError = .t.
                	dialogValidate.errorText = "Deposit Amount does not equal row total. <br>" 
                end if

                Comment


                  #9
                  Re: How to calculate amount in repeating rows

                  Thank you David! That works like it is supposed to.
                  I appreciate your help.
                  And I will send it off to Alpha.

                  Mike
                  Mike Reed
                  Phoenix, AZ

                  Comment

                  Working...
                  X