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



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

Xdialog Cancel Button

  • Filter
  • Time
  • Show
Clear All
new posts

  • #16
    Re: Xdialog Cancel Button

    Sorry about that.

    I have modified the code to stop on cancel.

    You need to define the variables in the report. I made them GLOBAL in the script. This means that you need to make them Global in the report. The script runs as

    'Create an XDialog dialog box to prompt for parameters.
    DIM SHARED DateBegin as D
    DIM SHARED DateEnd as D
    DIM SHARED varC_result as C
    heading_string = "Enter Date Range of Report"
    ok_button_label = "&OK"
    cancel_button_label = "&Cancel"
    varC_result = ui_dlg_box("Customer Contact Report",<<%dlg%
    Beginning Date:|	[%DATE;P=popup.calendar(dtoc(DateBegin));I=popup.calendar%.15DateBegin!DateBegin_*];
    Ending Date:|	[%DATE;P=popup.calendar(dtoc(DateEnd));I=popup.calendar%.15DateEnd!DateEnd_*];
    <*15=ok_button_label!OK> <15=cancel_button_label!CANCEL>
    if left(a_dlg_button,10) = "DateBegin_" then 
    	if a_dlg_button = "DateBegin_killfocus" then 
    		DateBegin = ctod(dtoc(DateBegin))
    	end if 
    	a_dlg_button = ""
    end if 
    if left(a_dlg_button,8) = "DateEnd_" then 
    	if a_dlg_button = "DateEnd_killfocus" then 
    		DateEnd = ctod(dtoc(DateEnd))
    	end if 
    	a_dlg_button = ""
    end if
    if varC_Result <>"OK"
    	ui_msg_box("Customer Reports","Action Cancelled at user request")
    end if
    dim  cnt as N
    cnt = a5_get_records_in_query("customer",between_date("Contact_date",var->datebegin,var->dateend))
    IF cnt=0
    	ui_msg_box("Customer Report","No Customers match dates in the range of "+dtoc(var->datebegin)+" to "+dtoc(var->dateend))
      ELSE	'Preview a report, label, letter, form or browse layout. You can specify which records to preview.
    	query.filter = "between(Contact_date,Var->DateBegin,Var->DateEnd)"
    	query.order = "recno()"
    	'replace variables in the filter with their actual values	
    	query.filter = convert_expression(query.filter,"V")
    	:Report.Preview("Customer Report",query.filter,query.order)
    END IF
    Attached are the PDF of the report as well as a snapshot of the Variable definition.

    Have fun...



    • #17
      Re: Xdialog Cancel Button

      Hey nothing for you to be sorry about. I greatly appreciate it. In your last post, your pasted the script, and in looking at the script, where and when did you change the variables to global? I'm I looking at the right script?

      Thanks again...


      • #18
        Re: Xdialog Cancel Button

        I am seeing that you have scoped the variables datebegin and dateend in your script as Shared. There is nothing else needed other than changing those in your script to global. Right?

        Once the variables are global, they are available to place them in your report. The example I provided has this working (see picture).
        Mike W
        "I rebel in at least small things to express to the world that I have not completely surrendered"


        • #19
          Re: Xdialog Cancel Button

          At the very top of the script where the variables are dim'd. look for

          DIM GLOBAL DateBegin
          DIM GLOBAL DateEnd


          Obviously, I copied the WRONG version of the script. Where the script says "SHARED", make it "GLOBAL"
          Last edited by Tom Henkel; 04-01-2009, 09:37 AM. Reason: oops!


          • #20
            Re: Xdialog Cancel Button

            look again Tom.
            Mike W
            "I rebel in at least small things to express to the world that I have not completely surrendered"


            • #21
              Re: Xdialog Cancel Button

              Hi Kelly,

              Originally posted by SFS View Post
              ...but after reading several replies to this thread, most people are steering away from Action scripting.
              I'd actually guess most users of Alpha Five actually use Action Scripting more. It is useful, particularly to non-programmers, but even as a 1st step for programmers. If anything, I would encourage you to move to XBasic coding as abilities allow.

              However, one should be familiar with the strengths & weaknesses of any tool they use.

              Action Scripts, can be faster to create what you need, especially for the non-trivial action items.

              But, it has issues of being overly complex in many cases in it's code generation (out of necessity), slower for the same reason to the equivalent XBasic Code and can potentially change the code each time you resave it with new Alpha 5 patches/versions (adding an unpredictable factor with new patches)

              In code generation of action scripts, there are so many combinations of settings in Action Scripts, it is probably impossible to check every combination, making less used selections having a chance of not producing what you tried to create.

              Ira J. Perlow
              Computer Systems Design

              CSDA A5 Products
              New - Free CSDA DiagInfo - v1.39, 30 Apr 2013
              CSDA Barcode Functions

              CSDA Code Utility
              CSDA Screen Capture


              • #22
                Re: Xdialog Cancel Button

                Tom, was wondering if you could post your new new script that was modified with the "stop on cancel" so that I can review. Thank you sir...



                • #23
                  Re: Xdialog Cancel Button

                  Look at Tom's script, line 18 defines the buttons that are available in the dialog. They are OK and Cancel. Lines 36-39 reads that if the results of the dialog (VarC_result) it is not OK then end. Given 2 choices, OK and Cancel, if it is not OK, then it is Cancel and therefore the script ends.
                  Mike W
                  "I rebel in at least small things to express to the world that I have not completely surrendered"


                  • #24
                    Re: Xdialog Cancel Button

                    Thanks Mike... I have attached a new example. What I'm trying to accomplish is, the user enters in date range then chooses company, if the are NO records in the date range and the company entered, a message box would appear saying "No records found for date range ??/??/?? for ???????" (??????? = company name). Also, in my combo box, duplicate company names are appearing, what filter would you apply to stop duplicate names? Once again thank you for your time... Kelly


                    • #25
                      Re: Xdialog Cancel Button

                      OK, Kelly,
                      I, like Tom, am more efficient and faster using xbasic and xdialog instead of action scripting, sorry. The attached has an added button on the form that calls a script saved as a user defined function (UDF) which presents a new xdialog for the user to select a date range and the company. I believe this is what you wished for. I also got your report.company_new script to work.

                      How to get yours to show only unique records. Use word_unique(). The table.external_record_content_get() filter of "unique_key_value()" should work, but I have trouble with it some times, and word_unique() always works. Add this as line 7 of your first action script code:
                      auto_list_Company = word_unique(auto_list_Company,crlf())
                      then change line 23 to:
                      Company:| [.22[COLOR="Red"]v[/COLOR]Company^[COLOR="Red"]+[/COLOR]a_Company];
                      removing the %v%, and changing the = to a +.

                      I made the variable name vCompany. I would recommend you not use "company" as a variable name since you have a field name with this and it might confuse alpha. Traditionally people place a "v" or others in front to designate it as a variable. That being said, I then rewrote the filter with the genie for the report preview.

                      Hope this helps.
                      Mike W
                      "I rebel in at least small things to express to the world that I have not completely surrendered"


                      • #26
                        Re: Xdialog Cancel Button

                        Mike, I GREATLY appreciate you taking the time to help me. I did have one question, I noticed your dialog box is much bigger (which I like), were in your code set the size of the box? Once again thank you.....



                        • #27
                          Re: Xdialog Cancel Button

                          Mike, I did have one additional question. The way we've got the things setup know, the user selects data range and (1) company to report, what if they wanted to select multiple companies and/or ALL companies, what would need to be added? Thank you...