Получение объекта из таблицы по его номеру
Еще одна постоянно используемая функция. Возвращает описание объекта (сделка, заявка, условная заявка и т.д.) по его номеру в торговой системе.
' Получение map c текущим состоянием сделки/заявки/условной заявки/... по номеру NUMBER в таблице TABLE.
' Допустимы таблицы ORDERS, STOP_ORDERS, TRADES, ALL_TRADES, NEG_DEALS, NEGOTIATION_TRADES, NEG_DEAL_REPORTS.
' Если объект не найден, возвращается пустая строка. Соответствующая таблица должна быть открыта.
' Поиск идет от более новых к старым.
FUNC Get_Map_By_Number(gmbn_number,gmbn_table)
if 0+gmbn_number != 0
gmbn_num_of_orders = get_number_of(gmbn_table)
for gmbn_s from 0 to gmbn_num_of_orders - 1
result = get_item(gmbn_table,gmbn_num_of_orders - gmbn_s)
if get_value(result,"NUMBER") - gmbn_number == 0
return
end if
end for
end if
result = ""
END FUNC
Для варианта с препроцессором M4:
FUNC Get_Map_By_Number(Number,Table) Local(Num_Of_Orders,i) if Float(Number) != 0 Num_Of_Orders = get_number_of(Table)
for i from 0 to Num_Of_Orders - 1
result = get_item(Table,Num_Of_Orders - i)
if Get_Float(result,"NUMBER") == Number
Return(result)
end if
end for
end if
EndFunc("")