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

Combo Script to Capture a 2nd field from Another Table

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

  • Combo Script to Capture a 2nd field from Another Table

    the desktop app form has dropdown combo for warrReg.customer_installer field. the dropdown list displays both companyname and custcode fields from a customers table. customers.companyname is all that is needed to populate warrReg.customer_installer. this is working.

    now i want to set warrReg.custcode equal to customers.custcode on the customer record selected from the list. i can not find an example or discussion of this simple concept anywhere. this is no doubt a common need and easy to do. i have tried many variations on this script, the last one leading to "table not in change mode". the script that makes sense to me is simply one line of code: warrReg.custcode = customers.custcode. ??? opening these two tables does not make sense as i would think they are are already open. ???

    OnChange Event script:


    'Date Created: 16-Apr-2015 03:12:16 PM
    'Last Updated: 16-Apr-2015 03:12:16 PM
    'Created By : Garth
    'Updated By : Garth
    debug(1)
    dim cust as p
    dim customers as p
    dim warrReg as p
    'cust = table.open("customers",FILE_RW_SHARED)
    'cust.index_primary_put("cmpnynm")
    'warrReg = table.open("warrReg",FILE_RW_SHARED)

    warrReg.custcode = cust.custcode
    warrreg->CUSTCODE = cust.custcode

    BTW: when i remove the first four lines of code, they are back next time i open the script. ???
    Attached Files
    Last edited by Garth Groft; 04-17-2015, 05:22 PM.
    Garth Groft
    Director & Software Architect
    MicroComputer Task Group

  • #2
    Re: Combo Script to Capture a 2nd field from Another Table

    To reference a currently open table, http://wiki.alphasoftware.com/TABLE.CURRENT+Method

    Since you're dealing with an open form you probably want

    warrReg =table.current(#)'where # is the slot
    'or warrReg = table.get("warrReg")
    warrReg.custcode = customer_installer.value

    You can turn off the automatic script change date time stamping by using the

    View menu
    Settings
    Preferences
    Editing Scripts
    Date-Time Stamps
    Last edited by Stan Mathews; 04-17-2015, 09:31 AM.
    There can be only one.

    Comment


    • #3
      Re: Combo Script to Capture a 2nd field from Another Table

      Also, since you're dealing with an open form, you can place the warrReg.custcode field on the form and hide it. Then the onchange event script is simply

      custcode.value = customer_installer.value

      Assuming custcode is the object name of the custcode field.
      There can be only one.

      Comment


      • #4
        Re: Combo Script to Capture a 2nd field from Another Table

        the script is still not pickling up the customer custcode. ?????

        regarding the line of code: warrReg.custcode = customer_installer.value
        i have two values - one used by the the combo itself, the other by the custcode field.
        warrReg.customer_installer needs to be captured from customers.companyname.
        warrReg.custcode needs to capture the custcode value from customers.

        revised script
        'dim cust as p
        'dim customers as p
        dim warrReg as p
        'cust = table.current(1)
        'warrReg = table.current(1)
        warrReg = table.get("warrReg")
        warrReg.custcode = customer_installer.value
        Garth Groft
        Director & Software Architect
        MicroComputer Task Group

        Comment


        • #5
          Re: Combo Script to Capture a 2nd field from Another Table

          i need to display custcode field captured from customers table when using the customer_installer combo on the form
          Attached Files
          Garth Groft
          Director & Software Architect
          MicroComputer Task Group

          Comment


          • #6
            Re: Combo Script to Capture a 2nd field from Another Table

            i changed the last line to:-custcode.value = customer_installer.value

            somehow this script is now working!! even though there are two values: customer_installer and custcode in the combo.
            Last edited by Garth Groft; 04-17-2015, 05:16 PM.
            Garth Groft
            Director & Software Architect
            MicroComputer Task Group

            Comment


            • #7
              Re: Combo Script to Capture a 2nd field from Another Table

              custcode.value = customer_installer.value
              This line says

              take the value property of the object on the form named customer_installer and place it in the value property of the object named custcode on the form.

              Really has nothing to do with the combo box values other than being triggered by the onchange event of it.
              There can be only one.

              Comment


              • #8
                Re: Combo Script to Capture a 2nd field from Another Table

                actually i see now that my script is still not working.

                using custcode.value = customer_installer.value,
                warrReg.custcode on the form is not being replaced with customers.custcode. warrReg.custcode is being replaced with customers.customer_installer which is from customer_installer.value selected from the dropdown list. i need to capture the custcode associated with customers.companyname (i.e. the combo list)

                dim cust as p
                dim customers as p
                dim warrReg as p
                'cust = table.current(1)
                'warrReg = table.current(1)
                warrReg = table.get("warrReg")
                custcode.value = customer_installer.value
                Garth Groft
                Director & Software Architect
                MicroComputer Task Group

                Comment


                • #9
                  Re: Combo Script to Capture a 2nd field from Another Table

                  I think you'd be better served with a table or form level field rule lookup than the combo box. No coding required.
                  There can be only one.

                  Comment


                  • #10
                    Re: Combo Script to Capture a 2nd field from Another Table

                    stan, thank you for your assistance today.

                    i was expecting that scrolling the combo drop down list was moving the record pointer in the customers table. if so, then i could grab Customers.custcode from the record and assign it to warrReg.custcode. so are you a saying that Alpha combos cannot do this? could a fetch move the pointer.

                    is there no command that allows me to capture the custcode value associated with the customers.companayname field displayed in the drop down? can i not take advantage of the fact that custcode values are included in the dropdown. is there no way to capture the 2nd column in the combo's record list.

                    i do not know if i could accomplish what you suggested without considerable assistance. plus the client may likely object to no longer using a combo. they want to see all the choices when adding / editing the customer_installer field.
                    Attached Files
                    Garth Groft
                    Director & Software Architect
                    MicroComputer Task Group

                    Comment


                    • #11
                      Re: Combo Script to Capture a 2nd field from Another Table

                      i was expecting that scrolling the combo drop down list was moving the record pointer in the customers table
                      Don't think so. I believe the combo box control extracts values from the source table to display a list of values. Any columns other than the leftmost are aids to choosing the correct record/value.

                      The table level table lookup is much the same visually as a combo box but you can fill multiple fields.

                      Take a look at the invoice _items table in the AlphaSports sample database. The product_id field is an example. Pretty straightforward.

                      could a fetch move the pointer.
                      To code it you need to use the value obtained by the combo box, get a pointer to the customer table, find the combo box value in the customer table (filter for it or fetch_find() the value in an index), get the value in the companyname field, store that to the proper form field.

                      Thinking a bit further, the onchange event code could have a line

                      cname = lookup("customers","custcode = "+quote(custcode.value),"companyname")

                      Then use the cname variable to store to the warrReg table. Saves all the table fetching.
                      Last edited by Stan Mathews; 04-17-2015, 01:31 PM.
                      There can be only one.

                      Comment


                      • #12
                        Re: Combo Script to Capture a 2nd field from Another Table

                        Hi Garth,
                        In the image above you have the result value to be returned as COMPANYNAME change that to CUSTCODE.
                        Robin

                        Discernment is not needed in things that differ, but in those things that appear to be the same. - Miles Sanford

                        Comment


                        • #13
                          Re: Combo Script to Capture a 2nd field from Another Table

                          in reference to the "image above", are you saying change:
                          cname = lookup("customers","custcode = "+quote(custcode.value),"companyname")
                          to:
                          cname = lookup("customers","custcode = "+quote(custcode.value),"custcode")
                          Garth Groft
                          Director & Software Architect
                          MicroComputer Task Group

                          Comment


                          • #14
                            Re: Combo Script to Capture a 2nd field from Another Table

                            Unzip to a new folder and test.

                            test.zip
                            There can be only one.

                            Comment


                            • #15
                              Re: Combo Script to Capture a 2nd field from Another Table

                              that's cool, but could we reverse the two fields so that customers.company name is first and custcode is last in the drop down? cust code is just going along for the ride.

                              the user does not typically know custcodes very well, but do know company names.
                              Garth Groft
                              Director & Software Architect
                              MicroComputer Task Group

                              Comment

                              Working...
                              X