AX動態給報表的標題欄和所對應的欄位賦值

    一: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()是進行數據顯示和查詢的方法,

其它方法均爲報表顯示屬性;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章