Приложение 4. Примеры использования параметра «params» в функции «SearchItems»

Пример 1

Если не задан последний параметр в функции SearchItems, то в функцию обратного вызова fn передается обезличенная сделка в виде таблицы Lua:

function fn(t)
    if t.qty == 103 then 
        return true
    else
        return false
    end
end
t1 = SearchItems("all_trades", 0, getNumberOf("all_trades")-1, fn)

Пример 2

В случае, если список полей задан, в функцию fn передаются параметры в том порядке, в котором они перечислены в списке параметров. В примере par1 содержит поле qty, par2 – class_code, par3 – sec_code.

Если перечисленные параметры отсутствуют в списке полей элемента, то в качестве параметра передается nil.

function fn(par1, par2, par3)
    if par1 ==  103 and par2 == "SPBFUT" and par3 == "RIM3" then
        return true
    else
        return false
    end
end
t1 = SearchItems("all_trades", 0, getNumberOf("all_trades")-1, fn, "qty,class_code, sec_code")

Пример 3

В примере par1 примет значение nil, par2 – class_code, par3 – sec_code:

function fn(par1, par2, par3)
    if par1 ==  103 and par2 == "SPBFUT" and par3 == "RIM3" then
        return true
    else
        return false
    end
end
t1 = SearchItems("all_trades", 0, getNumberOf("all_trades")-1, fn, "test,class_code, sec_code")

Пример 4

Элементы вложенных таблиц передаются через точку, например:

function fn(par1, par2)
    if par1 ==  17 and par2 == 5 then
        return true
    else
        return false
    end
end
t1 = SearchItems("all_trades", 0, getNumberOf("all_trades")-1, fn, "datetime.hour, datetime.min")