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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 04.07.2012, 10:27   #1  
МАГ is offline
МАГ
Участник
 
6 / 10 (1) +
Регистрация: 04.07.2012
Отчет в Аксапте
Я полный новичок в Аксапте, скажу страшное: я программист 1с... В связи с переносом данных пытаюсь разобраться где лежат какие данные. Вопрос: как посмотреть где беруться данные для отчета? Я нашла в репозитарии прикладных объектов в формах отчет (форму отчета?), в котором должна разобраться. Не сочтите за труд, подскажите где сами данные?
Старый 04.07.2012, 11:05   #2  
ZVV is offline
ZVV
MCITP
MCP
Oracle
MCBMSS
 
1,006 / 246 (11) ++++++
Регистрация: 13.02.2004
Адрес: Минск
->
Цитата:
Сообщение от МАГ Посмотреть сообщение
Я полный новичок в Аксапте, скажу страшное: я программист 1с... В связи с переносом данных пытаюсь разобраться где лежат какие данные. Вопрос: как посмотреть где беруться данные для отчета? Я нашла в репозитарии прикладных объектов в формах отчет (форму отчета?), в котором должна разобраться. Не сочтите за труд, подскажите где сами данные?
Данные в БД - в таблицах. Таблицы - тоже в репозитарие можно найти.
А вот в каких таблицах смотреть - это уже другой вопрос - надо смотреть в отчёте.
В простом случае в ветке DataSource отчёта они будут перечислены.
Но есть вероятность что смотреть придётся и поглубже, в код (например метод fetch())... В общем случае ответа на этот вопрос нету
__________________
Zhirenkov Vitaly
Старый 04.07.2012, 11:14   #3  
МАГ is offline
МАГ
Участник
 
6 / 10 (1) +
Регистрация: 04.07.2012
Я сам принцип не могу понять))) Таблицы - не могу понять связи, не найду их никак. Например, есть реквизит номенклатуры, который явно куда-то ссылается. А вот куда? Мне бы эту связь понять и заглянуть в таблицу связанную)))
Связи в отчете тоже непонятны: Нашла сначала в Menus, потом по аналогии в NenuItems, потом поискала в Classes. А попроще нельзя? Как по ссылкам (типа "правой кнопкой мыши") от наименования отчета попасть в его "сердце", где видно весь код?
Старый 04.07.2012, 11:28   #4  
ice is offline
ice
Участник
Аватар для ice
Лучший по профессии 2014
 
1,689 / 405 (17) +++++++
Регистрация: 23.03.2006
чтоб понять принцип, того что и как происходит в аксапте нужно почитать соответствующую литературу (я кэп)). а вообще существуют: перекрестные ссылки, переходы к основной таблице, "правая кнопна мыши\ надстройки \ новое окно \ разные пункты меню" и прочие радости разработчика
PS связи таблиц смотрятся в релейшенах таблиц и EDT
Старый 04.07.2012, 11:33   #5  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,429 / 1772 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от МАГ Посмотреть сообщение
Как по ссылкам (типа "правой кнопкой мыши") от наименования отчета попасть в его "сердце", где видно весь код?
Я сейчас может быть скажу что-то срашное, но кода может и не быть Всё зависит от сложности отчёта

По делу:
Отчёт, про корый идёт речь - это объект в разделе AOT\Reports?
Он содержит ветку Disigns\...\GeneratedDesign?
Какие секции содержит эта ветка?
Есть ли там секция с типом Body?
Какие контролы содержаться в этой секции? Заполнены ли у них свойства Table, DataField или DataMethod?
Старый 04.07.2012, 11:35   #6  
ZVV is offline
ZVV
MCITP
MCP
Oracle
MCBMSS
 
