0

I am currently having problems with a crystal report. I am pretty new at using Crystal but have a solid access background. I have inherited this report at a new job.

The report has 2 arrays (I think) in place that restrict who can see orders that have been placed against a certain sales rep or orders that have been logged by a certain user.

A user should only be able to see the orders they have processed on this report. In this bit of code below for users 26, 42, 62 and 139 they can see all orders logged against any user.

select {@disCurrentUserID}
case 26, 42, 62, 139:
(
SalesRepCode[1] := 0;
UserID := 0;
)

Where as in this example user 49 can only see orders they have logged against Rep Codes 2281 and 2283

case 49:
(
redim SalesRepCode[2];
SalesRepCode[1] := 2281;
SalesRepCode[2] := 2283;
UserID := 0;
)

What I am struggling with the following. User 45 and user 143 work in the same area, and need to see each others orders on the report. With the bit of code that follows if I log in as user 45 I only see orders processed by that user, and if I log in as 143 I only see there orders.

case 45, 143:
(
UserID := 45;
UserID := 143;
SalesRepCode[1] := 0;
)

Any help would be greatly appreciated.

Thanks Lee

All code is below if needed

// determine valid salesreps from username
global numbervar array SalesRepCode := [0];
global numbervar UserID;

global stringvar array SalesReps;
global stringvar array Users;

redim SalesReps[100];

SalesReps[2200-2199] := "1";
SalesReps[2201-2199] := "2";
SalesReps[2202-2199] := "3";
SalesReps[2203-2199] := "4";
SalesReps[2205-2199] := "5";
SalesReps[2206-2199] := "6";
SalesReps[2208-2199] := "7";
SalesReps[2241-2199] := "8";
SalesReps[2243-2199] := "9";
SalesReps[2244-2199] := "10";
SalesReps[2245-2199] := "11";
SalesReps[2248-2199] := "12";
SalesReps[2281-2199] := "13";
SalesReps[2283-2199] := "14";
SalesReps[2299-2199] := "15";

redim Users[143];

Users[26] := "User1";
Users[42] := "User2";
Users[44] := "User3";
Users[45] := "User4";
Users[48] := "User5";
Users[51] := "User6";
Users[60] := "User7";
Users[62] := "User8";
Users[74] := "User9";
Users[139] := "User10";
Users[122] := "User11";
Users[143] := "User12";

select {@disCurrentUserID}
case 26, 42, 62, 139:
(
SalesRepCode[1] := 0;
UserID := 0;
)
case 45, 143:
(
UserID := 45;
UserID := 143;
SalesRepCode[1] := 0;
)
case 48:
(
SalesRepCode[1] := 0;
UserID := 48;
)
case 49:
(
redim SalesRepCode[2];
SalesRepCode[1] := 2281;
SalesRepCode[2] := 2283;
UserID := 0;
)
case 96:
(
redim SalesRepCode[4];
SalesRepCode[1] := 2208;
SalesRepCode[2] := 2243;
SalesRepCode[3] := 2241;
SalesRepCode[4] := 2200;
UserID := 0;
)
// set default values to disable report if non-sales user
default:
(
SalesRepCode[1] := 0;
UserID := -1;
)
Lee83
  • 1

1 Answers1

0

You will need to put the user ID in an array as well. In your code you set the UserID to either 45 OR 143. So you need to create a UserID array in order to put multiple id values in. case 45, 143:

campagnolo_1
  • 2,710
  • 1
  • 17
  • 25
  • Hi, thanks for getting back to me. How do I do that? Im not sure how to do it. Thanks – Lee83 Nov 15 '13 at 10:27
  • Do a little google search. Here is something to get you started: http://stackoverflow.com/questions/638216/vb-net-initialising-an-array-on-the-fly – campagnolo_1 Nov 15 '13 at 18:24