Browse Source

冲突

master
neil 8 years ago
parent
commit
fc72c48776
  1. 5
      designer/src/com/fr/design/mainframe/AuthorityToolBarPane.java
  2. 5
      designer/src/com/fr/design/mainframe/FormatBrushAction.java
  3. 5
      designer/src/com/fr/grid/GridKeyListener.java
  4. 5
      designer/src/com/fr/grid/GridMouseAdapter.java
  5. 45
      designer_base/src/com/fr/design/extra/LoginWebBridge.java
  6. 365
      designer_base/src/com/fr/design/extra/PluginHelper.java
  7. 46
      designer_base/src/com/fr/design/extra/exe/PluginLoginExecutor.java
  8. 5
      designer_base/src/com/fr/design/gui/autocomplete/AutoCompletion.java
  9. 8
      designer_base/src/com/fr/design/gui/frpane/UIAdvancedTextPane.java
  10. 24
      designer_base/src/com/fr/design/gui/icombobox/ExtendedComboBox.java
  11. 33
      designer_base/src/com/fr/design/gui/icombobox/UIComboBoxUI.java
  12. 3
      designer_base/src/com/fr/design/gui/itable/TableSorter.java
  13. 4
      designer_base/src/com/fr/design/gui/itabpane/UITabsHeaderIconPane.java
  14. 7
      designer_base/src/com/fr/design/gui/itextfield/UITextField.java
  15. 95
      designer_base/src/com/fr/design/locale/designer.properties
  16. 156
      designer_base/src/com/fr/design/locale/designer_en_US.properties
  17. 2523
      designer_base/src/com/fr/design/locale/designer_ja_JP.properties
  18. 46
      designer_base/src/com/fr/design/locale/designer_ko_KR.properties
  19. 62
      designer_base/src/com/fr/design/locale/designer_zh_CN.properties
  20. 270
      designer_base/src/com/fr/design/locale/designer_zh_TW.properties
  21. 8
      designer_base/src/com/fr/design/mainframe/loghandler/DesignerLogHandler.java
  22. 423
      designer_chart/src/com/fr/design/ChartTypeInterfaceManager.java
  23. 118
      designer_form/src/com/fr/design/designer/creator/XCreatorUtils.java
  24. 18
      designer_form/src/com/fr/design/designer/properties/WidgetPropertyTable.java
  25. 4
      designer_form/src/com/fr/design/mainframe/widget/editors/DataTableConfigPane.java

