0
您好,我试图确保窗体只打开一次。对于我需要关闭旧窗体并打开新窗体的情况。我尝试使用下面的代码,但它打开这两种形式,请帮我纠正逻辑。Ax2012窗体只能打开一次
#define.CACHE_OWNER('CsPsqProdTableAttribConfig')
#define.CACHE_KEY_INSTANCE('Instance')
FormRun existingForm()
{
if (infolog.globalCache().isSet(#CACHE_OWNER, #CACHE_KEY_INSTANCE))
{
return infolog.globalCache().get(
#CACHE_OWNER, #CACHE_KEY_INSTANCE);
}
return null;
}
void registerThisForm()
{
infolog.globalCache().set(#CACHE_OWNER, #CACHE_KEY_INSTANCE, this);
}
boolean isAlreadyOpened()
{
return existingForm() ? !existingForm().closed() : false;
}
void closeExistingForm()
{
existingForm().close();
}
if (isAlreadyOpened())
{
closeExistingForm();
this.activate(true);
}
else
{
registerThisForm();
}