AXForum  
Go Back   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Forgotten Your Password?
Register Forum Rules FAQ Members List Today's Posts Search Mark Forums Read

 
 
Thread Tools Search this Thread Display Modes
Old 04.07.2012, 10:27   #1  
МАГ is offline
МАГ
Участник
 
6 / 10 (1) +
Join Date: 04.07.2012
Отчет в Аксапте
Я полный новичок в Аксапте, скажу страшное: я программист 1с... В связи с переносом данных пытаюсь разобраться где лежат какие данные. Вопрос: как посмотреть где беруться данные для отчета? Я нашла в репозитарии прикладных объектов в формах отчет (форму отчета?), в котором должна разобраться. Не сочтите за труд, подскажите где сами данные?
Old 04.07.2012, 11:05   #2  
ZVV is offline
ZVV
MCITP
MCP
Oracle
MCBMSS
 
1,006 / 246 (11) ++++++
Join Date: 13.02.2004
Location: Минск
->
Quote:
Originally Posted by МАГ View Post
Я полный новичок в Аксапте, скажу страшное: я программист 1с... В связи с переносом данных пытаюсь разобраться где лежат какие данные. Вопрос: как посмотреть где беруться данные для отчета? Я нашла в репозитарии прикладных объектов в формах отчет (форму отчета?), в котором должна разобраться. Не сочтите за труд, подскажите где сами данные?
Данные в БД - в таблицах. Таблицы - тоже в репозитарие можно найти.
А вот в каких таблицах смотреть - это уже другой вопрос - надо смотреть в отчёте.
В простом случае в ветке DataSource отчёта они будут перечислены.
Но есть вероятность что смотреть придётся и поглубже, в код (например метод fetch())... В общем случае ответа на этот вопрос нету
__________________
Zhirenkov Vitaly
Old 04.07.2012, 11:14   #3  
МАГ is offline
МАГ
Участник
 
6 / 10 (1) +
Join Date: 04.07.2012
Я сам принцип не могу понять))) Таблицы - не могу понять связи, не найду их никак. Например, есть реквизит номенклатуры, который явно куда-то ссылается. А вот куда? Мне бы эту связь понять и заглянуть в таблицу связанную)))
Связи в отчете тоже непонятны: Нашла сначала в Menus, потом по аналогии в NenuItems, потом поискала в Classes. А попроще нельзя? Как по ссылкам (типа "правой кнопкой мыши") от наименования отчета попасть в его "сердце", где видно весь код?
Old 04.07.2012, 11:28   #4  
ice is offline
ice
Участник
ice's Avatar
Лучший по профессии 2014
 
1,821 / 402 (17) +++++++
Join Date: 23.03.2006
чтоб понять принцип, того что и как происходит в аксапте нужно почитать соответствующую литературу (я кэп)). а вообще существуют: перекрестные ссылки, переходы к основной таблице, "правая кнопна мыши\ надстройки \ новое окно \ разные пункты меню" и прочие радости разработчика
PS связи таблиц смотрятся в релейшенах таблиц и EDT
Old 04.07.2012, 11:33   #5  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,448 / 1792 (66) ++++++++
Join Date: 28.04.2007
Location: Калуга
Quote:
Originally Posted by МАГ View Post
Как по ссылкам (типа "правой кнопкой мыши") от наименования отчета попасть в его "сердце", где видно весь код?
Я сейчас может быть скажу что-то срашное, но кода может и не быть Всё зависит от сложности отчёта

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

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

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

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

ЗЫ заняться просто с утра нечем что-то....
__________________
Zhirenkov Vitaly
Old 04.07.2012, 11:40   #7  
МАГ is offline
МАГ
Участник
 
6 / 10 (1) +
Join Date: 04.07.2012
С удовольствием бы почитала. Где взять? Аксапту отменяют сразу после перехода на 1с, переход в августе...
Нашла книгу "Введение в язык программирования АКСАПТА (X++)" в электронном виде. А мне бы руководство какое, на русском, я ж английский забыла за 10 лет)))
Перекрестные ссылки не канают, там снова меню, в котором я ничего не нашла. Хоть бы как в access увидеть ссылки,а?
Вроде раскопала, что реквизит номенклатуры это массив Extended Data Types. Это переменные расширенного типа. Ладно. Как увидеть "внутренности" такой переменной? Из каких данных этот массив?
Old 04.07.2012, 11:42   #8  
oip is offline
oip
Axapta
Лучший по профессии 2014
 
2,564 / 1416 (53) ++++++++
Join Date: 28.11.2005
Blog Entries: 1
Здесь взять.
вышла новая книга по Axapta
This post has been rated by: МАГ (1).
Old 04.07.2012, 11:49   #9  
Pustik is offline
Pustik
Участник
 
807 / 372 (14) ++++++
Join Date: 04.06.2004
Назовите хоть что за отчет? Стандартный, стандартный с доработкой или чистая доработка? Хоть Имя назовите?
__________________
-Ты в гномиков веришь?
-Нет.
-А они в тебя верят, смотри, не подведи их.
Old 04.07.2012, 12:12   #10  
МАГ is offline
МАГ
Участник
 
6 / 10 (1) +
Join Date: 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с реализовать)))
Old 04.07.2012, 12:38   #11  
Pustik is offline
Pustik
Участник
 
807 / 372 (14) ++++++
Join Date: 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 в этом справочнике этой уникальной записи
__________________
-Ты в гномиков веришь?
-Нет.
-А они в тебя верят, смотри, не подведи их.
Old 04.07.2012, 12:50   #12  
Pustik is offline
Pustik
Участник
 
807 / 372 (14) ++++++
Join Date: 04.06.2004
у поля ERG_GroupsOfPlanningId таблицы inventTable посмотрите в свойствах посмотрите наименования EDT, Встаете на поле - правая кнопка мыш - надстройки - новое окно - открыть использованный расширенный тип данных. У этого EDT скорей всего настроен relation на таблицу ERG_HPItemData.
__________________
-Ты в гномиков веришь?
-Нет.
-А они в тебя верят, смотри, не подведи их.
Old 04.07.2012, 13:32   #13  
ice is offline
ice
Участник
ice's Avatar
Лучший по профессии 2014
 
1,821 / 402 (17) +++++++
Join Date: 23.03.2006
ничего личного, но не удивительно, что они переходят с ах на 1с, глядя на этот пример кода. судя по тому что 1снику приходится вникать в код и структуру таблиц, команду "спецов" по ах уже уволили

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

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

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

Quote:
Originally Posted by МАГ View Post
Блин, кто такой умный проектировал эту базу?!!!!!!
Которую именно?

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

Last edited by uchenik; 05.07.2012 at 08:58.
 

Similar Threads
Thread Thread Starter Forum Replies Last Post
Отчет по сроку годности 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
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

Рейтинг@Mail.ru
All times are GMT +3. The time now is 10:21.
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Contacts E-mail, Advertising.