AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 18.02.2015, 12:36   #1  
Sy4a is offline
Sy4a
Участник
 
33 / 12 (1) ++
Регистрация: 17.09.2014
Обращение к ячейке грид
Вопрос как обратится к ячейке грид чтобы занести туда данные и чтобы получит из неё данные. Как понимаю ячейка представляют собой stringedit. Чтобы получить есть чтото типа: StringEdit.valueStr(). чтобы занести есть чтото типа:
FormStringControl ctrl;
;
ctrl = element.control(Control::controlName);
ctrl.text("value");
Но не понимаю как получить данные именно из ячейке находящейся на выбранной строке? Через свойства наверно можно получить номер строки но куда потом это число пихать не пойму. Помогите кому не сложно.
Старый 18.02.2015, 13:22   #2  
Stitch_MS is offline
Stitch_MS
Участник
Аватар для Stitch_MS
Соотечественники
 
396 / 478 (16) +++++++
Регистрация: 27.02.2006
Адрес: Дания
Не надо манипулировать ячейками. Если ячейка грида привязана к полю таблицы, изменяйте поле таблицы, если не привязана, используйте edit-метод.
Старый 18.02.2015, 13:31   #3  
Товарищ ♂uatr is offline
Товарищ ♂uatr
Участник
Аватар для Товарищ ♂uatr
MCBMSS
 
265 / 808 (27) +++++++
Регистрация: 23.10.2012
Добрый день!
Почему работаете именно контролами, а не с табличными данными?
Перекрыть метод Active на DataSource:
X++:
FormDataObject FormDataObject;

FormDataObject = Table_ds.object( fieldNum( Table, Field ) );
FormDataObject.getValue(); // Текущее значение
FormDataObject.setValue( 'text'); // Новое значение
Старый 18.02.2015, 14:04   #4  
TasmanianDevil is offline
TasmanianDevil
Мрачный тип
Аватар для TasmanianDevil
Злыдни
 
885 / 389 (14) ++++++
Регистрация: 24.01.2005
Адрес: Томск
Товарищ ♂uatr, объекты FormDataObject кошернее использовать для манипуляций с доступом/видимостью полей источника данных и привязанных к ним контролов, а не для установки значений полей - для этого есть табличная переменная, присобаченная к источнику данных .
__________________
Мы летаем, кружимся, нагоняем ужасы ...
Старый 18.02.2015, 15:29   #5  
Sy4a is offline
Sy4a
Участник
 
33 / 12 (1) ++
Регистрация: 17.09.2014
а что за переменная и где её взять или посмотреть)
Старый 18.02.2015, 16:38   #6  
Товарищ ♂uatr is offline
Товарищ ♂uatr
Участник
Аватар для Товарищ ♂uatr
MCBMSS
 
265 / 808 (27) +++++++
Регистрация: 23.10.2012
Цитата:
Сообщение от Sy4a Посмотреть сообщение
а что за переменная и где её взять или посмотреть)
Перекройте метод Active в DataSource, в нем работайте с активным табличным курсором.
Старый 18.02.2015, 20:09   #7  
Ruff is offline
Ruff
Дмитрий Ерин
Аватар для Ruff
1C
 
475 / 396 (14) ++++++
Регистрация: 18.09.2003
Адрес: Тула
Цитата:
Сообщение от Sy4a Посмотреть сообщение
а что за переменная и где её взять или посмотреть)
Using Variables with Forms
А лучше не спеша прочитайте целиком разделы Forms и Form Data Sources (см. выше по дереву оглавления).
Старый 19.02.2015, 15:52   #8  
Sy4a is offline
Sy4a
Участник
 
33 / 12 (1) ++
Регистрация: 17.09.2014
Я конечно сильно извиняюсь, но я дуб дубом в аксапте знакю делфи и немного си... Перекрытие методов для меня неособо понятно что и как...к тому же метод уже перекрыт и там чето прописано...
Конкретно в моем случае я сделал кнопку которая отправляет в Search скан копию документа и возвращает мне его айдишник который надо сразу же поместить в ячейку последнего столбца строки которая была выбрана перед нажатием кнопки соответственно...Как с активным табличным курсором работать наверное разберусь как занести данные выше написали...
А как вызвать мне этот перекрытый метод через кнопку или в методе прописать условие срабатывания если была нажата кнопка не имею даже представления, и чтобы то что там прописано уже не трогать?))
Старый 19.02.2015, 16:04   #9  
pitersky is offline
pitersky
северный Будда
Аватар для pitersky
Ex AND Project
Соотечественники
 
1,486 / 408 (16) +++++++
Регистрация: 26.09.2007
Адрес: Солнечная система
мне кажется, что вам лучше начать с прочтения вот этого - книга Разработка бизнес-приложений в Microsoft Business Solutions - Axapta версии 3.0
__________________
С уважением,
Вячеслав
Старый 19.02.2015, 16:25   #10  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,427 / 1771 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Давайте поэтапно.
Цитата:
Сообщение от Sy4a Посмотреть сообщение
метод уже перекрыт и там чето прописано...
Что за метод?

Цитата:
Сообщение от Sy4a Посмотреть сообщение
я сделал кнопку которая ...
Вы сделали кнопку.
Кнопка работает?
Где вы разместили код, который работает при нажатии этой кнопки?
Старый 20.02.2015, 13:07   #11  
Sy4a is offline
Sy4a
Участник
 
