UserMagicWords.ini: различия между версиями

Материал из Alta-Soft Wikipedia
Перейти к навигации Перейти к поиску
м (Примеры)
(Примеры)
Строка 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
  var
+
    Result := 'лёгкий'  
    ves: double;
+
  else
  begin
+
  if (ves > 1000) and (ves < 5000) then  
    ves := GetVal(_35_1); 
+
    Result := 'обычный'
    if ves < 1000 then
+
  else  
      Result := 'лёгкий'  
+
    Result := 'тяжелый';
    else
+
end;
    if (ves > 1000) and (ves < 5000) then  
+
</nowiki> 
      Result := 'обычный'
 
    else  
 
      Result := 'тяжелый';
 
  end;
 
  
 
Создаст новое ключевое слово +'''ОЦЕНКАВЕСА'''+, которое в зависимости от величины поля 35_1 (Вес брутто)  
 
Создаст новое ключевое слово +'''ОЦЕНКАВЕСА'''+, которое в зависимости от величины поля 35_1 (Вес брутто)  
Строка 35: Строка 44:
  
  
 
+
<nowiki> 
  [ЧИСЛО_ПОЗИЦИЙ]
+
[ЧИСЛО_ПОЗИЦИЙ]
  begin
+
begin
    Result := Doc1.NumBlock('\\BLOCK');
+
  Result := Doc1.NumBlock('\\BLOCK');
  end;
+
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;
   

Создаст новое ключевое слово +ЧИСЛО_ПОЗИЦИЙ+, которое будет выводить число записей в Инвойсе.