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

Defining query w/ value of child

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

    Defining query w/ value of child

    Another question:

    I frequently would like to define a query on a set with something like 'Give me all the parent records that have a child w/ a field value of 'x'. Normally ALpha 5 only allows the query expression to contain fields from the parent record. Can someone tell me what I'm missing? (For example, the parent record may be a family, the set may be children in the family, and I want 'all families with children more than 8 years old').

    This type of query seems pretty basic, so I'm guessing I'm missing something fundamental here...

    Thanks

    #2
    RE: Defining query w/ value of child

    Susan,

    When working with forms and version 4 or 4.5 you will need to use the flattenquery() function or simply create a new set, with the tables inverted so that the original child is now parent and vice versa.

    -- tom

    Comment


      #3
      RE: Defining query w/ value of child

      To find info on the Flattenquery() function, read the documentation on ".Query_create()". The instructions for the Flattenquery() option are about half way down.

      Comment


        #4
        RE: Defining query w/ value of child

        Another method that works well on forms is query_by_form. This allows the use of any field on the form to create a query, even if the field references a child record field. Assume the form has a field with the object name "childname"

        parentform.query_by_form()
        parentform:childname.text = "is not blank"
        parentform.query_run()

        This will find all child records with an entry in the field and will work even if the field is hidden as long as query is allowed on the form. The object also must not be read only or disabled.

        Jerry

        Comment


          #5
          RE: Defining query w/ value of child

          Jerry, I'm not sure I agree with you.

          The terminology is treacherous here, but there's a difference between:

          a) searching the child records and returning only those parent records that are linked to matching child records; and

          b) searching the child records and returning only those child records that match.

          In the latter case all parent table records remain in scope. If they are not linked to a matching child record then there are no child records visible. If they are linked to a matching child record then the matching children are shown. This is what you are describing.

          In the former case, only parent table records that are linked to matching child table records are in scope. This is what the first message in this thread was looking for, or so it seemed to me. It is this case where flattenquery or an inverted set is necessary.

          -- tom

          Comment


            #6
            RE: Defining query w/ value of child

            Tom, you are correct that I want the result to be a group of parent records.

            I haven't been able to find the documentation on flattenquery - I have the Version 3 Reference - am I missing something?

            Another twist is that I might want to define a query based on both a child attribute and a parent attribute (child attribute - kids over 8; parent attribute - live in a certain state). Will flatten_query do this as well?

            Thanks for the tips...

            Susan

            Comment


              #7
              RE: Defining query w/ value of child

              Susan, I think flattenquery() was added in vers 4 of Alpha Five. It may not be available in vers. 3.

              Given the additional search criteria you may face, I recommend you create an inverted set, and use a 1 to 1 link. You'll find it very easy to work with. All fields in both tables are available to your query.

              -- tom

              Comment


                #8
                RE: Defining query w/ value of child

                Tom -

                I think I'm still missing something. I'm trying to use the Query feature from a browse, or an independently defined query. I have an inverted set, but it is not 1-1 - since the original set in 1-many, this set is many-one.

                Although Alpha5 gives me the option to use a field from the child in this case (the parent from the original set)when I perform the query I get 'no records found'. I have tried very simple queries to make sure I'm not making a typo or logical error in the query conditional.

                Also, I have version 4.5, but only the documentation from ver. 3 - is there more available? (Or should I just wait for version 5).

                Comment


                  #9
                  RE: Defining query w/ value of child

                  Susan,

                  If your original set was one to many, when you create a new set and invert the tables, the original child becomes parent, and the original parent becomes child. In the new set the link must be defined as one to one, do not use one to many in defining the link in the inverted set.

                  The effect of a one to one link in the new set is, of course, that many parent records are linked to the same child record... but the link itself, from parent table to child table is one to one, because each parent record is linked to only one child record.

                  Confusing, I know, but that's the way it is.

                  If you're having trouble framing the query in a one to one set, perhaps you should post an example database here, or feel free to zip it and email it to me, so long as you include a text file explaining the specifics of what you are seeking to do.

                  -- tom

                  Comment


                    #10
                    RE: Defining query w/ value of child

                    Tom - I used an existing inverse set, and it turns out I defined it incorrectly...
                    Once I fixed that, it works just fine.

                    Thanks to you and everyone else - I have some new tools to play with now.

                    Susan

                    Comment


                      #11
                      RE: Defining query w/ value of child

                      Susan, no problem. Been there. Done that. Have the tee-shirt. Glad it worked out. -- tom

                      Comment


                        #12
                        RE: Defining query w/ value of child

                        Hi Susan,

                        There is documentation for v4 and 4.5. Its a matter of how you install it. There are boxes to check during installation that allows you to install the User's Giuide and the Xbasic Reference Manual.

                        kenn
                        TYVM :) kenn

                        Knowing what you can achieve will not become reality until you imagine and explore.

                        Comment


                          #13
                          RE: Defining query w/ value of child

                          ...or you can simply insert the A5 CD in the drive and find the .pdf or .doc files (same documentation, once in Adobe Acrobat format, once in MS Word format) and either use them from the CD or copy them to your hard drive for future access. Sorry, bad word. Replace "access" with "availability".

                          Comment

                          Working...
                          X