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

Editing a field in a list control when a single or multiple rows are selected

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

    #16
    Re: Editing a field in a list control when a single or multiple rows are selected

    Have you run the debugger in Chrome Developer tools?
    Jay
    Jay Talbott
    Lexington, KY

    Comment


      #17
      Re: Editing a field in a list control when a single or multiple rows are selected

      Brushing up on manipulating the list thanks for your help!

      Comment


        #18
        Re: Editing a field in a list control when a single or multiple rows are selected

        So after much toil, I found that I can get this to work in a few different ways when the list is based on static data. Once I switch to basing the list on a backend sql table the value
        returned from the selection is empty. I tried returning a field, and a primary key from the list, neither works. Am I missing a setting in the list? The list renders fine, rows are selected, but the returned values aren't there. However in this case the commas are returned depending on the number of rows that are selected so the correct number of placeholders are there but not the value.
        var lObj = {dialog.Object}.getControl('list1'); //targeting list control
        var emailArray = [];

        for(i=0;i<lObj.selectionData.length;i++){
        emailArray.push(lObj.selectionData[i].somecontrol);
        }

        var emailStr = emailArray.join(',');
        {dialog.object}.setValue('Value',emailStr);
        Put Dave K's code from another post, on a button and returned the value to a label control. Again all works well with a static list but not with a table from a database. I was battling the javascript
        when it seems the problem is with the list, or so it seems.
        Thanks,
        Bob

        Comment


          #19
          Re: Editing a field in a list control when a single or multiple rows are selected

          This is Jay's example with some modifications in the xbasics. Had trouble getting the args to work with a variable containing multiple values so added a for next loop and parsed the array into multiple args. Looped through them updating a table field for each selected row. Used json_parse() to convert the json passed from the client to a dot variable. Then used the loop to extract each value to set the args and execute the sql statement. This ux will allow me to edit multiple records in the list control by using the data from selected rows. Learned much from this exercise.

          Button on click or touch
          var mySelection = getSelectedRows();

          {dialog.Object}.ajaxCallback('','','updateSQL','','_paymentToUpdate=' + mySelection);
          javascript function
          function getSelectedRows(){
          var lObj = {Dialog.object}.getControl('pay');// getting pionter to the list
          var len = lObj.selectionData.length; //number of the selected rows
          debugger;
          var arr = [];
          for (i=0;i<len;i++){
          arr[i] = lObj.selectionData[i].PAY_Id //populates arr with the PAY_Id from the selected rows
          // If this field (PAY_Id) comes from a sql table case matters and must match the table column
          }
          return JSON.stringify(arr) //sends the arr to the call back in json formated string
          }
          {
          }
          xbasic function
          function updateSQL as c (e as p)
          'uncomment debug(1) to step through using the debbuger
          'debug(1)

          DIM cn AS sql::Connection
          DIM args AS sql::Arguments
          DIM sqlUpdate AS c =""
          DIM flag1 as l
          DIM flag2 as l
          DIM response as p
          DIM pay_id as c

          flag1 = cn.Open("::Name::someconnection")'add your connection string

          IF flag1 = .f. THEN
          updateSQL = "alert('SQL connection failed');"
          end
          END IF

          'e._paymenttoUpdate contains the PAY_Id from the selected rows passed from the client side to the server side by the ajax callback
          e.control.Payment_Numbers = e._paymenttoUpdate 'setting a control so you can view the contents of e._paymenttoUpdate

          'e._paymenttoUpdate variable parsed into a p .variable
          response = json_parse(e._paymenttoUpdate)
          e.control.How_Many = response.size() 'setting a control so you can view the number of rows selected

          'for loop goes through each value in the p variable response (for loop will stop at the last variable and loop will stop)
          for i = 1 to response.size()

          pay_id = response[i]'populates pay_id with an single value from response

          args.Set("r1",pay_id) 'Sets the arg value
          'update statement will be run for each value in the response p variable
          sqlUpdate = "UPDATE payment SET pay = 1 WHERE PAY_Id IN (:r1) "

          flag2 = cn.Execute(sqlUpdate,args)

          next i
          cn.close()
          IF flag2 = .f. THEN
          updateSQL = "alert('Records were not updated');"

          end
          ELSE
          updateSQL = "alert('Records were updated successfully');"
          end
          END IF

          end function
          Any further corrections, or suggestions are always appreciated. Thanks again to Jay, and also Dave. I absconded the for next loop from a related post response of his.
          https://forum.alphasoftware.com/show...p+dot+variable
          Last edited by bob9145; 10-22-2018, 08:32 PM.

          Comment

          Working...
          X