neil 7 years ago
parent
commit
f692e08df7
  1. 128
      designer/src/com/fr/design/mainframe/AuthorityEditToolBarPane.java
  2. 40
      designer/src/com/fr/design/mainframe/AuthorityToolBarPane.java
  3. 218
      designer/src/com/fr/design/present/PresentPane.java
  4. 53
      designer/src/com/fr/design/widget/ui/CheckBoxGroupDefinePane.java
  5. 315
      designer/src/com/fr/design/widget/ui/NumberEditorDefinePane.java
  6. 7
      designer_base/src/com/fr/design/actions/file/SwitchExistEnv.java
  7. 382
      designer_base/src/com/fr/design/extra/PluginHelper.java
  8. 203
      designer_base/src/com/fr/design/locale/designer.properties
  9. 266
      designer_base/src/com/fr/design/locale/designer_en_US.properties
  10. 2515
      designer_base/src/com/fr/design/locale/designer_ja_JP.properties
  11. 162
      designer_base/src/com/fr/design/locale/designer_ko_KR.properties
  12. 182
      designer_base/src/com/fr/design/locale/designer_zh_CN.properties
  13. 371
      designer_base/src/com/fr/design/locale/designer_zh_TW.properties
  14. 31
      designer_base/src/com/fr/design/mainframe/loghandler/LogHandlerBar.java
  15. 548
      designer_base/src/com/fr/design/roleAuthority/ReportAndFSManagePane.java
  16. 175
      designer_base/src/com/fr/env/RemoteEnv.java
  17. 17
      designer_base/src/com/fr/start/BaseDesigner.java
  18. 312
      designer_base/src/com/fr/start/StartServer.java
  19. 13
      designer_chart/src/com/fr/design/chart/ChartTypePane.java
  20. 170
      designer_chart/src/com/fr/design/mainframe/chart/gui/data/report/CategoryPlotMoreCateReportDataContentPane.java

128
designer/src/com/fr/design/mainframe/AuthorityEditToolBarPane.java

@ -1,6 +1,5 @@
package com.fr.design.mainframe;
import com.fr.base.FRContext;
import com.fr.design.constants.LayoutConstants;
import com.fr.design.constants.UIConstants;
import com.fr.design.file.HistoryTemplateListPane;
@ -15,14 +14,12 @@ import com.fr.design.roleAuthority.RolesAlreadyEditedPane;
import com.fr.design.webattr.ToolBarButton;
import com.fr.general.ComparatorUtils;
import com.fr.general.Inter;
import com.fr.stable.StringUtils;
import javax.swing.*;
import javax.swing.tree.TreePath;
import java.awt.*;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.util.ArrayList;
import java.util.List;
/**
@ -34,16 +31,13 @@ import java.util.List;
public class AuthorityEditToolBarPane extends AuthorityPropertyPane {
private static final int TITLE_HEIGHT = 19;
private static final int RIGHT_GAP = 10;
private AuthorityEditPane authorityEditPane = null;
private AuthorityToolBarPane authorityToolBarPane;
private String[] selectedPathArray;
public AuthorityEditToolBarPane(List<ToolBarButton> buttonList) {
public AuthorityEditToolBarPane(List<ToolBarButton> buttonlists) {
super(HistoryTemplateListPane.getInstance().getCurrentEditingTemplate());
this.init(buttonList);
}
private void init(List<ToolBarButton> buttonList) {
this.setLayout(new BorderLayout());
this.setBorder(null);
UILabel authorityTitle = new UILabel(Inter.getLocText(new String[]{"FR-Designer_Permissions",
@ -58,8 +52,8 @@ public class AuthorityEditToolBarPane extends AuthorityPropertyPane {
JPanel northPane = FRGUIPaneFactory.createBorderLayout_S_Pane();
northPane.add(authorityTitle, BorderLayout.CENTER);
northPane.setBorder(BorderFactory.createMatteBorder(0, 0, 1, 0, UIConstants.LINE_COLOR));
this.add(northPane, BorderLayout.NORTH);
authorityEditPane = new AuthorityEditPane(buttonList);
// this.add(northPane, BorderLayout.NORTH);
authorityEditPane = new AuthorityEditPane(buttonlists);
this.add(authorityEditPane, BorderLayout.CENTER);
}
@ -88,36 +82,40 @@ public class AuthorityEditToolBarPane extends AuthorityPropertyPane {
private class AuthorityEditPane extends JPanel {
private static final int TOP_GAP = 11;
private static final int LEFT_GAP = 8;
private static final int ALIGNMENT_GAP = -3;
private static final int LEFT_GAP = 4;
private static final int LEFT_CHECKPANE = 3;
private JPanel typePane;
private JPanel namePane;
private UILabel type = null;
private UILabel name = null;
private JPanel checkPane = null;
private List<ToolBarButton> buttonlists;
private UICheckBox buttonVisible = new UICheckBox(Inter.getLocText("FR-Designer_Visible"));
private UICheckBox buttonVisible = new UICheckBox(Inter.getLocText("FR-Designer_Widget_Visible"));
private ItemListener itemListener = new ItemListener() {
public void itemStateChanged(ItemEvent e) {
String selectedRole = ReportAndFSManagePane.getInstance().getRoleTree().getSelectedRoleName();
initSelectedPathArray();
if (ComparatorUtils.equals(selectedRole, Inter.getLocText("FR-Designer_Role")) || selectedRole == null || selectedPathArray == null) {
if (ComparatorUtils.equals(selectedRole, Inter.getLocText("FR-Designer_Role")) || selectedRole ==
null || selectedPathArray == null) {
return;
}
ToolBarButton selectedButton = null;
//是否可见的checkbox
UICheckBox checkbox = (UICheckBox) e.getSource();
for (int i = 0; i < buttonlists.size(); i++) {
if (buttonlists.get(i).isSelected()) {
selectedButton = buttonlists.get(i);
for (int t = 0; t < selectedPathArray.length; t++) {
for (int i = 0; i < buttonlists.size(); i++) {
if (buttonlists.get(i).isSelected()) {
buttonlists.get(i).changeAuthorityState(selectedPathArray[t], buttonVisible.isSelected());
authorityToolBarPane.repaint();
}
}
}
if (selectedButton != null) {
for (int t = 0; t < selectedPathArray.length; t++) {
selectedButton.changeAuthorityState(selectedPathArray[t], buttonVisible.isSelected());
authorityToolBarPane.repaint();
authorityToolBarPane.setAuthorityWebAttr(selectedButton.getWidget(), checkbox.isSelected(), selectedPathArray[t]);
HistoryTemplateListPane.getInstance().getCurrentEditingTemplate().fireTargetModified();
RolesAlreadyEditedPane.getInstance().refreshDockingView();
UICheckBox checkbox = (UICheckBox) e.getSource();
List<ToolBarButton> btns = AuthorityEditPane.this.buttonlists;
for (int j = 0; j < btns.size(); j++) {
if (btns.get(j).isSelected()) {
//由引擎实现保存进模板报表
authorityToolBarPane.setAuthorityWebAttr(btns.get(j).getWidget(), checkbox.isSelected(), selectedPathArray[t]);
}
}
HistoryTemplateListPane.getInstance().getCurrentEditingTemplate().fireTargetModified();//模版更新
RolesAlreadyEditedPane.getInstance().refreshDockingView();//已配置角色视图刷新
}
}
};
@ -148,43 +146,36 @@ public class AuthorityEditToolBarPane extends AuthorityPropertyPane {
public AuthorityEditPane(List<ToolBarButton> buttonlists) {
setLayout(new BorderLayout());
type = new UILabel();
typePane = new JPanel(new BorderLayout());
typePane.add(type, BorderLayout.CENTER);
type.setBorder(BorderFactory.createEmptyBorder(0,LEFT_GAP,0,0));
typePane.setBorder(BorderFactory.createLineBorder(Color.lightGray));
name = new UILabel();
namePane = new JPanel(new BorderLayout());
namePane.add(name, BorderLayout.CENTER);
name.setBorder(BorderFactory.createEmptyBorder(0,LEFT_GAP,0,0));
namePane.setBorder(BorderFactory.createLineBorder(Color.lightGray));
checkPane = new JPanel();
checkPane.setLayout(new BorderLayout());
this.add(layoutText(), BorderLayout.WEST);
this.add(layoutPane(), BorderLayout.CENTER);
this.setBorder(BorderFactory.createEmptyBorder(TOP_GAP, LEFT_GAP, 0, 0));
this.add(centerPane(), BorderLayout.NORTH);
this.setBorder(BorderFactory.createEmptyBorder(TOP_GAP, LEFT_GAP, 0, RIGHT_GAP));
this.buttonlists = buttonlists;
buttonVisible.addItemListener(itemListener);
}
private JPanel layoutText() {
double p = TableLayout.PREFERRED;
Component[][] components = new Component[][]{
new Component[]{new UILabel(Inter.getLocText("FR-Designer_Type") + ":", SwingConstants.RIGHT)},
new Component[]{new UILabel(Inter.getLocText("FR-Designer_WF_Name") + ":", SwingConstants.RIGHT)},
new Component[]{new UILabel(Inter.getLocText("FR-Designer_Permissions") + ":", SwingConstants
.RIGHT)},
};
double[] rowSize = {p, p, p};
double[] columnSize = {p};
int[][] rowCount = {{1}, {1}, {1}};
return TableLayoutHelper.createGapTableLayoutPane(components, rowSize, columnSize, rowCount, LayoutConstants.VGAP_MEDIUM, LayoutConstants.VGAP_MEDIUM);
}
private JPanel layoutPane() {
private JPanel centerPane() {
double f = TableLayout.FILL;
double p = TableLayout.PREFERRED;
double[] rowSize = {p, p, p};
double[] columnSize = {p, f};
int[][] rowCount = {{1, 1}, {1, 1}, {1, 1}};
Component[][] components = new Component[][]{
new Component[]{type},
new Component[]{name},
new Component[]{checkPane},
new Component[]{new UILabel(" " + Inter.getLocText("FR-Designer_Type") + " ", SwingConstants.LEFT), typePane},
new Component[]{new UILabel(" " + Inter.getLocText("FR-Designer_WF_Name") + " ", SwingConstants.LEFT), namePane},
new Component[]{checkPane, null},
};
double[] rowSize = {p, p, p};
double[] columnSize = {f};
int[][] rowCount = {{1}, {1}, {1}};
return TableLayoutHelper.createGapTableLayoutPane(components, rowSize, columnSize, rowCount, LayoutConstants.VGAP_MEDIUM, LayoutConstants.VGAP_MEDIUM);
return TableLayoutHelper.createGapTableLayoutPane(components, rowSize, columnSize, rowCount, LayoutConstants.VGAP_SMALL, LayoutConstants.VGAP_MEDIUM);
}
/**
@ -214,43 +205,42 @@ public class AuthorityEditToolBarPane extends AuthorityPropertyPane {
public void populateType() {
if (StringUtils.EMPTY.equals(name.getText())) {
type.setText(StringUtils.EMPTY);
if (name.getText() == "") {
type.setText("");
} else {
type.setText(Inter.getLocText(new String[]{"ReportServerP-Toolbar", "FR-Designer_Form_Button"}));
}
}
public void populateName() {
StringBuilder names = new StringBuilder();
String names = "";
for (int i = 0; i < buttonlists.size(); i++) {
if (buttonlists.get(i).isSelected()) {
names.append(",").append(buttonlists.get(i).getNameOption().optionName());
names += "," + buttonlists.get(i).getNameOption().optionName();
}
}
if (names.length() > 0) {
names.deleteCharAt(0);
if (names != "") {
names = names.substring(1);
}
name.setText(names.toString());
name.setText(names);
}
public void populateCheckPane() {
checkPane.removeAll();
if (StringUtils.EMPTY.equals(name.getText())) {
if (name.getText() == "") {
return;
}
double f = TableLayout.FILL;
double p = TableLayout.PREFERRED;
Component[][] components = new Component[][]{
new Component[]{new UILabel(Inter.getLocText("FR-Designer_Form_Button"), SwingConstants.LEFT),
buttonVisible},
new Component[]{buttonVisible},
};
double[] rowSize = {p, p};
double[] columnSize = {p, p, f};
int[][] rowCount = {{1, 1, 1}, {1, 1, 1}};
JPanel check = TableLayoutHelper.createGapTableLayoutPane(components, rowSize, columnSize, rowCount, LayoutConstants.VGAP_MEDIUM, LayoutConstants.VGAP_MEDIUM);
double[] rowSize = {p};
double[] columnSize = {p};
int[][] rowCount = {{1}};
JPanel check = TableLayoutHelper.createGapTableLayoutPane(components, rowSize, columnSize, rowCount, LayoutConstants.VGAP_SMALL, LayoutConstants.VGAP_SMALL);
checkPane.add(check, BorderLayout.CENTER);
checkPane.setBorder(BorderFactory.createEmptyBorder(ALIGNMENT_GAP, 0, 0, 0));
checkPane.setBorder(BorderFactory.createEmptyBorder(0, LEFT_CHECKPANE, 0, 0));
}
}
}

40
designer/src/com/fr/design/mainframe/AuthorityToolBarPane.java

@ -3,6 +3,7 @@ package com.fr.design.mainframe;
import com.fr.base.ConfigManager;
import com.fr.base.ConfigManagerProvider;
import com.fr.base.FRContext;
import com.fr.common.inputevent.InputEventBaseOnOS;
import com.fr.design.beans.BasicBeanPane;
import com.fr.design.file.HistoryTemplateListPane;
import com.fr.design.gui.icombobox.UIComboBox;
@ -67,7 +68,7 @@ public class AuthorityToolBarPane<T extends WebContent> extends BasicBeanPane<Re
buttonlists.get(i).setSelected(true);
}
}
} else if (!e.isControlDown()) {
} else if (!InputEventBaseOnOS.isControlDown(e)) {
//实现单选
removeSelection();
if (selectedIndex != -1) {
@ -75,7 +76,9 @@ public class AuthorityToolBarPane<T extends WebContent> extends BasicBeanPane<Re
}
}
authorityEditToolBarPane.populate();
EastRegionContainerPane.getInstance().replaceUpPane(authorityEditToolBarPane);
EastRegionContainerPane.getInstance().switchMode(EastRegionContainerPane.PropertyMode.AUTHORITY_EDITION);
EastRegionContainerPane.getInstance().replaceAuthorityEditionPane(authorityEditToolBarPane);
}
};
@ -113,8 +116,8 @@ public class AuthorityToolBarPane<T extends WebContent> extends BasicBeanPane<Re
populateToolBarPane();
authorityEditToolBarPane = new AuthorityEditToolBarPane(toolBarPane.getToolBarButtons());
authorityEditToolBarPane.setAuthorityToolBarPane(AuthorityToolBarPane.this);
EastRegionContainerPane.getInstance().replaceUpPane(authorityEditToolBarPane);
EastRegionContainerPane.getInstance().replaceDownPane(RolesAlreadyEditedPane.getInstance());
EastRegionContainerPane.getInstance().replaceAuthorityEditionPane(authorityEditToolBarPane);
EastRegionContainerPane.getInstance().replaceConfiguredRolesPane(RolesAlreadyEditedPane.getInstance());
}
}
};
@ -215,23 +218,27 @@ public class AuthorityToolBarPane<T extends WebContent> extends BasicBeanPane<Re
ReportWebAttr rw = wbTpl.getReportWebAttr();
ConfigManagerProvider cm = ConfigManager.getProviderInstance();
ReportWebAttr webAttr = ((ReportWebAttr) cm.getGlobalAttribute(ReportWebAttr.class));
if (webAttr == null || rw == null || rw.getWebPage() == null) {
return;
}
//wbTpl.clear先清空
//再将所有的保存进去
//看是存在服务器还存在模板里面
if (choseComboBox.getSelectedIndex() == 0) {
//分页
dealWithWebContent(webAttr.getWebPage(), widget, isSelected, selectedRole);
if (rw == null || rw.getWebPage() == null) {
dealWithWebContent(webAttr.getWebPage(), widget, isSelected, selectedRole);
}
} else if (choseComboBox.getSelectedIndex() == 1) {
//填报
dealWithWebContent(webAttr.getWebWrite(), widget, isSelected, selectedRole);
if (rw == null || rw.getWebPage() == null) {
dealWithWebContent(webAttr.getWebWrite(), widget, isSelected, selectedRole);
}
} else {
//view
dealWithWebContent(webAttr.getWebView(), widget, isSelected, selectedRole);
if (rw == null || rw.getWebPage() == null) {
dealWithWebContent(webAttr.getWebView(), widget, isSelected, selectedRole);
}
}
}
private void dealWithWebContent(WebContent wc, Widget widget, boolean isSelected, String selectedRole) {
@ -242,11 +249,14 @@ public class AuthorityToolBarPane<T extends WebContent> extends BasicBeanPane<Re
for (int i = 0; i < managers.length; i++) {
ToolBar tb = managers[i].getToolBar();
for (int j = 0; j < tb.getWidgetSize(); j++) {
if (widget instanceof Button && tb.getWidget(j) instanceof Button && ComparatorUtils.equals(((Button) widget).getIconName(), ((Button) tb.getWidget(j)).getIconName())) {
if (!isSelected) {
tb.getWidget(j).getWidgetPrivilegeControl().addInvisibleRole(selectedRole);
} else {
tb.getWidget(j).getWidgetPrivilegeControl().removeInvisibleRole(selectedRole);
if (widget instanceof Button && tb.getWidget(j) instanceof Button) {
if (ComparatorUtils.equals(((Button) widget).getIconName(),
((Button) tb.getWidget(j)).getIconName())) {
if (!isSelected) {
tb.getWidget(j).getWidgetPrivilegeControl().addInvisibleRole(selectedRole);
} else {
tb.getWidget(j).getWidgetPrivilegeControl().removeInvisibleRole(selectedRole);
}
}
}
}

218
designer/src/com/fr/design/present/PresentPane.java

@ -1,109 +1,111 @@
package com.fr.design.present;
import com.fr.base.present.DictPresent;
import com.fr.base.present.FormulaPresent;
import com.fr.base.present.Present;
import com.fr.design.ExtraDesignClassManager;
import com.fr.design.beans.FurtherBasicBeanPane;
import com.fr.design.fun.PresentKindProvider;
import com.fr.design.gui.frpane.UIComboBoxPane;
import com.fr.design.gui.icombobox.DictionaryComboBox;
import com.fr.design.gui.icombobox.UIComboBox;
import com.fr.general.Inter;
import com.fr.report.cell.cellattr.BarcodePresent;
import com.fr.report.cell.cellattr.CurrencyLinePresent;
import java.awt.event.ItemListener;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
/**
* @author zhou
* @since 2012-5-31上午11:22:28
*/
public class PresentPane extends UIComboBoxPane<Present> {
private DictPresentPane dictPresentPane;
private List<String> keys;
private List<String> displays;
@Override
protected String title4PopupWindow() {
return Inter.getLocText("FR-Designer_Present");
}
public void setSelectedByName(String radioName) {
jcb.setSelectedItem(radioName);
}
/**
* 增加tab改变监听事件
* @param l 监听事件
*/
public void addTabChangeListener(ItemListener l) {
super.addTabChangeListener(l);
dictPresentPane.addTabChangeListener(l);
}
@Override
public void populateBean(Present ob) {
if(ob == null) {
dictPresentPane.reset();
}
super.populateBean(ob);
}
@Override
protected List<FurtherBasicBeanPane<? extends Present>> initPaneList() {
if (keys == null) {
keys = new ArrayList<String>();
}
if (displays == null) {
displays = new ArrayList<String>();
}
List<FurtherBasicBeanPane<? extends Present>> paneList = new ArrayList<FurtherBasicBeanPane<? extends Present>>();
FurtherBasicBeanPane<Present> none = new NonePresentPane();
paneList.add(none);
keys.add("NOPRESENT");
displays.add(none.title4PopupWindow());
paneList.add(dictPresentPane = new DictPresentPane());
keys.add(DictPresent.class.getName());
displays.add(dictPresentPane.title4PopupWindow());
FurtherBasicBeanPane<BarcodePresent> bar = new BarCodePane();
paneList.add(bar);
keys.add(BarcodePresent.class.getName());
displays.add(bar.title4PopupWindow());
FurtherBasicBeanPane<FormulaPresent> formula = new FormulaPresentPane();
paneList.add(formula);
keys.add(FormulaPresent.class.getName());
displays.add(formula.title4PopupWindow());
FurtherBasicBeanPane<CurrencyLinePresent> currency = new CurrencyLinePane();
paneList.add(currency);
keys.add(CurrencyLinePresent.class.getName());
displays.add(currency.title4PopupWindow());
Set<PresentKindProvider> providers = ExtraDesignClassManager.getInstance().getArray(PresentKindProvider.MARK_STRING);
for (PresentKindProvider provider : providers) {
FurtherBasicBeanPane<? extends Present> extra = provider.appearanceForPresent();
paneList.add(extra);
keys.add(provider.kindOfPresent().getName());
displays.add(extra.title4PopupWindow());
}
return paneList;
}
@Override
protected UIComboBox createComboBox() {
return new DictionaryComboBox<String>(keys.toArray(new String[keys.size()]), displays.toArray(new String[displays.size()]));
}
@Override
protected void addComboBoxItem(List<FurtherBasicBeanPane<? extends Present>> cards, int index) {
// 初始化的时候已经加了,所以这里不用加了
}
package com.fr.design.present;
import com.fr.base.present.DictPresent;
import com.fr.base.present.FormulaPresent;
import com.fr.base.present.Present;
import com.fr.design.ExtraDesignClassManager;
import com.fr.design.beans.FurtherBasicBeanPane;
import com.fr.design.constants.UIConstants;
import com.fr.design.fun.PresentKindProvider;
import com.fr.design.gui.frpane.UIComboBoxPane;
import com.fr.design.gui.icombobox.DictionaryComboBox;
import com.fr.design.gui.icombobox.UIComboBox;
import com.fr.general.Inter;
import com.fr.report.cell.cellattr.BarcodePresent;
import com.fr.report.cell.cellattr.CurrencyLinePresent;
import java.awt.event.ItemListener;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
/**
* @author zhou
* @since 2012-5-31上午11:22:28
*/
public class PresentPane extends UIComboBoxPane<Present> {
private DictPresentPane dictPresentPane;
private List<String> keys;
private List<String> displays;
@Override
protected String title4PopupWindow() {
return Inter.getLocText("FR-Designer_Present");
}
public void setSelectedByName(String radioName) {
jcb.setSelectedItem(radioName);
}
/**
* 增加tab改变监听事件
* @param l 监听事件
*/
public void addTabChangeListener(ItemListener l) {
super.addTabChangeListener(l);
dictPresentPane.addTabChangeListener(l);
}
@Override
public void populateBean(Present ob) {
if(ob == null) {
dictPresentPane.reset();
}
super.populateBean(ob);
}
@Override
protected List<FurtherBasicBeanPane<? extends Present>> initPaneList() {
if (keys == null) {
keys = new ArrayList<>();
}
if (displays == null) {
displays = new ArrayList<>();
}
List<FurtherBasicBeanPane<? extends Present>> paneList = new ArrayList<>();
FurtherBasicBeanPane<Present> none = new NonePresentPane();
paneList.add(none);
keys.add("NOPRESENT");
displays.add(none.title4PopupWindow());
dictPresentPane = new DictPresentPane();
paneList.add(dictPresentPane);
keys.add(DictPresent.class.getName());
displays.add(dictPresentPane.title4PopupWindow());
FurtherBasicBeanPane<BarcodePresent> bar = new BarCodePane();
paneList.add(bar);
keys.add(BarcodePresent.class.getName());
displays.add(bar.title4PopupWindow());
FurtherBasicBeanPane<FormulaPresent> formula = new FormulaPresentPane();
paneList.add(formula);
keys.add(FormulaPresent.class.getName());
displays.add(formula.title4PopupWindow());
FurtherBasicBeanPane<CurrencyLinePresent> currency = new CurrencyLinePane();
paneList.add(currency);
keys.add(CurrencyLinePresent.class.getName());
displays.add(currency.title4PopupWindow());
Set<PresentKindProvider> providers = ExtraDesignClassManager.getInstance().getArray(PresentKindProvider.MARK_STRING);
for (PresentKindProvider provider : providers) {
FurtherBasicBeanPane<? extends Present> extra = provider.appearanceForPresent();
paneList.add(extra);
keys.add(provider.kindOfPresent().getName());
displays.add(extra.title4PopupWindow());
}
return paneList;
}
@Override
protected UIComboBox createComboBox() {
return new DictionaryComboBox<>(keys.toArray(new String[keys.size()]), displays.toArray(new String[displays.size()]));
}
@Override
protected void addComboBoxItem(List<FurtherBasicBeanPane<? extends Present>> cards, int index) {
// 初始化的时候已经加了,所以这里不用加了
}
}

53
designer/src/com/fr/design/widget/ui/CheckBoxGroupDefinePane.java

@ -1,21 +1,18 @@
package com.fr.design.widget.ui;
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.*;
import javax.swing.BorderFactory;
import javax.swing.JPanel;
import com.fr.design.data.DataCreatorUI;
import com.fr.design.gui.icheckbox.UICheckBox;
import com.fr.design.layout.FRGUIPaneFactory;
import com.fr.design.present.dict.DictionaryPane;
import com.fr.design.layout.TableLayout;
import com.fr.design.layout.TableLayoutHelper;
import com.fr.form.ui.CheckBoxGroup;
import com.fr.general.Inter;
public class CheckBoxGroupDefinePane extends FieldEditorDefinePane<CheckBoxGroup> {
private DictionaryPane dictPane;
CheckBoxDictPane checkBoxDictPane;
private UICheckBox checkbox;
@ -29,7 +26,6 @@ public class CheckBoxGroupDefinePane extends FieldEditorDefinePane<CheckBoxGroup
protected void initComponents() {
super.initComponents();
dictPane = new DictionaryPane();
}
@Override
@ -39,34 +35,31 @@ public class CheckBoxGroupDefinePane extends FieldEditorDefinePane<CheckBoxGroup
@Override
protected JPanel setFirstContentPane() {
JPanel attrPane = FRGUIPaneFactory.createBorderLayout_S_Pane();
attrPane.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0));
JPanel advancedPane = FRGUIPaneFactory.createTitledBorderPane(Inter.getLocText("FR-Designer_Advanced"));
advancedPane.add(attrPane);
JPanel northPane = FRGUIPaneFactory.createBorderLayout_S_Pane();
northPane.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0));
JPanel advancePane = FRGUIPaneFactory.createBorderLayout_S_Pane();
checkbox = new UICheckBox(Inter.getLocText(new String[]{"Provide", "Choose_All"}));
checkbox.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0));
buttonGroupDictPane = new ButtonGroupDictPane();
checkBoxDictPane = new CheckBoxDictPane();
checkBoxDictPane.setLayout(new FlowLayout(FlowLayout.LEFT, 5, 0));
northPane.add(checkBoxDictPane, BorderLayout.NORTH);
JPanel chooseAllPane = new JPanel();
checkbox = new UICheckBox(Inter.getLocText("FR-Designer_Provide_Choose_All"));
chooseAllPane.add(checkbox);
chooseAllPane.setLayout(new FlowLayout(FlowLayout.LEFT, 8, 0));
northPane.add(chooseAllPane, BorderLayout.CENTER);
attrPane.add(northPane, BorderLayout.NORTH);
double f = TableLayout.FILL;
double p = TableLayout.PREFERRED;
Component[][] components = new Component[][]{
new Component[]{buttonGroupDictPane, null },
new Component[]{checkbox, null },
new Component[]{checkBoxDictPane, null },
JPanel centerPane = FRGUIPaneFactory.createNormalFlowInnerContainer_S_Pane();
buttonGroupDictPane = new ButtonGroupDictPane();
buttonGroupDictPane.setLayout(new FlowLayout(FlowLayout.LEFT, 3, 0));
centerPane.add(buttonGroupDictPane);
attrPane.add(centerPane, BorderLayout.CENTER);
};
double[] rowSize = {p, p, p, p};
double[] columnSize = {p, f};
int[][] rowCount = {{1, 1},{1, 1},{1,1},{1,1}};
JPanel panel = TableLayoutHelper.createGapTableLayoutPane(components, rowSize, columnSize, rowCount, 10, 7);
// panel.setBorder(BorderFactory.createEmptyBorder(10, 0, 10, 0));
advancePane.add(panel);
return advancePane;
return advancedPane;
}
@Override
protected void populateSubFieldEditorBean(CheckBoxGroup ob) {
this.dictPane.populateBean(ob.getDictionary());
checkBoxDictPane.populate(ob);
checkbox.setSelected(ob.isChooseAll());
this.buttonGroupDictPane.populate(ob);
@ -75,8 +68,6 @@ public class CheckBoxGroupDefinePane extends FieldEditorDefinePane<CheckBoxGroup
@Override
protected CheckBoxGroup updateSubFieldEditorBean() {
CheckBoxGroup ob = new CheckBoxGroup();
ob.setDictionary(this.dictPane.updateBean());
checkBoxDictPane.update(ob);
ob.setChooseAll(checkbox.isSelected());
this.buttonGroupDictPane.update(ob);
@ -85,6 +76,6 @@ public class CheckBoxGroupDefinePane extends FieldEditorDefinePane<CheckBoxGroup
@Override
public DataCreatorUI dataUI() {
return dictPane;
return null;
}
}

315
designer/src/com/fr/design/widget/ui/NumberEditorDefinePane.java

@ -4,10 +4,12 @@ import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.BorderFactory;
import javax.swing.JComponent;
import javax.swing.JFormattedTextField;
import com.fr.design.constants.LayoutConstants;
import com.fr.design.gui.ilable.UILabel;
import javax.swing.JPanel;
@ -18,14 +20,16 @@ import javax.swing.text.DefaultFormatter;
import com.fr.design.gui.icheckbox.UICheckBox;
import com.fr.design.gui.ispinner.UIBasicSpinner;
import com.fr.design.gui.ispinner.UISpinner;
import com.fr.design.layout.FRGUIPaneFactory;
import com.fr.design.layout.TableLayout;
import com.fr.design.layout.TableLayoutHelper;
import com.fr.form.ui.NumberEditor;
import com.fr.general.Inter;
import com.fr.design.utils.gui.GUICoreUtils;
public class NumberEditorDefinePane extends FieldEditorDefinePane<NumberEditor> {
/**
*
* FieldEditorDefinePane
*/
private static final long serialVersionUID = 8011242951911686805L;
private UICheckBox allowDecimalsCheckBox;
@ -36,112 +40,23 @@ public class NumberEditorDefinePane extends FieldEditorDefinePane<NumberEditor>
private SpinnerNumberModel maxValueModel;
private UIBasicSpinner minValueSpinner;
private SpinnerNumberModel minValueModel;
private com.fr.design.editor.editor.IntegerEditor decimalLength;
private UISpinner decimalLength;
private JPanel limitNumberPane;
private WaterMarkDictPane waterMarkDictPane;
private ActionListener actionListener1 = new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (allowDecimalsCheckBox.isSelected()) {
limitNumberPane.setVisible(true);
} else {
limitNumberPane.setVisible(false);
}
}
};
private ActionListener actionListener2 = new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
if (allowNegativeCheckBox.isSelected()) {
minValueModel.setMinimum(-Double.MAX_VALUE);
if (!setMinValueCheckBox.isSelected()) {
maxValueModel.setMinimum(-Double.MAX_VALUE);
}
} else {
minValueModel.setMinimum(0.0);
if (!setMinValueCheckBox.isSelected()) {
maxValueModel.setMinimum(0.0);
}
Double minValue = Double.parseDouble("" + minValueSpinner.getValue());
Double maxValue = Double.parseDouble("" + maxValueSpinner.getValue());
if (minValue < 0.0) {
minValueSpinner.setValue(0.0);
}
if (maxValue < 0.0) {
maxValueSpinner.setValue(0.0);
}
}
}
};
private ActionListener actionListener3 = new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (setMaxValueCheckBox.isSelected()) {
maxValueSpinner.setVisible(true);
Double value = new Double(0);
if (setMinValueCheckBox.isSelected()) {
Double minValue = Double.parseDouble("" + minValueSpinner.getValue());
if (minValue > value) {
value = minValue;
}
}
maxValueSpinner.setValue(value);
} else {
maxValueSpinner.setVisible(false);
minValueModel.setMaximum(Double.MAX_VALUE);
}
}
};
private ActionListener allowDecimalsListener;
private ActionListener actionListener4 = new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (setMinValueCheckBox.isSelected()) {
minValueSpinner.setVisible(true);
Double value = new Double(0);
if (setMaxValueCheckBox.isSelected()) {
Double maxValue = Double.parseDouble("" + maxValueSpinner.getValue());
if (maxValue < value) {
value = maxValue;
}
}
minValueSpinner.setValue(value);
} else {
minValueSpinner.setVisible(false);
maxValueModel.setMinimum(allowNegativeCheckBox.isSelected() ? (-Double.MAX_VALUE) : new Double(0));
}
}
};
private ActionListener allowNegativeListener ;
private ChangeListener changeListener1 = new ChangeListener() {
public ActionListener setMaxListener;
@Override
public void stateChanged(ChangeEvent e) {
if (setMaxValueCheckBox.isSelected()) {
if (setMinValueCheckBox.isSelected()) {
minValueModel.setMaximum(Double.parseDouble("" + maxValueSpinner.getValue()));
}
}
}
};
private ActionListener setMinListener;
private ChangeListener changeListener2 = new ChangeListener() {
private ChangeListener maxValueChangeListener;
@Override
public void stateChanged(ChangeEvent e) {
if (setMinValueCheckBox.isSelected()) {
if (setMaxValueCheckBox.isSelected()) {
maxValueModel.setMinimum(Double.parseDouble("" + minValueSpinner.getValue()));
}
}
}
};
private ChangeListener minValueChangeListener;
public NumberEditorDefinePane() {
this.initComponents();
}
@ -152,52 +67,60 @@ public class NumberEditorDefinePane extends FieldEditorDefinePane<NumberEditor>
@Override
protected JPanel setFirstContentPane() {
JPanel content = FRGUIPaneFactory.createY_AXISBoxInnerContainer_L_Pane();
content.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0));
content.setLayout(FRGUIPaneFactory.createBorderLayout());
// richer:数字的允许直接编辑没有意义
JPanel content = FRGUIPaneFactory.createBorderLayout_S_Pane();
waterMarkDictPane = new WaterMarkDictPane();
waterMarkDictPane.setBorder(BorderFactory.createEmptyBorder(0, 0, 10, 0));
content.add(waterMarkDictPane, BorderLayout.CENTER);
return content;
}
JPanel northPane = FRGUIPaneFactory.createTitledBorderPane(Inter.getLocText("FR-Designer_Advanced"));
content.add(northPane, BorderLayout.NORTH);
waterMarkDictPane = new WaterMarkDictPane();
northPane.add(waterMarkDictPane);
content.add(northPane, BorderLayout.NORTH);
this.allowDecimalsCheckBox = new UICheckBox(Inter.getLocText("Allow_Decimals"));
this.decimalLength = new com.fr.design.editor.editor.IntegerEditor();
this.decimalLength.setColumns(4);
limitNumberPane = GUICoreUtils.createFlowPane(new JComponent[]{new UILabel(Inter.getLocText("FR-Designer_Decimal_Places")), this.decimalLength},
FlowLayout.LEFT, 4);
getValidatePane().add(GUICoreUtils.createFlowPane(new JComponent[]{this.allowDecimalsCheckBox, limitNumberPane}, FlowLayout.LEFT, 4));
this.allowDecimalsCheckBox.addActionListener(actionListener1);
this.allowNegativeCheckBox = new UICheckBox(Inter.getLocText("Allow_Negative"));
getValidatePane().add(GUICoreUtils.createFlowPane(new JComponent[]{this.allowNegativeCheckBox}, FlowLayout.LEFT, 4));
this.allowNegativeCheckBox.addActionListener(actionListener2);
this.setMaxValueCheckBox = new UICheckBox(Inter.getLocText("Need_Max_Value"), false);
public JPanel setValidatePane() {
initListeners();
this.allowDecimalsCheckBox = new UICheckBox(Inter.getLocText("FR-Designer_Allow_Decimals"));
allowDecimalsCheckBox.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0));
this.decimalLength = new UISpinner(0, Integer.MAX_VALUE, 1, 16);
this.allowDecimalsCheckBox.addActionListener(allowDecimalsListener);
this.allowNegativeCheckBox = new UICheckBox(Inter.getLocText("FR-Designer_Allow_Negative"));
this.allowNegativeCheckBox.addActionListener(allowNegativeListener);
allowNegativeCheckBox.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0));
this.setMaxValueCheckBox = new UICheckBox(Inter.getLocText("FR-Designer_Max_Value"), false);
setMaxValueCheckBox.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0));
this.maxValueSpinner = new UIBasicSpinner(maxValueModel = new SpinnerNumberModel(0D, -Double.MAX_VALUE, Double.MAX_VALUE, 1D));
maxValueSpinner.setPreferredSize(new Dimension(120, 20));
setNotAllowsInvalid(this.maxValueSpinner);
getValidatePane().add(GUICoreUtils.createFlowPane(new JComponent[]{this.setMaxValueCheckBox, this.maxValueSpinner}, FlowLayout.LEFT, 4));
this.maxValueSpinner.setVisible(false);
this.setMaxValueCheckBox.addActionListener(actionListener3);
this.maxValueSpinner.addChangeListener(changeListener1);
this.setMaxValueCheckBox.addActionListener(setMaxListener);
this.maxValueSpinner.addChangeListener(maxValueChangeListener);
this.setMinValueCheckBox = new UICheckBox(Inter.getLocText("Need_Min_Value"), false);
this.setMinValueCheckBox = new UICheckBox(Inter.getLocText("FR-Designer_Min_Value"), false);
setMinValueCheckBox.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0));
this.minValueSpinner = new UIBasicSpinner(minValueModel = new SpinnerNumberModel(0D, -Double.MAX_VALUE, Double.MAX_VALUE, 1D));
minValueSpinner.setPreferredSize(new Dimension(120, 20));
setNotAllowsInvalid(this.minValueSpinner);
getValidatePane().add(GUICoreUtils.createFlowPane(new JComponent[]{this.setMinValueCheckBox, this.minValueSpinner}, FlowLayout.LEFT, 4));
this.minValueSpinner.setVisible(false);
this.setMinValueCheckBox.addActionListener(actionListener4);
this.minValueSpinner.addChangeListener(changeListener2);
getValidatePane().add(GUICoreUtils.createFlowPane(new JComponent[]{new UILabel(Inter.getLocText(new String[]{"Error", "Tooltips"}) + ":"), getRegErrorMsgTextField()}, FlowLayout.LEFT, 24));
return content;
this.setMinValueCheckBox.addActionListener(setMinListener);
this.minValueSpinner.addChangeListener(minValueChangeListener);
UILabel numberLabel = new UILabel(Inter.getLocText(new String[]{"FR-Designer_Double", "Numbers"}));
limitNumberPane = TableLayoutHelper.createGapTableLayoutPane(new Component[][]{new Component[]{numberLabel, decimalLength}}, TableLayoutHelper.FILL_LASTCOLUMN, 18, 7);
double f = TableLayout.FILL;
double p = TableLayout.PREFERRED;
Component[][] components = new Component[][]{
new Component[]{allowDecimalsCheckBox, null},
new Component[]{limitNumberPane, null},
new Component[]{allowNegativeCheckBox, null},
new Component[]{setMaxValueCheckBox, maxValueSpinner},
new Component[]{setMinValueCheckBox, minValueSpinner},
};
double[] rowSize = {p, p, p, p, p};
double[] columnSize = {p, f};
int[][] rowCount = {{1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}};
JPanel pane = TableLayoutHelper.createGapTableLayoutPane(components, rowSize, columnSize, rowCount, LayoutConstants.VGAP_MEDIUM, LayoutConstants.VGAP_MEDIUM);
pane.setBorder(BorderFactory.createEmptyBorder(10, 0, 0, 0));
return pane;
}
@Override
protected void populateSubFieldEditorBean(NumberEditor e) {
allowDecimalsCheckBox.setSelected(e.isAllowDecimals());
@ -205,31 +128,30 @@ public class NumberEditorDefinePane extends FieldEditorDefinePane<NumberEditor>
this.decimalLength.setValue(e.getMaxDecimalLength());
} else {
this.limitNumberPane.setVisible(false);
this.limitNumberPane.setPreferredSize(new Dimension(0,0));
}
allowNegativeCheckBox.setSelected(e.isAllowNegative());
if (e.getMaxValue() == Double.MAX_VALUE) {
setMaxValueCheckBox.setSelected(false);
maxValueSpinner.setValue(new Double(Double.MAX_VALUE));
maxValueSpinner.setVisible(false);
maxValueSpinner.setEnabled(false);
} else {
setMaxValueCheckBox.setSelected(true);
maxValueSpinner.setVisible(true);
maxValueSpinner.setEnabled(true);
maxValueSpinner.setValue(new Double(e.getMaxValue()));
}
if (e.getMinValue() == -Double.MAX_VALUE) {
setMinValueCheckBox.setSelected(false);
minValueSpinner.setValue(new Double(-Double.MAX_VALUE));
minValueSpinner.setVisible(false);
minValueSpinner.setEnabled(false);
} else {
minValueSpinner.setEnabled(true);
setMinValueCheckBox.setSelected(true);
minValueSpinner.setVisible(true);
minValueSpinner.setValue(new Double(e.getMinValue()));
}
this.getRegErrorMsgTextField().setText(e.getRegErrorMessage());
this.waterMarkDictPane.populate(e);
}
@ -239,7 +161,7 @@ public class NumberEditorDefinePane extends FieldEditorDefinePane<NumberEditor>
NumberEditor ob = new NumberEditor();
ob.setAllowDecimals(allowDecimalsCheckBox.isSelected());
if (allowDecimalsCheckBox.isSelected()) {
ob.setMaxDecimalLength(this.decimalLength.getValue());
ob.setMaxDecimalLength((int)this.decimalLength.getValue());
}
ob.setAllowNegative(allowNegativeCheckBox.isSelected());
@ -257,23 +179,112 @@ public class NumberEditorDefinePane extends FieldEditorDefinePane<NumberEditor>
this.waterMarkDictPane.update(ob);
ob.setRegErrorMessage(this.getRegErrorMsgTextField().getText());
return ob;
}
private void checkVisible() {
if (setMinValueCheckBox.isSelected()) {
minValueSpinner.setVisible(true);
} else {
minValueSpinner.setVisible(false);
}
if (setMinValueCheckBox.isSelected()) {
minValueSpinner.setVisible(true);
} else {
minValueSpinner.setVisible(false);
private void initListeners(){ allowDecimalsListener = new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (allowDecimalsCheckBox.isSelected()) {
limitNumberPane.setVisible(true);
limitNumberPane.setPreferredSize(new Dimension(215,20));
} else {
limitNumberPane.setVisible(false);
limitNumberPane.setPreferredSize(new Dimension(0,0));
}
}
};
allowNegativeListener = new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
if (allowNegativeCheckBox.isSelected()) {
minValueModel.setMinimum(-Double.MAX_VALUE);
if (!setMinValueCheckBox.isSelected()) {
maxValueModel.setMinimum(-Double.MAX_VALUE);
}
} else {
minValueModel.setMinimum(0.0);
if (!setMinValueCheckBox.isSelected()) {
maxValueModel.setMinimum(0.0);
}
Double minValue = Double.parseDouble("" + minValueSpinner.getValue());
Double maxValue = Double.parseDouble("" + maxValueSpinner.getValue());
if (minValue < 0.0) {
minValueSpinner.setValue(0.0);
}
if (maxValue < 0.0) {
maxValueSpinner.setValue(0.0);
}
}
}
};
setMaxListener = new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (setMaxValueCheckBox.isSelected()) {
maxValueSpinner.setEnabled(true);
Double value = new Double(0);
if (setMinValueCheckBox.isSelected()) {
Double minValue = Double.parseDouble("" + minValueSpinner.getValue());
if (minValue > value) {
value = minValue;
}
}
maxValueSpinner.setValue(value);
} else {
maxValueSpinner.setEnabled(false);
minValueModel.setMaximum(Double.MAX_VALUE);
}
}
};
setMinListener = new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (setMinValueCheckBox.isSelected()) {
minValueSpinner.setEnabled(true);
Double value = new Double(0);
if (setMaxValueCheckBox.isSelected()) {
Double maxValue = Double.parseDouble("" + maxValueSpinner.getValue());
if (maxValue < value) {
value = maxValue;
}
}
minValueSpinner.setValue(value);
} else {
minValueSpinner.setEnabled(false);
maxValueModel.setMinimum(allowNegativeCheckBox.isSelected() ? (-Double.MAX_VALUE) : new Double(0));
}
}
};
maxValueChangeListener = new ChangeListener() {
@Override
public void stateChanged(ChangeEvent e) {
if (setMaxValueCheckBox.isSelected()) {
if (setMinValueCheckBox.isSelected()) {
minValueModel.setMaximum(Double.parseDouble("" + maxValueSpinner.getValue()));
}
}
}
};
minValueChangeListener = new ChangeListener() {
@Override
public void stateChanged(ChangeEvent e) {
if (setMinValueCheckBox.isSelected()) {
if (setMaxValueCheckBox.isSelected()) {
maxValueModel.setMinimum(Double.parseDouble("" + minValueSpinner.getValue()));
}
}
}
};
}
private void setNotAllowsInvalid(UIBasicSpinner jspinner) {

7
designer_base/src/com/fr/design/actions/file/SwitchExistEnv.java

@ -118,7 +118,7 @@ public class SwitchExistEnv extends MenuDef {
return;
}
SignIn.signIn(selectedEnv);
resetLicenseBytes();
FRCoreContext.resetBytes();
HistoryTemplateListPane.getInstance().getCurrentEditingTemplate().refreshToolArea();
fireDSChanged();
} catch (Exception em) {
@ -127,10 +127,5 @@ public class SwitchExistEnv extends MenuDef {
TemplatePane.getInstance().editItems();
}
}
private void resetLicenseBytes() {
FRCoreContext.retryLicLock();
}
}
}

