|
|
|
@ -1465,10 +1465,13 @@ public abstract class JTemplate<T extends BaseBook, U extends BaseUndoState<?>>
|
|
|
|
|
public abstract String route(); |
|
|
|
|
|
|
|
|
|
public String getTemplateName() { |
|
|
|
|
return getEditingFILE().getName() + getSuffix(); |
|
|
|
|
return getEditingFILE().getName() + compatibilityTip(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private String getSuffix() { |
|
|
|
|
/** |
|
|
|
|
* 设置新引擎后,有不支持的功能时,设计器中模板的标题需要加上“兼容模式”或者“不支持分页引擎”来提示用户 |
|
|
|
|
* */ |
|
|
|
|
private String compatibilityTip() { |
|
|
|
|
if (!CptCompileUtil.isNewEngine(this.getTarget(), getEditingFILE().getPath())){ |
|
|
|
|
return StringUtils.EMPTY; |
|
|
|
|
} |
|
|
|
@ -1617,13 +1620,11 @@ public abstract class JTemplate<T extends BaseBook, U extends BaseUndoState<?>>
|
|
|
|
|
worker.addSuccessCallback(new Runnable() { |
|
|
|
|
@Override |
|
|
|
|
public void run() { |
|
|
|
|
boolean isChangedFile = !JTemplate.this.isSaved() && !DesignModeContext.isVcsMode(); |
|
|
|
|
boolean isChangedFile = !JTemplate.this.saved; |
|
|
|
|
if (isChangedFile){ |
|
|
|
|
callBackForSave(); |
|
|
|
|
CptCompileUtil.compile(JTemplate.this); |
|
|
|
|
} else{ |
|
|
|
|
callBackForSave(); |
|
|
|
|
} |
|
|
|
|
callBackForSave(); |
|
|
|
|
// 当前打开的是正在保存的模板才刷新
|
|
|
|
|
if (ComparatorUtils.equals(JTemplate.this.template.getTemplateID(), |
|
|
|
|
HistoryTemplateListCache.getInstance().getCurrentEditingTemplate().template.getTemplateID())) { |
|
|
|
@ -1682,10 +1683,13 @@ public abstract class JTemplate<T extends BaseBook, U extends BaseUndoState<?>>
|
|
|
|
|
result = result || provider.saveToNewFile(this.editingFILE.getPath(), this); |
|
|
|
|
} |
|
|
|
|
if (!result) { |
|
|
|
|
//在这里改变报表引擎属性
|
|
|
|
|
boolean ischanged = CptCompileUtil.haveChanged(oldName, this); |
|
|
|
|
if (ischanged){ |
|
|
|
|
//如果cptx另存为cpt/cptx的另存为/cpt另存为,则需要重新预编译,因此设置jTemplate的保存状态为false。
|
|
|
|
|
/* |
|
|
|
|
* 1.在CptCompileUtil::haveChanged改变报表引擎属性 |
|
|
|
|
* 2.如果cptx文件另存为cpt文件/cptx另存为cptx文件/设置了新引擎的cpt文件另存为cpt文件, |
|
|
|
|
* 因为编译目录改变了,需要重新预编译,因此设置jTemplate的保存状态为false |
|
|
|
|
* */ |
|
|
|
|
boolean hasChanged = CptCompileUtil.hasChanged(oldName, this); |
|
|
|
|
if (hasChanged){ |
|
|
|
|
this.saved = false; |
|
|
|
|
} |
|
|
|
|
result = this.saveRealFile(); |
|
|
|
|