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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 29.10.2015, 15:20   #1  
KusmAX is offline
KusmAX
Участник
 
25 / 10 (1) +
Регистрация: 13.05.2013
Адрес: Санкт-Петербург
Изменить отчет
Коллеги, кто знает Ms Dynamics AX. Помогите, пожалуйста! Не знаю ее вообще (сама - программист 1с) Начальство пристали надо сделать: Изменить существующий отчет, добавив туда новую грапфу.

Сделала: Использую свободное поле в форме. Изменила шаблон отчета, добавила туда грацу. Теперь как я понимаю надо исправить запрос, что бы выводилась эта графа.

Подскажите, куда идти в проекте. Два года назад это делала, но не помню ничего!

Помогите, пожалуйста!
Старый 29.10.2015, 17:45   #2  
pitersky is offline
pitersky
северный Будда
Аватар для pitersky
Ex AND Project
Соотечественники
 
1,508 / 428 (18) +++++++
Регистрация: 26.09.2007
Адрес: Солнечная система
Вы бы для начала написали версию DAX и технологию формирования отчёта (Excel, SSRS и т.п.).
__________________
С уважением,
Вячеслав
Старый 30.10.2015, 09:03   #3  
KusmAX is offline
KusmAX
Участник
 
25 / 10 (1) +
Регистрация: 13.05.2013
Адрес: Санкт-Петербург
Доброе утро! Прошу прощения, вот версия:
Ms DAX2009, 5.0.1500.2985

Вот здесь формируется отчет: (моя графа N)

