|  23.09.2008, 16:41 | #1 | 
| Участник | Набор данных на лету 
			
			Можно ли создавать подобие темповой таблицы на лету? Мap не предлагать - нужно больше полей. Темповая таблица - простое решение, но в AOT её существовать не должно.
		 
				__________________ Axapta has seduced me deadly!   | 
|  | 
|  23.09.2008, 16:50 | #2 | 
| Участник | 
			
			а так? скока хочешь полей   Map m = new Map(types::Container, types::Container); 
				__________________ aLL woRk aNd nO JoY MAKes jAck a dULL Boy | 
|  | 
|  23.09.2008, 17:04 | #3 | 
| Участник | 
			
			Ха, отличная идея!)
		 
				__________________ Axapta has seduced me deadly!   | 
|  | 
|  23.09.2008, 17:12 | #4 | 
| Участник | 
			
			Возможно, стоит попробовать ADO конкретно ADO.RecordSet. На форуме я видел пример его использования. Если же у Вас 4-я версия, то обратите внимание на ADO.Net. Сам недавно ковырялся с ним и что-то даже получалось. 
				__________________ Функциональное тестирование сайтов | 
|  | 
|  23.09.2008, 17:23 | #5 | 
| Участник | Цитата:  только если вообще больше никакого выхода нет. Замучаешься потом разбираться в каком порядке элементы были упакованы в контейнер и при последующий модификациях возможны проблемы. Чем не подходит временная таблица? Если не известно заранее количество полей, то тогда другого выхода тоже не вижу. Если же есть логический предел для кол-ва полей - то создать временную таблицу на все поля, и затем Map m = new Map(ключ, Types::record), т.е. паковать в мап таблицу (record - ваша временная таблица). Так будет проще, нагляднее и удобнее для последующих модификаций, ИМХО. | 
|  | 
|  23.09.2008, 19:15 | #6 | 
| Участник | 
			
			Есть еще такой класс, как struct, который, по сути, является подобием таблицы, но его можно задавать динамически
		 | 
|  | |
| За это сообщение автора поблагодарили: HorrR (1). | |
|  24.09.2008, 12:35 | #7 | 
| Участник | 
			
			Как насчет System.Collections.ArrayList ?! К сожелению Ax 2009 не поддерживает  Generics, то есть  List<T> использовать не получииться (прийдется как в .Net 2.0 работать со структурами данних).  Ограничений почти ни каких :0), правда вроде как надо еще об CAS помнить new InteropPermission(InteropKind::ClrInterop)
		 
				__________________ Thx, Ievgenii Korovin| Dynamics Ax SCM| Microsoft Corp| http://blogs.msdn.com/DynamicsAxSCM/   | 
|  | |
| За это сообщение автора поблагодарили: HorrR (1). | |
|  24.09.2008, 13:02 | #8 | 
| MCTS | 
			
			Классы  X++: RecordSortedList RecordLinkList | 
|  | |
| За это сообщение автора поблагодарили: HorrR (1). | |
|  26.09.2008, 12:09 | #9 | 
| Участник | 
			
			CDR, дело в том, что конструкторы этих классов принимают TableID в качестве параметра, то есть использование ни чем не отличается в разрезе моей проблемы от установления таблицы темповой из кода и работы с ней. В любом случае таблица должна существовать в AOT, что меня не устраивает. Но всё-равно спасибо.
		 
				__________________ Axapta has seduced me deadly!   | 
|  | 
|  26.09.2008, 12:52 | #10 | 
| Moderator | 
			
			А не поделитесь секретом почему? Ведь можно один раз создать в АОТ временную таблицу на все такие последующие случаи жизни, с кучей полей разных примитивных типов - например, по сотне полей на тип (ну или меньше/больше): целые - с именами, допустим, i01..i99, реалы - r01..r99, даты - d01..d99, строки - s01..s99 (с длиной 255 символов). Получится такой временно-табличный "Excel", который можно потом и в хвост, и в гриву.
		 | 
|  | 
|  26.09.2008, 13:17 | #11 | 
| Administrator | 
			
			В 4-ке у ADO.RecordSet есть один минус. Его из-за InteropPermission можно создать только на клиенте (я бы только из-за этого - поставил в опциях аоса caslevel=disable - чтобы отключить все эти разрешения). В общем случае создать виртуальную таблицу без АОТ не получится (хотя формально - вам никто не запрещает создать ее в АОТ программно и также программно прибить ее оттуда после использования - но это уже извращение). Однако, в частном случае - можно взять любую таблицу из АОТ из уже имеющихся и приспособить под свои частные нужды. Для постояных таблиц - вызвать метод setTmp(). Т.о. получим любую из имеющихся таблиц - как временную. 
				__________________ Возможно сделать все. Вопрос времени | 
|  | 
|  26.09.2008, 13:42 | #12 | 
| Moderator | Цитата: Неприятностей там, на мой взгляд, две: 
 | 
|  | 
|  26.09.2008, 13:43 | #13 | 
| Ищущий знания... | Цитата: Всё таки на мой взгляд лучче создать одну универсальную таблицу в AOT и использовать её где угодно. 
				__________________ "Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с) С Уважением, Елизаров Артем | 
|  | 
|  26.09.2008, 13:47 | #14 | 
| Участник | |
|  | 
|  26.09.2008, 13:55 | #15 | 
| Moderator | 
			
			Как я понимаю, таблицу, которую я предложил выше, весьма запарно создавать в АОТ вручную. Поэтому выкладываю сгенерированный в Excel минимальный проектик для  создания такой таблицы. У себя я уже создал, может, заодно и сам начну наконец использовать    P.S. Таблица, которая будет создана, имеет название "JustLikeExcel". Не страшно, что в окне импорта, она отображается как "Yes" - эта форма просто читает значение из 10-й строки файла проекта (почему-то). С моей стороны - всё чисто, не волнуйтесь! (DAX 3.0, SP4). | 
|  | 
|  26.09.2008, 15:21 | #16 | 
| Участник | Цитата:   
				__________________ Axapta v.3.0 sp5 kr2 | 
|  | |
| За это сообщение автора поблагодарили: Gustav (1). | |
| Теги | 
| ax3.0, ax4.0 | 
|  | 
|  Похожие темы | ||||
| Тема | Ответов | |||
| Невозможно выполнить команду языка определения данных в () | 8 | |||
| Стандартный импорт данных. Обновление | 0 | |||
| Распределенная база данных на основе View | 27 | |||
| Введение в Аксапту | 0 | |||
| Опции темы | Поиск в этой теме | 
| Опции просмотра | |
| 
 |