|
![]() |
#1 |
Участник
|
Цитата:
Сообщение от belugin
![]() X++: Query q=new Query(); //while select sum(SalesQty) from SPLJLH QueryBuildDataSource ds = q.addDataSource(tableNum(SPLJLH)); ; //group by ModifDate ds.OrderMode(OrderMode::GroupBy); ds.addSortField(fieldNum(SPLJLH, ModifDate)); ds.addSelectionField(fieldNum(SPLJLH, SalesQty), SelectionField::Sum); //where SPLJLH.EmplId == it.value() ds.addRange(fieldNum(SPLJLH, EmplID)).value(queryValue(it.value())); Он правилен, но чертовски трудномодифицируемый и трудноапгрейдируемый. Создайте Query в AOT с датасорсом, группировками и прочими параметрами. Можно мышкой и drag'n'drop'ом В коде напишите две строчки как написал Delfins. X++: Query q=new Query(querystr(mySuperEmplQuery)); // 2 строчки от Delfins range = sysquery::findorcreaterange(q,...); range.value(it.value()); X++: sysquery::findorcreaterange(new Query(querystr(mySuperEmplQuery)),...).value(it.value()); // Max, давай советовать минимальное программирование? PS Кроме того, подход с созданием Query в AOT позволяет разделить задачу оптимизации производительности между кодером и администратором. Администратор может исправить Query не затрагивая кода. |
|
|
За это сообщение автора поблагодарили: belugin (14). |
![]() |
#2 |
Участник
|
Интересно, пробовал ли кто-нибудь такой подход как основной - нет ли каких-нибудь подводных камней при массовом использованиии?
|
|
![]() |
#3 |
Участник
|
Цитата:
Запросы в русской функциональности кодируются таким хитровывернутым способом, что просто слов нет. |
|
![]() |
#4 |
Участник
|
Цитата:
Сообщение от mazzy
![]() Категорически против такого варианта - нахлебался в русской функциональности.
Он правилен, но чертовски трудномодифицируемый и трудноапгрейдируемый. Создайте Query в AOT с датасорсом, группировками и прочими параметрами. Можно мышкой и drag'n'drop'ом В коде напишите две строчки как написал Delfins. X++: Query q=new Query(querystr(mySuperEmplQuery)); // 2 строчки от Delfins range = sysquery::findorcreaterange(q,...); range.value(it.value()); |
|