Transaq

СБО "Transaq" => Подсистема ATF => Topic started by: Savoyar on 25.08.2011, 20:21:07

Title: Некоторые вопросы от непрограммиста по контролю заявки
Post by: Savoyar on 25.08.2011, 20:21:07
Уважаемые господа!
К счастью или сожалению, не являюсь программистом, так что не взыщите...

в данный момент озадачен отслеживанием выставленной заявки.
нашел в теме
http://www.transaq.ru/forum/index.php?topic=487.0

Пользователь пишет код
var myOrder = getOrder(8501);
var myStatus = myOrder["status"];
signal::output ("заявка " + myStatus);

Он хоть что делает то? Что такое getOrder(id), то есть получить заявку по идентификатору - я нашел
Что такое 8501? Откуда берётся значение? Это то, что у меня обозначено, как UID, то есть некий идентификатор клиента?
Что такое myOrder["status"];
Про status, то есть состояние заявки (значения смотрите в разделе константы) - это я посмотрел, однако, почему тименно такое написание? почему кавычки, квадратные скобки?

Опять же про onATFOrder(var id)... var id это тот же UID? А дальше как эту функцию применять?

Господа! Я честно прочел Руководство, однако этого там не нашел.

Может, стоит подкорректировать Руководство? Начало то просто здорово для непрограммистов написано, а вот дальше, по мере усложнения и введения нового... (((

Title: Re: Некоторые вопросы от непрограммиста по контролю заявки
Post by: Heller on 26.08.2011, 10:01:16
У каждой заявки или сделки есть свой числовой идентификатор, чтобы их можно было как-то удобно отличать друг от друга. Когда совершается сделка, вызывается функция onATFTrade, которой в качестве параметра передается идентификатор сделки. Когда меняется статус заявки, вызывается функция onATFOrder, которой в качестве параметра передается идентификатор заявки.

Далее с помощью функций getOrder или getTrade вы можете получить детальную информацию о заявке или сделке соответственно, но в качестве параметра вы должны использовать как раз этот вот идентификатор (иначе не понятно какая заявка или сделка вас интересует).

Информация о заявках и сделках передается в виде "хешей". Это переменные, которые содержат в себе сразу множество значений. Какое именно из значений вы хотите получить и указывается в квадратных скобках. Какие именно значения содержат хеши для разных объектов вы можете прочитать здесь: http://transaq.ru/docs/atf/objects
Title: Re: Некоторые вопросы от непрограммиста по контролю заявки
Post by: Savoyar on 26.08.2011, 15:04:52
А как узнать идентификатор заявки? Ведь заявок при работе внутри дня много и меня будет интересовать последняя из многиз исполненных или снятых, а вот какой у неё номер, сиречь, идентификатор...???

Вот так??
function onATFOrder(var id)
{
   var MyOrder = getOrder(id);
                var MyIdent = MyOrder["trnid"];
}
Title: Re: Некоторые вопросы от непрограммиста по контролю заявки
Post by: Heller on 26.08.2011, 16:22:55
Да, именно. id как раз и является номером той заявки, состояние которой изменилось.
Title: Re: Некоторые вопросы от непрограммиста по контролю заявки
Post by: Savoyar on 26.08.2011, 18:37:49
А если у меня заявок было до этого уже 10 штук, тогда как она узнает, что мне интересен id последней заявки?
Title: Re: Некоторые вопросы от непрограммиста по контролю заявки
Post by: daytrader on 26.08.2011, 19:05:28
делаете несколько переменных
например order1 order2 order3
и каждому id заявки присваиваете

делаете их static и работаете - проверяете, снимаете и прочее.
Title: Re: Некоторые вопросы от непрограммиста по контролю заявки
Post by: nikolz on 26.08.2011, 20:54:07
Savoyar!
Для этого создаете массив и в него записываете данные своих заявок.
этот массив будет вместо таблицы заявок, которую средствами ATF читать невозможно.
Title: Re: Некоторые вопросы от непрограммиста по контролю заявки
Post by: Heller on 29.08.2011, 10:17:34
Savoyar!
Для этого создаете массив и в него записываете данные своих заявок.
этот массив будет вместо таблицы заявок, которую средствами ATF читать невозможно.

Начиная с версии 1.12 можно - смотрите функции getAllOrderIDs и getAllStopOrderIDs.