1,006 / 246 (11) ++++++
Регистрация: 13.02.2004
Адрес: Минск
->
Цитата:
Сообщение от МАГ Посмотреть сообщение
Я сам принцип не могу понять))) Таблицы - не могу понять связи, не найду их никак. Например, есть реквизит номенклатуры, который явно куда-то ссылается. А вот куда? Мне бы эту связь понять и заглянуть в таблицу связанную)))
Связи в отчете тоже непонятны: Нашла сначала в Menus, потом по аналогии в NenuItems, потом поискала в Classes. А попроще нельзя? Как по ссылкам (типа "правой кнопкой мыши") от наименования отчета попасть в его "сердце", где видно весь код?
Боюсь я не настолько терпеливый, чтоб всё объяснить с нуля...
Почитать бы вам чё-нить для "чайников" лучше для начала...

Связи между таблицами могуть задаваться либо в самих таблицах (AOT - Data Dictionary - Tables - Relations), либо на расширенных типах данных (AOT - Data Dictionary - Extended Data Types - Relations). Во втором случае поле в таблице должно иметь данный тип, чтоб эта связь заработала.

Попроще? в Меню Айтеме отчёта (в свойствах) конкретно указан объект, который вызывается по этому пункту меню. Можно перейти к этому объекту непосредственно по правой клавише - Открыть используемый объект (или что-то в этом роде).
Ну или можно самому найти в AOT данный отчёт (AOT - Reports) или класс (AOT - Classes).

Двойной щелчок на отчёт открывает весь его код.
Описание случая с классом в данное руководство не входит.

ЗЫ заняться просто с утра нечем что-то....
__________________
Zhirenkov Vitaly
Старый 04.07.2012, 11:40   #7  
МАГ is offline
МАГ
Участник
 
6 / 10 (1) +
Регистрация: 04.07.2012
С удовольствием бы почитала. Где взять? Аксапту отменяют сразу после перехода на 1с, переход в августе...
Нашла книгу "Введение в язык программирования АКСАПТА (X++)" в электронном виде. А мне бы руководство какое, на русском, я ж английский забыла за 10 лет)))
Перекрестные ссылки не канают, там снова меню, в котором я ничего не нашла. Хоть бы как в access увидеть ссылки,а?
Вроде раскопала, что реквизит номенклатуры это массив Extended Data Types. Это переменные расширенного типа. Ладно. Как увидеть "внутренности" такой переменной? Из каких данных этот массив?
Старый 04.07.2012, 11:42   #8  
oip is offline
oip
Axapta
Лучший по профессии 2014
 
2,564 / 1416 (53) ++++++++
Регистрация: 28.11.2005
Записей в блоге: 1
Здесь взять.
вышла новая книга по Axapta
__________________
С уважением,
Олег.
За это сообщение автора поблагодарили: МАГ (1).
Старый 04.07.2012, 11:49   #9  
Pustik is offline
Pustik
Участник
 
807 / 372 (14) ++++++
Регистрация: 04.06.2004
Назовите хоть что за отчет? Стандартный, стандартный с доработкой или чистая доработка? Хоть Имя назовите?
__________________
-Ты в гномиков веришь?
-Нет.
-А они в тебя верят, смотри, не подведи их.
Старый 04.07.2012, 12:12   #10  
МАГ is offline
МАГ
Участник
 
