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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 13.06.2007, 07:07   #21  
Greggy_imported is offline
Greggy_imported
Участник
Аватар для Greggy_imported
 
291 / 10 (1) +
Регистрация: 24.09.2004
Цитата:
Сообщение от Gmc Посмотреть сообщение
Была похожая проблема, обрати внимание на CU 14800 функцию MoveLines.
Я переделал так:
WITH PayrollJnlLine DO BEGIN
RESET;
SETRANGE(Template,Template);
SETRANGE("Batch Name","Batch Name");

JournalDimension.RESET;
JournalDimension.SETRANGE("Table ID",14820);
JournalDimension.SETRANGE("Journal Template Name",Template);
JournalDimension.SETRANGE("Journal Batch Name","Batch Name");

IF IncludCurLine THEN
SETFILTER("Line No.",'>=%1',"Line No.")
ELSE
SETFILTER("Line No.",'>%1',"Line No.");
IF FIND('+') THEN
BEGIN
REPEAT
PayrollJnlLine2 := PayrollJnlLine;
PayrollJnlLine2."Line No." := "Line No." + 10000;
PayrollJnlLine2.INSERT;

JournalDimension.SETRANGE("Journal Line No.","Line No.");
IF JournalDimension.FIND('+') THEN
REPEAT
JournalDimension2 := JournalDimension;
JournalDimension2."Journal Line No." := PayrollJnlLine2."Line No.";
// JournalDimension.DELETE;
JournalDimension2.INSERT;
//
UNTIL JournalDimension.NEXT(-1) = 0;
// UNTIL JournalDimension.FIND('+');

DELETE(TRUE);
// UNTIL NEXT(-1) = 0;
UNTIL FIND('+');
END;
END;
я чего то недопонимаю может быть ... но объясните мне как может работать код

IF FIND('+') THEN
BEGIN
REPEAT
...
...
UNTIL FIND('+');
END
в приведенном примере будет всего одна итерация насколько я понимаю!
Старый 13.06.2007, 12:32   #22  
Corleone is offline
Corleone
Участник
 
355 / 10 (1) +
Регистрация: 27.05.2004
Адрес: London
Цитата:
Сообщение от Greggy Посмотреть сообщение
я чего то недопонимаю может быть ... но объясните мне как может работать код

IF FIND('+') THEN
BEGIN
REPEAT
...
...
UNTIL FIND('+');
END
в приведенном примере будет всего одна итерация насколько я понимаю!
Не буду комментировать каждую строку, но там не одна итерация, из-за того, что FIND('+')=TRUE всегда когда есть записи, а там ещё DELETE.

Цитата:
// UNTIL NEXT(-1) = 0;
вы предлагаете поменять на
UNTIL FIND('+');
Вы для какой версии приводите код?
3.7
Да, хотя я уже сомневаюсь что только это, щас ещё перепроверю.
Старый 13.06.2007, 14:45   #23  
konrad_imported is offline
konrad_imported
Участник
 
183 / 10 (1) +
Регистрация: 25.11.2004
Цитата:
Сообщение от Галина Посмотреть сообщение
Возник вопрос правда не совсем тему.
Объем зарплатной базы с января этого года составлял 6 гб. Прочитав тему - убрала с Зарпл.ЖурналСтроки галки с MainSiftIndex. Решила убрать эти же галки и с Зарпл.КнигиОперации. Объем базы составил 1.4 гб.
Я в шоке. 4 гб - составляли ключи?
И теперь собственно вопрос. Чем мне это грозит? В принципе flow-field поля в Зарплате не используются-как в основном Навижине. Поэтому мне кажется ничем не грозит.
Все нормально. Ключи столько и жрут - тем более не оптимизированые сифты. Поснимайте еще MaintainSQLIndex для ключей, которые в редко используемых отчетах применяются. Еще пол-гига, а то и более освободится.
А вот в таб 14821 со всех ключей MainSiftIndex поснимать - не совсем хорошо. Там есть несколько ключей (не помню, пара или около того), суммовые индексы которых используются в расчете ЗП. Расчет сильно замедлиться может.
Старый 13.06.2007, 19:19   #24  
Галина is offline
Галина
Участник
 
1,132 / 28 (3) +++
Регистрация: 01.07.2003
Цитата:
Сообщение от konrad Посмотреть сообщение
Все нормально. Ключи столько и жрут - тем более не оптимизированые сифты. Поснимайте еще MaintainSQLIndex для ключей, которые в редко используемых отчетах применяются. Еще пол-гига, а то и более освободится.
А вот в таб 14821 со всех ключей MainSiftIndex поснимать - не совсем хорошо. Там есть несколько ключей (не помню, пара или около того), суммовые индексы которых используются в расчете ЗП. Расчет сильно замедлиться может.
Хм-а если снять только с 14820 MainSiftIndex и MainSqlIndex-то толку нету-объем освободился совсем на чуть-чуть.
Я сняла с 14821-и у меня сразу 4 гб освободилось.
Проверяла расчет по минутам-работает одинаково.
Старый 14.06.2007, 08:50   #25  
Greggy_imported is offline
Greggy_imported
Участник
Аватар для Greggy_imported
 
291 / 10 (1) +
Регистрация: 24.09.2004
Цитата:
Сообщение от Gmc Посмотреть сообщение
Не буду комментировать каждую строку, но там не одна итерация, из-за того, что FIND('+')=TRUE всегда когда есть записи, а там ещё DELETE.
Приношу свои извенения ... сначала сам недотумкал ...
 


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

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

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