Browse Source

update

master
wangtao 2 years ago
parent
commit
1b48360459
  1. 4
      README.md
  2. BIN
      build/install/fine-plugin-com.fr.plugin.cafe_expand-1.0.0.zip
  3. BIN
      build/libs/fine-plugin-com.fr.plugin.cafe_expand-1.0.0.jar
  4. BIN
      build/temp/plugin/fine-plugin-com.fr.plugin.cafe_expand-1.0.0.jar
  5. 1
      build/temp/plugin/plugin.xml
  6. 1
      plugin.xml
  7. 10
      src/main/java/com/fr/plugin/cafe_expand/designerhelp/ExpandUniversalLocaleBridge.java
  8. 166
      src/main/java/com/fr/plugin/cafe_expand/designerhelp/JumpToAnalysis.java
  9. 4
      src/main/java/com/fr/plugin/cafe_expand/function/UnitTools.java
  10. BIN
      src/main/resources/1.png
  11. BIN
      src/main/resources/2.png
  12. BIN
      src/main/resources/3.png
  13. 11
      src/main/resources/com/fr/plugin/cafe_expand/config/locale/expand.properties
  14. 11
      src/main/resources/com/fr/plugin/cafe_expand/config/locale/expand_zh_CN.properties
  15. 817
      src/main/resources/expand_analysis.cpt

4
README.md

@ -10,8 +10,8 @@
使用方式: 使用方式:
1、插件安装后,打开设计器,菜单栏会多出一个【闪电】按钮 1、插件安装后,打开设计器,菜单栏会多出一个【闪电】按钮
2、点击按钮,会打开一个页面,显示正在编辑的模板 2、点击按钮,会打开弹出框,显示正在编辑的模板
3、模板中会显示当前编辑的是哪个报表块 3、弹出框中会显示当前编辑的是哪个“报表块”
如果是多sheet,会显示是第几个sheet(从0开始); 如果是多sheet,会显示是第几个sheet(从0开始);
如果是聚合报表,会显示报表块block的名称; 如果是聚合报表,会显示报表块block的名称;
如果是决策报表,会显示报表块report的名称 如果是决策报表,会显示报表块report的名称

BIN
build/install/fine-plugin-com.fr.plugin.cafe_expand-1.0.0.zip

Binary file not shown.

BIN
build/libs/fine-plugin-com.fr.plugin.cafe_expand-1.0.0.jar

Binary file not shown.

BIN
build/temp/plugin/fine-plugin-com.fr.plugin.cafe_expand-1.0.0.jar

Binary file not shown.

1
build/temp/plugin/plugin.xml

@ -12,6 +12,7 @@
<change-notes><![CDATA[无]]></change-notes> <change-notes><![CDATA[无]]></change-notes>
<extra-core> <extra-core>
<FunctionDefineProvider class="com.fr.plugin.cafe_expand.function.DoExpandFile" name="DoExpandFile" description="扩展单元格"/> <FunctionDefineProvider class="com.fr.plugin.cafe_expand.function.DoExpandFile" name="DoExpandFile" description="扩展单元格"/>
<LocaleFinder class="com.fr.plugin.cafe_expand.designerhelp.ExpandUniversalLocaleBridge"/>
</extra-core> </extra-core>
<extra-designer> <extra-designer>

1
plugin.xml

@ -12,6 +12,7 @@
<change-notes><![CDATA[无]]></change-notes> <change-notes><![CDATA[无]]></change-notes>
<extra-core> <extra-core>
<FunctionDefineProvider class="com.fr.plugin.cafe_expand.function.DoExpandFile" name="DoExpandFile" description="扩展单元格"/> <FunctionDefineProvider class="com.fr.plugin.cafe_expand.function.DoExpandFile" name="DoExpandFile" description="扩展单元格"/>
<LocaleFinder class="com.fr.plugin.cafe_expand.designerhelp.ExpandUniversalLocaleBridge"/>
</extra-core> </extra-core>
<extra-designer> <extra-designer>

10
src/main/java/com/fr/plugin/cafe_expand/designerhelp/ExpandUniversalLocaleBridge.java

@ -0,0 +1,10 @@
package com.fr.plugin.cafe_expand.designerhelp;
import com.fr.stable.fun.impl.AbstractLocaleFinder;
public class ExpandUniversalLocaleBridge extends AbstractLocaleFinder {
@Override
public String find() {
return "com/fr/plugin/cafe_expand/config/locale/expand";
}
}

166
src/main/java/com/fr/plugin/cafe_expand/designerhelp/JumpToAnalysis.java