33 / 12 (1) ++
Регистрация: 17.09.2014
Возможно я не понимаю слова перекрыть метод, код что прописано в методе 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;
}
Кнопка находится на той же форме в designs->design->group:button..->buttongroup:b..->button:addScan
В кликед кнопки прописан текст программы который по выполнению выдает мне 6-ти значное число которое теперь надо занести в таблицу.
Старый 20.02.2015, 13:27   #12  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5788 (200) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Цитата:
Сообщение от Sy4a Посмотреть сообщение
Я конечно сильно извиняюсь, но я дуб дубом в аксапте знакю делфи и немного си... я сделал кнопку которая отправляет в Search скан копию документа и возвращает мне его айдишник который надо сразу же поместить в ячейку последнего столбца строки которая была выбрана перед нажатием кнопки соответственно...
Вот тут есть ссылки на общедоступные книги по Аксапте, в данном случае рекомендую Inside Dynamics AX 2009, там в 5-й главе рассказывается про кастомизацию форм, где какие методы есть и зачем они нужны, также приводятся примеры.
Старый 20.02.2015, 14:28   #13  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,427 / 1771 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от Sy4a Посмотреть сообщение
Возможно я не понимаю слова перекрыть метод, код что прописано в методе active у дата сорс...
Понял. Это вам чего-то лишнего насоветовали. Забудем про этот active. Для вашей задачи он не нужен.

Цитата:
Сообщение от Sy4a Посмотреть сообщение
В кликед кнопки прописан текст программы...
Ок. Пусть пока так. Изменить значение можно хоть прямо отсюда, никакие события ловить/перекрывать не нужно.Нужно только понять что будем менять.
Цитата:
Сообщение от Sy4a Посмотреть сообщение
Вопрос как обратится к ячейке грид чтобы занести туда данные
Это ли вам нужно? Менять нужно скорее всего значение в базе данных в нужной таблице в нужной строке в нужном поле. А не просто значение в ячейке грида. Предполагаю вы хотите чтобы ваши изменения сохранились после закрытия формы и были доступны другим пользователям системы? Иначе это совершенно другая задача. Поэтому переформулируйте свой вопрос.

Что касается второй части вопроса о получении данных с активной строки, вам правильно указали в сторону датасурса.
Старый 20.02.2015, 16:19   #14  
Sy4a is offline
Sy4a
Участник
 
33 / 12 (1) ++
Регистрация: 17.09.2014
на данный момент люди в ячейку грида ручками записывают эти 6 цифр. видимо стоит автоапдейт или типо и данные сразу заносятся в базу где храняться. я просто думал что проще к ячейке обратится как в делфи или си. но если ни фига не проще то надо как то напрямую конектится
Старый 20.02.2015, 18:10   #15  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,427 / 1771 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от Sy4a Посмотреть сообщение
видимо стоит автоапдейт или типо и данные сразу заносятся в базу где храняться
это стандартное поведение по умолчанию для аксапты. В интерфейсные (GUI) дела в аксапте программист вообще редко когда влезает. Накидал мышкой в узел Design объектов, настроил свойства и вуаля - все работает. Чтобы визуальный редактор открывать или методы у контролов перекрывать - это вообще редкость.
Цитата:
Сообщение от Sy4a Посмотреть сообщение
просто думал что проще к ячейке обратится как в делфи или си. но если ни фига не проще то надо как то напрямую конектится
"конектится" - сильно сказано. Операторы для доступ к таблицам БД непосредственно встроены в язык X++.
Старый 20.02.2015, 18:47   #16  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,651 / 1158 (42) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Цитата:
Сообщение от Sy4a Посмотреть сообщение
я просто думал что проще к ячейке обратится как в делфи или си. но если ни фига не проще то надо как то напрямую конектится
Придется ломать старые привычки Рассматривайте Grid как "окно" через которые Вы смотрите на данные. Разумеется, можно "нарисовать" некие циферки "на стекле". Но, понятно, что само по себе это достаточно сложно и бессмысленно.

Реально же, Вам в коде надо всего-лишь написать

X++:
// Записать значение в поле текущей (выбранной пользователем) записи таблицы
rContractTable.myField = 123456;

// Сохранить сделанные изменения
rContractTable.update();

// Обновить картинку на форме
rContractTable_ds.reread();
При этом переменные rContractTable и rContractTable_ds уже определены в контексте текущей формы. Дополнительно определять их не надо.

Хотя, разумеется, вместо MyField надо подставить имя нужного поля таблицы.
__________________
- Может, я как-то неправильно живу?!
- Отчего же? Правильно. Только зря...
За это сообщение автора поблагодарили: Sy4a (1).
Старый 24.02.2015, 12:50   #17  
Sy4a is offline
Sy4a
Участник
 
33 / 12 (1) ++
Регистрация: 17.09.2014
Спасибо все понятно сразу стало и всё работает.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Два датасоурса и грид Russland DAX: Программирование 11 07.11.2011 13:00
Тормозит грид Geo DAX: Программирование 5 12.04.2011 23:38
Обращение к ячейке по номеру столбца KpecT DAX: Программирование 2 17.12.2007 09:14
Результат зароса в грид Manner DAX: Программирование 2 20.09.2005 16:20
Добавление столбца в грид на PurchQuickQuote Андре DAX: Программирование 1 15.04.2002 10:52
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 16:11.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.