382
designer_base/src/com/fr/design/extra/PluginHelper.java

@ -1,382 +0,0 @@
package com.fr.design.extra;
import com.fr.base.Env;
import com.fr.base.FRContext;
import com.fr.design.DesignerEnvManager;
import com.fr.design.extra.plugindependence.DownLoadDependenceUI;
import com.fr.general.FRLogger;
import com.fr.general.GeneralUtils;
import com.fr.general.IOUtils;
import com.fr.general.Inter;
import com.fr.general.SiteCenter;
import com.fr.general.http.HttpClient;
import com.fr.plugin.Plugin;
import com.fr.plugin.PluginConfigManager;
import com.fr.plugin.PluginLoader;
import com.fr.plugin.PluginManagerHelper;
import com.fr.plugin.basic.version.Version;
import com.fr.plugin.basic.version.VersionIntervalFactory;
import com.fr.plugin.dependence.PluginDependence;
import com.fr.plugin.dependence.PluginDependenceException;
import com.fr.plugin.dependence.PluginDependenceUnit;
import com.fr.stable.ArrayUtils;
import com.fr.stable.AssistUtils;
import com.fr.stable.EncodeConstants;
import com.fr.stable.StableUtils;
import com.fr.stable.StringUtils;
import com.fr.stable.plugin.PluginConstants;
import com.fr.stable.project.ProjectConstants;
import com.fr.stable.xml.XMLTools;
import javax.swing.*;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URLDecoder;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.concurrent.ExecutionException;
/**
* @author richie
* @date 2015-03-10
* @since 8.0
*/
public class PluginHelper {
private static final String TEMP_PATH = System.getProperty("user.dir") + "/tmp";
public static final String DOWNLOAD_PATH = System.getProperty("user.dir") + "/download";
//插件依赖的下载位置
public static final String DEPENDENCE_DOWNLOAD_PATH = System.getProperty("user.dir") + "/download/dependence";
public static final String TEMP_FILE = "temp.zip";
public static final String CONNECTION_404 = "404";
/**
* 下载插件
*
* @param id 插件id
* @param p 下载百分比处理
*/
public static void downloadPluginFile(String id, String username, String password, Process<Double> p) throws Exception {
HttpClient httpClient = new HttpClient(getDownloadPath(id, username, password));
if (httpClient.getResponseCode() == HttpURLConnection.HTTP_OK) {
int totalSize = httpClient.getContentLength();
InputStream reader = httpClient.getResponseStream();
String temp = StableUtils.pathJoin(DOWNLOAD_PATH, TEMP_FILE);
StableUtils.makesureFileExist(new File(temp));
FileOutputStream writer = new FileOutputStream(temp);
byte[] buffer = new byte[PluginConstants.BYTES_NUM];
int bytesRead = 0;
int totalBytesRead = 0;
while ((bytesRead = reader.read(buffer)) > 0) {
writer.write(buffer, 0, bytesRead);
buffer = new byte[PluginConstants.BYTES_NUM];
totalBytesRead += bytesRead;
p.process(totalBytesRead / (double) totalSize);
}
reader.close();
writer.flush();
writer.close();
} else {
throw new com.fr.plugin.PluginVerifyException(Inter.getLocText("FR-Designer-Plugin_Connect_Server_Error"));
}
}
private static boolean isInvalidUser(String id, String username, String password) {
if (StringUtils.isEmpty(id)) {
return false;
} else if (StringUtils.isEmpty(username) || StringUtils.isEmpty(password)){
return false;
} else {
return true;
}
}
private static String getDownloadPath(String id, String username, String password) throws Exception {
HashMap<String, String> map = new HashMap<String, String>();
map.put("id", id);
map.put("username", username);
map.put("password", password);
HttpClient httpClient = new HttpClient(SiteCenter.getInstance().acquireUrlByKind("plugin.download"), map);
String resText = httpClient.getResponseText();
String charSet = EncodeConstants.ENCODING_UTF_8;
resText = URLDecoder.decode(URLDecoder.decode(resText, charSet), charSet);
return resText;
}
public static File getDownloadTempFile() {
return new File(StableUtils.pathJoin(DOWNLOAD_PATH, TEMP_FILE));
}
/**
* 从压缩文件中读取插件信息
*
* @param chosenFile 选择的压缩文件
* @return 返回插件对象
* @throws Exception 读取插件信息失败则抛出异常
*/
public static Plugin readPlugin(File chosenFile) throws Exception {
// 需要先删除临时目录保证加压出来的文件不会和安装失败的文件混合到一起
StableUtils.deleteFile(new File(TEMP_PATH));
IOUtils.unzip(chosenFile, TEMP_PATH);
File pluginFileDir = getTempPluginFileDirectory();
if (pluginFileDir == null) {
return null;
}
Plugin plugin = null;
if (pluginFileDir.isDirectory()) {
File[] pluginFiles = pluginFileDir.listFiles();
if (ArrayUtils.isNotEmpty(pluginFiles)) {
for (File f : pluginFiles) {
if (AssistUtils.equals(f.getName(), "plugin.xml")) {
plugin = new Plugin();
InputStream inputStream = plugin.readEncryptXml(new FileInputStream(f));
XMLTools.readInputStreamXML(plugin, inputStream);
//检查是否需要准备插件依赖环境
checkDependenceEnv(plugin);
if (!plugin.isValidate()) {
return null;
}
inputStream.close();
break;
}
}
}
}
return plugin;
}
//将所有未配置好的资源文件依赖准备好
private static void checkDependenceEnv(Plugin plugin) throws PluginDependenceException {
PluginDependence dependence = plugin.getDependence();
if (dependence == null) {
return;
}
List<PluginDependenceUnit> needInstallDependence = new ArrayList<PluginDependenceUnit>();
String currentID = dependence.getCurrentPluginID();
List<PluginDependenceUnit> list = dependence.getDependPlugins();
for (int i = 0; list != null && i < list.size(); i++) {
PluginDependenceUnit dependenceUnit = list.get(i);
if (!dependenceUnit.checkFileEnv()) {
needInstallDependence.add(dependenceUnit);
}
}
if (needInstallDependence.isEmpty()) {
return;
}
//安装插件依赖
installDependenceOnline(currentID, needInstallDependence);
}
/**
* 构造一个下载UI
*
* @param currentID
* @param list
* @throws PluginDependenceException
*/
private static void installDependenceOnline(String currentID, List<PluginDependenceUnit> list) throws PluginDependenceException {
DownLoadDependenceUI ui = new DownLoadDependenceUI(currentID, list);
ui.installOnline();
}
/**
* 从选中的压缩文件中安装插件
*
* @param chosenFile 选择的压缩文件
* @param after 操作完成事件
* @throws Exception 安装失败则抛出异常
*/
public static void installPluginFromDisk(File chosenFile, After after) throws Exception {
Plugin plugin = readPlugin(chosenFile);
installPluginFromUnzippedTempDir(FRContext.getCurrentEnv(), plugin, after);
}
/**
* 从压缩文件中复制Restart*.class和restart.exe到bin目录下
*
* @param file 插件文件
* @param plugin 插件
* @throws Exception
*/
public static void copyFilesToBinFolder(File file, Plugin plugin) throws Exception {
File[] pluginFiles = file.listFiles();
for (File restartFile : pluginFiles) {
if (restartFile.getAbsolutePath().endsWith(".class")) {
String installHome = StableUtils.getInstallHome();
IOUtils.copy(restartFile, new File(StableUtils.pathJoin(new String[]{installHome, "bin"})));
}
}
}
/**
* 从插件压缩包解压到得临时文件中安装插件
*
* @param env 报表运行环境
* @param plugin 插件
* @param after 操作完成事件
* @throws Exception
*/
public static void installPluginFromUnzippedTempDir(Env env, final Plugin plugin, final After after) throws Exception {
validPlugin(plugin);
if (plugin.isValidate()) {
File file = getTempPluginFileDirectory();
env.copyFilesToPluginAndLibFolder(file, plugin);
copyFilesToBinFolder(file, plugin);
env.movePluginEmbFile(file, plugin);
}
// 删除放解压文件的临时文件夹
StableUtils.deleteFile(new File(TEMP_PATH));
PluginConfigManager.getProviderInstance().pushNewPlugin(plugin);
PluginConfigManager.getProviderInstance().syncPluginConfig();
new SwingWorker<String, Void>() {
@Override
protected String doInBackground() throws Exception {
return sendInstalledPluginInfo(plugin);
}
@Override
protected void done() {
try {
String text = get();
FRLogger.getLogger().info("plugin install:" + text);
} catch (InterruptedException e) {
FRLogger.getLogger().error(e.getMessage(), e);
} catch (ExecutionException e) {
FRLogger.getLogger().error(e.getMessage(), e);
}
if (after != null) {
after.done();
}
}
}.execute();
}
private static void validPlugin(Plugin plugin) throws Exception {
if (plugin == null) {
throw new com.fr.plugin.PluginVerifyException(Inter.getLocText("FR-Designer-Plugin_Illegal_Plugin_Zip_Cannot_Be_Install"));
}
if (PluginLoader.getLoader().isInstalled(plugin)) {
throw new com.fr.plugin.PluginVerifyException(Inter.getLocText("FR-Designer-Plugin_Has_Been_Installed"));
}
if (plugin.checkIfJarExpired()) {
String jarExpiredInfo = Inter.getLocText(new String[]{"FR-Designer-Plugin_Jar_Expired", ",", "FR-Designer-Plugin_Install_Failed", ",", "FR-Designer-Plugin_Please_Update_Jar", plugin.getRequiredJarTime()});
FRLogger.getLogger().error(jarExpiredInfo);
throw new com.fr.plugin.PluginVerifyException(jarExpiredInfo);
}
if (!isSupportCurrentEnv(plugin.getEnvVersion())) {
String envVersionNotSupport = Inter.getLocText(new String[]{"FR-Designer-Plugin_Env_Expired", ",", "FR-Designer-Plugin_Install_Failed"});
FRLogger.getLogger().error(envVersionNotSupport);
throw new com.fr.plugin.PluginVerifyException(envVersionNotSupport);
}
File fileToCheck = getTempPluginFileDirectory();
File oldfile = new File(StableUtils.pathJoin(FRContext.getCurrentEnv().getPath(), ProjectConstants.PLUGINS_NAME, "plugin-" + plugin.getId()));
if (!PluginManagerHelper.checkLic(plugin, fileToCheck) && !PluginManagerHelper.checkLic(plugin, oldfile)) {
//安装时,在安装目录下和压缩包里都没有才弹框
String checkLicFail = Inter.getLocText("FR-Designer-PluginLicense_Check_Failed");
FRLogger.getLogger().error(checkLicFail);
throw new com.fr.plugin.PluginVerifyException(checkLicFail);
}
}
private static boolean isSupportCurrentEnv(String envVersion) {
//包含8.0
return VersionIntervalFactory.create(envVersion).contain(Version.currentEnvVersion());
}
/**
* 获取插件解压的临时文件夹
*
* @return 临时文件
*/
public static File getTempPluginFileDirectory() {
File file = new File(TEMP_PATH);
if (file.isDirectory() && !file.getName().startsWith(".")) {
File[] files = file.listFiles();
if (ArrayUtils.isNotEmpty(files)) {
for (File f : files) {
if (hasFoundConfigFile(f)) {
return f;
}
}
}
}
return null;
}
private static boolean hasFoundConfigFile(File dir) {
if (!dir.isDirectory()) {
return false;
}
File[] files = dir.listFiles();
if (ArrayUtils.isNotEmpty(files)) {
for (File f : files) {
if (AssistUtils.equals("plugin.xml",f.getName())) {
return true;
}
}
}
return false;
}
/**
* 从运行环境中卸载插件
*
* @param env 报表运行环境
* @param plugin 插件
* @return 返回没有删除掉的文件的集合
* @throws Exception 卸载出错的时候抛出此异常
*/
public static String[] uninstallPlugin(Env env, Plugin plugin) throws Exception {
if (plugin == null || env == null) {
return ArrayUtils.EMPTY_STRING_ARRAY;
}
//卸载前监听
plugin.preUninstall();
PluginLoader.getLoader().deletePlugin(plugin);
return env.deleteFileFromPluginAndLibFolder(plugin);
}
/**
* 比较插件的版本这里简单的比价字符串不需要用数字作为标号
* 版本号相同也认为是更新
*
* @param plugin 当前的插件
* @param oldPlugin 老的插件
* @return 当前插件比老的插件版本高则返回true否则返回false
*/
public static boolean isNewThan(Plugin plugin, Plugin oldPlugin) {
return plugin.versionCompareTo(oldPlugin) >= 0;
}
private static String sendInstalledPluginInfo(final Plugin plugin) {
if (StableUtils.isDebug()) {
return "debug status";
}
HashMap<String, String> map = new HashMap<String, String>();
map.put("key", DesignerEnvManager.getEnvManager().getActivationKey());
map.put("detail", plugin.toJSONObject().toString());
map.put("build", GeneralUtils.readBuildNO());
//第三个参数encode, nodejs服务器那边如果参数不encode, 带了空格会报错, 直接用urlconnection也是一样, jetty没能还原.
HttpClient httpClient = new HttpClient(SiteCenter.getInstance().acquireUrlByKind("plugin.install"), map, true);
httpClient.setTimeout(TIME_OUT);
httpClient.asGet();
return httpClient.getResponseText();
}
private static final int TIME_OUT = 5000;
}

203
designer_base/src/com/fr/design/locale/designer.properties

@ -1,3 +1,4 @@
# generated time: \u661F\u671F\u56DB \u5341\u4E00\u6708 24 12:02:51 CST 2016
FR-Designer-BBSLogin_Account=
FR-Designer-BBSLogin_Connection-Failure=
FR-Designer-BBSLogin_Connection-Failure-Tip=
@ -11,7 +12,7 @@ FR-Designer-BBSLogin_Switch-Account=
FR-Designer-BBSLogin_Privite-Message=
FR-Designer-BBSLogin_Times=
FR-Designer-BBSLogin_Username-Empty-Tip=
FR-Designer-Basic_More_Color=More colors
FR-Designer-Basic_More_Color=
FR-Designer-Estate_Any=
FR-Designer-Estate_Default_Font=
FR-Designer-Estate_Default_Null=
@ -70,7 +71,7 @@ FR-Designer_Button-Icon=
FR-Designer_Button-Name=
FR-Designer_Button-Type=
FR-Designer_CardLayout=
FR-Designer_Cell=
FR-Designer_Cell=Cell
FR-Designer_Chart_Cell=
FR-Designer_Chart_Float=
FR-Designer_Chart_Float_chart=
@ -86,18 +87,18 @@ FR-Designer_Currency_Line=
FR-Designer_Current_tab=
FR-Designer_Custom=
FR-Designer_Custom-Angle=
FR-Designer_DS-Dictionary=Dictionary
FR-Designer_DS-Dictionary=
FR-Designer_Data-confusion=
FR-Designer_Data_Type=
FR-Designer_Double_Click_Edit_OR_Clear=
FR-Designer_Email=email
FR-Designer_Email=
FR-Designer_Enabled=
FR-Designer_End-Date=
FR-Designer_ExportAndOutput=
FR-Designer_FRFont=
FR-Designer_FS_Close_Other_Templates=close other templates
FR-Designer_File=File
FR-Designer_Filter_Conditions=Filter Conditions
FR-Designer_FS_Close_Other_Templates=
FR-Designer_File=
FR-Designer_Filter_Conditions=
FR-Designer_Finish-Modify-Share=
FR-Designer_Fit=
FR-Designer_Fit-App=
@ -105,7 +106,7 @@ FR-Designer_Font-Family=
FR-Designer_Font-Size=
FR-Designer_Forbid_Drag_into_Adapt_Pane=Forbid Drag into Para Pane
FR-Designer_Forbid_Drag_into_Para_Pane=Forbid Drag into Para Pane
FR-Designer_Foreground=Foreground
FR-Designer_Foreground=
FR-Designer_Form-AuthorityEdited_Cannot_be_Supported=Form authority editing can not be supported
FR-Designer_Form-Report=
FR-Designer_Form_EmbeddedTD=
@ -116,12 +117,12 @@ FR-Designer_Forum=
FR-Designer_Get-Cube=
FR-Designer_Help=
FR-Designer_Hide=
FR-Designer_Hyperlink=Hyperlink
FR-Designer_Hyperlink=
FR-Designer_Hyperlink-Form_link=
FR-Designer_IDCard=
FR-Designer_Icon=
FR-Designer_Index=
FR-Designer_Input_Rule=Input Rule
FR-Designer_Input_Rule=
FR-Designer_Language_Default=
FR-Designer_Layout=
FR-Designer_Layout-HBox=
@ -142,7 +143,7 @@ FR-Designer_M_Help-Tutorial=
FR-Designer_Max_Value=
FR-Designer_Min_Value=
FR-Designer_MobilePhone=
FR-Designer_New_Value=New_Value
FR-Designer_New_Value=
FR-Designer_None=
FR-Designer_PaperSize-Mobile=
FR-Designer_PaperSize-Mobile-Large=
@ -151,12 +152,12 @@ FR-Designer_Para-Body=
FR-Designer_Parameters=
FR-Designer_Phone=
FR-Designer_PostCode=
FR-Designer_Present=Present
FR-Designer_Preview=Preview
FR-Designer_Present=
FR-Designer_Preview=
FR-Designer_Preview-Data-Confusion=
FR-Designer_Product_Demo=
FR-Designer_Query_Type=
FR-Designer_Refresh=Refresh
FR-Designer_Refresh=
FR-Designer_Refresh_Parameter_In_SQL=
FR-Designer_Reg_Expressions=
FR-Designer_Reg_Max_Length=
@ -194,8 +195,8 @@ FR-Designer_Vertical-RightToLeft=
FR-Designer_VerticalBoxLayout=
FR-Designer_Visible=
FR-Designer_WLayout-Border-ToolTips=
FR-Designer_WaterMark=WaterMark
FR-Designer_Widget=Widget
FR-Designer_WaterMark=
FR-Designer_Widget=
FR-Designer_Widget-Settings=
FR-Designer_Widget-Visible=
FR-Designer_XMLA_Explain=
@ -400,14 +401,14 @@ FR-Designer_Choose_Language=
FR-Designer_Work_After_Restart_Designer=
FR-Designer_Setting-Ruler-Units=
FR-Designer_PageSetup-mm=
FR-Designer_Unit_CM=CM
FR-Designer_Unit_CM=
FR-Designer_Page-Setup-Scale-Units=
FR-Designer_Report-Design-Ruler-Units=
FR-Designer_Web_Preview_Port_Setting=
FR-Designer_Designer_Language=
FR-Designer_Unit_INCH=INCH
FR-Designer_Unit_INCH=
FR-Designer_Web_Preview_Port=
FR-Designer_Unit_PT=PT
FR-Designer_Unit_PT=
FR-Designer-Write_Auto_Stash=auto stash
FR-Designer_Printer_Native_Button=
FR-Designer_Event_ShowWidgets=
@ -482,10 +483,10 @@ FR-Designer_Browser_Background=Browser Background
FR-Designer_Import_Css=Import Css
FR-Designer_Import_JavaScript=Import JavaScript
FR-Designer-Datasource-Param_DES=<html>&nbsp;you can type "${abc}" as a parameter, here, abc is a parameter name. <br/>&nbsp;for example\: select * from table where id\=${abc}.<br/>&nbsp;select * from table where id\='${abc}'.(if the field id is typeof string)</html>
FR-Designer-DS-Database_Query=Database Query
FR-Designer_Is_Share_DBTableData=Is_Share_DBTableData
FR-Designer-LayerPageReport_PageQuery=Query for page
FR-Designer-LayerPageReport_Define_PageQuerySQL=Define sql for page
FR-Designer-DS-Database_Query=
FR-Designer_Is_Share_DBTableData=
FR-Designer-LayerPageReport_PageQuery=
FR-Designer-LayerPageReport_Define_PageQuerySQL=
FR-Designer_Event=
FR-Designer_Properties=
FR-Designer_Permissions_Edition=Permissions Edition
@ -511,7 +512,7 @@ FR-Designer_Attribute=
FR-Designer_Form_Editing_Listeners=
FR-Designer_Form_Basic_Properties=
FR-Designer_DS_Dictionary=
FR-Designer_Create_Tree=Create Tree
FR-Designer_Create_Tree=
FR-Designer_Set_Callback_Function=
FR-Designer_ConfirmDialog_Content=
FR-Designer_ConfirmDialog_Title=
@ -542,7 +543,6 @@ FR-Designer_Allow_Null=Allow null
FR-Designer_PageSetup_Page=Page
FR-Designer_Custom_Job_Description=Description
FR-Designer_Property=Property
FR-Designer_ClassName=Class Name
FR-Designer_Polyblock_Edit=Polyblock Edit
FR-Designer_Function_Description_Area_Text=The class must inherit 'com.fr.script.AbstractFunction'. The compiled class should be copied to\nJ2EE server '{R1}' directory.\nAdd the source code(.java file) into the same folder if need.\nExample: {R2}}
FR-Designer_PageSetup_Horizontal=Horizontal
@ -557,7 +557,7 @@ FR-Designer_Auto_Adjust_Size=Auto adjust
FR-Designer_Show_As_Download=Display the binary content using download link
FR-Designer_File_Name_For_Download=File Name For Download
FR-Designer_No=No
FR-Designer_Pagination=Pagination
FR-Designer_Pagination=Page Break
FR-Designer_DS_TableData=Data Set
FR-Designer_Parameter-Formula=Formula
FR-Designer_Plugin_Should_Update_Please_Contact_Developer=Plugin version is too low, and is not compatible with current API. Please contact the developer to update.
@ -844,7 +844,6 @@ PageSetup-Placement_Center_on_Page=Page Center
sure_to_delete=sure to delete
Already_exists_not_add_repeat=Already exists, do not add repeat
Axis_Title=Axis title
FR-Designer-Plugin_Install_Failed=Install failed
FR-Designer-Widget-Style_Frame=
MainGraduationUnit=MainGraduationUnit
Second_Axis=Second Axis
@ -857,7 +856,7 @@ RP_Authority_Edit=Authority
Warnning=Warning
RoleName_Can_Not_Be_Null=RoleName_Can_Not_Be_Null
Application=Applications
Formula_Dictionary_Display_Examples_Html=<html>the real value is \=range(100), the real value($$$)'s display value is \=0 - $$$, <br>the result is 1, 2, ..., 100 and -1, -2, ..., -100.<br></html>
Formula_Dictionary_Display_Examples_Html=<html>the real value is \
ECP-error_pwd=
FR-Hyperlink_ChartHyperlink=
M_Edit-FormatBrush=Format Painter
@ -988,7 +987,7 @@ Background-Background_is_NULL=No Background
FR-Designer_Sytle-FRFont=Font
Gradation=Gradation
The_current_list_is_empty=The current list is empty
Formula_Dictionary_Display_Examples=the real value is \=range(100), the real value($$$)'s display value is \=0 - $$$, \nthe result is 1, 2, ..., 100 and -1, -2, ..., -100.
Formula_Dictionary_Display_Examples=the real value is \
Schedule-Template_Parameter=Template Parameter
JSShow=Show In Action
Level_coordinates=Level coordinates
@ -1345,8 +1344,6 @@ Remove_All_Button=Remove_All_Button
FR-Designer_Component_Interval=Components Interval
ReportColumns-Columns_vertically=Columns vertically
ReportGUI-Print_Background=Print Background
FR-Designer_Print_Background=Print Background
FR-Designer_Export_Background=Export Background
Export-CSV=CSV
M_Edit-Paste=Paste
FR-Designer-Basic_Restart_Designer=Restart designer
@ -1372,7 +1369,7 @@ Not_Exsit=not exist in WorkSheet.
Utils-Insert_Row=Insert Row
Utils-Delete_Row=Delete Row
not_support_authority_edit=this element does not support authority edit
Formula_Tips=The formula must be from the beginning of the "\="\!
Formula_Tips=The formula must be from the beginning of the "\
FR-Action_Copy=
Compile_Success=Compile Success
BackgroundTexture-RecycledPaper=Recycled Paper
@ -1460,7 +1457,7 @@ Ratio=Ratio
DBCP_TEST_ON_BORROW=TestOnBorrow
FR-Designer_layerIndex=
WEB-Write_Setting=Write Setting
M-New_WorkBook=New WorkBook
M-New_WorkBook=New General Report
FR-Designer-Plugin_Has_Been_Actived=Plugin is now active
Datasource-Maximum_Number_of_Preview_Rows=Maximum Number of Preview Rows
ExpandD-Cell_Expand_Attributes=Attribute to Insert Cell to Display Data
@ -1537,7 +1534,7 @@ FR-Designer_Cancel=
Button-Group-Display-Columns=Display Column Count
Widget-Height=Height
Examples=Examples
Formula_Dictionary_Display_Example=the real value is \=range(100), the real value($$$)'s display value is \=0 - $$$, \nthe result is 1, 2, ..., 100 and -1, -2, ..., -100.
Formula_Dictionary_Display_Example=the real value is \
StyleAlignment-Horizontal=Horizontal
HyperLink_Must_Alone_Reset=HyperLink_Must_Alone_Reset
ExpandD-Expand_Direction=Display Data Direction
@ -1988,7 +1985,27 @@ FR-Designer_Role=Role
FR-Designer_Permissions=Permissions
FR-Designer_Form_Button=Button
FR-Designer_WF_Name=Name
FR-Designer_Double=Double
FR-Designer_ClassName=Class Name
FR-Designer_AlphaFine_Enable=Enable
FR-Designer_AlphaFine_EnableAlphaFine=FR-Designer_AlphaFine_EnableAlphaFine
FR-Designer_AlphaFine_EnableInternet=Designer_AlphaFine_EnableInternet
FR-Designer_AlphaFine_EnableInternetSearch=SearchOnLine
FR-Designer_AlphaFine_Shortcut_Config=Shortcut Config
FR-Designer_AlphaFine_SearchRange=Search Range
FR-Designer_AlphaFine_Recommend=Recommend
FR-Designer-Plugin_Addon=Plugin Addon
FR-Designer_Templates=FR-Designer_Templates
FR-Designer_Templates_Content=Templates Contents
FR-Designer_AlphaFine_ShowAll=show all
FR-Designer_AlphaFine_Latest=Latest
FR-Designer_AlphaFine_ShowLess=show less
FR-Designer_AlphaFine=AlphaFine
FR-Designer-Alphafine_No_Remind=
FR-Designer_AlphaFine_NoResult=no results
FR-Designer_ConnectionFailed=connection failed
FR-Designer_NoResult=No results
FR-Designer-AlphaFine_SetShortcuts=
FR-Designer_Write_Enhance_Preview=Write Enhance PreviewFR-Designer_Double=Double
FR-Designer_Query=
FR-Designer_Font=Font
FR-Designer_Confirm=
@ -2005,7 +2022,117 @@ FR-Product_Demo=Demo
FR-Designer_Tree_Data_Field=Tree Data Field
FR-Designer_Data_Filter=Data Filter
Default=Default
FR-Designer_Sheet_Label_Page_Display_Position=Sheet tab display location:
FR-Designer_Provide_Choose_All=Provide Select All
FR-Designer_Decimal_Places=Decimal Places:
FR-Base-Load_Resource_File=Load resource file
FR-Designer_Cell_Element=Cell Element
FR-Designer_Cell_Attributes=Cell Attributes
FR-Designer_Float_Element=Float Element
FR-Designer_Widget_Library=Widget Library
FR-Designer_No_Settings_Available=No Settings Available!
FR-Designer_Configured_Roles=Configured role
FR-Designer_Scale_EnlargeOrReduce=Scale
FR-Designer_Scale_selfAdaptButton=Fit the selected area exactly
FR-Designer_Scale_customButton=custom
FR-Designer_FRFont_Subscript=Subscript
FR-Designer_FRFont_Superscript=Superscript
FR-Designer_FRFont_Shadow=Shadow
FR-Designer_FRFont_Strikethrough=Strikethrough
FR-Designer_FRFont_Underline=Underline
FR-Designer_FRFont_bold=bold
FR-Designer_FRFont_italic=italic
FR-Designer_FRFont_Foreground=Foreground
FR-Designer_FRFont_Style=Style
FR-Designer_FRFont_plain=plain
FR-Designer_FRFont_bolditalic=bolditalic
FR-Designer_outBorder=outBorder
FR-Designer_inBorder=inBorder
FR-Designer_ExpandD_Up_Father_Cell=Up_Father_Cell
FR-Designer_ExpandD_Expand_Direction=Expand_Direction
FR-Designer_Expand=Expand
FR-Designer_ExpendSort=ExpendSort
FR-Designer_ExpandD_Expandable=Expandable
FR-Designer_Read_failure=Read_failure
FR-Designer_Add_Hyperlink=Add Hyperlink
FR-Designer-StyleAlignment_Style_PartSpacing=PartSpacing
FR-Designer_Image_Layout=Image_Layout
FR-Designer_StyleAlignment_Text_Style=Text_Style
FR-Designer_StyleAlignment_Text_Rotation=Text_Rotation
FR-Designer_Style_Left_Indent=Left_Indent
FR-Designer_Style_Right_Indent=Right_Indent
FR-Designer_Style_Spacing_Before=Spacing_Before
FR-Designer_Style_Spacing_After=Spacing_After
FR-Designer_Style_Line_Spacing=Line_Spacing
FR-Designer_Left=Left
FR-Designer_Right=Right
FR-Designer_Front=Front
FR-Designer_Behind=Behind
FR-Designer_StyleAlignment_Wrap_Text=Wrap_Text
FR-Designer_StyleAlignment_Single_Line=Single_Line
FR-Designer_StyleAlignment_Single_Line(Adjust_Font)=Single_Line(Adjust_Font)
FR-Designer_StyleAlignment_Multi_Line(Adjust_Font)=Multi_Line(Adjust_Font)
FR-Designer_Auto_Adjust_Height=Auto_Adjust_Height
FR-Designer_Auto_Adjust_Wdith=Auto_Adjust_Wdith
FR-Designer_Type_Set=Type_Set
FR-Designer_Dic_Data_Query=Data_Query
FR-Designer_Dictionary_Dynamic_SQL=Dictionary_Dynamic_SQL
FR-Designer_Datasource_From_Database=Datasource_From_Database
FR-Designer_CellWrite_InsertRow_NULL=InsertRow_NULL
FR-Designer_CellWrite_InsertRow_COPY=InsertRow_COPY
FR-Designer_CellWrite_InsertRow_Policy=InsertRow_Policy
FR-Designer_CellWrite_Page_Before_Row=Page_Before_Row
FR-Designer_CellWrite_Page_After_Row=Page_After_Row
FR-Designer_CellWrite_Page_Before_Column=Page_Before_Column
FR-Designer_CellWrite_Page_After_Column=Page_After_Column
FR-Designer_CellPage_Can_Break_On_Paginate=Can_Break_On_Paginate
FR-Designer_CellPage_Repeat_Content_When_Paging=Repeat_Content_When_Paging
FR-Designer_CellWrite_Preview_Cell_Content=Preview_Cell_Content
FR-Designer_CellWrite_Print_Content=CellWrite_Print_Content
FR-Designer_CellWrite_Print_Background=CellWrite_Print_Background
FR-Designer_CellWrite_Show_As_Image=CellWrite_Show_As_Image
FR-Designer_CellWrite_Show_As_HTML=CellWrite_Show_As_HTML
FR-Designer_Datasource_Other_Attributes=Other_Attributes
FR-Designer_Not_use_a_cell_attribute_table_editing=Not_use_a_cell_attribute_table_editing
FR-Designer_CellElement_Property_Table=CellElement_Property_Table
FR-Designer_T_Insert_Float=Insert_Float
FR-Designer_Add_FloatElement=Add_FloatElement
FR-Designer_Insert_Image=Insert_Image
FR-Designer_Insert_Formula=Insert_Formula
FR-Designer_Scale_Down=Scale_Down
FR-Designer_Scale_Up=Scale_Up
FR-Designer_Scale_Slider=Scale_Slider
FR-Designer_Scale_Grade=Scale_Grade
FR-Designer_Insert_Chart=Insert_Chart
FR-Designer_Insert_Text=Insert_Text
FR-Designer_Double=Double
FR-Designer_Add_Event=Add Event
FR-Designer_Not_Support_Authority_Edit=this element does not support authority edit
FR-Designer_Dynamic_Parameter=Dynamic Parameter
FR-Designer_Remove_Item=Remove Item
FR-Designer_Widget_Position=widget Position
FR-Designer_Widget_Field=field
FR-Designer_Widget_Formula=formula
FR-Designer_Widget_String=String
FR-Designer_Widget_Display_Report_Tool=display report tool
FR-Designer_Widget_No_Repeat=no repeat
FR-Designer_Widget_Error_Tip=error tip
FR-Designer_Widget_Return_Leaf=return leaf
FR-Designer_Widget_Return_Path=return path
FR-Designer_Widget_Display_Position=Display Position
FR-Designer_Size_Limit=Size_Limit
FR-Designer_Widget_Name=Widget Name
FR-Designer_Coords_And_Size=Coords & Size
FR-Designer_Barcode_Size=Barcode_Size
FS-Designer_DS_Filter_Odd_Tip=Odd_Tip
FS-Designer_DS_Filter_Even_Tip=Even_Tip
FS-Designer_DS_Filter_Specify_Tip=Specify_Tip
FR-Designer_Mobile-Height-Percent=Max Percent
FR-Designer_Mobile-Height-Limit=Height Limit
FR-Designer-AlphaFine_NO_Result=no search result
FR-Designer-Download_Online_Sources=
FR-Designer_Select_Color=Select Color
FR-Designer-Basic_Dynamic_Parameter_Injection=Injection
FR-Designer_Label=
FR-Designer_Widgetname=Widget Name
FR-Designer_Insert_Cell_Element=Insert Cell Element
FR-Designer_Add_Condition=Add Condition
FR-Designer_Use_Params_Template=use parameter template
FR-Designer_Label_Name=label name

