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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 28.11.2005, 11:55   #1  
6apcyk is offline
6apcyk
Участник
 
57 / 11 (1) +
Регистрация: 17.08.2005
Помогите советом
Посоветуйте, какой стандартный объект можно использовать для следующего:

Сейчас использую map но не нравится как приходится создавать ключ

1) Объект содержит ключ - формируется из значений полей таблицы выбранных в качестве ключевых (придумал пока только обычную конкатенацию строк с символами разделителями).

2) И данные по данному ключу (пока это только суммарные данные и хранятся в массиве)

3) Желательно чтобы можно было забирать ключ
4) И был поиск по ключу
Старый 28.11.2005, 12:27   #2  
DreamCreator is offline
DreamCreator
Moderator
Аватар для DreamCreator
Axapta Retail User
 
553 / 45 (3) +++
Регистрация: 04.11.2004
Адрес: Казань
Временная таблица.
Старый 28.11.2005, 12:50   #3  
6apcyk is offline
6apcyk
Участник
 
57 / 11 (1) +
Регистрация: 17.08.2005
я хотел бы чтобы объект создавался динамически, а таблицу бы пришлось создавать ручками =(
Старый 28.11.2005, 12:54   #4  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2479 (88) +++++++++
Регистрация: 20.08.2005
В качестве ключа можно использовать Hash
TextBuffer::strHashKey()
__________________
Axapta v.3.0 sp5 kr2
За это сообщение автора поблагодарили: demianimp (1).
Старый 28.11.2005, 12:54   #5  
Gad is offline
Gad
Участник
 
136 / 18 (1) ++
Регистрация: 21.05.2003
Адрес: Москва
наверное временная таблица, но если очень хочется то для ключа Map можно использовать тип Types::Container. Тогда отпадает необходимость формирования ключа с конкатенацией. А в контейнер набрасываете значения ключевых полей.
Старый 28.11.2005, 13:00   #6  
anf is offline
anf
Участник
 
25 / 10 (1) +
Регистрация: 25.11.2004
Адрес: Minsk
RecordSortedList вам поможет
Старый 28.11.2005, 13:03   #7  
Gad is offline
Gad
Участник
 
136 / 18 (1) ++
Регистрация: 21.05.2003
Адрес: Москва
И чем же он подойдет RecordSortedList? нужно хранить суммарные данные по ключу, а не записи какой - либо таблицы.
Старый 28.11.2005, 13:05   #8  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
в качестве ключа можно использовать rконтейнер
X++:
map.insert(['a', 'b', 'c'], 'value');
Старый 28.11.2005, 13:05   #9  
George Nordic is offline
George Nordic
Модератор
Аватар для George Nordic
Злыдни
 
4,479 / 1250 (50) ++++++++
Регистрация: 17.12.2003
Адрес: Moscow
Записей в блоге: 9
RecordSortedList - Это прообраз таблицы. Народ делал через контейнеры. Я не очень одобряю контейнеры. Я рекомендую Setы. Поищите в руководстве разработчика по слову listiterator. Возможно, поможет.

С Уважением,
Георгий
Старый 28.11.2005, 13:08   #10  
anf is offline
anf
Участник
 
25 / 10 (1) +
Регистрация: 25.11.2004
Адрес: Minsk
RecordSortedList позволяет накапливать значения полей по ключу
а вообще полезно читать help
Boolean ins(Common p1 [, Boolean updateIfExists = FALSE] )
Старый 28.11.2005, 13:32   #11  
6apcyk is offline
6apcyk
Участник
 
57 / 11 (1) +
Регистрация: 17.08.2005
Контейнеры не хочется использовать из-за долгого поиска по ним и размером памяти выделяемое на них, нет ли в Аксапте механизма хеширование отличного от TextBuffer::strHashKey(); ?
Старый 28.11.2005, 13:39   #12  
Gad is offline
Gad
Участник
 
136 / 18 (1) ++
Регистрация: 21.05.2003
Адрес: Москва
Цитата:
Сообщение от anf
RecordSortedList позволяет накапливать значения полей по ключу
а вообще полезно читать help
Boolean ins(Common p1 [, Boolean updateIfExists = FALSE] )
Если уж читать help, то целиком -
"Inserts a new record in the recordSortedList unless it is a duplicate in which case it will be discarded when the update flag is false(default) or replace the existing record(update flag true).

Syntax

Boolean ins(Common p1 [, Boolean updateIfExists = FALSE] )Arguments

Returns : true when the record was added or replaced, false when the record was discarded.
  • p1 : recordBuffer to be inserted
  • updateIfExists : a duplicate record is replaced when this is set to true
"

Ну и где тут накопление? по флагу updateIfExists, запись либо заменяется на вставляемую или нет. Ни о каком накоплении речь не идет. И вообще RSL - это некий буфер хранения записей, уникальных по комбинации ключевых полей. Так что RTFM уважаемый anf
Старый 28.11.2005, 13:45   #13  
Gad is offline
Gad
Участник
 
136 / 18 (1) ++
Регистрация: 21.05.2003
Адрес: Москва
Цитата:
Сообщение от George Nordic
Я не очень одобряю контейнеры. Я рекомендую Setы.
Георгий а при использовании в качестве ключа Map - Set. Тип ключа при создании мапа какой использовать Class или AnyType?
Старый 28.11.2005, 13:45   #14  
anf is offline
anf
Участник
 
25 / 10 (1) +
Регистрация: 25.11.2004
Адрес: Minsk
В RecordSortedList вам не обязательно вставлять точную копию записи из таблицы
точно соотвествовать должны только ключевые поля, а с сумовыми полями вы вправе делать все что необходимо (складывать, вычитать и тп). Пример делать не буду, думаю и так должно быть все понятно
Старый 28.11.2005, 14:31   #15  
6apcyk is offline
6apcyk
Участник
 
57 / 11 (1) +
Регистрация: 17.08.2005
Как из RecordSortedList забрать данные?
Старый 28.11.2005, 14:43   #16  
anf is offline
anf
Участник
 
25 / 10 (1) +
Регистрация: 25.11.2004
Адрес: Minsk
while (recordSortedList.next(Table))
{
}
Старый 28.11.2005, 15:04   #17  
6apcyk is offline
6apcyk
Участник
 
57 / 11 (1) +
Регистрация: 17.08.2005
не знаю как долго будет исполнятся поиск, но помоему то что нужно
Всем Спасибо!
Старый 28.11.2005, 16:39   #18  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2479 (88) +++++++++
Регистрация: 20.08.2005
Класс рассчитывает hash-суммы на основе алгоритмов MD2, MD4, MD5, SHA. В реализации используется CryptAPI, входящее в состав Windows.
Вложения
Тип файла: zip Crypt.zip (1.9 Кб, 263 просмотров)
__________________
Axapta v.3.0 sp5 kr2
За это сообщение автора поблагодарили: NeveB (1), belugin (5), Logger (10), novic (1), AvrDen (1), gl00mie (3), rkorchagin (1).
Старый 29.11.2005, 15:45   #19  
Andrew K. is offline
Andrew K.
Участник
 
29 / 12 (1) ++
Регистрация: 02.12.2004
Адрес: Minsk
Цитата:
Сообщение от Gad
Ну и где тут накопление? по флагу updateIfExists, запись либо заменяется на вставляемую или нет. Ни о каком накоплении речь не идет. И вообще RSL - это некий буфер хранения записей, уникальных по комбинации ключевых полей. Так что RTFM уважаемый anf
Увaжаемый Gad, накопление нужно делать руками, но это не сложно. Данная техника широко используется с ранних версий, работает надежно и быстро
Старый 29.11.2005, 15:51   #20  
Vadik is offline
Vadik
Модератор
Аватар для Vadik
Лучший по профессии 2017
Лучший по профессии 2015
 
3,631 / 1849 (69) ++++++++
Регистрация: 18.11.2002
Адрес: гражданин Москвы
также см. класс KeySum
__________________
-ТСЯ или -ТЬСЯ ?
За это сообщение автора поблагодарили: mazzy (2).
Теги
шифрование

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Нужно срочно дописать запрос помогите CRASH_505 DAX: Программирование 3 09.09.2008 10:49
помогите с DLL ZhanR DAX: Программирование 2 13.09.2006 12:31
Помогите с запросом.. DarkBear DAX: Программирование 2 15.08.2005 13:38
Помогите найти доку vitart DAX: Администрирование 18 03.07.2003 16:10
Ребята плиз помогите! Данные! niksa DAX: Программирование 6 17.12.2002 19:16

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 23:55.