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

Report variable filters

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

    Report variable filters

    Hi,
    My present problem is how to reduce the size of the next script I will be writing and am hoping someone can steer me to a better way.

    The first script will work for using a variable for a filter but as I have at least 6 different filters to add to this the amount of script will be quite large. If I could use variables to equal each filter as in the second script (which DOES NOT work!) the amount of work needed will be reduced quite a bit and be much cleaner too I might add.

    Client_info and Sel_prod_type are tables in the report set.
    rvAll, rvComp, and rvPrd_Type are character global variables and are for sure set.

    Code:
    dim Com_cnt as n
    Com_cnt= tablecount("client_info","client_chb")
    
    if Com_cnt = 0 then
      rvAll="Client_Info->Client_chb = .T." 'Client_chb is a logical checkbox
    
     else
      rvAll="Client_Info->Client_chb=.T. .And. sel_prod_type->Chbx_Ptype=.T." 'Chx_Ptype is a logical checkbox
    end if
    
    dim PType_cnt as n
    PType_cnt=tablecount("sel_prod_type","Chbx_Ptype")
    
    if PType_cnt=0 then
       rvAll = "Client_Info->Client_chb=.T."
    
     else
       rvAll = "sel_prod_type->Chbx_Ptype=.T. .And. Client_Info->Client_chb=.T."
    end if
    
    query.filter = rvAll
    query.order = "recno()"
    :Report.Preview("APT_Inc",query.filter,query.order)
    The following script does not work--error of "Arguement is incorrect data type" ... but will if only one of the variables is passed as the filter.

    Code:
    dim Com_cnt as n
    Com_cnt= tablecount("client_info","client_chb")
    
     if Com_cnt = 0 then
       rvComp=""
    
      else
       rvComp="Client_Info->Client_chb=.T."
     end if
    
    dim PType_cnt as n
    PType_cnt=tablecount("sel_prod_type","Chbx_Ptype")
    
     if PType_cnt=0 then
       rvPrd_Type=""
    
      else
       rvPrd_Type="sel_prod_type->Chbx_Ptype=.T."
     end if
    
    query.filter = rvComp .and. rvPrd_Type'works if only ONE variable is listed.
    
    query.order = "recno()"
    :Report.Preview("APT_Inc",query.filter,query.order)
    I have tried quoting in various ways and have gotten other errors as a result but think this example will at least show what I am after....a filter that is a result of variables that are equal to logical field's values.

    Help or direction of any kind would be great!


    Mike
    Mike
    __________________________________________
    It is only when we forget all our learning that we begin to know.
    It's not what you look at that matters, it's what you see.
    Henry David Thoreau
    __________________________________________




    #2
    Re: Report variable filters

    Try
    Code:
    query.filter = rvComp +".and."+ rvPrd_Type
    Tim Kiebert
    Eagle Creek Citrus
    A complex system that does not work is invariably found to have evolved from a simpler system that worked just fine.

    Comment


      #3
      Re: Report variable filters

      Tim....THANK YOU!! I never thought to quote the .and. but looking now at what the error message brought up I can see where it needs to be. It will be much simpler now to build the lengthy filter I need...and may be able to simplify the first half of the filter as well with variables now.

      Have a good day Tim---am off now for a much better night's sleep than I would have had! Thanks again.
      Mike
      __________________________________________
      It is only when we forget all our learning that we begin to know.
      It's not what you look at that matters, it's what you see.
      Henry David Thoreau
      __________________________________________



      Comment


        #4
        Re: Report variable filters

        Mike, your welcome.

        Not related to the concatenating of filters but cleaning up the code a bit.

        When using logical fields or variables you don't need to say yourfield = .T. because the value of the field is by nature true or false. So ....
        Code:
        rvAll="Client_Info->Client_chb=.T. .And. sel_prod_type->Chbx_Ptype=.T."
        can be simplified to
        Code:
        rvAll="Client_Info->Client_chb .And. sel_prod_type->Chbx_Ptype"
        Testing for a false value would be
        Code:
        rvAll=".not. Client_Info->Client_chb .And. .Not. sel_prod_type->Chbx_Ptype"
        Tim Kiebert
        Eagle Creek Citrus
        A complex system that does not work is invariably found to have evolved from a simpler system that worked just fine.

        Comment


          #5
          Re: Report variable filters

          Thanks for the info Tim...I had read that somewhere and meant to try it out but wanted to find the reference to it again in the help file before doing so to sort of verify my memory! :) But now you just did that for me! Thanks.

          Edit---curious....if the default for the logical field is set in field rules to be .F. would this work the same way?? or would now the value normally be False instead of true and .not. would make it True??
          Mike
          __________________________________________
          It is only when we forget all our learning that we begin to know.
          It's not what you look at that matters, it's what you see.
          Henry David Thoreau
          __________________________________________



          Comment


            #6
            Re: Report variable filters

            The result of a filter expression needs to be true to include the record where the test is being applied so if the field in the expression is true then expression returns a true and the record is incuded.

            If you default your field in field rules to false (not setting a default for a logical I believe is the same thing) and you want to show all the records where that field is false you would say .not. yourfield since .not. false is true.

            true = true 'record included
            false=false 'record not included
            .not. true = false 'record not included
            .not. false = true 'record included

            And if I got that right and you followed it you should know who is on first. :)
            Tim Kiebert
            Eagle Creek Citrus
            A complex system that does not work is invariably found to have evolved from a simpler system that worked just fine.

            Comment


              #7
              Re: Report variable filters

              :D yep! Who is on first!
              Mike
              __________________________________________
              It is only when we forget all our learning that we begin to know.
              It's not what you look at that matters, it's what you see.
              Henry David Thoreau
              __________________________________________



              Comment


                #8
                Re: Report variable filters

                Mike,

                The filter must be "true" for the record selection, but you also need to remember that it also must be a character expression. This has caused us no end of grief until we realized it. That means that numbers, variables, and operators must all be converted to characters to make the expression work.

                We use a lot of date variables in our filtering, and need to get the variable into the expression so that it can work. here is an example:

                Code:
                dim edate as D
                edate = ctod(ui_get_date("test","enter date"))
                
                'must use "[]" around the variable and must identify
                ' its type "varD" "varC" "varN"
                [B]filter[/B] = "client->repdate = [varD->edate]"
                
                'here's the interresting part
                query.filter = replace_parameters([B]filter[/B],local_variables())
                This bit of code will create the query.filter using the variable edate. You must use the replace_parameters() to get the variable into the filter properly.

                Maybe this will help.


                Tom
                Last edited by Tom Henkel; 06-28-2007, 11:00 AM. Reason: make edate consistant

                Comment


                  #9
                  Re: Report variable filters

                  Thanks Tom,

                  Although in my case all the filter variables are character, when I do have a non-character one your bit of info will be retained for sure! I most likely will run into this problem in the future without thinking--now that you've pointed out the pitfall am sure I will be able to remedy it without too much problem when it does happen.
                  Mike
                  __________________________________________
                  It is only when we forget all our learning that we begin to know.
                  It's not what you look at that matters, it's what you see.
                  Henry David Thoreau
                  __________________________________________



                  Comment

                  Working...
                  X