266
designer_base/src/com/fr/design/locale/designer_en_US.properties

@ -1,3 +1,4 @@
# generated time: \u661F\u671F\u56DB \u5341\u4E00\u6708 24 12:02:51 CST 2016
FR-Designer-BBSLogin_Account=User name
FR-Designer-BBSLogin_Connection-Failure=Connection failure, check your network status
FR-Designer-BBSLogin_Connection-Failure-Tip=Tip
@ -8,19 +9,19 @@ FR-Designer-BBSLogin_Password=Password
FR-Designer-BBSLogin_Password-Empty-Tip=Password can not be null
FR-Designer-BBSLogin_Register-Account=Register Account
FR-Designer-BBSLogin_Switch-Account=Switch Account
FR-Designer-BBSLogin_Privite-Message=Private Message
FR-Designer-BBSLogin_Privite-Message=Privite Message
FR-Designer-BBSLogin_Times=times
FR-Designer-BBSLogin_Username-Empty-Tip=User name can not be null
FR-Designer-Basic_More_Color=More colors
FR-Designer-Basic_More_Color=More Color...
FR-Designer-Estate_Any=Any
FR-Designer-Estate_Default_Font=Default font
FR-Designer-Estate_Default_Null=Default null
FR-Designer-Estate_Default_Text=Default
FR-Designer-Estate_Parameter_Null_Text=Parameter is null, then display as
FR-Designer-Estate_Parameter_Null_Text=Parameter is null, then display as
FR-Designer-Estate_Radio-Group=Common button group controls of real estate
FR-Designer-Estate_Selected_Font=Selected font
FR-Designer-Estate_Widget_Value=Control value
FR-Designer-Layout_Adaptive_Layout=Adaptive Layout
FR-Designer-Layout_Adaptive_Layout=Adaptive layout
FR-Designer-Output_Background_Set=Background set
FR-Designer-Output_Default_Background=Default background
FR-Designer-Output_Excel_Page=Excel Export(page break)
@ -28,7 +29,7 @@ FR-Designer-Output_Excel_Sheet=Excel Export(one page per sheet)
FR-Designer-Output_Excel_Simple=Excel Export(original)
FR-Designer-Plugin_PluginMarket_Coding=Plugin store is developing, stay tuned
FR-Desinger-Plugin_Updater_UpdateAndUpgrade=Update&Upgrade
FR-Desinger-Plugin_Updater_Checking_Jar_Update=Checking JARpackage update
FR-Desinger-Plugin_Updater_Checking_Jar_Update=Checking jarpackage update
FR-Desinger-Plugin_Updater_Checking_Version_Update=Checking version update
FR-Desinger-Plugin_Updater_Update=update
FR-Desinger-Plugin_Updater_Upgrade=upgrade
@ -67,10 +68,10 @@ FR-Designer_Block-intersect=The overlap between block and block is prohibited
FR-Designer_BorderLayout=BorderLayout
FR-Designer_Button-Hotkeys=Hotkeys
FR-Designer_Button-Icon=Button Icon
FR-Designer_Button-Name=Button Name
FR-Designer_Button-Name=Button Name
FR-Designer_Button-Type=Button Type
FR-Designer_CardLayout=TabLayout
FR-Designer_Cell=cell
FR-Designer_Cell=Cell
FR-Designer_Chart_Cell=Chart Hyperlink-Link Cell
FR-Designer_Chart_Float=Chart Hyperlink-Floating Element
FR-Designer_Chart_Float_chart=Chart Hyperlink-Floating Chart
@ -90,20 +91,20 @@ FR-Designer_DS-Dictionary=Data Dictionary
FR-Designer_Data-confusion=Data Confusion
FR-Designer_Data_Type=Data type
FR-Designer_Double_Click_Edit_OR_Clear=Double Click to Edit or Clear
FR-Designer_Email=Email
FR-Designer_Email=Mail
FR-Designer_Enabled=Enabled
FR-Designer_End-Date=End Date
FR-Designer_ExportAndOutput=Export
FR-Designer_FRFont=Font
FR-Designer_FS_Close_Other_Templates=Close other templates
FR-Designer_File=File
FR-Designer_Filter_Conditions=Filter Conditions
FR-Designer_File=file
FR-Designer_Filter_Conditions=Filter condition
FR-Designer_Finish-Modify-Share=Finish Modification And Share
FR-Designer_Fit-App=App self-adaption
FR-Designer_Fit=self-adaption
FR-Designer_Font-Family=Font name
FR-Designer_Font-Size=Font size
FR-Designer_Forbid_Drag_into_Adapt_Pane=Form body cannot be dragged into the object
FR-Designer_Forbid_Drag_into_Adapt_Pane=Form body cannot be dragged into the object
FR-Designer_Forbid_Drag_into_Para_Pane=The object cannot be dragged into the parameter panel
FR-Designer_Foreground=Foreground
FR-Designer_Form-AuthorityEdited_Cannot_be_Supported=Form permissions edition is not supported
@ -134,7 +135,7 @@ FR-Designer_M-Help=Help
FR-Designer_M-Insert=Insert
FR-Designer_M-Repeat-Freeze=Duplicate and freeze
FR-Designer_M-Server=Server
FR-Designer_M-SwitchWorkspace=Switch Working Directory
FR-Designer_M-SwitchWorkspace=Switch Working Directory
FR-Designer_M-Template=Template
FR-Designer_MDX_Explain=Syntax Reference MDX syntax.\nFor example\:\nWITH\nMEMBER [Measures].[Special Discount] AS\n[Measures].[Discount Amount] * 1.5\nSELECT\n[Measures].[Special Discount] on COLUMNS,\nNON EMPTY [Product].[Product].MEMBERS ON Rows\nFROM [Adventure Works]\nWHERE [Product].[Category].[Bikes]\nNOTE\: COLUMNS, ROWS can be replaced by 0,1, the query axis only supports returning two axis
FR-Designer_M_Help-About_Software=About software
@ -142,7 +143,7 @@ FR-Designer_M_Help-Tutorial=Help tutorial
FR-Designer_Max_Value=max value
FR-Designer_Min_Value=min value
FR-Designer_MobilePhone=Mobile phone
FR-Designer_New_Value=New Value
FR-Designer_New_Value=new value
FR-Designer_None=none
FR-Designer_PaperSize-Mobile=Mobile
FR-Designer_PaperSize-Mobile-Large=Large screen
@ -151,7 +152,7 @@ FR-Designer_Para-Body=Parameter interface
FR-Designer_Parameters=Parameters
FR-Designer_Phone=Phone
FR-Designer_PostCode=Postcode
FR-Designer_Present=Present
FR-Designer_Present=present
FR-Designer_Preview=Preview
FR-Designer_Preview-Data-Confusion=Preview Data After Confusion
FR-Designer_Product_Demo=Demo
@ -161,7 +162,7 @@ FR-Designer_Refresh_Parameter_In_SQL=Whether to refresh parameters in the SQL
FR-Designer_Reg_Expressions=Regular expressions
FR-Designer_Reg_Max_Length=max length
FR-Designer_Reg_Min_Length=min length
FR-Designer_ReportColumns-Columns=Fixed columns per line
FR-Designer_ReportColumns-Columns=Multi-columns/lines
FR-Designer_Return-Date=Return Date
FR-Designer_RichText=Insert Rich Text
FR-Designer_RichTextEditor=Rich Text Editor
@ -172,7 +173,7 @@ FR-Designer_Search=Search
FR-Designer_Set=Set
FR-Designer_Share-Template=Share Template
FR-Designer_Simple_general=Simple custom query
FR-Designer_Song_TypeFace=Song TypeFace
FR-Designer_Song_TypeFace=Song typeface
FR-Designer_Start-Date=Start Date
FR-Designer_Subscript=Subscript
FR-Designer_Superscript=Superscript
@ -181,7 +182,7 @@ FR-Designer_Swatch=Sample
FR-Designer_Tab_title=Tab title
FR-Designer_TableData=Data set
FR-Designer_Thank_guest=Special thanks to
FR-Designer_Thanks-To=Thanks To
FR-Designer_Thanks-To=Thanks
FR-Designer_Title=Title
FR-Designer_Total=Total
FR-Designer_UnSignIn=Not Sign In
@ -239,7 +240,7 @@ FR-Designer_Refresh_Successfully=Refresh successfully
FR-Designer_SQL-Table=Tab
FR-Designer_SQL-View=View
FR-Designer_Failed=Failed
FR-Designer_Chart_Field_Name=Field Name
FR-Designer_Chart_Field_Name=FieldName
FR-Designer_FormulaD-Text=Text
FR-Designer_FormulaD-Logical=Logical Function
FR-Designer_FormulaD-Array=Array
@ -248,13 +249,13 @@ FR-Designer_FormulaD-Other=Other Functions
FR-Designer_FormulaD-All=All Functions
FR-Designer_Function=Function
FR-Designer_Select=Sel
FR-Designer_Edit=Edt
FR-Designer_Edit=Edit
FR-Designer_Description=Description
FR-Designer_Role_changed_isRefresh=Roles change, whether to refresh
FR-Designer_FS_Name=FineBI
FR-Designer_Datasource-Parameter=Datasource Parameter
FR-Designer_Tree-ComboBox=Drop-down Tree
FR-Designer_Form-Iframe=WebView
FR-Designer_Tree-ComboBox=Tree Combobox
FR-Designer_Form-Iframe=Iframe
FR-Designer_Type=Type
FR-Designer_User-defined=User_defined
FR-Designer_Simple_general_forV6=Simple general for Version6+
@ -266,11 +267,11 @@ FR-Designer_Parameters_name=parameters name
FR-Designer_SAP_datatype=SAP datatype
FR-Designer_Return_set_name=Return set
FR-Designer_Datatype=Datatype
FR-Designer_Corre_parameter=Corresponding parameter
FR-Designer_Corre_parameter=Corresponse parameter
FR-Designer_Default_value=Default value
FR-Designer_SAP_column_name=Column name
FR-Designer_Table_name=Table name
FR-Designer_Columns_choosed=Columns chosen
FR-Designer_Columns_choosed=Columns choosed
FR-Designer_Where_claus=Where claus
FR-Designer_PreStyle=Pre Style
FR-Designer_Loading=Loading
@ -286,18 +287,18 @@ FR-Designer_file-is-locked=File is locked by others.
FR-Designer_Custom_Icon_Message1=The 16 * 16 standard PNG image is better.
FR-Designer_Add=Add
FR-Designer_Custom_Icon_Message2=The icon name is already exist or your operation is unreasonable.
FR-Designer_Tooltips=Tip
FR-Designer_Remove=Delete
FR-Designer_Tooltips=Tooltips
FR-Designer_Remove=Remove
FR-Designer_Custom_Icon_SelectIcon=Select icon
FR-Designer_Click_this_button=Click this button to set path
FR-Designer_Custom_Icon_Message3=The icon name is already exist.
FR-Designer_Set_default_browser=Cannot find the default browser, please set default browser in Internet options .
FR-Designer_Set_default_browser=Cannot find the default browser, please set default browser in Intenet options .
FR-Designer_Open=Open
FR-Designer_Utils-OpenDemoEnv=To open the demo, it needs to switch to the workspace\:
FR-Designer_Utils-switch=\nThe current unsaved editing files will be saved under current environment?\nGo on?
FR-Designer_Utils-NewDemoEnv=To open the demo,it needs to create the workspace\:
FR-Designer_Save_As_Global_Style=Save as Global Style
FR-Designer_Input_The_Name_Of_Gloabel_Style=Input the name of global style
FR-Designer_Input_The_Name_Of_Gloabel_Style=Input the name of gloabel style
FR-Designer_This_Name_Has_Exsit=This name has existed
FR-Designer_Shortcut_Set=Shortcut Setting
FR-Designer_Feature_Name=Feature Name\:
@ -330,7 +331,7 @@ FR-Designer_Event_Set=Event Setup
FR-Designer_Blow_set=Following Settings
FR-Designer_I_Want_To_Set_Single=Individually set for the report
FR-Designer_Using_Server_Report_View_Settings=Use server report settings
FR-Designer_ErrorHandlerTemplate=Error Template Definition
FR-Designer_ErrorHandlerTemplate=Error Template Definition
FR-Designer_Save_Path=Save Path
FR-Designer-Collect_OSXTips=Tip\: Press control + v to paste the activation code
FR-Designer_X_Coordinate=Abscissa
@ -356,7 +357,7 @@ FR-Designer-Series_Dismenber_As_Single=Regard consecutive separators as one
FR-Designer_KeyPoint=KeyPoint
FR-Designer_loadedTreeModel=loadedTreeModel
FR-Designer-Failed_to_load_the_plugin=Failed to load the plugin\uFF0Cplease update the plugin\:
FR-Designer-Plugin_Please_Update_Jar=Please Update Jar To\:
FR-Designer-Plugin_Please_Update_Jar=Please Update Jar
FR-Designer-Invalid_Page_Number=Invalid Page Number
FR-Designer_XMLA_Database=DB
FR-Designer_XMLA_UserName=User name
@ -379,7 +380,7 @@ FR-Designer_Clear_All=Clear All
FR-Designer_Log=Log
FR-Designer-Plugin_Expire_Dialog_Title=Plug expired
FR-Designer-Plugin_Expire_Dialog_Text=Plugin expired, go sail soft application center to make a purchase.
FR-Designer-Plugin_Finerest_Addon=Fanruan Plugins
FR-Designer-Plugin_Finerest_Addon=Fineres Addon
FR-Designer_Performance_First=Performance First
FR-Designer_Total_N_Grade=Total\:${N}Layer
FR-Designer-BBSLogin_Login-Title=BBS Login
@ -392,7 +393,7 @@ FR-Designer_Product_improve=Product improvement
FR-Designer_Join_Product_improve=Join product improvement plan
FR-Designer_Preference-Function=Function
FR-Designer_max_undo_limit=Max
FR-Designer_Surport_String_To_Formula=Support String To Formula
FR-Designer_Surport_String_To_Formula=Surport String To Formula
FR-Designer_Always=Default execute this operation
FR-Designer_Export_Setting=Export Configuration
FR-Designer_Select_Export_Log_Directory=Select Export Log Directory
@ -423,6 +424,8 @@ FR-Designer-App_ReLayout=AppRelayout
FR-Designer_Mobile-Attr=Mobile Attr
FR-Designer_Mobile-Vertical=Vertical Screen
FR-Designer_Mobile-Horizontal=Horizontal Screen
FR-Designer_Mobile-Height-Percent=Max Percent
FR-Designer_Mobile-Height-Limit=Height Limit
FR-Designer_COMMUNITY=community
FR-Designer_COMMUNITY_BBS=bbs
FR-Designer_COMMUNITY_VIDEO=video
@ -461,9 +464,9 @@ FR-Designer_Attr_Bidirectional_Adaptive=Bidirectional adaptive
FR-Designer-Selected_Widget=Selected widget
FR-Designer_LocalWidget=Local component library
FR-Designer_AllCategories=All categories
FR-Designer_Download_Template=Download components
FR-Designer_Install_Template=Install components
FR-Designer_Delete_Template=Delete components
FR-Designer_Download_Template=Download
FR-Designer_Install_Template=Install
FR-Designer_Delete_Template=Delete
FR-Designer_Mobile-Refresh=Refresh
FR-Designer_Mobile-ToolBar=Toolbar
FR-Designer_WLayout-Absolute-ToolTips=Freestyle layout, add control in any position of the layout
@ -530,7 +533,7 @@ FR-Designer_Select_panel=Sel
FR-Designer_LayoutTable_Column_Width=250
FR-Designer_Set_BG_Of_Current_Row=Set BG of the row being edited
FR-Designer_Unload_Check=Prompt users when leave without submitting
FR-Designer_ReportColumns_Columns_Optional=Multi-column/row
FR-Designer_ReportColumns_Columns_Optional=\u3000
FR-Designer_Row_Icon_File_Name=row_en.png
FR-Designer_Center_Display=Center
FR-Designer_Left_Display=Left
@ -617,7 +620,7 @@ BorderLayout-West=West
AnalysisLine=Line
Layer_Report_Warnning_info=<html>Line report engine is suitable for large data.<br/>Many report features will no longer support if use it,<br/>more information in helpdocument.</html>
Tree-Width=Tree Width
alert_word=Export without fixed height, cell height will change according to the content and pagination position will different from the preview result.
alert_word=Export without fixed height, cell hight will change according to the content and pagination position will different from the preview result.
PageSetup-Paper_Size=Paper Size
M-Page_Setup=Page Setup
DashBoard-FormBook=Form
@ -656,7 +659,7 @@ FRFont-Subscript=Subscript
Background_Settings=Background Settings
FormulaD-Invalid_Formula=Invalid Formula
FR-Base_Margin=Margin
FR-Designer-Plugin_Shop_Installed=Plug-shop installed, whether to start immediately?
FR-Designer-Plugin_Shop_Installed=Plugin store is installed, please reopen the store.
M_Edit-Send_to_Back=Send to Bottom
Email-Can_Preview_Report_Content=Preview Report Content in the Body
FR-Designer-FRFont_Italic=Italic
@ -697,7 +700,7 @@ RWA-Click_Cell_To_Edit_Value=Click Cell to Edit Value
Utils-Row_Height=Row Height
ReportD-Excel_Export=Export Attributes
Form-Please_Select_A_Kind_Of_Form_Container=Select A Form Container
Column_Does_Not_Exsit=Column Does Not Exist
Column_Does_Not_Exsit=Column Does Not Exsit
M_Insert-Hyperlink=Hyperlink
can_not_include_underline=Can not contain "_"
FR-Designer-Plugin_Jar_Expired=Jar Expired
@ -797,7 +800,7 @@ CellWrite-Page_Before_Row=Before Row
FR-Designer-Plugin_Load_Plugins_From_Server=Loading data from plugins store
D-Dispaly_Divide_Result_Set_into_Groups=Grouping on Result Set
Closed=Closed
RWA-Help=Set "No update if no modify", so if cell is not modified, the record will not update; it improves filling and submit performance when data is large.
RWA-Help=Set "No update if no modidy", so if cell is not modified, the record will not update; it improves filling and submit performance when data is large.
FR-Designer-Widget-Style_Custom=Custom
FR-Designer-Widget-Style_Render_Style=Rendering style
Highlight-Barcode=BarCode
@ -844,7 +847,6 @@ PageSetup-Placement_Center_on_Page=Center on Page
sure_to_delete=sure to delete
Already_exists_not_add_repeat=Already exist, please do not repeat
Axis_Title=Axis title
FR-Designer-Plugin_Install_Failed=Install failed
FR-Designer-Widget-Style_Frame=Frame
MainGraduationUnit=Major Graduation Unit
Second_Axis=Secondary Axis
@ -857,7 +859,7 @@ RP_Authority_Edit=Permission
Warnning=Warning
RoleName_Can_Not_Be_Null=Role name can not be null or duplicate
Application=Applications
Formula_Dictionary_Display_Examples_Html=<html>Real value range is \=range(100), displayed formula of every $$$ in the range is \=0 - $$$, <br> the real result is 1, 2, ..., 100 and diaplay result is -1, -2, ..., -100.<br>&nbsp;</html>
Formula_Dictionary_Display_Examples_Html=<html>the real value is \=range(100), the real value($$$)'s display value is \=0 - $$$, <br>the result is 1, 2, ..., 100 and -1, -2, ..., -100.<br></html>
ECP-error_pwd=Password Error
FR-Hyperlink_ChartHyperlink=Chart Hyperlink
M_Edit-FormatBrush=Format Painter
@ -948,7 +950,7 @@ zeroMarginWarn=The printer exist the physical margins <br> report page margin se
Widget-Date_Selector_Return_Type=Return value type
Utils-Switch_To_Template_Reportlet=Switch to template web report
satisfy=satisfy
FR-Designer_WidgetDisplyPosition=Control DisplayPosition
FR-Designer_WidgetDisplyPosition=Control DisplyPosition
FR-Base_Top=Top
FR-Designer_Form-CheckBox=CheckBox
Reportlet-Parameter_Type=Parameter passing mode
@ -966,7 +968,7 @@ FR-Widget_Tree_And_Table=Control tree and control table
FR-Base_Help=Help
FR-Designer-Plugin_Update_Successful=Update successfully, restart the sever to enable it
August=August
LOG-Is_Being_Openned=Is Being Opened
LOG-Is_Being_Openned=Is Being Openned
BackgroundTexture-Oak=Oak
Multi_nam_formula=\ data set name\:
TurnOn=TurnOn
@ -988,7 +990,7 @@ Background-Background_is_NULL=No Background
FR-Designer_Sytle-FRFont=Font
Gradation=Gradation
The_current_list_is_empty=The current list is empty
Formula_Dictionary_Display_Examples=\Real value range is \=range(100), displayed formula of every $$$ in the range is \=0 - $$$, \n the real result is 1, 2, ..., 100 and diaplay result is -1, -2, ..., -100.
Formula_Dictionary_Display_Examples=\Real value range is \
Schedule-Template_Parameter=Template Parameter
JSShow=Dynamic display
Level_coordinates=Hierarchy coordinate
@ -1038,7 +1040,7 @@ FR-Designer-Tree_Width=Tree Width
Record=Record
Poly-Report_Component=Aggregate Report Component
Options=Options
NS-war-remote=Error codes\:1117 Compression deployment does not support remote design
NS-war-remote=Error codes\:11100017 Compression deployment does not support remote design
Sche-Minute=Minute
Three_Rows_Of_Three_Grid=A grid with 3 rows and 3 columns
WorkSheet=Free Report
@ -1094,7 +1096,7 @@ Horizontal-Split_Layout=Horizontal partitioning layout
BorderLayout-Center=Center
INFO-Reset_Webapp=Reset Application Server
FR-Designer_Text=Text
IN_and_INOUT_type_not_as_cursor=IN and INOUT type cannot be cursor
IN_and_INOUT_type_not_as_cursor=IN and INOUT type canot be cursor
Main_Axis=Primary axis
M_Edit-Cut=Cut
Utils-The_Name_has_been_existed=The name already exists
@ -1125,14 +1127,14 @@ Schedule-The_selected_file_must_be_end_with_filter=The selected file must end wi
Provide=Provide
FormulaD-Math_&_Trig=Math and Trig
FR-Designer-StyleAlignment_Right=Right
Error_TableDataNameRepeat=\ already exists in Server DataSet or the name is repeated.
Error_TableDataNameRepeat=\ already exsits in Server DataSet or the name is repeated.
Choose_None=Deselect
File-tree=File tree
FRFont-bold=Bold
FR-Designer_Set_Submit_Condition=Submit Condition
Form-Change_Widget_Name=Change Control Name
ReportColumns-Report_Columns=Multi-columns/lines display
Can_not_use_FormatBursh=Can't use format painter in multiple selections
FR-Designer_Can_not_use_FormatBursh=Can't use format painter in multiple selections
CellElement-Property_Table=Cell Attribute Table
Dictionary-Dynamic_SQL=Dynamic SQL
FR-Designer_Form-CheckBoxGroup=CheckBoxGroup
@ -1161,7 +1163,7 @@ FR-App-Export_png=png
Delete_Column=Delete Column
SecondGraduationLine=Minor Graduation Line
SpecifiedG-Groups=Groups
CONTINUUM_MODE=Continuous grouping
CONTINUUM_MODE=Continous grouping
Datasource-Connection_failed=Connection Failed
CategoryName=Category Name
DBCP_INITIAL_SIZE=Initialize Connections
@ -1175,7 +1177,7 @@ Or-you=or you
FR-Designer_Certificate_Path=Certificate Path
Utils-Last_Page=Last Page
BarCodeD-Drawing_Text=Display Barcode Text
Warning-Template_Do_Not_Exsit=Template do not exist
Warning-Template_Do_Not_Exsit=Template do not exsit
BindColumn-Group=Group
Export-SVG=SVG
Plane3D=Plane 3D
@ -1289,7 +1291,7 @@ DS-Class_TableData=Class Data Set
FR-Designer-Plugin_Illegal_Plugin_Zip_Cannot_Be_Install=Illegal plugin,cannot be installed
DisplayNothingBeforeQuery=Display Nothing Before Query
Y_Axis=Y Axis
FormulaD-Most_Recently_Used=Recently used
FormulaD-Most_Recently_Used=Rencently used
FormulaD-Input_formula_in_the_text_area_below=Input formula in the text area below
Build-Way=Build Way
M_Edit-Undo=Undo
@ -1345,8 +1347,6 @@ Remove_All_Button=Remove all buttons
FR-Designer_Component_Interval=Component Interval
ReportColumns-Columns_vertically=Fixed columns per line
ReportGUI-Print_Background=Print/export background
FR-Designer_Print_Background=Print Background
FR-Designer_Export_Background=Export Background
Export-CSV=CSV
M_Edit-Paste=Paste
FR-Designer-Basic_Restart_Designer=Restart designer
@ -1372,7 +1372,7 @@ Not_Exsit=Not exist in report
Utils-Insert_Row=Insert Row
Utils-Delete_Row=Delete Row
not_support_authority_edit=this element does not support authority edit
Formula_Tips=The formula must be begin with "\="\!
Formula_Tips=The formula must be begin with "\
FR-Action_Copy=Copy
Compile_Success=Compile Successfully
BackgroundTexture-RecycledPaper=Recycled Paper
@ -1394,7 +1394,7 @@ BackgroundTexture-WaterDroplets=Water Drop
FR-Designer-Dependence_Install_Failed=install failed
Layout-Padding=Padding
roles_already_authority_edited=Configured role
WidgetDisplyPosition=Control display position
WidgetDisplyPosition=Control disply position
SpecifiedG-Force_Group=Mandatory Group
FormulaD-Formula_Definition=Formula Definition
I-xyScatterStyle_Marker=Scatter
@ -1408,7 +1408,7 @@ Rename=Rename
Widget-Load_By_Async=Async load
Shape=Shape
BindColumn-This_Condition_has_been_existed=The Condition Already Exists
NS-exception_readError=Error codes\:1305 Template file parsing error
NS-exception_readError=Error codes\:11300005 Template file parsing error
Set_Column_Title_Start=Set Duplicate Title Columns
Fri=Fri
M_Report-Report_Parameter=Report Parameter
@ -1460,7 +1460,7 @@ Ratio=Ratio
DBCP_TEST_ON_BORROW=Test before Getting Connections
FR-Designer_layerIndex=
WEB-Write_Setting=Filling Settings
M-New_WorkBook=New WorkBook
M-New_WorkBook=New General Report
FR-Designer-Plugin_Has_Been_Actived=Plugin is now active, restart the designer and sever to enable it and the sever need to be manually restarted
Datasource-Maximum_Number_of_Preview_Rows=Maximum Number of Preview Rows
ExpandD-Cell_Expand_Attributes=Extension Attributes
@ -1527,7 +1527,7 @@ FR-Server_Version_Tip=The version of the server you are connecting is older than
StyleAlignment-Left_To_Right=Left To Right
Verify-ToolTips=If not meet formula, throw up validation error message
BackgroundTexture-Stationery=Letter Paper
FR-Designer_RWA-Help=Set "No update if no modify", so if cell is not modified, the record will not update; it improves filling and submit performance when data is large.
FR-Designer_RWA-Help=Set "No update if no modidy", so if cell is not modified, the record will not update; it improves filling and submit performance when data is large.
M_Insert-Barcode=Barcode
Bounds=Bounds
FR-Designer-Undo_All_Authority_Operations=Undo all the privilege edit operations
@ -1537,7 +1537,7 @@ FR-Designer_Cancel=Cancel
Button-Group-Display-Columns=Number of columns displayed
Widget-Height=Control Height
Examples=Examples
Formula_Dictionary_Display_Example=Real value range is \=range(100), displayed formula of every $$$ in the range is \=0 - $$$, \n the real result is 1, 2, ..., 100 and diaplay result is -1, -2, ..., -100.
Formula_Dictionary_Display_Example=Real value range is \
StyleAlignment-Horizontal=Horizontal
HyperLink_Must_Alone_Reset=Multiple hyperlink
ExpandD-Expand_Direction=Extension Direction
@ -1627,7 +1627,7 @@ FR-Hyperlink_Reportlet=Webreport
M_Edit-Copy=Copy
Sub_Report_Message2=The parent-report is not in the current runtime environment
Sub_Report_Message3=Can not choose itself
Sub_Report_Message1=Please choose the correct path
Sub_Report_Message1=Please choose the currect path
Form-Allow_CustomData=Allow custom data
FR-Server_Version_Tip_MoreInfo=Conform the version numbers of FineReport Designer and the deployment server are consistent, in order to avoid the problems caused by inconsistent versions. If you open the template produced by higher designer vision, error may occurs or the original template properties missed. If the Designer Version you used to create the template is higher than the final deployment server version, the server may not be able to properly load the template.
FR-Designer_Server-version-tip-moreInfo=Conform the version numbers of FineReport Designer and the deployment server are consistent, in order to avoid the problems caused by inconsistent versions. If you open the template produced by higher designer vision, error may occurs or the original template properties missed. If the Designer Version you used to create the template is higher than the final deployment server version, the server may not be able to properly load the template.
@ -1759,7 +1759,7 @@ Form-ToolBar=Form ToolBar
FR-Base_sure_remove_item=Are you sure to delete the selected item
Component_Scale=Component Scale
Hyperlink-Use_CJK_to_encode_parameter=Use CJK to process parameter
LOG-Has_Been_Openned=Report Has Been Opened
LOG-Has_Been_Openned=Report Has Been Openned
FR-Designer-Dependence=
ECP_error_pwd=Password Error
REPORTLET=Parameter of access path to template
@ -1788,7 +1788,7 @@ Form-DataTable=DataTable
Sub_Report_ToolTips=Sub Report ToolTips
Right_Top=Upper right
M_Edit-Merge_Cell=Merge Cell
FR-Designer_Restore_Default=Back to default
FR-Designer_Restore_Default=Back to default\
Component_Interval=Components Interval
Cover_None=Override None
Datasource-From_Database=DB table
@ -1799,7 +1799,7 @@ ParentCell_Setting=Parent Cell Setting
Only_selected_cell_can_paste_only=Paste when cell is selected
M_Report-Report_Columns=Multi-columns/lines
Unit_Hundred=Hundred
FR-Designer_DataTable-Build=Quick build (hierarchical)
FR-Designer_DataTable-Build=
Widget-Form_Widget_Config=Form control
Server-version-tip-moreInfo=Conform the version numbers of FineReport Designer and the deployment server are consistent, in order to avoid the problems caused by inconsistent versions. If you open the template produced by higher designer vision, error may occurs or the original template properties missed. If the Designer Version you used to create the template is higher than the final deployment server version, the server may not be able to properly load the template.
Actions=Task
@ -1819,7 +1819,7 @@ BackgroundTexture-Cork=Cork
M_Format-Data_Map=Data Dictionary
FR-mobile_native_analysis=native analysis
HighLight=High Light
FR-Designer_Dropdown-More-Preview=Drop down for more
FR-Designer_Dropdown-More-Preview=
local=local
FR-Designer_Gradation=Gradation
PageSetup-Finis_Start_Column=Duplicate Last Column
@ -1828,7 +1828,7 @@ FR-Designer-Plugin_All_Plugins=All plugins
FR-Designer_Prepare_Export=Ready to export, please wait
DBCP_TEST_ON_RETURN=Test before Returning Connections
no-alternatives=no alternatives
FR-Designer_Submmit_WClass=Submit By Custom Class
FR-Designer_Submmit_WClass=Submmit By Custom Class
M_Insert-Slope_Line=Insert Slope Line
FR-Designer-Plugin_Plugin_Description=Description
ExpandD-Not_Expand=No extend
@ -1891,12 +1891,12 @@ Border-Style=Border Style
Sort=Sort
Image-Image_Layout=Image Layout
Panel=Panel
FR-Designer-Basic_Copy_Build_NO_OK=Build No. has been copied
FR-Designer-Basic_Copy_Build_NO_OK=Build No. has been copyed
All_Border_Line=All Border
FR-Utils-Please_Input_a_New_Name=Input a New Name
FR-Base_Formula_Plugin=Plugin Function
Two_Rows_Of_Three_Grid=A grid with 2 rows and 3 columns
FR-Designer_Certificate_Pass=Certificate Password
FR-Designer_Certificate_Pass=Certificate Password\
Bubble-Series_Name=Series Name
M-New_Multi_Report=New Aggregate Report
BackgroundTexture-PinkTissuePaper=Pink Sandpaper
@ -1942,7 +1942,7 @@ Widget-User_Defined=Predefine
Url_location=Absolute path
Disk_File=Disk File
Inside=Inside
FR-Designer_filedChosen=Dependent fields
FR-Designer_filedChosen=
ServerM-Predefined_Styles=Predefined Styles
is_need_word_adjust=Word Auto Adjust
Background-Null=No Background
@ -1988,7 +1988,26 @@ FR-Designer_Role=Role
FR-Designer_Permissions=Permissions
FR-Designer_Form_Button=Button
FR-Designer_WF_Name=Name
FR-Designer_Double=Decimal
FR-Designer_AlphaFine_Enable=Enable
FR-Designer_AlphaFine_EnableInternetSearch=Search OnLine
FR-Designer_AlphaFine_Shortcut_Config=Shortcut Config
FR-Designer_AlphaFine_SearchRange=Search Range
FR-Designer_AlphaFine_Recommend=Recommend
FR-Designer-Plugin_Addon=Plugin Addon
FR-Designer_Templates=Files
FR-Designer_Templates_Content=Files'contents
FR-Designer_AlphaFine_ShowAll=Show all
FR-Designer_AlphaFine_Latest=Recent
FR-Designer_AlphaFine_ShowLess=Show less
FR-Designer_AlphaFine=AlphaFine
FR-Designer-Alphafine_No_Remind=don't remind
FR-Designer_AlphaFine_NoResult=No results
FR-Designer_ConnectionFailed=Connection failed
FR-Designer_AlphaFine_EnableAlphaFine=Enable AlphaFine
FR-Designer_AlphaFine_EnableInternet=Internet
FR-Designer_NoResult=No results
FR-Designer-AlphaFine_SetShortcuts=please press two key to set shortcut
FR-Designer_Write_Enhance_Preview=Write Enhance PreviewFR-Designer_Double=Decimal
FR-Designer_Query=Query
FR-Designer_Font=Font
FR-Designer_Confirm=OK
@ -2006,7 +2025,110 @@ FR-Designer_Build_Tree_Accord_Parent_Marked_Filed=Build Tree according to the pa
FR-Product_Demo=Demo
FR-Designer_Data_Filter=Data Filter
Default=Default
FR-Designer_Sheet_Label_Page_Display_Position=Sheet tab display location:
FR-Designer_Provide_Choose_All=Provide Select All
FR-Designer_Decimal_Places=Decimal Places:
FR-Base-Load_Resource_File=Load Configuration File
FR-Designer_Cell_Element=Cell Element
FR-Designer_Cell_Attributes=Cell Attributes
FR-Designer_Float_Element=Float Element
FR-Designer_Widget_Library=Widget Library
FR-Designer_No_Settings_Available=No Settings Available!
FR-Designer_Configured_Roles=Configured role
FR-Designer_Scale_EnlargeOrReduce=Scale
FR-Designer_Scale_selfAdaptButton=Fit the selected area exactly
FR-Designer_Scale_customButton=custom
FR-Designer_FRFont_Subscript=Subscript
FR-Designer_FRFont_Superscript=\
FR-Designer_FRFont_Shadow=Shadow
FR-Designer_FRFont_Strikethrough=Strikethrough
FR-Designer_FRFont_Underline=Underline
FR-Designer_FRFont_bold=bold
FR-Designer_FRFont_italic=italic
FR-Designer_FRFont_Foreground=Foreground
FR-Designer_FRFont_Style=Style
FR-Designer_FRFont_plain=plain
FR-Designer_FRFont_bolditalic=bolditalic
FR-Designer_outBorder=outBorder
FR-Designer_inBorder=inBorder
FR-Designer_ExpandD_Up_Father_Cell=Up_Father_Cell
FR-Designer_ExpandD_Expand_Direction=Expand_Direction
FR-Designer_Expand=Expand
FR-Designer_ExpendSort=ExpendSort
FR-Designer_ExpandD_Expandable=Expandable
FR-Designer_Read_failure=Read_failure
FR-Designer_Add_Hyperlink=Add Hyperlink
FR-Designer-StyleAlignment_Style_PartSpacing=PartSpacing
FR-Designer_Image_Layout=Image_Layout
FR-Designer_StyleAlignment_Text_Style=Text_Style
FR-Designer_StyleAlignment_Text_Rotation=Text_Rotation
FR-Designer_Style_Left_Indent=Left_Indent
FR-Designer_Style_Right_Indent=Right_Indent
FR-Designer_Style_Spacing_Before=Spacing_Before
FR-Designer_Style_Spacing_After=Spacing_After
FR-Designer_Style_Line_Spacing=Line_Spacing
FR-Designer_Left=Left
FR-Designer_Right=Right
FR-Designer_Front=Front
FR-Designer_Behind=Behind
FR-Designer_StyleAlignment_Wrap_Text=Wrap_Text
FR-Designer_StyleAlignment_Single_Line=Single_Line
FR-Designer_StyleAlignment_Single_Line(Adjust_Font)=Single_Line(Adjust_Font)
FR-Designer_StyleAlignment_Multi_Line(Adjust_Font)=Multi_Line(Adjust_Font)
FR-Designer_Auto_Adjust_Height=Auto_Adjust_Height
FR-Designer_Auto_Adjust_Wdith=Auto_Adjust_Wdith
FR-Designer_Type_Set=Type_Set
FR-Designer_Dic_Data_Query=Data_Query
FR-Designer_Dictionary_Dynamic_SQL=Dictionary_Dynamic_SQL
FR-Designer_Datasource_From_Database=Datasource_From_Database
FR-Designer_CellWrite_InsertRow_NULL=InsertRow_NULL
FR-Designer_CellWrite_InsertRow_COPY=InsertRow_COPY
FR-Designer_CellWrite_InsertRow_Policy=InsertRow_Policy
FR-Designer_CellWrite_Page_Before_Row=Page_Before_Row
FR-Designer_CellWrite_Page_After_Row=Page_After_Row
FR-Designer_CellWrite_Page_Before_Column=Page_Before_Column
FR-Designer_CellWrite_Page_After_Column=Page_After_Column
FR-Designer_CellPage_Can_Break_On_Paginate=Can_Break_On_Paginate
FR-Designer_CellPage_Repeat_Content_When_Paging=Repeat_Content_When_Paging
FR-Designer_CellWrite_Preview_Cell_Content=Preview_Cell_Content
FR-Designer_CellWrite_Print_Content=CellWrite_Print_Content
FR-Designer_CellWrite_Print_Background=CellWrite_Print_Background
FR-Designer_CellWrite_Show_As_Image=CellWrite_Show_As_Image
FR-Designer_CellWrite_Show_As_HTML=CellWrite_Show_As_HTML
FR-Designer_Datasource_Other_Attributes=Other_Attributes
FR-Designer_Not_use_a_cell_attribute_table_editing=Not_use_a_cell_attribute_table_editing
FR-Designer_CellElement_Property_Table=CellElement_Property_Table
FR-Designer_T_Insert_Float=Insert_Float
FR-Designer_Add_FloatElement=Add_FloatElement
FR-Designer_Insert_Image=Insert_Image
FR-Designer_Insert_Chart=Insert-Chart
FR-Designer_Insert_Text=Insert-Text
FR-Designer_Insert_Formula=Insert_Formula
FR-Designer_Double=Double
FR-Designer_Scale_Down=Scale_Down
FR-Designer_Scale_Up=Scale_Up
FR-Designer_Scale_Slider=Scale_Slider
FR-Designer_Scale_Grade=Scale_Grade
FR-Designer_Add_Event=Add Event
FR-Designer_Not_Support_Authority_Edit=this element does not support authority edit
FR-Designer_Dynamic_Parameter=Dynamic Parameter
FR-Designer_Remove_Item=Remove Item
FR-Designer_Widget_No_Repeat=no repeat
FR-Designer_Widget_Error_Tip=error tip
FR-Designer_Widget_Return_Leaf=return leaf
FR-Designer_Widget_Return_Path=return path
FR-Designer_Widget_Display_Position=Display Position
FR-Designer_Size_Limit=Size_Limit
FR-Designer_Widget_Name=Widget Name
FR-Designer_Coords_And_Size=Coords & Size
FR-Designer_Barcode_Size=Barcode_Size
FS-Designer_DS_Filter_Odd_Tip=Odd_Tip
FS-Designer_DS_Filter_Even_Tip=Even_Tip
FS-Designer_DS_Filter_Specify_Tip=Specify_Tip
FR-Designer-AlphaFine_NO_Result=no search result
FR-Designer-Download_Online_Sources=
FR-Designer_Select_Color=Select Color
FR-Designer-Basic_Dynamic_Parameter_Injection=Injection
FR-Designer_Label=Label
FR-Designer_Widgetname=Widget Name
FR-Designer_Insert_Cell_Element=Insert Cell Element
FR-Designer_Add_Condition=Add Condition
FR-Designer_Use_Params_Template=use parameter template
FR-Designer_Label_Name=label name

