Доброе утро! Прошу прощения, вот версия:
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);
}