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

多元素扩展类型

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
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值