Показать сообщение отдельно
Старый 13.02.2013, 13:58   #8  
kair84 is offline
kair84
Участник
 
47 / 58 (2) ++++
Регистрация: 15.04.2010
Адрес: Belarus
Можно использовать макроподстановки
Важно помнить что макроподстановка выполняется в момент компиляции, а не в момент исполнения !
X++:
#localmacro.select
#define.Arg(%1)
    Select tableName
        where ...
    #if.arg('exists') exists #endIF
    #if.arg('notexists') notexists #endIF
    join joinTableName
        where ...
#endmacro

static void Job(Args _args)
{       

    if (flag)
        #select('exists');
    else
        #select('notexists');

    while (tableName)
    {
    
        next tableName;
    }
}
Если один и тот же запрос используется разных местах, можно оформить "глобальный" макрос в дереве AOT,
Нпример: \Macros\InventDimJoin