CodeGuru Home VC++ / MFC / C++ .NET / C# Visual Basic VB Forums Developer.com
Results 1 to 1 of 1
  1. #1
    Join Date
    Aug 2013
    Posts
    1

    Hidden parameter not passing to reports from SQL

    [Running Crystal Reports v.10]

    Recently, we've been asked to tighten down security on the folders so an audit was conducted to make sure appropriate users are supposed to have access to their respective folders/Crystal Reports only.

    So after using the "Advance" access to ensure that certain user groups cannot view specific folders, shortly thereafter we received complaint that they can run reports on folders they're supposed to see/run, but one of the parameter {?vUsername} (the user group access name) is not automatically passing through and thus the report is showing blank data when using the 'Schedule' method where the parameter should be passing the 'vUsername' (this is set up for the access group that they belong to) in order for the report to show only data for that group. if that same user uses the "View" method of generating reports, and manually enters their grouping name (say Group1 when prompted in the View parameter - see example below), it works fine.

    Below are excerpts from SQL Stored Procedure:

    BEGIN
    -- check authorisation of user, must be regional to view records
    SELECT 'Y' INTO authorised
    FROM txnrules.PARTICIPANT_RULE acpr, systemcd.V_PART1 part
    WHERE acpr.PARTICIPANT_ID = part.PARTICIPANT_ID
    AND INSTR( UPPER( vUserName ), UPPER( part.NAME ) ) > 0
    AND acpr.CAN_VIEW_ALL_REPORTS = 1
    AND ROWNUM = 1;
    EXCEPTION
    WHEN NO_DATA_FOUND THEN
    authorised := 'N';

    BLAH
    BLAH

    WHERE

    -- Selection super user (ABC or XYZ) - show GROUP1 (participant id = 6), GROUP2 (participant id = 15) and GROUP3 (participant id = 17) records
    ( authorised = 'Y' AND fares.OPERATOR_ID IN( 6, 15, 17 ) )
    -- Selection for GROUP1 user - show GROUP1 (participant id = 6) and GROUP2 (participant id = 15) records
    OR ( INSTR( vUpperUserName, 'GROUP1' ) > 0 AND fares.OPERATOR_ID IN( 6, 15 ) )
    -- Selection for GROUP1 user - show GROUP1 (participant id = 6) and GROUP2 (participant id = 15) records
    OR ( INSTR( vUpperUserName, 'GROUP2' ) > 0 AND fares.OPERATOR_ID IN( 6, 15 ) )
    -- Selection for GROUP3 user - show GROUP3 (participant id = 17) records

    OR ( INSTR( vUpperUserName, 'GROUP3' ) > 0 AND fares.OPERATOR_ID IN( 17 ) )

    MY QUESTION IS THIS: HOW ARE THE GROUP1, GROUP2, GROUP3 names being passed to the vUsername parameter automatically when using the Schedule method? If I know how that works, perhaps, i can figure out why this {?vUsername} is now not being passed through to generate data.

    I took a look at the other security groups that were not affected and mimic the security access but the above GROUPS1, 2, 3 still cannot get the names passed through so that the report would grab data. I've tried giving full access to the groups in question, but notta. HELP!!

    See screenshot below where the missing GROUP should show below.
    Attached Images Attached Images  

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  





Click Here to Expand Forum to Full Width

Featured