一:Class方法负责把读到的数据放存储起来,放到临时表中,通过传值方法,把数据传输到报表中去;
二:
报表init方法:
public void init()
{
Object caller;
;
super();
caller = element.args().caller();
if(classidget(caller) == classnum(EajStoneConsumingClass))
{
tmpStoneConsTable =caller.getTemp(); //从Class那边获取查询出来的数据
}
EajTmpStoneConsumTable2.setTmpData(tmpStoneConsTable); //把数据赋值給数据源表
wrkid=caller.getWrkctrId();
arrayTitle=new Array(Types::String); //数组初始化
arrayValue=new Array(Types::String);
}
三:
报表发动机fetch方法:
public boolean fetch()
{
boolean ret;
str name,names;
ret = true;
element.printJobSettings().suppressScalingMessage(true);
i=0;
tmpStoneConsTable.clear();
//array
// arrayTitle.value(1,"");
// i++;
arrayTitle.value(1,"@SYS33009");
arrayTitle.value(2,"@EAJ51");
arrayTitle.value(3,"@SYS36113");
i=3;
while select JaxInventCategoryId from tmpStoneConsTable
index hint StoneIndex
group by JaxInventCategoryId
{
i++;
arrayTitle.value(i,tmpStoneConsTable.JaxInventCategoryId);
}
i=0;
tmpStoneConsTable.clear();
while select emplId from tmpStoneConsTable
index hint StoneIndex
group by emplId
{
i++;
arrayValue.value(i,tmpStoneConsTable.emplId);
}
//value
element.printTitleSection(arrayTitle,1,arrayTitle.lastIndex());
for(i=1;i<=arrayValue.lastIndex();i++)
{
element.initValueSection();
txt_value_02.text(arrayValue.value(i));
txt_value_01.text(EmplTable::find(txt_value_02.text()).EajEmplGroup);
// name=txt_value_01.text();
txt_value_03.text(DirPartyTable::find(EmplTable::find(txt_value_02.text()).PartyId).Name);
// names=txt_value_03.text();
element.printValueSection(1,arrayTitle.lastIndex());
}
for(k = i; k <= 15; k++)
{
element.initValueSection();
txt_value_01.text("");
txt_value_01.lineAbove(LineType::None);
txt_value_01.lineBelow(LineType::None);
txt_value_01.lineLeft(LineType::None);
txt_value_01.lineRight(LineType::None);
element.execute(2);
}
return ret;
}
四:根据条件查询对应的值的方法:
str getPercentOf(JaxInventCategoryId _category,
emplId _emplId)
{
realBase curQty;
;
//info(strfmt("%1,%2",_category,_emplId));
if(_category == "")
{
return _emplId;
}
else
{
while select sum(OutTTLPOQ) from tmpStoneConsTable
index hint StoneIndex
where tmpStoneConsTable.JaxInventCategoryId == _category
&& tmpStoneConsTable.EmplId == _emplId
{
//info(strfmt("%1,%2",_emplId,_category));
//info(strfmt("%1,%2",tmpStoneConsTable.EmplId,tmpStoneConsTable.JaxInventCategoryId));
curQty+=tmpStoneConsTable.OutTTLPOQ;
}
}
return strfmt("%1",curQty);
}
五: 初始化打印报表头的方法
void printTitleSection(Array arr,int iStartIndex,
int iEndIndex)
{
element.initTitleSection();
for(j = iStartIndex; j <= iEndIndex; j++)
{
switch(j)
{
case 1:
txt_title_01.text(arr.value(j));
txt_title_01.visible(true);
txt_title_01.lineAbove(LineType::Solid);
txt_title_01.lineBelow(LineType::Solid);
txt_title_01.lineLeft(LineType::Solid);
txt_title_01.lineRight(LineType::Solid);
break;
case 2:
txt_title_02.text(arr.value(j));
txt_title_02.visible(true);
txt_title_02.lineAbove(LineType::Solid);
txt_title_02.lineBelow(LineType::Solid);
txt_title_02.lineLeft(LineType::Solid);
txt_title_02.lineRight(LineType::Solid);
break;
case 3:
txt_title_03.text(arr.value(j));
txt_title_03.visible(true);
txt_title_03.lineAbove(LineType::Solid);
txt_title_03.lineBelow(LineType::Solid);
txt_title_03.lineLeft(LineType::Solid);
txt_title_03.lineRight(LineType::Solid);
break;
case 4:
txt_title_04.text(arr.value(j));
txt_title_04.visible(true);
txt_title_04.lineAbove(LineType::Solid);
txt_title_04.lineBelow(LineType::Solid);
txt_title_04.lineLeft(LineType::Solid);
txt_title_04.lineRight(LineType::Solid);
break;
case 5:
txt_title_05.text(arr.value(j));
txt_title_05.visible(true);
txt_title_05.lineAbove(LineType::Solid);
txt_title_05.lineBelow(LineType::Solid);
txt_title_05.lineLeft(LineType::Solid);
txt_title_05.lineRight(LineType::Solid);
break;
case 6:
txt_title_06.text(arr.value(j));
txt_title_06.visible(true);
txt_title_06.lineAbove(LineType::Solid);
txt_title_06.lineBelow(LineType::Solid);
txt_title_06.lineLeft(LineType::Solid);
txt_title_06.lineRight(LineType::Solid);
break;
case 7:
txt_title_07.text(arr.value(j));
txt_title_07.visible(true);
txt_title_07.lineAbove(LineType::Solid);
txt_title_07.lineBelow(LineType::Solid);
txt_title_07.lineLeft(LineType::Solid);
txt_title_07.lineRight(LineType::Solid);
break;
case 8:
txt_title_08.text(arr.value(j));
txt_title_08.visible(true);
txt_title_08.lineAbove(LineType::Solid);
txt_title_08.lineBelow(LineType::Solid);
txt_title_08.lineLeft(LineType::Solid);
txt_title_08.lineRight(LineType::Solid);
break;
case 9:
txt_title_09.text(arr.value(j));
txt_title_09.visible(true);
txt_title_09.lineAbove(LineType::Solid);
txt_title_09.lineBelow(LineType::Solid);
txt_title_09.lineLeft(LineType::Solid);
txt_title_09.lineRight(LineType::Solid);
break;
case 10:
txt_title_10.text(arr.value(j));
txt_title_10.visible(true);
txt_title_10.lineAbove(LineType::Solid);
txt_title_10.lineBelow(LineType::Solid);
txt_title_10.lineLeft(LineType::Solid);
txt_title_10.lineRight(LineType::Solid);
break;
case 11:
txt_title_11.text(arr.value(j));
txt_title_11.visible(true);
txt_title_11.lineAbove(LineType::Solid);
txt_title_11.lineBelow(LineType::Solid);
txt_title_11.lineLeft(LineType::Solid);
txt_title_11.lineRight(LineType::Solid);
break;
case 12:
txt_title_12.text(arr.value(j));
txt_title_12.visible(true);
txt_title_12.lineAbove(LineType::Solid);
txt_title_12.lineBelow(LineType::Solid);
txt_title_12.lineLeft(LineType::Solid);
txt_title_12.lineRight(LineType::Solid);
break;
default:
txt_title_12.text(arr.value(j));
txt_title_12.visible(true);
txt_title_12.lineAbove(LineType::Solid);
txt_title_12.lineBelow(LineType::Solid);
txt_title_12.lineLeft(LineType::Solid);
txt_title_12.lineRight(LineType::Solid);
break;
}
}
element.execute(1);
}
六:初始化打印报表值的方法
void printValueSection(int iStartIndex,
int iEndIndex)
{
for(j = iStartIndex; j <= iEndIndex; j++)
{
switch(j)
{
case 1:
txt_value_01.visible(true);
txt_value_01.lineAbove(LineType::Solid);
txt_value_01.lineBelow(LineType::Solid);
txt_value_01.lineLeft(LineType::Solid);
txt_value_01.lineRight(LineType::Solid);
break;
case 2:
txt_value_02.visible(true);
txt_value_02.lineAbove(LineType::Solid);
txt_value_02.lineBelow(LineType::Solid);
txt_value_02.lineLeft(LineType::Solid);
txt_value_02.lineRight(LineType::Solid);
break;
case 3:
txt_value_03.visible(true);
txt_value_03.lineAbove(LineType::Solid);
txt_value_03.lineBelow(LineType::Solid);
txt_value_03.lineLeft(LineType::Solid);
txt_value_03.lineRight(LineType::Solid);
break;
case 4:
txt_value_04.text(element.getPercentOf(txt_title_04.text(),txt_value_02.text()));
txt_value_04.visible(true);
txt_value_04.lineAbove(LineType::Solid);
txt_value_04.lineBelow(LineType::Solid);
txt_value_04.lineLeft(LineType::Solid);
txt_value_04.lineRight(LineType::Solid);
break;
case 5:
txt_value_05.text(element.getPercentOf(txt_title_05.text(),txt_value_02.text()));
txt_value_05.visible(true);
txt_value_05.lineAbove(LineType::Solid);
txt_value_05.lineBelow(LineType::Solid);
txt_value_05.lineLeft(LineType::Solid);
txt_value_05.lineRight(LineType::Solid);
break;
case 6:
txt_value_06.text(element.getPercentOf(txt_title_06.text(),txt_value_02.text()));
txt_value_06.visible(true);
txt_value_06.lineAbove(LineType::Solid);
txt_value_06.lineBelow(LineType::Solid);
txt_value_06.lineLeft(LineType::Solid);
txt_value_06.lineRight(LineType::Solid);
break;
case 7:
txt_value_07.text(element.getPercentOf(txt_title_07.text(),txt_value_02.text()));
txt_value_07.visible(true);
txt_value_07.lineAbove(LineType::Solid);
txt_value_07.lineBelow(LineType::Solid);
txt_value_07.lineLeft(LineType::Solid);
txt_value_07.lineRight(LineType::Solid);
break;
case 8:
txt_value_08.text(element.getPercentOf(txt_title_08.text(),txt_value_02.text()));
txt_value_08.visible(true);
txt_value_08.lineAbove(LineType::Solid);
txt_value_08.lineBelow(LineType::Solid);
txt_value_08.lineLeft(LineType::Solid);
txt_value_08.lineRight(LineType::Solid);
break;
case 9:
txt_value_09.text(element.getPercentOf(txt_title_09.text(),txt_value_02.text()));
txt_value_09.visible(true);
txt_value_09.lineAbove(LineType::Solid);
txt_value_09.lineBelow(LineType::Solid);
txt_value_09.lineLeft(LineType::Solid);
txt_value_09.lineRight(LineType::Solid);
break;
case 10:
txt_value_10.text(element.getPercentOf(txt_title_10.text(),txt_value_02.text()));
txt_value_10.visible(true);
txt_value_10.lineAbove(LineType::Solid);
txt_value_10.lineBelow(LineType::Solid);
txt_value_10.lineLeft(LineType::Solid);
txt_value_10.lineRight(LineType::Solid);
break;
case 11:
txt_value_11.text(element.getPercentOf(txt_title_11.text(),txt_value_02.text()));
txt_value_11.visible(true);
txt_value_11.lineAbove(LineType::Solid);
txt_value_11.lineBelow(LineType::Solid);
txt_value_11.lineLeft(LineType::Solid);
txt_value_11.lineRight(LineType::Solid);
break;
case 12:
txt_value_12.text(element.getPercentOf(txt_title_11.text(),txt_value_02.text()));
txt_value_12.visible(true);
txt_value_12.lineAbove(LineType::Solid);
txt_value_12.lineBelow(LineType::Solid);
txt_value_12.lineLeft(LineType::Solid);
txt_value_12.lineRight(LineType::Solid);
break;
default:
txt_value_12.text(element.getPercentOf(txt_title_12.text(),txt_value_02.text()));
txt_value_12.visible(true);
txt_value_12.lineAbove(LineType::Solid);
txt_value_12.lineBelow(LineType::Solid);
txt_value_12.lineLeft(LineType::Solid);
txt_value_12.lineRight(LineType::Solid);
break;
}
}
element.execute(2);
}
七: 初始化值属性
void initValueSection()
{
txt_value_01.visible(false);
txt_value_02.visible(false);
txt_value_03.visible(false);
txt_value_04.visible(false);
txt_value_05.visible(false);
txt_value_06.visible(false);
txt_value_07.visible(false);
txt_value_08.visible(false);
txt_value_09.visible(false);
txt_value_10.visible(false);
txt_value_11.visible(false);
txt_value_12.visible(false);
}
八:初始化标题栏
void initTitleSection()
{
txt_title_01.visible(true);
txt_title_02.visible(true);
txt_title_03.visible(true);
txt_title_04.visible(false);
txt_title_05.visible(false);
txt_title_06.visible(false);
txt_title_07.visible(false);
txt_title_08.visible(false);
txt_title_09.visible(false);
txt_title_10.visible(false);
txt_title_11.visible(false);
txt_title_12.visible(false);
txt_title_01.lineAbove(LineType::Solid);
txt_title_01.lineBelow(LineType::Solid);
txt_title_01.lineLeft(LineType::Solid);
txt_title_01.lineRight(LineType::Solid);
txt_title_02.lineAbove(LineType::Solid);
txt_title_02.lineBelow(LineType::Solid);
txt_title_02.lineLeft(LineType::Solid);
txt_title_02.lineRight(LineType::Solid);
txt_title_03.lineAbove(LineType::Solid);
txt_title_03.lineBelow(LineType::Solid);
txt_title_03.lineLeft(LineType::Solid);
txt_title_03.lineRight(LineType::Solid);
txt_title_04.lineAbove(LineType::Solid);
txt_title_04.lineBelow(LineType::Solid);
txt_title_04.lineLeft(LineType::Solid);
txt_title_04.lineRight(LineType::Solid);
txt_title_05.lineAbove(LineType::Solid);
txt_title_05.lineBelow(LineType::Solid);
txt_title_05.lineLeft(LineType::Solid);
txt_title_05.lineRight(LineType::Solid);
txt_title_06.lineAbove(LineType::Solid);
txt_title_06.lineBelow(LineType::Solid);
txt_title_06.lineLeft(LineType::Solid);
txt_title_06.lineRight(LineType::Solid);
txt_title_07.lineAbove(LineType::Solid);
txt_title_07.lineBelow(LineType::Solid);
txt_title_07.lineLeft(LineType::Solid);
txt_title_07.lineRight(LineType::Solid);
txt_title_08.lineAbove(LineType::Solid);
txt_title_08.lineBelow(LineType::Solid);
txt_title_08.lineLeft(LineType::Solid);
txt_title_08.lineRight(LineType::Solid);
txt_title_09.lineAbove(LineType::Solid);
txt_title_09.lineBelow(LineType::Solid);
txt_title_09.lineLeft(LineType::Solid);
txt_title_09.lineRight(LineType::Solid);
txt_title_10.lineAbove(LineType::Solid);
txt_title_10.lineBelow(LineType::Solid);
txt_title_10.lineLeft(LineType::Solid);
txt_title_10.lineRight(LineType::Solid);
txt_title_11.lineAbove(LineType::Solid);
txt_title_11.lineBelow(LineType::Solid);
txt_title_11.lineLeft(LineType::Solid);
txt_title_11.lineRight(LineType::Solid);
txt_title_12.lineAbove(LineType::Solid);
txt_title_12.lineBelow(LineType::Solid);
txt_title_12.lineLeft(LineType::Solid);
txt_title_12.lineRight(LineType::Solid);
}
其中pringSection()方法和getPercentOf()是进行数据显示和查询的方法,
其它方法均为报表显示属性;