2515
designer_base/src/com/fr/design/locale/designer_ja_JP.properties

File diff suppressed because it is too large Load Diff

162
designer_base/src/com/fr/design/locale/designer_ko_KR.properties

@ -1,3 +1,4 @@
# generated time: \u661F\u671F\u56DB \u5341\u4E00\u6708 24 12:02:51 CST 2016
FR-Designer-BBSLogin_Account=\u7528\u6237\u540D
FR-Designer-BBSLogin_Connection-Failure=\uB124\uD2B8\uC6CC\uD06C\uB9C1\uD06C\uC2E4\uD328.\uD604\uC7AC\uB124\uD2B8\uC6CC\uD06C\uC0C1\uD0DC\uB97C\uAC80\uC0AC\uD574\uC8FC\uC2ED\uC2DC\uC624.
FR-Designer-BBSLogin_Connection-Failure-Tip=\uC54C\uB9BC
@ -11,7 +12,7 @@ FR-Designer-BBSLogin_Switch-Account=\uC804\uD658\uACC4\uC815\uBC88\uD638
FR-Designer-BBSLogin_Privite-Message=\uAC1C\uC778\u0020\uBA54\uC2DC\uC9C0
FR-Designer-BBSLogin_Times=\uD68C
FR-Designer-BBSLogin_Username-Empty-Tip=\uC0AC\uC6A9\uC790\uC774\uB984\uC740\uBE48\uCE78\uC73C\uB85C\uB458\uC218\uC5C6\uC2B5\uB2C8\uB2E4.
FR-Designer-Basic_More_Color=\uB354\uBCF4\uAE30\uC0C9
FR-Designer-Basic_More_Color=\uC0C9\uB354\uBCF4\uAE30...
FR-Designer-Estate_Any=\uC81C\uD55C\uC5C6\uC74C
FR-Designer-Estate_Default_Font=\uAE30\uBCF8\uAE00\uAF34
FR-Designer-Estate_Default_Null=\uAE30\uBCF8\uBE44\uC5B4\uC788\uC74C
@ -75,7 +76,7 @@ FR-Designer_Chart_Cell=\uCC28\uD2B8 \uD558\uC774\uD37C\uB9C1\uD06C-\uC140 \uC5F0
FR-Designer_Chart_Float=\uCC28\uD2B8\uD558\uC774\uD37C\uB9C1\uD06C-\uC5F0\uB3D9\uC11C\uC2A4\uD39C\uC2A4\uC694\uC18C
FR-Designer_Chart_Float_chart=\uCC28\uD2B8 \uD558\uC774\uD37C\uB9C1\uD06C-\uC704\uC82F \uCC28\uD2B8
FR-Designer_Check-for-Updates=\uC5C5\uB370\uC774\uD2B8\uAC80\uC0AC
FR-Designer_Choose-Data-Confusion-Tip=\\ud63c\uD569\uD560\uD544\uB4DC\uB97C\uC120\uD0DD\uD6C4\uBBF8\uB9AC\uBCF4\uAE30
FR-Designer_Choose-Data-Confusion-Tip=\\ud63c\uD569\uD560\uD544\uB4DC\uB97C\uC120\uD0DD\uD6C4\uBBF8\uB9AC\uBCF4\uAE30
FR-Designer_Close=\uB2EB\uAE30
FR-Designer_Column=\uC5F4
FR-Designer_Column_Measure=\uC5F4\uCD95/\uCE21\uC815\uAC12
@ -105,7 +106,7 @@ FR-Designer_Font-Family=\uAE00\uAF34\uBA85\uCE6D
FR-Designer_Font-Size=\uAE00\uAF34\uD06C\uAE30
FR-Designer_Forbid_Drag_into_Adapt_Pane=\uD574\uB2F9\uAC1D\uCCB4\uB294\uD3FC\uD14C\uC774\uBE14\uBC14\uB514\uB4DC\uB798\uADF8\uB97C\uD5C8\uC6A9\uD558\uC9C0\uC54A\uC2B5\uB2C8\uB2E4.
FR-Designer_Forbid_Drag_into_Para_Pane=\uD574\uB2F9\uAC1D\uCCB4\uB294\uB9E4\uAC1C\uBCC0\uC218\uD328\uB110\uC744\uB4DC\uB798\uADF8\uD560\uC218\uC5C6\uC2B5\uB2C8\uB2E4.
FR-Designer_Foreground=\uBE44\uC804
FR-Designer_Foreground=\uC0C9
FR-Designer_Form-AuthorityEdited_Cannot_be_Supported=\uD3FC\uAD8C\uD55C\uD3B8\uC9D1\uC744\uC9C0\uC6D0\uD558\uC9C0\uC54A\uC2B5\uB2C8\uB2E4.
FR-Designer_Form-Report=\uBB38\uC11C\uBE14\uB7ED
FR-Designer_Form_EmbeddedTD=\uD3FC(\uB0B4\uC7A5\uB370\uC774\uD130)
@ -161,7 +162,7 @@ FR-Designer_Refresh_Parameter_In_SQL=SQL\uC758\uB9E4\uAC1C\uBCC0\uC218\uB97C\uC0
FR-Designer_Reg_Expressions=\uC815\uADDC\uD45C\uD604\uC2DD
FR-Designer_Reg_Max_Length=\uCD5C\uB300\uAE38\uC774
FR-Designer_Reg_Min_Length=\uCD5C\uC18C\uAE38\uC774
FR-Designer_ReportColumns-Columns=\uC5F4\uC140\uB098\uB204\uAE30
FR-Designer_ReportColumns-Columns=\uC140\uB098\uB204\uAE30
FR-Designer_Return-Date=\uB0A0\uC9DC\uB3CC\uC544\uAC00\uAE30
FR-Designer_RichText=\uB9AC\uCE58\uD14D\uC2A4\uD2B8\uBC15\uC2A4\uC0BD\uC785
FR-Designer_RichTextEditor=\uB9AC\uCE58\uD14D\uC2A4\uD2B8\uBC15\uC2A4\uD3B8\uC9D1\uAE30
@ -470,7 +471,7 @@ FR-Designer_Exporting=\uB0B4\uBCF4\uB0B4\uAE30\uC911
FR-Designer_Export-PDF=PDF\uC11C\uC2DD
FR-Designer_Button_OK=\uD655\uC778
FR-Designer_Button_Cancel=\uCDE8\uC18C
FR-Designer_JavaScript=\uC790\uBC14\uC2A4\uD06C\uB9BD\uD2B8
FR-Designer_JavaScript=
FR-Designer_JavaScript_Form_Submit=
FR-Designer_JavaScript_Commit_to_Database=
FR-Designer_JavaScript_Custom=
@ -483,7 +484,7 @@ FR-Designer_Attribute=
FR-Designer_Form_Editing_Listeners=
FR-Designer_Form_Basic_Properties=
FR-Designer_DS_Dictionary=
FR-Designer_Create_Tree=\uD2B8\uB9AC\uC0DD\uC131
FR-Designer_Create_Tree=
FR-Designer_Set_Callback_Function=
FR-Designer_ConfirmDialog_Content=
FR-Designer_ConfirmDialog_Title=
@ -656,7 +657,7 @@ FRFont-Subscript=\uBC11\uC904
Background_Settings=\uBC30\uACBD\uC124\uC815
FormulaD-Invalid_Formula=\uC62C\uBC14\uB974\uC9C0\uC54A\uC740\uC218\uC2DD
FR-Base_Margin=\uC5EC\uBC31
FR-Designer-Plugin_Shop_Installed=\uD50C\uB7EC\uADF8\uC778 \uC0C1\uC810 \uC989\uC2DC \uC2DC\uC791\uD560\uC9C0 \uC5EC\uBD80\uB97C \uC124\uCE58?
FR-Designer-Plugin_Shop_Installed=
M_Edit-Send_to_Back=\uC81C\uC77C\uBC11\uC5D0\uB450\uAE30(K)
Email-Can_Preview_Report_Content=\uBCF8\uBB38\uBBF8\uB9AC\uBCF4\uAE30\uBB38\uC11C\uB0B4\uC6A9
FR-Designer-FRFont_Italic=\uAE30\uC6B8\uC784\uAF34
@ -844,7 +845,6 @@ PageSetup-Placement_Center_on_Page=\uAC00\uC6B4\uB370\uC815\uB82C\uBC29\uC2DD
sure_to_delete=\uC0AD\uC81C\uD655\uC778
Already_exists_not_add_repeat=\uC774\uBBF8\uC874\uC7AC\uD569\uB2C8\uB2E4.\uC911\uBCF5\uCD94\uAC00\uD558\uC9C0\uB9C8\uC2ED\uC2DC\uC624.
Axis_Title=\uCD95\uC81C\uBAA9
FR-Designer-Plugin_Install_Failed=\uD50C\uB7EC\uADF8\uC778\uC124\uCE58\uC2E4\uD328
FR-Designer-Widget-Style_Frame=\uD504\uB808\uC784
MainGraduationUnit=\uC8FC\uB208\uAE08\uB2E8\uC704
Second_Axis=\uBCF4\uC870\uC88C\uD45C\uCD95
@ -988,7 +988,7 @@ Background-Background_is_NULL=\uBC30\uACBD\uC5C6\uC74C
FR-Designer_Sytle-FRFont=\uAE00\uAF34
Gradation=\uB2E8\uACC4
The_current_list_is_empty=\uD604\uC7AC\uB9AC\uC2A4\uD2B8\uBE44\uC5B4\uC788\uC74C
Formula_Dictionary_Display_Examples=\\uc2e4\uC81C\uAC12\uBC94\uC704:\=0 - $$$\uFF0C\n \uCD5C\uC885\uACB0\uACFC\uC758\uC2E4\uC81C\uAC12: 1, 2, ..., 100, \n \uD45C\uC2DC\uAC12: -1, -2, ... , -100.
Formula_Dictionary_Display_Examples=\\uc2e4\uC81C\uAC12\uBC94\uC704:\
Schedule-Template_Parameter=\uD15C\uD50C\uB9BF\uB9E4\uAC1C\uBCC0\uC218
JSShow=\uB3D9\uC801\uB514\uC2A4\uD50C\uB808\uC774
Level_coordinates=\uACC4\uCE35\uBCF4\uC870\uC88C\uD45C
@ -1038,7 +1038,7 @@ FR-Designer-Tree_Width=\uB108\uBE44
Record=\uB808\uCF54\uB4DC
Poly-Report_Component=\uCDE8\uD569\uBB38\uC11C\uC5B4\uC148\uBE14\uB9AC
Options=\uC635\uC158
NS-war-remote=\uC624\uB958\uCF54\uB4DC\:1117 \uC555\uCD95\uC124\uCE58\uB97C\uC9C0\uC6D0\uD558\uC9C0\uC54A\uC2B5\uB2C8\uB2E4. \uC6D0\uACA9\uB514\uC790\uC778
NS-war-remote=\uC624\uB958\uCF54\uB4DC\:11100017 \uC555\uCD95\uC124\uCE58\uB97C\uC9C0\uC6D0\uD558\uC9C0\uC54A\uC2B5\uB2C8\uB2E4. \uC6D0\uACA9\uB514\uC790\uC778
Sche-Minute=\uBD84
Three_Rows_Of_Three_Grid=3\uD589 3\uC5F4\uC758\uADF8\uB9AC\uB4DC
WorkSheet=\uC790\uC720\uBB38\uC11C
@ -1345,8 +1345,6 @@ Remove_All_Button=\uBAA8\uB4E0\uD0A4\uD074\uB9AC\uC5B4
FR-Designer_Component_Interval=\uC5B4\uC148\uBE14\uB9AC\uAC04\uACA9
ReportColumns-Columns_vertically=\uC5F4\uC140\uB098\uB204\uAE30
ReportGUI-Print_Background=\uC778\uC1C4/\uB0B4\uBCF4\uB0B4\uAE30\uBB38\uC11C\uBC30\uACBD
FR-Designer_Print_Background=\uC778\uC1C4\uBB38\uC11C\uBC30\uACBD
FR-Designer_Export_Background=\uB0B4\uBCF4\uB0B4\uAE30\uBB38\uC11C\uBC30\uACBD
Export-CSV=CSV\uC11C\uC2DD(\uC27C\uD45C\uAD6C\uBD84)
M_Edit-Paste=\uBD99\uC5EC\uB123\uAE30(P)
FR-Designer-Basic_Restart_Designer=\uC7AC\uBD80\uD305\uC124\uACC4\uAE30
@ -1359,7 +1357,7 @@ RWA-NotChange_Unmodified=\uC218\uC815\uD558\uC9C0\uC54A\uC73C\uBA74\uC5C5\uB370\
User_Information=\uC0AC\uC6A9\uC790\uC815\uBCF4
Custom_styles_lost=\uC0AC\uC6A9\uC790\uC815\uC758\uC591\uC2DD\uC774\uC5C6\uC2B5\uB2C8\uB2E4.
PageSetup-Margin=\uD398\uC774\uC9C0\uC5EC\uBC31
M-New_FormBook=\uC0C8\uD3FC
M-New_FormBook=
Widget-TreeNode=\uD2B8\uB9AC\uB178\uB4DC\uD0A4
Form-Url=\uC8FC\uC18C
Utils-Beyond_the_left_side_of_Border=\uC67C\uCABD\uC5EC\uBC31\uBC97\uC5B4\uB0A8
@ -1408,7 +1406,7 @@ Rename=\uB9AC\uB124\uC784
Widget-Load_By_Async=\uBE44\uB3D9\uAE30\uB85C\uB529
Shape=\uADF8\uB798\uD504
BindColumn-This_Condition_has_been_existed=\uC774\uC870\uAC74\uC740\uC774\uBBF8\uC874\uC7AC\uD569\uB2C8\uB2E4.
NS-exception_readError=\uC624\uB958\uCF54\uB4DC\:1305 \uD15C\uD50C\uB9BF\uD30C\uC77C\uD574\uC11D\uC624\uB958
NS-exception_readError=\uC624\uB958\uCF54\uB4DC\:11300005 \uD15C\uD50C\uB9BF\uD30C\uC77C\uD574\uC11D\uC624\uB958
Set_Column_Title_Start=\uC911\uBCF5\uC81C\uBAA9\uC5F4\uC124\uC815
Fri=5
M_Report-Report_Parameter=\uD15C\uD50C\uB9BF\uB9E4\uAC1C\uBCC0\uC218
@ -1460,7 +1458,7 @@ Ratio=\uBE44\uC728
DBCP_TEST_ON_BORROW=\uB9C1\uD06C\uD68D\uB4DD\uC804\uAC80\uC0AC\uC9C4\uD589
FR-Designer_layerIndex=
WEB-Write_Setting=\uC6F9\uD398\uC774\uC9C0\uC124\uC815\uAE30\uC785
M-New_WorkBook=\uC0C8\uC6CC\uD06C\uBD81
M-New_WorkBook=
FR-Designer-Plugin_Has_Been_Actived=\uD50C\uB7EC\uADF8\uC778\uC774\uAD6C\uB3D9\uB418\uC5C8\uC2B5\uB2C8\uB2E4.\uC124\uACC4\uAE30\uBC0F\uC11C\uBC84\uB97C\uC7AC\uBD80\uD305\uD558\uB824\uBA74\uC11C\uBC84\uB97C\uC218\uB3D9\uC7AC\uBD80\uD305\uD574\uC57C\uD569\uB2C8\uB2E4.
Datasource-Maximum_Number_of_Preview_Rows=\uCD5C\uB300\uBBF8\uB9AC\uBCF4\uAE30\uD589\uC218
ExpandD-Cell_Expand_Attributes=\uD655\uC7A5\uC18D\uC131
@ -1537,7 +1535,7 @@ FR-Designer_Cancel=\uCDE8\uC18C
Button-Group-Display-Columns=\uC5F4\uC758\uC218\uB97C\uB098\uD0C0\uB0C4
Widget-Height=\uC18C\uD504\uD2B8\uC6E8\uC5B4\uC81C\uC5B4\uB192\uC774
Examples=\uC608\uC2DC
Formula_Dictionary_Display_Example=\uC2E4\uC81C\uAC12\uBC94\uC704:\=0 - $$$\uFF0C\n\uCD5C\uC885\uACB0\uACFC\uC758\uC2E4\uC81C\uAC12: 1, 2, ..., 100, \uD45C\uC2DC\uAC12: -1, -2, ... , -100.
Formula_Dictionary_Display_Example=\uC2E4\uC81C\uAC12\uBC94\uC704:\
StyleAlignment-Horizontal=\uC218\uD3C9\uC815\uB82C
HyperLink_Must_Alone_Reset=\uC5EC\uB7EC\uAC1C\uD558\uC774\uD37C\uB9C1\uD06C
ExpandD-Expand_Direction=\uD655\uB300\uBC29\uD5A5
@ -1996,7 +1994,6 @@ FR-Designer_Parameter=\uB9E4\uAC1C\uBCC0\uC218
FR-Designer-Plugin_Plugin=\uD50C\uB7EC\uADF8\uC778
FR-Designer_Background=\uBC30\uACBD
Template=\uD15C\uD50C\uB9BF
FR-Designer_Original_Marked_Filed=\uCD08\uAE30\uD0DC\uADF8\uD544\uB4DC
FR-Designer_Build_Tree_Accord_Marked_Filed_Length=\uC120\uD0DD\uD55C\uB370\uC774\uD130\uC138\uD2B8\uC758\uD0DC\uADF8\uD544\uB4DC\uAE38\uC774\uC5D0\uB530\uB77C\uD2B8\uB9AC\uC0DD\uC131
FR-Designer_Tree_Data_Field=\uD2B8\uB9AC\uB370\uC774\uD130\uD544\uB4DC
@ -2005,7 +2002,130 @@ FR-Designer_Build_Tree_Accord_Parent_Marked_Filed=\uC120\uD0DD\uD55C\uB370\uC774
FR-Product_Demo=\uC81C\uD488\uC2DC\uC5F0
FR-Designer_Data_Filter=\uB370\uC774\uD130\uC120\uBCC4
Default=\uAE30\uBCF8
FR-Designer_Sheet_Label_Page_Display_Position=
FR-Designer_Provide_Choose_All=\uC81C\uACF5\uBAA8\uB450\uC120\uD0DD
FR-Designer_Decimal_Places=\uC18C\uC218\uC218\uB7C9:
FR-Base-Load_Resource_File=\uB85C\uB529\uAD6C\uC131\uD30C\uC77C
FR-Base-Load_Resource_File=\uB85C\uB529\uAD6C\uC131\uD30C\uC77C
FR-Designer_Cell_Element=\uC140\uC694\uC18C
FR-Designer_Cell_Attributes=\uC140\uC18D\uC131
FR-Designer_Float_Element=\uD638\uBC84\uC694\uC18C
FR-Designer_Widget_Library=
FR-Designer_No_Settings_Available=
FR-Designer_Configured_Roles=\uC5ED\uD560\uC774\uAD6C\uC131\uB418\uC5C8\uC2B5\uB2C8\uB2E4.
FR-Designer_Scale_EnlargeOrReduce=
FR-Designer_Add_Hyperlink=\uB9C1\uD06C\uCD94\uAC00
FR-Designer_Scale_selfAdaptButton=
FR-Designer_FRFont_Subscript=
FR-Designer_FRFont_Superscript=
FR-Designer_FRFont_Shadow=
FR-Designer_FRFont_Strikethrough=
FR-Designer_FRFont_Underline=
FR-Designer_FRFont_bold=
FR-Designer_FRFont_italic=
FR-Designer_FRFont_Foreground=
FR-Designer_FRFont_Style=
FR-Designer_FRFont_plain=
FR-Designer_FRFont_bolditalic=
FR-Designer_outBorder=
FR-Designer_inBorder=
FR-Designer_ExpandD_Up_Father_Cell=
FR-Designer_ExpandD_Expand_Direction=
FR-Designer_Expand=
FR-Designer_ExpendSort=
FR-Designer_ExpandD_Expandable=
FR-Designer_Read_failure=
FR-Designer_Image_Layout=
FR-Designer_StyleAlignment_Text_Style=
FR-Designer_StyleAlignment_Text_Rotation=
FR-Designer_Style_Left_Indent=
FR-Designer_Style_Right_Indent=
FR-Designer_Style_Spacing_Before=
FR-Designer_Style_Spacing_After=
FR-Designer_Style_Line_Spacing=
FR-Designer_Left=
FR-Designer_Right=
FR-Designer_Front=
FR-Designer_Behind=
FR-Designer_StyleAlignment_Wrap_Text=
FR-Designer_StyleAlignment_Single_Line=
FR-Designer_StyleAlignment_Single_Line(Adjust_Font)=
FR-Designer_StyleAlignment_Multi_Line(Adjust_Font)=
FR-Designer_Auto_Adjust_Height=
FR-Designer_Auto_Adjust_Wdith=
FR-Designer_Type_Set=
FR-Designer_Dic_Data_Query=
FR-Designer_Dictionary_Dynamic_SQL=
FR-Designer_Datasource_From_Database=
FR-Designer_CellWrite_InsertRow_NULL=
FR-Designer_CellWrite_InsertRow_COPY=
FR-Designer_CellWrite_InsertRow_Policy=
FR-Designer_CellWrite_Page_Before_Row=
FR-Designer_CellWrite_Page_After_Row=
FR-Designer_CellWrite_Page_Before_Column=
FR-Designer_CellWrite_Page_After_Column=
FR-Designer_CellPage_Can_Break_On_Paginate=
FR-Designer_CellPage_Repeat_Content_When_Paging=
FR-Designer_CellWrite_Preview_Cell_Content=
FR-Designer_CellWrite_Print_Content=
FR-Designer_CellWrite_Print_Background=
FR-Designer_CellWrite_Show_As_Image=
FR-Designer_CellWrite_Show_As_HTML=
FR-Designer_Datasource_Other_Attributes=
FR-Designer_Not_use_a_cell_attribute_table_editing=
FR-Designer_CellElement_Property_Table=
FR-Designer_T_Insert_Float=
FR-Designer_Add_FloatElement=
FR-Designer_Insert_Image=
FR-Designer_Insert_Chart=
FR-Designer_Insert_Text=
FR-Designer_Insert_Formula=
FR-Designer_Scale_Down=
FR-Designer_Scale_Up=
FR-Designer_Scale_Slider=
FR-Designer_Scale_Grade=
FR-Designer_AlphaFine_Enable=
FR-Designer_AlphaFine_EnableAlphaFine=
FR-Designer_AlphaFine_EnableInternet=
FR-Designer_AlphaFine_EnableInternetSearch=
FR-Designer_AlphaFine_Shortcut_Config=
FR-Designer_AlphaFine_SearchRange=
FR-Designer_AlphaFine_Recommend=
FR-Designer-Plugin_Addon=
FR-Designer_Templates=
FR-Designer_Templates_Content=
FR-Designer_AlphaFine_ShowAll=
FR-Designer_AlphaFine_Latest=
FR-Designer_AlphaFine_ShowLess=
FR-Designer_AlphaFine=
FR-Designer-Alphafine_No_Remind=
FR-Designer_AlphaFine_NoResult=
FR-Designer_ConnectionFailed=
FR-Designer_NoResult=
FR-Designer-AlphaFine_SetShortcuts=
FR-Designer_Write_Enhance_Preview=
FR-Designer_Scale_customButton=
FR-Designer-StyleAlignment_Style_PartSpacing=
FR-Designer_Use_Params_Template=
FR-Designer_Label_Name=
FR-Designer_Add_Event=
FR-Designer_Not_Support_Authority_Edit=\uD574\uB2F9\uC694\uC18C\uB294\uAD8C\uD55C\uCEE8\uD2B8\uB864\uC744\uC9C0\uC6D0\uD558\uC9C0\uC54A\uC2B5\uB2C8\uB2E4.
FR-Designer_Dynamic_Parameter=
FR-Designer_Remove_Item=
FR-Designer_Widget_No_Repeat=
FR-Designer_Widget_Error_Tip=
FR-Designer_Widget_Return_Leaf=
FR-Designer_Widget_Return_Path=
FR-Designer_Widget_Display_Position=
FR-Designer_Size_Limit=
FR-Designer_Widget_Name=
FR-Designer_Coords_And_Size=
FR-Designer_Barcode_Size=
FS-Designer_DS_Filter_Odd_Tip=
FS-Designer_DS_Filter_Even_Tip=
FS-Designer_DS_Filter_Specify_Tip=
FR-Designer_Mobile-Height-Percent=
FR-Designer_Mobile-Height-Limit=
FR-Designer-Download_Online_Sources=
FR-Designer_Select_Color=
FR-Designer-Basic_Dynamic_Parameter_Injection=
FR-Designer_Label=\uB808\uC774\uBE14
FR-Designer_Widgetname=\uC18C\uD504\uD2B8\uC6E8\uC5B4\uC81C\uC5B4\uC774\uB984
FR-Designer_Insert_Cell_Element=
FR-Designer_Add_Condition=

182
designer_base/src/com/fr/design/locale/designer_zh_CN.properties