#define.startRow(4)
public void run()
{
EAMObjectIncidentJournal incidentJournal;
EAMObjectIncidentJournal incidentJ_delayed;
EAMDivisionId divisionPrev = "";

Int sumLogged,
sumRedirected,
sumMismatch,
sumAnalized,
sumConfirmed,
sumPlanned,
sumInProgress,
sumFixed,
sumDismissed,
sumPlanning;
int sumByDivision, totalSum, totalDelayed,SumPreWorkLong;

void put(str _col, anytype _value)
{
excelDocument.insertValue(strfmt("%1%2", _col, row), _value);
}

;

super();

row = #startRow;

while select count(RecId) from incidentJournal
group by EAMDivisionId, statusId
where incidentJournal.StatusId != EAMObjectIncidentStatus::Accepted &&
//incidentJournal.StatusId != EAMObjectIncidentStatus::Fixed &&
//incidentJournal.StatusId != EAMObjectIncidentStatus:ismissed &&
incidentJournal.StatusId != EAMObjectIncidentStatus::Empty //&&
//incidentJournal.DateToFix &&
//incidentJournal.DateToFix < today()
//incidentJournal.EAMDivisionId like "ТМО*"
{
if (divisionPrev == "")
divisionPrev = incidentJournal.EAMDivisionId;


if (divisionPrev != incidentJournal.EAMDivisionId)
{

select count(RecId) from incidentJ_delayed
where incidentJ_delayed.StatusId != EAMObjectIncidentStatus::Accepted &&
incidentJ_delayed.StatusId != EAMObjectIncidentStatus::Fixed &&
incidentJ_delayed.StatusId != EAMObjectIncidentStatus:ismissed &&
incidentJ_delayed.StatusId != EAMObjectIncidentStatus::Empty &&
incidentJ_delayed.DateToFix &&
incidentJ_delayed.DateToFix < today() &&
incidentJ_delayed.EAMDivisionId == divisionPrev;

put("A", divisionPrev);
put("L", sumByDivision);
put("M", incidentJ_delayed.RecId);
put("N", SumPreWorkLong);

divisionPrev = incidentJournal.EAMDivisionId;

totalSum += sumByDivision;
totalDelayed += incidentJ_delayed.RecId;

sumByDivision = 0;
row++;
}


sumByDivision += incidentJournal.RecId;


switch (incidentJournal.StatusId)
{
case EAMObjectIncidentStatus::Logged:
put ("B", incidentJournal.RecId);
sumLogged += incidentJournal.RecId;
break;
case EAMObjectIncidentStatus::Redirected:
put ("C", incidentJournal.RecId);
sumRedirected += incidentJournal.RecId;
break;
case EAMObjectIncidentStatus::Mismatch:
put ("D", incidentJournal.RecId);
sumMismatch += incidentJournal.RecId;
break;
case EAMObjectIncidentStatus::Analyzed:
put ("E", incidentJournal.RecId);
sumAnalized += incidentJournal.RecId;
break;
case EAMObjectIncidentStatus::Confirmed:
put ("F", incidentJournal.RecId);
sumConfirmed += incidentJournal.RecId;
break;
case EAMObjectIncidentStatus::Planned:
put ("G", incidentJournal.RecId);
sumPlanned += incidentJournal.RecId;
break;
case EAMObjectIncidentStatus::InProgress:
put ("H", incidentJournal.RecId);
sumInProgress += incidentJournal.RecId;
break;
case EAMObjectIncidentStatus::Fixed:
put ("I", incidentJournal.RecId);
sumFixed += incidentJournal.RecId;
break;
case EAMObjectIncidentStatus:ismissed:
put ("J", incidentJournal.RecId);
sumDismissed += incidentJournal.RecId;
break;
case EAMObjectIncidentStatus::Planning:
put ("K", incidentJournal.RecId);
sumPlanning += incidentJournal.RecId;
break;
default : break;

}
}

put("A", divisionPrev);
put("L", sumByDivision);

select count(RecId) from incidentJ_delayed
where incidentJ_delayed.StatusId != EAMObjectIncidentStatus::Accepted &&
incidentJ_delayed.StatusId != EAMObjectIncidentStatus::Fixed &&
incidentJ_delayed.StatusId != EAMObjectIncidentStatus:ismissed &&
incidentJ_delayed.DateToFix &&
incidentJ_delayed.DateToFix < today() &&
incidentJ_delayed.EAMDivisionId == divisionPrev;

put("M", incidentJ_delayed.RecId);

totalSum += sumByDivision;
totalDelayed += incidentJ_delayed.RecId;

row++;

excelDocument.Borders(strFmt("A%1:M%2",#startRow,row));
excelDocument.Bold(strFmt("A%1:M%1",row));

excelDocument.Bold(strFmt("L%1:L%2",#startRow, row));

excelDocument.Bold(strFmt("M%1:M%2",#startRow, row));
excelDocument.Color(strFmt("M%1:M%2",#startRow, row),3);

put ("A", "ИТОГО:");
put ("B", sumLogged);
put ("C", sumRedirected);
put ("D", sumMismatch);
put ("E", sumAnalized);
put ("F", sumConfirmed);
put ("G", sumPlanned);
put ("H", sumInProgress);
put ("I", sumFixed);
put ("J", sumDismissed);
put ("K", sumPlanning);
put ("L", totalSum);
put ("M", totalDelayed);
}
Старый 30.10.2015, 09:52   #4  
online
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,438 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Судя по всему в новую графу нужно выводить данные из соответствующего поля таблицы EAMObjectIncidentJournal?
Выводить нужно только в итоги? (сейчас вы добавили вывод только там)
Суммировать нужно данные из всех строк, или только из строк с определённым статусом?

Предварительно код который вам нужен:
X++:
select sum(PreWorkLong) 
from EAMObjectIncidentJournal 
where EAMObjectIncidentJournal.EAMDivisionId == divisionPrev;
sumPreWorkLong = EAMObjectIncidentJournal.PreWorkLong;
Старый 30.10.2015, 11:58   #5  
KusmAX is offline
KusmAX
Участник
 
25 / 10 (1) +
Регистрация: 13.05.2013
Адрес: Санкт-Петербург
Спасибо огромное за ответ!
Суммировать надо для всех строк (по подразделениям).

На этом форуме не нашла где вставить файл?

Последний раз редактировалось KusmAX; 30.10.2015 в 12:08.
Старый 30.10.2015, 12:11   #6  
KusmAX is offline
KusmAX
Участник
 
25 / 10 (1) +
Регистрация: 13.05.2013
Адрес: Санкт-Петербург
Вот файл
Миниатюры
Нажмите на изображение для увеличения
Название: Дефекты2.jpg
Просмотров: 345
Размер:	111.7 Кб
ID:	9418  

Последний раз редактировалось KusmAX; 30.10.2015 в 12:13.
Старый 02.11.2015, 10:51   #7  
KusmAX is offline
KusmAX
Участник
 
25 / 10 (1) +
Регистрация: 13.05.2013
Адрес: Санкт-Петербург
Коллеги, мне нужно посчитать сумму для графы N (в т.ч. Блок2) по подразделениям, но с условием:
Поле PreWorkLong=2.
Не по статусам, а по этому условию.
Подскажите как?
Старый 02.11.2015, 13:42   #8  
KusmAX is offline
KusmAX
Участник
 
25 / 10 (1) +
Регистрация: 13.05.2013
Адрес: Санкт-Петербург
Коллеги, я сделал все. Спасибо!
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Как из SSRS-отчета узнать в каком VS Model Project реализован этот отчет? mazzy DAX: Программирование 9 27.06.2014 10:50
Работа отчета "Отчет об анализе расхождений"(InventCostVariances) irvin DAX: Программирование 3 19.08.2013 15:01
Отчет по сроку годности 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

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

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

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