6 / 10 (1) +
Регистрация: 04.07.2012
Если б я понимала... Скорее всего нестандартный, чистая доработка (мои предположения), называется "Отчет по реализации HP". В Reports я его не нашла (не знаю как искать). С подсказки ZVV, нашла в через MenuItems (просто смотрела КАЖДЫЙ), там определила объект Classes "ERG_HPReportsClass". Открыла двойным нажатием "мыши" и любуюсь. в Declaration Run вот такой текст
public void run()
{
ERG_Excel ex = new ERG_Excel();
int line = 1;
// super();
CustInvoiceJour cij;
CustInvoiceTrans cit;
InventTable it;
ERG_HPItemData itData;

// ex.newFile("c:\\hp_report_template.xls", false);
ex.newFile(#ReportTemplatePath_RU + "hp_report_template.xls", false);
this.queryrun().reset();

while(this.queryrun().next())
{
cij = this.queryrun().get(tablenum(CustInvoiceJour));
cit = this.queryrun().get(tablenum(CustInvoiceTrans));
it = this.queryrun().get(tablenum(InventTable));

line ++;

ex.insertValue(ERG_Excel::BookMark(line, 1), "FB");
ex.insertValue(ERG_Excel::BookMark(line, 2), cij.OrderAccount);
ex.insertValue(ERG_Excel::BookMark(line, 3), mthofyr(cij.InvoiceDate));
ex.insertValue(ERG_Excel::BookMark(line, 4), year(cij.InvoiceDate));
ex.insertValue(ERG_Excel::BookMark(line, 5), it.ERG_VendItemId);

itData = ERG_HPItemData::find(it.ERG_GroupsOfPlanningId);

ex.insertValue(ERG_excel::BookMark(line, 6), itData.ProductGroup);
ex.insertValue(ERG_excel::BookMark(line, 7), itData.ProductLine);

ex.insertValue(ERG_excel::BookMark(line, 8), "HP" == it.Dimension[4] ? "HP" : "other OEM");
ex.insertValue(ERG_Excel::BookMark(line, 9), cit.LineAmountMST);
ex.insertValue(ERG_Excel::BookMark(line, 10), cit.Qty);
ex.insertValue(ERG_Excel::BookMark(line, 11), "RUR");
ex.insertValue(ERG_Excel::BookMark(line, 12), today());
ex.insertValue(ERG_Excel::BookMark(line, 13), "");
ex.insertValue(ERG_Excel::BookMark(line, 14), ERG_HPReportCust::ExistCust(cij.OrderAccount) ? "CSP" : "Transaction customer");
}
ex.visible(true);
}

Меня интересует ProductGroup и ProductLine. Эти штуки есть в таблице InventTable, я так понимаю, только в этой таблице есть лишь ERG_GroupsOfPlanningId, которая является ExtendedType, массив. Уф!!!! Как этот массив посмотреть? Когда он формируется и что туда входит? Мне эту структуру надо в 1с реализовать)))
Старый 04.07.2012, 12:38   #11  
Pustik is offline
Pustik
Участник
 
807 / 372 (14) ++++++
Регистрация: 04.06.2004
ERG_GroupsOfPlanningId - это поле в таблице inventTable,
ERG_HPItemData (т.е. idData) - это какой-то справочник,т.е. таблица, где ERG_GroupsOfPlanningId скорей всего является первичным ключом.
кусок кода
itData = ERG_HPItemData::find(it.ERG_GroupsOfPlanningId);
определяет уникальную запись в этом справичнике по этому ключу
кусок кода
ex.insertValue(ERG_excel::BookMark(line, 6), itData.ProductGroup);
ex.insertValue(ERG_excel::BookMark(line, 7), itData.ProductLine);
отображает дополнительные поля ProductGroup, ProductLine в этом справочнике этой уникальной записи
__________________
-Ты в гномиков веришь?
-Нет.
-А они в тебя верят, смотри, не подведи их.
Старый 04.07.2012, 12:50   #12  
Pustik is offline
Pustik
Участник
 
807 / 372 (14) ++++++
Регистрация: 04.06.2004
у поля ERG_GroupsOfPlanningId таблицы inventTable посмотрите в свойствах посмотрите наименования EDT, Встаете на поле - правая кнопка мыш - надстройки - новое окно - открыть использованный расширенный тип данных. У этого EDT скорей всего настроен relation на таблицу ERG_HPItemData.
__________________
-Ты в гномиков веришь?
-Нет.
-А они в тебя верят, смотри, не подведи их.
Старый 04.07.2012, 13:32   #13  
ice is offline
ice
Участник
Аватар для ice
Лучший по профессии 2014
 
