Ad Widget

Collapse

Опять макросы?!

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Jimson
    Senior Member
    • Jan 2008
    • 1327

    #1

    Опять макросы?!

    the key parameters are not used in formula in any way - variables may be passed to the formula with user macros.
    вычисляемый итем с формулой:
    avg("{$vsat_hsp}:lasttxcapabilityesn0[1300]", 60)
    результат:
    cannot evaluate function [avg( 60)]: Item [vsat 1300:{$vsat_hsp}:lasttxcapabilityesn0[1300]] not found
    блин, я даже не знаю что можно сказать
    два года вой стоит за каждый параметр что бы разрешили пользоваться пользовательскими макросами

    может можно как то по другому записать формулу? или таки опять идем хачить?
  • Jimson
    Senior Member
    • Jan 2008
    • 1327

    #2
    Почитал я значит код, господа.

    Подстановка макросов в вычисляемом ЭЛЕМЕНТЕ ДАННЫХ производится после того как параметр(выражения) распарсят и удалят от туда все функции со всеми их параметрами, например, у нас выражение

    avg(key1, 120) + avg(key2, 120)

    после парсинга получается выражение

    {1} + {2}

    фиктивное как бы, для дальнейших вычислений

    Так вот, это вот "{1} + {2}" отправляется на подстановку макросов. Ух ты, вот это фича!

    [скипну про dc_item, это я уже погорячился, там какие то ужасные замуты с хэшами, проще похачить прям в checks_calculated.c в начале calcitem_parse_expression(), только бы не облажаться с памятью ]
    Last edited by Jimson; 20-08-2012, 22:09.

    Comment

    Working...