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

filter grid based on sql query by session variable issue

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

    filter grid based on sql query by session variable issue

    Hello!

    I am having difficulty configuring the FILTER on a grid to use a session variable. I have watched the videos and followed the directions (I believe) correctly.

    I have a session variable used throughout the application for CompanyId. So my goal is to filter each grid on CompanyId. When my grid is based on a sql query instead of a table or view I am getting an error when I try to run it in LIVE PREVIEW on localhost.

    400 Bad Request
    Unsafe Session variable syntax. Session variables cannot be created or assigned from either the Query String or POST body.

    Can someone tell me what I am missing?

    1) I created an argument in DEFINE ARGUMENTS called CompanyID, based it off of a session variable companyid, set default value to -1 (data type is Character, same as the session var)

    2) Built the query in the SQL genie as follows:
    SELECT *, 0 AS admincharge FROM manual WHERE company_id = :CompanyID AND section_id > 0

    When I execute the query in the genie, it runs as expected and prompts me for CompanyID (currently set to the default -1) but I can change it to whatever test data I am using and see the desired results correctly. But once I run the module in LIVE PREVIEW, I get the error mentioned above.

    It seems pretty cut and dry but I can't get it to work nor can I figure out how to troubleshoot. Any help is appreciated. I am using v11. Thanks so much.

    #2
    Re: filter grid based on sql query by session variable issue

    In Define Arguments perhaps you named "session.companyid" and it should be a Session Variable just named "companyid".
    Steve Wood
    See my profile on IADN

    Comment


      #3
      Re: filter grid based on sql query by session variable issue

      I would suggest that for a local test you just name the session variable (company_id) to a known value. This will work every time. I also filter my tables on a company_id (session var) and since your testing locally and not necessarily logging in the variable of companyID is never assigned a value. This will also eliminate the necessity of an argument as well.
      SO just say, company_id = 1234 (or whatever a known value is) in your where clause.

      The table will filter on that, once you publish the application you can set the session variable to the argument which in my best guess is defined by a value related to a user login.
      NWCOPRO: Nuisance Wildlife Control Software My Application: http://www.nwcopro.com "Without forgetting, we would have no memory at all...now what was I saying?"

      Comment


        #4
        Re: filter grid based on sql query by session variable issue

        Steve Wood, nope it appears to be set correctly. but great thought. I've attached a copy of the argument screen.

        Charles Parker, I do set to the default value in OnGridInitialize if there is no value in the session variable so I thought that would cover me for testing. However, I assumed that setting the Default Value property in the Argument configuration would've taken care of that. Are you thinking that my error will go away once I publish to the web? Unfortunately, the boss handles all that and I'd like to ensure it works before published if possible.

        Thanks for your responses guys. Appreciate it.

        Comment


          #5
          Re: filter grid based on sql query by session variable issue

          forgot to attach the Argument config. haven't had my coffee yet, sorry!

          args.jpg

          Once again, here is the SQL using that arg:

          SELECT *, 0 AS admincharge
          FROM manual
          WHERE company_id = :CompanyID AND section_id > 0

          Comment


            #6
            Re: filter grid based on sql query by session variable issue

            Can you upload the component here for review. I tried several alternatives and only got your error if I added "session." to the variable name and made it a Page Variable.
            Steve Wood
            See my profile on IADN

            Comment


              #7
              Re: filter grid based on sql query by session variable issue

              Originally posted by Steve Wood View Post
              Can you upload the component here for review. I tried several alternatives and only got your error if I added "session." to the variable name and made it a Page Variable.

              Let me know if the component is attached. I'm still a newbie to this forum. I'm not sure it worked. Thanks so much for your willingness to help. I'm sure it's something simple!!!!
              Attached Files

              Comment


                #8
                Re: filter grid based on sql query by session variable issue

                Remove the Argument completely and change your query to:

                SELECT *, 0 AS admincharge
                FROM manual
                WHERE company_id = session.companyid and section_id > 0

                Then add this to the onGridInitialize to keep it from giving an error on LivePreview:

                dim session.company_id as c

                ----

                Also you are setting your character-based session.company_id to a numeric (-1) in your onGridExecute

                -----------

                And also, here is an easier-to-read way to lay out your sql query:

                sql = <<%txt%
                INSERT INTO training_procedure_revision_employee (procrev_id,emp_id,job_type)
                SELECT :procrevid, employee_id, job_position FROM train1
                INNER JOIN training_matrix ON job_position = training_matrix.job_type
                INNER JOIN training_matrix_procedures ON training_matrix_id = matrix_id
                INNER JOIN manual ON procedure_section_id = section_id
                WHERE section_id = :sectionid
                %txt%

                Yours is like this:
                sql = "Insert into training_procedure_revision_employee (procrev_id,emp_id,job_type) "\
                "Select :procrevid, employee_id, job_position from train1 inner join training_matrix on job_position = training_matrix.job_type inner join "\
                "training_matrix_procedures on training_matrix_id = matrix_id inner join manual on procedure_section_id = section_id "\
                "where section_id = :sectionid"
                Steve Wood
                See my profile on IADN

                Comment


                  #9
                  Re: filter grid based on sql query by session variable issue

                  Originally posted by Steve Wood View Post
                  Remove the Argument completely and change your query to:

                  SELECT *, 0 AS admincharge
                  FROM manual
                  WHERE company_id = session.companyid and section_id > 0

                  Then add this to the onGridInitialize to keep it from giving an error on LivePreview:

                  dim session.company_id as c

                  ----

                  Also you are setting your character-based session.company_id to a numeric (-1) in your onGridExecute

                  -----------

                  And also, here is an easier-to-read way to lay out your sql query:

                  sql = <<%txt%
                  INSERT INTO training_procedure_revision_employee (procrev_id,emp_id,job_type)
                  SELECT :procrevid, employee_id, job_position FROM train1
                  INNER JOIN training_matrix ON job_position = training_matrix.job_type
                  INNER JOIN training_matrix_procedures ON training_matrix_id = matrix_id
                  INNER JOIN manual ON procedure_section_id = section_id
                  WHERE section_id = :sectionid
                  %txt%

                  Yours is like this:
                  sql = "Insert into training_procedure_revision_employee (procrev_id,emp_id,job_type) "\
                  "Select :procrevid, employee_id, job_position from train1 inner join training_matrix on job_position = training_matrix.job_type inner join "\
                  "training_matrix_procedures on training_matrix_id = matrix_id inner join manual on procedure_section_id = section_id "\
                  "where section_id = :sectionid"
                  Steve Wood, you are BRILLIANT. The DIM and assigning the value as a char worked (DUH)! I honestly didn't think to DIM the session variable because I'm thinking the value was already set at login and didn't need done again. Setting the value as numeric instead of char though, my sheer stupidity!

                  Regarding the INSERT, that's helpful information as well. I didn't code any of this initially, just making enhancements so that wasn't my doing but every little thing that is pointed out to me, helps me learn so I truly appreciate the advice.

                  Thanks a million!

                  Comment


                    #10
                    Re: filter grid based on sql query by session variable issue

                    You only need to dim the session variable in the component for testing in Live Preview because it wont have gone through your login process where it would normally be set.
                    Steve Wood
                    See my profile on IADN

                    Comment

                    Working...
                    X