@ -1,20 +1,23 @@
package com.fr.plugin.cafe_expand.designerhelp; package com.fr.plugin.cafe_expand.designerhelp;
import com.fr.base.BaseUtils;
import com.fr.design.fun.impl.AbstractDsinFrameUpButtonProvider; import com.fr.design.fun.impl.AbstractDsinFrameUpButtonProvider;
import com.fr.design.gui.ibutton.UIButton; import com.fr.design.gui.ibutton.UIButton;
import com.fr.design.mainframe.DesignerContext; import com.fr.design.gui.icombobox.UIComboBox;
import com.fr.design.mainframe.JForm; import com.fr.design.gui.ilable.UILabel;
import com.fr.design.mainframe.JTemplate; import com.fr.design.gui.itextfield.UITextField;
import com.fr.design.mainframe.JWorkBook; import com.fr.design.mainframe.*;
import com.fr.design.utils.DesignUtils; import com.fr.design.utils.DesignUtils;
import com.fr.design.utils.gui.GUICoreUtils;
import com.fr.general.IOUtils; import com.fr.general.IOUtils;
import com.fr.locale.InterProviderFactory; import com.fr.locale.InterProviderFactory;
import com.fr.plugin.cafe_expand.function.DoExpandFile;
import com.fr.plugin.cafe_expand.function.UnitTools; import com.fr.plugin.cafe_expand.function.UnitTools;
import com.fr.record.analyzer.EnableMetrics; import com.fr.record.analyzer.EnableMetrics;
import com.fr.report.elementcase.TemplateElementCase; import com.fr.report.elementcase.TemplateElementCase;
import com.fr.report.poly.PolyECBlock; import com.fr.report.poly.PolyECBlock;
import com.fr.third.springframework.util.FileCopyUtils; import com.fr.third.springframework.util.FileCopyUtils;
import com.fr.third.springframework.util.StringUtils;
import javax.swing.*; import javax.swing.*;
import java.awt.event.ActionEvent; import java.awt.event.ActionEvent;
import java.io.File; import java.io.File;
@ -23,7 +26,8 @@ import java.io.InputStreamReader;
import java.util.ArrayList; import java.util.ArrayList;
/** /**
* 设计器工具栏添加按钮 跳转到检测模板 * 设计器工具栏添加按钮
* 弹出框配置扩展操作
* */ * */
@EnableMetrics @EnableMetrics
public class JumpToAnalysis extends AbstractDsinFrameUpButtonProvider { public class JumpToAnalysis extends AbstractDsinFrameUpButtonProvider {
@ -36,7 +40,7 @@ public class JumpToAnalysis extends AbstractDsinFrameUpButtonProvider {
@Override @Override
public UIButton[] getUpButtons(int menuState) { public UIButton[] getUpButtons(int menuState) {
UIButton btn = new UIButton(IOUtils.readIcon("/com/fr/design/images/m_web/cache.png")); UIButton btn = new UIButton(IOUtils.readIcon("/com/fr/design/images/m_web/cache.png"));
btn.setToolTipText(InterProviderFactory.getProvider().getLocText("行列扩展分析")); btn.setToolTipText(InterProviderFactory.getProvider().getLocText("cafe_expand_assist"));
btn.addActionListener(new AbstractAction() { btn.addActionListener(new AbstractAction() {
@Override @Override
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
@ -60,56 +64,120 @@ public class JumpToAnalysis extends AbstractDsinFrameUpButtonProvider {
else if(template instanceof JForm) else if(template instanceof JForm)
position="frm:"+template.getSelectElementCase().getWidgetName(); position="frm:"+template.getSelectElementCase().getWidgetName();
visitTc(filePath,position); //visitTc(filePath,position);
}
});
return new UIButton[]{
btn
};
}
public static void visitTc(String path,String position) JDialog fr = new JDialog();
{ fr.setSize(400, 250);
copyRvealFile(); GUICoreUtils.centerWindow(fr);
fr.setResizable(false);
fr.setTitle(InterProviderFactory.getProvider().getLocText("cafe_expand_assist"));
fr.setIconImage(BaseUtils.readImageWithCache("/com/fr/design/images/m_web/cache.png"));
String route="/view/report"; String[] item = new String[]{InterProviderFactory.getProvider().getLocText("insert"), InterProviderFactory.getProvider().getLocText("delete")};
ArrayList parameter = new ArrayList();
ArrayList parameter_value = new ArrayList();
parameter.add("viewlet");
parameter_value.add("testcase/expand_analysis.cpt");
parameter.add("filePath"); //路径 位置------------------------------------
parameter_value.add(path); JPanel panel_path = new JPanel();
panel_path.add(new UILabel(InterProviderFactory.getProvider().getLocText("local_path")));
panel_path.add(new UILabel(filePath));
parameter.add("position"); JPanel panel_position = new JPanel();
parameter_value.add(position); panel_position.add(new UILabel(InterProviderFactory.getProvider().getLocText("report_position")));
panel_position.add(new UILabel(position));
parameter.add("op"); //插入列------------------------------------
parameter_value.add("write"); JPanel panel_col = new JPanel();
DesignUtils.visitEnvServerByParameters(route, (String[])parameter.toArray(new String[0]), (String[])parameter_value.toArray(new String[0])); panel_col.add(new UILabel(InterProviderFactory.getProvider().getLocText("col_expand")));
}
String[] item_col = new String[]{"A列前", "A列后", "B列后", "C列后", "D列后", "E列后", "F列后", "G列后", "H列后", "I列后", "J列后", "K列后", "L列后", "M列后", "N列后", "O列后", "P列后", "Q列后", "R列后", "S列后", "T列后", "U列后", "V列后", "W列后", "X列后", "Y列后", "Z列后", "AA列后", "AB列后", "AC列后", "AD列后", "AE列后", "AF列后", "AG列后", "AH列后", "AI列后", "AJ列后", "AK列后", "AL列后", "AM列后", "AN列后", "AO列后", "AP列后", "AQ列后", "AR列后", "AS列后", "AT列后", "AU列后", "AV列后", "AW列后", "AX列后", "AY列后", "AZ列后"};
UIComboBox col_position = new UIComboBox(item_col);
panel_col.add(col_position);
UIComboBox col_type = new UIComboBox(item);
panel_col.add(col_type);
UITextField col_num = new UITextField(5);
panel_col.add(col_num);
panel_col.add(new UILabel("列"));
//插入行------------------------------------------------------------
JPanel panel_row = new JPanel();
panel_row.add(new UILabel(InterProviderFactory.getProvider().getLocText("row_expand")));
UITextField row_position = new UITextField(3);
panel_row.add(row_position);
panel_row.add(new UILabel("行后"));
UIComboBox row_type = new UIComboBox(item);
panel_row.add(row_type);
/** UITextField row_num = new UITextField(5);
* 拷贝插件中的模板到报表目录下 panel_row.add(row_num);
* */
public static void copyRvealFile() panel_row.add(new UILabel("行"));
{
String path=JumpToAnalysis.class.getClass().getResource("/").getPath(); //提交按钮------------------------------------------------------------
path=path.substring(0, path.indexOf("WEB-INF") + 7) + "/reportlets/testcase/expand_analysis.cpt"; JPanel panel_submit = new JPanel();
UIButton button_row = new UIButton(InterProviderFactory.getProvider().getLocText("submit"));
File f=new File(path); panel_submit.add(button_row);
if(!f.exists()) {
f.getParentFile().mkdir();
String str = null; //结果展示----------------------------------------------------------
try { JPanel panel_result=new JPanel();
str = FileCopyUtils.copyToString(new InputStreamReader(JumpToAnalysis.class.getClassLoader().getResourceAsStream("expand_analysis.cpt"), "utf-8")); UILabel lable_result=new UILabel();
panel_result.add(lable_result);
UnitTools.writeToMb(str, path);
} catch (IOException e) {
e.printStackTrace(); String finalPosition = position;
button_row.addActionListener(ee -> {
DoExpandFile d=new DoExpandFile();
String arr[]=new String[4];
arr[0]=filePath;
arr[1]= finalPosition;
String row = row_position.getText()+":"+row_type.getSelectedIndex()+":"+row_num.getText();
String col = col_position.getSelectedIndex()+":"+col_type.getSelectedIndex()+":"+col_num.getText();
if(StringUtils.isEmpty(col_num.getText()))
col="";
if(StringUtils.isEmpty(row_num.getText()))
row="";
if(!StringUtils.isEmpty(row) || !StringUtils.isEmpty(col)) {
arr[2] = col;
arr[3] = row;
String result = d.run(arr).toString();
try {
DesignerFrameFileDealerPane.getInstance().getSelectedOperation().refresh();
DesignerFrameFileDealerPane.getInstance().stateChange();
lable_result.setText(InterProviderFactory.getProvider().getLocText("file_after_change") + result);
} catch (Exception e1) {
lable_result.setText(InterProviderFactory.getProvider().getLocText("error_info") + e1.getMessage());
}
}
else
lable_result.setText(InterProviderFactory.getProvider().getLocText("attention_info"));
});
Box vBox = Box.createVerticalBox();
vBox.add(panel_path);
vBox.add(panel_position);
vBox.add(panel_col);
vBox.add(panel_row);
vBox.add(panel_submit);
vBox.add(panel_result);
fr.add(vBox);
fr.setModalityType(JDialog.ModalityType.APPLICATION_MODAL); // 设置模式类型。
fr.setVisible(true);
} }
} });
return new UIButton[]{
btn
};
} }
} }

