UserMagicWords.ini: различия между версиями
Belousov (обсуждение | вклад) м (→Примеры) |
Belousov (обсуждение | вклад) (→Как пользоваться) |
||
| (не показаны 4 промежуточные версии этого же участника) | |||
| Строка 2: | Строка 2: | ||
== Как пользоваться == | == Как пользоваться == | ||
| − | Файл создается в папке профиля пользователя | + | Файл создается в папке профиля пользователя в кодировке Windows-1251. |
| + | |||
| + | Открыть файл в редакторе через нажатие кнопки на панели инструментов в редакторе строк. | ||
| + | |||
| + | [[Изображение:UserMagicWords.png]] | ||
| + | |||
| + | Каждое пользовательское слово описывается в секции начинающейся со слова в квадратных скобках, | ||
| + | а внутри секции находится Pascal-скрипт, задающий поведение слова. | ||
Пользовательские слова должны пересекаться с существующими стандартными. | Пользовательские слова должны пересекаться с существующими стандартными. | ||
| − | |||
| − | |||
Документ Инвойс представляется в виде встроенного объекта '''Doc1'''. | Документ Инвойс представляется в виде встроенного объекта '''Doc1'''. | ||
| Строка 16: | Строка 21: | ||
== Примеры == | == Примеры == | ||
| + | <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: | Строка 49: | ||
| − | + | <nowiki> | |
| − | + | [ЧИСЛО_ПОЗИЦИЙ] | |
| − | + | begin | |
| − | + | Result := Doc1.NumBlock('\\BLOCK'); | |
| − | + | end; | |
| + | </nowiki> | ||
Создаст новое ключевое слово +'''ЧИСЛО_ПОЗИЦИЙ'''+, которое будет выводить число | Создаст новое ключевое слово +'''ЧИСЛО_ПОЗИЦИЙ'''+, которое будет выводить число | ||
записей в Инвойсе. | записей в Инвойсе. | ||
Текущая версия на 16:36, 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;
Создаст новое ключевое слово +ЧИСЛО_ПОЗИЦИЙ+, которое будет выводить число записей в Инвойсе.
