Здравствуйте!
Вчера заметил очень странное поведение компоненты cross-tab в Fast Report. Есть отчет (немного измененный стандартный отчет – суммы выполненных операций по кассах в разрезе дней). Под Supervisor все работает идеально, а вот под обычным пользователем – какие-то чудеса!
Вы, наверное как и я, первое на что подумали – права доступа! Но не тут то было! Смотрим на картинки (Все действия под обычным пользователем):
Рис.1 выборка из реестра (настроено фильтрами)
Рис.2 отчет
Рис.3 запрос отчета в профайлере
[tbl_Cashflow].[CashAccountID] AS [CashAccountID],
[tbl_Cashflow].[ActualDate] AS [ActualDate],
[tbl_Cashflow].[TypeID] AS [TypeID],
[tbl_Cashflow].[Amount] AS [Amount],
[tbl_Cashflow].[BasicAmount] AS [BasicAmount],
[tbl_CashAccount].[Name] AS [CashAccountName],
[tbl_Cashflow].[ID] AS [GeneralColumn]
FROM
[dbo].[vw_Cashflow] AS [tbl_Cashflow]
LEFT OUTER JOIN
[dbo].[tbl_CashAccount] AS [tbl_CashAccount] ON [tbl_CashAccount].[ID] = [tbl_Cashflow].[CashAccountID]
WHERE(([tbl_Cashflow].[StatusID] = @P1) AND
([tbl_Cashflow].[ActualDate] >= @P2 AND
[tbl_Cashflow].[ActualDate] = @P3))',N'@P1 nvarchar(38),@P2 datetime,@P3 datetime',N'{FDEA47BE-53FE-4730-BF4F-4F44C3B5D61A}',''2009-07-13 00:00:00:000'',''2009-07-13
23:59:59:000''
Рис.4 результат выполнения запроса из профайлера (добавил только группировку)
Какие будут идеи?
Нравится
Тот же отчет по Supervisor:
--
www.it-sfera.com.ua
Terrasoft Solution Partner
"Денис М" написал:может у Вас разные поля считаются
[Amount] или [BasicAmount]
Нет
"Денис М" написал:попробуйте запустить запрос со всеми полями
Пробовал... Все гуд!
--
www.it-sfera.com.ua
Terrasoft Solution Partner
"Денис М" написал:[tbl_Cashflow].[ID] AS [GeneralColumn]
добавляется поле под пользователем
Она, кажется всегда добавляется. И под админом тоже. Или я ошибаюсь?
Из админки SQ для отчета:
SELECT [tbl_Cashflow].[ID] AS [ID], [tbl_Cashflow].[CashAccountID] AS [CashAccountID], [tbl_Cashflow].[ActualDate] AS [ActualDate], [tbl_Cashflow].[TypeID] AS [TypeID], [tbl_Cashflow].[Amount] AS [Amount], [tbl_Cashflow].[BasicAmount] AS [BasicAmount], [tbl_CashAccount].[Name] AS [CashAccountName] FROM [dbo].[tbl_Cashflow] AS [tbl_Cashflow] LEFT OUTER JOIN [dbo].[tbl_CashAccount] AS [tbl_CashAccount] ON [tbl_CashAccount].[ID] = [tbl_Cashflow].[CashAccountID] WHERE([tbl_Cashflow].[StatusID] = :StatusID)
--
www.it-sfera.com.ua
Terrasoft Solution Partner
Уточняю: TS CRM 3.3.0.56 MS SQL 2005
--
www.it-sfera.com.ua
Terrasoft Solution Partner
Ну так в админке это поле первым идет. Только алиас другой.
Это я его только-что добавиль... Думал что-то изменит... Не-а!
Все то же!
--
www.it-sfera.com.ua
Terrasoft Solution Partner
Из профайлера:
АДМИН
exec sp_executesql N'SELECT TOP 40 [tbl_Cashflow].[ID] AS [ID], [tbl_Cashflow].[CashAccountID] AS [CashAccountID], [tbl_Cashflow].[ActualDate] AS [ActualDate], [tbl_Cashflow].[TypeID] AS [TypeID], [tbl_Cashflow].[Amount] AS [Amount], [tbl_Cashflow].[BasicAmount] AS [BasicAmount], [tbl_CashAccount].[Name] AS [CashAccountName] FROM [dbo].[tbl_Cashflow] AS [tbl_Cashflow] LEFT OUTER JOIN [dbo].[tbl_CashAccount] AS [tbl_CashAccount] ON [tbl_CashAccount].[ID] = [tbl_Cashflow].[CashAccountID] WHERE(([tbl_Cashflow].[StatusID] = @P1) AND ([tbl_Cashflow].[ActualDate] >= @P2 AND [tbl_Cashflow].[ActualDate] <= @P3))',N'@P1 nvarchar(38),@P2 datetime,@P3 datetime',N'{FDEA47BE-53FE-4730-BF4F-4F44C3B5D61A}',''2009-07-13 00:00:00:000'',''2009-07-13 23:59:59:000'' exec sp_executesql N'SELECT TOP 80 [tbl_Cashflow].[ID] AS [ID], [tbl_Cashflow].[CashAccountID] AS [CashAccountID], [tbl_Cashflow].[ActualDate] AS [ActualDate], [tbl_Cashflow].[TypeID] AS [TypeID], [tbl_Cashflow].[Amount] AS [Amount], [tbl_Cashflow].[BasicAmount] AS [BasicAmount], [tbl_CashAccount].[Name] AS [CashAccountName] FROM [dbo].[tbl_Cashflow] AS [tbl_Cashflow] LEFT OUTER JOIN [dbo].[tbl_CashAccount] AS [tbl_CashAccount] ON [tbl_CashAccount].[ID] = [tbl_Cashflow].[CashAccountID] WHERE(([tbl_Cashflow].[StatusID] = @P1) AND ([tbl_Cashflow].[ActualDate] >= @P2 AND [tbl_Cashflow].[ActualDate] <= @P3))',N'@P1 nvarchar(38),@P2 datetime,@P3 datetime',N'{FDEA47BE-53FE-4730-BF4F-4F44C3B5D61A}',''2009-07-13 00:00:00:000'',''2009-07-13 23:59:59:000'' exec sp_executesql N'SELECT TOP 120 [tbl_Cashflow].[ID] AS [ID], [tbl_Cashflow].[CashAccountID] AS [CashAccountID], [tbl_Cashflow].[ActualDate] AS [ActualDate], [tbl_Cashflow].[TypeID] AS [TypeID], [tbl_Cashflow].[Amount] AS [Amount], [tbl_Cashflow].[BasicAmount] AS [BasicAmount], [tbl_CashAccount].[Name] AS [CashAccountName] FROM [dbo].[tbl_Cashflow] AS [tbl_Cashflow] LEFT OUTER JOIN [dbo].[tbl_CashAccount] AS [tbl_CashAccount] ON [tbl_CashAccount].[ID] = [tbl_Cashflow].[CashAccountID] WHERE(([tbl_Cashflow].[StatusID] = @P1) AND ([tbl_Cashflow].[ActualDate] >= @P2 AND [tbl_Cashflow].[ActualDate] <= @P3))',N'@P1 nvarchar(38),@P2 datetime,@P3 datetime',N'{FDEA47BE-53FE-4730-BF4F-4F44C3B5D61A}',''2009-07-13 00:00:00:000'',''2009-07-13 23:59:59:000''
ПОЛЬЗОВАТЕЛЬ (автор всех операций):
exec sp_executesql N'SELECT TOP 40 [tbl_Cashflow].[ID] AS [ID], [tbl_Cashflow].[CashAccountID] AS [CashAccountID], [tbl_Cashflow].[ActualDate] AS [ActualDate], [tbl_Cashflow].[TypeID] AS [TypeID], [tbl_Cashflow].[Amount] AS [Amount], [tbl_Cashflow].[BasicAmount] AS [BasicAmount], [tbl_CashAccount].[Name] AS [CashAccountName] FROM [dbo].[vw_Cashflow] AS [tbl_Cashflow] LEFT OUTER JOIN [dbo].[tbl_CashAccount] AS [tbl_CashAccount] ON [tbl_CashAccount].[ID] = [tbl_Cashflow].[CashAccountID] WHERE(([tbl_Cashflow].[StatusID] = @P1) AND ([tbl_Cashflow].[ActualDate] >= @P2 AND [tbl_Cashflow].[ActualDate] <= @P3))',N'@P1 nvarchar(38),@P2 datetime,@P3 datetime',N'{FDEA47BE-53FE-4730-BF4F-4F44C3B5D61A}',''2009-07-13 00:00:00:000'',''2009-07-13 23:59:59:000'' exec sp_executesql N'SELECT TOP 80 [tbl_Cashflow].[ID] AS [ID], [tbl_Cashflow].[CashAccountID] AS [CashAccountID], [tbl_Cashflow].[ActualDate] AS [ActualDate], [tbl_Cashflow].[TypeID] AS [TypeID], [tbl_Cashflow].[Amount] AS [Amount], [tbl_Cashflow].[BasicAmount] AS [BasicAmount], [tbl_CashAccount].[Name] AS [CashAccountName] FROM [dbo].[vw_Cashflow] AS [tbl_Cashflow] LEFT OUTER JOIN [dbo].[tbl_CashAccount] AS [tbl_CashAccount] ON [tbl_CashAccount].[ID] = [tbl_Cashflow].[CashAccountID] WHERE(([tbl_Cashflow].[StatusID] = @P1) AND ([tbl_Cashflow].[ActualDate] >= @P2 AND [tbl_Cashflow].[ActualDate] <= @P3))',N'@P1 nvarchar(38),@P2 datetime,@P3 datetime',N'{FDEA47BE-53FE-4730-BF4F-4F44C3B5D61A}',''2009-07-13 00:00:00:000'',''2009-07-13 23:59:59:000'' exec sp_executesql N'SELECT TOP 120 [tbl_Cashflow].[ID] AS [ID], [tbl_Cashflow].[CashAccountID] AS [CashAccountID], [tbl_Cashflow].[ActualDate] AS [ActualDate], [tbl_Cashflow].[TypeID] AS [TypeID], [tbl_Cashflow].[Amount] AS [Amount], [tbl_Cashflow].[BasicAmount] AS [BasicAmount], [tbl_CashAccount].[Name] AS [CashAccountName] FROM [dbo].[vw_Cashflow] AS [tbl_Cashflow] LEFT OUTER JOIN [dbo].[tbl_CashAccount] AS [tbl_CashAccount] ON [tbl_CashAccount].[ID] = [tbl_Cashflow].[CashAccountID] WHERE(([tbl_Cashflow].[StatusID] = @P1) AND ([tbl_Cashflow].[ActualDate] >= @P2 AND [tbl_Cashflow].[ActualDate] <= @P3))',N'@P1 nvarchar(38),@P2 datetime,@P3 datetime',N'{FDEA47BE-53FE-4730-BF4F-4F44C3B5D61A}',''2009-07-13 00:00:00:000'',''2009-07-13 23:59:59:000''
--
www.it-sfera.com.ua
Terrasoft Solution Partner
Зпросы одинаковые(если заменить vw_ на tbl_). Т.е. если они возвращают разные результаты, то разные данные у нас во вьюхе и таблице. Что впринципе и логично - администратор видит больше записей. Значит и сумма должна быть больше. Нужно сравнивать запросы в отчете и в гриде под пользователем. Или у пользователя есть права на все записи?
Виталий, добрый день.
Underscore a.k.a. прав: дело в доступе на записи. Вот запрос для представления vw_Cashflow:
SELECT P.*
FROM dbo.tbl_Cashflow WITH (nolock) P
WHERE EXISTS
(SELECT *
FROM [dbo].[tbl_CashflowRight] AS [R] WITH (nolock)
WHERE (([R].[RecordID] = [P].[ID]) AND EXISTS
(SELECT *
FROM [dbo].[tbl_UserAdminUnit] AS [U] WITH (nolock)
WHERE ([R].[AdminUnitID] = [U].[AdminUnitID]) AND ([U].[UserName] = SYSTEM_USER))))
Отсюда видим, что в представление попадают только те записи, у которых на детали "Доступ" есть текущий пользователь либо группа, в которую он входит. Группа "Все пользователи" в данном случае не учитывается, поскольку любой из пользователей входит в неё по умолчанию, и запись в таблицу прав при этом не добавляется.
Попробуйте раздать доступ на записи для текущего пользователя или группы, в которую он входит (кроме "Все пользователи"). Достаточно доступа на чтение. В итоге отчёт должен сформироваться корректно.
Как вы объясните одинаковые:
- Правилные итоги в гриде?
- Правилные результат в SMS запроса из профайлера?
Как я и уточнял - пользователь САМ создал все операции.
PS: Я прокликал каждую запись - с правами все ок!
--
www.it-sfera.com.ua
Terrasoft Solution Partner
На 4 рисунке первого поста, я вошёл в SQL Server Manager Studio под учётной записью пользователя и выполнил запрос! Как видно из рисунка, результат ПРАВИЛЬНЫЙ! Значит у пользователя есть права на записи...
Какие будут еще идеи?
--
www.it-sfera.com.ua
Terrasoft Solution Partner
Тогда нужно отчет переделывать :)
Так в чем бяка?
PS: попробую добавить группировку...
--
www.it-sfera.com.ua
Terrasoft Solution Partner
Просто добавил группирование:
SELECT [tbl_Cashflow].[ID] AS [ID], [tbl_Cashflow].[CashAccountID] AS [CashAccountID], [tbl_Cashflow].[ActualDate] AS [ActualDate], [tbl_Cashflow].[TypeID] AS [TypeID], SUM([tbl_Cashflow].[Amount]) AS [Amount], SUM([tbl_Cashflow].[BasicAmount]) AS [BasicAmount], [tbl_CashAccount].[Name] AS [CashAccountName] FROM [dbo].[tbl_Cashflow] AS [tbl_Cashflow] LEFT OUTER JOIN [dbo].[tbl_CashAccount] AS [tbl_CashAccount] ON [tbl_CashAccount].[ID] = [tbl_Cashflow].[CashAccountID] WHERE([tbl_Cashflow].[StatusID] = :StatusID) GROUP BY [tbl_Cashflow].[ID], [tbl_Cashflow].[CashAccountID], [tbl_Cashflow].[ActualDate], [tbl_Cashflow].[TypeID], [tbl_CashAccount].[Name]
Отчет под пользователем - смотри рис.2 :)
Какие будут еще идеи?
--
www.it-sfera.com.ua
Terrasoft Solution Partner
Ну разве что SUM([tbl_Cashflow].[Amount]) может вернуть 0, если в одном из Ammount null. Или в MSSQL нет такой фичи?
Знаете, что самое интересное?!
Расход за выбраный день под админом: 967,56
под пользователем: 16,72
Сейчас под пользователем в реестре за указаный день вижу 2 операции с типом расход: -959.2 и -8.36
:) Не могу понять!? Уже з 2 разных компов в сети проверял...
--
www.it-sfera.com.ua
Terrasoft Solution Partner
перепешите запрос
SELECT
[tbl_Cashflow].[CashAccountID],
[tbl_Cashflow].[ActualDate] AS [ActualDate],
[tbl_Cashflow].[TypeID] AS [TypeID],
SUM([tbl_Cashflow].[Amount]) AS [Amount],
SUM([tbl_Cashflow].[BasicAmount]) AS [BasicAmount],
[tbl_CashAccount].[Name] AS [CashAccountName]
FROM
[dbo].[tbl_CashAccount] AS [tbl_CashAccount]
LEFT OUTER JOIN
[dbo].[tbl_Cashflow] AS [tbl_Cashflow]
ON [tbl_CashAccount].[ID] = [tbl_Cashflow].[CashAccountID]
WHERE([tbl_Cashflow].[StatusID] = :StatusID)
GROUP BY
[tbl_Cashflow].[CashAccountID],
[tbl_Cashflow].[ActualDate],
[tbl_Cashflow].[TypeID],
[tbl_CashAccount].[Name]
С [ID] согласен, убрал. Вот новый запрос из профайлера:
exec sp_executesql N'SELECT TOP 40 [tbl_Cashflow].[CashAccountID] AS [CashAccountID], [tbl_Cashflow].[ActualDate] AS [ActualDate], [tbl_Cashflow].[TypeID] AS [TypeID], SUM([tbl_Cashflow].[Amount]) AS [Amount], SUM([tbl_Cashflow].[BasicAmount]) AS [BasicAmount], [tbl_CashAccount].[Name] AS [CashAccountName] FROM [dbo].[vw_Cashflow] AS [tbl_Cashflow] LEFT OUTER JOIN [dbo].[tbl_CashAccount] AS [tbl_CashAccount] ON [tbl_CashAccount].[ID] = [tbl_Cashflow].[CashAccountID] WHERE(([tbl_Cashflow].[StatusID] = @P1) AND ([tbl_Cashflow].[ActualDate] >= @P2 AND [tbl_Cashflow].[ActualDate] <= @P3)) GROUP BY [tbl_Cashflow].[CashAccountID], [tbl_Cashflow].[ActualDate], [tbl_Cashflow].[TypeID], [tbl_CashAccount].[Name]',N'@P1 nvarchar(38),@P2 datetime,@P3 datetime',N'{FDEA47BE-53FE-4730-BF4F-4F44C3B5D61A}',''2009-07-13 00:00:00:000'',''2009-07-13 23:59:59:000''
А вот новый результат в отчете :)
Расходы - сошлись! :)
--
www.it-sfera.com.ua
Terrasoft Solution Partner
Изменил запрос:
exec sp_executesql N'SELECT TOP 40 [tbl_Cashflow].[CashAccountID] AS [CashAccountID], [tbl_Cashflow].[ActualDate] AS [ActualDate], [tbl_Cashflow].[TypeID] AS [TypeID], SUM([tbl_Cashflow].[Amount]) AS [Amount], SUM([tbl_Cashflow].[BasicAmount]) AS [BasicAmount], [tbl_CashAccount].[Name] AS [CashAccountName] FROM [dbo].[tbl_CashAccount] AS [tbl_CashAccount] LEFT OUTER JOIN [dbo].[vw_Cashflow] AS [tbl_Cashflow] ON [tbl_Cashflow].[CashAccountID] = [tbl_CashAccount].[ID] WHERE(([tbl_Cashflow].[StatusID] = @P1) AND ([tbl_Cashflow].[ActualDate] >= @P2 AND [tbl_Cashflow].[ActualDate] <= @P3)) GROUP BY [tbl_Cashflow].[CashAccountID], [tbl_Cashflow].[ActualDate], [tbl_Cashflow].[TypeID], [tbl_CashAccount].[Name]',N'@P1 nvarchar(38),@P2 datetime,@P3 datetime',N'{FDEA47BE-53FE-4730-BF4F-4F44C3B5D61A}',''2009-07-13 00:00:00:000'',''2009-07-13 23:59:59:000''
Результат, как на рисунке в предыдущем посте!
--
www.it-sfera.com.ua
Terrasoft Solution Partner
У Вас только top 40 в запросе? Раньше до 120 доходило.
Они одинаковы!
86F5FC17-471A-4AAF-92A8-4BDE47381FA5 2009-07-13 00:00:00.000 {358DA0CD-9EA6-43B8-A099-CD77DA3C6114} 27738.02 27738.02 Магазин г.Львов
86F5FC17-471A-4AAF-92A8-4BDE47381FA5 2009-07-13 00:00:00.000 {484C8429-DABF-482A-BC7B-4C75D1436A1B} -967.56 -967.56 Магазин г.Львов
PS: Предварительный результат без 6000 - это была моя ошибка, уже в посте подправил.
--
www.it-sfera.com.ua
Terrasoft Solution Partner
Мда-а, очень интересно!
Ясли перестроить запрос - то он под всеми пользователями выводит одинаковый результат.
А почему так?
--
www.it-sfera.com.ua
Terrasoft Solution Partner
Я ж в PS написал, что моя ошибка! После изменения запроса на тот, что Вы предложили... я... случайно... убил одну операцию на 6000 :) хорошо, что сразу же это заметил! Пост тоже подправил :)
Сейчас (с новым запросом) значения совпадают и под пользователем и под админом!
Так почему придедущий запрос в cross-tab выводил такой результат?
--
www.it-sfera.com.ua
Terrasoft Solution Partner
На моей практике: если результаты разные под пользователем и админом - дело, в 99% случаев, именно в правах!
"Попов Александр" написал:дело, в 99% случаев, именно в правах!
:) Вот он! Ваш 1%
--
www.it-sfera.com.ua
Terrasoft Solution Partner
"Виталий Ковалишин aka samael" написал:Вот он! Ваш 1%
Пока не понятно. Вот как выясните причину - тогда будет 1% :)))
Если запрос:
SELECT [tbl_Cashflow].[CashAccountID] AS [CashAccountID], [tbl_Cashflow].[ActualDate] AS [ActualDate], [tbl_Cashflow].[TypeID] AS [TypeID], [tbl_Cashflow].[Amount] AS [Amount], [tbl_Cashflow].[BasicAmount] AS [BasicAmount], [tbl_CashAccount].[Name] AS [CashAccountName] FROM [dbo].[tbl_Cashflow] AS [tbl_Cashflow] LEFT OUTER JOIN [dbo].[tbl_CashAccount] AS [tbl_CashAccount] ON [tbl_CashAccount].[ID] = [tbl_Cashflow].[CashAccountID] WHERE([tbl_Cashflow].[StatusID] = :StatusID)
Компонента cross-tab в отчете FastReport выводит разные суммы!
Если добавить группировку, вот так:
SELECT [tbl_Cashflow].[CashAccountID] AS [CashAccountID], [tbl_Cashflow].[ActualDate] AS [ActualDate], [tbl_Cashflow].[TypeID] AS [TypeID], SUM([tbl_Cashflow].[Amount]) AS [Amount], SUM([tbl_Cashflow].[BasicAmount]) AS [BasicAmount], [tbl_CashAccount].[Name] AS [CashAccountName] FROM [dbo].[tbl_Cashflow] AS [tbl_Cashflow] LEFT OUTER JOIN [dbo].[tbl_CashAccount] AS [tbl_CashAccount] ON [tbl_CashAccount].[ID] = [tbl_Cashflow].[CashAccountID] WHERE([tbl_Cashflow].[StatusID] = :StatusID) GROUP BY [tbl_Cashflow].[CashAccountID], [tbl_Cashflow].[ActualDate], [tbl_Cashflow].[TypeID], [tbl_CashAccount].[Name]
Компонента cross-tab в отчете FastReport выводит одинаковые суммы!
Не права доступа - 100%!
--
www.it-sfera.com.ua
Terrasoft Solution Partner
Александр, я не поленился и создал отдельный отчет с приведенными выше запросами. Создал 2 cross-tab к каждому подключил один из запросов. Под админом результаты двух таблиц совпадают! Под обычным пользователем - смотрим атач (база тестовая, дату фильтрации выбрал произвольно).
К чему относим такое поведение компоненты??? :)
--
www.it-sfera.com.ua
Terrasoft Solution Partner
PS: В перекрепленном отчете суммы (итого) совпали! А вот за 13 число (смтр. первый пост) - так там даже суммы разные :)
--
www.it-sfera.com.ua
Terrasoft Solution Partner
Виталий, к сожалению, проблему не удалось воспроизвести. Как Вы и описывали, сделал два отчёта с кросс-табами, в каждом из которых используется один из предложенных Вами запросов, и оба работают идентично, как под пользователем, так и под админом. Более того, экспериментировал с записями, созданными разными пользователями, - в результат попадают ровно те записи, на которые у пользователя есть права. Об этом я уже писал выше.
Кстати, не вижу разницы в таблицах, продемонстрированных Вами на скриншоте (если не считать того, что во второй таблице нет разбивки по приходу/расходу). Итоговые данные, а так же все промежуточные суммы в любом направлении, на мой взгляд, корректны.
Я же это сам не нарисовал :)
Если Вам интересно, могу поднять копию базы до внесения изменений с группировкой, установить базу с Visual Studio на тестовой машине и дать Вам на некоторое время доступ - поиграть :) Возможно, Вы мне объясните, где наш программист, в этом задание, ошибся ;)
--
www.it-sfera.com.ua
Terrasoft Solution Partner
Я Вам видео запишу сейчас - и выложу :)
--
www.it-sfera.com.ua
Terrasoft Solution Partner
Можно попробовать.
Вышлите, пожалуйста, параметры удалённого доступа на o.labyak@tscrm.com
Видео здесь: ФАЙЛ (1,6 Мб)
--
www.it-sfera.com.ua
Terrasoft Solution Partner
Видео записал, доступ предоставил для Лабьяк Олег Игоревич...
Ждем-с комментариев :)
--
www.it-sfera.com.ua
Terrasoft Solution Partner
"Попов Александр" написал:Пока не понятно. Вот как выясните причину - тогда будет 1% :)))
Александр, Вы уже с 1% определились :)))
--
www.it-sfera.com.ua
Terrasoft Solution Partner
Ну, как Вам сказать... :)
Можете уточнить у Вашего сотрудника, которому вчера был предоставлен доступ к базе... Он сам все увидел 8-)
Могу подготовить фрагмент базы и сервисы отчета!
В общем, для себя я вопрос решил и знаю, как НЕЛЬЗЯ писать запросы для cross-tab, если не хочешь увидеть вот такие "сюрпризы" в отчетности под разными пользователями :)
--
www.it-sfera.com.ua
Terrasoft Solution Partner
Да, я подключался и проверял формирование отчёта под пользователем и администратором, используя по очереди оба запроса.
Жду фрагмент базы, попытаюсь определить, чем же некоторые записи "лучше" других, что не отображаются в отчёте :).
To Underscore a.k.a.:
Пока окончательно не определили, сегодня попытаемся решить.
Ещё одна идея появилась... Виталий, проверьте, пожалуйста, свойство FetchRecordsCount в датасете FastReport. Может, оно осталось 40, как по умолчанию? Надо 0 поставить.
"Лабьяк Олег Игоревич" написал: Надо 0 поставить.
Зачем? FastReport же сам меняет это значение, судя по запросам, которые валятся в базу при построении отчета.
А чтобы определить виноват ли FastReport, нужно просто на бумажке самому построить отчет по тем данным, которые вернет запрос в QueryAnalizer.