Показать сообщение отдельно
Старый 27.01.2016, 09:30   #8  
Ruff is offline
Ruff
Дмитрий Ерин
Аватар для Ruff
1C
 
475 / 396 (14) ++++++
Регистрация: 18.09.2003
Адрес: Тула
Цитата:
Сообщение от mazzy Посмотреть сообщение
c 54 минуты лекции идет генерация HTML в коде
Нууу... это ж котлин, там действительно всё красиво
Но имеем то, что имеем (Х++)...

Цитата:
Сообщение от mazzy Посмотреть сообщение
режет глаз сложение строк.
Про конкатенацию почему-то ожидал вопроса)
Мне тоже режет. Хотя какое-нибудь "((%1.%4==%2.%5)||(%2.%6!=%3.%5))" режет не меньше), но холиварить не стану - я тоже против длинных сложений.
В моем случае перевесил критерий переносимости кода (Java -> X++ -> etc.). Речь ведь о прототипе.

Цитата:
Сообщение от mazzy Посмотреть сообщение
не геморройтесь с текстовым видом, создайте нормальные объекты с подобъектами, похожие на аксаптовские семейства классов Query* и Dict*.
с объектами работать из кода на порядки проще!
и только в конце генерите строку.
Цитата:
Сообщение от mazzy Посмотреть сообщение
генерировать запрос каждый раз - неудобно.
как правило, нужны некие темплейты
Шаблоны - это конечно нужно и удобно.
Но тут я вижу немного другое назначение - улучшить читабельность кода, когда все-таки (так сложились звезды) запрос конструируется программно, и потом может подвергаться доработкам. При этом не важно, как он формируется и хранится внутри - текстом или объектами (в примере ниже - на выходе получаем QueryRun).

Цитата:
Сообщение от Logger Посмотреть сообщение
генерить аксаптовский Query ?
Вот, для затравки, первые наброски:
X++:
    queryRun = SimpleQueryBuilder::newQuery().	// здесь параметром вполне может выступить querystr(MyAOTquery)
        select  (tablenum(CustTable)).
                groupBy     (fieldnum(CustTable,        AccountNum)).
                groupBy     (fieldnum(CustTable,        PartyId)).
            join (tablenum(CustTransOpen)). 
                relations   (true).
                sumField    (fieldnum(CustTransOpen,    AmountCur)).
        parent().
            join (tablenum(CustGroup)).
                relations   (true).
                mode        (JoinMode::ExistsJoin).
                range       (fieldnum(CustGroup, PaymIdType),  paymIdType).

        queryRun();

    while (queryRun.next())
    { ... }
Пример - рабочий, запрос - просто иллюстрация, код SQB пока не публикую, ибо сыр и мало что умеет.

Удобно ли? Или те же буквы, только в профиль?)
За это сообщение автора поблагодарили: mazzy (2).