Adding User Security to Individual MAS 90 / MS 200 G/L Financial Reports


By Dan Burleson

Sage MAS 90 / MAS 200 Authorized Consultants Program


Quick Instructions for Advanced Users


1.         Create a UDT for the CI module called “Report Security”.  The system will create the table with the actual name CI_UDT_REPORT_SECURITY as shown Figure 1.

2.         Add the three fields that are shown in Figure 1 to this table with the exact attributes.

3.                  Add data to the Report Security table to define which users may run which reports. See the example in Figure 2. The SEQUENCE_NUMBER field is unused, but must be unique across the entire table.

4.                  Add a sub report named ReportSecurity to the main report header. Select as the basis for the report the CI UDT REPORT SECURITY table created above. Assign no fields to the sub report and delete any objects until it looks identical to the table in Figure 3.

5.                  Copy the logic below to the Suppression Conditional of the Sub Report Detail section as Crystal syntax.

If Shared StringVar strUser = {CI_UDT_REPORT_SECURITY.UDF_USER}



         If Not({CI_UDT_REPORT_SECURITY.UDF_REPORT_TITLE} in Shared StringVar array strReportTitles)

            then (

                 Redim Preserve strReportTitles[Ubound(strReportTitles)+1];

                 strReportTitles[Ubound(strReportTitles)] := {CI_UDT_REPORT_SECURITY.UDF_REPORT_TITLE}













6.                  Copy the logic below to the Suppression Conditional of the main report’s Report Header as Crystal syntax.

Shared StringVar strUser := {@PrintedByUser};





7.                  Copy the logic below to the Group Selection formula of the Main Report.

{GL_FinancialReportHeaderWrk.ReportTitle} in Shared StringVar array strReportTitles





if Ubound(Shared StringVar Array strReportTitles) = 0

    then "Unauthorized user: " & Shared StringVar strUser

    else ""

Copy the logic below to a new Formula called @Unauthorized. Place this formula into the “Page Header sub section e” as Crystal syntax.




9.                  Ensure that “Print User Logon on Reports” is set on the Preferences tab of Company Maintenance.


That’s it!  Test your financial reports for the security setup completed in Step 1.




Figure 1 – The Report Security User Defined Table and User Defined Fields



Figure 2 – The resulting UDT containing report names with their authorized users



Figure 3 – Sub Report with no fields and only the Details Section unsuppressed


NOTICE: This article represents copyrighted material and may only be reproduced in whole for personal or classroom use. It may not be edited, altered, or otherwise modified, except with the express permission of the author.


Dan Burleson is an independent Sage MAS 90 / MAS 200 Authorized Consultant located in Philomath, Oregon. He may be reached at or at (541) 754-7400.


© Connex Software. All Rights Reserved