27.04.2010, 20:50 | #1 |
Участник
|
программно сохранить пользовательский запрос
пытаюсь создать и сохранить программно пользовательский запрос по именем.
я так понимаю нужно сделать ranges вызвать queryRun.pack() формы? пытаюсь создать и сохранить программно пользовательский запрос поД именем.
__________________
The Variable men power. Последний раз редактировалось Varmen; 27.04.2010 в 21:14. |
|
27.04.2010, 21:02 | #2 |
Участник
|
а можно еще раз повторить задачу?
что значит "по именем"? |
|
27.04.2010, 21:10 | #3 |
Участник
|
любому фильтру пользователь задать имя и сохранить для последующего использования.
Правкая кнопка на форме, "сохранить фильтр как"
__________________
The Variable men power. |
|
27.04.2010, 21:12 | #4 |
Участник
|
задача создать определенное количество сохраненных фильтров.
Причем фильтры сами делаются тоже программно. Нашел SysQuery.packRangeandSortOrder...
__________________
The Variable men power. Последний раз редактировалось Varmen; 27.04.2010 в 21:27. |
|
28.04.2010, 00:12 | #5 |
Участник
|
невыходит каменный цветок.
X++: args = new args(); args.name("InventTable"); args.caller(this); f = classfactory.formRunClass(args); f.init(); f.run(); ds= f.dataSource(); qr =ds.queryRun(); qr.query().dataSourceNo(1).addRange(fieldnum( InventTable, ItemId)).value('6*'); qr.query().name("MMM"); designName=ds.name(); name="F:"+ ds.name(); classFactory.lastValuePut( sysquery::packRangeAndSortorder(qr.query()), curext(), curuserid(), UtilElementType::UserSetupQuery, name, designName ); Что различно: 1. Нет имени, собственно непонятно как и где его сформировать. 2. Значение в поле Value, различается тем что мое значение содрежит только часть "хвост", того что сохраняет система. Т.е я сохраняю query, а система что то двумя уровнями выше.
__________________
The Variable men power. Последний раз редактировалось Varmen; 28.04.2010 в 00:55. |
|
28.04.2010, 00:21 | #6 |
Участник
|
Classes\SysSetupFormRun\task
X++: public int task(int _p1) { #task FormDataSource formDataSource; int ret; if (_p1 == #taskFilter) { formDataSource = this.objectSet(); if (formDataSource && formDataSource.queryRun() && formDataSource.queryRun().args() && !formDataSource.queryRun().args().caller()) { formDataSource.queryRun().args().caller(this); } } ret = super(_p1); return ret; }
__________________
The Variable men power. |
|
28.04.2010, 00:23 | #7 |
Участник
|
Цитата:
любая форма Ctrl+F3 в правом верхнем углу кнопка Изменить \ Сохранить как |
|
28.04.2010, 00:32 | #8 |
Участник
|
меня он полностью устраивает, я его хочу только jobом программно создать, пару десятков фильтров с заданным именем и все.
__________________
The Variable men power. Последний раз редактировалось Varmen; 28.04.2010 в 00:37. |
|
28.04.2010, 00:35 | #9 |
Участник
|
Ага. про "ручное сохранение" известно. что радует.
чувствую себя тормозом. какая задача то стоит? Цитата:
любому фильтру пользователь задать имя и сохранить для последующего использования. Правкая кнопка на форме, "сохранить фильтр как"
И почему эта задача не решается тривиальным описанием. 1. Пользователь задает любой фильтр 2. Нажимает Ctrl+F3 (или иконку на панели инструментов) 3. видит свой фильтр 4. нажимает на кнопку Изменить \ Сохранить как. Обязательно надо на правую кнопку мыши повесить? |
|
28.04.2010, 00:36 | #10 |
Участник
|
зачем?
|
|
28.04.2010, 00:40 | #11 |
Участник
|
Цитата:
дать нескольким пользователям предопределенные фильтры в некоторых формах? дык, эта задача не так решается: заходите под своим именем. настраиваете фильтры в форме (без программирования) а потом job'иком копируете свою настройку другим где-то на форуме был этот Job'ик копирования любых настроек из sysLastValue. |
|
28.04.2010, 00:48 | #12 |
Участник
|
Хотелось бы узнать можно ли сделать это тем путем который я избрал?
По поводу копирования: Ведь раздать фильтры это пол беды. Их нужно сделать, аккуратно правильно без ошибок. Переносить по разным апликациям, базам данных. Куда легче запустить созданный джобик, который одним махом сделает фильтры. В любом приложениии! При надобности и размножит по юзерам. Меня интересует смогу ли я в приниципе повторить то что делает система или нет? Может можно как нибудь pack()ами одолеть?
__________________
The Variable men power. Последний раз редактировалось Varmen; 28.04.2010 в 00:57. |
|
28.04.2010, 00:55 | #13 |
Участник
|
Цитата:
А отлаживать эти фильтры как будете? А если фильтры в будущем поменяются, то будете джобик переписывать? В том то и дело, что под своим логином удобно держать все такие фильтры. Нормальными штатными средствами их просматривать, править, отлаживать. А уж потом простейшим и неизменным джобиком копировать куда надо (в том числе и по другим "аппликациям"). А... ну, тоже неплохое желание. Отчего бы благородному дону не попробовать. |
|
28.04.2010, 01:03 | #14 |
Участник
|
Mazzy, Вы собственно уже помогли мне, нехотя напомнили про альтернативный путь сохранения фильтра в форме CTRL F3, так вот в там в форме спрятан метод SaveQuery !!! В отличии от контекстного меню код там открыт "бери нехочу".
Спасибо!!! Пошел смотреть его. )))
__________________
The Variable men power. |
|