AXForum  
Вернуться   AXForum > Microsoft Dynamics NAV > NAV: Администрирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 13.11.2007, 14:51   #1  
Ros is offline
Ros
Участник
 
36 / 10 (1) +
Регистрация: 05.10.2007
Цитата:
Сообщение от romeo Посмотреть сообщение
В этой форме (12406 наверное) триггер OnDrillDown() не переписывали на поле Конечное Сальдо (РУБ)?
Разговор про форму 12406.

Вроде нет -

Код:
Balance Ending - OnDrillDown()
DrillDownGLEntry(3);
Функцию правили, но ничего криминального -

Код:
DrillDownGLEntry(Show : 'StartBalance,Debit,Credit,EndBalance,NetChange')
GLEntry.RESET;
GLEntry.SETCURRENTKEY("Source Type","Source No.","G/L Account No.","Global Dimension 1 Code","Global Dimension 2 Code");
GLEntry.SETRANGE("Source Type",GLEntry."Source Type"::Customer);
GLEntry.SETRANGE("Source No.","No.");
GLEntry.SETFILTER("G/L Account No.",GETFILTER("G/L Account Filter"));
GLEntry.SETFILTER("Global Dimension 1 Code",GETFILTER("Global Dimension 1 Filter"));
GLEntry.SETFILTER("Global Dimension 2 Code",GETFILTER("Global Dimension 2 Filter"));
GLEntry.SETFILTER("Posting Date",GETFILTER("Date Filter"));
CASE Show OF
  Show::StartBalance:
	IF COPYSTR(GETFILTER("Date Filter"),1,2) <> '..' THEN BEGIN
	  IF GETRANGEMIN("Date Filter") <> 0D THEN
		GLEntry.SETRANGE("Posting Date",0D,GETRANGEMIN("Date Filter") - 1);
	END ELSE
	  EXIT;
  Show::Debit: GLEntry.SETFILTER("Debit Amount",'<>%1',0);
  Show::Credit: GLEntry.SETFILTER("Credit Amount",'<>%1',0);
  Show::EndBalance:
	IF GETRANGEMAX("Date Filter") <> 0D THEN

	  // *** MBS ERROR >>
	  // GLEntry.SETRANGE("Posting Date",0D,GETRANGEMAX("Date Filter") - 1)
	  GLEntry.SETRANGE("Posting Date",0D,GETRANGEMAX("Date Filter"))
	  // *** MBS ERROR <<

	ELSE
	  EXIT;
  Show::NetChange: GLEntry.SETFILTER(Amount,'<>%1',0);
  ELSE
	ERROR('');
END;
FORM.RUN(0,GLEntry);
Старый 13.11.2007, 15:42   #2  
romeo is offline
romeo
Участник
Аватар для romeo
 
564 / 10 (2) +
Регистрация: 31.03.2004
Может включить Posting Date в используемый ключ?
Старый 14.11.2007, 10:33   #3  
Ros is offline
Ros
Участник
 
36 / 10 (1) +
Регистрация: 05.10.2007
Цитата:
Сообщение от romeo Посмотреть сообщение
Может включить Posting Date в используемый ключ?
На самом деле, в этом ключе есть поле Posting Date. Видимо, когда объявляли функцию сортировки, последняя часть ключа не влезла в одну строчку кода. Но ключ же будет правильно инициализирован?


Сам ключ - Source Type,Source No.,G/L Account No.,Global Dimension 1 Code,Global Dimension 2 Code,Business Unit Code,Posting Date
Старый 14.11.2007, 10:53   #4  
Fordewind is offline
Fordewind
Участник
 
1,134 / 10 (3) +
Регистрация: 01.12.2005
Цитата:
Сообщение от Ros Посмотреть сообщение
На самом деле, в этом ключе есть поле Posting Date. Видимо, когда объявляли функцию сортировки, последняя часть ключа не влезла в одну строчку кода. Но ключ же будет правильно инициализирован?
Сам ключ - Source Type,Source No.,G/L Account No.,Global Dimension 1 Code,Global Dimension 2 Code,Business Unit Code,Posting Date
Если только нет друго ключа начинающенгося с полей прописанных в коде.

P.S. То что не влезло в одну строчку кода - не резон, так как всегда можно перейти на вторую.
Старый 15.11.2007, 09:10   #5  
rmv is offline
rmv
Участник
 
481 / 11 (1) +
Регистрация: 15.02.2005
Цитата:
Сообщение от Fordewind Посмотреть сообщение
Если только нет друго ключа начинающенгося с полей прописанных в коде.

P.S. То что не влезло в одну строчку кода - не резон, так как всегда можно перейти на вторую.
Ну на самом деле SQL серверу все равно какой ключ прописан в коде, поля ключа подставляются в Order By запроса, а вот какой индекс выберит SQL сервер - зависит от статистики на наверно чуть от random'a .
Обратите внимание - проблемы появились после коррекции себестоимости. Мои предположения - на основе статистики накопленной ДО коррекции себестоимости сервер выбирает неоптимальный индекс или сваливается в full scan таблицы. Проверить просто - забэкапить - развернуть - сравнить
Старый 15.11.2007, 10:21   #6  
Fordewind is offline
Fordewind
Участник
 
1,134 / 10 (3) +
Регистрация: 01.12.2005
а вот тут возникла ошибка форума....
Старый 15.11.2007, 10:28   #7  
Fordewind is offline
Fordewind
Участник
 
1,134 / 10 (3) +
Регистрация: 01.12.2005
Цитата:
Сообщение от rmv Посмотреть сообщение
Ну на самом деле SQL серверу все равно какой ключ прописан в коде, поля ключа подставляются в Order By запроса, а вот какой индекс выберит SQL сервер - зависит от статистики на наверно чуть от random'a .
Обратите внимание - проблемы появились после коррекции себестоимости. Мои предположения - на основе статистики накопленной ДО коррекции себестоимости сервер выбирает неоптимальный индекс или сваливается в full scan таблицы. Проверить просто - забэкапить - развернуть - сравнить
чОрт! Адская ошибка форума сожрала мой длинный пост.
Короче: Попадает ли в данном случае поле Postind Date в Order By? Если не попадает то при SETRANGE по этому полю, по идее, SQL будет тормозить?
Старый 16.11.2007, 16:52   #8  
rmv is offline
rmv
Участник
 
481 / 11 (1) +
Регистрация: 15.02.2005
Цитата:
Сообщение от Fordewind Посмотреть сообщение
чОрт! Адская ошибка форума сожрала мой длинный пост.
Короче: Попадает ли в данном случае поле Postind Date в Order By? Если не попадает то при SETRANGE по этому полю, по идее, SQL будет тормозить?
В таком случае Posting Date попадает в where условие запроса. Не думаю что оптимизатор настолько глуп чтобы анализировать только order by
Старый 15.11.2007, 12:41   #9  
RedFox is offline
RedFox
Участник
 
1,441 / 10 (0) +
Регистрация: 28.12.2004
Адрес: Киев
Цитата:
Сообщение от rmv Посмотреть сообщение
Ну на самом деле SQL серверу все равно какой ключ прописан в коде, поля ключа подставляются в Order By запроса, а вот какой индекс выберит SQL сервер - зависит от статистики на наверно чуть от random'a .
Обратите внимание - проблемы появились после коррекции себестоимости. Мои предположения - на основе статистики накопленной ДО коррекции себестоимости сервер выбирает неоптимальный индекс или сваливается в full scan таблицы. Проверить просто - забэкапить - развернуть - сравнить
Перестрой ключи на таблице (когда пользователей не будет)
 


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 15:35.