02.04.2013, 13:32 | #21 |
Участник
|
Цитата:
Сообщение от Ace of Database
Увеличьте значение макроса currentVersion - присвойте следующую версию. А то у вас отображается старая версия Query, сохраненная методом pack до того, как вы добавили Range.
И по тому полю, что стоит у табьлицы индексом, добавьте Range и сделайте его Hidden. Ну а вообще да, лучше создать Query в АОТ, чтобы наглядно можно было его редактировать. Значение увеличил - появилось нужное мне поле - сотрудник(EmplTaBle.EmplId). Цитата:
Сообщение от Ace of Database
И по тому полю, что стоит у табьлицы индексом, добавьте Range и сделайте его Hidden.
X++: qbr = qbds.addRange(fieldnum(VendSpListJour, EmplId)); |
|
02.04.2013, 13:36 | #22 |
Участник
|
Добавить две строки
X++: qbr = SysQuery::findOrCreateRange(qbds, fieldnum(VendSpListJour, EmplId));
qbr.status(RangeStatus::Hidden); |
|
02.04.2013, 13:39 | #23 |
Участник
|
Добавил эти две строчки - пропало моё поле и снова появилось то, которое стоит индексом на таблице.
Значение в currentversion пробовал увеличивать - не помогло. |
|
02.04.2013, 13:42 | #24 |
Участник
|
А у вас что, поле EmplId есть в двух таблицах? Тогда без разницы, по какой таблице идет фильтрация. Попробуйте поиграться с конструктором Query в АОТ, как я написал.
|
|
02.04.2013, 13:44 | #25 |
Участник
|
Цитата:
Хорошо, спасибо, буду делать query. Вот если оставить так X++: qbr = qbds.addRange(fieldnum(VendSpListJour EmplId)); Буду искать как их делать, чтобы был нужный запрос. Спасибо вам ещё раз. |
|
02.04.2013, 13:45 | #26 |
Участник
|
А какое поле стоит индексом в таблице? Поведение Query такое, что когда вы прячете в Range одно индексное поле, Аксапта начинает отображать поле из следующего индекса. Надо по следующему полю тоже Range добавлять и делать его hidden. И так до тех пор, пока все индексные поля не кончатся, и Аксапта не перестанет их добавлять на форму.
Последний раз редактировалось Ace of Database; 02.04.2013 в 13:47. |
|
02.04.2013, 13:47 | #27 |
Участник
|
|
|
02.04.2013, 13:49 | #28 |
Участник
|
По этому полю тоже сделайте Range со статусом Hidden. И так до тех пор, пока все индексные поля не кончатся, и Аксапта не перестанет их добавлять на форму
|
|
02.04.2013, 13:52 | #29 |
Участник
|
|
|
02.04.2013, 13:53 | #30 |
Участник
|
Сейчас код выглядит так
X++: qbds = query.addDataSource(tablenum(VendSpListJour)); // qbr = qbds.addRange(fieldnum(VendSpListJour, EmplId)); qbr = SysQuery::findOrCreateRange(qbds, fieldnum(VendSpListJour, InternalSp)); qbr.status(RangeStatus::Hidden); qbr = SysQuery::findOrCreateRange(qbds, fieldnum(VendSpListJour, EmplId)); //qbr.status(RangeStatus::Hidden); |
|
02.04.2013, 13:59 | #31 |
Участник
|
Попробуйте добавить строку
X++: qbr.label("Сотрудник"); |
|
02.04.2013, 14:00 | #32 |
Участник
|
|
|
02.04.2013, 14:08 | #33 |
Участник
|
У себя попробовал в дизайнере Query метку у Range поменять - тоже не работает. Значит надо либо так и оставить, либо метку поля VendSpListJour.EmplId в таблице поменять.
|
|
02.04.2013, 14:12 | #34 |
Участник
|
Цитата:
Так оставить точно не получиться, консультант по головке не погладит. Так метка ведь верно выводится, если её изменить, измениться только названия поля, а название самое Group останется таким же. Я вот про это А то может я неверно выразился |
|
02.04.2013, 14:47 | #35 |
Участник
|
Я так понял, что эта метка - название таблицы, которая добавлена в источник.
Хотел добавить в источники ещё и таблицу EmplTable, чтобы отображалось нужное название, но выдаёт ошибку "недопустимый диапазон"( X++: qbds = query.addDataSource(tablenum(EmplTable)); qbds = query.addDataSource(tablenum(VendSpListJour)); qbr = SysQuery::findOrCreateRange(qbds, fieldnum(EmplTable, EmplId)); qbr.status(RangeStatus::Hidden); qbr = SysQuery::findOrCreateRange(qbds, fieldnum(EmplTable,AltNum)); qbr.status(RangeStatus::Hidden); qbr = SysQuery::findOrCreateRange(qbds, fieldnum(EmplTable, DEL_Alias)); qbr.status(RangeStatus::Hidden); qbr = SysQuery::findOrCreateRange(qbds, fieldnum(EmplTable, PartyId)); qbr.status(RangeStatus::Hidden); qbr = qbds.addRange(fieldnum(VendSpListJour, EmplId)); queryRun = new QueryRun(query); |
|
02.04.2013, 14:48 | #36 |
Участник
|
В этом случае могу предложить только хакерский метод. Запустите ваш класс. В открывшейся форме нажмите правой кнопкой мыши - настройки. Найдите группу, у которой надпись "Спецификация к договору". Запомните ее английское наименование - должно быть что-то наподобие Grp_5.
В методе dialog вашего класса после вызова super напишите код X++: dialog.form().design().control("Grp_5").userPromptText("Сотрудник"); |
|
02.04.2013, 14:50 | #37 |
Участник
|
Цитата:
Сообщение от Ace of Database
В этом случае могу предложить только хакерский метод. Запустите ваш класс. В открывшейся форме нажмите правой кнопкой мыши - настройки. Найдите группу, у которой надпись "Спецификация к договору". Запомните ее английское наименование - должно быть что-то наподобие Grp_5.
В методе dialog вашего класса после вызова super напишите код X++: dialog.form().design().control("Grp_5").userPromptText("Сотрудник"); |
|
02.04.2013, 14:50 | #38 |
Участник
|
перепишите ваш код так:
X++: qbds = query.addDataSource(tablenum(EmplTable)); qbr = SysQuery::findOrCreateRange(qbds, fieldnum(EmplTable, EmplId)); qbr.status(RangeStatus::Hidden); qbr = SysQuery::findOrCreateRange(qbds, fieldnum(EmplTable,AltNum)); qbr.status(RangeStatus::Hidden); qbr = SysQuery::findOrCreateRange(qbds, fieldnum(EmplTable, DEL_Alias)); qbr.status(RangeStatus::Hidden); qbr = SysQuery::findOrCreateRange(qbds, fieldnum(EmplTable, PartyId)); qbr.status(RangeStatus::Hidden); qbds = qbds.addDataSource(tablenum(VendSpListJour)); qbr = qbds.addRange(fieldnum(VendSpListJour, EmplId)); |
|
02.04.2013, 14:53 | #39 |
Участник
|
это позволит избежать хакерские методы
|
|
02.04.2013, 14:59 | #40 |
Участник
|
Нет, вот так. Надо добиться того, чтобы в фильтрацию попало поле EmplTable.EmplId вместо поля VendSpListJour.EmplId. Чтобы у вас на группе полей вылезла метка таблицы EmplTable вместо таблицы VendSpListJour
X++: qbds = query.addDataSource(tablenum(EmplTable)); qbr = SysQuery::findOrCreateRange(qbds, fieldnum(EmplTable, EmplId)); qbr = SysQuery::findOrCreateRange(qbds, fieldnum(EmplTable,AltNum)); qbr.status(RangeStatus::Hidden); qbr = SysQuery::findOrCreateRange(qbds, fieldnum(EmplTable, DEL_Alias)); qbr.status(RangeStatus::Hidden); qbr = SysQuery::findOrCreateRange(qbds, fieldnum(EmplTable, PartyId)); qbr.status(RangeStatus::Hidden); qbds = qbds.addDataSource(tablenum(VendSpListJour)); |
|
|
За это сообщение автора поблагодарили: user_ax (1). |
Теги |
runbasereport, диалог, динамическая форма, периодическая операция, программно |
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|