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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 14.07.2014, 09:50   #1  
yuriy_64 is offline
yuriy_64
Участник
 
88 / 10 (1) +
Регистрация: 21.03.2014
? Динамически заполнить таблицу
Народ, хЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕлп ми.
Создаю форму, на нее бросаю таблицу с 2 полями. Необходимо заполнить эту таблицу данными. Как это сделать? На Дельфях это было бы проще, но здесь печалька
Старый 14.07.2014, 09:55   #2  
dech is offline
dech
Участник
Аватар для dech
Самостоятельные клиенты AX
 
642 / 347 (13) ++++++
Регистрация: 25.06.2009
Адрес: Омск
Записей в блоге: 3
Основы разработки Axapta шаг за шагом
__________________
// no comments
Старый 14.07.2014, 10:04   #3  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,429 / 1772 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Разберемся с терминологией. Непосредственно на форму кидается не таблица, а элемент управления Grid. Таблица - это элемент базы данных, а не графического интерфейса. Также на форме создается узел DataSource, связанный с нужной таблицей из БД. В свойствах Grid прописывается имя DataSource.Если таблица временная, то возможно ещё понадобиться связать курсор источника данных с конкретным табличным буфером временной таблицы.

После этого заполните таблицу БД данными, и на форме Grid сам их отобразит.

Простейший пример кода, для добавление записи в таблицу БД:
X++:
    myTable myTable;
    ;

    myTable.clear();
    myTable.MyField = "myValue";
    myTable.insert();
За это сообщение автора поблагодарили: yuriy_64 (1).
Старый 14.07.2014, 12:06   #4  
user_ax is offline
user_ax
Участник
Аватар для user_ax
 
599 / 39 (3) +++
Регистрация: 07.10.2012
Адрес: ZP
Тут ещё возникает несколько вопросов:
1) Какими именно данными Вам её нужно заполнить?
2) В чём состоит задача в целом ?
Старый 14.07.2014, 20:02   #5  
dech is offline
dech
Участник
Аватар для dech
Самостоятельные клиенты AX
 
642 / 347 (13) ++++++
Регистрация: 25.06.2009
Адрес: Омск
Записей в блоге: 3
Полагаю, что Топикстартер научился перетаскивать таблицу в датасорс формы, а что делать дальше - еще не в курсе.
На основании такой догадки думаю, что все что ему нужно - это теперь создать грид, накидать туда пару своих полей из датасорса и выучить комбинации хоткеев: Ctrl+N, Alt+F9.
__________________
// no comments
Старый 15.07.2014, 12:52   #6  
yuriy_64 is offline
yuriy_64
Участник
 
88 / 10 (1) +
Регистрация: 21.03.2014
В том то и дело, что DataSource эту таблицу не видит.
Старый 15.07.2014, 13:13   #7  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,429 / 1772 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от yuriy_64 Посмотреть сообщение
В том то и дело, что DataSource эту таблицу не видит.
Покажите скриншот
Старый 15.07.2014, 13:29   #8  
Ruff is offline
Ruff
Дмитрий Ерин
Аватар для Ruff
1C
 
475 / 396 (14) ++++++
Регистрация: 18.09.2003
Адрес: Тула
У грида свойство DataSource не забыли заполнить?
Старый 15.07.2014, 14:58   #9  
dech is offline
dech
Участник
Аватар для dech
Самостоятельные клиенты AX
 
642 / 347 (13) ++++++
Регистрация: 25.06.2009
Адрес: Омск
Записей в блоге: 3
Цитата:
Сообщение от yuriy_64 Посмотреть сообщение
В том то и дело, что DataSource эту таблицу не видит.
Либо она у вас не сихронизирована, либо что-то вы не туда пихаете.
Как обычно это делается:
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  
yuriy_64 is offline
yuriy_64
Участник
 
88 / 10 (1) +
Регистрация: 21.03.2014
Да, спасибо, это то я знаю. А вот если таблица создается динамически с разными полями?
Старый 16.07.2014, 07:27   #11  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от yuriy_64 Посмотреть сообщение
Да, спасибо, это то я знаю. А вот если таблица создается динамически с разными полями?
в аксапте 3.0 был генератор данных, который заполнял таблицы компании случайными данными. эта штука использовалась для нагрузочных тестов.

суть сводится к конструкции:
X++:
myDynamicsTable.(myDynamicsFieldNum) = value;
далее нужна куча служебного функционала для работы с таблицами через common-интерфейс, для работы с полями через SysDictField и их типами через функции работы с метаданными.

для начала читайте главы про рефлексию в книгах.
для акс2012 Вышла книга Inside Microsoft Dynamics AX 2012

================

yuriy_64, совет: если вы только начинаете работать с аксаптой, то начните разбираться в бизнес-логике (заказы на продажу, заказы на закупку, себестоимость, фин.проводки и т.п.). Системное программирование в Аксапте - очень красивая штука... Но вы жеж опять дельфи из нее сделаете... как и остальные, шедшие по этому пути...
Старый 16.07.2014, 07:40   #12  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от yuriy_64 Посмотреть сообщение
Необходимо заполнить эту таблицу данными.
добавлю к тому, что сказал выше:

кроме того, вам неправильно (неполно) поставили задачу.
заполнять 1 (ОДНУ) таблицу в аксапте - обычно совершенно бесполезное занятие. Поскольку нормальная реализация бизнес-задачи содержит как правило несколько реляционных таблиц со связями между собой.

Поэтому чтобы применить полученные вами знания в реальной жизни, помимо заполнения одной таблицы, нужно будет делать кучу служебного функционала для нормального заполнения внешних ключей. А код для этого будет намного больше, чем код для простого заполнения одной таблицы

===========================
Общая полная постановка задачи для всех аксапт звучит так:
заполнить несколько связанных таблиц (связанных, как по recId, так и по естественному ключу). Не забыть про взаимосвязанные таблицы

Полная постановка для аксапты 2012 звучит так:
заполнить несколько связанных таблиц (связанных, как по recId, так и по естественному ключу) + несколько унаследованных таблиц.

Последний раз редактировалось mazzy; 16.07.2014 в 07:43.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
создать и передать временную таблицу kitty DAX: Программирование 11 13.07.2006 14:40
Невозможно создать таблицу chel DAX: Программирование 0 21.04.2004 21:02
Как получить значение поля Datasource на динамически созданной форме? storer DAX: Программирование 2 14.11.2003 16:41
Как автоматически заполнить поле InventDimId в таблице PriceDiscTable при импорте? Mike12345 DAX: Функционал 6 06.08.2003 11:29
Русская локализация Axapta 3 ? SlavaK DAX: Администрирование 59 01.07.2003 22:38
Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

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