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;
Создаст новое ключевое слово +ЧИСЛО_ПОЗИЦИЙ+, которое будет выводить число записей в Инвойсе.