18.02.2015, 12:36 | #1 |
Участник
|
Обращение к ячейке грид
Вопрос как обратится к ячейке грид чтобы занести туда данные и чтобы получит из неё данные. Как понимаю ячейка представляют собой stringedit. Чтобы получить есть чтото типа: StringEdit.valueStr(). чтобы занести есть чтото типа:
FormStringControl ctrl; ; ctrl = element.control(Control::controlName); ctrl.text("value"); Но не понимаю как получить данные именно из ячейке находящейся на выбранной строке? Через свойства наверно можно получить номер строки но куда потом это число пихать не пойму. Помогите кому не сложно. |
|
18.02.2015, 13:22 | #2 |
Участник
|
Не надо манипулировать ячейками. Если ячейка грида привязана к полю таблицы, изменяйте поле таблицы, если не привязана, используйте edit-метод.
|
|
18.02.2015, 13:31 | #3 |
Участник
|
Добрый день!
Почему работаете именно контролами, а не с табличными данными? Перекрыть метод Active на DataSource: X++: FormDataObject FormDataObject; FormDataObject = Table_ds.object( fieldNum( Table, Field ) ); FormDataObject.getValue(); // Текущее значение FormDataObject.setValue( 'text'); // Новое значение |
|
18.02.2015, 14:04 | #4 |
Мрачный тип
|
Товарищ ♂uatr, объекты FormDataObject кошернее использовать для манипуляций с доступом/видимостью полей источника данных и привязанных к ним контролов, а не для установки значений полей - для этого есть табличная переменная, присобаченная к источнику данных .
__________________
Мы летаем, кружимся, нагоняем ужасы ... |
|
18.02.2015, 15:29 | #5 |
Участник
|
а что за переменная и где её взять или посмотреть)
|
|
18.02.2015, 16:38 | #6 |
Участник
|
|
|
18.02.2015, 20:09 | #7 |
Дмитрий Ерин
|
Using Variables with Forms
А лучше не спеша прочитайте целиком разделы Forms и Form Data Sources (см. выше по дереву оглавления). |
|
19.02.2015, 15:52 | #8 |
Участник
|
Я конечно сильно извиняюсь, но я дуб дубом в аксапте знакю делфи и немного си... Перекрытие методов для меня неособо понятно что и как...к тому же метод уже перекрыт и там чето прописано...
Конкретно в моем случае я сделал кнопку которая отправляет в Search скан копию документа и возвращает мне его айдишник который надо сразу же поместить в ячейку последнего столбца строки которая была выбрана перед нажатием кнопки соответственно...Как с активным табличным курсором работать наверное разберусь как занести данные выше написали... А как вызвать мне этот перекрытый метод через кнопку или в методе прописать условие срабатывания если была нажата кнопка не имею даже представления, и чтобы то что там прописано уже не трогать?)) |
|
19.02.2015, 16:04 | #9 |
северный Будда
|
мне кажется, что вам лучше начать с прочтения вот этого - книга Разработка бизнес-приложений в Microsoft Business Solutions - Axapta версии 3.0
__________________
С уважением, Вячеслав |
|
19.02.2015, 16:25 | #10 |
Участник
|
|
|
20.02.2015, 13:07 | #11 |
Участник
|
Возможно я не понимаю слова перекрыть метод, код что прописано в методе active у дата сорс:
X++: public int active() { int ret; ret = super(); if (ret) { element.setButtonAccess(); // if (element.) // element.w(); } this.object(fieldNum(RContractTable,CreditMax)).allowEdit(RContractTable.RContractStatus != RContractStatus::Closed); this.object(fieldnum(RContractTable,SalesInvoicePostingType)).allowEdit(rContractTable.rContractPartnerType == RContractPartnerType::Cust); // if (!RContractTable.BankGroupId) BankAccount_AccountNum.allowEdit(false); // else BankAccount_AccountNum.allowEdit(true); return ret; } В кликед кнопки прописан текст программы который по выполнению выдает мне 6-ти значное число которое теперь надо занести в таблицу. |
|
20.02.2015, 13:27 | #12 |
Участник
|
Цитата:
Сообщение от Sy4a
Я конечно сильно извиняюсь, но я дуб дубом в аксапте знакю делфи и немного си... я сделал кнопку которая отправляет в Search скан копию документа и возвращает мне его айдишник который надо сразу же поместить в ячейку последнего столбца строки которая была выбрана перед нажатием кнопки соответственно...
|
|
20.02.2015, 14:28 | #13 |
Участник
|
Цитата:
Ок. Пусть пока так. Изменить значение можно хоть прямо отсюда, никакие события ловить/перекрывать не нужно.Нужно только понять что будем менять. Это ли вам нужно? Менять нужно скорее всего значение в базе данных в нужной таблице в нужной строке в нужном поле. А не просто значение в ячейке грида. Предполагаю вы хотите чтобы ваши изменения сохранились после закрытия формы и были доступны другим пользователям системы? Иначе это совершенно другая задача. Поэтому переформулируйте свой вопрос. Что касается второй части вопроса о получении данных с активной строки, вам правильно указали в сторону датасурса. |
|
20.02.2015, 16:19 | #14 |
Участник
|
на данный момент люди в ячейку грида ручками записывают эти 6 цифр. видимо стоит автоапдейт или типо и данные сразу заносятся в базу где храняться. я просто думал что проще к ячейке обратится как в делфи или си. но если ни фига не проще то надо как то напрямую конектится
|
|
20.02.2015, 18:10 | #15 |
Участник
|
Цитата:
"конектится" - сильно сказано. Операторы для доступ к таблицам БД непосредственно встроены в язык X++. |
|
20.02.2015, 18:47 | #16 |
Участник
|
Цитата:
Реально же, Вам в коде надо всего-лишь написать X++: // Записать значение в поле текущей (выбранной пользователем) записи таблицы rContractTable.myField = 123456; // Сохранить сделанные изменения rContractTable.update(); // Обновить картинку на форме rContractTable_ds.reread(); Хотя, разумеется, вместо MyField надо подставить имя нужного поля таблицы.
__________________
- Может, я как-то неправильно живу?! - Отчего же? Правильно. Только зря... |
|
|
За это сообщение автора поблагодарили: Sy4a (1). |
24.02.2015, 12:50 | #17 |
Участник
|
Спасибо все понятно сразу стало и всё работает.
|
|
|
Похожие темы | ||||
Тема | Ответов | |||
Два датасоурса и грид | 11 | |||
Тормозит грид | 5 | |||
Обращение к ячейке по номеру столбца | 2 | |||
Результат зароса в грид | 2 | |||
Добавление столбца в грид на PurchQuickQuote | 1 |
|