@ -1,3 +1,4 @@
# generated time: \u661F\u671F\u56DB \u5341\u4E00\u6708 24 12:02:51 CST 2016
FR-Designer-BBSLogin_Account=\u7528\u6237\u540D
FR-Designer-BBSLogin_Connection-Failure=\u7F51\u7EDC\u8FDE\u63A5\u5931\u8D25\uFF0C\u8BF7\u68C0\u67E5\u5F53\u524D\u7F51\u7EDC\u72B6\u6001
FR-Designer-BBSLogin_Connection-Failure-Tip=\u63D0\u793A
@ -11,7 +12,7 @@ FR-Designer-BBSLogin_Switch-Account=\u5207\u6362\u8D26\u53F7
FR-Designer-BBSLogin_Privite-Message=\u79C1\u4EBA\u6D88\u606F
FR-Designer-BBSLogin_Times=\u6B21
FR-Designer-BBSLogin_Username-Empty-Tip=\u7528\u6237\u540D\u4E0D\u80FD\u4E3A\u7A7A
FR-Designer-Basic_More_Color=\u66F4\u591A\u989C\u8272
FR-Designer-Basic_More_Color=\u66F4\u591A\u989C\u8272...
FR-Designer-Estate_Any=\u4E0D\u9650
FR-Designer-Estate_Default_Font=\u9ED8\u8BA4\u5B57\u4F53
FR-Designer-Estate_Default_Null=\u9ED8\u8BA4\u4E3A\u7A7A
@ -75,7 +76,7 @@ FR-Designer_Chart_Cell=\u56FE\u8868\u8D85\u94FE-\u8054\u52A8\u5355\u5143\u683C
FR-Designer_Chart_Float=\u56FE\u8868\u8D85\u94FE-\u8054\u52A8\u60AC\u6D6E\u5143\u7D20
FR-Designer_Chart_Float_chart=\u56FE\u8868\u8D85\u94FE-\u60AC\u6D6E\u7A97\u56FE\u8868
FR-Designer_Check-for-Updates=\u68C0\u67E5\u66F4\u65B0
FR-Designer_Choose-Data-Confusion-Tip=\ \u8BF7\u9009\u62E9\u9700\u8981\u6DF7\u6DC6\u7684\u5B57\u6BB5\u540E\u9884\u89C8
FR-Designer_Choose-Data-Confusion-Tip=\ \u8BF7\u9009\u62E9\u9700\u8981\u6DF7\u6DC6\u7684\u5B57\u6BB5\u540E\u9884\u89C8
FR-Designer_Close=\u5173\u95ED
FR-Designer_Column=\u5217
FR-Designer_Column_Measure=\u5217\u8F74/\u5EA6\u91CF\u503C
@ -95,7 +96,7 @@ FR-Designer_Enabled=\u53EF\u7528
FR-Designer_End-Date=\u7ED3\u675F\u65E5\u671F
FR-Designer_ExportAndOutput=\u5BFC\u51FA
FR-Designer_FRFont=\u5B57\u4F53
FR-Designer_FS_Close_Other_Templates=\u5173\u95ED\u5176\u4ED6\u6A21\u7248
FR-Designer_FS_Close_Other_Templates=\u5173\u95ED\u5176\u4ED6\u6A21\u677F
FR-Designer_File=\u6587\u4EF6
FR-Designer_Filter_Conditions=\u8FC7\u6EE4\u6761\u4EF6
FR-Designer_Finish-Modify-Share=\u5B8C\u6210\u4FEE\u6539\u5E76\u5206\u4EAB
@ -105,7 +106,7 @@ FR-Designer_Font-Family=\u5B57\u4F53\u540D\u79F0
FR-Designer_Font-Size=\u5B57\u4F53\u5927\u5C0F
FR-Designer_Forbid_Drag_into_Adapt_Pane=\u8BE5\u5BF9\u8C61\u4E0D\u5141\u8BB8\u62D6\u5165\u8868\u5355\u4E3B\u4F53
FR-Designer_Forbid_Drag_into_Para_Pane=\u8BE5\u5BF9\u8C61\u4E0D\u80FD\u62D6\u5165\u53C2\u6570\u9762\u677F
FR-Designer_Foreground=\u524D\u666F
FR-Designer_Foreground=\u989C\u8272
FR-Designer_Form-AuthorityEdited_Cannot_be_Supported=\u6682\u4E0D\u652F\u6301\u8868\u5355\u6743\u9650\u7F16\u8F91
FR-Designer_Form-Report=\u62A5\u8868\u5757
FR-Designer_Form_EmbeddedTD=\u8868\u5355(\u5185\u7F6E\u6570\u636E)
@ -116,6 +117,7 @@ FR-Designer_Forum=\u8BBA\u575B
FR-Designer_Get-Cube=\u6B63\u5728\u83B7\u53D6cube
FR-Designer_Help=\u5E2E\u52A9
FR-Designer_Hide=\u9690\u85CF
FR-Designer_Show=\u663E\u793A
FR-Designer_Hyperlink=\u8D85\u7EA7\u94FE\u63A5
FR-Designer_Hyperlink-Form_link=\u5F53\u524D\u8868\u5355\u5BF9\u8C61
FR-Designer_IDCard=\u8EAB\u4EFD\u8BC1
@ -162,7 +164,7 @@ FR-Designer_Refresh_Parameter_In_SQL=\u662F\u5426\u5237\u65B0SQL\u4E2D\u7684\u53
FR-Designer_Reg_Expressions=\u6B63\u5219\u8868\u8FBE\u5F0F
FR-Designer_Reg_Max_Length=\u6700\u5927\u957F\u5EA6
FR-Designer_Reg_Min_Length=\u6700\u5C0F\u957F\u5EA6
FR-Designer_ReportColumns-Columns=\u5217\u5206\u680F
FR-Designer_ReportColumns-Columns=\u5206\u680F
FR-Designer_Return-Date=\u8FD4\u56DE\u65E5\u671F
FR-Designer_RichText=\u63D2\u5165\u5BCC\u6587\u672C
FR-Designer_RichTextEditor=\u5BCC\u6587\u672C\u7F16\u8F91\u5668
@ -357,7 +359,7 @@ FR-Designer-Series_Dismenber_As_Single=\u8FDE\u7EED\u5206\u9694\u7B26\u89C6\u4E3
FR-Designer_KeyPoint=\u5173\u952E\u8282\u70B9
FR-Designer_loadedTreeModel=\u52A0\u8F7D\u5931\u8D25,\u8BF7\u68C0\u67E5\u540E\u91CD\u8BD5
FR-Designer-Failed_to_load_the_plugin=\u65E0\u6CD5\u52A0\u8F7D\u63D2\u4EF6\uFF0C\u8BF7\u66F4\u65B0\u63D2\u4EF6\uFF1A
FR-Designer-Plugin_Please_Update_Jar=\u8BF7\u66F4\u65B0Jar\u5305\u81F3\:
FR-Designer-Plugin_Please_Update_Jar=\u8BF7\u66F4\u65B0Jar\u5305, \u63D2\u4EF6\u9700\u6C42\u6700\u4F4E\u7248\u672C
FR-Designer-Invalid_Page_Number=\u65E0\u6548\u9875\u7801
FR-Designer_Get-CubeGetting=\u83B7\u53D6cube
FR-Designer_XMLA_Database=\u6570\u636E\u5E93
@ -425,6 +427,8 @@ FR-Designer-App_ReLayout=\u624B\u673A\u91CD\u5E03\u5C40
FR-Designer_Mobile-Attr=\u79FB\u52A8\u7AEF\u5C5E\u6027
FR-Designer_Mobile-Vertical=\u7AD6\u5C4F
FR-Designer_Mobile-Horizontal=\u6A2A\u5C4F
FR-Designer_Mobile-Height-Limit=\u624B\u673A\u663E\u793A\u9650\u5236\u9AD8\u5EA6
FR-Designer_Mobile-Height-Percent=\u6700\u5927\u9AD8\u5EA6
FR-Designer_COMMUNITY=\u793E\u533A
FR-Designer_COMMUNITY_BBS=\u5E06\u8F6F\u8BBA\u575B
FR-Designer_COMMUNITY_VIDEO=\u5165\u95E8\u89C6\u9891
@ -466,9 +470,9 @@ FR-Designer_AllCategories=\u6240\u6709\u5206\u7C7B
FR-Designer_SimpleDetail_Report=\u7B80\u5355\u660E\u7EC6\u8868
FR-Designer_SimpleCross_Report=\u7B80\u5355\u4EA4\u53C9\u8868
FR-Designer_DoubleLayer_Report=\u53CC\u5C42\u8868\u5934
FR-Designer_Download_Template=\u4E0B\u8F7D\u7EC4\u4EF6
FR-Designer_Install_Template=\u5B89\u88C5\u7EC4\u4EF6
FR-Designer_Delete_Template=\u5220\u9664\u7EC4\u4EF6
FR-Designer_Download_Template=\u4E0B\u8F7D
FR-Designer_Install_Template=\u5B89\u88C5
FR-Designer_Delete_Template=\u5220\u9664
FR-Designer_Mobile-ToolBar=\u5DE5\u5177\u680F
FR-Designer_Mobile-Refresh=\u5237\u65B0
FR-Designer_WLayout-Absolute-ToolTips=\u81EA\u7531\u5F0F\u5E03\u5C40\uFF0C\u53EF\u4EE5\u5728\u5E03\u5C40\u5185\u4EFB\u610F\u4F4D\u7F6E\u6DFB\u52A0\u63A7\u4EF6
@ -656,7 +660,7 @@ FRFont-Subscript=\u4E0B\u6807
Background_Settings=\u80CC\u666F\u8BBE\u7F6E
FormulaD-Invalid_Formula=\u975E\u6CD5\u7684\u516C\u5F0F
FR-Base_Margin=\u8FB9\u8DDD
FR-Designer-Plugin_Shop_Installed=\u63D2\u4EF6\u5546\u5E97\u5B89\u88C5\u5B8C\u6BD5,\u662F\u5426\u7ACB\u523B\u542F\u52A8?
FR-Designer-Plugin_Shop_Installed=\u63D2\u4EF6\u5546\u5E97\u5B89\u88C5\u5B8C\u6BD5,\u8BF7\u91CD\u65B0\u6253\u5F00\u63D2\u4EF6\u5546\u5E97\u3002
M_Edit-Send_to_Back=\u7F6E\u4E8E\u5E95\u5C42(K)
Email-Can_Preview_Report_Content=\u6B63\u6587\u9884\u89C8\u62A5\u8868\u5185\u5BB9
FR-Designer-FRFont_Italic=\u503E\u659C
@ -844,7 +848,6 @@ PageSetup-Placement_Center_on_Page=\u5C45\u4E2D\u65B9\u5F0F
sure_to_delete=\u786E\u8BA4\u5220\u9664
Already_exists_not_add_repeat=\u5DF2\u7ECF\u5B58\u5728\uFF0C\u8BF7\u4E0D\u8981\u91CD\u590D\u6DFB\u52A0
Axis_Title=\u8F74\u6807\u9898
FR-Designer-Plugin_Install_Failed=\u63D2\u4EF6\u5B89\u88C5\u5931\u8D25
FR-Designer-Widget-Style_Frame=\u6846\u67B6
MainGraduationUnit=\u4E3B\u8981\u523B\u5EA6\u5355\u4F4D
Second_Axis=\u6B21\u5750\u6807\u8F74
@ -988,7 +991,7 @@ Background-Background_is_NULL=\u6CA1\u6709\u80CC\u666F
FR-Designer_Sytle-FRFont=\u5B57\u4F53
Gradation=\u5C42\u6B21
The_current_list_is_empty=\u5F53\u524D\u5217\u8868\u4E3A\u7A7A
Formula_Dictionary_Display_Examples=\ \u5B9E\u9645\u503C\u8303\u56F4\u4E3A \=range(100),\u5BF9\u5B9E\u9645\u503C\u8303\u56F4\n \u5185\u7684\u6BCF\u4E2A$$$\u7684\u663E\u793A\u516C\u5F0F\u4E3A \=0 - $$$\uFF0C\n \u5219\u6700\u7EC8\u7684\u7ED3\u679C\u5B9E\u9645\u503C\u4E3A1, 2, ..., 100, \n \u663E\u793A\u503C\u4E3A-1, -2, ... , -100\u3002
Formula_Dictionary_Display_Examples=\ \u5B9E\u9645\u503C\u8303\u56F4\u4E3A \
Schedule-Template_Parameter=\u6A21\u677F\u53C2\u6570
JSShow=\u52A8\u6001\u5C55\u793A
Level_coordinates=\u5C42\u6B21\u5750\u6807
@ -1038,7 +1041,7 @@ FR-Designer-Tree_Width=\u5BBD\u5EA6
Record=\u8BB0\u5F55
Poly-Report_Component=\u805A\u5408\u62A5\u8868\u7EC4\u4EF6
Options=\u9009\u9879
NS-war-remote=\u9519\u8BEF\u4EE3\u7801\:1117 \u538B\u7F29\u90E8\u7F72\u4E0D\u652F\u6301\u8FDC\u7A0B\u8BBE\u8BA1
NS-war-remote=\u9519\u8BEF\u4EE3\u7801\:11100017 \u538B\u7F29\u90E8\u7F72\u4E0D\u652F\u6301\u8FDC\u7A0B\u8BBE\u8BA1
Sche-Minute=\u5206
Three_Rows_Of_Three_Grid=\u4E09\u884C\u4E09\u5217\u7684\u683C\u5B50
WorkSheet=\u81EA\u7531\u62A5\u8868
@ -1206,7 +1209,6 @@ FS_Start_Date=\u8D77\u59CB\u65E5\u671F
FR-ConditionB_Operator=\u64CD\u4F5C\u7B26
Printer-Alias=\u522B\u540D
DS-Class_Name=\u7C7B\u540D
FR-Designer-Plugin_Has_Been_Disabled=\u63D2\u4EF6\u5DF2\u88AB\u7981\u7528\uFF0C\u91CD\u542F\u8BBE\u8BA1\u5668\u53CA\u670D\u52A1\u5668\u751F\u6548\uFF0C\u670D\u52A1\u5668\u9700\u624B\u52A8\u91CD\u542F
Sort-Original=\u4E0D\u6392\u5E8F
Utils-Top_to_Bottom_a=\u4ECE\u4E0A\u5F80\u4E0B
Parameter-String=\u5B57\u7B26\u4E32
@ -1345,8 +1347,6 @@ Remove_All_Button=\u6E05\u9664\u6240\u6709\u6309\u94AE
FR-Designer_Component_Interval=\u7EC4\u4EF6\u95F4\u9694
ReportColumns-Columns_vertically=\u5217\u5206\u680F
ReportGUI-Print_Background=\u6253\u5370/\u5BFC\u51FA\u62A5\u8868\u80CC\u666F
FR-Designer_Print_Background=\u6253\u5370\u62A5\u8868\u80CC\u666F
FR-Designer_Export_Background=\u5BFC\u51FA\u62A5\u8868\u80CC\u666F
Export-CSV=CSV\u683C\u5F0F(\u9017\u53F7\u5206\u9694)
M_Edit-Paste=\u7C98\u8D34(P)
FR-Designer-Basic_Restart_Designer=\u91CD\u542F\u8BBE\u8BA1\u5668
@ -1359,7 +1359,7 @@ RWA-NotChange_Unmodified=\u672A\u4FEE\u6539\u4E0D\u66F4\u65B0
User_Information=\u7528\u6237\u4FE1\u606F
Custom_styles_lost=\u81EA\u5B9A\u4E49\u6837\u5F0F\u5DF2\u4E22\u5931
PageSetup-Margin=\u9875\u8FB9\u8DDD
M-New_FormBook=\u65B0\u5EFA\u8868\u5355
M-New_FormBook=\u65B0\u5EFA\u51B3\u7B56\u62A5\u8868
Widget-TreeNode=\u6811\u8282\u70B9\u6309\u94AE
Form-Url=\u5730\u5740
Utils-Beyond_the_left_side_of_Border=\u8D85\u51FA\u5DE6\u8FB9\u754C
@ -1372,7 +1372,7 @@ Not_Exsit=\u4E0D\u5B58\u5728\u4E8E\u62A5\u8868
Utils-Insert_Row=\u63D2\u5165\u884C
Utils-Delete_Row=\u5220\u9664\u884C
not_support_authority_edit=\u8BE5\u5143\u7D20\u4E0D\u652F\u6301\u6743\u9650\u63A7\u5236
Formula_Tips=\u516C\u5F0F\u5FC5\u987B\u4EE5"\="\u53F7\u5F00\u5934\uFF01
Formula_Tips=\u516C\u5F0F\u5FC5\u987B\u4EE5"\
FR-Action_Copy=\u590D\u5236
Compile_Success=\u7F16\u8BD1\u6210\u529F
BackgroundTexture-RecycledPaper=\u518D\u751F\u7EB8
@ -1408,7 +1408,7 @@ Rename=\u91CD\u547D\u540D
Widget-Load_By_Async=\u5F02\u6B65\u52A0\u8F7D
Shape=\u56FE\u5F62
BindColumn-This_Condition_has_been_existed=\u6B64\u6761\u4EF6\u5DF2\u7ECF\u5B58\u5728
NS-exception_readError=\u9519\u8BEF\u4EE3\u7801\:1305 \u6A21\u677F\u6587\u4EF6\u89E3\u6790\u51FA\u9519
NS-exception_readError=\u9519\u8BEF\u4EE3\u7801\:11300005 \u6A21\u677F\u6587\u4EF6\u89E3\u6790\u51FA\u9519
Set_Column_Title_Start=\u8BBE\u7F6E\u91CD\u590D\u6807\u9898\u5217
Fri=\u4E94
M_Report-Report_Parameter=\u6A21\u677F\u53C2\u6570
@ -1460,8 +1460,7 @@ Ratio=\u6BD4\u7387
DBCP_TEST_ON_BORROW=\u83B7\u53D6\u8FDE\u63A5\u524D\u68C0\u9A8C
FR-Designer_layerIndex=\u4F9D\u8D56\u7684\u5C42\u6570
WEB-Write_Setting=\u586B\u62A5\u9875\u9762\u8BBE\u7F6E
M-New_WorkBook=\u65B0\u5EFA\u5DE5\u4F5C\u7C3F
FR-Designer-Plugin_Has_Been_Actived=\u63D2\u4EF6\u5DF2\u88AB\u542F\u7528\uFF0C\u91CD\u542F\u8BBE\u8BA1\u5668\u53CA\u670D\u52A1\u5668\u751F\u6548\uFF0C\u670D\u52A1\u5668\u9700\u624B\u52A8\u91CD\u542F
M-New_WorkBook=\u65B0\u5EFA\u666E\u901A\u62A5\u8868
Datasource-Maximum_Number_of_Preview_Rows=\u6700\u5927\u7684\u9884\u89C8\u884C\u6570
ExpandD-Cell_Expand_Attributes=\u6269\u5C55\u5C5E\u6027
Select_the_repeated_row_and_column=\u9009\u62E9\u9700\u8981\u91CD\u590D\u7684\u884C\u5217
@ -1537,7 +1536,7 @@ FR-Designer_Cancel=\u53D6\u6D88
Button-Group-Display-Columns=\u5C55\u793A\u5217\u6570
Widget-Height=\u63A7\u4EF6\u9AD8\u5EA6
Examples=\u4F8B\u5B50
Formula_Dictionary_Display_Example=\u5B9E\u9645\u503C\u8303\u56F4\u4E3A \=range(100), \u5BF9\u5B9E\u9645\u503C\u8303\u56F4\u5185\u7684\u6BCF\u4E2A$$$\u7684\u663E\u793A\u516C\u5F0F\u4E3A \=0 - $$$\uFF0C\n\u5219\u6700\u7EC8\u7684\u7ED3\u679C\u5B9E\u9645\u503C\u4E3A1, 2, ..., 100, \u663E\u793A\u503C\u4E3A-1, -2, ... , -100\u3002
Formula_Dictionary_Display_Example=\u5B9E\u9645\u503C\u8303\u56F4\u4E3A \
StyleAlignment-Horizontal=\u6C34\u5E73\u5BF9\u9F50
HyperLink_Must_Alone_Reset=\u591A\u4E2A\u8D85\u94FE
ExpandD-Expand_Direction=\u6269\u5C55\u65B9\u5411
@ -1988,6 +1987,26 @@ FR-Designer_Role=\u89D2\u8272
FR-Designer_Permissions=\u6743\u9650
FR-Designer_Form_Button=\u6309\u94AE
FR-Designer_WF_Name=\u540D\u79F0
FR-Designer_AlphaFine_Enable=\u5F00\u542F
FR-Designer_AlphaFine_EnableAlphaFine=\u5F00\u542FAlphaFine\u529F\u80FD
FR-Designer_AlphaFine_EnableInternet=\u8054\u7F51
FR-Designer_AlphaFine_EnableInternetSearch=\u8054\u7F51\u641C\u7D22
FR-Designer_AlphaFine_Shortcut_Config=\u5FEB\u6377\u952E\u914D\u7F6E
FR-Designer_AlphaFine_SearchRange=\u641C\u7D22\u8303\u56F4
FR-Designer-Plugin_Addon=\u5E94\u7528\u4E2D\u5FC3
FR-Designer_Templates=\u6A21\u677F
FR-Designer_Templates_Content=\u6A21\u677F\u5185\u5BB9
FR-Designer_AlphaFine_ShowAll=\u663E\u793A\u5168\u90E8
FR-Designer_AlphaFine_Recommend=\u731C\u60A8\u9700\u8981
FR-Designer_AlphaFine_Latest=\u672C\u5730\u5E38\u7528
FR-Designer_AlphaFine_ShowLess=\u6536\u8D77
FR-Designer_AlphaFine=AlphaFine\u667A\u80FD\u641C\u7D22
FR-Designer-Alphafine_No_Remind=\u4E0D\u518D\u63D0\u793A
FR-Designer_AlphaFine_NoResult=\u6682\u65E0\u76F8\u5173\u5185\u5BB9
FR-Designer_ConnectionFailed=\u94FE\u63A5\u5931\u8D25
FR-Designer_NoResult=\u6682\u4E0D\u652F\u6301\u663E\u793A
FR-Designer-AlphaFine_SetShortcuts=\u8BF7\u76F4\u63A5\u5728\u952E\u76D8\u4E0A\u6309\u4E24\u4E2A\u7EC4\u5408\u952E
FR-Designer_Write_Enhance_Preview=\u65B0\u586B\u62A5\u9884\u89C8
FR-Designer_Double=\u5C0F\u6570
FR-Designer_Query=\u67E5\u8BE2
FR-Designer_Font=\u5B57\u4F53
@ -2005,7 +2024,120 @@ FR-Designer_Build_Tree_Accord_Parent_Marked_Filed=\u4F9D\u8D56\u6240\u9009\u6570
FR-Product_Demo=\u4EA7\u54C1\u6F14\u793A
FR-Designer_Data_Filter=\u6570\u636E\u7B5B\u9009
Default=\u9ED8\u8BA4
FR-Designer_Sheet_Label_Page_Display_Position=sheet\u6807\u7B7E\u9875\u663E\u793A\u4F4D\u7F6E\uFF1A
FR-Designer_Provide_Choose_All=\u63D0\u4F9B\u5168\u9009
FR-Designer_Decimal_Places=\u5C0F\u6570\u6570\u76EE\uFF1A
FR-Base-Load_Resource_File=\u52A0\u8F7D\u914D\u7F6E\u6587\u4EF6
FR-Designer_Cell_Element=\u5355\u5143\u683C\u5143\u7D20
FR-Designer_Cell_Attributes=\u5355\u5143\u683C\u5C5E\u6027
FR-Designer_Float_Element=\u60AC\u6D6E\u5143\u7D20
FR-Designer_Widget_Library=\u7EC4\u4EF6\u5E93
FR-Designer_No_Settings_Available=\u65E0\u53EF\u7528\u914D\u7F6E\u9879\uFF01
FR-Designer_Configured_Roles=\u5DF2\u914D\u7F6E\u89D2\u8272
FR-Designer_Scale_EnlargeOrReduce=\u7F29\u653E
FR-Designer_Scale_selfAdaptButton=\u6070\u597D\u5BB9\u7EB3\u9009\u5B9A\u533A\u57DF
FR-Designer_Scale_customButton=\u81EA\u5B9A\u4E49
FR-Designer_FRFont_Subscript=\u4E0B\u6807
FR-Designer_FRFont_Superscript=\u4E0A\u6807
FR-Designer_FRFont_Shadow=\u9634\u5F71
FR-Designer_FRFont_Strikethrough=\u5220\u9664\u7EBF
FR-Designer_FRFont_Underline=\u4E0B\u5212\u7EBF
FR-Designer_FRFont_bold=\u52A0\u7C97
FR-Designer_FRFont_italic=\u659C\u4F53
FR-Designer_FRFont_Foreground=\u989C\u8272
FR-Designer_FRFont_Style=\u5B57\u5F62
FR-Designer_FRFont_plain=\u5E38\u89C4
FR-Designer_FRFont_bolditalic=\u52A0\u7C97\u503E\u659C
FR-Designer_outBorder=\u5916\u8FB9\u6846
FR-Designer_inBorder=\u5185\u8FB9\u6846
FR-Designer_ExpandD_Up_Father_Cell=\u4E0A\u7236\u683C
FR-Designer_ExpandD_Expand_Direction=\u6269\u5C55\u65B9\u5411
FR-Designer_Expand=\u6269\u5C55
FR-Designer_ExpendSort=\u6269\u5C55\u540E\u6392\u5E8F
FR-Designer_ExpandD_Expandable=\u53EF\u4F38\u5C55\u6027
FR-Designer_Read_failure=\u8BFB\u53D6\u5931\u8D25\uFF0C\u53EF\u80FD\u6E90\u6587\u4EF6\u5DF2\u635F\u574F
FR-Designer_Add_Hyperlink=\u6DFB\u52A0\u94FE\u63A5
FR-Designer-StyleAlignment_Style_PartSpacing=\u6BB5\u95F4\u8DDD
FR-Designer_Image_Layout=\u56FE\u7247\u5E03\u5C40
FR-Designer_StyleAlignment_Text_Style=\u6587\u672C\u63A7\u5236
FR-Designer_StyleAlignment_Text_Rotation=\u6587\u672C\u65B9\u5411
FR-Designer_Style_Left_Indent=\u5DE6\u7F29\u8FDB
FR-Designer_Style_Right_Indent=\u53F3\u7F29\u8FDB
FR-Designer_Style_Spacing_Before=\u6BB5\u524D
FR-Designer_Style_Spacing_After=\u6BB5\u540E
FR-Designer_Style_Line_Spacing=\u884C\u95F4\u8DDD
FR-Designer_Left=\u5DE6
FR-Designer_Right=\u53F3
FR-Designer_Front=\u524D
FR-Designer_Behind=\u540E
FR-Designer_StyleAlignment_Wrap_Text=\u81EA\u52A8\u6362\u884C
FR-Designer_StyleAlignment_Single_Line=\u5355\u884C\u663E\u793A
FR-Designer_StyleAlignment_Single_Line(Adjust_Font)=\u5355\u884C\u663E\u793A(\u8C03\u6574\u5B57\u4F53)
FR-Designer_StyleAlignment_Multi_Line(Adjust_Font)=\u591A\u884C\u663E\u793A(\u8C03\u6574\u5B57\u4F53)
FR-Designer_Auto_Adjust_Height=\u81EA\u52A8\u8C03\u6574\u884C\u9AD8
FR-Designer_Auto_Adjust_Wdith=\u81EA\u52A8\u8C03\u6574\u5217\u5BBD
FR-Designer_Type_Set=\u7C7B\u578B\u8BBE\u7F6E
FR-Designer_Dic_Data_Query=\u6570\u636E\u67E5\u8BE2
FR-Designer_Dictionary_Dynamic_SQL=\u52A8\u6001SQL
FR-Designer_Datasource_From_Database=\u6570\u636E\u5E93\u8868
FR-Designer_CellWrite_InsertRow_NULL=\u7A7A\u503C
FR-Designer_CellWrite_InsertRow_COPY=\u539F\u503C
FR-Designer_CellWrite_InsertRow_Policy=\u63D2\u5165\u884C\u7B56\u7565
FR-Designer_CellWrite_Page_Before_Row=\u884C\u524D\u5206\u9875
FR-Designer_CellWrite_Page_After_Row=\u884C\u540E\u5206\u9875
FR-Designer_CellWrite_Page_Before_Column=\u5217\u524D\u5206\u9875
FR-Designer_CellWrite_Page_After_Column=\u5217\u540E\u5206\u9875
FR-Designer_CellPage_Can_Break_On_Paginate=\u5206\u9875\u65F6\u53EF\u4EE5\u65AD\u5F00
FR-Designer_CellPage_Repeat_Content_When_Paging=\u5206\u9875\u65AD\u5F00\u65F6\u503C\u91CD\u590D\u663E\u793A
FR-Designer_CellWrite_Preview_Cell_Content=\u9884\u89C8\u5355\u5143\u683C\u5185\u5BB9
FR-Designer_CellWrite_Print_Content=\u6253\u5370/\u5BFC\u51FA\u5355\u5143\u683C\u5185\u5BB9
FR-Designer_CellWrite_Print_Background=\u6253\u5370/\u5BFC\u51FA\u5355\u5143\u683C\u80CC\u666F
FR-Designer_CellWrite_Show_As_Image=\u7528\u56FE\u7247\u663E\u793A\u5185\u5BB9
FR-Designer_CellWrite_Show_As_HTML=\u7528HTML\u663E\u793A\u5185\u5BB9
FR-Designer_Datasource_Other_Attributes=\u5176\u4ED6\u5C5E\u6027
FR-Designer_Not_use_a_cell_attribute_table_editing=\u60A8\u4E0D\u53EF\u4EE5\u7528\u5355\u5143\u683C\u5C5E\u6027\u8868\u7F16\u8F91
FR-Designer_CellElement_Property_Table=\u5355\u5143\u683C\u5C5E\u6027\u8868
FR-Designer_Add_Condition=\u6DFB\u52A0\u6761\u4EF6
FR-Designer_Use_Params_Template=\u4F7F\u7528\u5E38\u7528\u53C2\u6570\u7EC4\u5408
FR-Designer_Label_Name=\u6807\u7B7E\u540D\u79F0
FR-Designer_T_Insert_Float=\u63D2\u5165\u60AC\u6D6E\u5143\u7D20
FR-Designer_Add_FloatElement=\u6DFB\u52A0\u5143\u7D20
FR-Designer_Insert_Image=\u63D2\u5165\u56FE\u7247
FR-Designer_Insert_Chart=\u63D2\u5165\u56FE\u8868
FR-Designer_Insert_Text=\u63D2\u5165\u666E\u901A\u6587\u672C
FR-Designer_Insert_Formula=\u63D2\u5165\u516C\u5F0F
FR-Designer_Add_Event=\u6DFB\u52A0\u4E8B\u4EF6
FR-Designer_Cell_Visible=\u5355\u5143\u683C\u53EF\u89C1
FR-Designer_Float_Visible=\u60AC\u6D6E\u5143\u7D20\u53EF\u89C1
FR-Designer_Cell_Value=\u5355\u5143\u683C\u503C
FR-Designer_Widget_Visible=\u63A7\u4EF6\u53EF\u89C1
FR-Designer_Widget_Enabled=\u63A7\u4EF6\u53EF\u7528
FR-Designer_Scale_Down=\u7F29\u5C0F
FR-Designer_Scale_Up=\u653E\u5927
FR-Designer_Scale_Slider=\u7F29\u653E\u6ED1\u5757
FR-Designer_Scale_Grade=\u7F29\u653E\u7EA7\u522B\uFF0C\u5355\u51FB\u540E\u8C03\u8282\u663E\u793A\u6BD4\u4F8B\u3002
FR-Designer_Not_Support_Authority_Edit=\u8BE5\u5143\u7D20\u4E0D\u652F\u6301\u6743\u9650\u63A7\u5236
FR-Designer_Dynamic_Parameter=\u52A8\u6001\u53C2\u6570
FR-Designer_Remove_Item=\u5220\u9664\u9009\u4E2D
FR-Designer_Widget_Position=\u63A7\u4EF6\u4F4D\u7F6E
FR-Designer_Widget_Field=\u5B57\u6BB5
FR-Designer_Widget_Formula=\u516C\u5F0F
FR-Designer_Widget_String=\u5B57\u7B26\u4E32
FR-Designer_Widget_Display_Report_Tool=\u663E\u793A\u62A5\u8868\u5757\u5DE5\u5177\u680F
FR-Designer_Widget_No_Repeat=\u53BB\u9664\u91CD\u590D\u9879
FR-Designer_Widget_Error_Tip=\u9519\u8BEF\u63D0\u793A
FR-Designer_Widget_Return_Leaf=\u7ED3\u679C\u8FD4\u56DE\u53F6\u5B50\u8282\u70B9
FR-Designer_Widget_Return_Path=\u7ED3\u679C\u8FD4\u56DE\u5B8C\u6574\u5C42\u6B21\u8DEF\u5F84
FR-Designer_Widget_Display_Position=\u663E\u793A\u4F4D\u7F6E
FR-Designer_Size_Limit=\u5927\u5C0F\u9650\u5236
FR-Designer_Widget_Name=\u63A7\u4EF6\u540D\u79F0
FR-Designer_Coords_And_Size=\u5750\u6807\u00B7\u5C3A\u5BF8
FR-Designer_Barcode_Size=\u6761\u5F62\u7801\u5927\u5C0F
FS-Designer_DS_Filter_Odd_Tip=\u63D0\u793A\uFF1A\u5E8F\u53F7\u4ECE1\u5F00\u59CB\uFF0C\u9009\u62E9\u4E86\u5947\u6570\u96C6(1,3,5...)
FS-Designer_DS_Filter_Even_Tip=\u63D0\u793A\uFF1A\u5E8F\u53F7\u4ECE1\u5F00\u59CB\uFF0C\u9009\u62E9\u4E86\u5076\u6570\u96C6(2,4,6...)
FS-Designer_DS_Filter_Specify_Tip=\u63D0\u793A\uFF1A\u683C\u5F0F\u4E3A1,2-3,5,8\uFF0C\u5E8F\u53F7\u4ECE1\u5F00\u59CB\uFF0C\u5185\u503C\u53C2\u6570$_count_\u8868\u793A\u603B\u4E2A\u6570
FR-Designer-AlphaFine_NO_Result=\u65E0\u641C\u7D22\u7ED3\u679C
FR-Designer-Download_Online_Sources=\u56FE\u8868\u9700\u8981\u4E0B\u8F7D\u6700\u65B0\u7684\u8D44\u6E90\u6587\u4EF6\uFF0C\u662F\u5426\u5B89\u88C5\uFF1F
FR-Designer_Select_Color=\u9009\u62E9\u989C\u8272
FR-Designer-Basic_Dynamic_Parameter_Injection=\u6CE8\u5165
FR-Designer_Label=\u6807\u7B7E
FR-Designer_Widgetname=\u63A7\u4EF6\u540D
FR-Designer_Insert_Cell_Element=\u63D2\u5165\u5143\u7D20

371
designer_base/src/com/fr/design/locale/designer_zh_TW.properties

