UserMagicWords.ini: различия между версиями
Belousov (обсуждение | вклад) м (→Примеры) |
Belousov (обсуждение | вклад) (→Примеры) |
||
Строка 16: | Строка 16: | ||
== Примеры == | == Примеры == | ||
+ | <nowiki> | ||
+ | [ОЦЕНКАВЕСА] | ||
+ | var | ||
+ | I: integer; | ||
+ | ves: double; | ||
+ | begin | ||
+ | ves := 0; | ||
+ | For I := 0 to Doc1.NumBlock('\\BLOCK')-1 do begin | ||
+ | Doc1.NBlock(I); | ||
+ | // NBLOCK - это номер создаваемого товара ДТ | ||
+ | if Doc1.GetField('32_NUM') = inttostr(NBLOCK) then | ||
+ | ves := ves + GetVal(Doc1.GetField('35_1')); | ||
+ | end; | ||
− | + | if ves < 1000 then | |
− | + | Result := 'лёгкий' | |
− | + | else | |
− | + | if (ves > 1000) and (ves < 5000) then | |
− | + | Result := 'обычный' | |
− | + | else | |
− | + | Result := 'тяжелый'; | |
− | + | end; | |
− | + | </nowiki> | |
− | |||
− | |||
− | |||
− | |||
Создаст новое ключевое слово +'''ОЦЕНКАВЕСА'''+, которое в зависимости от величины поля 35_1 (Вес брутто) | Создаст новое ключевое слово +'''ОЦЕНКАВЕСА'''+, которое в зависимости от величины поля 35_1 (Вес брутто) | ||
Строка 35: | Строка 44: | ||
− | + | <nowiki> | |
− | + | [ЧИСЛО_ПОЗИЦИЙ] | |
− | + | begin | |
− | + | Result := Doc1.NumBlock('\\BLOCK'); | |
− | + | end; | |
+ | </nowiki> | ||
Создаст новое ключевое слово +'''ЧИСЛО_ПОЗИЦИЙ'''+, которое будет выводить число | Создаст новое ключевое слово +'''ЧИСЛО_ПОЗИЦИЙ'''+, которое будет выводить число | ||
записей в Инвойсе. | записей в Инвойсе. |
Версия 16:09, 21 октября 2019
UserMagicWords.ini - пользовательский конфигурационный файл для программы Альта-ГТД, позволяющий создавать собственные ключевые слова для строки формирования Инвойса.
Как пользоваться
Файл создается в папке профиля пользователя в в кодировке Windows-1251. Пользовательские слова должны пересекаться с существующими стандартными. Каждое пользовательское слово описывается в секции начинающейся со слова в квадратных скобках, а внутри секции находится Pascal-скрипт, задающий поведение слова.
Документ Инвойс представляется в виде встроенного объекта Doc1. Доступу к полям Инвойса осуществляется или функцией Doc1.GetField(<ИдентификаторПоля>) или при помощи короткой записи _<ИдентификаторПоля>
Встроенная переменная NBLOCK равна номеру группы позиций Инвойса для создаваемого товара ДТ
Возможности скрипта можно иузучить на реальных примерах в файле ALTA\DATA\WGTDINFO.DAT в секциях [*.Revise]
Примеры
[ОЦЕНКАВЕСА] var I: integer; ves: double; begin ves := 0; For I := 0 to Doc1.NumBlock('\\BLOCK')-1 do begin Doc1.NBlock(I); // NBLOCK - это номер создаваемого товара ДТ if Doc1.GetField('32_NUM') = inttostr(NBLOCK) then ves := ves + GetVal(Doc1.GetField('35_1')); end; if ves < 1000 then Result := 'лёгкий' else if (ves > 1000) and (ves < 5000) then Result := 'обычный' else Result := 'тяжелый'; end;
Создаст новое ключевое слово +ОЦЕНКАВЕСА+, которое в зависимости от величины поля 35_1 (Вес брутто) будет выводить заданный пользователем текст.
[ЧИСЛО_ПОЗИЦИЙ] begin Result := Doc1.NumBlock('\\BLOCK'); end;
Создаст новое ключевое слово +ЧИСЛО_ПОЗИЦИЙ+, которое будет выводить число записей в Инвойсе.