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

this.enable() not working with form.load

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

    this.enable() not working with form.load

    I have a button on a form(req_view) that prints a report. The form is called up using form.load("req_view","dialog"). The following code is found in the button:

    '************************
    this.disable()
    vorder=:Req_View:Browse1:Sales_Ord.value

    PREVIEW:
    parentform.hide()
    :Report.preview("pricing_req","BETWEEN(requests->SALES_ORD,val('"+str(vorder)+"'),val('"+str(vorder)+"'))")
    parentform.show()

    vorder=0
    this.enable()
    end
    '**************************

    When I press the button the report runs but after canceling the preview I find that the button goes inactive, in other words the button freezes. I found two fixes to the problem. The first involved getting rid of this.disable() and this.enable() and the second by opening the form without dialog or opening it with form.view(). Can anyone explain why this is so?

    Also note that I had to use a very complex way to evaluate the numeric "vorder" variable in the BETWEEN expression. Using all those single and double quotes was the only way to get it to work. Yet I have several instances where simply stuffing the variable in worked. Any enlightenment would soothe this baffled mind.

    #2
    RE: this.enable() not working with form.load

    Greg,

    Why disable the button if the form is hidden? I have also found that parentform. and this. used in a dialog may not always reference exactly what you think it does. One way to check parentform is add a line

    trace.writeln(parentform.name())

    This will send the name of the form that parentform is referencing to the trace window. As for using this., I have found it is better to directly address an object on the form. For example, if the button is called "button_print" use

    button_print.disable()

    More absolute addressing eliminates relative reference issues.

    As for using variables in expressions, see my post on the thread "Query by varialbe". Someone a while back (Ira or Finian?) suggested using the ascii value for quotations in expressions. It is much easier to follow and more reliable.

    Jerry

    Comment


      #3
      RE: this.enable() not working with form.load

      I tried the absolute addressing for the button and found that there was no change in the behavior. The button still is non-responsive. The reason I hide the parentform is because when I run the report in preview it shows up "behind" the calling window (go figure), there is no way to access it otherwise without closing the window. I thought that perhaps the problem was because I used the hide() and show() but when I commented these lines out I found the same behavior. I tried absolute addressing for the form.hide() but that didn't affect things either. The button remains unresponsive. This is the first situation where the disable()/enable() command has failed and I can't figure out why.

      BTW do you know how I can make my print preview show up on top of previously opened windows?

      Comment


        #4
        RE: this.enable() not working with form.load

        I have never had a print preview display behind the window that called it. What other code do you have attached to the calling form and button?

        There is no reason for you to have to call a second form to call the report.

        Bill
        Bill Hanigsberg

        Comment


          #5
          RE: this.enable() not working with form.load

          This problem of previews popping up behind windows seems to be associated with forms opened as "dialog". Peter Greulich was the one who clued me in on the hide() show() work-around see: "46627 Subject:RE: Still haunted by unclosed reports and session". I havn't been able to figure out why it happens.

          Comment


            #6
            RE: this.enable() not working with form.load

            the way i see it, the whole idea of opening a form as a dialog form is that
            focus should not be allowed to leave it. when you do a report.preview() you
            are opening a new session,so focus is leaving the dialog form. you are
            creating a conflict that the alpha five system evidently doesn't know how
            to handle. i suppose it should just stop with an error at
            the report.preview(), but it allows the report.preview() and
            then crashes.
            does this make sense to you?

            Comment


              #7
              RE: this.enable() not working with form.load

              as for the single and double quotes in the between()
              expression, since the report runs in a new session, the
              variables in the button script cannot be referenced by
              the report.preview(). you have to evaluate all the variables
              in the current session and then send the whole, evaluated
              expression to the report.
              if you were running a query, you would be able to use
              the variables in the between(), because the query runs
              in the same a5 session.

              Comment


                #8
                RE: this.enable() not working with form.load

                re: "the way i see it, the whole idea of opening a form as a dialog form is that focus should not be allowed to leave it". In my apps I use the dialog option a lot because it allows me to tightly control the user along a specified path of operations. Practically all forms are opened as dialog. In many cases I have buttons on forms opened as dialog that in turn open other forms. I have not experienced any problems yet with this practice, perhaps I am making a mistake doing things this way? After all I have only been programming in A5 for only 8 months now.
                I just feel that if I launch a preview from a form (even if it is opened as a dialog) I should expect it to show itself on top of everything else as opposed to underneath. Luckily, there is a workaround. Perhaps the next version would allow some control over the placement of these windows.
                Thanks for your insights they have always been thought provoking.

                Comment


                  #9
                  RE: this.enable() not working with form.load

                  Greg,
                  Occasionally, I open a second dialog from the first. That works ok, but it is a good idea to put a parentform.disable() on the button that calls the second dialog. I have had problems with print.preview() being called form the second dialog, though.
                  Peter
                  Peter
                  AlphaBase Solutions, LLC

                  [email protected]
                  https://www.alphabasesolutions.com


                  Comment


                    #10
                    RE: this.enable() not working with form.load

                    you can cascade a series of dialog forms, because each dialog
                    form remains in the same A5 session, but reports run
                    in their own sessions, so you run into a problem if you
                    run a report from a dialog form. at least, that's the way
                    i have thought of it. i could be wrong!--but it seems consistent
                    to me.
                    - peter

                    Comment

                    Working...
                    X