1,689 / 405 (17) +++++++
Регистрация: 23.03.2006
ничего личного, но не удивительно, что они переходят с ах на 1с, глядя на этот пример кода. судя по тому что 1снику приходится вникать в код и структуру таблиц, команду "спецов" по ах уже уволили

Последний раз редактировалось ice; 04.07.2012 в 13:34.
Старый 04.07.2012, 14:38   #14  
МАГ is offline
МАГ
Участник
 
6 / 10 (1) +
Регистрация: 04.07.2012
Огромное спасибо за отклик!!! Спецов здесь больше нет, я одна. Работаю третью неделю))))
Всё правильно, открыла расширенный тип данных.Relations содержит вот это:
ERG_GroupsOfPlanningId = = CopyOfERG_GroupsOfPlanning.GroupId
Таблицу CopyOfERG_GroupsOfPlanning я нашла, посмотрела. Оттуда копируется массив значений поля GroupId (типа ключ). Вроде так. А откуда потом берётся ProductGroup и ProductLine? Чуть-чуть осталось, ребята! умнею на глазах! Уже книжку изучаю!
Старый 04.07.2012, 14:48   #15  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,429 / 1772 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от МАГ Посмотреть сообщение
открыла расширенный тип данных.Relations содержит вот это:
ERG_GroupsOfPlanningId = = CopyOfERG_GroupsOfPlanning.GroupId
Странная связь. А про ERG_HPItemData там ничего нет?
В любом случае Pustik прав:
Цитата:
Сообщение от Pustik Посмотреть сообщение
кусок кода
itData = ERG_HPItemData::find(it.ERG_GroupsOfPlanningId);
определяет уникальную запись в этом справичнике по этому ключу
Из этого справочника (таблицы с именем ERG_HPItemData) и берутся значения ProductGroup и ProductLine.

Конечно если в тексте метода ERG_HPItemData::find вдруг внезапно не окажется чего-нибудь непредсказуемого
А ссылка на CopyOfERG_GroupsOfPlanning очень похожа на мусор в структуре данных...

Последний раз редактировалось S.Kuskov; 04.07.2012 в 14:50.
Старый 04.07.2012, 15:06   #16  
МАГ is offline
МАГ
Участник
 
6 / 10 (1) +
Регистрация: 04.07.2012
Да уж...
Forms/ERG_HPReport нашла форму отчета, здесь есть DataSourse вот такая ветка ERG_HPItemData
Теперь я умная, правой кнопкой - открыть в новом окне - Используемая таблица и ...ВУАЛЯ! Нашла!
Блин, кто такой умный проектировал эту базу?!!!!!!
ОГРОМНОЕ-ПРЕОГРОМНОЕ СПАСИБО! Эх, жаль мои знания по 1с не пригодятся, а то я бы!!! Обращайтесь, если что!))
Старый 05.07.2012, 08:41   #17  
uchenik is offline
uchenik
Участник
 
119 / 20 (1) +++
Регистрация: 15.12.2008
Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
А ссылка на CopyOfERG_GroupsOfPlanning очень похожа на мусор в структуре данных...
Похожа, но это не так. Истории ее появления не знаю.

Цитата:
Сообщение от МАГ Посмотреть сообщение
Блин, кто такой умный проектировал эту базу?!!!!!!
Которую именно?

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

Последний раз редактировалось uchenik; 05.07.2012 в 08:58.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Отчет по сроку годности ena_ax DAX: Функционал 1 20.10.2009 13:04
Вписать динамический отчет в страницу (DAX 4.0) Qaz Qwerty DAX: Программирование 2 17.07.2008 05:46
Как получить указатель на отчёт когда пользователь выбрал Печать на принтер в просмотрщике, в форму SysPrintForm? rkorchagin DAX: Программирование 10 17.04.2008 11:59
Система оповещений в Аксапте (события в Аксапте) raunio DAX: Прочие вопросы 1 29.09.2005 15:44
Размышления на тему “Системы контроля версий в Аксапте”. Андре DAX: База знаний и проекты 31 07.02.2005 12:29

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

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

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