2015-04-23 3 views
0

У меня есть отчет Crystal, который использует хранимую процедуру для извлечения данных, имеет 15 параметров, а в Crystal у них есть настройки по умолчанию.Не удается найти причину ошибки Crystal Reports «В результирующем наборе невозможно найти одно или несколько полей».

Company(tinyint) default: 0 
PRGroup(tinyint) default: 0 
EndDateorMonth(char(1)) default: blank space 
BegDate(smalldatetime) default: 1/1/1950 00:00:00 
EndDate(smalldatetime) defualt: 12/31/2050 00:00:00 
BegMonth(smalldatetime) default: 1/1/1950 00:00:00 
EndMonth(smalldatetime) default: 12/1/2050 00:00:00 
BegSortName(varchar(15)) default: blank sapace 
EndSortName(varchar(15)) default: zzzzzzzzzzzz 
EarnType(char(1)) default: blank space 
EarnCode(varchar(250)) default: blank space 
TrueEarnOnly(char(1)) default: N 
BegEmployee(int) default: 0 
EndEmployee(int) default: 99999 
EmployeeList(varchar(250)) default: blank space 

Когда я запускаю отчет через кристалл и обеспечить ничего, кроме 0 для PRGroup я получаю ошибку:

One or more fields cannot be found in the result set.

Но если я покину группу по умолчанию 0 я получить ожидаемые результаты. Единственными данными, отображаемыми в отчете, являются номер сотрудника, имя сотрудника и примерно 300 столбцов, каждый из которых является типом заработка + зарабатывать код + тип суммы (предмет, право или сумма).

Мне действительно не нужно удалять соединение с базой данных и начинать с нуля, поскольку мне пришлось перетащить все 300 полей в отчет. Что может быть причиной проблемы и потенциальных решений?

+0

Каков диапазон значений от PRGroup? Если вы запустили хранимую процедуру с помощью какой-либо вещи, кроме 0, то она дает результаты? – MwcsMac

+0

Значения PRGroup: 0,1,2,3. Вы можете ввести что-либо в пределах ограничений tinyint, но если вы введете что-то, кроме 1-3, вы не получите никаких результатов, если не укажете 0, и в этом случае вы получите все возможные значения для PRGroup (в настоящее время 1 - 3). Если я выполняю хранимую процедуру в SQL Server, я получаю ожидаемые результаты, вводя ли я 0, 1, 2 или 3 для PRGroup. – DrPepperholik

ответ

0

Как выглядит хранимая процедура, особенно код для случаев, когда группа <> 0? Если вы делаете вставки или обновления в этой части, то вам нужно добавить SET NOCOUNT ON в начале хранимой процедуры

+0

Когда параметр группы входит в хранимую процедуру, я устанавливаю его в Null, если он равен 0, и в моем запросе у меня есть: (@PRGroup IS NULL OR (PRDT.PRGroup = @PRGroup)) – DrPepperholik

Смежные вопросы