2013-11-14 5 views
0

У меня возникли проблемы с хрустальным отчетом. Я довольно новичок в использовании Crystal, но имею надежный фон доступа. Я унаследовал этот отчет на новой работе.Запрос Crystal Array

В отчете есть 2 массива (я думаю), которые ограничивают, кто может видеть заказы, которые были помещены против определенного продавца или заказов, которые были зарегистрированы определенным пользователем.

Пользователь должен иметь возможность видеть только заказы, которые они обработали в этом отчете. В этом бите кода ниже для пользователей 26, 42, 62 и 139 они могут видеть все заказы, зарегистрированные в отношении любого пользователя.

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

Где, как в этом примере пользователь 49 может видеть только заказы они регистрируемые против Rep кодов 2281 и 2283

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

То, что я борюсь со следующим. Пользователь 45 и пользователь 143 работают в одной и той же области и должны видеть друг друга в отчете. После того, как я буду регистрироваться как пользователь 45, я вижу только порядки, обрабатываемые этим пользователем, и если я вхожу в систему как 143, я вижу только заказы.

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

Любая помощь была бы принята с благодарностью.

Благодаря Ли

Весь код ниже, если это необходимо

// 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; 
) 

ответ

0

Вам нужно будет поместить идентификатор пользователя в массиве, а также. В вашем коде вы устанавливаете UserID равным 45 OR 143. Таким образом, вам нужно создать массив UserID, чтобы вставить несколько значений id. case 45, 143:

+0

Привет, спасибо, что вернулись ко мне. Как мне это сделать? Я не уверен, как это сделать. Спасибо – Lee83

+0

Сделайте небольшой поиск в Google. Вот что вам нужно начать: http://stackoverflow.com/questions/638216/vb-net-initialising-an-array-on-the-fly –