• AX 2009 表格下勾选的编辑行


    Grid下的CheckBox

    在AX下,想要获取已勾选的CheckBox,要通过Map来实现,以下给出一个获取类,调用和使用。

    class FormMarkupClass
    {
        Map                mapMark;

        
    public NoYes editMark(
        boolean      _set,
        Common       _common,
        NoYes        _mark)
        {
        NoYes   click;

        
    if (! mapMark)
            
    this.initMapMark();

        
    if (_set)
        {
            
    if (_mark)
            {
                mapMark.insert(_common.RecId,_common);
                click 
    = NoYes::Yes;
            }
            
    else
            {
                
    if (mapMark.exists(_common.RecId))
                    mapMark.remove(_common.RecId);

                click 
    = NoYes::No;
            }
        }
        
    else
            click 
    = mapMark.exists(_common.RecId);

        
    return click;
        }

        
    int elements()
        {
            
    if (mapMark)
                
    return mapMark.elements();
            
    else
                
    return false;
        }

        Map getMap()
        {
            
    return mapMark;
        }

        MapEnumerator getMapEnumerator()
        {
            
    return mapMark.getEnumerator();
        }

        MapIterator getMapIterator()
        {
           MapIterator it 
    = new MapIterator(mapMark);
           ;
           
    return  it;
        }

        
    public void initMapMark(container _con = connull())
        {
            mapMark 
    = (_con) ? Map::create(_con) : new Map(typeId2Type(typeid(recId)), Types::Record);
        }

        NoYes isMarked(Common _common)
        {
            
    if (mapMark != null )
            {
               
    return mapMark.exists(_common.RecId);
            }
            
    return NOyes::No;
        }
    }

    窗体初始化方法对其初始化

    public void init()
    {
        super();

        g_FormMarkup 
    = new FormMarkupClass();
        g_FormMarkup.initFormMarkup();
    }

    数据源添加display方法

    edit NoYes included(boolean    set, ModelApply   _model, NoYes   _included)
    {
        
    return g_FormMarkup.editMark(set, _model, _included);
    }

    调用

    void clicked()
    {

       MapIterator    m_mapItor;
       ModelApply     m_Model;
       ;

       m_mapItor
    = g_FormMarkup.getMapIterator();

        
    while (m_mapItor.more())
        {
            update_recordset m_Model
             setting
                ModelClass 
    = ModelClass::RedSend
             
    where 
                m_Model.RecId
    == m_mapItor.key();
            m_mapItor.next();
        }
        Model_ds.executeQuery();
    }
    作者:Kurodo
    出处:http://Kurodo.cnblogs.com
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    按日期重命名宾得相机的照片
    Intellij笔记
    quartznet笔记
    优秀的UI插件
    我的ORM之示例项目
    Redis笔记
    Idol之坑
    ORACLE查询表最近更改的数据 VERSIONS BETWEEN TIMESTAMP MINVALUE AND MAXVALUE
    如何drop大表的中不用的字段 set unused column
    Oracle DUL/AUL/ODU 工具说明
  • 原文地址:https://www.cnblogs.com/Kurodo/p/2145908.html
Copyright © 2020-2023  润新知