Страница 1 из 1

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

Добавлено: 15 мар 2004, 19:52
__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" - чтобы считало - как в бухгалтерском калькуляторе? а? Я знаю - вы знаете :).

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

Добавлено: 16 мар 2004, 08:24
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 - возвращаемые рассчитанные значения для трех составляющих НДЕ, Валюта, Количество.

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

Добавлено: 16 мар 2004, 08:30
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;
}

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

Добавлено: 17 мар 2004, 11:43
__nogc
Павел, если это заработает - я просто таки буду должен. Из своей оплаты. :D
Спасибо большое!

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

Добавлено: 05 апр 2004, 13:22
Deinis

Добавлено: 13 ноя 2006, 20:13
other95
У меня произошла связанная с этим небольшая проблема...
При использовании вышеперичисленных конструкций и расчете формул автоматически запустился перерасчет сальдо!!!
(По полной программе с удалением и обновлением в таблице SALDMOUN)
Почему это происходит и как это подавить кто-нибудь знает?

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