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 iterate through form controls

  • Filter
  • Time
  • Show
Clear All
new posts

  • How to iterate through form controls

    How would I go about iterating through the controls on a form to test if the background color of each control is a particular color?


  • #2
    Re: How to iterate through form controls



    • #3
      Re: How to iterate through form controls

      TD, there are probably several different ways to do this, but for the life of me I can't think why anyone would ever want to. What's the big picture?


      • #4
        Re: How to iterate through form controls

        I have a form on which I set the color equation on certain fields to set the background color to canvas if the field is blank, white or the normal color, if it is not blank. This way I can visually tell the user which fields are required to be filled in.

        More importantly I can write a function to which I pass the form name as a parameter and have the function iterate throught the "Type in fields" on that form to determine if the background color is white or not; if not white then the function would return a logical value of false which I can use to throw up a message box telling the user there are fields that need to be filled in before saving the form.

        With this scheme I can use a single function with any form to test if the required fields have been filled in. Yes, I know you can set the fields to be required in field rules but I do not want/like the A5v7 message to appear.

        I am quite pleased with my scheme if I can find an example of code that shows how to iterate throught the controls, test to see if the control type is "Type in field" and then check for the background color.



        • #5
          Re: How to iterate through form controls


          Investigate <OBJECT>.CHILD_ENUM()

          I don't have experience using it but the help file discussion makes it look promising.

          Your concept is thought provoking. I haven't used color coding to distinguish required fields before and can see how that might be helpful. However, if most of your text controls are NOT required your approach will be checking and rechecking objects unnecessarily. The onInit script of your form could be used to populate an array of field names all of which are required. Your save record sequence could then check only the fields in the array and not have to iterate through the other fields where text is optional...

          Anyway, good luck with your project.


          • #6
            Re: How to iterate through form controls

            Thanks Tom!



            • #7
              Re: How to iterate through form controls

              My first attempt at creating a custom function in A5v7. It's purpose is described earlier in this thread. Can someone tell me what I'm doing wrong with this code?


              FUNCTION req_fld_chk AS L (form_name AS P )
              Dim frm as P
              Dim lst as U

              frm = form_name
              lst = frm.Child_Enum("f=Type-in Field")
              *for_each(fld,iif(fld.fill.forecolor = "canvas",req_fld_chk = .t.,req_fld_chk = .f.),lst)

              END FUNCTION


              • #8
                Re: How to iterate through form controls

                I think Cal Locklin could help with this. website -

                His array fixer works in this manner.



                • #9
                  Re: How to iterate through form controls

                  This was a recent link for its example. Did it ever get resolved and can we see what you did please? I like this idea for color coding the required fields and would like to know how it worked out.

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


                  • #10
                    Re: How to iterate through form controls

                    Originally posted by MoGrace View Post
                    This was a recent link for its example. Did it ever get resolved and can we see what you did please? I like this idea for color coding the required fields and would like to know how it worked out.
                    TD's function appears to be trying to check the forecolor and if it is canvas, set the function's return value to true. The logical value would have been set according to the last type in object in the list. Is that what you want or do you want the reverse?

                    IOW to set the forecolor to canvas for all required fields?
                    There can be only one.


                    • #11
                      Re: How to iterate through form controls

                      Hi Stan,
                      It was an interesting idea, I am not sure how I would use it. I noticed though that if I color the fields that when the cursor enters the field it changes to white. (Database settings). It would be good to have a filled in field stay white if it is not blank. I already color the font for my key fields and am not sure if I want to change that to this idea or not. The colored fields also seem like a good idea for when a new record is being added. The payroll program I am using does this now.
                      Last edited by MoGrace; 04-01-2008, 03:55 PM.

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