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

duplicateRepeatingSectionRow

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

    duplicateRepeatingSectionRow

    I wanted to perform a calculation on a control in a row when the row is duplicated within a repeating section container.

    See: http://www.ajaxvideotutorials.com/V1...licateRows.swf

    For example I have a control within the duplicated row called number. I want this field to increase by one every time the row is duplicated.

    Can I do this in the onclick event for the duplicate button?

    If so what would this code look like?

    #2
    Re: duplicateRepeatingSectionRow

    I have to say... Javascript numbers and dates drive me crazy! Anyway... Have a look at this. It seems to work... but randomly it coughs up with NaN for the value that is being incremented... maybe it's just me.

    There are a few assumptions here and a few oddities.

    1. I've assumed that the last row in the repeating section will carry a field that has the value to increment for the new row.
    2. I created a variable to go and Set a value in the last row - the new row. This row is based on the length of the Array and for some reason I have to add 2 to the length to get things to work.
    3. When {dialog.Object}.duplicateRepeatingSectionRow('CONTAINER_1'); is used, the new row is usually made the current row, but I've noticed it is not always. So, I don't rely on it. I'm still not sure about this one.

    I've had to parseInt until I'm blue... but that's life. Bascially, go and get the data for a column, put it into an Array and figure out how many rows we're dealing with. Grab your field that you want to increment from the last row, duplicate your row, and set the incremented value in the new row. You'll need to change stuff for your Field... hope it helps get you going.

    Code:
    var prodStr = {dialog.Object}.harvestRepeatingSectionColumn('PRODID');
    var prodArray = new Array();
    prodArray = prodStr.split(',');
    var lenArray = parseInt(prodArray.length);
    lastVal = parseInt({dialog.Object}.getValue('PRODID:'+lenArray));
    var nextVal = parseInt(lastVal+1);
    newRecPos = parseInt(lenArray+2);
    //alert('prodStr = ' + prodStr + ' prodArray = ' + prodArray + ' lenArray = ' + lenArray + ' lastVal = ' + lastVal + ' nextVal = ' + nextVal + ' newRecPos = ' + newRecPos);
    {dialog.Object}.duplicateRepeatingSectionRow('CONTAINER_1');
    {dialog.Object}.setValue('PRODID:'+newRecPos,nextVal);
    Last edited by Davidk; 04-12-2012, 03:19 PM.

    Comment


      #3
      Re: duplicateRepeatingSectionRow

      David,
      Thanks for your time and effort. I will give it a try its a little over my head. I was hoping for a simpler fix. Sound like a great opp for a Rabin's Jinger!
      Thanks Again,
      Bob
      Last edited by bob9145; 04-12-2012, 04:52 PM.

      Comment


        #4
        Re: duplicateRepeatingSectionRow

        It's not too bad actually. If you follow Selwyn's video for adding the Duplicate Row button you just need to add in the code above.

        Where it reads "PRODID" change it to your field name. Where it reads "CONTAINER_1" change it to your container name.

        The tough part was getting the number to ADD and not CONCATENATE! Then, figure out the Javascript for arrays, and getting values etc. It's all new to me so it takes time... but fun!

        Comment


          #5
          Re: duplicateRepeatingSectionRow

          Dave,

          Can not get the control to increase in value on the duplicated row.

          My Control name is NUMBER and my container is Container_2. I substituted NUMBER throughout the script to replace PRODID and changed the single instance of Container_2. The row duplicates but the number field does not increase. I get the text NaN. It appears in the last row when a row is duplicated.

          I am using dbf and my field type is Numeric.the control is bound to the dbf table.



          var prodStr = {dialog.Object}.harvestRepeatingSectionColumn('NUMBER');
          var prodArray = new Array();
          prodArray = prodStr.split(',');
          var lenArray = parseInt(prodArray.length);
          lastVal = parseInt({dialog.Object}.getValue('NUMBER:'+lenArray));
          var nextVal = parseInt(lastVal+1);
          newRecPos = parseInt(lenArray+2);
          //alert('prodStr = ' + prodStr + ' prodArray = ' + prodArray + ' lenArray = ' + lenArray + ' lastVal = ' + lastVal + ' nextVal = ' + nextVal + ' newRecPos = ' + newRecPos);
          {dialog.Object}.duplicateRepeatingSectionRow('CONTAINER_2');
          {dialog.Object}.setValue('NUMBER:'+newRecPos,nextVal);

          Comment


            #6
            Re: duplicateRepeatingSectionRow

            I was getting NaN sometimes too... then it stopped... let me try it with your fieldname and a dbf table. The table shouldn't matter... we'll dealing with all Javascript here... but who knows...

            If you try to duplicate one row, you get NaN. But if you then try another row during the same session... still NaN?

            Comment


              #7
              Re: duplicateRepeatingSectionRow

              One cause of the NaN is that we may have the Repeating Row count set to more than the number of records displayed. Blank records will still take up a position in the Array. So... we get rid of them. And... incrememting the newRecPos by 2 doesn't seem to work any more. So, just increment by 1, which is supposed to make sense. Try this code. The new stuff - the filter - gets rid of unwanted Array items... Nulls, Undefined, etc. So cool.

              Code:
              var prodStr = {dialog.Object}.harvestRepeatingSectionColumn('NUMBER');
              var prodArray = new Array();
              prodArray = prodStr.split(',');
              
              prodArray = prodArray.filter(function(val) {
              	return !(val === '' || typeof val == 'undefined' || val === null);
              });
              
              var lenArray = parseInt(prodArray.length);
              lastVal = parseInt({dialog.Object}.getValue('NUMBER:'+lenArray));
              var nextVal = parseInt(lastVal+1);
              newRecPos = parseInt(lenArray+1);
              {dialog.Object}.duplicateRepeatingSectionRow('CONTAINER_1');
              {dialog.Object}.setValue('NUMBER:'+newRecPos,nextVal);

              Comment


                #8
                Re: duplicateRepeatingSectionRow

                Tks again Dave,
                Getting some wierd stuff. It works partially. I think it must have something to do with the number of rows you set it for. I also have a hidden auto incremented field in the mix. Doesn't seem so simple.
                Tks
                Bob

                Comment


                  #9
                  Re: duplicateRepeatingSectionRow

                  Yes... the number of rows is a factor. What weird stuff is happening?

                  Comment


                    #10
                    Re: duplicateRepeatingSectionRow

                    Dave,
                    Trying to start with something simpler. Can't get this to work. Trying to set the value of a control with the submit button with the current time and then save the value.

                    var time = Time();
                    {dialog.Object}.setValue('END',time);
                    {dialog.object}.submit()

                    Tks
                    Bob

                    Comment


                      #11
                      Re: duplicateRepeatingSectionRow

                      I don't think there is a Time() function. Just to be tidy, make sure of that semi-colon on every line that needs it. Depending on what you want you could do something like...

                      Code:
                      var currDate = new Date();
                      var time = currDate.toLocaleTimeString();
                      {dialog.object}.submit();

                      Comment

                      Working...
                      X