帆软报表设计器源代码。
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

55 lines
2.1 KiB

package com.fr.nx.app.designer.utils;
import com.fr.design.mainframe.JTemplate;
import com.fr.file.FILE;
import com.fr.file.filetree.FileNode;
import com.fr.general.ComparatorUtils;
import com.fr.log.FineLoggerFactory;
import com.fr.main.impl.WorkBook;
import com.fr.nx.app.designer.toolbar.TemplateTransformer;
import com.fr.nx.app.designer.toolbar.TransformResult;
import com.fr.nx.app.designer.toolbar.TransformResultInfo;
import com.fr.workspace.WorkContext;
import java.io.InputStream;
import static com.fr.base.extension.FileExtension.CPT;
import static com.fr.base.extension.FileExtension.CPTX;
/**
* Created by kerry on 2019-12-04
*/
public class CompileTransformUtil {
public static TransformResultInfo compileFile(FileNode fileNode) {
long start = System.currentTimeMillis();
InputStream in = WorkContext.getWorkResource().openStream(fileNode.getEnvPath());
WorkBook workBook = new WorkBook();
TransformResultInfo result = null;
try {
workBook.readStream(in);
FILE file = TemplateTransformer.createOutputFile(fileNode.getEnvPath(), CPT.getSuffix(), CPTX.getSuffix());
result = TemplateTransformer.compileCPTX(workBook, file);
} catch (Exception ignore) {
result = TransformResultInfo.generateResult(TransformResult.FAILED);
}
long end = System.currentTimeMillis();
FineLoggerFactory.getLogger().debug(fileNode.getName() + " compile cost : " + (end - start) +" ms ");
return result;
}
public static FILE getTargetFile(JTemplate jTemplate, TemplateTransformer transformer) {
FILE file = null;
if (ComparatorUtils.equals(TemplateTransformer.TO_CPTX, transformer)) {
file = TemplateTransformer.createOutputFile(jTemplate.getEditingFILE().getPath(),
CPT.getSuffix(), CPTX.getSuffix());
} else if (ComparatorUtils.equals(TemplateTransformer.TO_CPT, transformer)) {
file = TemplateTransformer.createOutputFile(jTemplate.getEditingFILE().getPath(),
CPTX.getSuffix(), CPT.getSuffix());
}
return file;
}
}