AX 2009 多元素扩展类型和其界面控件的使用

mac2022-06-30  127

多元素扩展类型

AX下扩展类型,除了关联表外,还有个多元素扩展的特性。表字段继承这个扩展类型后,这个表字段就会像数组一样来使用。

扩展类型下建立的多个元素

表里显示只会有一个字段,但是实际上是一个数组字段

 

AX的控件都有父类。IntEdit控件,其父类是FormIntControl。RealEdit控件,其父类是FormRealControl。等等对应,不多例举。

这样就可以轻松获取控件,并操作。

不做细讲,代码很简单。直接贴出功能代码,看注释即可明白

public  void Sreach(TransDate day = today()) {      int                             m_T,m_count,m_c,m_j,m_d;     utcDateTime                     m_StartTime,m_EndTime;     TransDate                       m_Day;     ProdJournalTable                m_ProdJourTable;     ProdJournalRoute                m_ProdJourRoute;     ProcessYieldAmountTable         m_TempTable;     ProdTable                       m_ProdTable;     FormIntControl                  m_IntControl;     ProcessYieldCountTable          m_CountTable;     ;     m_Day = day -  1;     m_c =  0;     m_CountTable.clear();      for(m_T =  0;m_T <  24;m_T++)     {         m_StartTime = DateTimeUtil::newDateTime(m_Day, 72000 +  3600 * m_T);         m_EndTime = DateTimeUtil::newDateTime(m_Day, 72000 +  3600 * (m_T +  1));         m_count =  0;         ttsbegin;          while select m_ProdJourRoute join m_ProdJourTable  where m_ProdJourRoute.JournalId == m_ProdJourTable.JournalId         && m_ProdJourTable.Posted ==  true && m_ProdJourTable.PostedDateTime >= m_StartTime         && m_ProdJourTable.PostedDateTime <= m_EndTime         {              // 奇偶判断,这边是单行双字段显示              if(m_t mod  2)             {                 m_j =  2;             }              else             {                 m_j =  1;             }             m_count++;             m_TempTable.clear();             m_TempTable.TimeTitle = strfmt( " %1 - %2 ",m_StartTime,m_EndTime);             m_TempTable.ProdId[m_j] = m_ProdJourRoute.ProdId;             m_TempTable.ItemId[m_j] = ProdTable::find(m_ProdJourRoute.ProdId).ItemId;             m_TempTable.FlowId[m_j] = m_ProdJourRoute.IWS_FlowId;             m_TempTable.QtyGood[m_j] = m_ProdJourRoute.QtyGood;             m_TempTable.TransDateTime[m_j] = m_ProdJourTable.PostedDateTime;             m_TempTable.insert();         }          if(!m_ProdJourRoute)         {             m_TempTable.clear();             m_TempTable.TimeTitle = strfmt( " %1 - %2 ",m_StartTime,m_EndTime);             m_TempTable.insert();         }         ttscommit;          // label setting         m_c = m_T +  1;         m_IntControl = element.design().controlName(strfmt( " ProcessYieldCountTable_YieldCount[%1] ",m_c));         m_IntControl.label(strfmt( " %1 - %2 ",strdel(DateTime2str(m_StartTime, 0), 0, 7),strdel(DateTime2str(m_EndTime, 0), 0, 7)));         m_CountTable.YieldCount[m_c] = m_count;     }       m_CountTable.insert();      // 设置临时表     // 刷新数据源     ProcessYieldAmountTable.setTmpData(m_TempTable);     ProcessYieldAmountTable_ds.research();     ProcessYieldCountTable.setTmpData(m_CountTable);     ProcessYieldCountTable_ds.research(); }

 

转载于:https://www.cnblogs.com/Kurodo/archive/2011/09/27/2193115.html

最新回复(0)