5
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) {
@ -235,7 +236,7 @@ public class AuthorityToolBarPane<T extends WebContent> extends BasicBeanPane<Re
dealWithWebContent(webAttr.getWebView(), widget, isSelected, selectedRole);
}
}
}
private void dealWithWebContent(WebContent wc, Widget widget, boolean isSelected, String selectedRole) {

5
designer/src/com/fr/design/mainframe/FormatBrushAction.java

@ -12,9 +12,10 @@ import com.fr.report.elementcase.TemplateElementCase;
import javax.swing.*;
import java.awt.*;
import java.awt.event.InputEvent;
import java.awt.event.KeyEvent;
import static com.fr.design.gui.syntax.ui.rtextarea.RTADefaultInputMap.DEFAULT_MODIFIER;
/**
* Author : daisy
* Date: 13-8-7
@ -31,7 +32,7 @@ public class FormatBrushAction extends ElementCaseAction {
this.setName(Inter.getLocText("M_Edit-FormatBrush"));
this.setMnemonic('B');
this.setSmallIcon(BaseUtils.readIcon("/com/fr/design/images/m_edit/formatBrush.png"));
this.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_B, InputEvent.CTRL_MASK));
this.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_B, DEFAULT_MODIFIER));
}
public boolean executeActionReturnUndoRecordNeeded() {

5
designer/src/com/fr/grid/GridKeyListener.java

@ -1,5 +1,6 @@
package com.fr.grid;
import com.fr.common.inputevent.InputEventBaseOnOS;
import com.fr.design.mainframe.ElementCasePane;
import com.fr.grid.selection.CellSelection;
import com.fr.grid.selection.FloatSelection;
@ -66,7 +67,7 @@ public class GridKeyListener implements KeyListener {
}
// Richie:Ctrl + A全选单元格
case KeyEvent.VK_A:
if (evt.isControlDown()) {
if (InputEventBaseOnOS.isControlDown(evt)) {
reportPane.setSelection(new CellSelection(0, 0, report.getColumnCount(), report.getRowCount()));
}
isNeedRepaint = true;
@ -160,7 +161,7 @@ public class GridKeyListener implements KeyListener {
return;
}
KeyEvent newEvt = KeyEventWork.processKeyEvent(evt);
if (newEvt == null || evt.isControlDown()) {// uneditable.
if (newEvt == null || InputEventBaseOnOS.isControlDown(evt)) {// uneditable.
return;
}
char ch = evt.getKeyChar();

5
designer/src/com/fr/grid/GridMouseAdapter.java

@ -3,6 +3,7 @@ package com.fr.grid;
import com.fr.base.BaseUtils;
import com.fr.base.DynamicUnitList;
import com.fr.base.ScreenResolution;
import com.fr.common.inputevent.InputEventBaseOnOS;
import com.fr.design.constants.UIConstants;
import com.fr.design.mainframe.DesignerContext;
import com.fr.design.mainframe.ElementCasePane;
@ -164,7 +165,7 @@ public class GridMouseAdapter implements MouseListener, MouseWheelListener, Mous
ElementCasePane reportPane = grid.getElementCasePane();
TemplateElementCase report = reportPane.getEditingElementCase();
boolean isShiftDown = evt.isShiftDown();
boolean isControlDown = evt.isControlDown();
boolean isControlDown = InputEventBaseOnOS.isControlDown(evt);
int clickCount = evt.getClickCount();
// peter:需要判断是否在可移动CellSelection的区域
grid.setDragType(isMoveCellSelection(this.oldEvtX, this.oldEvtY));
@ -336,7 +337,7 @@ public class GridMouseAdapter implements MouseListener, MouseWheelListener, Mous
return;
}
boolean isControlDown = evt.isControlDown();
boolean isControlDown = InputEventBaseOnOS.isControlDown(evt);
long systemCurrentTime = System.currentTimeMillis();
if (systemCurrentTime - lastMouseMoveTime <= DRAG_REFRESH_TIME) {// alex:Drag

45
designer_base/src/com/fr/design/extra/LoginWebBridge.java

@ -8,6 +8,9 @@ import com.fr.design.extra.ucenter.XMLHelper;
import com.fr.design.gui.ilable.UILabel;
import com.fr.general.SiteCenter;
import com.fr.general.http.HttpClient;
import com.fr.json.JSONObject;
import com.fr.plugin.manage.bbs.BBSPluginLogin;
import com.fr.plugin.manage.bbs.BBSUserInfo;
import com.fr.stable.EncodeConstants;
import com.fr.stable.StringUtils;
import javafx.scene.web.WebEngine;
@ -17,6 +20,7 @@ import java.awt.*;
import java.io.UnsupportedEncodingException;
import java.net.URI;
import java.net.URLEncoder;
import java.util.HashMap;
import java.util.LinkedList;
public class LoginWebBridge {
@ -106,6 +110,9 @@ public class LoginWebBridge {
if (StringUtils.isEmpty(userName)) {
return;
}
if (StringUtils.isNotEmpty(this.userName)) {
updateMessageCount();
}
this.userName = userName;
}
@ -119,6 +126,43 @@ public class LoginWebBridge {
return client.isServerAlive();
}
/**
* 定时取后台论坛消息
*/
public void updateMessageCount() {
//启动获取消息更新的线程
//登陆状态, 根据存起来的用户名密码, 每1分钟发起一次请求, 更新消息条数.
Thread updateMessageThread = new Thread(new Runnable() {
@Override
public void run() {
sleep(CHECK_MESSAGE_TIME);
while (StringUtils.isNotEmpty(DesignerEnvManager.getEnvManager().getBBSName())) {
HashMap<String, String> para = new HashMap<>();
int uid = DesignerEnvManager.getEnvManager().getBbsUid();
para.put("uid", String.valueOf(uid));
HttpClient getMessage = new HttpClient(SiteCenter.getInstance().acquireUrlByKind("bbs.message"), para);
getMessage.asGet();
if (getMessage.isServerAlive()) {
try {
String res = getMessage.getResponseText();
if (res.equals(FAILED_MESSAGE_STATUS)) {
} else {
JSONObject jo = new JSONObject(res);
if (jo.optString("status").equals(SUCCESS_MESSAGE_STATUS)) {
setMessageCount(Integer.parseInt(jo.getString("message")));
}
}
} catch (Exception e) {
FRContext.getLogger().info(e.getMessage());
}
}
sleep(CHECK_MESSAGE_TIME);
}
}
});
updateMessageThread.start();
}
/**
* 设置获取的消息长度并设置显示
*
@ -278,6 +322,7 @@ public class LoginWebBridge {
DesignerEnvManager.getEnvManager().setBBSName(username);
DesignerEnvManager.getEnvManager().setInShowBBsName(username);
DesignerEnvManager.getEnvManager().setBBSPassword(password);
BBSPluginLogin.getInstance().login(new BBSUserInfo(username, password));
return LOGININ;//登录成功,0
} else if ($uid == -1) {
return USERNAME_NOT_EXSIT;//用户名不存在,-1

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

@ -1,365 +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.*;
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.dependence.PluginDependence;
import com.fr.plugin.dependence.PluginDependenceException;
import com.fr.plugin.dependence.PluginDependenceUnit;
import com.fr.stable.ArrayUtils;
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 invalidUser(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 (f.getName().equals("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);
}
File fileToCheck = getTempPluginFileDirectory();
File oldfile = new File(StableUtils.pathJoin(FRContext.getCurrentEnv().getPath(), ProjectConstants.PLUGINS_NAME, "plugin-" + plugin.getId()));
if (!PluginManagerHelper.checkLic(plugin, fileToCheck)) {
if (!PluginManagerHelper.checkLic(plugin, oldfile)) {//安装时,在安装目录下和压缩包里都没有才弹框
String checkLicFail = Inter.getLocText("FR-Designer-PluginLicense_Check_Failed");
FRLogger.getLogger().error(checkLicFail);
throw new com.fr.plugin.PluginVerifyException(checkLicFail);
}
}
}
/**
* 获取插件解压的临时文件夹
*
* @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 (foundConfigFile(f)) {
return f;
}
}
}
}
return null;
}
private static boolean foundConfigFile(File dir) {
if (!dir.isDirectory()) {
return false;
}
File[] files = dir.listFiles();
if (ArrayUtils.isNotEmpty(files)) {
for (File f : files) {
if ("plugin.xml".equals(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;
}

46
designer_base/src/com/fr/design/extra/exe/PluginLoginExecutor.java

@ -1,46 +0,0 @@
package com.fr.design.extra.exe;
import com.fr.design.extra.LoginWebBridge;
import com.fr.design.extra.Process;
import com.fr.design.gui.ilable.UILabel;
/**
* Created by Slpire on 2016/11/7.
*/
public class PluginLoginExecutor implements Executor {
private String result = "[]";
private String username;
private String password;
private UILabel uiLabel;
public PluginLoginExecutor(String username, String password, UILabel uiLabel) {
this.username = username;
this.password = password;
this.uiLabel = uiLabel;
}
@Override
public String getTaskFinishMessage() {
return result;
}
@Override
public Command[] getCommands() {
return new Command[] {
new Command() {
@Override
public String getExecuteMessage() {
return null;
}
@Override
public void run(Process<String> process) {
String loginResult = LoginWebBridge.getHelper().login(username, password, uiLabel);
result = loginResult;
}
}
};
}
}

5
designer_base/src/com/fr/design/gui/autocomplete/AutoCompletion.java

@ -20,6 +20,9 @@ import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.util.List;
import static com.fr.design.gui.syntax.ui.rtextarea.RTADefaultInputMap.DEFAULT_MODIFIER;
/**
* Adds auto-completion to a text component. Provides a popup window with a
* list of auto-complete choices on a given keystroke, such as Crtrl+Space.<p>
@ -307,7 +310,7 @@ public class AutoCompletion {
*/
public static KeyStroke getDefaultTriggerKey() {
// Default to CTRL, even on Mac, since Ctrl+Space activates Spotlight
return KeyStroke.getKeyStroke(KeyEvent.VK_SPACE, InputEvent.CTRL_MASK);
return KeyStroke.getKeyStroke(KeyEvent.VK_SPACE, DEFAULT_MODIFIER);
}

8
designer_base/src/com/fr/design/gui/frpane/UIAdvancedTextPane.java

@ -20,6 +20,8 @@ import com.fr.design.actions.UpdateAction;
import com.fr.design.menu.KeySetUtils;
import com.fr.general.Inter;
import static com.fr.design.gui.syntax.ui.rtextarea.RTADefaultInputMap.DEFAULT_MODIFIER;
/**
* p:这是一个增强的JTextPane,支持很多Action
*/
@ -143,7 +145,7 @@ public class UIAdvancedTextPane extends UITextPane {
setName(Inter.getLocText("M_Edit-Cut"));
setMnemonic('T');
setSmallIcon(BaseUtils.readIcon("/com/fr/design/images/m_edit/cut.png"));
setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X, KeyEvent.CTRL_MASK));
setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X, DEFAULT_MODIFIER));
}
public void actionPerformed(ActionEvent evt) {
@ -162,7 +164,7 @@ public class UIAdvancedTextPane extends UITextPane {
this.setName(Inter.getLocText("M_Edit-Copy"));
this.setMnemonic('C');
this.setSmallIcon(BaseUtils.readIcon("/com/fr/design/images/m_edit/copy.png"));
this.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C, KeyEvent.CTRL_MASK));
this.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C, DEFAULT_MODIFIER));
}
public void actionPerformed(ActionEvent evt) {
@ -181,7 +183,7 @@ public class UIAdvancedTextPane extends UITextPane {
this.setName(Inter.getLocText("M_Edit-Paste"));
this.setMnemonic('P');
this.setSmallIcon(BaseUtils.readIcon("/com/fr/design/images/m_edit/paste.png"));
this.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V, KeyEvent.CTRL_MASK));
this.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V, DEFAULT_MODIFIER));
}
public void actionPerformed(ActionEvent evt) {

24
designer_base/src/com/fr/design/gui/icombobox/ExtendedComboBox.java

@ -1,14 +1,24 @@
package com.fr.design.gui.icombobox;
import javax.swing.*;
import javax.swing.plaf.ComponentUI;
import javax.swing.plaf.basic.BasicComboPopup;
import javax.swing.plaf.basic.ComboPopup;
import java.awt.*;
import com.fr.common.inputevent.InputEventBaseOnOS;
import java.awt.Component;
import java.awt.Dimension;
import java.awt.Point;
import java.awt.Rectangle;
import java.awt.event.InputEvent;
import java.awt.event.MouseEvent;
import java.util.Vector;
import javax.swing.ComboBoxModel;
import javax.swing.JComboBox;
import javax.swing.JComponent;
import javax.swing.JList;
import javax.swing.ListCellRenderer;
import javax.swing.plaf.ComponentUI;
import javax.swing.plaf.basic.BasicComboPopup;
import javax.swing.plaf.basic.ComboPopup;
import static com.fr.design.gui.syntax.ui.rtextarea.RTADefaultInputMap.DEFAULT_MODIFIER;
@ -68,12 +78,12 @@ public class ExtendedComboBox extends UIComboBox {
protected JList createList() {
return new JList(comboBox.getModel()) {
public void processMouseEvent(MouseEvent e) {
if (e.isControlDown()) {
if (InputEventBaseOnOS.isControlDown(e)) {
// Fix for 4234053. Filter out the Control
// Key from the list.
// ie., don't allow CTRL key deselection.
e = new MouseEvent((Component) e.getSource(), e.getID(), e.getWhen(), e.getModifiers()
^ InputEvent.CTRL_MASK, e.getX(), e.getY(), e.getClickCount(), e.isPopupTrigger());
^ DEFAULT_MODIFIER, e.getX(), e.getY(), e.getClickCount(), e.isPopupTrigger());
}
super.processMouseEvent(e);
}

33
designer_base/src/com/fr/design/gui/icombobox/UIComboBoxUI.java

@ -1,20 +1,31 @@
package com.fr.design.gui.icombobox;
import java.awt.Color;
import java.awt.Component;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Point;
import java.awt.Rectangle;
import java.awt.RenderingHints;
import java.awt.event.InputEvent;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.*;
import javax.swing.plaf.basic.BasicComboBoxUI;
import javax.swing.plaf.basic.BasicComboPopup;
import javax.swing.plaf.basic.ComboPopup;
import com.fr.common.inputevent.InputEventBaseOnOS;
import com.fr.design.constants.UIConstants;
import sun.swing.DefaultLookup;
import com.fr.design.gui.ibutton.UIButton;
import com.fr.design.gui.icontainer.UIScrollPane;
import com.fr.stable.Constants;
import com.fr.stable.StringUtils;
import sun.swing.DefaultLookup;
import javax.swing.*;
import javax.swing.plaf.basic.BasicComboBoxUI;
import javax.swing.plaf.basic.BasicComboPopup;
import javax.swing.plaf.basic.ComboPopup;
import java.awt.*;
import java.awt.event.InputEvent;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import static com.fr.design.gui.syntax.ui.rtextarea.RTADefaultInputMap.DEFAULT_MODIFIER;
/**
* @author zhou F
@ -199,8 +210,8 @@ public class UIComboBoxUI extends BasicComboBoxUI implements MouseListener {
@Override
public void processMouseEvent(MouseEvent e) {
if (e.isControlDown()) {
e = new MouseEvent((Component) e.getSource(), e.getID(), e.getWhen(), e.getModifiers() ^ InputEvent.CTRL_MASK, e.getX(), e.getY(), e.getClickCount(),
if (InputEventBaseOnOS.isControlDown(e)) {
e = new MouseEvent((Component) e.getSource(), e.getID(), e.getWhen(), e.getModifiers() ^ DEFAULT_MODIFIER, e.getX(), e.getY(), e.getClickCount(),
e.isPopupTrigger());
}
super.processMouseEvent(e);

3
designer_base/src/com/fr/design/gui/itable/TableSorter.java

@ -16,6 +16,7 @@ import java.util.Map;
import javax.swing.Icon;
import com.fr.common.inputevent.InputEventBaseOnOS;
import com.fr.design.gui.ilable.UILabel;
import javax.swing.JTable;
import javax.swing.event.TableModelEvent;
@ -393,7 +394,7 @@ public class TableSorter extends AbstractTableModel {
int column = columnModel.getColumn(viewColumn).getModelIndex();
if (column != -1) {
int status = getSortingStatus(column);
if (!e.isControlDown()) {
if (!InputEventBaseOnOS.isControlDown(e)) {
cancelSorting();
}
// Cycle the sorting states through {NOT_SORTED, ASCENDING, DESCENDING} or

4
designer_base/src/com/fr/design/gui/itabpane/UITabsHeaderIconPane.java

@ -17,6 +17,8 @@ import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import static com.fr.design.gui.syntax.ui.rtextarea.RTADefaultInputMap.DEFAULT_MODIFIER;
/**
* 本来想弄个延迟加载的发现在单元格属性表那边没有意义就算了.这个面板是纯粹的没有与模板的任何交互操作(比如说populate() update())
*
@ -111,7 +113,7 @@ public class UITabsHeaderIconPane extends JPanel implements UITabComponent {
inputMapAncestor.clear();
actionMap.clear();
inputMapAncestor.put(KeyStroke.getKeyStroke(KeyEvent.VK_TAB, KeyEvent.CTRL_MASK), "switch");
inputMapAncestor.put(KeyStroke.getKeyStroke(KeyEvent.VK_TAB, DEFAULT_MODIFIER), "switch");
actionMap.put("switch", new AbstractAction() {
/**

7
designer_base/src/com/fr/design/gui/itextfield/UITextField.java

@ -1,5 +1,6 @@
package com.fr.design.gui.itextfield;
import com.fr.common.inputevent.InputEventBaseOnOS;
import com.fr.design.event.GlobalNameListener;
import com.fr.design.event.GlobalNameObserver;
import com.fr.design.event.UIObserver;
@ -27,26 +28,32 @@ public class UITextField extends JTextField implements UIObserver, GlobalNameObs
public UITextField() {
super();
InputEventBaseOnOS.addBasicEditInputMap(this);
initListener();
}
public UITextField(int columns) {
super(columns);
InputEventBaseOnOS.addBasicEditInputMap(this);
initListener();
}
public UITextField(String text, int columns) {
super(text, columns);
InputEventBaseOnOS.addBasicEditInputMap(this);
initListener();
}
public UITextField(String text) {
super(text);
InputEventBaseOnOS.addBasicEditInputMap(this);
initListener();
}
public UITextField(Document doc, String text, int columns) {
super(doc, text, columns);
InputEventBaseOnOS.addBasicEditInputMap(this);
initListener();
}

95
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=
@ -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
@ -1370,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
@ -1535,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
@ -1986,18 +1985,24 @@ FR-Designer_Role=Role
FR-Designer_Permissions=Permissions
FR-Designer_Form_Button=Button
FR-Designer_WF_Name=Name
FR-Designer_Double=Double
FR-Designer_Query=
FR-Designer_Font=Font
FR-Designer_Confirm=
FR-Designer_Parameter=
FR-Designer-Plugin_Plugin=Plugin
FR-Designer_Background=Background
Template=Template
FR-Designer_Parent_Marked_Field=Parent Marked Field
FR-Designer_Original_Marked_Filed=Original Marked Filed
FR-Designer_Build_Tree_Accord_Parent_Marked_Filed=Build Tree according parent's marked filed
FR-Designer_Build_Tree_Accord_Marked_Filed_Length=Build Tree according marked filed's length
FR-Product_Demo=Demo
FR-Designer_Tree_Data_Field=Tree Data Field
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=
<<<<<<< HEAD
FR-Designer_AlphaFine_NoResult=no results
FR-Designer_ConnectionFailed=connection failed
FR-Designer_NoResult=No results
FR-Designer-AlphaFine_SetShortcuts=

156
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,7 +68,7 @@ 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
@ -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
@ -530,7 +531,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 +618,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
@ -697,7 +698,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 +798,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 +845,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 +857,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>Real value range is \
ECP-error_pwd=Password Error
FR-Hyperlink_ChartHyperlink=Chart Hyperlink
M_Edit-FormatBrush=Format Painter
@ -948,7 +948,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 +966,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 +988,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 +1038,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 +1094,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 +1125,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 +1161,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 +1175,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 +1289,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
@ -1370,7 +1370,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
@ -1392,7 +1392,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
@ -1406,7 +1406,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
@ -1525,7 +1525,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
@ -1535,7 +1535,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
@ -1625,7 +1625,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.
@ -1757,7 +1757,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
@ -1786,7 +1786,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
@ -1797,7 +1797,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
@ -1817,7 +1817,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
@ -1826,7 +1826,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
@ -1889,12 +1889,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
@ -1940,7 +1940,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
@ -1986,19 +1986,23 @@ FR-Designer_Role=Role
FR-Designer_Permissions=Permissions
FR-Designer_Form_Button=Button
FR-Designer_WF_Name=Name
FR-Designer_Double=Decimal
FR-Designer_Query=Query
FR-Designer_Font=Font
FR-Designer_Confirm=OK
FR-Designer_Parameter=Parameter
FR-Designer-Plugin_Plugin=Plugin
FR-Designer_Background=BG
Template=Template
FR-Designer_Original_Marked_Filed=Original Tag Field
FR-Designer_Build_Tree_Accord_Marked_Filed_Length=Build tree according to tag field's length
FR-Designer_Can_not_use_FormatBursh=Can't use format painter in multiple selections
FR-Designer_Tree_Data_Field=Tree Data Field
FR-Designer_Parent_Marked_Field=Parent Tag Field
FR-Designer_Build_Tree_Accord_Parent_Marked_Filed=Build Tree according to the parent tag field of the selected data set
FR-Product_Demo=Demo
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
<<<<<<< HEAD
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

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

File diff suppressed because it is too large Load Diff

46
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
@ -445,6 +446,7 @@ FR-Designer_WLayout-Absolute-ToolTips=\uC790\uC720\uC2DD\uB808\uC774\uC544\uC6C3
FR-Designer_Add_all=\uBAA8\uB450\uCD94\uAC00
FR-Designer_Reset=
FR-Designer_Language_Change_Successful=
FR-Designer_Template_Web_Attributes=
FR-Designer_Basic=\uAE30\uBCF8
FR-Designer_Printers(Server)=\uD504\uB9B0\uD130(\uC11C\uBC84)
FR-Designer_Pagination_Setting=\uD398\uC774\uC9C0\uB098\uB204\uAE30\uBBF8\uB9AC\uBCF4\uAE30\uC124\uC815
@ -470,7 +472,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 +485,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=
@ -844,7 +846,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
@ -857,7 +858,7 @@ RP_Authority_Edit=\uAD8C\uD55C\uD3B8\uC9D1
Warnning=\uC54C\uB9BC
RoleName_Can_Not_Be_Null=\uC5ED\uD560\uC774\uB984\uC740\uBE44\uC5B4\uC788\uAC70\uB098\uC911\uBCF5\uB418\uC5B4\uC11C\uB294\uC548\uB429\uB2C8\uB2E4.
Application=\uC560\uD50C\uB9AC\uCF00\uC774\uC158
Formula_Dictionary_Display_Examples_Html=<html>\uC2E4\uC81C\uAC12\uBC94\uC704:\=0 - $$$\uFF0C<br>\uCD5C\uC885\uACB0\uACFC\uC758\uC2E4\uC81C\uAC12: 1, 2, ..., 100,\uD45C\uC2DC\uAC12: -1, -2, ... , -100. <br>&nbsp;</html>
Formula_Dictionary_Display_Examples_Html=<html>\uC2E4\uC81C\uAC12\uBC94\uC704:\
ECP-error_pwd=\uBE44\uBC00\uBC88\uD638\uC785\uB825\uC624\uB958
FR-Hyperlink_ChartHyperlink=\uCC28\uD2B8\uD558\uC774\uD37C\uB9C1\uD06C
M_Edit-FormatBrush=\uC11C\uC2DD\uD504\uB9B0\uD2B8(B)
@ -988,7 +989,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 +1039,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
@ -1406,7 +1407,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
@ -1535,7 +1536,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
@ -1981,23 +1982,4 @@ FR-Designer_Edit_String_To_Formula=\uBB38\uC790\uC5F4\uC744\uC218\uC2DD\uC73C\uB
FR-Base_UnSignIn=\uC544\uC9C1 \uB4F1\uB85D
Every=\uAC01
CellWrite-Preview_Cell_Content=\uC140\uB0B4\uC6A9\uBBF8\uB9AC\uBCF4\uAE30
FormulaD-Data_Fields=\uB370\uC774\uD130\uD56D\uBAA9
FR-Designer_Permissions=
FR-Designer_Form_Button=
FR-Designer_WF_Name=
FR-Designer_Role=
FR-Designer_Double=\uC18C\uC218
FR-Designer_Query=\uCC3E\uC544\uBCF4\uAE30
FR-Designer_Font=\uAE00\uAF34
FR-Designer_Confirm=\uD655\uC778
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
FR-Designer_Parent_Marked_Field=\uBD80\uBAA8\uD0DC\uADF8\uD544\uB4DC
FR-Designer_Build_Tree_Accord_Parent_Marked_Filed=\uC120\uD0DD\uD55C\uB370\uC774\uD130\uC138\uD2B8\uC758\uBD80\uBAA8\uD0DC\uADF8\uD544\uB4DC\uC5D0\uB530\uB77C\uD2B8\uB9AC\uC0DD\uC131
FR-Product_Demo=\uC81C\uD488\uC2DC\uC5F0
FormulaD-Data_Fields=\uB370\uC774\uD130\uD56D\uBAA9

62
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)
@ -162,7 +163,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 +358,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
@ -844,7 +845,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
@ -857,7 +857,7 @@ RP_Authority_Edit=\u6743\u9650\u7F16\u8F91
Warnning=\u63D0\u9192
RoleName_Can_Not_Be_Null=\u89D2\u8272\u540D\u4E0D\u5141\u8BB8\u4E3A\u7A7A\u4E14\u4E0D\u80FD\u91CD\u590D
Application=\u5E94\u7528\u7A0B\u5E8F
Formula_Dictionary_Display_Examples_Html=<html>\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<br>\u5219\u6700\u7EC8\u7684\u7ED3\u679C\u5B9E\u9645\u503C\u4E3A1, 2, ..., 100,\u663E\u793A\u503C\u4E3A-1, -2, ... , -100\u3002<br>&nbsp;</html>
Formula_Dictionary_Display_Examples_Html=<html>\u5B9E\u9645\u503C\u8303\u56F4\u4E3A \
ECP-error_pwd=\u5BC6\u7801\u9519\u8BEF
FR-Hyperlink_ChartHyperlink=\u56FE\u8868\u8D85\u94FE
M_Edit-FormatBrush=\u683C\u5F0F\u5237(B)
@ -988,7 +988,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 +1038,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 +1206,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
@ -1370,7 +1369,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
@ -1406,7 +1405,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
@ -1459,7 +1458,6 @@ 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
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
@ -1535,7 +1533,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
@ -1986,18 +1984,22 @@ FR-Designer_Role=\u89D2\u8272
FR-Designer_Permissions=\u6743\u9650
FR-Designer_Form_Button=\u6309\u94AE
FR-Designer_WF_Name=\u540D\u79F0
FR-Designer_Double=\u5C0F\u6570
FR-Designer_Query=\u67E5\u8BE2
FR-Designer_Font=\u5B57\u4F53
FR-Designer_Confirm=\u786E\u8BA4
FR-Designer_Parameter=\u53C2\u6570
FR-Designer-Plugin_Plugin=\u63D2\u4EF6
FR-Designer_Background=\u80CC\u666F
Template=\u6A21\u7248
FR-Designer_Original_Marked_Filed=\u539F\u59CB\u6807\u8BB0\u5B57\u6BB5
FR-Designer_Build_Tree_Accord_Marked_Filed_Length=\u4F9D\u8D56\u6240\u9009\u6570\u636E\u96C6\u7684\u6807\u8BB0\u5B57\u6BB5\u7684\u957F\u5EA6\u6784\u5EFA\u6811
FR-Designer_Tree_Data_Field=\u6811\u6570\u636E\u5B57\u6BB5
FR-Designer_Parent_Marked_Field=\u7236\u6807\u8BB0\u5B57\u6BB5
FR-Designer_Build_Tree_Accord_Parent_Marked_Filed=\u4F9D\u8D56\u6240\u9009\u6570\u636E\u96C6\u7684\u7236\u6807\u8BB0\u5B57\u6BB5\u6784\u5EFA\u6811
FR-Product_Demo=\u4EA7\u54C1\u6F14\u793A
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

270
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
@ -559,20 +560,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 +582,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 +611,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 +624,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 +638,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
@ -662,7 +663,7 @@ Email-Can_Preview_Report_Content=\u6B63\u6587\u9810\u89BD\u5831\u8868\u5167\u5BB
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 +676,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 +685,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 +715,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 +740,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 +795,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 +810,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 +833,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 +845,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
@ -857,14 +857,14 @@ RP_Authority_Edit=\u6B0A\u9650\u7DE8\u8F2F
Warnning=\u63D0\u9192
RoleName_Can_Not_Be_Null=\u89D2\u8272\u540D\u4E0D\u5141\u8A31\u70BA\u7A7A\u4E14\u4E0D\u80FD\u91CD\u8907
Application=\u61C9\u7528\u7A0B\u5F0F
Formula_Dictionary_Display_Examples_Html=<html>\u5BE6\u969B\u503C\u7BC4\u570D\u70BA \=range(100),\u5C0D\u5BE6\u969B\u503C\u7BC4\u570D\u5167\u7684\u6BCF\u500B$$$\u7684\u986F\u793A\u516C\u5F0F\u70BA \=0 - $$$\uFF0C<br>\u5247\u6700\u7D42\u7684\u7D50\u679C\u5BE6\u969B\u503C\u70BA1, 2, ..., 100,\u986F\u793A\u503C\u70BA-1, -2, ... , -100\u3002<br>&nbsp;</html>
Formula_Dictionary_Display_Examples_Html=
ECP-error_pwd=\u5BC6\u78BC\u932F\u8AA4
FR-Hyperlink_ChartHyperlink=\u5716\u8868\u8D85\u93C8
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 +880,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 +888,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 +961,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 +972,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 +981,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 +1002,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 +1017,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 +1038,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 +1047,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 +1057,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 +1067,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 +1124,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 +1132,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 +1162,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 +1206,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 +1227,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 +1236,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 +1257,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 +1286,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 +1317,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 +1333,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
@ -1347,17 +1347,17 @@ ReportColumns-Columns_vertically=\u6B04\u5206\u6B04
ReportGUI-Print_Background=\u5217\u5370/\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
M-New_FormBook=\u5EFA\u7ACB\u65B0\u5831\u8868
Widget-TreeNode=\u6A39\u7BC0\u9EDE\u6309\u9215
Form-Url=\u5730\u5740
Utils-Beyond_the_left_side_of_Border=\u8D85\u51FA\u5DE6\u908A\u754C
@ -1369,10 +1369,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
@ -1406,7 +1406,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
@ -1459,7 +1459,7 @@ 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
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
@ -1509,7 +1509,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
@ -1535,7 +1535,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
@ -1565,7 +1565,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
@ -1582,7 +1582,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
@ -1593,7 +1593,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
@ -1613,14 +1613,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
@ -1632,10 +1632,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
@ -1657,9 +1657,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
@ -1713,7 +1713,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
@ -1735,7 +1735,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
@ -1812,7 +1812,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
@ -1822,13 +1822,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
@ -1847,7 +1847,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
@ -1857,17 +1857,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
@ -1875,14 +1875,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
@ -1915,7 +1915,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
@ -1924,11 +1924,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
@ -1986,19 +1986,21 @@ FR-Designer_Role=\u89D2\u8272
FR-Designer_Permissions=\u6B0A\u9650
FR-Designer_Form_Button=\u6309\u9215
FR-Designer_WF_Name=\u540D\u7A31
FR-Designer_Double=\u5C0F\u6578
FR-Designer_Query=\u67E5\u8A62
FR-Designer_Font=\u5B57\u9AD4
FR-Designer_Confirm=\u78BA\u8A8D
FR-Designer_Parameter=\u53C3\u6578
FR-Designer-Plugin_Plugin=\u63D2\u4EF6
FR-Designer_Background=\u586B\u6EFF\u8272\u5F69
Template=\u7BC4\u672C
FR-Designer_Original_Marked_Filed=\u539F\u59CB\u6A19\u8A18\u6B04\u4F4D
FR-Designer_Build_Tree_Accord_Marked_Filed_Length=\u4F9D\u8CF4\u6240\u9078\u8CC7\u6599\u96C6\u7684\u6A19\u8A18\u6B04\u4F4D\u7684\u9577\u5EA6\u69CB\u5EFA\u6A39\u72C0
FR-Designer_Can_not_use_FormatBursh=\u7121\u6CD5\u4F7F\u7528\u8907\u88FD\u683C\u5F0F
FR-Designer_Tree_Data_Field=\u6A39\u72C0\u8CC7\u6599\u6B04\u4F4D
FR-Designer_Parent_Marked_Field=\u7236\u6A19\u8A18\u6B04\u4F4D
FR-Designer_Build_Tree_Accord_Parent_Marked_Filed=\u4F9D\u8CF4\u6240\u9078\u8CC7\u6599\u96C6\u7684\u7236\u6A19\u8A18\u6B04\u4F4D\u69CB\u5EFA\u6A39
FR-Product_Demo=\u529F\u80FD\u5C55\u793A
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

8
designer_base/src/com/fr/design/mainframe/loghandler/DesignerLogHandler.java

@ -13,7 +13,10 @@ import com.fr.general.LogRecordTime;
import com.fr.stable.xml.LogRecordTimeProvider;
import javax.swing.*;
import javax.swing.text.*;
import javax.swing.text.BadLocationException;
import javax.swing.text.Document;
import javax.swing.text.SimpleAttributeSet;
import javax.swing.text.StyleConstants;
import java.awt.*;
import java.awt.event.*;
import java.text.SimpleDateFormat;
@ -130,6 +133,7 @@ public class DesignerLogHandler {
private LogHandlerArea() {
jTextArea = new JTextPane();
this.setLayout(FRGUIPaneFactory.createBorderLayout());
UIScrollPane js = new UIScrollPane(jTextArea);
this.add(js, BorderLayout.CENTER);
@ -293,4 +297,6 @@ public class DesignerLogHandler {
};
}
}

423
designer_chart/src/com/fr/design/ChartTypeInterfaceManager.java

@ -11,141 +11,132 @@ import com.fr.design.chart.fun.IndependentChartUIProvider;
import com.fr.design.chart.gui.ChartWidgetOption;
import com.fr.design.chartinterface.*;
import com.fr.design.condition.ConditionAttributesPane;
import com.fr.design.extra.ChartTypeInterfaceCloseableHandler;
import com.fr.design.gui.core.WidgetOption;
import com.fr.design.gui.frpane.AttributeChangeListener;
import com.fr.design.mainframe.chart.AbstractChartAttrPane;
import com.fr.design.mainframe.chart.ChartEditPane;
import com.fr.design.mainframe.chart.ChartsConfigPane;
import com.fr.design.mainframe.chart.gui.ChartDataPane;
import com.fr.design.mainframe.chart.gui.ChartStylePane;
import com.fr.design.mainframe.chart.gui.data.report.AbstractReportDataContentPane;
import com.fr.design.mainframe.chart.gui.data.table.AbstractTableDataContentPane;
import com.fr.design.module.DesignModuleFactory;
import com.fr.file.XMLFileManager;
import com.fr.form.ui.ChartEditor;
import com.fr.general.FRLogger;
import com.fr.general.GeneralContext;
import com.fr.general.IOUtils;
import com.fr.general.Inter;
import com.fr.plugin.PluginCollector;
import com.fr.plugin.PluginLicenseManager;
import com.fr.plugin.PluginMessage;
import com.fr.plugin.proxy.PluginInstanceProxyFactory;
import com.fr.plugin.proxy.PluginInvocationHandler;
import com.fr.plugin.context.PluginContext;
import com.fr.plugin.injectable.PluginModule;
import com.fr.plugin.injectable.PluginSingleInjection;
import com.fr.plugin.manage.PluginFilter;
import com.fr.plugin.observer.PluginEvent;
import com.fr.plugin.observer.PluginEventListener;
import com.fr.stable.ArrayUtils;
import com.fr.stable.EnvChangedListener;
import com.fr.stable.StringUtils;
import com.fr.stable.collections.map.CloseableContainedMap;
import com.fr.stable.fun.Authorize;
import com.fr.stable.bridge.StableFactory;
import com.fr.plugin.solution.closeable.CloseableContainedMap;
import com.fr.stable.plugin.ExtraChartDesignClassManagerProvider;
import com.fr.stable.plugin.PluginReadListener;
import com.fr.stable.plugin.PluginSimplify;
import com.fr.stable.plugin.closeable.Closeable;
import com.fr.stable.xml.XMLPrintWriter;
import com.fr.stable.xml.XMLableReader;
import javax.swing.*;
import java.util.*;
/**
* Created by eason on 14/12/29.
* Created by eason on 14/12/29.
*/
public class ChartTypeInterfaceManager extends XMLFileManager implements ExtraChartDesignClassManagerProvider {
private static ClassLoader loader = Thread.currentThread().getContextClassLoader();
private static ChartTypeInterfaceManager classManager = null;
public class ChartTypeInterfaceManager implements ExtraChartDesignClassManagerProvider {
private static ChartTypeInterfaceManager classManager = new ChartTypeInterfaceManager();
private static LinkedHashMap<String, CloseableContainedMap<String, IndependentChartUIProvider, LinkedHashMap>> chartTypeInterfaces =
new LinkedHashMap<>();
new LinkedHashMap<String, CloseableContainedMap<String, IndependentChartUIProvider, LinkedHashMap>>();
public synchronized static ChartTypeInterfaceManager getInstance() {
if (classManager == null) {
classManager = new ChartTypeInterfaceManager();
chartTypeInterfaces.clear();
classManager.readDefault();
}
return classManager;
}
static {
GeneralContext.addEnvChangedListener(new EnvChangedListener() {
public void envChanged() {
ChartTypeInterfaceManager.envChanged();
}
});
readDefault();
StableFactory.registerMarkedObject(XML_TAG, classManager);
}
static {
GeneralContext.addPluginReadListener(new PluginReadListener() {
GeneralContext.listenPluginRunningChanged(new PluginEventListener() {
@Override
public void success(Status status) {
public void on(PluginEvent event) {
//重新注册designModuleFactory
DesignModuleFactory.registerExtraWidgetOptions(initWidgetOption());
}
}, new PluginFilter() {
@Override
public boolean accept(PluginContext context) {
return context.contain(PluginModule.ExtraChartType);
}
});
}
public static WidgetOption[] initWidgetOption(){
private static WidgetOption[] initWidgetOption() {
ChartInternationalNameContentBean[] typeName = ChartTypeManager.getInstance().getAllChartBaseNames();
ChartWidgetOption[] child = new ChartWidgetOption[typeName.length];
final Chart[][] allCharts = new Chart[typeName.length][];
for (int i = 0; i < typeName.length; i++) {
String plotID = typeName[i].getPlotID();
Chart[] rowChart = ChartTypeManager.getInstance().getChartTypes(plotID);
if(ArrayUtils.isEmpty(rowChart)) {
if (ArrayUtils.isEmpty(rowChart)) {
continue;
}
String iconPath = ChartTypeInterfaceManager.getInstance().getIconPath(plotID);
Icon icon = IOUtils.readIcon(iconPath);
child[i] = new ChartWidgetOption(Inter.getLocText(typeName[i].getName()), icon, ChartEditor.class, rowChart[0]);
allCharts[i] = rowChart;
}
//异步加载图片
new Thread(new Runnable() {
@Override
public void run() {
initAllChartsDemoImage(allCharts);
}
}).start();
return child;
}
//加载所有图表图片
private static void initAllChartsDemoImage(Chart[][] allCharts){
for (int i = 0; i < allCharts.length; i++) {
Chart[] rowChart = allCharts[i];
if(rowChart == null) {
private static void initAllChartsDemoImage(Chart[][] allCharts) {
for (Chart[] rowChart : allCharts) {
if (rowChart == null) {
continue;
}
//加载初始化图表模型图片
initChartsDemoImage(rowChart);
}
}
private static void initChartsDemoImage(Chart[] rowChart) {
int rowChartsCount = rowChart.length;
for (int j = 0; j < rowChartsCount; j++) {
for (Chart aRowChart : rowChart) {
//此时,为图片生成模型数据
rowChart[j].createSlotImage();
aRowChart.createSlotImage();
}
}
private synchronized static void envChanged() {
classManager = null;
}
private static void readDefault() {
if (chartTypeInterfaces.containsKey(ChartTypeManager.CHART_PRIORITY)){
if (chartTypeInterfaces.containsKey(ChartTypeManager.CHART_PRIORITY)) {
return;
}
CloseableContainedMap<String, IndependentChartUIProvider, LinkedHashMap> chartUIList =
new CloseableContainedMap<>(LinkedHashMap.class);
new CloseableContainedMap<String, IndependentChartUIProvider, LinkedHashMap>(LinkedHashMap.class);
chartUIList.put(ChartConstants.COLUMN_CHART, new ColumnIndependentChartInterface());
chartUIList.put(ChartConstants.LINE_CHART, new LineIndependentChartInterface());
chartUIList.put(ChartConstants.BAR_CHART, new BarIndependentChartInterface());
@ -163,16 +154,16 @@ public class ChartTypeInterfaceManager extends XMLFileManager implements ExtraCh
chartUIList.put(ChartConstants.MAP_CHART, new MapIndependentChartInterface());
chartUIList.put(ChartConstants.GIS_CHAER, new GisMapIndependentChartInterface());
chartUIList.put(ChartConstants.FUNNEL_CHART, new FunnelIndependentChartInterface());
chartTypeInterfaces.put(ChartTypeManager.CHART_PRIORITY, chartUIList);
}
public String getIconPath(String plotID) {
if (chartTypeInterfaces != null) {
Iterator iterator = chartTypeInterfaces.entrySet().iterator();
while (iterator.hasNext()) {
Map.Entry entry = (Map.Entry) iterator.next();
String priority = (String) entry.getKey();
for (Map.Entry<String, CloseableContainedMap<String, IndependentChartUIProvider, LinkedHashMap>> entry : chartTypeInterfaces.entrySet()) {
String priority = entry.getKey();
String imagePath = getIconPath(priority, plotID);
if (StringUtils.isNotEmpty(imagePath)) {
return imagePath;
@ -181,25 +172,26 @@ public class ChartTypeInterfaceManager extends XMLFileManager implements ExtraCh
}
return StringUtils.EMPTY;
}
private String getIconPath(String priority, String plotID) {
if (chartTypeInterfaces.get(priority) != null && chartTypeInterfaces.get(priority).get(plotID) != null) {
return chartTypeInterfaces.get(priority).get(plotID).getIconPath();
}else {
} else {
return StringUtils.EMPTY;
}
}
public static void addChartTypeInterface(IndependentChartUIProvider provider, String priority, String plotID) {
if (chartTypeInterfaces != null){
if (!chartTypeInterfaces.containsKey(priority)){
private static void addChartTypeInterface(IndependentChartUIProvider provider, String priority, String plotID) {
if (chartTypeInterfaces != null) {
if (!chartTypeInterfaces.containsKey(priority)) {
//新建一个具体图表列表
CloseableContainedMap<String, IndependentChartUIProvider, LinkedHashMap> chartUIList
= new CloseableContainedMap<>(LinkedHashMap.class);
= new CloseableContainedMap<String, IndependentChartUIProvider, LinkedHashMap>(LinkedHashMap.class);
chartUIList.put(plotID, provider);
chartTypeInterfaces.put(priority, chartUIList);
}else {
} else {
Map<String, IndependentChartUIProvider> chartUIList = chartTypeInterfaces.get(priority);
if (!chartUIList.containsKey(plotID)) {
chartUIList.put(plotID, provider);
@ -207,54 +199,18 @@ public class ChartTypeInterfaceManager extends XMLFileManager implements ExtraCh
}
}
}
/**
* 增加界面接口定义
*
* @param className 类名
* @param plotID 标志ID
*/
public void addChartInterface(String className, String priority, String plotID, PluginSimplify simplify) {
if (StringUtils.isNotBlank(className)) {
try {
Class<?> clazz = Class.forName(className);
Authorize authorize = clazz.getAnnotation(Authorize.class);
if (authorize != null) {
PluginLicenseManager.getInstance().registerPaid(authorize, simplify);
}
IndependentChartUIProvider provider = getProxyObj(plotID, simplify, clazz);
if (PluginCollector.getCollector().isError(provider, IndependentChartUIProvider.CURRENT_API_LEVEL, simplify.getPluginName())) {
PluginMessage.remindUpdate(className);
} else {
addChartTypeInterface(provider, priority, plotID);
}
} catch (ClassNotFoundException e) {
FRLogger.getLogger().error("class not found:" + e.getMessage());
} catch (IllegalAccessException | InstantiationException e) {
FRLogger.getLogger().error("object create error:" + e.getMessage());
} catch (NoSuchMethodException e) {
FRLogger.getLogger().error(e.getMessage());
}
}
}
private IndependentChartUIProvider getProxyObj(String plotID, PluginSimplify simplify, Class<?> clazz) throws IllegalAccessException, InstantiationException, NoSuchMethodException {
PluginInstanceProxyFactory factory = new PluginInstanceProxyFactory(clazz, simplify);
PluginInvocationHandler handler = new ChartTypeInterfaceCloseableHandler(plotID);
return (IndependentChartUIProvider) factory.addProxy(Closeable.class, handler).getProxyObj();
}
/**
* 把所有的pane加到list里
*
* @param paneList pane容器
*/
public void addPlotTypePaneList(List<FurtherBasicBeanPane<? extends Chart>> paneList) {
List<Integer> priorityList = getPriorityInOrder();
for (int i = 0; i < priorityList.size(); i++){
String priority = String.valueOf(priorityList.get(i));
for (Integer aPriorityList : priorityList) {
String priority = String.valueOf(aPriorityList);
Iterator chartUIIterator = chartTypeInterfaces.get(priority).entrySet().iterator();
while (chartUIIterator.hasNext()) {
Map.Entry chartUIEntry = (Map.Entry) chartUIIterator.next();
@ -263,9 +219,10 @@ public class ChartTypeInterfaceManager extends XMLFileManager implements ExtraCh
}
}
}
public String[] getTitle4PopupWindow(String priority){
if (priority.isEmpty()){
public String[] getTitle4PopupWindow(String priority) {
if (priority.isEmpty()) {
return getTitle4PopupWindow();
}
String[] names = new String[getChartSize(priority)];
@ -273,7 +230,7 @@ public class ChartTypeInterfaceManager extends XMLFileManager implements ExtraCh
Map<String, IndependentChartUIProvider> chartUIList = chartTypeInterfaces.get(priority);
Iterator iterator = chartUIList.entrySet().iterator();
int i = 0;
while (iterator.hasNext()){
while (iterator.hasNext()) {
Map.Entry entry = (Map.Entry) iterator.next();
IndependentChartUIProvider provider = (IndependentChartUIProvider) entry.getValue();
names[i++] = provider.getPlotTypeTitle4PopupWindow();
@ -282,19 +239,17 @@ public class ChartTypeInterfaceManager extends XMLFileManager implements ExtraCh
}
return new String[0];
}
/**
* 获取指定图表的标题
* @param priority
* @return
*/
public String getTitle4PopupWindow(String priority, String plotID){
public String getTitle4PopupWindow(String priority, String plotID) {
if (chartTypeInterfaces != null && chartTypeInterfaces.containsKey(priority) && chartTypeInterfaces.get(priority).containsKey(plotID)) {
IndependentChartUIProvider provider = chartTypeInterfaces.get(priority).get(plotID);
return provider.getPlotTypeTitle4PopupWindow();
}
//兼容老的插件
if (chartTypeInterfaces != null) {
Iterator iterator = chartTypeInterfaces.entrySet().iterator();
@ -306,34 +261,36 @@ public class ChartTypeInterfaceManager extends XMLFileManager implements ExtraCh
}
}
}
return new String();
return StringUtils.EMPTY;
}
private String[] getTitle4PopupWindow(){
private String[] getTitle4PopupWindow() {
List<Integer> priorityList = getPriorityInOrder();
if (priorityList.size() == 0){
if (priorityList.size() == 0) {
return new String[0];
}
int size = 0;
//获取总得图表格式
for (int i = 0; i < priorityList.size(); i++) {
size += getChartSize(String.valueOf(priorityList.get(i)));
for (Integer aPriorityList : priorityList) {
size += getChartSize(String.valueOf(aPriorityList));
}
String[] names = new String[size];
int index = 0;
for (int i = 0; i < priorityList.size(); i++){
String priority = String.valueOf(priorityList.get(i));
for (Integer aPriorityList : priorityList) {
String priority = String.valueOf(aPriorityList);
Iterator chartUI = chartTypeInterfaces.get(priority).entrySet().iterator();
index = fetchNames(chartUI, names, index);
}
return names;
}
private List<Integer> getPriorityInOrder() {
List<Integer> priorityList = new ArrayList<Integer>();
if (chartTypeInterfaces != null) {
Iterator iterator = chartTypeInterfaces.entrySet().iterator();
@ -345,8 +302,9 @@ public class ChartTypeInterfaceManager extends XMLFileManager implements ExtraCh
}
return ChartTypeManager.orderInPriority(priorityList);
}
private int fetchNames(Iterator chartUI, String[] names, int index) {
while (chartUI.hasNext()) {
Map.Entry chartUIEntry = (Map.Entry) chartUI.next();
IndependentChartUIProvider provider = (IndependentChartUIProvider) chartUIEntry.getValue();
@ -354,10 +312,11 @@ public class ChartTypeInterfaceManager extends XMLFileManager implements ExtraCh
}
return index;
}
public ChartDataPane getChartDataPane(String plotID, AttributeChangeListener listener) {
Iterator iterator = chartTypeInterfaces.entrySet().iterator();
while (iterator.hasNext()){
while (iterator.hasNext()) {
Map.Entry entry = (Map.Entry) iterator.next();
String priority = (String) entry.getKey();
if (plotInChart(plotID, priority)) {
@ -366,26 +325,28 @@ public class ChartTypeInterfaceManager extends XMLFileManager implements ExtraCh
}
return getChartDataPane(ChartTypeManager.CHART_PRIORITY, plotID, listener);
}
private ChartDataPane getChartDataPane(String priority, String plotID, AttributeChangeListener listener) {
return chartTypeInterfaces.get(priority).get(plotID).getChartDataPane(listener);
}
/**
* 获取对应ID的图表数量
* @param key
* @return
*
*/
private int getChartSize(String key){
if (chartTypeInterfaces != null && chartTypeInterfaces.containsKey(key)){
private int getChartSize(String key) {
if (chartTypeInterfaces != null && chartTypeInterfaces.containsKey(key)) {
return chartTypeInterfaces.get(key).size();
}
return 0;
}
public AbstractChartAttrPane[] getAttrPaneArray(String plotID, AttributeChangeListener listener) {
Iterator iterator = chartTypeInterfaces.entrySet().iterator();
while (iterator.hasNext()){
while (iterator.hasNext()) {
Map.Entry entry = (Map.Entry) iterator.next();
String priority = (String) entry.getKey();
if (plotInChart(plotID, priority)) {
@ -394,14 +355,16 @@ public class ChartTypeInterfaceManager extends XMLFileManager implements ExtraCh
}
return getAttrPaneArray(ChartTypeManager.CHART_PRIORITY, plotID, listener);
}
private AbstractChartAttrPane[] getAttrPaneArray(String priority, String plotID, AttributeChangeListener listener) {
return chartTypeInterfaces.get(priority).get(plotID).getAttrPaneArray(listener);
}
public AbstractTableDataContentPane getTableDataSourcePane(Plot plot, ChartDataPane parent) {
Iterator iterator = chartTypeInterfaces.entrySet().iterator();
while (iterator.hasNext()){
while (iterator.hasNext()) {
Map.Entry entry = (Map.Entry) iterator.next();
String priority = (String) entry.getKey();
if (plotInChart(plot.getPlotID(), priority)) {
@ -410,48 +373,17 @@ public class ChartTypeInterfaceManager extends XMLFileManager implements ExtraCh
}
return getTableDataSourcePane(ChartTypeManager.CHART_PRIORITY, plot, parent);
}
private AbstractTableDataContentPane getTableDataSourcePane(String priority, Plot plot, ChartDataPane parent) {
return chartTypeInterfaces.get(priority).get(plot.getPlotID()).getTableDataSourcePane(plot, parent);
}
//获取指定图表的编辑面板
public ChartEditPane getChartEditPane(String plotID) {
Iterator iterator = chartTypeInterfaces.entrySet().iterator();
while (iterator.hasNext()) {
Map.Entry entry = (Map.Entry) iterator.next();
String priority = (String) entry.getKey();
if (plotInChart(plotID, priority)) {
return getChartEditPane(priority, plotID);
}
}
return getChartEditPane(ChartTypeManager.CHART_PRIORITY, plotID);
}
private ChartEditPane getChartEditPane(String priority, String plotID) {
return chartTypeInterfaces.get(priority).get(plotID).getChartEditPane(plotID);
}
public ChartsConfigPane getChartConfigPane(String plotID) {
Iterator iterator = chartTypeInterfaces.entrySet().iterator();
while (iterator.hasNext()) {
Map.Entry entry = (Map.Entry) iterator.next();
String priority = (String) entry.getKey();
if (plotInChart(plotID, priority)) {
return getChartConfigPane(priority, plotID);
}
}
return getChartConfigPane(ChartTypeManager.CHART_PRIORITY, plotID);
}
private ChartsConfigPane getChartConfigPane(String priority, String plotID) {
return chartTypeInterfaces.get(priority).get(plotID).getChartConfigPane(plotID);
}
public AbstractReportDataContentPane getReportDataSourcePane(Plot plot, ChartDataPane parent) {
Iterator iterator = chartTypeInterfaces.entrySet().iterator();
while (iterator.hasNext()){
while (iterator.hasNext()) {
Map.Entry entry = (Map.Entry) iterator.next();
String priority = (String) entry.getKey();
String plotID = plot.getPlotID();
@ -461,21 +393,24 @@ public class ChartTypeInterfaceManager extends XMLFileManager implements ExtraCh
}
return getReportDataSourcePane(ChartTypeManager.CHART_PRIORITY, plot, parent);
}
private boolean plotInChart(String plotID, String priority) {
return chartTypeInterfaces != null
&& chartTypeInterfaces.containsKey(priority)
&& chartTypeInterfaces.containsKey(priority)
&& chartTypeInterfaces.get(priority).containsKey(plotID);
}
private AbstractReportDataContentPane getReportDataSourcePane(String priority, Plot plot, ChartDataPane parent) {
return chartTypeInterfaces.get(priority).get(plot.getPlotID()).getReportDataSourcePane(plot, parent);
}
public ConditionAttributesPane getPlotConditionPane(Plot plot) {
Iterator iterator = chartTypeInterfaces.entrySet().iterator();
while (iterator.hasNext()){
while (iterator.hasNext()) {
Map.Entry entry = (Map.Entry) iterator.next();
String priority = (String) entry.getKey();
if (plotInChart(plot.getPlotID(), priority)) {
@ -484,15 +419,17 @@ public class ChartTypeInterfaceManager extends XMLFileManager implements ExtraCh
}
return getPlotConditionPane(ChartTypeManager.CHART_PRIORITY, plot);
}
private ConditionAttributesPane getPlotConditionPane(String priority, Plot plot) {
return chartTypeInterfaces.get(priority).get(plot.getPlotID()).getPlotConditionPane(plot);
}
public BasicBeanPane<Plot> getPlotSeriesPane(ChartStylePane parent, Plot plot) {
Iterator iterator = chartTypeInterfaces.entrySet().iterator();
while (iterator.hasNext()){
while (iterator.hasNext()) {
Map.Entry entry = (Map.Entry) iterator.next();
String priority = (String) entry.getKey();
if (plotInChart(plot.getPlotID(), priority)) {
@ -501,11 +438,12 @@ public class ChartTypeInterfaceManager extends XMLFileManager implements ExtraCh
}
return getPlotSeriesPane(ChartTypeManager.CHART_PRIORITY, parent, plot);
}
private BasicBeanPane<Plot> getPlotSeriesPane(String priority, ChartStylePane parent, Plot plot) {
return chartTypeInterfaces.get(priority).get(plot.getPlotID()).getPlotSeriesPane(parent, plot);
}
/**
* 是否使用默认的界面为了避免界面来回切换
*
@ -513,55 +451,60 @@ public class ChartTypeInterfaceManager extends XMLFileManager implements ExtraCh
* @return 是否使用默认的界面
*/
public boolean isUseDefaultPane(String plotID) {
Iterator iterator = chartTypeInterfaces.entrySet().iterator();
while (iterator.hasNext()){
while (iterator.hasNext()) {
Map.Entry entry = (Map.Entry) iterator.next();
String priority = (String) entry.getKey();
if (chartTypeInterfaces.get(priority).containsKey(plotID)) {
return isUseDefaultPane(priority, plotID);
}
}
return true;
}
private boolean isUseDefaultPane(String priority, String plotID) {
if (chartTypeInterfaces.containsKey(priority) && chartTypeInterfaces.get(priority).containsKey(plotID)) {
return chartTypeInterfaces.get(priority).get(plotID).isUseDefaultPane();
}
return true;
return !(chartTypeInterfaces.containsKey(priority) && chartTypeInterfaces.get(priority).containsKey(plotID)) || chartTypeInterfaces.get(priority).get(plotID).isUseDefaultPane();
}
public void readXML(XMLableReader reader) {
readXML(reader, null, PluginSimplify.NULL);
@Override
public void mount(PluginSingleInjection injection) {
if (isIndependentChartUIProvider(injection)) {
String priority = injection.getAttribute("priority");
String plotID = injection.getAttribute("plotID");
IndependentChartUIProvider instance = (IndependentChartUIProvider) injection.getObject();
addChartTypeInterface(instance, priority, plotID);
}
}
@Override
public void readXML(XMLableReader reader, List<String> extraChartDesignInterfaceList, PluginSimplify simplify) {
if (reader.isChildNode()) {
String tagName = reader.getTagName();
if (extraChartDesignInterfaceList != null) {
extraChartDesignInterfaceList.add(tagName);
}
if (IndependentChartUIProvider.XML_TAG.equals(tagName)) {
addChartInterface(reader.getAttrAsString("class", ""), reader.getAttrAsString("priority", ChartTypeManager.CHART_PRIORITY),reader.getAttrAsString("plotID", ""), simplify);
}
public void demount(PluginSingleInjection injection) {
if (isIndependentChartUIProvider(injection)) {
String priority = injection.getAttribute("priority");
String plotID = injection.getAttribute("plotID");
removeChartTypeInterface(priority, plotID);
}
}
/**
* 文件名
*
* @return 文件名
*/
public String fileName() {
return "chart.xml";
private void removeChartTypeInterface(String priority, String plotID) {
if (chartTypeInterfaces != null) {
if (chartTypeInterfaces.containsKey(priority)) {
Map<String, IndependentChartUIProvider> chartUIList = chartTypeInterfaces.get(priority);
chartUIList.remove(plotID);
}
}
}
@Override
public void writeXML(XMLPrintWriter writer) {
private boolean isIndependentChartUIProvider(PluginSingleInjection injection) {
return !(injection == null || injection.getObject() == null) && IndependentChartUIProvider.XML_TAG.equals(injection.getName()) && injection.getObject() instanceof IndependentChartUIProvider;
}
}

118
designer_form/src/com/fr/design/designer/creator/XCreatorUtils.java

@ -5,13 +5,9 @@ package com.fr.design.designer.creator;
import com.fr.base.FRContext;
import com.fr.design.ExtraDesignClassManager;
import com.fr.design.designer.creator.cardlayout.XCardAddButton;
import com.fr.design.designer.creator.cardlayout.XCardSwitchButton;
import com.fr.design.designer.creator.cardlayout.XWCardLayout;
import com.fr.design.designer.creator.cardlayout.XWCardMainBorderLayout;
import com.fr.design.designer.creator.cardlayout.XWCardTagLayout;
import com.fr.design.designer.creator.cardlayout.XWCardTitleLayout;
import com.fr.design.designer.creator.cardlayout.XWTabFitLayout;
import com.fr.design.designer.creator.cardlayout.*;
import com.fr.design.fun.FormWidgetOptionProvider;
import com.fr.design.fun.ParameterWidgetOptionProvider;
import com.fr.design.module.DesignModuleFactory;
import com.fr.design.utils.gui.LayoutUtils;
import com.fr.form.parameter.FormSubmitButton;
@ -24,7 +20,13 @@ import com.fr.form.ui.container.cardlayout.WCardMainBorderLayout;
import com.fr.form.ui.container.cardlayout.WCardTagLayout;
import com.fr.form.ui.container.cardlayout.WCardTitleLayout;
import com.fr.form.ui.container.cardlayout.WTabFitLayout;
import com.fr.general.GeneralContext;
import com.fr.general.IOUtils;
import com.fr.plugin.context.PluginContext;
import com.fr.plugin.injectable.PluginModule;
import com.fr.plugin.manage.PluginFilter;
import com.fr.plugin.observer.PluginEvent;
import com.fr.plugin.observer.PluginEventListener;
import com.fr.stable.StringUtils;
import javax.swing.*;
@ -38,11 +40,66 @@ import java.lang.reflect.Constructor;
* @since 6.5.3
*/
public class XCreatorUtils {
public static java.util.Map<Class<? extends Widget>, Class<?>> objectMap = new java.util.HashMap<Class<? extends Widget>, Class<?>>();
private static java.util.Map<Class<? extends Widget>, Class<?>> extraObjectMap = new java.util.HashMap<Class<? extends Widget>, Class<?>>();
public static java.util.Map<Class<? extends Widget>, Class<?>> xLayoutMap = new java.util.HashMap<Class<? extends Widget>, Class<?>>();
static {
init();
GeneralContext.listenPluginRunningChanged(new PluginEventListener() {
@Override
public void on(PluginEvent event) {
reInitExtra();
}
}, new PluginFilter() {
@Override
public boolean accept(PluginContext context) {
return context.contain(PluginModule.ExtraDesign, ParameterWidgetOptionProvider.XML_TAG)
|| context.contain(PluginModule.ExtraDesign, FormWidgetOptionProvider.XML_TAG);
}
});
}
private static void init() {
putDefault();
putExtraEditor();
putDefaultLayouts();
reInitExtra();
}
private static void putDefaultLayouts() {
xLayoutMap.put(WAbsoluteLayout.class, XWAbsoluteLayout.class);
xLayoutMap.put(WParameterLayout.class, XWParameterLayout.class);
xLayoutMap.put(WAbsoluteBodyLayout.class, XWAbsoluteBodyLayout.class);
xLayoutMap.put(WAbsoluteLayout.class, XWAbsoluteLayout.class);
xLayoutMap.put(WHorizontalBoxLayout.class, XWHorizontalBoxLayout.class);
xLayoutMap.put(WBorderLayout.class, XWBorderLayout.class);
xLayoutMap.put(WCardLayout.class, XWCardLayout.class);
xLayoutMap.put(WVerticalBoxLayout.class, XWVerticalBoxLayout.class);
xLayoutMap.put(WHorizontalSplitLayout.class, XWHorizontalSplitLayout.class);
xLayoutMap.put(WVerticalSplitLayout.class, XWVerticalSplitLayout.class);
xLayoutMap.put(WGridLayout.class, XWGridLayout.class);
xLayoutMap.put(WFitLayout.class, XWFitLayout.class);
xLayoutMap.put(WScaleLayout.class, XWScaleLayout.class);
xLayoutMap.put(WTitleLayout.class, XWTitleLayout.class);
xLayoutMap.put(WCardTagLayout.class, XWCardTagLayout.class);
xLayoutMap.put(WCardTitleLayout.class, XWCardTitleLayout.class);
xLayoutMap.put(WTabFitLayout.class, XWTabFitLayout.class);
xLayoutMap.put(WCardMainBorderLayout.class, XWCardMainBorderLayout.class);
}
private static void putDefault() {
objectMap.put(TextEditor.class, XTextEditor.class);
objectMap.put(TextArea.class, XTextArea.class);
objectMap.put(NumberEditor.class, XNumberEditor.class);
@ -73,43 +130,28 @@ public class XCreatorUtils {
objectMap.put(NameWidget.class, XNameWidget.class);
objectMap.put(CardSwitchButton.class, XCardSwitchButton.class);
objectMap.put(CardAddButton.class, XCardAddButton.class);
objectMap.put(ErrorMarker.class, ErrorCreator.class);
putExtraEditor();
xLayoutMap.put(WAbsoluteLayout.class, XWAbsoluteLayout.class);
xLayoutMap.put(WParameterLayout.class, XWParameterLayout.class);
xLayoutMap.put(WAbsoluteBodyLayout.class, XWAbsoluteBodyLayout.class);
xLayoutMap.put(WAbsoluteLayout.class, XWAbsoluteLayout.class);
xLayoutMap.put(WHorizontalBoxLayout.class, XWHorizontalBoxLayout.class);
xLayoutMap.put(WBorderLayout.class, XWBorderLayout.class);
xLayoutMap.put(WCardLayout.class, XWCardLayout.class);
xLayoutMap.put(WVerticalBoxLayout.class, XWVerticalBoxLayout.class);
xLayoutMap.put(WHorizontalSplitLayout.class, XWHorizontalSplitLayout.class);
xLayoutMap.put(WVerticalSplitLayout.class, XWVerticalSplitLayout.class);
xLayoutMap.put(WGridLayout.class, XWGridLayout.class);
xLayoutMap.put(WFitLayout.class, XWFitLayout.class);
xLayoutMap.put(WScaleLayout.class, XWScaleLayout.class);
xLayoutMap.put(WTitleLayout.class, XWTitleLayout.class);
xLayoutMap.put(WCardTagLayout.class, XWCardTagLayout.class);
xLayoutMap.put(WCardTitleLayout.class, XWCardTitleLayout.class);
xLayoutMap.put(WTabFitLayout.class, XWTabFitLayout.class);
xLayoutMap.put(WCardMainBorderLayout.class, XWCardMainBorderLayout.class);
objectMap.putAll(ExtraDesignClassManager.getInstance().getParameterWidgetOptionsMap());
objectMap.putAll(ExtraDesignClassManager.getInstance().getFormWidgetOptionsMap());
}
private static void reInitExtra() {
extraObjectMap.clear();
extraObjectMap.putAll(ExtraDesignClassManager.getInstance().getParameterWidgetOptionsMap());
extraObjectMap.putAll(ExtraDesignClassManager.getInstance().getFormWidgetOptionsMap());
}
private static void putExtraEditor() {
if (DesignModuleFactory.getChartEditorClass() != null) {
objectMap.put(DesignModuleFactory.getChartEditorClass(), XChartEditor.class);
}
}
@SuppressWarnings("unchecked")
private static Class<? extends XCreator> searchXCreatorClass(Class<? extends Widget> clazz) {
Class<? extends XCreator> xClazz = (Class<? extends XCreator>) objectMap.get(clazz);
if (xClazz == null) {
xClazz = (Class<? extends XCreator>) extraObjectMap.get(clazz);
}
if (xClazz == null) {
xClazz = (Class<? extends XCreator>) xLayoutMap.get(clazz);
}

18
designer_form/src/com/fr/design/designer/properties/WidgetPropertyTable.java

@ -26,13 +26,13 @@ import com.fr.general.ComparatorUtils;
public class WidgetPropertyTable extends AbstractPropertyTable {
private FormDesigner designer;
private static final int LEFT_COLUMN_WIDTH = 97; // "属性名"列的宽度
private static final int LEFT_COLUMN_WIDTH = 97; // "属性名"列的宽度
public WidgetPropertyTable(FormDesigner designer) {
super();
setDesigner(designer);
}
public static ArrayList<PropertyGroup> getCreatorPropertyGroup(FormDesigner designer, XCreator source) {
ArrayList<PropertyGroup> groups = new ArrayList<PropertyGroup>();
ComponentAdapter adapter = AdapterBus.getComponentAdapter(designer, source);
@ -85,7 +85,7 @@ public class WidgetPropertyTable extends AbstractPropertyTable {
}
TableModel model = new BeanTableModel();
setModel(model);
this.setAutoResizeMode(JTable.AUTO_RESIZE_LAST_COLUMN);
this.setAutoResizeMode(JTable.AUTO_RESIZE_LAST_COLUMN);
TableColumn tc = this.getColumn(this.getColumnName(0));
tc.setMinWidth(LEFT_COLUMN_WIDTH);
tc.setMaxWidth(LEFT_COLUMN_WIDTH);
@ -93,13 +93,13 @@ public class WidgetPropertyTable extends AbstractPropertyTable {
this.repaint();
}
private void setRightColumnWidth(boolean automode) {
private void setRightColumnWidth(boolean automode) {
int rightColumnWidth = this.getWidth() - LEFT_COLUMN_WIDTH;
TableColumn tcRight = this.getColumn(this.getColumnName(1));
tcRight.setMinWidth(automode ? 0 : rightColumnWidth);
tcRight.setMaxWidth(automode ? this.getWidth() : rightColumnWidth);
}
private void setDesigner(FormDesigner designer) {
this.designer = designer;
}
@ -107,8 +107,8 @@ public class WidgetPropertyTable extends AbstractPropertyTable {
/**
* 单元格tooltip
* 属性名悬浮提示
*
* 属性名悬浮提示
*
* @param 鼠标点击事件
* @return 单元格tooltip
*/
@ -121,7 +121,7 @@ public class WidgetPropertyTable extends AbstractPropertyTable {
return null;
}
@Override
@Override
public void columnMarginChanged(javax.swing.event.ChangeEvent e) {
setRightColumnWidth(false);
super.columnMarginChanged(e);
@ -134,4 +134,4 @@ public class WidgetPropertyTable extends AbstractPropertyTable {
public void firePropertyEdit() {
designer.getEditListenerTable().fireCreatorModified(DesignerEvent.CREATOR_EDITED);
}
}
}

4
designer_form/src/com/fr/design/mainframe/widget/editors/DataTableConfigPane.java

@ -21,6 +21,8 @@ import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.util.ArrayList;
import static com.fr.design.gui.syntax.ui.rtextarea.RTADefaultInputMap.DEFAULT_MODIFIER;
public class DataTableConfigPane extends JComponent implements PropertyChangeListener {
private DataEditingTable table;
@ -185,7 +187,7 @@ public class DataTableConfigPane extends JComponent implements PropertyChangeLis
this.setName(Inter.getLocText("M_Edit-Cut"));
this.setMnemonic('T');
this.setSmallIcon(BaseUtils.readIcon("/com/fr/design/images/m_edit/cut.png"));
this.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X, KeyEvent.CTRL_MASK));
this.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X, DEFAULT_MODIFIER));
}
@Override

Loading…
Cancel
Save