Germany | Finland | Saint Petersburg | Drive

Получение объекта из таблицы по его номеру

Опубликовано в QPILE

Еще одна постоянно используемая функция. Возвращает описание объекта (сделка, заявка, условная заявка и т.д.) по его номеру в торговой системе.

' Получение 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("")


Добавить комментарий