@ -1,6 +1,7 @@
# generated time: \u661F\u671F\u56DB \u5341\u4E00\u6708 24 12:02:51 CST 2016
FR-Designer-BBSLogin_Account=\u767B\u5165\u5E33\u865F
FR-Designer-BBSLogin_Connection-Failure=\u767B\u5165\u9023\u63A5\u5931\u6557\uFF0C\u8ACB\u6AA2\u67E5\u7576\u524D\u7DB2\u8DEF\u72C0\u614B
FR-Designer-BBSLogin_Connection-Failure-Tip=\u9023\u7DDA\u5931\u6557\u63D0\u793A
FR-Designer-BBSLogin_Connection-Failure=\u767B\u5165\u9023\u63A5\u5931\u6557\uFF0C\u8ACB\u6AA2\u67E5\u7576\u524D\u7DB2\u8DEF\u72C0\u614B
FR-Designer-BBSLogin_Connection-Failure-Tip=\u9023\u7DDA\u5931\u6557\u63D0\u793A
FR-Designer-BBSLogin_Forgot-Password=\u5FD8\u8A18\u5BC6\u78BC
FR-Designer-BBSLogin_Login=\u767B\u9304
FR-Designer-BBSLogin_Login-Failure-Tip=\u5E33\u865F\u6216\u5BC6\u78BC\u932F\u8AA4\uFF0C\u8ACB\u91CD\u65B0\u767B\u9304
@ -8,10 +9,10 @@ FR-Designer-BBSLogin_Password=\u5BC6 \u78BC
FR-Designer-BBSLogin_Password-Empty-Tip=\u5BC6\u78BC\u4E0D\u80FD\u70BA\u7A7A
FR-Designer-BBSLogin_Register-Account=\u8A3B\u518A\u5E33\u865F
FR-Designer-BBSLogin_Switch-Account=\u5207\u63DB\u5E33\u865F
FR-Designer-BBSLogin_Privite-Message=\u79C1\u4EBA\u8A0A\u606F
FR-Designer-BBSLogin_Privite-Message=\u79C1\u4EBA\u6D88\u606F
FR-Designer-BBSLogin_Times=\u6B21
FR-Designer-BBSLogin_Username-Empty-Tip=\u4F7F\u7528\u8005\u70BA\u7A7A\u63D0\u793A
FR-Designer-Basic_More_Color=\u66F4\u591A\u984F\u8272
FR-Designer-Basic_More_Color=\u66F4\u591A\u984F\u8272...
FR-Designer-Estate_Any=\u4E0D\u9650
FR-Designer-Estate_Default_Font=\u9810\u8A2D\u5B57\u9AD4
FR-Designer-Estate_Default_Null=\u9810\u8A2D\u70BA\u7A7A
@ -105,8 +106,8 @@ FR-Designer_Font-Family=\u5B57\u9AD4\u540D\u7A31
FR-Designer_Font-Size=\u5B57\u9AD4\u5927\u5C0F
FR-Designer_Forbid_Drag_into_Adapt_Pane=\u8A72\u5C0D\u8C61\u4E0D\u5141\u8A31\u62D6\u5165\u8868\u55AE\u4E3B\u9AD4
FR-Designer_Forbid_Drag_into_Para_Pane=\u8A72\u5C0D\u8C61\u4E0D\u80FD\u62D6\u5165\u53C3\u6578\u9762\u677F
FR-Designer_Foreground=\u5B57\u5F62\u8272\u5F69
FR-Designer_Form-AuthorityEdited_Cannot_be_Supported=\u66AB\u4E0D\u652F\u63F4\u8868\u55AE\u6B0A\u9650\u7DE8\u8F2F
FR-Designer_Foreground=\u984F\u8272
FR-Designer_Form-AuthorityEdited_Cannot_be_Supported=\u66AB\u4E0D\u652F\u6301\u8868\u55AE\u6B0A\u9650\u7DE8\u8F2F
FR-Designer_Form-Report=\u5831\u8868\u683C\u5F0F
FR-Designer_Form_EmbeddedTD=\u5167\u5D01\u683C\u5F0F
FR-Designer_Form_Module=\u6A21\u7D44\u683C\u5F0F
@ -121,7 +122,7 @@ FR-Designer_Hyperlink-Form_link=\u7576\u524D\u8868\u55AE\u5C0D\u8C61
FR-Designer_IDCard=\u8EAB\u4EFD\u8B49
FR-Designer_Icon=\u5716\u793A
FR-Designer_Index=\u7D22\u5F15
FR-Designer_Input_Rule=\u586B\u5BEB\u898F\u5247
FR-Designer_Input_Rule=\u8F38\u5165\u898F\u5247
FR-Designer_Language_Default=\u9810\u8A2D\u8A9E\u8A00
FR-Designer_Layout=\u5E03\u5C40\u3001\u898F\u5283
FR-Designer_Layout-HBox=\u6C34\u5E73\u76D2\u5B50\u5E03\u5C40
@ -136,7 +137,7 @@ FR-Designer_M-Repeat-Freeze=\u91CD\u8907\u8207\u51CD\u7D50
FR-Designer_M-Server=\u4F3A\u670D\u5668
FR-Designer_M-SwitchWorkspace=\u5207\u63DB\u5DE5\u4F5C\u5340\u9593
FR-Designer_M-Template=\u7BC4\u672C
FR-Designer_MDX_Explain=\u8A9E\u6CD5\u683C\u5F0F\u53C3\u8003MDX\u8A9E\u6CD5\u3002\n\u4F8B\u5982\uFF1A\nWITH\nMEMBER [Measures].[Special Discount] AS\n[Measures].[Discount Amount] * 1.5\nSELECT\n[Measures].[Special Discount] on COLUMNS,\nNON EMPTY [Product].[Product].MEMBERS ON Rows\nFROM [Adventure Works]\nWHERE [Product].[Category].[Bikes]\n\u8A3B\uFF1ACOLUMNS\u3001ROWS\u53EF\u4EE5\u4F7F\u75280\u30011\u4EE3\u66FF\u67E5\u8EF8\u53EA\u652F\u63F4\u8FD4\u56DE\u5169\u500B\u8EF8\u3002
FR-Designer_MDX_Explain=\u8A9E\u6CD5\u683C\u5F0F\u53C3\u8003MDX\u8A9E\u6CD5\u3002\n\u4F8B\u5982\uFF1A\nWITH\nMEMBER [Measures].[Special Discount] AS\n[Measures].[Discount Amount] * 1.5\nSELECT\n[Measures].[Special Discount] on COLUMNS,\nNON EMPTY [Product].[Product].MEMBERS ON Rows\nFROM [Adventure Works]\nWHERE [Product].[Category].[Bikes]\n\u8A3B\uFF1ACOLUMNS\u3001ROWS\u53EF\u4EE5\u4F7F\u75280\u30011\u4EE3\u66FF\u67E5\u8EF8\u53EA\u652F\u6301\u8FD4\u56DE\u5169\u500B\u8EF8\u3002
FR-Designer_M_Help-About_Software=\u95DC\u65BC\u8EDF\u9AD4
FR-Designer_M_Help-Tutorial=\u64CD\u4F5C\u8AAA\u660E
FR-Designer_Max_Value=\u6700\u5927\u503C
@ -151,7 +152,7 @@ FR-Designer_Para-Body=\u53C3\u6578\u672C\u6587
FR-Designer_Parameters=\u53C3\u6578
FR-Designer_Phone=\u96FB\u8A71
FR-Designer_PostCode=\u90F5\u905E\u5340\u865F
FR-Designer_Present=\u6A21\u5F0F
FR-Designer_Present=\u7576\u4E0B
FR-Designer_Preview=\u9810\u89BD
FR-Designer_Preview-Data-Confusion=\u6DF7\u6DC6\u8CC7\u6599\u9810\u89BD
FR-Designer_Product_Demo=\u7522\u54C1\u5C55\u793A
@ -161,9 +162,9 @@ FR-Designer_Refresh_Parameter_In_SQL=\u5728SQL\u4E2D\u91CD\u65B0\u6574\u7406\u76
FR-Designer_Reg_Expressions=\u6B63\u5247\u8868\u9054\u5F0F
FR-Designer_Reg_Max_Length=\u6700\u5927\u9577\u5EA6
FR-Designer_Reg_Min_Length=\u6700\u5C0F\u9577\u5EA6
FR-Designer_ReportColumns-Columns=\u6B04\u5206\u6B04
FR-Designer_ReportColumns-Columns=\u5831\u8868\u6B04\u4F4D
FR-Designer_Return-Date=\u8FD4\u56DE\u65E5\u671F
FR-Designer_RichText=RTF
FR-Designer_RichText= RTF
FR-Designer_RichTextEditor=RTF\u7DE8\u8F2F\u5668
FR-Designer_Row=\u5217
FR-Designer_Row_Dimension=\u5217\u7DAD\u5EA6
@ -180,7 +181,7 @@ FR-Designer_Support_QQ=\u652F\u63F4QQ
FR-Designer_Swatch=\u6A23\u54C1
FR-Designer_Tab_title=tab\u6A19\u984C
FR-Designer_TableData=\u8CC7\u6599\u96C6
FR-Designer_Thank_guest=\u611F\u8B1D\u5BA2\u6236
FR-Designer_Thank_guest=\u611F\u8B1D\u5BA2\u6236
FR-Designer_Thanks-To=\u9CF4\u8B1D
FR-Designer_Title=\u6A19\u984C
FR-Designer_Total=\u7E3D\u5171
@ -194,10 +195,10 @@ FR-Designer_VerticalBoxLayout=\u6A6B\u5411\u4F48\u5C40
FR-Designer_Visible=\u53EF\u898B
FR-Designer_WLayout-Border-ToolTips=\u908A\u754C\u4F48\u5C40
FR-Designer_WaterMark=\u6C34\u5370
FR-Designer_Widget=\u63A7\u5236\u9805
FR-Designer_Widget=\u5C0F\u5DE5\u5177
FR-Designer_Widget-Settings=\u8A2D\u5B9A
FR-Designer_Widget-Visible=\u53EF\u898B
FR-Designer_XMLA_Explain=\u5728\u4F7F\u7528\u591A\u7DAD\u8CC7\u6599\u96C6\u53D6\u6578\u524D\uFF0C\u60A8\u9996\u5148\u9700\u8981\u4E00\u500B\u53EF\u6210\u529F\u9023\u63A5\u7684\u591A\u7DAD\u8CC7\u6599\u5EAB\u9023\u63A5\u3002\n\u8A2D\u5B9A\u5B8C\u8CC7\u6599\u9023\u63A5\u5F8C\uFF0C\u67E5\u8A62\u8CC7\u6599\u6642,\u6709\u5169\u7A2E\u4E0D\u540C\u7684\u53D6\u6578\u624B\u6BB5\u3002\n1.\u7C21\u55AE\u901A\u7528\u67E5\u8A62\uFF1A\n\u7C21\u55AE\u901A\u7528\u67E5\u8A62\u9069\u7528\u65BCFineBI\u53CA\u5176\u4ED6\u591A\u7DAD\u8CC7\u6599\u5EAB\u3002\n\u4F7F\u7528\u7C21\u55AE\u901A\u7528\u67E5\u8A62\uFF0CFR\u5C07\u81EA\u52D5\u8B80\u53D6\u9078\u64C7cube\u7684\u5C64\u6B21\u7D50\u69CB\uFF0C\u60A8\u53EF\u4EE5\u76F4\u63A5\u9078\u64C7\u6240\u9700\u7684\u5EA6\u91CF\u503C\u53CA\u7DAD\u5EA6\uFF0C\u4E26\u6DFB\u52A0\u7BE9\u9078\u689D\u4EF6\uFF0CFR\u6703\u6839\u64DA\u60A8\u7684\u9078\u64C7\u81EA\u52D5\u67E5\u8A62\u8CC7\u6599\u3002\n\u7C21\u55AE\u901A\u7528\u67E5\u8A62\u50C5\u652F\u63F4\u7DAD\u5EA6\u53CA\u5EA6\u91CF\u503C\u5169\u500B\u8EF8\u7684\u67E5\u8A62\u3002\n\u5728\u5EA6\u91CF\u503C\u53CA\u7DAD\u5EA6\u8A2D\u5B9A\u4E2D\uFF0C\u76EE\u524D\u60A8\u53EA\u80FD\u9078\u64C7\u6240\u9700\u7DAD\u5EA6\uFF0C\u7121\u6CD5\u624B\u52D5\u4FEE\u6539\u3002\n\u904E\u6FFE\u689D\u4EF6\u63A1\u7528OPEN SQL\u8A9E\u6CD5\uFF0C\u60A8\u53EF\u4EE5\u9375\u5165${abc}\u4F5C\u70BA\u4E00\u500B\u53C3\u6578\uFF0C\u7528\u6CD5\u540C\u8CC7\u6599\u5EAB\u8CC7\u6599\u96C6\u3002\n2.\u81EA\u5B9A\u7FA9MDX\u67E5\u8A62\uFF1A\n\u4F7F\u7528\u81EA\u5B9A\u7FA9MDX\u67E5\u8A62\uFF0C\u60A8\u53EF\u4EE5\u81EA\u5B9A\u7FA9\u7FA9MDX\u8A9E\u53E5\u67E5\u8A62\u6240\u9700\u7D50\u679C\u3002\n\u6CE8\u610F\uFF0C\u81EA\u5B9A\u7FA9MDX\u67E5\u8A62\u4E5F\u53EA\u652F\u63F4\u5169\u500B\u8EF8\u7684\u67E5\u8A62\u3002\n\u60A8\u53EF\u9375\u5165${abc}\u4F5C\u70BA\u4E00\u500B\u53C3\u6578\uFF0C\u7528\u6CD5\u540C\u8CC7\u6599\u5EAB\u8CC7\u6599\u96C6\u3002\nFineBI\u7684cube\u4E0D\u652F\u63F4MDX\u67E5\u8A62\u3002
FR-Designer_XMLA_Explain=\u5728\u4F7F\u7528\u591A\u7DAD\u8CC7\u6599\u96C6\u53D6\u6578\u524D\uFF0C\u60A8\u9996\u5148\u9700\u8981\u4E00\u500B\u53EF\u6210\u529F\u9023\u63A5\u7684\u591A\u7DAD\u8CC7\u6599\u5EAB\u9023\u63A5\u3002\n\u8A2D\u5B9A\u5B8C\u8CC7\u6599\u9023\u63A5\u5F8C\uFF0C\u67E5\u8A62\u8CC7\u6599\u6642,\u6709\u5169\u7A2E\u4E0D\u540C\u7684\u53D6\u6578\u624B\u6BB5\u3002\n1.\u7C21\u55AE\u901A\u7528\u67E5\u8A62\uFF1A\n\u7C21\u55AE\u901A\u7528\u67E5\u8A62\u9069\u7528\u65BCFineBI\u53CA\u5176\u4ED6\u591A\u7DAD\u8CC7\u6599\u5EAB\u3002\n\u4F7F\u7528\u7C21\u55AE\u901A\u7528\u67E5\u8A62\uFF0CFR\u5C07\u81EA\u52D5\u8B80\u53D6\u9078\u64C7cube\u7684\u5C64\u6B21\u7D50\u69CB\uFF0C\u60A8\u53EF\u4EE5\u76F4\u63A5\u9078\u64C7\u6240\u9700\u7684\u5EA6\u91CF\u503C\u53CA\u7DAD\u5EA6\uFF0C\u4E26\u6DFB\u52A0\u7BE9\u9078\u689D\u4EF6\uFF0CFR\u6703\u6839\u64DA\u60A8\u7684\u9078\u64C7\u81EA\u52D5\u67E5\u8A62\u8CC7\u6599\u3002\n\u7C21\u55AE\u901A\u7528\u67E5\u8A62\u50C5\u652F\u6301\u7DAD\u5EA6\u53CA\u5EA6\u91CF\u503C\u5169\u500B\u8EF8\u7684\u67E5\u8A62\u3002\n\u5728\u5EA6\u91CF\u503C\u53CA\u7DAD\u5EA6\u8A2D\u5B9A\u4E2D\uFF0C\u76EE\u524D\u60A8\u53EA\u80FD\u9078\u64C7\u6240\u9700\u7DAD\u5EA6\uFF0C\u7121\u6CD5\u624B\u52D5\u4FEE\u6539\u3002\n\u904E\u6FFE\u689D\u4EF6\u63A1\u7528OPEN SQL\u8A9E\u6CD5\uFF0C\u60A8\u53EF\u4EE5\u9375\u5165${abc}\u4F5C\u70BA\u4E00\u500B\u53C3\u6578\uFF0C\u7528\u6CD5\u540C\u8CC7\u6599\u5EAB\u8CC7\u6599\u96C6\u3002\n2.\u81EA\u5B9A\u7FA9MDX\u67E5\u8A62\uFF1A\n\u4F7F\u7528\u81EA\u5B9A\u7FA9MDX\u67E5\u8A62\uFF0C\u60A8\u53EF\u4EE5\u81EA\u5B9A\u7FA9\u7FA9MDX\u8A9E\u53E5\u67E5\u8A62\u6240\u9700\u7D50\u679C\u3002\n\u6CE8\u610F\uFF0C\u81EA\u5B9A\u7FA9MDX\u67E5\u8A62\u4E5F\u53EA\u652F\u6301\u5169\u500B\u8EF8\u7684\u67E5\u8A62\u3002\n\u60A8\u53EF\u9375\u5165${abc}\u4F5C\u70BA\u4E00\u500B\u53C3\u6578\uFF0C\u7528\u6CD5\u540C\u8CC7\u6599\u5EAB\u8CC7\u6599\u96C6\u3002\nFineBI\u7684cube\u4E0D\u652F\u6301MDX\u67E5\u8A62\u3002
FR-Designer_bold=\u7C97\u9AD4
FR-Designer_font=\u5B57\u9AD4
FR-Designer_italic=\u659C\u9AD4
@ -348,7 +349,7 @@ FR-Designer_Add_JS_warning=\u8ACB\u8F38\u51FA\u6B63\u78BA\u7684url\u5730\u5740\u
FR-Designer-Encoding_Type=\u7DE8\u78BC\u985E\u578B
FR-Designer-FirstRow_IS_ColumnName=\u7B2C\u4E00\u5217\u5305\u542B\u6B04\u6A19\u984C
FR-Designer_Dismenber=\u5206\u9694\u7B26
FR-Designer_TableDismember=\u88FD\u8868\u7B26
FR-Designer_TableDismember=\u88FD\u9336\u7B26
FR-Designer_Space=\u7A7A\u683C
FR-Designer_CommaDismenber=\u9017\u865F
FR-Designer_Other=\u5176\u4ED6
@ -356,7 +357,7 @@ FR-Designer-Series_Dismenber_As_Single=\u9023\u7E8C\u5206\u9694\u7B26\u8996\u70B
FR-Designer_KeyPoint=\u95DC\u9375\u7BC0\u9EDE
FR-Designer_loadedTreeModel=\u52A0\u8F09\u5931\u6557,\u8ACB\u6AA2\u67E5\u5F8C\u91CD\u8A66
FR-Designer-Failed_to_load_the_plugin=\u7121\u6CD5\u52A0\u8F09\u63D2\u4EF6\uFF0C\u8ACB\u66F4\u65B0\u63D2\u4EF6\uFF1A
FR-Designer-Plugin_Please_Update_Jar=\u8ACB\u66F4\u65B0Jar\u5305\u81F3\:
FR-Designer-Plugin_Please_Update_Jar=\u8ACB\u66F4\u65B0Jar\u5305, \u63D2\u4EF6\u9700\u6C42\u6700\u4F4E\u7248\u672C
FR-Designer-Invalid_Page_Number=\u7121\u6548\u9801\u78BC
FR-Designer_Get-CubeGetting=\u7372\u53D6cube
FR-Designer_XMLA_Database=\u8CC7\u6599\u5EAB
@ -392,7 +393,7 @@ FR-Designer_Product_improve=\u7522\u54C1\u6539\u826F
FR-Designer_Join_Product_improve=\u52A0\u5165\u7522\u54C1\u6539\u826F\u8A08\u5283
FR-Designer_Preference-Function=\u529F\u80FD\u8A2D\u5B9A
FR-Designer_max_undo_limit=\u6700\u5927\u5FA9\u539F\u6B21\u6578
FR-Designer_Surport_String_To_Formula=\u652F\u63F4\u5B57\u5143\u4E32\u7DE8\u8F2F\u70BA\u516C\u5F0F
FR-Designer_Surport_String_To_Formula=\u652F\u6301\u5B57\u5143\u4E32\u7DE8\u8F2F\u70BA\u516C\u5F0F
FR-Designer_Always=\u59CB\u7D42
FR-Designer_Export_Setting=\u532F\u51FA\u914D\u7F6E
FR-Designer_Select_Export_Log_Directory=\u9078\u64C7\u532F\u51FA\u76EE\u9304
@ -423,6 +424,8 @@ FR-Designer-App_ReLayout=\u624B\u6A5F\u91CD\u4F48\u5C40
FR-Designer_Mobile-Attr=\u79FB\u52D5\u7AEF\u5C6C\u6027
FR-Designer_Mobile-Horizontal=\u6A6B\u5C4F
FR-Designer_Mobile-Vertical=\u8C4E\u5C4F
FR-Designer_Mobile-Height-Limit=\u624B\u6A5F\u986F\u793A\u9650\u5236\u9AD8\u5EA6
FR-Designer_Mobile-Height-Percent=\u6700\u5927\u9AD8\u5EA6
FR-Designer_COMMUNITY_QUESTIONS=\u554F\u984C\u6C42\u52A9
FR-Designer_COMMUNITY_SIGN=\u5E06\u8EDF\u8A8D\u8B49
FR-Designer_COMMUNITY_BUG=BUG\u53CD\u994B
@ -559,20 +562,20 @@ FR-Designer_Parameter-Formula=\u516C\u5F0F
FR-Designer_Plugin_Should_Update_Please_Contact_Developer=\u633F\u4EF6\u7248\u672C\u904E\u4F4E\uFF0C\u5B58\u5728API\u4E0D\u76F8\u5BB9\uFF0C\u8ACB\u806F\u7CFB\u958B\u767C\u8005\u965E\u7D1A\u633F\u4EF6
FR-Designer_WidgetOrder=\u63A7\u4EF6\u9806\u5E8F
FR-Designer_Mobile_Form_Analysis_Annotation=\u6CE8\u91CB\uFF1A\u53EF\u4EE5\u901A\u904E\u8A72\u5C6C\u6027\u63A7\u5236\u8868\u55AE\u5728APP\u4E2D\u7684\u89E3\u6790\u65B9\u5F0F\u3002
FR-Designer_Mobile_Report_Analysis_Annotation=\u6CE8\u91CB\uFF1A\u53EF\u4EE5\u901A\u904E\u8A72\u5C6C\u6027\u63A7\u5236\u5831\u8868\u5728APP\u4E2D\u7684\u89E3\u6790\u65B9\u5F0F\uFF0C\u53EA\u652F\u63F4\u5206\u9801\u9810\u89BD\uFF0C\u586B\u5831\u9810\u89BD\u6642\u5C6C\u6027\u7121\u6548\u3002
FR-Designer_Background_Null=\u6C92\u6709\u80CC\u666F
FR-Designer_Background_Color=\u984F\u8272
FR-Designer_Background_Texture=\u7D0B\u7406
FR-Designer_Background_Pattern=\u5716\u6848
FR-Designer_Background_Gradient_Color=\u6F38\u8B8A\u8272
FR-Designer_Background_Image=\u5716\u7247
FR-Designer_Background_Clear=\u6E05\u9664
FR-Designer_Background_Image_Select=\u9078\u64C7\u5716\u7247
FR-Designer_Mobile_Report_Analysis_Annotation=\u6CE8\u91CB\uFF1A\u53EF\u4EE5\u901A\u904E\u8A72\u5C6C\u6027\u63A7\u5236\u5831\u8868\u5728APP\u4E2D\u7684\u89E3\u6790\u65B9\u5F0F\uFF0C\u53EA\u652F\u6301\u5206\u9801\u9810\u89BD\uFF0C\u586B\u5831\u9810\u89BD\u6642\u5C6C\u6027\u7121\u6548\u3002
FR-Designer_Background_Null=
FR-Designer_Background_Color=
FR-Designer_Background_Texture=
FR-Designer_Background_Pattern=
FR-Designer_Background_Gradient_Color=
FR-Designer_Background_Image=
FR-Designer_Background_Clear=
FR-Designer_Background_Image_Select=
FR-Designer_Too_Large_To_Paste=\u7D44\u4EF6\u5927\u5C0F\u8D85\u51FA\u908A\u754C\uFF0C\u7121\u6CD5\u7C98\u8CBC\uFF01
FR-Designer_Too_Small_To_Paste=\u6B64\u8655\u7121\u6CD5\u7C98\u8CBC\uFF0C\u5C0F\u65BC\u7D44\u4EF6\u6700\u5C0F\u9AD8\u5EA6\uFF01
FR-Designer_Initial_Background_Tips=\u6309\u9215\u7684\u521D\u59CB\u80CC\u666F
FR-Designer_Mouse_Move_Tips=\u6ED1\u9F20\u79FB\u52D5\u5230\u6309\u9215\u4E0A\u7684\u80CC\u666F\uFF0C\u82E5\u7121\u5247\u4E0D\u6539\u8B8A\u80CC\u666F
FR-Designer_Mouse_Click_Tips=\u6ED1\u9F20\u9EDE\u64CA\u6309\u9215\u6642\u80CC\u666F\uFF0C\u82E5\u7121\u5247\u4E0D\u6539\u8B8A\u80CC\u666F
FR-Designer_Initial_Background_Tips=
FR-Designer_Mouse_Move_Tips=
FR-Designer_Mouse_Click_Tips=
FR-Designer_AxisReversed=\u8EF8\u9006\u5E8F
FR-Designer_Logarithmic=\u5C0D\u6578\u523B\u5EA6
FR-Designer_Chart_Log_Base=\u5E95\u6578
@ -581,20 +584,20 @@ FR-Designer_Style=\u6A23\u5F0F
FR-Designer_Color=\u984F\u8272
FR-Designer_Border=\u6846\u7DDA
FR-Designer_Background-Pattern=\u5716\u6848
FR-Designer_SimpleDetail_Report=\u7C21\u55AE\u660E\u7D30\u8868
FR-Designer_Reset=\u53D6\u6D88\u522A\u9664
FR-Designer_AllCategories=\u6240\u6709\u5206\u985E
FR-Designer-Selected_Widget=\u7576\u524D\u63A7\u5236\u9805
FR-Designer_SimpleCross_Report=\u7C21\u55AE\u4EA4\u53C9\u8868
FR-Designer_LocalWidget=\u672C\u5730\u7D44\u4EF6\u5EAB
FR-Designer_SimpleDetail_Report=
FR-Designer_Reset=
FR-Designer_AllCategories=
FR-Designer-Selected_Widget=
FR-Designer_SimpleCross_Report=
FR-Designer_LocalWidget=
FR-Designer_Edit_Button_ToolBar=\u7DE8\u8F2F\u6309\u9215\u6240\u5728\u5DE5\u5177\u6B04
FR-Designer_Remove_Button_ToolBar=\u79FB\u9664\u6309\u9215\u6240\u5728\u5DE5\u5177\u6B04
FR-Designer_Install_Template=\u5B89\u88DD\u7D44\u4EF6
FR-Designer_Allow-Blank=\u5141\u8A31\u70BA\u7A7A
FR-Designer_Delete_Template=\u522A\u9664\u7D44\u4EF6
FR-Designer_Download_Template=\u4E0B\u8F09\u7D44\u4EF6
FR-Designer_DoubleLayer_Report=\u96D9\u5C64\u8868\u982D
FR-Designer_Validate=\u6821\u9A57
FR-Designer_Install_Template=
FR-Designer_Allow-Blank=
FR-Designer_Delete_Template=
FR-Designer_Download_Template=
FR-Designer_DoubleLayer_Report=
FR-Designer_Validate=
CellWrite-InsertRow_NULL=\u7A7A\u503C
DashBoard-ChartFloat=\u5716\u8868
contact_info=\u806F\u7E6B\u8A0A\u606F(\u9078\u586B)
@ -610,12 +613,12 @@ FR-Designer_Number=\u6578\u5B57
FR-Designer-Widget-Style_Common=\u666E\u901A
M-Save_As=\u53E6\u5B58\u70BA
Following_parameters_are_not_generated=\u4EE5\u4E0B\u53C3\u6578\u672A\u751F\u6210
FR-Designer-Basic_Activation_Key_Copy_OK=\u5DF2\u8907\u88FD\u5230\u526A\u8CBC\u677F
FR-Designer-Basic_Activation_Key_Copy_OK=Key has been copy to clipboard
Utils-Current_Sheet=\u7576\u524D\u7684Sheet
ConditionB-is_less_than=\u5C0F\u65BC
BorderLayout-West=\u897F
AnalysisLine=\u5206\u6790\u7DDA\u578B
Layer_Report_Warnning_info=<html>\u5217\u5F0F\u5F15\u64CE\u9069\u7528\u65BC\u5927\u8CC7\u6599\u91CF\u60C5\u5F62\u4E0B\u3002<br/>\u4F7F\u7528\u6B64\u5F15\u64CE\u5F88\u591A\u5831\u8868\u7279\u6027\u5C07\u4E0D\u518D\u652F\u63F4\uFF0C<br/>\u8A73\u7D30\u5167\u5BB9\u8ACB\u898B\u76F8\u95DC\u6587\u6A94\u3002</html>
Layer_Report_Warnning_info=<html>\u5217\u5F0F\u5F15\u64CE\u9069\u7528\u65BC\u5927\u8CC7\u6599\u91CF\u60C5\u5F62\u4E0B\u3002<br/>\u4F7F\u7528\u6B64\u5F15\u64CE\u5F88\u591A\u5831\u8868\u7279\u6027\u5C07\u4E0D\u518D\u652F\u6301\uFF0C<br/>\u8A73\u7D30\u5167\u5BB9\u8ACB\u898B\u76F8\u95DC\u6587\u6A94\u3002</html>
Tree-Width=\u5BEC\u5EA6
alert_word=\u9078\u64C7\u4E0D\u56FA\u5B9A\u5217\u9AD8\u532F\u51FA\u6642, \u7DE8\u8F2F\u532F\u51FA\u7684word, \u5132\u5B58\u683C\u5217\u9AD8\u6703\u96A8\u8457\u5167\u5BB9\u81EA\u52D5\u62C9\u4F38, \u6B64\u60C5\u6CC1\u4E0B\u532F\u51FA\u7D50\u679C\u8207\u9810\u89BD\u7D50\u679C\u53EF\u80FD\u6703\u4E0D\u518D\u4E00\u81F4.
PageSetup-Paper_Size=\u7D19\u5F35\u5927\u5C0F
@ -623,13 +626,13 @@ M-Page_Setup=\u9801\u9762\u8A2D\u5B9A
DashBoard-FormBook=\u8868\u55AE
X-Coordinate=\u6A6B\u5EA7\u6A19
Style-Line_Spacing=\u5217\u9593\u8DDD
FR-Designer_Plugin_Should_Update_Title=\u63D2\u4EF6\u5347\u7D1A\u63D0\u9192
FR-Designer_Plugin_Should_Update_Title=Warning
Server-Define_Data_Connection=\u5B9A\u7FA9\u8CC7\u6599\u9023\u63A5
BarInside=\u67F1\u5B50\u5167\u5074
Border-Color=\u6846\u7DDA\u984F\u8272
NotAllow=\u4E0D\u5408\u6CD5
Utils-File_type=\u6A94\u6848\u985E\u578B
FR-Designer-Plugin_Install_From_Local=\u5F9E\u672C\u5730\u6587\u4EF6\u5B89\u88DD
FR-Designer-Plugin_Install_From_Local=Install plugin from local file
Summary_Method=\u532F\u7E3D\u65B9\u5F0F
Select_Specified_Grouping=\u9078\u64C7\u81EA\u5B9A\u7FA9\u5206\u7D44
HF-Number_of_Page=\u7E3D\u9801\u6578
@ -637,13 +640,13 @@ FR-Designer-Tree_Height=\u9AD8\u5EA6
Owner=\u4E3B
Home=\u4E3B\u9801
FR-Server_Embedded_Server_Stop=\u5167\u7F6E\u7684\u4F3A\u670D\u5668-\u505C\u6B62
FR-Designer-Plugin_Detecting_Update=\u6B63\u5728\u6AA2\u6E2C\u66F4\u65B0
FR-Designer-Plugin_Detecting_Update=Detecting update
HF-Whether_to_define_the_selected_type=\u662F\u5426\u5B9A\u7FA9\u9078\u4E2D\u7684\u985E\u578B
StyleAlignment-Right=\u9760\u53F3\u5C0D\u9F4A
FR-Designer_Alignment-Style=\u5C0D\u9F4A\u65B9\u5F0F
PageSetup-Title_Start_Column=\u91CD\u8907\u6A19\u984C\u6B04
Tree-Mutiple_Selection_Or_Not=\u591A\u9078
FR-Designer-Plugin_Search=\u641C\u7D22
FR-Designer-Plugin_Search=Search
Choose_Role=\u6B0A\u9650\u63A7\u5236
Append_Delete_Row_Message=\u6CE8\u610F\uFF01\u6307\u5B9A\u7684\u5132\u5B58\u683C\u9700\u8981\u8A2D\u5B9A\u64F4\u5C55\u5C6C\u6027
Form-ComboBox=\u4E0B\u62C9\u6846
@ -656,13 +659,13 @@ FRFont-Subscript=\u4E0B\u6A19
Background_Settings=\u80CC\u666F\u8A2D\u5B9A
FormulaD-Invalid_Formula=\u975E\u6CD5\u7684\u516C\u5F0F
FR-Base_Margin=\u908A\u8DDD
FR-Designer-Plugin_Shop_Installed=\u63D2\u4EF6\u5546\u5E97\u5B89\u88DD\u5B8C\u7562,\u662F\u5426\u7ACB\u523B\u555F\u52D5?
FR-Designer-Plugin_Shop_Installed=\u63D2\u4EF6\u5546\u5E97\u5B89\u88DD\u5B8C\u7562,\u8ACB\u91CD\u65B0\u6253\u958B\u63D2\u4EF6\u5546\u5E97\u3002
M_Edit-Send_to_Back=\u7F6E\u65BC\u5E95\u5C64(K)
Email-Can_Preview_Report_Content=\u6B63\u6587\u9810\u89BD\u5831\u8868\u5167\u5BB9
FR-Designer-FRFont_Italic=\u659C\u9AD4
CellWrite-Print_Background=\u5217\u5370/\u532F\u51FA\u5132\u5B58\u683C\u80CC\u666F
Wizard=\u56AE\u5C0E
Preference-Is_Drag_Permited=\u652F\u63F4\u62D6\u62FD
Preference-Is_Drag_Permited=\u652F\u6301\u62D6\u62FD
FR-Designer_Release_Lock=\u89E3\u9396
Form-Delimiter=\u5206\u9694\u7B26
wrong=\u51FA\u932F\u4E86
@ -675,7 +678,7 @@ Need_Min_Value=\u9700\u8981\u6700\u5C0F\u503C
Allow_Blank=\u5141\u8A31\u70BA\u7A7A\u767D
CellWrite-InsertRow_DEFAULT=\u9810\u8A2D\u503C
Widget-Load_By_Complete=\u5B8C\u5168\u8F09\u5165
FR-Designer-Basic_Only_Submit_Current_Sheet=\u53EA\u63D0\u4EA4\u7576\u524Dsheet
FR-Designer-Basic_Only_Submit_Current_Sheet=
Sort-Sort_Order=\u6392\u5217\u9806\u5E8F
File-File_Size_Limit=\u6A94\u6848\u5927\u5C0F\u9650\u5236
PrintP-Print=\u5217\u5370(T)
@ -684,12 +687,12 @@ Preference-Setting_Colors=\u984F\u8272\u914D\u7F6E
Judge=\u5224\u65B7
Image-Adjust=\u9069\u61C9
Collect-User_Information_DES=\u7528\u6236\u8A0A\u606F\u78BC\u53EA\u662F\u7528\u4F86\u6536\u96C6\u4F7F\u7528\u8005\u8A0A\u606F\u7684\uFF0C\u53EA\u8981\u9EDE\u64CA\u4E0A\u9762\u7684"\u7372\u53D6\u7528\u6236\u8A0A\u606F\u78BC"\u6309\u9215\uFF0C\u5C31\u6703\u5F48\u51FA\u4E00\u500B\u65B0\u7684\u700F\u89BD\u5668\u7A97\u9AD4\uFF0C\u767B\u9304\u5230\u7522\u54C1\u5B98\u65B9\u7DB2\u7AD9\u7372\u5F97\u9019\u500B\u7528\u6236\u8A0A\u606F\u78BC\uFF0C\u6574\u500B\u7A0B\u5E8F\u53EA\u9700\u89813\u5206\u9418\uFF0C\u53EA\u9700\u8981\u64CD\u4F5C\u4E00\u6B21\uFF0C\u800C\u4E14\u5B8C\u5168\u514D\u8CBB\u3002
FR-Designer_Plugin_Normal_Update_From_Local=\u5F9E\u672C\u5730\u6A94\u6848\u66F4\u65B0
FR-Designer_Plugin_Normal_Update_From_Local=Update from local file
BackgroundTexture-Canvas=\u756B\u5E03
BarOutSide=\u67F1\u5B50\u5916\u5074
Preview_ToolTips=\u9810\u89BD\u63D0\u793A
FRFont-Family=\u540D\u5B57
FR-Lic_does_not_Support_Remote=\u60A8\u7576\u524D\u4F7F\u7528\u7684lic\u4E0D\u652F\u63F4\u9060\u7A0B\u8A2D\u8A08\u529F\u80FD\uFF0C\u8ACB\u5347\u7D1A\u60A8\u7684lic
FR-Lic_does_not_Support_Remote=\u60A8\u7576\u524D\u4F7F\u7528\u7684lic\u4E0D\u652F\u6301\u9060\u7A0B\u8A2D\u8A08\u529F\u80FD\uFF0C\u8ACB\u5347\u7D1A\u60A8\u7684lic
InterfaceStyle=\u98A8\u683C
RWA-Key=\u4E3B\u9375
WF-Name=\u540D\u7A31
@ -714,7 +717,7 @@ FR-Designer_Indent-Pixel=\u50CF\u7D20
FR-Designer_Unit_MM=\u516C\u5398
IDLE=\u7A7A\u9592
FRFont-Underline=\u4E0B\u5283\u7DAB
FR-Designer-Plugin_Read_Plugin_List_Error=\u53BB\u8B80\u63D2\u4EF6\u5217\u8868\u6642\u767C\u751F\u932F\u8AA4
FR-Designer-Plugin_Read_Plugin_List_Error=Error to read plugin list
Type_Set=\u985E\u578B\u8A2D\u5B9A
M_Format_A-Cell_Attributes=\u5176\u4ED6\u5C6C\u6027
CellWrite-Show_As_Image=\u7528\u5716\u7247\u986F\u793A\u5167\u5BB9
@ -739,7 +742,7 @@ Hgap=\u6C34\u5E73\u9593\u9699
FR-Designer_Enter-New-FileName=\u8ACB\u8F38\u5165\u65B0\u7684\u6A94\u6848\u540D
Verify_Fail=\u6821\u9A57\u5931\u6557
CellWrite-InsertRow_Policy=\u63D2\u5165\u5217\u7B56\u7565
FR-Designer-Plugin_Illegal_Plugin_Zip=\u4E0D\u662F\u5408\u6CD5\u7684\u63D2\u4EF6\u5305
FR-Designer-Plugin_Illegal_Plugin_Zip=Illegal plugin zip
RCodeVersion=\u7248\u672C
Convert=\u8F49\u63DB
Please_Drag=\u8ACB\u62D6\u5165\u5217\u6B04\u6B04\u4F4D\u3001\u532F\u7E3D\u6B04\u4F4D
@ -794,7 +797,7 @@ read_time_out=\u52A0\u8F09\u8D85\u6642
JavaScript-Commit_to_Database=\u63D0\u4EA4\u5165\u5EAB
DS-Relation_TableData=\u95DC\u806F\u8CC7\u6599\u96C6
CellWrite-Page_Before_Row=\u5217\u524D\u5206\u9801
FR-Designer-Plugin_Load_Plugins_From_Server=\u6B63\u5728\u5F9E\u63D2\u4EF6\u5546\u5E97\u7372\u53D6\u6578\u64DA
FR-Designer-Plugin_Load_Plugins_From_Server=Loading plugins from store
D-Dispaly_Divide_Result_Set_into_Groups=\u5C07\u7D50\u679C\u96C6\u9032\u884C\u5206\u7D44
Closed=\u5DF2\u95DC\u9589
RWA-Help=\u8A2D\u5B9A\u672A\u4FEE\u6539\u4E0D\u66F4\u65B0\u5F8C\uFF0C\u586B\u5831\u9810\u89BD\u5831\u8868\uFF0C\u8A18\u9304\u6240\u5728\u5132\u5B58\u683C\u6C92\u6709\u88AB\u7DE8\u8F2F\u4FEE\u6539\uFF0C\u5247\u6B64\u8A18\u9304\u4E0D\u6703\u9032\u884C\u66F4\u65B0\uFF1B\n\u5728\u5927\u8CC7\u6599\u91CF\u8A18\u9304\u67E5\u8A62\u4E26\u56DE\u586B\u60C5\u6CC1\u4E0B\uFF0C\u555F\u7528\u8A72\u8A2D\u5B9A\uFF0C\u53EF\u4EE5\u63D0\u9AD8\u586B\u5831\u63D0\u4EA4\u6027\u80FD\u3002
@ -809,7 +812,7 @@ No-Privilege=\u6C92\u6709\u6B0A\u9650
ReportColumns-Repeat_Column=\u91CD\u8907\u6B04\u5E8F\u6B04
SecondGraduationUnit=\u6B21\u8981\u523B\u5EA6\u55AE\u4F4D
Form-Widget_Property_Value=\u5C6C\u6027\u503C
GIVE-NAME=\u547D\u540D
GIVE-NAME=Give Name
FR-Designer_Rename=\u91CD\u547D\u540D
Utils-Merge_Cell=\u5408\u5E76\u5132\u5B58\u683C
Style-Spacing_After=\u6BB5\u5F8C
@ -832,7 +835,7 @@ Not_use_a_cell_attribute_table_editing=\u60A8\u4E0D\u53EF\u4EE5\u7528\u5132\u5B5
Root=\u6839\u7BC0\u9EDE
cycle=\u5468\u671F
open-new-form-tip=\u7576\u524D\u6A21\u677F\u70BA711\u4EE5\u4E0B\u7248\u672C\u88FD\u4F5C, \u7121\u6CD5\u517C\u5BB9, \u4E0D\u80FD\u6253\u958B. \u5047\u5982\u60F3\u6253\u958B\u4FEE\u6539\u6B64\u8868\u55AE, \u8ACB\u4F7F\u7528\u5C0D\u61C9\u7248\u672C\u8A2D\u8A08\u5668\u6253\u958B.
Support-Current_Auto_Complete_Shortcut=\u7576\u524D\u5FEB\u6377\u9375
Support-Current_Auto_Complete_Shortcut=Current Shortcut
GROUPING_MODE=\u666E\u901A\u5206\u7D44
DBCP_MAX_IDLE=\u6700\u5927\u7A7A\u9591\u9023\u63A5\u6578
BackgroundTexture-BlueTissuePaper=\u85CD\u8272\u7802\u7D19
@ -844,7 +847,6 @@ PageSetup-Placement_Center_on_Page=\u7F6E\u4E2D\u65B9\u5F0F
sure_to_delete=\u78BA\u8A8D\u522A\u9664
Already_exists_not_add_repeat=\u5DF2\u7D93\u5B58\u5728\uFF0C\u8ACB\u4E0D\u8981\u91CD\u8907\u65B0\u589E
Axis_Title=\u8EF8\u6A19\u984C
FR-Designer-Plugin_Install_Failed=\u63D2\u4EF6\u5B89\u88DD\u5931\u6557
FR-Designer-Widget-Style_Frame=\u6846\u67B6
MainGraduationUnit=\u4E3B\u8981\u523B\u5EA6\u55AE\u4F4D
Second_Axis=\u6B21\u5750\u6A19\u8EF8
@ -864,7 +866,7 @@ M_Edit-FormatBrush=\u8907\u88FD\u683C\u5F0F(B)
Indent-Pixel=\u50CF\u7D20
FR-Designer-Widget-Style_Border_Line=\u6846\u7DDA\u7C97\u7D30
Widget-Default_Widget_Config=\u57FA\u672C\u63A7\u5236\u9805
Version-does-not-support=\u60A8\u7576\u524D\u4F7F\u7528\u7684lic\u4E0D\u652F\u63F4\u9060\u7A0B\u8A2D\u8A08\u529F\u80FD\uFF0C\u8ACB\u5347\u7D1A\u60A8\u7684lic
Version-does-not-support=\u60A8\u7576\u524D\u4F7F\u7528\u7684lic\u4E0D\u652F\u6301\u9060\u7A0B\u8A2D\u8A08\u529F\u80FD\uFF0C\u8ACB\u5347\u7D1A\u60A8\u7684lic
StyleAlignment-Right_To_Left=\u5F9E\u53F3\u5411\u5DE6
Style-Spacing_Before=\u6BB5\u524D
Has_Existed=\u5DF2\u7D93\u5B58\u5728
@ -880,7 +882,7 @@ Parameter-Boolean=\u5E03\u723E\u578B
FRFont-Strikethrough=\u522A\u9664\u7DDA
Server-version-tip=\u60A8\u7576\u524D\u9023\u63A5\u7684\u4F3A\u670D\u5668\u7248\u672C\u4F4E\u65BC\u60A8\u4F7F\u7528\u7684\u8A2D\u8A08\u5668\u7248\u672C\u865F\uFF0C\u7E7C\u7E8C\u9023\u63A5\uFF0C\u60A8\u7DE8\u8F2F\u7684\u4E00\u4E9B\u5C6C\u6027\u53EF\u80FD\u7121\u6CD5\u6709\u6548\u5132\u5B58\u3002\u5047\u5982\u9700\u8981\u9023\u63A5\u8ACB\u5C07\u60A8\u7684\u8A2D\u8A08\u5668\u7248\u672C\u8207\u4F3A\u670D\u5668\u7248\u672C\u4FDD\u6301\u4E00\u81F4
Form-All_Files=\u5168\u90E8\u6A94\u6848
DBCP_NUM_TEST_PER_EVCTION_RUN=\u7A7A\u9591\u9023\u63A5\u56DE\u6536\u6AA2\u67E5\u6578
DBCP_NUM_TEST_PER_EVCTION_RUN=\u7A7A\u9591\u93C8\u63A5\u56DE\u6536\u6AA2\u67E5\u6578
FR-Designer-FRFont_Family=\u540D\u5B57
Device=\u8A2D\u5099
M_Insert-Cell=\u5132\u5B58\u683C\u5143\u7D20
@ -888,7 +890,7 @@ Present-Formula_Present=\u516C\u5F0F\u6A21\u5F0F
FRFont-Superscript=\u4E0A\u6A19
CellWrite-Page_Before_Column=\u6B04\u524D\u5206\u9801
Golden=\u91D1\u8272
Preference-Support_Cell_Editor_Definition=\u652F\u63F4\u5132\u5B58\u683C\u7DE8\u8F2F\u5668
Preference-Support_Cell_Editor_Definition=\u652F\u6301\u5132\u5B58\u683C\u7DE8\u8F2F\u5668
M-Page_Preview=\u5206\u9801\u9810\u89BD
HJS-CC_to=\u6284\u9001
Tree-Select_Leaf_Only=\u53EA\u8FD4\u56DE\u8449\u5B50\u7BC0\u9EDE
@ -961,10 +963,10 @@ Widget-Load_Type=\u8F09\u5165
template_unsaved=\u7BC4\u672C\u7121\u6CD5\u5132\u5B58
check_communication=\u8ACB\u6AA2\u67E5\u7DB2\u8DEF\u901A\u8A0A\u662F\u5426\u6B63\u5E38\u53CA\u4F3A\u670D\u5668\u662F\u5426\u6B63\u5E38\u904B\u884C
List-Need_Head=\u9700\u8981\u6B04\u8868\u982D
FR-Designer-Plugin_Has_Been_Installed=\u63D2\u4EF6\u5DF2\u5B89\u88DD\uFF0C\u82E5\u60F3\u66F4\u65B0\u63D2\u4EF6\uFF0C\u8ACB\u5207\u63DB\u81F3\u63D2\u4EF6\u66F4\u65B0
FR-Designer-Plugin_Has_Been_Installed=Plugin has been installed
FR-Widget_Tree_And_Table=\u63A7\u5236\u9805\u6A39\u548C\u63A7\u5236\u9805\u8868
FR-Base_Help=\u8AAA\u660E
FR-Designer-Plugin_Update_Successful=\u63D2\u4EF6\u5347\u7D1A\u6210\u529F\uFF0C\u91CD\u555F\u4F3A\u670D\u5668\u4EE5\u751F\u6548
FR-Designer-Plugin_Update_Successful=Update successfully
August=\u516B\u6708
LOG-Is_Being_Openned=\u6B63\u5728\u6253\u958B
BackgroundTexture-Oak=\u6A61\u6728
@ -972,7 +974,7 @@ Multi_nam_formula=\ \u8CC7\u6599\u96C6\u540D\: \u8CC7\u65
TurnOn=\u958B\u5553
HJS-Send_Successfully=\u767C\u9001\u6210\u529F
Mon=\u661F\u671F\u4E00
Inner_Parameter=\u5167\u7F6E\u53C3\u6578
Inner_Parameter=Inner Parameter
Required=\u5FC5\u586B
Summary=\u532F\u7E3D
template_unopened=\u7121\u6CD5\u6253\u958B\u7BC4\u672C
@ -981,14 +983,14 @@ DataFunction-Min=\u6700\u5C0F\u503C
StyleFormat-Percent=\u767E\u5206\u6BD4
FR-App-All_Custom=\u81EA\u5B9A\u7FA9
M_Insert-Data_Column=\u63D2\u5165\u8CC7\u6599\u6B04
PLEASE=\u8ACB
PLEASE=Please
Numbers=\u6578\u76EE
Release_Lock=\u89E3\u9396
Background-Background_is_NULL=\u6C92\u6709\u80CC\u666F
FR-Designer_Sytle-FRFont=\u5B57\u9AD4
Gradation=\u5C64\u6B21
The_current_list_is_empty=\u7576\u524D\u6B04\u8868\u70BA\u7A7A
Formula_Dictionary_Display_Examples=\ \u5BE6\u969B\u503C\u7BC4\u570D\u70BA \=range(100),\u5C0D\u5BE6\u969B\u503C\u7BC4\u570D\n \u5167\u7684\u6BCF\u500B$$$\u7684\u986F\u793A\u516C\u5F0F\u70BA \=0 - $$$\uFF0C\n \u5247\u6700\u7D42\u7684\u7D50\u679C\u5BE6\u969B\u503C\u70BA1, 2, ..., 100, \n \u986F\u793A\u503C\u70BA-1, -2, ... , -100\u3002
Formula_Dictionary_Display_Examples=
Schedule-Template_Parameter=\u7BC4\u672C\u53C3\u6578
JSShow=\u52D5\u614B\u5C55\u793A
Level_coordinates=\u5C64\u6B21\u5750\u6A19
@ -1002,7 +1004,7 @@ RWA-Remove_Field=\u79FB\u9664\u6B04\u4F4D
Form-Desin_Width=\u8A2D\u8A08\u5BEC\u5EA6
No-tableData=\u6C92\u6709\u8FD4\u56DE\u8CC7\u6599\u96C6
Page_Total=\u5171
FR-Designer-Plugin_Connect_Server_Error=\u7121\u6CD5\u9023\u63A5\u63D2\u4EF6\u5546\u5E97\uFF0C\u8ACB\u7A0D\u5F8C\u518D\u8A66
FR-Designer-Plugin_Connect_Server_Error=Error to connect plugin store
Import-Excel_Source=Excel\u6E90\u6A94\u6848
Utils-Left_to_Right_a=\u5F9E\u5DE6\u5F80\u53F3
ExpandD-Expand_Attribute=\u64F4\u5C55\u5C6C\u6027
@ -1017,7 +1019,7 @@ Utils-Move_Up=\u4E0A\u79FB
BackgroundTexture-PurpleMesh=\u7D2B\u8272\u7DB2\u8DEF
Export-Word=Word\u683C\u5F0F
ServerM-Widget_Manager=\u5143\u4EF6\u7BA1\u7406
FR-Designer-Basic_Activation_Key=\u8A2D\u8A08\u5668\u7DE8\u865F\:
FR-Designer-Basic_Activation_Key=Activation Key\:
FR-App-Template_Report_Not_Exist=\u6240\u9078\u5831\u8868\u4E0D\u5B58\u5728
Protected=\u4FDD\u8B77
Skip=\u8DF3\u904E
@ -1038,7 +1040,7 @@ FR-Designer-Tree_Width=\u5BEC\u5EA6
Record=\u8A18\u9304
Poly-Report_Component=\u8907\u5408\u5F0F\u5831\u8868\u5143\u4EF6
Options=\u9078\u9805
NS-war-remote=\u932F\u8AA4\u4EE3\u78BC\:1117 \u58D3\u7E2E\u90E8\u7F72\u4E0D\u652F\u63F4\u9060\u7A0B\u8A2D\u8A08
NS-war-remote=\u932F\u8AA4\u4EE3\u78BC\:11100017 \u58D3\u7E2E\u90E8\u7F72\u4E0D\u652F\u6301\u9060\u7A0B\u8A2D\u8A08
Sche-Minute=\u5206
Three_Rows_Of_Three_Grid=\u4E09\u5217\u4E09\u6B04\u7684\u683C\u5B50
WorkSheet=\u81EA\u7531\u5831\u8868
@ -1047,7 +1049,7 @@ BindColumn-Select=\u6B04\u8868
FR-Widget_Mobile_Terminal=\u884C\u52D5\u8A2D\u5099
FR-Background_Image_Titled=\u5E73\u92EA
SetPrinterOffset=\u5370\u8868\u6A5F\u504F\u79FB
FR-Designer-Plugin_Installed=\u5DF2\u5B89\u88DD
FR-Designer-Plugin_Installed=Installed
FR-Designer-Hyperlink_Name=\u540D\u5B57
FR-Designer_Form-Button=\u6309\u9215
Black=\u9ED1\u8272
@ -1057,7 +1059,7 @@ PDF-Print_isPopup=\u662F\u5426\u5F48\u51FA\u8A2D\u5B9A\u6846
LayerPageReport_CountPerPage=\u6BCF\u9801\u8A18\u9304\u6578
Display_Modes=\u986F\u793A\u6A21\u5F0F
RowSpan=\u5217\u8DE8\u5EA6
Datasource-Test_Connection=\u6E2C\u8A66\u9023\u63A5
Datasource-Test_Connection=\u6E2C\u8A66\u93C8\u63A5
Function-Function_Manager=\u51FD\u6578\u7BA1\u7406\u5668
Host_Name=\u4E3B\u6A5F\u540D
CellWrite-Show_As_HTML=\u7528HTML\u986F\u793A\u5167\u5BB9
@ -1067,7 +1069,7 @@ Form-SupportTag=\u6A19\u7C64\u5F62\u5F0F\u986F\u793A
ReportD-Report_Write_Attributes=\u5831\u8868\u586B\u5831\u5C6C\u6027
DataFunction-Count=\u500B\u6578
Top_And_Thick_Bottom_Border_Line=\u4E0A\u6846\u7DDA\u548C\u7C97\u4E0B\u6846\u7DDA
Client=\u5BA2\u6236\u7AEF
Client=Client
BindColumn-Result_Serial_Number_Start_From_1=\u5E8F\u865F\u5F9E1\u958B\u59CB
History=\u6B77\u53F2
Already_exists=\u5DF2\u5B58\u5728\uFF0C\u8ACB\u91CD\u65B0\u8F38\u5165\uFF01
@ -1124,7 +1126,7 @@ LayerPageReport_PageEngine=\u4F7F\u7528\u6309\u9801\u904B\u7B97\u5206\u6BB5\u57F
Schedule-The_selected_file_must_be_end_with_filter=\u9078\u64C7\u7684\u6A94\u6848\u5FC5\u9808\u4EE5.cpt\u6216\u8005.class\u6216\u8005.frm\u7D50\u5C3E\u3002
Provide=\u63D0\u4F9B
FormulaD-Math_&_Trig=\u6578\u5B78\u548C\u4E09\u89D2\u51FD\u6578
FR-Designer-StyleAlignment_Right=\u9760\u53F3
FR-Designer-StyleAlignment_Right=\u9760\u53F3\u5C0D\u9F4A
Error_TableDataNameRepeat=\u5DF2\u7D93\u5728\u4F3A\u670D\u5668\u8CC7\u6599\u96C6\u4E2D\u5B58\u5728\u6216\u8005\u591A\u500B\u8CC7\u6599\u96C6\u540D\u91CD\u8907\u3002
Choose_None=\u4E0D\u9078
File-tree=\u6A94\u6848\u6A39
@ -1132,13 +1134,13 @@ FRFont-bold=\u7C97\u9AD4
FR-Designer_Set_Submit_Condition=\u8A2D\u5B9A\u63D0\u4EA4\u689D\u4EF6
Form-Change_Widget_Name=\u66F4\u6539\u63A7\u5236\u9805\u540D
ReportColumns-Report_Columns=\u5831\u8868\u5206\u6B04
Can_not_use_FormatBursh=\u7121\u6CD5\u4F7F\u7528\u8907\u88FD\u683C\u5F0F
FR-Designer_Can_not_use_FormatBursh=\u7121\u6CD5\u4F7F\u7528\u8907\u88FD\u683C\u5F0F
CellElement-Property_Table=\u5132\u5B58\u683C\u5C6C\u6027\u8868
Dictionary-Dynamic_SQL=\u52D5\u614BSQL
FR-Designer_Form-CheckBoxGroup=\u5FA9\u9078\u6846\u7D44
DBCP_TIME_BETWEEN_EVICTIONRUNSMILLIS=\u7A7A\u9591\u9023\u63A5\u56DE\u6536\u5668\u4F11\u7720\u6642\u9593
ReportD-Export_Hided_Column=\u532F\u51FA\u96B1\u85CF\u6B04
Preference-Support_Undo=\u652F\u63F4\u5FA9\u539F
Preference-Support_Undo=\u652F\u6301\u5FA9\u539F
FR-mobile_report_analysis=\u5831\u8868\u89E3\u6790
Month=\u6708
Utils-Column_Width=\u6B04\u5BEC
@ -1162,12 +1164,12 @@ Delete_Column=\u522A\u9664\u6B04
SecondGraduationLine=\u6B21\u8981\u523B\u5EA6\u7DDA
SpecifiedG-Groups=\u7D44
CONTINUUM_MODE=\u76F8\u9130\u9023\u7E8C\u5206\u7D44
Datasource-Connection_failed=\u9023\u63A5\u5931\u6557
Datasource-Connection_failed=\u93C8\u63A5\u5931\u6557
CategoryName=\u5206\u985E\u540D
DBCP_INITIAL_SIZE=\u521D\u59CB\u5316\u9023\u63A5\u6578
Colors=\u984F\u8272
FR-Import-Export_CSV=CSV\u683C\u5F0F(\u9017\u865F\u5206\u9694)
FR-Designer-StyleAlignment_Left=\u9760\u5DE6
FR-Designer-StyleAlignment_Left=\u9760\u5DE6\u5C0D\u9F4A
BackgroundTexture-PaperBag=\u7D19\u888B
RWA-BuildIn_SQL=\u5167\u7F6ESQL
SingleLayer=\u55AE\u5C64
@ -1206,7 +1208,7 @@ FS_Start_Date=\u958B\u59CB\u65E5\u671F
FR-ConditionB_Operator=\u64CD\u4F5C\u7B26
Printer-Alias=\u5225\u540D
DS-Class_Name=\u985E\u540D
FR-Designer-Plugin_Has_Been_Disabled=\u63D2\u4EF6\u5DF2\u88AB\u7981\u7528\uFF0C\u91CD\u555F\u8A2D\u8A08\u5668\u53CA\u4F3A\u670D\u5668\u751F\u6548\uFF0C\u4F3A\u670D\u5668\u9700\u624B\u52D5\u91CD\u555F
FR-Designer-Plugin_Has_Been_Disabled=Plugin has been disabled
Sort-Original=\u4E0D\u6392\u5E8F
Utils-Top_to_Bottom_a=\u5F9E\u4E0A\u5F80\u4E0B
Parameter-String=\u5B57\u5143\u4E32
@ -1227,7 +1229,7 @@ Interface=\u4ECB\u9762
FR-Designer-Beyond_Bounds=\u8D85\u51FA\u6216\u8005\u5C0F\u65BCbody\u908A\u754C\uFF0C\u4E0D\u80FD\u8ABF\u6574\u5927\u5C0F
seconds=\u79D2
Auto-Build=\u81EA\u52D5\u69CB\u5EFA
FR-Designer-Plugin_Install_Successful=\u8A72\u63D2\u4EF6\u5C07\u5728\u91CD\u65B0\u555F\u52D5\u8A2D\u8A08\u5668\u53CA\u4F3A\u670D\u5668\u6642\u88AB\u555F\u7528\uFF0C\u4F3A\u670D\u5668\u9700\u624B\u52D5\u91CD\u555F
FR-Designer-Plugin_Install_Successful=Install successful
Template_Path=\u7BC4\u672C\u8DEF\u5F91
FR-Designer-FRFont_Bold=\u7C97\u9AD4
Poly_Name=\u805A\u5408\u584A\u540D
@ -1236,7 +1238,7 @@ Hyperlink-Self_Window=\u7576\u524D\u7A97\u53E3
FR-Designer-Widget-Style_Title=\u6A19\u984C
FR-Designer-FRFont_Size=\u5927\u5C0F
M_File-Export-SVG=SVG\u683C\u5F0F
Capacity=\u5BB9\u91CF
Capacity=Capacity
Rose_Red=\u73AB\u7470\u7D05
StyleAlignment-The_value_of_rotation_must_between_-90_and_90_degrees=\u65CB\u8F49\u503C\u5FC5\u9808\u5728\u8CA090\u5EA6\u523090\u5EA6
HF-Move_Left=\u5DE6\u79FB
@ -1257,7 +1259,7 @@ Deep=\u6DF1\u5EA6
FRFont-Shadow=\u9670\u5F71
Reportlet=\u7DB2\u8DEF\u5831\u8868
Calendar=\u65E5\u66C6
DateFormat-Custom_Warning=\u8A3B\uFF1A\u81EA\u5B9A\u7FA9\u65E5\u671F\u683C\u5F0F\u4E0D\u652F\u63F4\u683C\u5F0F\u6821\u9A57
DateFormat-Custom_Warning=\u8A3B\uFF1A\u81EA\u5B9A\u7FA9\u65E5\u671F\u683C\u5F0F\u4E0D\u652F\u6301\u683C\u5F0F\u6821\u9A57
Unit_MM=\u516C\u5398
Server-Start=\u555F\u52D5
CellPage-Can_Break_On_Paginate=\u5206\u9801\u6642\u53EF\u4EE5\u65B7\u958B
@ -1286,7 +1288,7 @@ Brown=\u8910\u8272
Select_A_Tree_DataSource_To_Build=\u9078\u64C7\u4E00\u500B\u6A39\u72C0\u8CC7\u6599\u96C6\u4F86\u69CB\u5EFA
Overlapping=\u91CD\u66E1\u578B
DS-Class_TableData=\u985E\u5225\u8CC7\u6599\u96C6
FR-Designer-Plugin_Illegal_Plugin_Zip_Cannot_Be_Install=\u4E0D\u53EF\u8B58\u5225\u7684\u63D2\u4EF6\uFF0C\u7121\u6CD5\u5B89\u88DD
FR-Designer-Plugin_Illegal_Plugin_Zip_Cannot_Be_Install=Illegal plugin,cannot be installed
DisplayNothingBeforeQuery=\u9EDE\u64CA\u67E5\u8A62\u524D\u4E0D\u986F\u793A\u5176\u4ED6\u5167\u5BB9
Y_Axis=Y\u8EF8
FormulaD-Most_Recently_Used=\u5E38\u7528\u51FD\u6578
@ -1317,7 +1319,7 @@ FR-Base_Table=\u8868
Des-Remove_WorkSheet=\u8981\u522A\u9664\u7684\u8868\u53EF\u80FD\u5B58\u5728\u8CC7\u6599,\u5982\u679C\u8981\u6C38\u4E45\u522A\u9664\u9019\u4E9B\u8CC7\u6599,\u8ACB\u6309'\u78BA\u5B9A'\u6309\u9215.
Rotation=\u65CB\u8F49
Undefined=\u672A\u5B9A\u7FA9
Support-Auto_Complete_Shortcut=\u81EA\u52D5\u88DC\u5168\u5FEB\u6377\u9375
Support-Auto_Complete_Shortcut=Auto Complete Shortcut
Set_Column_Title_End=\u8A2D\u5B9A\u91CD\u8907\u7D50\u5C3E\u6B04
Submit_Url=\u63D0\u4EA4\u5730\u5740
ReportServerP-Are_you_sure_to_delete_the_selected_printer=\u4F60\u78BA\u5BE6\u60F3\u522A\u9664\u9078\u4E2D\u7684\u5370\u8868\u6A5F\u55CE
@ -1333,7 +1335,7 @@ Format-Error=\u8F38\u5165\u7684\u503C\u683C\u5F0F\u4E0D\u6B63\u78BA
Server-Stop=\u505C\u6B62
Preference-Setting_Grid=\u7DB2\u683C\u8A2D\u5B9A
ReportServerP-Add_Printer=\u589E\u52A0\u5370\u8868\u6A5F
FR-Designer-Plugin_Active=\u555F\u7528
FR-Designer-Plugin_Active=Active
Utils-File_name=\u6A94\u6848\u540D
NOT_NULL_Des=\u4E0D\u80FD\u70BA\u7A7A
Right_Border_Line=\u53F3\u6846\u7DDA
@ -1345,21 +1347,18 @@ Remove_All_Button=\u6E05\u9664\u6240\u6709\u6309\u9215
FR-Designer_Component_Interval=\u5143\u4EF6\u9593\u9694
ReportColumns-Columns_vertically=\u6B04\u5206\u6B04
ReportGUI-Print_Background=\u5217\u5370/\u532F\u51FA\u5831\u8868\u80CC\u666F
FR-Designer_Print_Background=\u5217\u5370\u5831\u8868\u80CC\u666F
FR-Designer_Export_Background=\u532F\u51FA\u5831\u8868\u80CC\u666F
Export-CSV=CSV\u683C\u5F0F(\u9017\u865F\u5206\u9694)
M_Edit-Paste=\u8CBC\u4E0A(P)
FR-Designer-Basic_Restart_Designer=\u91CD\u555F\u8A2D\u8A08\u5668
FR-Designer-Basic_Restart_Designer=Restart designer
ReportServerP-PDF2-INFO=\u50C5\u5728LINUX/UNIX\u4E0B\u672A\u5B89\u88DD\u4E2D\u6587\u5B57\u9AD4\u6642\u4F7F\u7528
FormulaD-Check_Valid=\u6AA2\u67E5\u5408\u6CD5\u6027
server_disconnected=\u9023\u63A5\u5DF2\u65B7\u958B
ParameterD-Parameter_name_cannot_be_null=\u53C3\u6578\u7684\u540D\u5B57\u4E0D\u53EF\u4EE5\u70BA\u7A7A
FR-Designer-Plugin_Version_Is_Lower_Than_Current=\u5347\u7D1A\u5305\u7684\u63D2\u4EF6\u7248\u672C\u6C92\u6709\u6BD4\u7576\u524D\u7684\u9AD8
FR-Designer-Plugin_Version_Is_Lower_Than_Current=The version of plugin is lower than current
RWA-NotChange_Unmodified=\u4E0D\u6539\u8B8A\u6642\u4E0D\u66F4\u65B0
User_Information=\u7528\u6236\u8A0A\u606F
Custom_styles_lost=\u81EA\u5B9A\u7FA9\u6A23\u5F0F\u5DF2\u4E1F\u5931
PageSetup-Margin=\u9801\u908A\u8DDD
M-New_FormBook=\u65B0\u589E\u8868\u55AE\uFF08\u6C7A\u7B56\u8868\uFF09
Widget-TreeNode=\u6A39\u7BC0\u9EDE\u6309\u9215
Form-Url=\u5730\u5740
Utils-Beyond_the_left_side_of_Border=\u8D85\u51FA\u5DE6\u908A\u754C
@ -1371,10 +1370,10 @@ paper=\u7D19\u5F35
Not_Exsit=\u4E0D\u5B58\u5728\u65BC\u5831\u8868
Utils-Insert_Row=\u63D2\u5165\u5217
Utils-Delete_Row=\u522A\u9664\u5217
not_support_authority_edit=\u8A72\u5143\u7D20\u4E0D\u652F\u63F4\u8A31\u53EF\u6B0A\u63A7\u5236
Formula_Tips=\u516C\u5F0F\u5FC5\u9808\u4EE5"\="\u865F\u958B\u982D
not_support_authority_edit=\u8A72\u5143\u7D20\u4E0D\u652F\u6301\u8A31\u53EF\u6B0A\u63A7\u5236
Formula_Tips=\u516C\u5F0F\u5FC5\u9808\u4EE5"\
FR-Action_Copy=\u8907\u88FD
Compile_Success=\u7DE8\u8B6F\u6210\u529F
Compile_Success=Compile Success
BackgroundTexture-RecycledPaper=\u518D\u751F\u7D19
StyleAlignment-Single_Line=\u55AE\u5217\u986F\u793A
Utils-Move_Down=\u4E0B\u79FB
@ -1408,7 +1407,7 @@ Rename=\u91CD\u547D\u540D
Widget-Load_By_Async=\u975E\u540C\u6B65\u8F09\u5165
Shape=\u5716\u5F62
BindColumn-This_Condition_has_been_existed=\u6B64\u689D\u4EF6\u5DF2\u7D93\u5B58\u5728
NS-exception_readError=\u932F\u8AA4\u4EE3\u78BC\:1305 \u6A21\u677F\u6A94\u6848\u89E3\u6790\u51FA\u932F
NS-exception_readError=\u932F\u8AA4\u4EE3\u78BC\:11300005 \u6A21\u677F\u6A94\u6848\u89E3\u6790\u51FA\u932F
Set_Column_Title_Start=\u8A2D\u5B9A\u91CD\u8907\u6A19\u984C\u6B04
Fri=\u4E94
M_Report-Report_Parameter=\u6A21\u677F\u53C3\u6578
@ -1460,8 +1459,8 @@ Ratio=\u6BD4\u7387
DBCP_TEST_ON_BORROW=\u7372\u53D6\u9023\u63A5\u524D\u6AA2\u9A57
FR-Designer_layerIndex=\u4F9D\u8CF4\u7684\u5C64\u6578
WEB-Write_Setting=\u586B\u5831\u9762\u9762\u8A2D\u5B9A
M-New_WorkBook=\u65B0\u589E\u5DE5\u4F5C\u7C3F
FR-Designer-Plugin_Has_Been_Actived=\u63D2\u4EF6\u5DF2\u88AB\u555F\u7528\uFF0C\u91CD\u555F\u8A2D\u8A08\u5668\u53CA\u4F3A\u670D\u5668\u751F\u6548\uFF0C\u4F3A\u670D\u5668\u9700\u624B\u52D5\u91CD\u555F
M-New_WorkBook=\u65B0\u589E\u666E\u901A\u5831\u8868
FR-Designer-Plugin_Has_Been_Actived=Plugin is now active
Datasource-Maximum_Number_of_Preview_Rows=\u6700\u5927\u7684\u9810\u89BD\u5217\u6578
ExpandD-Cell_Expand_Attributes=\u64F4\u5C55\u5C6C\u6027
Select_the_repeated_row_and_column=\u9078\u64C7\u9700\u8981\u91CD\u8907\u7684\u5217\u6B04
@ -1511,7 +1510,7 @@ ReportColumns-Repeat_Row=\u8907\u88FD\u5217\u5E8F\u6B04
Print_Setting=\u5217\u5370\u8A2D\u5B9A
Registration-User_Name=\u5E33\u865F
Datasource-User_Defined=\u81EA\u5B9A\u7FA9
FR-Designer-Plugin_DownLoadMessage=\u63D2\u4EF6\u9700\u8981\u4F9D\u8CF4\u7684\u652F\u63F4\uFF0C\u662F\u5426\u5B89\u88DD({R1} m)?
FR-Designer-Plugin_DownLoadMessage=\u63D2\u4EF6\u9700\u8981\u4F9D\u8CF4\u7684\u652F\u6301\uFF0C\u662F\u5426\u5B89\u88DD({R1} m)?
Delay=\u5EF6\u9072
FR-Designer-All_MSBold=\u5FAE\u8EDF\u96C5\u9ED1
Utils-Now_create_connection=\u6B63\u5728\u5EFA\u7ACB\u8CC7\u6599\u9023\u63A5
@ -1537,7 +1536,7 @@ FR-Designer_Cancel=\u53D6\u6D88
Button-Group-Display-Columns=\u5C55\u793A\u6B04\u6578
Widget-Height=\u63A7\u5236\u9805\u9AD8\u5EA6
Examples=\u4F8B\u5B50
Formula_Dictionary_Display_Example=\u5BE6\u969B\u503C\u7BC4\u570D\u70BA Formula_Dictionary_Display_Examples\= \u5BE6\u969B\u503C\u7BC4\u570D\u70BA Formula_Dictionary_Display_Examples_Html\=<html>\u5BE6\u969B\u503C\u7BC4\u570D\u70BA Formula_Editor\=\u516C\u5F0F\u7DE8\u8F2F\u5668
Formula_Dictionary_Display_Example=\u5BE6\u969B\u503C\u7BC4\u570D\u70BA Formula_Dictionary_Display_Examples\
StyleAlignment-Horizontal=\u6C34\u5E73\u5C0D\u9F4A
HyperLink_Must_Alone_Reset=\u591A\u500B\u8D85\u93C8
ExpandD-Expand_Direction=\u64F4\u5C55\u65B9\u5411
@ -1567,7 +1566,7 @@ HF-Undefined=\u6C92\u6709\u5B9A\u7FA9
Widget-User_Defined_Widget_Config=\u9810\u5B9A\u7FA9\u63A7\u5236\u9805
Report-Write_Attributes_Group_Warning=\u8A2D\u5B9A\u7232\u5132\u5B58\u683C\u7D44\u7684\u5404\u6B04\u4F4D\u4E2D\u7684\u5132\u5B58\u683C\u500B\u6578\u5FC5\u9808\u76F8\u540C
Form-Single_quote=\u55AE\u5F15\u865F
Compile_Success_And_Then_Save=\u7DE8\u8B6F\u6210\u529F\u624D\u80FD\u6B63\u78BA\u5132\u5B58
Compile_Success_And_Then_Save=Compile Success And Then Save
FR-Designer_Layout-Padding=\u5167\u908A\u8DDD
Layout_Container=\u4F48\u5C40\u5BB9\u5668
Admin=\u7BA1\u7406\u54E1
@ -1584,7 +1583,7 @@ Tree-Return_Full_Path=\u7D50\u679C\u8FD4\u56DE\u5B8C\u6574\u5C64\u6B21\u8DEF\u5F
FRFont-bolditalic=\u7C97\u9AD4\u659C\u9AD4
FR-Base_StyleFormat_Sample=\u793A\u4F8B
Area_Value=\u5340\u57DF\u503C
FR-Designer-Plugin_Disable=\u7981\u7528
FR-Designer-Plugin_Disable=Disable
Utils-Are_you_sure_to_remove_the_selected_item=\u4F60\u78BA\u5BE6\u6C7A\u5B9A\u522A\u9664\u9078\u4E2D\u7684\u9805
Face_Write=\u586B\u5831
Poly-Report_Block=\u8868\u683C\u985E\u578B\u805A\u5408\u584A
@ -1595,7 +1594,7 @@ FR-Hyperlink_Please_Select_Reportlet=\u8ACB\u9078\u64C7\u7DB2\u8DEF\u5831\u8868
FS_Report_Type=\u985E\u578B
HF-New_Line=\u63DB\u5217\u7B26
Privilege=\u6B0A\u9650
Export-Offline-Html=\u532F\u51FA\u96E2\u7DDAhtml\u5831\u8868
Export-Offline-Html=\u8F38\u51FA\u96E2\u7DDAhtml\u5831\u8868
FR-Designer_open-new-form-tip=\u7576\u524D\u6A21\u677F\u70BA711\u4EE5\u4E0B\u7248\u672C\u88FD\u4F5C, \u7121\u6CD5\u517C\u5BB9, \u4E0D\u80FD\u6253\u958B. \u5047\u5982\u60F3\u6253\u958B\u4FEE\u6539\u6B64\u8868\u55AE, \u8ACB\u4F7F\u7528\u5C0D\u61C9\u7248\u672C\u8A2D\u8A08\u5668\u6253\u958B.
FR-Designer-Widget-Style_Frame_Style=\u6846\u67B6\u6A23\u5F0F
Present-No_Present=\u53D6\u6D88\u6A21\u5F0F\u8A2D\u5B9A
@ -1615,14 +1614,14 @@ FR-Designer_Date=\u65E5\u671F
Column_Multiple=\u8CC7\u6599\u500D\u6578
FR-App-All_File=\u6A94\u6848
Sort-Descending=\u964D\u51AA
FR-Designer-Plugin_Delete=\u522A\u9664
FR-Designer-Plugin_Delete=Delete
Above=\u4EE5\u4E0A\u7248\u672C
Utils-The-Chart=\u5716\u8868
FRFont-plain=\u5E38\u898F
Calculating=\u8655\u7406\u4E2D
Form-Object=\u8868\u55AE\u5C0D\u8C61
May=\u4E94\u6708
FR-Designer_Plugin_Normal_Update=\u66F4\u65B0
FR-Designer_Plugin_Normal_Update=Update
FR-Hyperlink_Reportlet=\u7DB2\u8DEF\u5831\u8868
M_Edit-Copy=\u8907\u88FD(C)
Sub_Report_Message2=\u7236\u5831\u8868\u4E0D\u5728\u7576\u524D\u904B\u884C\u74B0\u5883\u4E0B
@ -1634,10 +1633,10 @@ FR-Designer_Server-version-tip-moreInfo=\u5EFA\u8B70\u60A8\u6240\u5C6C\u5718\u96
Get_Lock=\u52A0\u9396
HF-Edit_Footer=\u7DE8\u8F2F\u9801\u5C3E
Datasource-New_Charset=\u65B0\u7DE8\u78BC
Preference-Custom=\u81EA\u5B9A\u7FA9
Preference-Custom=Custom
BackgroundTexture-Newsprint=\u65B0\u805E\u7D19
ConditionB-Add_bracket=\u65B0\u589E\u62EC\u865F
Datasource-Connection_successfully=\u9023\u63A5\u6210\u529F
Datasource-Connection_successfully=\u93C8\u63A5\u6210\u529F
Function-The_class_must_implement_the_interface=\u6539\u985E\u5FC5\u9808\u5BE6\u73FE\u4ECB\u9762
FR-Designer_ChartF-Transparency=\u900F\u660E
Crimson=\u6DF1\u7D05
@ -1659,9 +1658,9 @@ Verify-Verify_Formula=\u6821\u9A57\u516C\u5F0F
State=\u7701\u5E02
FR-Designer-Widget-Style_Body_Background=\u4E3B\u9AD4\u80CC\u666F
FR-App-Privilege_No=\u6C92\u6709\u6B0A\u9650
Please_Drag_ParaPane=\u8ACB\u62D6\u5165\u53C3\u6578\u9762\u677F
Please_Drag_ParaPane=
Come_True=\u5BE6\u73FE
ISEMPTY=\u70BA\u7A7A
ISEMPTY=is empty
Background-Texture=\u7D0B\u7406
FR-Designer_Verify-Message=\u932F\u8AA4\u8A0A\u606F
Locked=\uFF08\u5DF2\u9396\u5B9A\uFF09
@ -1715,7 +1714,7 @@ Tree_Data_Field=\u6A39\u72C0\u8CC7\u6599\u6B04\u4F4D
Border-Style-Normal=\u76F4\u89D2\u6846\u7DDA
Top_And_Double_Bottom_Border_Line=\u4E0A\u6846\u7DDA\u548C\u96D9\u4E0B\u6846\u7DDA
FR-Server_Embedded_Server_Start=\u5167\u7F6E\u7684\u4F3A\u670D\u5668-\u555F\u52D5
FR-Designer-Basic_Restart_Designer_Later=\u7A0D\u5F8C\u91CD\u555F
FR-Designer-Basic_Restart_Designer_Later=Restart later
StyleAlignment-Top=\u9760\u4E0A\u5C0D\u9F4A
ReportServerP-First=\u9996\u9801
Not_Exist=\u4E0D\u5B58\u5728
@ -1737,7 +1736,7 @@ PageSetup-Horizontally=\u6C34\u5E73\u7F6E\u4E2D
No_Editor_Property_Definition=\u8A72\u7DE8\u8F2F\u5668\u6C92\u6709\u5C6C\u6027\u5B9A\u7FA9
Env-Remote_Server=\u9060\u7A0B\u4F3A\u670D\u5668
FR-Utils_Background=\u80CC\u666F
FR-Designer-Plugin_Warning=\u8B66\u544A
FR-Designer-Plugin_Warning=Warning
Server-version-info=\u60A8\u7576\u524D\u6253\u958B\u7684\u6A21\u677F\u6A94\u6848\u662F\u7531\u66F4\u9AD8\u7248\u672C\u7684\u8A2D\u8A08\u5668\u88FD\u4F5C\u7684\uFF0C\u6253\u958B\u6703\u6709\u51FA\u932F\u6216\u8005\u4E1F\u5931\u539F\u6709\u6A21\u677F\u5C6C\u6027\u7684\u98A8\u96AA\u3002\u5047\u5982\u9700\u8981\u6253\u958B\u6B64\u6A21\u677F\u8ACB\u60A8\u5C07\u60A8\u7684\u8A2D\u8A08\u5668\u5347\u7D1A\u81F3
CellWrite-Page_After_Row=\u5217\u5F8C\u5206\u9801
HF-Right_Section=\u53F3\u5340\u57DF
@ -1814,7 +1813,7 @@ FR-Action_Remove=\u522A\u9664
FRFont-Style=\u5B57\u5F62
Select_DataColumn=\u9078\u64C7\u8CC7\u6599\u6B04
StartValue=\u958B\u59CB\u503C
SINGLE_FILE_UPLOAD=\u53EA\u652F\u63F4\u55AE\u6A94\u6848\u4E0A\u50B3
SINGLE_FILE_UPLOAD=\u53EA\u652F\u6301\u55AE\u6A94\u6848\u4E0A\u50B3
BackgroundTexture-Cork=\u8EDF\u6728\u585E
M_Format-Data_Map=\u8CC7\u6599\u5B57\u5178
FR-mobile_native_analysis=\u539F\u751F\u89E3\u6790
@ -1824,13 +1823,13 @@ local=\u672C\u6A5F
FR-Designer_Gradation=\u5C64\u6B21
PageSetup-Finis_Start_Column=\u91CD\u8907\u7D50\u5C3E\u6B04
Env-Invalid_User_and_Password=\u975E\u6CD5\u7684\u5E33\u865F\u6216\u5BC6\u78BC
FR-Designer-Plugin_All_Plugins=\u5168\u90E8\u63D2\u4EF6
FR-Designer-Plugin_All_Plugins=All plugins
FR-Designer_Prepare_Export=\u958B\u59CB\u532F\u51FA\uFF0C\u8ACB\u7A0D\u5019
DBCP_TEST_ON_RETURN=\u6B78\u9084\u9023\u63A5\u524D\u6AA2\u9A57
DBCP_TEST_ON_RETURN=\u6B78\u9084\u93C8\u63A5\u524D\u6AA2\u9A57
no-alternatives=\u6C92\u6709\u9078\u64C7\u9805
FR-Designer_Submmit_WClass=\u5F8C\u53F0\u985E\u63D0\u4EA4
M_Insert-Slope_Line=\u63D2\u5165\u659C\u7DDA
FR-Designer-Plugin_Plugin_Description=\u63D2\u4EF6\u63CF\u8FF0
FR-Designer-Plugin_Plugin_Description=Description
ExpandD-Not_Expand=\u4E0D\u64F4\u5C55
Utils-Bottom_to_Top=\u5F9E\u4E0B\u5230\u4E0A
Collect-Click\!_Get_user_information_code=\u9EDE\u64CA\!\u7372\u53D6\u7528\u6236\u8A0A\u606F\u78BC
@ -1849,7 +1848,7 @@ Form-NullLayout=\u7D55\u5C0D\u5B9A\u4F4D
ConditionB-Remove_bracket=\u53BB\u6389\u62EC\u865F
email=\u90F5\u7BB1
Minute=\u5206\u9418
FR-Designer-Plugin_Update=\u63D2\u4EF6\u66F4\u65B0
FR-Designer-Plugin_Update=Plugins to update
alraedy_close=\u5DF2\u7D93\u95DC\u9589
ComboCheckBox-End_Symbol=\u7D50\u675F\u7B26
DataColumn=\u8CC7\u6599\u6B04
@ -1859,17 +1858,17 @@ Export-Excel-PageToSheet=\u5206\u9801\u5206Sheet\u532F\u51FA
Edit-Row_Count=\u5217\u6578
DS-Report_TableData=\u5831\u8868\u8CC7\u6599\u96C6
Sche-Hour=\u6642
Group_Count=\u8868\u793A\u7E3D\u500B\u6578
Group_Count=Group Count
EndValue=\u7D50\u675F\u503C
FR-Designer_Sytle-Indentation=\u7E2E\u9032
DownBarBorderStyleAndColor=\u8DCC\u67F1\u6A23\u5F0F
World=\u4E16\u754C
FR-Designer-Basic_Cancel=\u53D6\u6D88
FR-Designer-Basic_Cancel=Cancel
Finally=\u6700\u5F8C
Low=\u4F4E
Please_Input_The_Key=\u8ACB\u8F38\u5165\u5C0D\u61C9\u5730\u5716\u4F7F\u7528\u7684key
Smart=\u667A\u80FD
Preference-Predefined=\u9810\u5B9A\u7FA9
Preference-Predefined=Predefined
Current_custom_global=\u7576\u524D\u5831\u8868\u6240\u7528\u81EA\u5B9A\u7FA9\u5168\u5C40\u6A23\u5F0F
FR-Designer-Plugin_Shop_Need_Install=\u60A8\u9084\u6C92\u6709\u63D2\u4EF6\u5546\u5E97\u7684\u8CC7\u6E90,\u662F\u5426\u4E0B\u8F09?
WEB-Pagination_Setting=\u5206\u9801\u9810\u89BD\u8A2D\u5B9A
@ -1877,14 +1876,14 @@ RCodeDrawPix=\u50CF\u7D20
FR-Designer-Widget-Style_Alpha=\u4E0D\u900F\u660E\u5EA6
BorderLayout-North=\u5317
HJS-Current_Page=\u7576\u524D\u9801
Compile=\u7DE8\u8B6F
Compile=Compile
Show_Blank_Row=\u88DC\u5145\u7A7A\u767D\u5217
TableData_Dynamic_Parameter_Setting=\u52D5\u614B\u53C3\u6578\u6CE8\u5165
FR-Background_Image_Default=\u9810\u8A2D
BackgroundTexture-WhiteMarble=\u767D\u8272\u5927\u7406\u77F3
DataFunction-Sum=\u6C42\u548C
Collect-The_user_information_code_is_invalid=\u9019\u500B\u7528\u6236\u8A0A\u606F\u78BC\u662F\u975E\u6CD5\u7684
Preference-Locale=\u570B\u969B\u5316
Preference-Locale=Locale
M_File-Export-PDF=PDF\u683C\u5F0F
BiasD-From-lower_left_to_upper_right=\u7E3D\u5DE6\u4E0B\u5230\u53F3\u4E0A\u767C\u6563
Border-Style=\u6846\u7DDA\u6A23\u5F0F
@ -1917,7 +1916,7 @@ Preference-Pagination_Line_Color=\u5206\u9801\u7DDA\u984F\u8272
Test_URL=\u6E2C\u8A66\u9023\u63A5
Fill_blank_Data=\u88DC\u5145\u7A7A\u767D\u8CC7\u6599
ReportServerP-The_name_of_printer_cannot_be_null=\u5370\u8868\u6A5F\u7684\u540D\u5B57\u4E0D\u80FD\u70BA\u7A7A
FR-Designer-Basic_Copy_Activation_Key=\u96D9\u64CA\u8A2D\u8A08\u5668\u7DE8\u865F\u53EF\u8907\u88FD\u5230\u526A\u8CBC\u677F
FR-Designer-Basic_Copy_Activation_Key=Double click to copy key to clipboard
Continuum=\u76F8\u9130\u9023\u7E8C
BackgroundTexture-MediumWood=\u6DF1\u8272\u6728\u88FD
Datasource-Column_Index=\u6B04\u5E8F\u865F
@ -1926,11 +1925,11 @@ Form-Component_Bounds=\u5143\u4EF6\u908A\u754C
Utils-Submit=\u63D0\u4EA4
Conditions_formula=\u689D\u4EF6\u516C\u5F0F
M_Insert-Image=\u63D2\u5165\u5716\u7247
FR-Designer-Plugin_Will_Be_Delete=\u63D2\u4EF6\u5C07\u88AB\u522A\u9664\uFF0C\u9700\u91CD\u555F\u8A2D\u8A08\u5668\u53CA\u4F3A\u670D\u5668\uFF0C\u4F3A\u670D\u5668\u9700\u624B\u52D5\u91CD\u555F
FR-Designer-Plugin_Will_Be_Delete=Delete plugin
FormulaD-Functions=\u51FD\u6578
Mobile_Terminal=\u884C\u52D5\u8A2D\u5099
CheckBox=\u5FA9\u9078\u6846
FR-Designer-Plugin_Install=\u5B89\u88DD
FR-Designer-Plugin_Install=Install
Sun=\u65E5
FR-Designer_ToolBar_Bottom=\u5E95\u90E8\u5DE5\u5177\u6B04
Widget-Width=\u63A7\u5236\u9805\u5BEC\u5EA6
@ -1988,6 +1987,25 @@ FR-Designer_Role=\u89D2\u8272
FR-Designer_Permissions=\u6B0A\u9650
FR-Designer_Form_Button=\u6309\u9215
FR-Designer_WF_Name=\u540D\u7A31
FR-Designer_AlphaFine_Enable=\u958B\u555F
FR-Designer_AlphaFine_EnableAlphaFine=\u958B\u555FAlphaFine\u529F\u80FD
FR-Designer_AlphaFine_EnableInternetSearch=\u806F\u7DB2\u641C\u7D22
FR-Designer_AlphaFine_Shortcut_Config=\u5FEB\u6377\u9375\u914D\u7F6E
FR-Designer_AlphaFine_SearchRange=\u641C\u7D22\u7BC4\u570D
FR-Designer_AlphaFine_Recommend=\u731C\u60A8\u9700\u8981
FR-Designer-Plugin_Addon=\u61C9\u7528\u4E2D\u5FC3
FR-Designer_Templates=\u6A21\u677F
FR-Designer_Templates_Content=\u6A21\u677F\u5167\u5BB9
FR-Designer_AlphaFine_Latest=\u6700\u8FD1\u5E38\u7528
FR-Designer_AlphaFine_ShowLess=\u6536\u8D77
FR-Designer_AlphaFine=AlphaFine\u667A\u80FD\u641C\u7D22
FR-Designer_AlphaFine_ShowAll=\u986F\u793A\u5168\u90E8
FR-Designer-Alphafine_No_Remind=\u4E0D\u518D\u63D0\u793A
FR-Designer_AlphaFine_NoResult=\u66AB\u7121\u76F8\u95DC\u5167\u5BB9
FR-Designer_ConnectionFailed=\u93C8\u63A5\u5931\u6557
FR-Designer_NoResult=\u66AB\u4E0D\u652F\u6301\u986F\u793A
FR-Designer-AlphaFine_SetShortcuts=\u8ACB\u76F4\u63A5\u5728\u9375\u76E4\u4E0A\u6309\u5169\u500B\u7D44\u5408\u9375
FR-Designer_Write_Enhance_Preview=\u65B0\u586B\u5831\u9810\u89BD
FR-Designer_Double=\u5C0F\u6578
FR-Designer_Query=\u67E5\u8A62
FR-Designer_Font=\u5B57\u9AD4
@ -2006,7 +2024,112 @@ FR-Designer_Build_Tree_Accord_Parent_Marked_Filed=\u4F9D\u8CF4\u6240\u9078\u8CC7
FR-Product_Demo=\u529F\u80FD\u5C55\u793A
FR-Designer_Data_Filter=\u8CC7\u6599\u7BE9\u9078
Default=\u9810\u8A2D
FR-Designer_Sheet_Label_Page_Display_Position=sheet\u6A19\u7C64\u9801\u986F\u793A\u4F4D\u7F6E\uFF1A
FR-Designer_Provide_Choose_All=\u63D0\u4F9B\u5168\u9078
FR-Designer_Decimal_Places=\u5C0F\u6578\u6578\u76EE\uFF1A
FR-Base-Load_Resource_File=\u52A0\u8F09\u914D\u7F6E\u6A94\u6848
FR-Designer_Cell_Element=\u5132\u5B58\u683C\u5143\u7D20
FR-Designer_Cell_Attributes=\u5132\u5B58\u683C\u5C6C\u6027
FR-Designer_Float_Element=\u61F8\u6D6E\u5143\u7D20
FR-Designer_Widget_Library=\u7D44\u4EF6\u5EAB
FR-Designer_No_Settings_Available=\u7121\u53EF\u7528\u914D\u5BD8\u9805\uFF01
FR-Designer_Configured_Roles=\u5DF2\u914D\u7F6E\u89D2\u8272
FR-Designer_Add_Hyperlink=\u65B0\u589E\u9023\u63A5
FR-Designer_Scale_selfAdaptButton=
FR-Designer_Scale_customButton=
FR-Designer_FRFont_Subscript=
FR-Designer_FRFont_Superscript=
FR-Designer_FRFont_Shadow=
FR-Designer_FRFont_Strikethrough=
FR-Designer_FRFont_Underline=
FR-Designer_FRFont_bold=
FR-Designer_FRFont_italic=
FR-Designer_FRFont_Foreground=
FR-Designer_FRFont_Style=
FR-Designer_FRFont_plain=
FR-Designer_FRFont_bolditalic=
FR-Designer_outBorder=
FR-Designer_inBorder=
FR-Designer_ExpandD_Up_Father_Cell=
FR-Designer_ExpandD_Expand_Direction=
FR-Designer_Expand=
FR-Designer_ExpendSort=
FR-Designer_ExpandD_Expandable=
FR-Designer_Read_failure=
FR-Designer_Image_Layout=
FR-Designer_StyleAlignment_Text_Style=
FR-Designer_StyleAlignment_Text_Rotation=
FR-Designer_Style_Left_Indent=
FR-Designer_Style_Right_Indent=
FR-Designer_Style_Spacing_Before=
FR-Designer_Style_Spacing_After=
FR-Designer_Style_Line_Spacing=
FR-Designer_Left=
FR-Designer_Right=
FR-Designer_Front=
FR-Designer_Behind=
FR-Designer_StyleAlignment_Wrap_Text=
FR-Designer_StyleAlignment_Single_Line=
FR-Designer_StyleAlignment_Single_Line(Adjust_Font)=
FR-Designer_StyleAlignment_Multi_Line(Adjust_Font)=
FR-Designer_Auto_Adjust_Height=
FR-Designer_Auto_Adjust_Wdith=
FR-Designer_Type_Set=
FR-Designer_Dic_Data_Query=
FR-Designer_Dictionary_Dynamic_SQL=
FR-Designer_Datasource_From_Database=
FR-Designer_CellWrite_InsertRow_NULL=
FR-Designer_CellWrite_InsertRow_COPY=
FR-Designer_CellWrite_InsertRow_Policy=
FR-Designer_CellWrite_Page_Before_Row=
FR-Designer_CellWrite_Page_After_Row=
FR-Designer_CellWrite_Page_Before_Column=
FR-Designer_CellWrite_Page_After_Column=
FR-Designer_CellPage_Can_Break_On_Paginate=
FR-Designer_CellPage_Repeat_Content_When_Paging=
FR-Designer_CellWrite_Preview_Cell_Content=
FR-Designer_CellWrite_Print_Content=
FR-Designer_CellWrite_Print_Background=
FR-Designer_CellWrite_Show_As_Image=
FR-Designer_CellWrite_Show_As_HTML=
FR-Designer_Datasource_Other_Attributes=
FR-Designer_Not_use_a_cell_attribute_table_editing=
FR-Designer_CellElement_Property_Table=
FR-Designer_T_Insert_Float=
FR-Designer_Add_FloatElement=
FR-Designer_Insert_Image=
FR-Designer_Insert_Chart=
FR-Designer_Insert_Text=
FR-Designer_Insert_Formula=
FR-Designer_Scale_Down=
FR-Designer_Scale_Up=
FR-Designer_Scale_Slider=
FR-Designer_Scale_Grade=
FR-Designer_AlphaFine_EnableInternet=
FR-Designer_Scale_EnlargeOrReduce=
FR-Designer-StyleAlignment_Style_PartSpacing=
FR-Designer_Use_Params_Template=
FR-Designer_Label_Name=
FR-Designer_Add_Event=
FR-Designer_Not_Support_Authority_Edit=\u8A72\u5143\u7D20\u4E0D\u652F\u63F4\u8A31\u53EF\u6B0A\u63A7\u5236
FR-Designer_Dynamic_Parameter=\u52D5\u614B\u53C3\u6578
FR-Designer_Remove_Item=
FR-Designer_Widget_No_Repeat=
FR-Designer_Widget_Error_Tip=
FR-Designer_Widget_Return_Leaf=
FR-Designer_Widget_Return_Path=
FR-Designer_Widget_Display_Position=
FR-Designer_Size_Limit=
FR-Designer_Widget_Name=
FR-Designer_Coords_And_Size=
FR-Designer_Barcode_Size=
FS-Designer_DS_Filter_Odd_Tip=\u63D0\u793A\uFF1A\u5E8F\u865F\u5F9E1\u958B\u59CB\uFF0C\u9078\u64C7\u4E86\u5947\u6578\u96C6(1,3,5...)
FS-Designer_DS_Filter_Even_Tip=\u63D0\u793A\uFF1A\u5E8F\u865F\u5F9E1\u958B\u59CB\uFF0C\u9078\u64C7\u4E86\u5076\u6578\u96C6(2,4,6...)
FS-Designer_DS_Filter_Specify_Tip=\u63D0\u793A\uFF1A\u683C\u5F0F\u70BA1,2-3,5,8\uFF0C\u5E8F\u865F\u5F9E1\u958B\u59CB\uFF0C\u5185\u7F6E\u53C3\u6578$_count_\u8868\u793A\u7E02\u500B\u6578
M-New_FormBook=\u65B0\u589E\u6C7A\u7B56\u5831\u8868
FR-Designer-AlphaFine_NO_Result=\u7121\u641C\u7D22\u7D50\u679C
FR-Designer-Download_Online_Sources=
FR-Designer_Select_Color=
FR-Designer-Basic_Dynamic_Parameter_Injection=\u6CE8\u5165
FR-Designer_Label=\u6A19\u7C3D
FR-Designer_Widgetname=\u63A7\u5236\u9805\u540D
FR-Designer_Insert_Cell_Element=\u63D2\u5165\u5143\u7D20
FR-Designer_Add_Condition=

