Нужен Left Join, а получаю Inner Join (связь)
Добавлено: 20 фев 2008, 12:34
Инструмент бизнес-аналитики от компании Stimulsoft. Программное обеспечение для создания дашбордов и отчетов. Инструменты отчетности для любой платформы.
https://forum.stimulsoft.ru/
Спасибо.Edward писал(а):Для датабэндов-родителей, установите, пожалуйста, свойство PrintIfDetailEmpty(Печатать, если нет детальных) в true.
Спасибо.
Код: Выделить всё
bool subDetailPresent = false;
foreach (DataRow masterRow in tblPartsSmet.DataTable.Select("PartID=" + tblPartsSmet.PartID.ToString()))
{
foreach (DataRow curDetailRow in masterRow.GetChildRows(masterRow.Table.ChildRelations[0]))
{
if (curDetailRow != null)
{
foreach (DataRow curSubDetailRow1 in curDetailRow.GetChildRows(curDetailRow.Table.ChildRelations[0]))
{
if (curSubDetailRow1 != null)
{
subDetailPresent = true;
break;
}
}
if (!subDetailPresent)
{
foreach (DataRow curSubDetailRow2 in curDetailRow.GetChildRows(curDetailRow.Table.ChildRelations[1]))
{
if (curSubDetailRow2 != null)
{
subDetailPresent = true;
break;
}
}
}
}
}
ДанныеtblPartsSmet.Enabled = subDetailPresent;
}
Код: Выделить всё
bool subDetailPresent = false;
foreach (DataRow masterRow in tblPartsSmet.DataTable.Select("PartID=" + tblPartsSmet.PartID.ToString()))
{
foreach (DataRow curDetailRow in masterRow.GetChildRows(masterRow.Table.ChildRelations[0]))
{
if (curDetailRow != null)
{
subDetailPresent = true;
break;
}
}
ДанныеtblPartsSmet.Enabled = subDetailPresent;
}
Код: Выделить всё
public void ДанныеtblWorksSm_BeforePrint(object sender, System.EventArgs e)
{
{WorkID = tblWorksSm.WorkSmID;};
}
Код: Выделить всё
{CountIf(Данныеtbl_sm_Mat,tbl_sm_Mat.MatID,WorkID == tbl_sm_Mat.smWorkID)>0 ?
SumIf(Данныеtbl_sm_Mat,(tbl_sm_Mat.MatCost * tbl_sm_Mat.MatValue),
WorkID == tbl_sm_Mat.smWorkID)/CountIf(Данныеtbl_sm_Mat,tbl_sm_Mat.MatID,
WorkID == tbl_sm_Mat.smWorkID) : 0}
Код: Выделить всё
SumIf(Данныеtbl_sm_Mat,(tbl_sm_Mat.MatCost * tbl_sm_Mat.MatValue),
WorkID == tbl_sm_Mat.smWorkID)
Код: Выделить всё
CountIf(Данныеtbl_sm_Mat,tbl_sm_Mat.MatID,WorkID == tbl_sm_Mat.smWorkID)
ОГРОМНОЕ ВАМ СПАСИБО!!!!! СУПЕР!!!!Edward писал(а):Посмотрите, пожалуйста, Ваш модифицированный отчет:
http://forumru.stimulsoft.com/Upload/st ... dified.zip
По Вашему предыдущему вопросу для скрытия Master бэндов код, о котором я писал выше, был добавлен в BeforePrintEvent GroupHeader-a "Заголовок1". Чтобы заголовок группы скрывался по условию, вместо
ДанныеtblPartsSmet.Enabled = subDetailPresent;
указано
ЗаголовокГруппы1.Enabled = subDetailPresent;
остальной код - без изменений.
По последнему вопросу я изменил во всех формулах вычисление функции CountIf:
CountIf(Данныеtbl_sm_Mat,WorkID == tbl_sm_Mat.smWorkID)
Остальное осталось без изменений.
Спасибо.