TXOExecPat не работает :(((

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

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

Ответить
__nogc
Посетитель
Сообщения: 35
Зарегистрирован: 29 мар 2005, 17:49
Контактная информация:

TXOExecPat не работает :(((

Сообщение __nogc »

Хочу взять сальдо по 50-му счёту. Пытаюсь использовать функцию TXOExecPat, но не понимаю её первых двух параметров - идентификатор тхо и PatIdent... Что я не так делаю? Вот мои творчества:

Interface Exec_Pat_Test;
Create View;
Public Function ExecutePat : double;
var d1, d2, d3 : double;
begin
if TxoExecPat(1, 'СД50', d1, d2, d3) then
ExecutePat := d1
else
Message('нет');
end;
end.

Что надо подсунуть в эту функцию (TxoExecPat) - или может - произвести ещё какие-то действия, чтобы получить результат этого выражения - "СД50" - чтобы считало - как в бухгалтерском калькуляторе? а? Я знаю - вы знаете :).
Spvl
Постоянный обитатель
Сообщения: 136
Зарегистрирован: 29 мар 2005, 17:49

Re: TXOExecPat не работает :(((

Сообщение Spvl »

TXOexecPat работает только из интерфейса расчета ТХО

тебе нужно другое:

Функции для доступа к серверу расчета формул.

function FormExInit : boolean;
Инициализирует сервер расчета формул.

procedure FormExDone;
Закрывает сервер расчета формул.

procedure FormExClearFormula; - очистить внутренний список формул.

function FormExAddKey(aKey, aExprNde, aExprVal, aExprKol, aComment: String) : boolean;
Добавить формулу во внутренний список сервера расчетов.
aKey - ключ формулы.
aExprNde, aExprVal, aExprKol - арифметическое выражение для трех составляющих НДЕ, Валю-та, Количество.
aComment - Комментарий для отображения в протоколе.

procedure FormExDelKey(aKey : String);
Удалить из списка формулу с заданным ключом.

function FormExStartCount(aCheck : word) : boolean;
Запустить расчет для формул хранящихся в списке.
aCheck - режим расчета: 0 - нормальный расчет числовых значений, 1 - только проверка синтак-сиса. Если все формулы были рассчитаны успешно результат будет TRUE. Если были ошибки син-таксиса формул, или прочие ошибки расчетов результат будет FALSE.

function FormExGetKeyValues(aKey : String; var vNde, vVal, vKol : double) : boolean;
Прочитать результат расчета формулы с заданным колючем. Если формула не была рассчитана или была рассчитана неверно результат будет FALSE.
aKey - ключ формулы.
vNde, vVal, vKol - возвращаемые рассчитанные значения для трех составляющих НДЕ, Валюта, Количество.
Spvl
Постоянный обитатель
Сообщения: 136
Зарегистрирован: 29 мар 2005, 17:49

Re: TXOExecPat не работает :(((

Сообщение Spvl »

Я тоже долго мучался пока не достал эту информацию.
Надеюсь она будет полезна

Удачи !

Вот пример использования

{ // этот пример сделан на основе бухгалтерского калькулятора
FormExInit; // инициализируем сервер
tempExpr := '';
// вызов интерфейса "Мастер бух. формул"
//т.е. создаем бух формулу если не можем сами написать руками :)
RunInterface(Ident_Master,word(0),tempExpr);
if (trim(tempExpr) = '') { // если формула = пустой строке возвращаем 0-ли
Result := 0; // в рублях
ResultBV := 0; // в валюте
ResultKol := 0; // количество
}
else { // если формула не пустая, то расчитываем ее.
FormExClearFormula;
FormExAddKey('&1', trim(tempExpr), '', '', '');
if (FormExStartCount(0))
FormExGetKeyValues('&1', Result, ResultBV, ResultKol)
else {
Result := 0;
ResultBV := 0;
ResultKol := 0;
}
} // расчитали формулу.
FormExDone;
}
__nogc
Посетитель
Сообщения: 35
Зарегистрирован: 29 мар 2005, 17:49
Контактная информация:

Re: TXOExecPat не работает :(((

Сообщение __nogc »

Павел, если это заработает - я просто таки буду должен. Из своей оплаты. :D
Спасибо большое!
Deinis
Местный житель
Сообщения: 783
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва
Контактная информация:

Re: TXOExecPat не работает :(((

Сообщение Deinis »

other95
Новичок
Сообщения: 23
Зарегистрирован: 03 янв 2006, 18:58
Откуда: Санкт-Петербург
Контактная информация:

Сообщение other95 »

У меня произошла связанная с этим небольшая проблема...
При использовании вышеперичисленных конструкций и расчете формул автоматически запустился перерасчет сальдо!!!
(По полной программе с удалением и обновлением в таблице SALDMOUN)
Почему это происходит и как это подавить кто-нибудь знает?
Seybukan
Местный житель
Сообщения: 1357
Зарегистрирован: 29 мар 2005, 17:49
Откуда: СПб, ЭП-Аудит
Контактная информация:

Сообщение Seybukan »

Почему это происходит и как это подавить кто-нибудь знает?
Сальдо пересчитывается в незакрытом периоде по флагу актуальности сальдо. Он сбрасывается если изменялись обороты по счету в незакрытом периоде. Табличка ACTSALDO.
Ответить