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;
}
}
{
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();
}
{
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);
}
{
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();
}
{
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();
}