TXO API или аналог

Программирование на Атлантисе (VIP, FCOM, ARD), FastReport

Модераторы: m0p3e, edward_K, Модераторы

Ответить
Masygreen
Местный житель
Сообщения: 1089
Зарегистрирован: 04 сен 2008, 11:27
Откуда: Москва
Контактная информация:

TXO API или аналог

Сообщение Masygreen »

Собственно суть .. есть документ в документе есть строки спецификации.
Пускай будет приход ОС.
ТХО идет по спецификации циклически и обрабатывает каждую строчку, есть сложный алгоритм определения аналитики по строчке. Хочу засунуть её в функцию.

Пробую ТХОАПИ на эту тему

1) разбор параметров .. не понял

Определение параметров

Код: Выделить всё

  ParamMaster := '[cSpSopr:]';
В настройке

Код: Выделить всё

&1 = &SoprDoc[Рез:СпНаклАкта]
&2 = &VIP_[Obj:"MRT_GETSCH"][cSpSopr:&1]
Получение параметра

Код: Выделить всё

_cSpSopr := TxoParamValue(hTxo, 1) ;
в логе получаю _cSpSopr = &1

Не понял как передать значение, а не строку??

2)совершенно не понятно как вернуть значение
у меня это строка текста ..

Изображение
Время ведет!
pk
Постоянный обитатель
Сообщения: 135
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва Связьтранснефть

Re: TXO API или аналог

Сообщение pk »

Masygreen писал(а):Не понял как передать значение, а не строку??
Никак:)
Можно через какой-либо врем файл, откуда ваша ТХО считает его значение.
С ув..
С ув..
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5187
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Re: TXO API или аналог

Сообщение edward_K »

Код: Выделить всё

  for(i := 1; i <= TxoParamCount(hTxo); i := i + 1)
  {
    case upcase(TxoParamName(hTxo, i)) of
      'РЕЗ':
       { TxoDebugMsg(hTxo, 'KatSoprSpr','РЕЗ='+upcase(TxoParamValue(hTxo, i)) )
         if upcase(TxoParamValue(hTxo, i)) ='ПРОД' then ParamResult := 0;
         else
         if upcase(TxoParamValue(hTxo, i)) = 'СКЛАД' then ParamResult := 1;
         else
         if upcase(TxoParamValue(hTxo, i)) = 'НДС'   then ParamResult := 2;
         else
         if upcase(TxoParamValue(hTxo, i)) = 'БНДС'  then ParamResult := 3;
       }  
      'ДТ'            : div_by_dt:=word(TxoParamValue(hTxo, i));
      'ДОК'           : w_vidsopr:=word(TxoParamValue(hTxo, i));
      'ФГРП'          : 
      { w_kGroupParty :=TxoParamValue(hTxo, i)
        if getfirst  GroupParty where (( w_kGroupParty == GroupParty.Kod ))=0
          w_cGroupParty:=GroupParty.Nrec
      }
    end;
  }
В Oborot разбор делается но там кусок код строк на 300 и сводится к вычислению параметров по ключу
Masygreen
Местный житель
Сообщения: 1089
Зарегистрирован: 04 сен 2008, 11:27
Откуда: Москва
Контактная информация:

Re: TXO API или аналог

Сообщение Masygreen »

1)если получить значение нельзя то не подходит .. хотя я вижу пути обхода
2) насчет параметра не понял, у меня функция TxoParamValue возвращает &1, а я как бэ хотел nrec строки спецификации документа ...
т.е

Код: Выделить всё

_cSpSopr := TxoParamValue(hTxo, 1) ;
в логе получаю _cSpSopr = &1
Время ведет!
Алексей
Местный житель
Сообщения: 2896
Зарегистрирован: 24 июн 2005, 12:12
Откуда: Иркутская область

Re: TXO API или аналог

Сообщение Алексей »

Если это Ваш ТХО АПИ, нельзя самому цикл по спецификации сделать? А что то даже понять не могу, чего вы добиться хотите...
pk
Постоянный обитатель
Сообщения: 135
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва Связьтранснефть

Re: TXO API или аналог

Сообщение pk »

Ну и dsk-переменная поможет:)
С ув..
Masygreen
Местный житель
Сообщения: 1089
Зарегистрирован: 04 сен 2008, 11:27
Откуда: Москва
Контактная информация:

Re: TXO API или аналог

Сообщение Masygreen »

Алексей писал(а):Если это Ваш ТХО АПИ, нельзя самому цикл по спецификации сделать? А что то даже понять не могу, чего вы добиться хотите...
Цикл делать не хочу, мне нужна разная сумма, это ОС и мне для проводки надо определить одну аналитику.
Для ОС есть нормальный алгоритм .. там разные суммы амортизация, сумма покупки, сумма оприходования - и в разных методах учета ..переписывать это все самому ... нет уж ..
мне надо просто для каждой строки которую формирует стандартное ТХО получить один параметр ... увы похоже
Время ведет!
Ответить