14.07.2014, 09:50 | #1 |
Участник
|
Динамически заполнить таблицу
Народ, хЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕлп ми.
Создаю форму, на нее бросаю таблицу с 2 полями. Необходимо заполнить эту таблицу данными. Как это сделать? На Дельфях это было бы проще, но здесь печалька |
|
14.07.2014, 09:55 | #2 |
Участник
|
__________________
// no comments |
|
14.07.2014, 10:04 | #3 |
Участник
|
Разберемся с терминологией. Непосредственно на форму кидается не таблица, а элемент управления Grid. Таблица - это элемент базы данных, а не графического интерфейса. Также на форме создается узел DataSource, связанный с нужной таблицей из БД. В свойствах Grid прописывается имя DataSource.Если таблица временная, то возможно ещё понадобиться связать курсор источника данных с конкретным табличным буфером временной таблицы.
После этого заполните таблицу БД данными, и на форме Grid сам их отобразит. Простейший пример кода, для добавление записи в таблицу БД: X++: myTable myTable;
;
myTable.clear();
myTable.MyField = "myValue";
myTable.insert(); |
|
|
За это сообщение автора поблагодарили: yuriy_64 (1). |
14.07.2014, 12:06 | #4 |
Участник
|
Тут ещё возникает несколько вопросов:
1) Какими именно данными Вам её нужно заполнить? 2) В чём состоит задача в целом ? |
|
14.07.2014, 20:02 | #5 |
Участник
|
Полагаю, что Топикстартер научился перетаскивать таблицу в датасорс формы, а что делать дальше - еще не в курсе.
На основании такой догадки думаю, что все что ему нужно - это теперь создать грид, накидать туда пару своих полей из датасорса и выучить комбинации хоткеев: Ctrl+N, Alt+F9.
__________________
// no comments |
|
15.07.2014, 12:52 | #6 |
Участник
|
В том то и дело, что DataSource эту таблицу не видит.
|
|
15.07.2014, 13:13 | #7 |
Участник
|
|
|
15.07.2014, 13:29 | #8 |
Дмитрий Ерин
|
У грида свойство DataSource не забыли заполнить?
|
|
15.07.2014, 14:58 | #9 |
Участник
|
Либо она у вас не сихронизирована, либо что-то вы не туда пихаете.
Как обычно это делается: 1. В AOT > Data Dictionary > Tables создается таблица, Например MyTable. У нее создаются поля, а также желательно и группы полей. Сохраняем всё. 2. В AOT > Forms создается форма, например MyForm. Перетаскиваем мышкой таблицу MyTable в AOT > Forms > MyForm > Data Sources. Снова сохраняем всё. 3. На узле MyForm > Designs > Design вызываем контекстное меню: Создать > Grid 4. Из MyForm > Data Sources > MyTable > Fields также перетаскиваем мышкой нужные поля в грид. 5. Запускаем форму.
__________________
// no comments |
|
|
За это сообщение автора поблагодарили: yuriy_64 (1). |
16.07.2014, 05:16 | #10 |
Участник
|
Да, спасибо, это то я знаю. А вот если таблица создается динамически с разными полями?
|
|
16.07.2014, 07:27 | #11 |
Участник
|
Цитата:
суть сводится к конструкции: X++: myDynamicsTable.(myDynamicsFieldNum) = value; для начала читайте главы про рефлексию в книгах. для акс2012 Вышла книга Inside Microsoft Dynamics AX 2012 ================ yuriy_64, совет: если вы только начинаете работать с аксаптой, то начните разбираться в бизнес-логике (заказы на продажу, заказы на закупку, себестоимость, фин.проводки и т.п.). Системное программирование в Аксапте - очень красивая штука... Но вы жеж опять дельфи из нее сделаете... как и остальные, шедшие по этому пути... |
|
16.07.2014, 07:40 | #12 |
Участник
|
добавлю к тому, что сказал выше:
кроме того, вам неправильно (неполно) поставили задачу. заполнять 1 (ОДНУ) таблицу в аксапте - обычно совершенно бесполезное занятие. Поскольку нормальная реализация бизнес-задачи содержит как правило несколько реляционных таблиц со связями между собой. Поэтому чтобы применить полученные вами знания в реальной жизни, помимо заполнения одной таблицы, нужно будет делать кучу служебного функционала для нормального заполнения внешних ключей. А код для этого будет намного больше, чем код для простого заполнения одной таблицы =========================== Общая полная постановка задачи для всех аксапт звучит так: заполнить несколько связанных таблиц (связанных, как по recId, так и по естественному ключу). Не забыть про взаимосвязанные таблицы Полная постановка для аксапты 2012 звучит так: заполнить несколько связанных таблиц (связанных, как по recId, так и по естественному ключу) + несколько унаследованных таблиц. Последний раз редактировалось mazzy; 16.07.2014 в 07:43. |
|