Операторы И / ИЛИ

Тема в разделе "Функции и интерфейс программы", создана пользователем cyoshi, 13 апр 2019.

  1. cyoshi

    cyoshi Member Пользователи

    Регистрация:
    4 апр 2019
    Сообщения:
    69
    Добрый день!
    Подскажите пожалуйста не могу найти в справке есть ли операторы "и/или"
    Например мне надо использовать 2 условия в макросе

    Макрос IF
    если граница 8 равна 101 или 102 и граница 7 равна слову "да" тогда выводить 1

    [IF1][GRAN8]=101 или [GRAN8]=102 и [GRAN7]="да" [THEN]1[/IF1]

    Подскажите пожалуйста где найти информацию по данным операторам?
    Я правильно понимаю что операторы и и или можно использовать во всех макросах?
     
  2. kagorec

    kagorec Администратор Команда форума Администратор

    Регистрация:
    3 янв 2011
    Сообщения:
    4.429
    Адрес:
    Latvia
    В поиск-замена границы 8 добавьте замену
    Код:
    {textstart}101{textend}|@12345#
    {textstart}102{textend}|@12345#
    @{get}#|{get}
    В поиск-замена границы 7 добавьте замену
    Код:
    {textstart}да{textend}|@6789#
    @{get}#|{get}
    Получаем условие
    Код:
    [IF2][GRAN8][GRAN7]=123456789[THEN]1[ELSE][/IF2]
    п.с. надеюсь идея понятна, поправите под свои параметры.
     
    cyoshi нравится это.
  3. Root

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Ссылки недоступны для гостей
     
    cyoshi нравится это.
  4. cyoshi

    cyoshi Member Пользователи

    Регистрация:
    4 апр 2019
    Сообщения:
    69
    если честно это очень сложная конструкция для меня...
    у меня планирует очень много операторов "ИЛИ" боюсь смогу применить Ваш способ..

    хотя есть вопрос. Если Вы уже сделали замену зачем еще применять оператор {get} ??



    =============================================
    в своем случае я думал что то более легкое применить...

    Код:
    [IF1][MATH]([GRAN8]=101)or([GRAN8]=102)[/MATH][THEN]znachenie01[ELSE]znachenie01[/IF1]
    
    вот такая штука не работает почему-то...
    подскажите пожалуйста где у меня ошибка...

    без макроса [MATH] or или and нельзя применять?

    просто в IF нельзя перечислить логические операторы через or или and ?
     
  5. kagorec

    kagorec Администратор Команда форума Администратор

    Регистрация:
    3 янв 2011
    Сообщения:
    4.429
    Адрес:
    Latvia
    Чтобы было только то что мы в замене указали, а не все числа . Тоесть если там не 101 или не 102 то пусто будет.
     
    cyoshi нравится это.
  6. Root

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Что мешает логи смотреть - остается только гадать. Устал уже это повторять постоянно. Ничего не меняется.
     
    cyoshi нравится это.
  7. Root

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Код:
    [IF1][MATH](101=101)or(101=102)[/MATH][TEXTEQUAL]{TRUE}[THEN]znachenie01[ELSE]znachenie02[/IF1]
     
    kagorec и cyoshi нравится это.
  8. cyoshi

    cyoshi Member Пользователи

    Регистрация:
    4 апр 2019
    Сообщения:
    69
    я наверное еще не до конца узнал обо всех функциях. в одном из роликов Вы рассказывали о том как использовать логи но я не могу применить сейчас в своем проекте
    вся обработка происходит внутри повторяющейся границы парсинга и иногда ошибка появляется на 130 строчке результирующей таблицы и если честно я не знаю как в таком случае логом пользоваться....


    ====


    спасибо большое за образец!!

    Могли бы Вы немного подробнее описать если возможно?

    [MATH](101=101)or(101=102)[/MATH][TEXTEQUAL]{TRUE} - с конца вроде бы все ясно. если макрос выдаст текст равный true или false на это будет реагировать развилка IF

    а вот что внутри макроса MATH ...
    101=101 можно ли тут использовать границу [gran] ?

    Например
    [MATH](gran1=101)or(gran1=102)[/MATH]

    очень надо привязаться именно к значению границы парсинга
     
  9. Root

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Можно, ничего не мешает попробовать.
     
    cyoshi нравится это.
  10. trans5

    trans5 Member Пользователи

    Регистрация:
    26 сен 2017
    Сообщения:
    66
    Город:
    екаеринбург
    Здравствуйте, подскажите можно ли внутри функции IF использовать переменные,
    например [IF2][VAR:name1][TEXTEQUAL][THEN][ELSE]<CD_GRAN_4!>[/IF2]

    у меня в логе результат выдает:
    условие: [VAR:name1][TEXTEQUAL]
    результат: <CD_GRAN_4!>

    т.е. функция IF сравнивает не значение присвоенное переменной а текст [VAR:name1]
     
  11. Root

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    14.818
    Город:
    Барнаул
    Ссылки недоступны для гостей
     

Поделиться этой страницей