Хочу взять сальдо по 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" - чтобы считало - как в бухгалтерском калькуляторе? а? Я знаю - вы знаете .
TXOExecPat не работает :(((
Модераторы: m0p3e, edward_K, Модераторы
Re: TXOExecPat не работает :(((
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 - возвращаемые рассчитанные значения для трех составляющих НДЕ, Валюта, Количество.
тебе нужно другое:
Функции для доступа к серверу расчета формул.
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 не работает :(((
Я тоже долго мучался пока не достал эту информацию.
Надеюсь она будет полезна
Удачи !
Вот пример использования
{ // этот пример сделан на основе бухгалтерского калькулятора
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;
}
Надеюсь она будет полезна
Удачи !
Вот пример использования
{ // этот пример сделан на основе бухгалтерского калькулятора
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 не работает :(((
Павел, если это заработает - я просто таки буду должен. Из своей оплаты.
Спасибо большое!
Спасибо большое!