Цитата:
Сообщение от
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 пока не публикую, ибо сыр и мало что умеет.
Удобно ли? Или те же буквы, только в профиль?)