31
designer_base/src/com/fr/design/mainframe/loghandler/LogHandlerBar.java

@ -3,13 +3,14 @@ package com.fr.design.mainframe.loghandler;
import com.fr.base.BaseUtils;
import com.fr.design.gui.ibutton.UIButton;
import com.fr.general.Inter;
import com.fr.stable.script.Atom;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.util.concurrent.atomic.AtomicBoolean;
public class LogHandlerBar extends JPanel implements ItemSelectable {
@ -38,17 +39,17 @@ public class LogHandlerBar extends JPanel implements ItemSelectable {
clear.setMargin(null);
clear.setOpaque(false);
clear.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0));
clear.setToolTipText(Inter.getLocText("Clear_All"));
clear.setToolTipText(Inter.getLocText("FR-Designer_Clear_All"));
selectedall = new UIButton(BaseUtils.readIcon("com/fr/design/images/log/selectedall.png"));
selectedall.setMargin(null);
selectedall.setOpaque(false);
selectedall.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0));
selectedall.setToolTipText(Inter.getLocText("Select_All"));
selectedall.setToolTipText(Inter.getLocText("FR-Designer_Select_All"));
set = new UIButton(BaseUtils.readIcon("com/fr/design/images/log/setting.png"));
set.setMargin(null);
set.setOpaque(false);
set.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0));
set.setToolTipText(Inter.getLocText("Set"));
set.setToolTipText(Inter.getLocText("FR-Designer_Set"));
this.add(clear);
this.add(selectedall);
@ -84,8 +85,15 @@ public class LogHandlerBar extends JPanel implements ItemSelectable {
timerPaint();
}
public synchronized void timerPaint() {
repaint();
private AtomicBoolean painting = new AtomicBoolean(false);
public void timerPaint() {
if(!painting.get()) {
painting.set(true);
repaint();
painting.set(false);
}
}
public int getInfo() {
@ -165,11 +173,16 @@ public class LogHandlerBar extends JPanel implements ItemSelectable {
Insets insets = target.getInsets();
int top = insets.top;
int right = target.getWidth() - insets.right;
clear.setBounds(right - 130, top + 4, clear.getPreferredSize().width, clear.getPreferredSize().height);
selectedall.setBounds(right - 100, top + 4, selectedall.getPreferredSize().width, selectedall.getPreferredSize().height);
set.setBounds(right - 70, top + 4, set.getPreferredSize().width, set.getPreferredSize().height);
clear.setBounds(right - CLEAR_OFFSET, top + TOP_OFFSET, clear.getPreferredSize().width, clear.getPreferredSize().height);
selectedall.setBounds(right - SELECT_OFFSET, top + TOP_OFFSET, selectedall.getPreferredSize().width, selectedall.getPreferredSize().height);
set.setBounds(right - SET_OFFSET, top + TOP_OFFSET, set.getPreferredSize().width, set.getPreferredSize().height);
}
private static final int CLEAR_OFFSET = 130;
private static final int TOP_OFFSET = 4;
private static final int SELECT_OFFSET = 100;
private static final int SET_OFFSET = 70;
}
}