4
src/main/java/com/fr/plugin/cafe_expand/function/UnitTools.java

@ -11,7 +11,9 @@ import java.io.FileOutputStream;
import java.io.InputStream; import java.io.InputStream;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
/**
* 工具
* */
public class UnitTools { public class UnitTools {
public static String colRow[] = { "A", "B", "C", "D", "E", "F", "G", "H", public static String colRow[] = { "A", "B", "C", "D", "E", "F", "G", "H",
"I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U",

BIN
src/main/resources/1.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 47 KiB

BIN
src/main/resources/2.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 35 KiB

BIN
src/main/resources/3.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 49 KiB

11
src/main/resources/com/fr/plugin/cafe_expand/config/locale/expand.properties

@ -0,0 +1,11 @@
cafe_expand_assist=cafe_expand_assist
insert=insert
delete=delete
local_path=local_path
report_position=report_position
submit=submit
file_after_change=file_afert_change
error_info=error_info
attention_info=attention:please fill in the expand value
col_expand=col expand at
row_expand=rol expand at

11
src/main/resources/com/fr/plugin/cafe_expand/config/locale/expand_zh_CN.properties

@ -0,0 +1,11 @@
cafe_expand_assist=\u8f85\u52a9\u884c\u5217\u6269\u5c55
insert=\u63d2\u5165
delete=\u5220\u9664
local_path=\u5f53\u524d\u64cd\u4f5c\u6a21\u677f\u8def\u5f84\uff1a
report_position=\u62a5\u8868\u5757\u4f4d\u7f6e\uff1a
submit=\u786e\u5b9a
file_after_change=\u53d8\u66f4\u540e\u7684\u6a21\u677f\u4e3a\uff1a
error_info=\u9519\u8bef\uff1a
attention_info=\u63d0\u793a\uff1a\u8bf7\u586b\u5199\u9700\u8981\u6269\u5c55\u884c\u5217\u7684\u503c
col_expand=\u6269\u5c55\u5217\uff1a\u5728
row_expand=\u6269\u5c55\u884c\uff1a\u5728\u7b2c

817
src/main/resources/expand_analysis.cpt

@ -1,817 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<WorkBook xmlVersion="20211223" releaseVersion="11.0.0">
<TableDataMap>
<TableData name="ds1" class="com.fr.data.impl.EmbeddedTableData">
<Parameters/>
<DSName>
<![CDATA[null]]></DSName>
<ColumnNames>
<![CDATA[uid,,.,,letter]]></ColumnNames>
<ColumnTypes>
<![CDATA[java.lang.Long,java.lang.String]]></ColumnTypes>
<RowData ColumnTypes="java.lang.Long,java.lang.String">
<![CDATA[4jZ2e"@3Ga;*3qth'H&SVLW+4[fK5,"p>tpS9pn7o^TY^)/i@<hgb>AT:>AS^:uR##?@Y=.b
@Ntf=#GBERh.SW^WgcX3R`b60I=-$aT#[1gQ6HCU38\S9.EL\g&$IPH,aL5Nn4LogC]A$PGTA
bH6Kn,a[pF3XS?F2'Yq(U!K@NqE%Da_Z).NB9EC9d![R(=Qu#[YA@W)4jXsGs]A23e@@cb-.Q
KKl(T"Aremc*?=$^g*0@\12nH1#/(\I2Te?.=2g_U`e;gjT8~
]]></RowData>
</TableData>
<TableData name="ds2" class="com.fr.data.impl.EmbeddedTableData">
<Parameters/>
<DSName>
<![CDATA[null]]></DSName>
<ColumnNames>
<![CDATA[uid,,.,,uname]]></ColumnNames>
<ColumnTypes>
<![CDATA[java.lang.Long,java.lang.String]]></ColumnTypes>
<RowData ColumnTypes="java.lang.Long,java.lang.String">
<![CDATA[1Z3Z35NunJ;D(>^V]A?.Oc<LDN~
]]></RowData>
</TableData>
</TableDataMap>
<ReportWebAttr>
<ServerPrinter/>
<WebWriteContent>
<ToolBars>
<ToolBarManager>
<Location>
<Embed position="1"/>
</Location>
<ToolBar>
<Widget class="com.fr.report.web.button.write.Submit">
<WidgetAttr aspectRatioLocked="false" aspectRatioBackup="-1.0" description="">
<MobileBookMark useBookMark="false" bookMarkName="" frozen="false"/>
<PrivilegeControl/>
</WidgetAttr>
<Text>
<![CDATA[${i18n('Fine-Engine_Report_Utils_Submit')}]]></Text>
<Hotkeys>
<![CDATA[]]></Hotkeys>
<IconName>
<![CDATA[submit]]></IconName>
<Verify failVerifySubmit="false" value="true"/>
<Sheet onlySubmitSelect="false"/>
</Widget>
<Widget class="com.fr.report.web.button.write.Verify">
<WidgetAttr aspectRatioLocked="false" aspectRatioBackup="-1.0" description="">
<MobileBookMark useBookMark="false" bookMarkName="" frozen="false"/>
<PrivilegeControl/>
</WidgetAttr>
<Text>
<![CDATA[${i18n('Fine-Engine_Report_Verify_Data')}]]></Text>
<Hotkeys>
<![CDATA[]]></Hotkeys>
<IconName>
<![CDATA[verify]]></IconName>
</Widget>
<Widget class="com.fr.report.web.button.NewPrint">
<WidgetAttr aspectRatioLocked="false" aspectRatioBackup="-1.0" description="">
<MobileBookMark useBookMark="false" bookMarkName="" frozen="false"/>
<PrivilegeControl/>
</WidgetAttr>
<Text>
<![CDATA[${i18n('Fine-Engine_Print')}]]></Text>
<Hotkeys>
<![CDATA[]]></Hotkeys>
<IconName>
<![CDATA[print]]></IconName>
</Widget>
<Widget class="com.fr.report.web.button.Export">
<WidgetAttr aspectRatioLocked="false" aspectRatioBackup="-1.0" description="">
<MobileBookMark useBookMark="false" bookMarkName="" frozen="false"/>
<PrivilegeControl/>
</WidgetAttr>
<Text>
<![CDATA[${i18n('Export')}]]></Text>
<Hotkeys>
<![CDATA[]]></Hotkeys>
<IconName>
<![CDATA[export]]></IconName>
<ExtraButton ButtonName="Word-plugin-export-pdf">
<Buttons Word-plugin-export="true"/>
<WidgetAttr aspectRatioLocked="false" aspectRatioBackup="-1.0" description="">
<MobileBookMark useBookMark="false" bookMarkName="" frozen="false"/>
<PrivilegeControl/>
</WidgetAttr>
<Text>
<![CDATA[pdf 导出]]></Text>
<Hotkeys>
<![CDATA[]]></Hotkeys>
<IconName>
<![CDATA[pdf]]></IconName>
</ExtraButton>
<ExtraButton ButtonName="Word-plugin-export">
<Buttons Word-plugin-export="true"/>
<WidgetAttr aspectRatioLocked="false" aspectRatioBackup="-1.0" description="">
<MobileBookMark useBookMark="false" bookMarkName="" frozen="false"/>
<PrivilegeControl/>
</WidgetAttr>
<Text>
<![CDATA[word 导出]]></Text>
<Hotkeys>
<![CDATA[]]></Hotkeys>
<IconName>
<![CDATA[word]]></IconName>
</ExtraButton>
<Buttons pdf="true" excelP="true" excelO="true" excelS="true" word="true" image="true" html="true"/>
</Widget>
<Widget class="com.fr.report.web.button.Email">
<WidgetAttr aspectRatioLocked="false" aspectRatioBackup="-1.0" description="">
<MobileBookMark useBookMark="false" bookMarkName="" frozen="false"/>
<PrivilegeControl/>
</WidgetAttr>
<Text>
<![CDATA[${i18n('Fine-Engine_Report_Email')}]]></Text>
<Hotkeys>
<![CDATA[]]></Hotkeys>
<IconName>
<![CDATA[email]]></IconName>
<EmailButton customConsignee="true" consigneeByDepartment="false" consigneeByRole="false"/>
</Widget>
<Widget class="com.fr.report.web.button.write.AppendColumnRow">
<WidgetAttr aspectRatioLocked="false" aspectRatioBackup="-1.0" description="">
<MobileBookMark useBookMark="false" bookMarkName="" frozen="false"/>
<PrivilegeControl/>
</WidgetAttr>
<Text>
<![CDATA[${i18n('Fine-Engine_Add_Record')}]]></Text>
<Hotkeys>
<![CDATA[]]></Hotkeys>
<IconName>
<![CDATA[appendrow]]></IconName>
</Widget>
<Widget class="com.fr.report.web.button.write.ShowCellValue">
<WidgetAttr aspectRatioLocked="false" aspectRatioBackup="-1.0" description="">
<MobileBookMark useBookMark="false" bookMarkName="" frozen="false"/>
<PrivilegeControl/>
</WidgetAttr>
<widgetValue/>
<LabelAttr verticalcenter="true" textalign="0" autoline="false"/>
<FRFont name="SimSun" style="0" size="72"/>
<border style="0">
<color>
<FineColor color="-723724" hor="-1" ver="-1"/>
</color>
</border>
</Widget>
</ToolBar>
</ToolBarManager>
</ToolBars>
<EditRowColor setColor="false"/>
<WebWrite SheetPosition="3"/>
<RptLocation isShowAtLeft="true"/>
<UnloadCheck/>
<ShowWidgets show="true"/>
<OtherAttr autoStash="false"/>
</WebWriteContent>
</ReportWebAttr>
<ElementCaseMobileAttr>
<ElementCaseMobileAttrProvider horizontal="1" vertical="1" zoom="true" refresh="false" isUseHTML="false" isMobileCanvasSize="false" appearRefresh="false" allowFullScreen="false" allowDoubleClickOrZoom="true" functionalWhenUnactivated="false"/>
</ElementCaseMobileAttr>
<Report class="com.fr.report.worksheet.WorkSheet" name="sheet1">
<ReportPageAttr>
<HR/>
<FR/>
<HC/>
<FC/>
</ReportPageAttr>
<ColumnPrivilegeControl/>
<RowPrivilegeControl/>
<RowHeight defaultValue="723900">
<![CDATA[723900,990600,876300,533400,990600,876300,533400,990600,723900,533400,990600,723900,723900,533400,723900,723900,335280,723900]]></RowHeight>
<ColumnWidth defaultValue="2743200">
<![CDATA[762000,3200400,3505200,1257300,3390900,2743200,2743200,266700,1447800,266700,1447800,2743200]]></ColumnWidth>
<CellElementList>
<C c="0" r="0">
<PrivilegeControl/>
<Expand>
<cellSortAttr/>
</Expand>
</C>
<C c="11" r="0">
<PrivilegeControl/>
<HighlightList>
<Highlight class="com.fr.report.cell.cellattr.highlight.DefaultHighlight">
<Name>
<![CDATA[条件属性1]]></Name>
<Condition class="com.fr.data.condition.ListCondition"/>
<HighlightAction class="com.fr.report.cell.cellattr.highlight.ColWidthHighlightAction"/>
</Highlight>
</HighlightList>
<Expand/>
</C>
<C c="1" r="1" s="0">
<O>
<![CDATA[页面]]></O>
<PrivilegeControl/>
<Expand/>
</C>
<C c="11" r="1">
<O t="XMLable" class="com.fr.base.Formula">
<Attributes>
<![CDATA[=CONCATENATE(L9)]]></Attributes>
</O>
<PrivilegeControl/>
<Expand/>
</C>
<C c="13" r="1" cs="5" rs="11">
<O>
<![CDATA[功能说明:\\n1、后台拷贝一份当前模板,并按上面填写的扩展行列规则,进行扩展\\n2、如果是多sheet、多个block,或者frm多个报表块,每次只扩展“位置”中指定的报表块,如果想继续扩展其它报表块,需要在扩展后的模板的基础上继续操作\\n3、部分js代码中涉及的部分行列可能不支持,目前支持\\n getCellValue(sheet,col,row);getCellValue(col,row);\\n setCellValue(col,row,val); \\n不支持的如\\n FR.columnRow2CellStr({col: col, row: row}) 等,这类暂时需要手动更改,后续会完善\\n4、扩展后的模板请预览检查后再覆盖当前模板,避免有问题;\\n5、每次执行都会产生一个新的备份模板,请及时删除不需要的备份后的模板,避免模板太多]]></O>
<PrivilegeControl/>
<Expand>
<cellSortAttr/>
</Expand>
</C>
<C c="1" r="2" cs="6" s="1">
<O t="XMLable" class="com.fr.base.Formula">
<Attributes>
<![CDATA[=$filePath]]></Attributes>
</O>
<PrivilegeControl/>
<Expand/>
</C>
<C c="1" r="4" s="0">
<O>
<![CDATA[位置]]></O>
<PrivilegeControl/>
<Expand/>
</C>
<C c="11" r="4">
<O t="XMLable" class="com.fr.base.Formula">
<Attributes>
<![CDATA[=CONCATENATE(L12)]]></Attributes>
</O>
<PrivilegeControl/>
<Expand/>
</C>
<C c="1" r="5" cs="6" s="1">
<O t="XMLable" class="com.fr.base.Formula">
<Attributes>
<![CDATA[=$position]]></Attributes>
</O>
<PrivilegeControl/>
<Expand/>
</C>
<C c="1" r="7" cs="6" s="0">
<O>
<![CDATA[扩展列]]></O>
<PrivilegeControl/>
<Expand/>
</C>
<C c="1" r="8" s="1">
<O>
<![CDATA[在]]></O>
<PrivilegeControl/>
<CellPageAttr/>
<CellInsertPolicy>
<InsertPolicy>
<![CDATA[copy]]></InsertPolicy>
</CellInsertPolicy>
<Expand dir="0"/>
</C>
<C c="2" r="8" s="1">
<PrivilegeControl/>
<Widget class="com.fr.form.ui.ComboBox">
<WidgetAttr aspectRatioLocked="false" aspectRatioBackup="-1.0" description="">
<MobileBookMark useBookMark="false" bookMarkName="" frozen="false"/>
<PrivilegeControl/>
</WidgetAttr>
<allowBlank>
<![CDATA[false]]></allowBlank>
<CustomData>
<![CDATA[false]]></CustomData>
<Dictionary class="com.fr.data.impl.TableDataDictionary">
<FormulaDictAttr kiName="uid" viName="letter"/>
<TableDataDictAttr>
<TableData class="com.fr.data.impl.NameTableData">
<Name>
<![CDATA[ds1]]></Name>
</TableData>
</TableDataDictAttr>
</Dictionary>
<widgetValue/>
</Widget>
<Present class="com.fr.base.present.DictPresent">
<Dictionary class="com.fr.data.impl.TableDataDictionary">
<FormulaDictAttr kiName="uid" viName="letter"/>
<TableDataDictAttr>
<TableData class="com.fr.data.impl.NameTableData">
<Name>
<![CDATA[ds1]]></Name>
</TableData>
</TableDataDictAttr>
</Dictionary>
</Present>
<Expand dir="0"/>
</C>
<C c="3" r="8" cs="2" s="1">
<O t="I">
<![CDATA[0]]></O>
<PrivilegeControl/>
<CellPageAttr/>
<Widget class="com.fr.form.ui.ComboBox">
<WidgetAttr aspectRatioLocked="false" aspectRatioBackup="-1.0" description="">
<MobileBookMark useBookMark="false" bookMarkName="" frozen="false"/>
<PrivilegeControl/>
</WidgetAttr>
<allowBlank>
<![CDATA[false]]></allowBlank>
<DirectEdit>
<![CDATA[false]]></DirectEdit>
<CustomData>
<![CDATA[false]]></CustomData>
<Dictionary class="com.fr.data.impl.TableDataDictionary">
<FormulaDictAttr kiName="uid" viName="uname"/>
<TableDataDictAttr>
<TableData class="com.fr.data.impl.NameTableData">
<Name>
<![CDATA[ds2]]></Name>
</TableData>
</TableDataDictAttr>
</Dictionary>
<widgetValue/>
</Widget>
<Present class="com.fr.base.present.DictPresent">
<Dictionary class="com.fr.data.impl.TableDataDictionary">
<FormulaDictAttr kiName="uid" viName="uname"/>
<TableDataDictAttr>
<TableData class="com.fr.data.impl.NameTableData">
<Name>
<![CDATA[ds2]]></Name>
</TableData>
</TableDataDictAttr>
</Dictionary>
</Present>
<CellInsertPolicy>
<InsertPolicy>
<![CDATA[copy]]></InsertPolicy>
</CellInsertPolicy>
<Expand dir="0"/>
</C>
<C c="5" r="8" s="1">
<O t="I">
<![CDATA[1]]></O>
<PrivilegeControl/>
<CellPageAttr/>
<Widget class="com.fr.form.ui.NumberEditor">
<WidgetAttr aspectRatioLocked="false" aspectRatioBackup="-1.0" description="">
<MobileBookMark useBookMark="false" bookMarkName="" frozen="false"/>
<PrivilegeControl/>
</WidgetAttr>
<allowBlank>
<![CDATA[false]]></allowBlank>
<NumberAttr allowDecimals="false" allowNegative="false">
<widgetValue/>
</NumberAttr>
</Widget>
<CellInsertPolicy>
<InsertPolicy>
<![CDATA[copy]]></InsertPolicy>
</CellInsertPolicy>
<Expand dir="0"/>
</C>
<C c="6" r="8" s="1">
<O>
<![CDATA[列]]></O>
<PrivilegeControl/>
<CellPageAttr/>
<CellInsertPolicy>
<InsertPolicy>
<![CDATA[copy]]></InsertPolicy>
</CellInsertPolicy>
<Expand dir="0"/>
</C>
<C c="8" r="8">
<PrivilegeControl/>
<Widget class="com.fr.report.web.button.write.AppendRowButton">
<WidgetAttr aspectRatioLocked="false" aspectRatioBackup="-1.0" description="">
<MobileBookMark useBookMark="false" bookMarkName="" frozen="false"/>
<PrivilegeControl/>
</WidgetAttr>
<Text>
<![CDATA[]]></Text>
<Hotkeys>
<![CDATA[]]></Hotkeys>
<IconName>
<![CDATA[add]]></IconName>
<FixCell row="8" col="1"/>
</Widget>
<Expand/>
</C>
<C c="10" r="8">
<PrivilegeControl/>
<Widget class="com.fr.report.web.button.write.DeleteRowButton">
<WidgetAttr aspectRatioLocked="false" aspectRatioBackup="-1.0" description="">
<MobileBookMark useBookMark="false" bookMarkName="" frozen="false"/>
<PrivilegeControl/>
</WidgetAttr>
<Text>
<![CDATA[]]></Text>
<Hotkeys>
<![CDATA[]]></Hotkeys>
<IconName>
<![CDATA[delete]]></IconName>
<FixCell row="8" col="1"/>
</Widget>
<Expand/>
</C>
<C c="11" r="8">
<O t="XMLable" class="com.fr.base.Formula">
<Attributes>
<![CDATA[=if(len(C9) <> 0 && len(F9) <> 0, CONCATENATE(C9, ":", D9, ":", F9), "")]]></Attributes>
</O>
<PrivilegeControl/>
<CellPageAttr/>
<CellInsertPolicy>
<InsertPolicy>
<![CDATA[copy]]></InsertPolicy>
</CellInsertPolicy>
<Expand/>
</C>
<C c="1" r="10" cs="6" s="0">
<O>
<![CDATA[扩展行]]></O>
<PrivilegeControl/>
<Expand/>
</C>
<C c="1" r="11" s="1">
<O>
<![CDATA[在第]]></O>
<PrivilegeControl/>
<CellPageAttr/>
<CellInsertPolicy>
<InsertPolicy>
<![CDATA[copy]]></InsertPolicy>
</CellInsertPolicy>
<Expand dir="0"/>
</C>
<C c="2" r="11" s="1">
<PrivilegeControl/>
<Widget class="com.fr.form.ui.NumberEditor">
<WidgetAttr aspectRatioLocked="false" aspectRatioBackup="-1.0" description="">
<MobileBookMark useBookMark="false" bookMarkName="" frozen="false"/>
<PrivilegeControl/>
</WidgetAttr>
<allowBlank>
<![CDATA[false]]></allowBlank>
<regMsg>
<![CDATA[最小值为0]]></regMsg>
<NumberAttr allowDecimals="false" allowNegative="false" minValue="0.0">
<widgetValue/>
</NumberAttr>
</Widget>
<Expand dir="0"/>
</C>
<C c="3" r="11" s="1">
<O>
<![CDATA[行后]]></O>
<PrivilegeControl/>
<CellPageAttr/>
<CellInsertPolicy>
<InsertPolicy>
<![CDATA[copy]]></InsertPolicy>
</CellInsertPolicy>
<Expand/>
</C>
<C c="4" r="11" s="1">
<O t="I">
<![CDATA[0]]></O>
<PrivilegeControl/>
<CellPageAttr/>
<Widget class="com.fr.form.ui.ComboBox">
<WidgetAttr aspectRatioLocked="false" aspectRatioBackup="-1.0" description="">
<MobileBookMark useBookMark="false" bookMarkName="" frozen="false"/>
<PrivilegeControl/>
</WidgetAttr>
<allowBlank>
<![CDATA[false]]></allowBlank>
<DirectEdit>
<![CDATA[false]]></DirectEdit>
<CustomData>
<![CDATA[false]]></CustomData>
<Dictionary class="com.fr.data.impl.TableDataDictionary">
<FormulaDictAttr kiName="uid" viName="uname"/>
<TableDataDictAttr>
<TableData class="com.fr.data.impl.NameTableData">
<Name>
<![CDATA[ds2]]></Name>
</TableData>
</TableDataDictAttr>
</Dictionary>
<widgetValue/>
</Widget>
<Present class="com.fr.base.present.DictPresent">
<Dictionary class="com.fr.data.impl.TableDataDictionary">
<FormulaDictAttr kiName="uid" viName="uname"/>
<TableDataDictAttr>
<TableData class="com.fr.data.impl.NameTableData">
<Name>
<![CDATA[ds2]]></Name>
</TableData>
</TableDataDictAttr>
</Dictionary>
</Present>
<CellInsertPolicy>
<InsertPolicy>
<![CDATA[copy]]></InsertPolicy>
</CellInsertPolicy>
<Expand dir="0"/>
</C>
<C c="5" r="11" s="1">
<O t="I">
<![CDATA[1]]></O>
<PrivilegeControl/>
<CellPageAttr/>
<Widget class="com.fr.form.ui.NumberEditor">
<WidgetAttr aspectRatioLocked="false" aspectRatioBackup="-1.0" description="">
<MobileBookMark useBookMark="false" bookMarkName="" frozen="false"/>
<PrivilegeControl/>
</WidgetAttr>
<allowBlank>
<![CDATA[false]]></allowBlank>
<NumberAttr allowDecimals="false" allowNegative="false">
<widgetValue/>
</NumberAttr>
</Widget>
<CellInsertPolicy>
<InsertPolicy>
<![CDATA[copy]]></InsertPolicy>
</CellInsertPolicy>
<Expand dir="0"/>
</C>
<C c="6" r="11" s="1">
<O>
<![CDATA[行]]></O>
<PrivilegeControl/>
<CellPageAttr/>
<CellInsertPolicy>
<InsertPolicy>
<![CDATA[copy]]></InsertPolicy>
</CellInsertPolicy>
<Expand dir="0"/>
</C>
<C c="8" r="11">
<PrivilegeControl/>
<Widget class="com.fr.report.web.button.write.AppendRowButton">
<WidgetAttr aspectRatioLocked="false" aspectRatioBackup="-1.0" description="">
<MobileBookMark useBookMark="false" bookMarkName="" frozen="false"/>
<PrivilegeControl/>
</WidgetAttr>
<Text>
<![CDATA[]]></Text>
<Hotkeys>
<![CDATA[]]></Hotkeys>
<IconName>
<![CDATA[add]]></IconName>
<FixCell row="11" col="1"/>
</Widget>
<Expand/>
</C>
<C c="10" r="11">
<PrivilegeControl/>
<Widget class="com.fr.report.web.button.write.DeleteRowButton">
<WidgetAttr aspectRatioLocked="false" aspectRatioBackup="-1.0" description="">
<MobileBookMark useBookMark="false" bookMarkName="" frozen="false"/>
<PrivilegeControl/>
</WidgetAttr>
<Text>
<![CDATA[]]></Text>
<Hotkeys>
<![CDATA[]]></Hotkeys>
<IconName>
<![CDATA[delete]]></IconName>
<FixCell row="11" col="1"/>
</Widget>
<Expand/>
</C>
<C c="11" r="11">
<O t="XMLable" class="com.fr.base.Formula">
<Attributes>
<![CDATA[=if(len(C12) <> 0 && len(F12) <> 0, CONCATENATE(C12, ":", E12, ":", F12), "")]]></Attributes>
</O>
<PrivilegeControl/>
<CellPageAttr/>
<CellInsertPolicy>
<InsertPolicy>
<![CDATA[copy]]></InsertPolicy>
</CellInsertPolicy>
<Expand/>
</C>
<C c="1" r="12" cs="6" s="2">
<O>
<![CDATA[若在第一行前插入,填 0]]></O>
<PrivilegeControl/>
<Expand/>
</C>
<C c="1" r="15">
<PrivilegeControl/>
<Widget class="com.fr.form.ui.FreeButton">
<Listener event="click" name="点击1">
<JavaScript class="com.fr.js.JavaScriptImpl">
<Parameters>
<Parameter>
<Attributes name="path"/>
<O t="XMLable" class="com.fr.base.Formula">
<Attributes>
<![CDATA[=$filePath]]></Attributes>
</O>
</Parameter>
<Parameter>
<Attributes name="position"/>
<O t="XMLable" class="com.fr.base.Formula">
<Attributes>
<![CDATA[=$position]]></Attributes>
</O>
</Parameter>
</Parameters>
<Content>
<![CDATA[contentPane.stopEditing();
var ec= contentPane.curLGP.getCellValue("L2");
var er= contentPane.curLGP.getCellValue("L5");
if(ec=="" && er=="")
FR.Msg.toast("请先配置扩展行 或 列");
else if(ec.startWith(",") || er.startWith(","))
FR.Msg.toast("扩展行列配置不完整");
else
{
var newFile=FR.remoteEvaluate("=DoExpandFile('"+path+"','"+position+"','"+ec+"','"+er+"')");
contentPane.setCellValue(2,15, " 扩展后的模板:"+newFile+";请刷新设计器查看");
}]]></Content>
</JavaScript>
</Listener>
<WidgetName name="changeBut"/>
<WidgetAttr aspectRatioLocked="false" aspectRatioBackup="-1.0" description="">
<MobileBookMark useBookMark="false" bookMarkName="" frozen="false"/>
<PrivilegeControl/>
</WidgetAttr>
<Text>
<![CDATA[一键替换]]></Text>
<Hotkeys>
<![CDATA[]]></Hotkeys>
</Widget>
<Expand>
<cellSortAttr/>
</Expand>
</C>
<C c="2" r="15" cs="9" s="3">
<PrivilegeControl/>
<Expand/>
</C>
<C c="1" r="26">
<PrivilegeControl/>
<Expand/>
</C>
<C c="2" r="26">
<PrivilegeControl/>
<Expand/>
</C>
<C c="3" r="26">
<PrivilegeControl/>
<Expand/>
</C>
<C c="4" r="26">
<PrivilegeControl/>
<Expand/>
</C>
<C c="5" r="26">
<PrivilegeControl/>
<Expand/>
</C>
<C c="6" r="26">
<PrivilegeControl/>
<Expand/>
</C>
</CellElementList>
<ReportAttrSet>
<ReportSettings headerHeight="0" footerHeight="0">
<PaperSetting/>
<FollowingTheme background="false"/>
<Background name="ColorBackground">
<color>
<FineColor color="-1" hor="-1" ver="-1"/>
</color>
</Background>
</ReportSettings>
<Header reportPageType="0">
<Background name="NullBackground"/>
<LeftList/>
<CenterList/>
<RightList/>
</Header>
<Footer reportPageType="0">
<Background name="NullBackground"/>
<LeftList/>
<CenterList/>
<RightList/>
</Footer>
</ReportAttrSet>
<PrivilegeControl/>
</Report>
<ReportParameterAttr>
<Attributes showWindow="true" delayPlaying="true" windowPosition="1" align="0" useParamsTemplate="true" currentIndex="0"/>
<PWTitle>
<![CDATA[参数]]></PWTitle>
</ReportParameterAttr>
<StyleList>
<Style imageLayout="1">
<FRFont name="微软雅黑" style="0" size="104">
<foreground>
<FineColor color="-1" hor="-1" ver="-1"/>
</foreground>
</FRFont>
<Background name="ColorBackground">
<color>
<FineColor color="-11555390" hor="-1" ver="-1"/>
</color>
</Background>
<Border>
<Top style="1">
<color>
<FineColor color="-5973267" hor="-1" ver="-1"/>
</color>
</Top>
<Bottom style="1">
<color>
<FineColor color="-5973267" hor="-1" ver="-1"/>
</color>
</Bottom>
<Left style="1">
<color>
<FineColor color="-5973267" hor="-1" ver="-1"/>
</color>
</Left>
<Right style="1">
<color>
<FineColor color="-5973267" hor="-1" ver="-1"/>
</color>
</Right>
</Border>
</Style>
<Style horizontal_alignment="0" imageLayout="1">
<FRFont name="微软雅黑" style="0" size="72"/>
<Background name="ColorBackground">
<color>
<FineColor color="-657158" hor="-1" ver="-1"/>
</color>
</Background>
<Border>
<Top style="1">
<color>
<FineColor color="-3024920" hor="-1" ver="-1"/>
</color>
</Top>
<Bottom style="1">
<color>
<FineColor color="-3024920" hor="-1" ver="-1"/>
</color>
</Bottom>
<Left style="1">
<color>
<FineColor color="-3024920" hor="-1" ver="-1"/>
</color>
</Left>
<Right style="1">
<color>
<FineColor color="-3024920" hor="-1" ver="-1"/>
</color>
</Right>
</Border>
</Style>
<Style imageLayout="1">
<FRFont name="微软雅黑" style="0" size="64">
<foreground>
<FineColor color="-236032" hor="-1" ver="-1"/>
</foreground>
</FRFont>
<Background name="NullBackground"/>
<Border/>
</Style>
<Style imageLayout="1">
<FRFont name="SimSun" style="1" size="72">
<foreground>
<FineColor color="-6737152" hor="-1" ver="-1"/>
</foreground>
</FRFont>
<Background name="NullBackground"/>
<Border/>
</Style>
</StyleList>
<DesignerVersion DesignerVersion="LAA"/>
<PreviewType PreviewType="1"/>
<TemplateThemeAttrMark class="com.fr.base.iofile.attr.TemplateThemeAttrMark">
<TemplateThemeAttrMark name="兼容主题" dark="false"/>
</TemplateThemeAttrMark>
<StrategyConfigsAttr class="com.fr.esd.core.strategy.persistence.StrategyConfigsAttr">
<StrategyConfigs/>
</StrategyConfigsAttr>
<TemplateCloudInfoAttrMark class="com.fr.plugin.cloud.analytics.attr.TemplateInfoAttrMark" pluginID="com.fr.plugin.cloud.analytics.v11" plugin-version="3.7.0.20220804">
<TemplateCloudInfoAttrMark createTime="1639012631677"/>
</TemplateCloudInfoAttrMark>
<TemplateIdAttMark class="com.fr.base.iofile.attr.TemplateIdAttrMark">
<TemplateIdAttMark TemplateId="02c4a67b-9af2-4370-a23b-2d6a93bb018c"/>
</TemplateIdAttMark>
</WorkBook>
Loading…
Cancel
Save