提取属性到域中

pull/1/head
ChenZichaoczc 7 months ago
parent a1b1c57915
commit 9845db1b4a

@ -27,6 +27,7 @@ import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import com.aspose.words.Bookmark; import com.aspose.words.Bookmark;
import com.aspose.words.Document; import com.aspose.words.Document;
import com.aspose.words.Field;
import com.aspose.words.SaveFormat; import com.aspose.words.SaveFormat;
import com.teamcenter.rac.aif.AIFDesktop; import com.teamcenter.rac.aif.AIFDesktop;
import com.teamcenter.rac.aif.AbstractAIFApplication; import com.teamcenter.rac.aif.AbstractAIFApplication;
@ -56,12 +57,16 @@ public class PropertyToWordOrExcelOperation extends KOperation {
new Thread().sleep(1000); new Thread().sleep(1000);
InterfaceAIFComponent targetComponent = app.getTargetComponent(); InterfaceAIFComponent targetComponent = app.getTargetComponent();
TCComponentItemRevision revision = (TCComponentItemRevision) targetComponent; TCComponentItemRevision revision = (TCComponentItemRevision) targetComponent;
// 获取首选项里的值
String[] prefVals = KUtil.getPrefVals(session, preName); String[] prefVals = KUtil.getPrefVals(session, preName);
if(prefVals == null || prefVals.length == 0) { if(prefVals == null || prefVals.length == 0) {
KUtil.info(AIFDesktop.getActiveDesktop(), preName + "该首选项未配置,请联系管理员!"); KUtil.info(AIFDesktop.getActiveDesktop(), preName + "该首选项未配置,请联系管理员!");
return false; return false;
} }
String relatioin = prefVals[0]; String relatioin = prefVals[0];
// 获取版本对象下的数据集对象
TCComponent[] relatedComponents = revision.getRelatedComponents(relatioin); TCComponent[] relatedComponents = revision.getRelatedComponents(relatioin);
if(relatedComponents == null || relatedComponents.length == 0) { if(relatedComponents == null || relatedComponents.length == 0) {
KUtil.info(AIFDesktop.getActiveDesktop(), "选中对象的 " + relatioin + " 关系下没有数据集"); KUtil.info(AIFDesktop.getActiveDesktop(), "选中对象的 " + relatioin + " 关系下没有数据集");
@ -76,9 +81,12 @@ public class PropertyToWordOrExcelOperation extends KOperation {
nameMap.put(split[1],split[0]); nameMap.put(split[1],split[0]);
} }
} }
// 遍历数据集
for (TCComponent tcComponent : relatedComponents) { for (TCComponent tcComponent : relatedComponents) {
if (tcComponent instanceof TCComponentDataset) { if (tcComponent instanceof TCComponentDataset) {
TCComponentDataset dataset = (TCComponentDataset) tcComponent; TCComponentDataset dataset = (TCComponentDataset) tcComponent;
// 工具包中获取系统临时变量的路径
File datasetFile = KUtil.getDatasetFile(dataset); File datasetFile = KUtil.getDatasetFile(dataset);
String type = tcComponent.getType(); String type = tcComponent.getType();
String datasetType = ""; String datasetType = "";
@ -198,15 +206,20 @@ public class PropertyToWordOrExcelOperation extends KOperation {
private String dealWord2(File datasetFile, TCComponentItemRevision revision, HashMap<String, String> nameMap,String type) throws FileNotFoundException, Exception { private String dealWord2(File datasetFile, TCComponentItemRevision revision, HashMap<String, String> nameMap,String type) throws FileNotFoundException, Exception {
String path = datasetFile.getAbsolutePath(); String path = datasetFile.getAbsolutePath();
Document document2 = new Document(new FileInputStream(path)); Document document2 = new Document(new FileInputStream(path));
OutputStream outputStream = null; OutputStream outputStream = null;
String newPath = path.replace(".doc", "temp.doc"); String newPath = path.replace(".doc", "temp.doc");
outputStream = new FileOutputStream(newPath); outputStream = new FileOutputStream(newPath);
Map<String, String> dataMap = new HashMap<>(); Map<String, String> dataMap = new HashMap<>();
for(String key : nameMap.keySet()) { for(String key : nameMap.keySet()) {
String preConfigValue = getPreConfigValue(revision,nameMap,nameMap.get(key)); String preConfigValue = getPreConfigValue(revision,nameMap,nameMap.get(key));
System.out.println("dataMap("+key+","+preConfigValue+")");
dataMap.put(key, preConfigValue); dataMap.put(key, preConfigValue);
} }
// 遍历文档中所有的书签
for (Bookmark bookmark : document2.getRange().getBookmarks()) { for (Bookmark bookmark : document2.getRange().getBookmarks()) {
String bookmarkName = bookmark.getName(); String bookmarkName = bookmark.getName();
System.out.println("书签名:"+bookmarkName); System.out.println("书签名:"+bookmarkName);
@ -216,6 +229,21 @@ public class PropertyToWordOrExcelOperation extends KOperation {
bookmark.setText(dataMap.get(bookmarkName)); bookmark.setText(dataMap.get(bookmarkName));
} }
} }
// 遍历文档中的所有域
for (Field field : document2.getRange().getFields()) {
// 获取域的名称
String fieldName = field.getFieldCode();
System.out.println("域名:" + fieldName);
for(String key : dataMap.keySet()) {
// 根据字段类型或其他条件设置值
if(fieldName.contains(key)) {// 假设您想处理表单输入域
System.out.println("添加内容");
field.setResult(dataMap.get(key)); // 设置域的值
}
}
}
if(type.equals("doc")) { if(type.equals("doc")) {
document2.save(outputStream, SaveFormat.DOC); document2.save(outputStream, SaveFormat.DOC);
}else if(type.equals("docx")) { }else if(type.equals("docx")) {

Loading…
Cancel
Save