548
designer_base/src/com/fr/design/roleAuthority/ReportAndFSManagePane.java

File diff suppressed because one or more lines are too long

175
designer_base/src/com/fr/env/RemoteEnv.java vendored

@ -1,14 +1,6 @@
package com.fr.env;
import com.fr.base.AbstractEnv;
import com.fr.base.EnvException;
import com.fr.base.FRContext;
import com.fr.base.FRCoreContext;
import com.fr.base.ModifiedTable;
import com.fr.base.Parameter;
import com.fr.base.StoreProcedureParameter;
import com.fr.base.TableData;
import com.fr.base.Utils;
import com.fr.base.*;
import com.fr.base.remote.RemoteDeziConstants;
import com.fr.data.core.DataCoreUtils;
import com.fr.data.core.db.TableProcedure;
@ -25,34 +17,17 @@ import com.fr.design.file.HistoryTemplateListPane;
import com.fr.design.fun.DesignerEnvProcessor;
import com.fr.design.mainframe.DesignerContext;
import com.fr.design.mainframe.DesignerFrameFileDealerPane;
import com.fr.design.mainframe.loghandler.DesignerLogHandler;
import com.fr.file.CacheManager;
import com.fr.file.DatasourceManager;
import com.fr.file.DatasourceManagerProvider;
import com.fr.file.filetree.FileNode;
import com.fr.general.ComparatorUtils;
import com.fr.general.FRLogger;
import com.fr.general.IOUtils;
import com.fr.general.Inter;
import com.fr.general.LogRecordTime;
import com.fr.general.VT4FR;
import com.fr.general.*;
import com.fr.general.http.HttpClient;
import com.fr.json.JSONArray;
import com.fr.json.JSONException;
import com.fr.json.JSONObject;
import com.fr.plugin.Plugin;
import com.fr.plugin.PluginLicense;
import com.fr.plugin.PluginLicenseManager;
import com.fr.plugin.PluginLoader;
import com.fr.share.ShareConstants;
import com.fr.stable.ArrayUtils;
import com.fr.stable.EncodeConstants;
import com.fr.stable.JavaCompileInfo;
import com.fr.stable.LicUtils;
import com.fr.stable.ProductConstants;
import com.fr.stable.StableUtils;
import com.fr.stable.StringUtils;
import com.fr.stable.SvgProvider;
import com.fr.stable.*;
import com.fr.stable.file.XMLFileManagerProvider;
import com.fr.stable.project.ProjectConstants;
import com.fr.stable.xml.XMLPrintWriter;
@ -61,37 +36,17 @@ import com.fr.stable.xml.XMLableReader;
import com.fr.web.ResourceConstants;
import javax.swing.*;
import javax.xml.transform.Source;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.*;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import java.awt.*;
import java.io.BufferedReader;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FilenameFilter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.UnsupportedEncodingException;
import java.io.*;
import java.net.HttpURLConnection;
import java.net.NoRouteToHostException;
import java.net.Socket;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.*;
import java.util.List;
import java.util.Map;
import java.util.Timer;
import java.util.TimerTask;
import java.util.logging.Level;
import java.util.regex.Pattern;
@ -428,7 +383,6 @@ public class RemoteEnv extends AbstractEnv {
private void extraChangeEnvPara() {
//在env连接之前, 加载一下不依赖env的插件. 看看需不需要改变参数.
PluginLoader.init();
DesignerEnvProcessor envProcessor = ExtraDesignClassManager.getInstance().getSingle(DesignerEnvProcessor.XML_TAG);
if (envProcessor != null) {
this.path = envProcessor.changeEnvPathBeforeConnect(user, password, path);
@ -1427,17 +1381,13 @@ public class RemoteEnv extends AbstractEnv {
return;
}
SignIn.signIn(remoteEnv);
resetLicenseBytes();
FRCoreContext.resetBytes();
HistoryTemplateListPane.getInstance().getCurrentEditingTemplate().refreshToolArea();
} catch (Exception em) {
FRContext.getLogger().error(em.getMessage(), em);
}
}
private void resetLicenseBytes() {
FRCoreContext.retryLicLock();
}
/**
* 停止连接
*/
@ -1837,8 +1787,7 @@ public class RemoteEnv extends AbstractEnv {
}
LogRecordTime[] records = DavXMLUtils.readXMLLogRecords(input);
for (LogRecordTime logRecordTime : records) {
DesignerLogHandler.getInstance().printRemoteLog(logRecordTime);
//TODO
}
}
@ -2037,7 +1986,8 @@ public class RemoteEnv extends AbstractEnv {
public void setLicName(String licName) {
//do nth
}
/**
* 获取当前env的build文件路径
*/
@ -2073,74 +2023,8 @@ public class RemoteEnv extends AbstractEnv {
info.parseJSON(jo);
return info;
}
/**
* 将文件拷贝到插件目录
*
* @param dir 要拷贝的文件
* @param plugin 插件
*/
public void copyFilesToPluginAndLibFolder(File dir, Plugin plugin) throws Exception {
}
/**
* 将文件添加到指定目录或者删除指定目录的文件
*
* @param file 解压插件的临时目录
* @param plugin 当前处理的插件
*/
public void movePluginEmbFile(File file, Plugin plugin) throws Exception {
}
/**
* 将文件从插件目录删除
*
* @param plugin 要删除插件
* @return 同上
*/
public String[] deleteFileFromPluginAndLibFolder(Plugin plugin) {
return new String[0];
}
/**
* 保存插件的配置文件
*
* @param plugin 插件
*/
public void writePlugin(Plugin plugin) throws Exception {
}
/**
* 获取插件的配置目录
*
* @param plugin
*/
public String getPluginFilePath(Plugin plugin) {
return StringUtils.EMPTY;
}
public void readPluginLicenses() throws Exception {
ByteArrayOutputStream out = new ByteArrayOutputStream();
HashMap<String, String> para = new HashMap<String, String>();
para.put("op", "fr_remote_design");
para.put("cmd", "design_plugin_licenses");
InputStream inputStream = postBytes2ServerB(out.toByteArray(), para);
String pluginsLicensesStr = IOUtils.inputStream2String(inputStream, EncodeConstants.ENCODING_UTF_8);
if (StringUtils.isNotBlank(pluginsLicensesStr) && pluginsLicensesStr.startsWith("[")) {
JSONArray jsonArray = new JSONArray(pluginsLicensesStr);
for (int i = 0; i < jsonArray.length(); i++) {
PluginLicense pluginLicense = new PluginLicense();
pluginLicense.parseJSON(jsonArray.getJSONObject(i));
PluginLicenseManager.getInstance().addRemotePluginLicense(pluginLicense);
}
}
}
@Override
public String pluginServiceAction(String serviceID, String req) throws Exception {
@ -2161,12 +2045,6 @@ public class RemoteEnv extends AbstractEnv {
@Override
public void pluginServiceStart(String serviceID){
}
@Override
public void checkAndRegisterLic(FileNode node, Plugin plugin) throws Exception {
}
@Override
public File[] loadREUFile() throws Exception {
File target = new File(CacheManager.getProviderInstance().getCacheDirectory(),
@ -2282,9 +2160,34 @@ public class RemoteEnv extends AbstractEnv {
return StringUtils.EMPTY;
}
}
@Override
public boolean isLocalEnv() {
return false;
}
@Override
public void doWhenServerShutDown() {
public boolean hasPluginServiceStarted(String key) {
return true;
}
@Override
public JSONArray getPluginStatus() {
try {
HashMap<String, String> para = new HashMap<String, String>();
para.put("op", "plugin");
para.put("cmd", "get_status");
para.put("current_uid", this.createUserID());
para.put("currentUsername", this.getUser());
HttpClient client = createHttpMethod(para);
InputStream input = execute4InputStream(client);
return new JSONArray(stream2String(input));
} catch (Exception e) {
return JSONArray.create();
}
}
}

17
designer_base/src/com/fr/start/BaseDesigner.java

@ -12,7 +12,7 @@ import com.fr.design.file.HistoryTemplateListPane;
import com.fr.design.file.MutilTempalteTabPane;
import com.fr.design.file.TemplateTreePane;
import com.fr.design.fun.DesignerStartOpenFileProcessor;
import com.fr.design.fun.GlobalListenerProvider;
import com.fr.design.fun.impl.GlobalListenerProviderManager;
import com.fr.design.mainframe.DesignerFrame;
import com.fr.design.mainframe.TemplatePane;
import com.fr.design.mainframe.toolbar.ToolBarMenuDock;
@ -35,7 +35,6 @@ import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.File;
import java.lang.reflect.Method;
import java.util.Set;
/**
* The main class of Report Designer.
@ -49,6 +48,8 @@ public abstract class BaseDesigner extends ToolBarMenuDock {
private Timer timer;
public BaseDesigner(String[] args) {
BuildContext.setBuildFilePath(buildPropertiesPath());
if (isDebug()) {
setDebugEnv();
}
@ -60,15 +61,13 @@ public abstract class BaseDesigner extends ToolBarMenuDock {
DesignUtils.clientSend(args);
return;
}
BuildContext.setBuildFilePath(buildPropertiesPath());
//下面这两句的位置不能随便调换,因为会影响语言切换的问题
initLanguage();
// 先加载设计器的国际化文件
// 在 initLanguage 之后加载设计器国际化文件,确保是正确的语言环境
Inter.loadLocaleFile(GeneralContext.getLocale(), DesignModule.LOCALE_FILE_PATH);
SplashWindow splashWindow = new SplashWindow(createSplashPane());
if (args != null) {
for (String arg : args) {
@ -94,6 +93,8 @@ public abstract class BaseDesigner extends ToolBarMenuDock {
switch2LastEnv();
initDefaultFont();
//PluginManager要在环境切换和模块启动之前初始化
PluginManager.registerEnvListener();
// 必须先初始化Env再去startModule, 不然会导致lic读取不到
ModuleContext.startModule(module2Start());
@ -116,10 +117,8 @@ public abstract class BaseDesigner extends ToolBarMenuDock {
}
private void bindGlobalListener() {
Set<GlobalListenerProvider> providers = ExtraDesignClassManager.getInstance().getArray(GlobalListenerProvider.XML_TAG);
for (GlobalListenerProvider provider : providers) {
Toolkit.getDefaultToolkit().addAWTEventListener(provider.listener(), AWTEvent.KEY_EVENT_MASK);
}
GlobalListenerProviderManager.getInstance().init();
}
private void showErrorPluginsMessage() {

312
designer_base/src/com/fr/start/StartServer.java

@ -14,7 +14,10 @@ import com.fr.env.SignIn;
import com.fr.general.ComparatorUtils;
import com.fr.general.GeneralContext;
import com.fr.general.Inter;
import com.fr.stable.*;
import com.fr.stable.EnvChangedListener;
import com.fr.stable.ProductConstants;
import com.fr.stable.StableUtils;
import com.fr.stable.StringUtils;
import com.fr.stable.project.ProjectConstants;
import com.fr.start.server.JettyHost;
@ -25,186 +28,173 @@ import java.net.URI;
import java.net.URISyntaxException;
public class StartServer {
public static boolean NEED_LOAD_ENV = true;
// 原先的jettyHost放在类JettyHost里面,很不方便操作,而且因为存在多个进程的原因,
// 原先的getInstance()方法无多大意义
private static JettyHost jettyHost = null;
static {
GeneralContext.addEnvChangedListener(new EnvChangedListener() {
public void envChanged() {
currentEnvChanged();
}
});
}
public static boolean NEED_LOAD_ENV = true;
// 原先的jettyHost放在类JettyHost里面,很不方便操作,而且因为存在多个进程的原因,
// 原先的getInstance()方法无多大意义
private static JettyHost jettyHost = null;
static {
GeneralContext.addEnvChangedListener(new EnvChangedListener() {
public void envChanged() {
currentEnvChanged();
}
});
}
/**
* 预览Demo
* 找默认工作目录不应该按照名字去找而应该按照安装路径因为默认工作目录的名字可能会改变
*/
public static void browserDemoURL() {
if (ComparatorUtils.equals(StableUtils.getInstallHome(), ".")) {//august:供代码使用
String web = GeneralContext.getCurrentAppNameOfEnv();
browserURLWithLocalEnv("http://localhost:" + DesignerEnvManager.getEnvManager().getJettyServerPort() + "/" + web + "/" + ConfigManager.getProviderInstance().getServletMapping()
+ "?op=fs");
return;
}
DesignerEnvManager envManager = DesignerEnvManager.getEnvManager();
if (!envManager.isCurrentEnvDefault()) {
InformationPane inf = new InformationPane(envManager.getDefaultEnvName());
inf.showSmallWindow(DesignerContext.getDesignerFrame(), new DialogActionAdapter() {
@Override
public void doOk() {
try {
SignIn.signIn(DesignerEnvManager.getEnvManager().getDefaultEnv());
TemplateTreePane.getInstance().refreshDockingView();
TableDataTreePane.getInstance(DesignModelAdapter.getCurrentModelAdapter());
} catch (Exception e) {
FRContext.getLogger().errorWithServerLevel(e.getMessage());
}
initDemoServerAndBrowser();
}
}).setVisible(true);
} else {
initDemoServerAndBrowser();
}
}
private static void initDemoServerAndBrowser() {
if (jettyHost != null) {
if (!jettyHost.isDemoAppLoaded()) {
jettyHost.exit();
jettyHost = new JettyHost(DesignerEnvManager.getEnvManager().getJettyServerPort());
jettyHost.addAndStartInstallHomeWebApp();
}
} else {
jettyHost = new JettyHost(DesignerEnvManager.getEnvManager().getJettyServerPort());
jettyHost.addAndStartInstallHomeWebApp();
}
try {
if (!jettyHost.isStarted()) {
jettyHost.start();
}
} catch (Exception e) {
FRContext.getLogger().errorWithServerLevel(e.getMessage());
} finally {
//先访问Demo, 后访问报表, 不需要重置服务器.
NEED_LOAD_ENV = false;
browser("http://localhost:" + DesignerEnvManager.getEnvManager().getJettyServerPort() + "/" + ProjectConstants.WEBAPP_NAME + "/" + ConfigManager.getProviderInstance().getServletMapping()
+ "?op=fs");
}
}
public static void browserDemoURL() {
if (ComparatorUtils.equals(StableUtils.getInstallHome(), ".")) {//august:供代码使用
String web = GeneralContext.getCurrentAppNameOfEnv();
browserURLWithLocalEnv("http://localhost:" + DesignerEnvManager.getEnvManager().getJettyServerPort() + "/" + web + "/" + ConfigManager.getProviderInstance().getServletMapping()
+ "?op=fs");
return;
}
DesignerEnvManager envManager = DesignerEnvManager.getEnvManager();
if (!envManager.isCurrentEnvDefault()) {
InformationPane inf = new InformationPane(envManager.getDefaultEnvName());
inf.showSmallWindow(DesignerContext.getDesignerFrame(), new DialogActionAdapter() {
@Override
public void doOk() {
try {
SignIn.signIn(DesignerEnvManager.getEnvManager().getDefaultEnv());
TemplateTreePane.getInstance().refreshDockingView();
TableDataTreePane.getInstance(DesignModelAdapter.getCurrentModelAdapter());
} catch (Exception e) {
FRContext.getLogger().errorWithServerLevel(e.getMessage());
}
initDemoServerAndBrowser();
}
}).setVisible(true);
} else {
initDemoServerAndBrowser();
}
}
private static void initDemoServerAndBrowser() {
if (jettyHost != null) {
if (!jettyHost.isDemoAppLoaded()) {
jettyHost.exit();
jettyHost = new JettyHost(DesignerEnvManager.getEnvManager().getJettyServerPort());
jettyHost.addAndStartInstallHomeWebApp();
}
} else {
jettyHost = new JettyHost(DesignerEnvManager.getEnvManager().getJettyServerPort());
jettyHost.addAndStartInstallHomeWebApp();
}
try {
if (!jettyHost.isStarted()) {
jettyHost.start();
}
} catch (Exception e) {
FRContext.getLogger().errorWithServerLevel(e.getMessage());
} finally {
//先访问Demo, 后访问报表, 不需要重置服务器.
NEED_LOAD_ENV = false;
browser("http://localhost:" + DesignerEnvManager.getEnvManager().getJettyServerPort() + "/" + ProjectConstants.WEBAPP_NAME + "/" + ConfigManager.getProviderInstance().getServletMapping()
+ "?op=fs");
}
}
/**
* 本地环境浏览url
*
* @param url 指定路径
*/
public static void browserURLWithLocalEnv(String url) {
try {
if (jettyHost != null) {
if (NEED_LOAD_ENV) {
jettyHost.exit();
jettyHost = new JettyHost(DesignerEnvManager.getEnvManager().getJettyServerPort());
jettyHost.addAndStartLocalEnvHomeWebApp();
}
} else {
jettyHost = new JettyHost(DesignerEnvManager.getEnvManager().getJettyServerPort());
jettyHost.addAndStartLocalEnvHomeWebApp();
}
if (!jettyHost.isStarted()) {
jettyHost.start();
}
} catch (InterruptedException e) {
FRContext.getLogger().errorWithServerLevel(e.getMessage());
} catch (Exception e) {
FRContext.getLogger().errorWithServerLevel(e.getMessage());
} finally {
NEED_LOAD_ENV = false;
browser(url);
}
}
public static JettyHost getInstance() {
// august: 正确的逻辑能保证jettyHost不为null,不然就有bug,不允许这儿加是否等于null判断
return jettyHost;
}
public static void browserURLWithLocalEnv(String url) {
try {
if (jettyHost != null) {
if (NEED_LOAD_ENV) {
jettyHost.exit();
jettyHost = new JettyHost(DesignerEnvManager.getEnvManager().getJettyServerPort());
jettyHost.addAndStartLocalEnvHomeWebApp();
}
} else {
jettyHost = new JettyHost(DesignerEnvManager.getEnvManager().getJettyServerPort());
jettyHost.addAndStartLocalEnvHomeWebApp();
}
if (!jettyHost.isStarted()) {
jettyHost.start();
}
} catch (InterruptedException e) {
FRContext.getLogger().errorWithServerLevel(e.getMessage());
} catch (Exception e) {
FRContext.getLogger().errorWithServerLevel(e.getMessage());
} finally {
NEED_LOAD_ENV = false;
browser(url);
}
}
public static JettyHost getInstance() {
// august: 正确的逻辑能保证jettyHost不为null,不然就有bug,不允许这儿加是否等于null判断
return jettyHost;
}
/**
* 运行环境改变事件
*/
public static void currentEnvChanged() {
if (!NEED_LOAD_ENV) {
NEED_LOAD_ENV = true;
}
}
private static void browser(String uri) {
if (StringUtils.isEmpty(uri)) {
FRContext.getLogger().info("The URL is empty!");
return;
}
try {
Desktop.getDesktop().browse(new URI(uri));
} catch (IOException e) {
startBrowserFromCommand(uri, e);
} catch (URISyntaxException e) {
FRContext.getLogger().errorWithServerLevel(e.getMessage(), e);
} catch (Exception e) {
FRContext.getLogger().errorWithServerLevel(e.getMessage(), e);
FRContext.getLogger().error("Can not open the browser for URL: " + uri);
}
}
private static void startBrowserFromCommand(String uri, IOException e) {
if (OperatingSystem.isWindows()) {
try {
// win10 内存用到到80%左右的时候, Desktop.browser经常提示"存储空间不足, 无法处理改命令", 用rundll32可以打开.
Runtime.getRuntime().exec("rundll32 url.dll,FileProtocolHandler " + uri);
} catch (IOException ee) {
JOptionPane.showMessageDialog(null, Inter.getLocText("FR-Designer_Set_default_browser"));
FRContext.getLogger().errorWithServerLevel(e.getMessage(), e);
}
} else {
FRContext.getLogger().errorWithServerLevel(e.getMessage(), e);
}
}
private static class InformationPane extends BasicPane {
private static final long serialVersionUID = 1L;
public InformationPane(String message) {
this.setLayout(new BorderLayout(10, 10));
this.setBorder(BorderFactory.createEmptyBorder(15, 5, 5, 5));
String text;
if (!ComparatorUtils.equals(message, Inter.getLocText(new String[]{"Default", "Utils-Report_Runtime_Env"}))) {
text = new StringBuffer(Inter.getLocText("FR-Designer_Open"))
public static void currentEnvChanged() {
if (!NEED_LOAD_ENV) {
NEED_LOAD_ENV = true;
}
}
private static void browser(String uri) {
if (StringUtils.isEmpty(uri)) {
FRContext.getLogger().info("The URL is empty!");
return;
}
try {
Desktop.getDesktop().browse(new URI(uri));
} catch (IOException e) {
JOptionPane.showMessageDialog(null, Inter.getLocText("FR-Designer_Set_default_browser"));
FRContext.getLogger().errorWithServerLevel(e.getMessage(), e);
} catch (URISyntaxException e) {
FRContext.getLogger().errorWithServerLevel(e.getMessage(), e);
} catch (Exception e) {
FRContext.getLogger().errorWithServerLevel(e.getMessage(), e);
FRContext.getLogger().error("Can not open the browser for URL: " + uri);
}
}
private static class InformationPane extends BasicPane {
private static final long serialVersionUID = 1L;
public InformationPane(String message) {
this.setLayout(new BorderLayout(10, 10));
this.setBorder(BorderFactory.createEmptyBorder(15, 5, 5, 5));
String text;
if (!ComparatorUtils.equals(message, Inter.getLocText(new String[]{"Default", "Utils-Report_Runtime_Env"}))) {
text = new StringBuffer(Inter.getLocText("FR-Designer_Open"))
.append(ProductConstants.APP_NAME)
.append(Inter.getLocText("FR-Designer_Utils-OpenDemoEnv"))
.append(message).append(Inter.getLocText("FR-Designer_Utils-switch")).toString();
}else{
text = new StringBuffer(Inter.getLocText("FR-Designer_Open"))
} else {
text = new StringBuffer(Inter.getLocText("FR-Designer_Open"))
.append(ProductConstants.APP_NAME)
.append(Inter.getLocText("FR-Designer_Utils-NewDemoEnv"))
.append(message).append(Inter.getLocText("FR-Designer_Utils-switch")).toString();
}
UITextArea a = new UITextArea(text);
a.setFont(new Font("Dialog", Font.PLAIN, 12));
a.setEditable(false);
a.setBackground(this.getBackground());
a.setLineWrap(true);
this.add(a);
}
@Override
protected String title4PopupWindow() {
return Inter.getLocText("FR-Designer_Tooltips");
}
}
}
UITextArea a = new UITextArea(text);
a.setFont(new Font("Dialog", Font.PLAIN, 12));
a.setEditable(false);
a.setBackground(this.getBackground());
a.setLineWrap(true);
this.add(a);
}
@Override
protected String title4PopupWindow() {
return Inter.getLocText("FR-Designer_Tooltips");
}
}
}

13
designer_chart/src/com/fr/design/chart/ChartTypePane.java

@ -7,11 +7,7 @@ package com.fr.design.chart;
import com.fr.base.FRContext;
import com.fr.base.FRCoreContext;
import com.fr.chart.base.ChartInternationalNameContentBean;
import com.fr.chart.chartattr.Chart;
import com.fr.chart.chartattr.ChartCollection;
import com.fr.chart.chartattr.ChartIcon;
import com.fr.chart.chartattr.MapPlot;
import com.fr.chart.chartattr.Plot;
import com.fr.chart.chartattr.*;
import com.fr.chart.charttypes.ChartTypeManager;
import com.fr.design.gui.ilable.UILabel;
import com.fr.design.layout.FRGUIPaneFactory;
@ -154,7 +150,7 @@ public class ChartTypePane extends ChartCommonWizardPane {
String plotID = typeName[mainTypeList.getSelectedIndex()].getPlotID();
Chart chart = ChartTypeManager.getInstance().getChartTypes(plotID)[iconViewList.getSelectedIndex()];
if(chart.getPlot() != null){
if(chart.getPlot() instanceof MapPlot && !supportMap()){
if(chart.getPlot() instanceof MapPlot && !(VT4FR.isLicAvailable(FRCoreContext.getBytes()) && VT4FR.CHART_MAP.support())){
JOptionPane.showMessageDialog(null, Inter.getLocText("FR-Chart-Map_Not_Supported"));
throw new RegistEditionException(VT4FR.CHART_MAP);
}
@ -169,11 +165,6 @@ public class ChartTypePane extends ChartCommonWizardPane {
}
}
private boolean supportMap() {
byte[] bytes = FRCoreContext.getBytes();
return VT4FR.isLicAvailable(bytes) && VT4FR.CHART_MAP.support();
}
public void update(ChartCollection cc) {
if (cc == null) {
return;

170
designer_chart/src/com/fr/design/mainframe/chart/gui/data/report/CategoryPlotMoreCateReportDataContentPane.java

@ -5,16 +5,15 @@ import com.fr.base.Utils;
import com.fr.base.chart.chartdata.TopDefinitionProvider;
import com.fr.chart.chartattr.Bar2DPlot;
import com.fr.chart.chartattr.ChartCollection;
import com.fr.chart.chartattr.Plot;
import com.fr.chart.chartdata.NormalReportDataDefinition;
import com.fr.design.event.UIObserver;
import com.fr.design.event.UIObserverListener;
import com.fr.design.formula.TinyFormulaPane;
import com.fr.design.gui.ibutton.UIButton;
import com.fr.design.gui.ilable.BoldFontTextLabel;
import com.fr.design.mainframe.chart.gui.ChartDataPane;
import com.fr.design.mainframe.chart.gui.data.ChartDataFilterPane;
import com.fr.general.Inter;
import com.fr.plugin.chart.designer.TableLayout4VanChartHelper;
import com.fr.stable.StringUtils;
import javax.swing.*;
@ -22,7 +21,6 @@ import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.List;
/**
@ -32,133 +30,130 @@ import java.util.List;
*/
public class CategoryPlotMoreCateReportDataContentPane extends CategoryPlotReportDataContentPane implements UIObserver{
private static final long serialVersionUID = -1122313353777460534L;
private JPanel boxPane;
private UIButton addButton;
private ArrayList<TinyFormulaPane> formualList = new ArrayList<TinyFormulaPane>();
private UIObserverListener uiobListener = null;
public List<TinyFormulaPane> getFormualList() {
return formualList;
}
public CategoryPlotMoreCateReportDataContentPane() {
}
public CategoryPlotMoreCateReportDataContentPane(ChartDataPane parent) {
initEveryPane();
categoryName = initCategoryBox(Inter.getLocText("FR-Chart-Category_Name") + ":");
JPanel catePane = new JPanel();
catePane.setLayout(new BorderLayout(2, 2));
catePane.add(categoryName);
addButton = new UIButton(BaseUtils.readIcon("/com/fr/design/images/buttonicon/add.png"));
addButton.setPreferredSize(new Dimension(20, 20));
catePane.add(addButton, BorderLayout.EAST);
boxPane = new JPanel();
boxPane.setLayout(new BoxLayout(boxPane, BoxLayout.Y_AXIS));
boxPane.setBackground(Color.red);
catePane.add(boxPane, BorderLayout.SOUTH);
this.add(catePane, "0,0,2,0");
this.add(new BoldFontTextLabel(Inter.getLocText("FR-Chart-Data_Filter")), "0,4,2,4");
this.add(filterPane = new ChartDataFilterPane(new Bar2DPlot(), parent), "0,6,2,4");
addButton.addActionListener(new ActionListener() {
initEveryPane();
categoryName = initCategoryBox(Inter.getLocText("FR-Chart-Category_Name"));
JPanel catePane = new JPanel();
catePane.setLayout(new BorderLayout(2, 2));
catePane.add(categoryName);
addButton = new UIButton(BaseUtils.readIcon("/com/fr/design/images/buttonicon/add.png"));
addButton.setPreferredSize(new Dimension(20, 20));
catePane.add(addButton, BorderLayout.EAST);
boxPane = new JPanel();
boxPane.setLayout(new BoxLayout(boxPane, BoxLayout.Y_AXIS));
boxPane.setBackground(Color.red);
catePane.add(boxPane, BorderLayout.SOUTH);
catePane.setBorder(BorderFactory.createEmptyBorder(0,24,10,15));
this.add(catePane, "0,0,2,0");
filterPane = new ChartDataFilterPane(new Bar2DPlot(), parent);
JPanel panel = TableLayout4VanChartHelper.createExpandablePaneWithTitle(Inter.getLocText("FR-Chart-Data_Filter"),filterPane);
panel.setBorder(getSidesBorder());
filterPane.setBorder(getFilterPaneBorder());
this.add(panel, "0,6,2,4");
addButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
addNewCatePane();
}
});
}
/**
* 检查box 是否应该可用状态.
*/
public void checkBoxUse() {
super.checkBoxUse();
String text = categoryName.getUITextField().getText();
addButton.setEnabled(StringUtils.isNotEmpty(text));
}
/**
* 检查box 是否应该可用状态.
*/
public void checkBoxUse() {
super.checkBoxUse();
String text = categoryName.getUITextField().getText();
addButton.setEnabled(StringUtils.isNotEmpty(text));
}
private TinyFormulaPane addNewCatePane() {
final TinyFormulaPane pane = initCategoryBox(StringUtils.EMPTY);
pane.setPreferredSize(new Dimension(122, 16));
pane.setPreferredSize(new Dimension(106, 16));
pane.registerChangeListener(uiobListener);
formualList.add(pane);
final JPanel newButtonPane = new JPanel();
newButtonPane.setLayout(new FlowLayout(FlowLayout.RIGHT, 0, 0));
newButtonPane.add(pane);
UIButton delButton = new UIButton(BaseUtils.readIcon("com/fr/design/images/toolbarbtn/close.png"));
newButtonPane.add(delButton);
boxPane.add(newButtonPane);
delButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
boxPane.remove(newButtonPane);
formualList.remove(pane);
checkComponent();
checkAddButton();
relayoutPane();
}
});
delButton.registerChangeListener(uiobListener);
checkComponent();
checkAddButton();
relayoutPane();
return pane;
}
private void checkAddButton() {
int size = formualList.size();
addButton.setEnabled(size < 2);
}
protected void checkComponent() {
checkAddButton();
}
private void relayoutPane() {
this.revalidate();
}
/**
* 给组件登记一个观察者监听事件
*
* @param listener 观察者监听事件
*/
/**
* 给组件登记一个观察者监听事件
*
* @param listener 观察者监听事件
*/
public void registerChangeListener(UIObserverListener listener) {
uiobListener = listener;
}
/**
* 组件是否需要响应添加的观察者事件
*
* @return 如果需要响应观察者事件则返回true否则返回false
*/
/**
* 组件是否需要响应添加的观察者事件
*
* @return 如果需要响应观察者事件则返回true否则返回false
*/
public boolean shouldResponseChangeListener() {
return true;
}
public void populateBean(ChartCollection collection) {
super.populateBean(collection);
formualList.clear();
TopDefinitionProvider definition = collection.getSelectedChart().getFilterDefinition();
if (definition instanceof NormalReportDataDefinition) {
NormalReportDataDefinition reportDefinition = (NormalReportDataDefinition) definition;
@ -170,28 +165,23 @@ public class CategoryPlotMoreCateReportDataContentPane extends CategoryPlotRepor
}
}
}
checkAddButton();
}
public void updateBean(ChartCollection collection) {
super.updateBean(collection);
TopDefinitionProvider definition = collection.getSelectedChart().getFilterDefinition();
Plot plot = collection.getSelectedChart().getPlot();
if (definition instanceof NormalReportDataDefinition) {
NormalReportDataDefinition reportDefinition = (NormalReportDataDefinition) definition;
reportDefinition.clearMoreCate();
updateMoreCate(reportDefinition, plot);
}
}
protected void updateMoreCate(NormalReportDataDefinition reportDefinition, Plot plot) {
for (int i = 0, size = formualList.size(); i < size; i++) {
TinyFormulaPane pane = formualList.get(i);
reportDefinition.addMoreCate(canBeFormula(pane.updateBean()));
for(int i = 0, size = formualList.size(); i < size; i++) {
TinyFormulaPane pane = formualList.get(i);
reportDefinition.addMoreCate(canBeFormula(pane.updateBean()));
}
}
}
}
Loading…
Cancel
Save