From 1fac2c6a378facec90de207c6579d9f2e1bf04c7 Mon Sep 17 00:00:00 2001 From: plough Date: Fri, 31 Mar 2017 15:39:25 +0800 Subject: [PATCH 01/72] =?UTF-8?q?REPORT-1916=20=E6=A8=A1=E6=9D=BF=E8=80=97?= =?UTF-8?q?=E6=97=B6=3D=E3=80=8B=E8=A7=A3=E5=86=B3=E5=B8=A6=E5=8F=82?= =?UTF-8?q?=E6=95=B0=E8=A1=A8=E5=8D=95=E6=97=A0=E6=B3=95=E4=BF=9D=E5=AD=98?= =?UTF-8?q?=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fr/design/mainframe/templateinfo/JFormProcessInfo.java | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/designer_base/src/com/fr/design/mainframe/templateinfo/JFormProcessInfo.java b/designer_base/src/com/fr/design/mainframe/templateinfo/JFormProcessInfo.java index 4fa5169290..d4a5bbf7a9 100644 --- a/designer_base/src/com/fr/design/mainframe/templateinfo/JFormProcessInfo.java +++ b/designer_base/src/com/fr/design/mainframe/templateinfo/JFormProcessInfo.java @@ -2,6 +2,7 @@ package com.fr.design.mainframe.templateinfo; import com.fr.form.main.Form; import com.fr.form.ui.container.WFitLayout; +import com.fr.form.ui.container.WLayout; /** * Created by plough on 2017/3/17. @@ -32,11 +33,9 @@ public class JFormProcessInfo extends TemplateProcessInfo
{ public int getWidgetCount() { int widgetCount = 0; for (int i = 0; i < template.getContainer().getWidgetCount(); i++) { - WFitLayout wf = (WFitLayout) template.getContainer().getWidget(i); - widgetCount += wf.getWidgetCount(); + WLayout wl = (WLayout) template.getContainer().getWidget(i); + widgetCount += wl.getWidgetCount(); } - int a = 1; - int b = 2; return widgetCount; } } From 78fc5760fdc97de6c35c7ced9a3e3f8640035f80 Mon Sep 17 00:00:00 2001 From: plough Date: Fri, 31 Mar 2017 15:41:25 +0800 Subject: [PATCH 02/72] =?UTF-8?q?=E8=B0=83=E6=95=B4=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/fr/design/mainframe/templateinfo/JFormProcessInfo.java | 1 - 1 file changed, 1 deletion(-) diff --git a/designer_base/src/com/fr/design/mainframe/templateinfo/JFormProcessInfo.java b/designer_base/src/com/fr/design/mainframe/templateinfo/JFormProcessInfo.java index d4a5bbf7a9..15f501b138 100644 --- a/designer_base/src/com/fr/design/mainframe/templateinfo/JFormProcessInfo.java +++ b/designer_base/src/com/fr/design/mainframe/templateinfo/JFormProcessInfo.java @@ -1,7 +1,6 @@ package com.fr.design.mainframe.templateinfo; import com.fr.form.main.Form; -import com.fr.form.ui.container.WFitLayout; import com.fr.form.ui.container.WLayout; /** From 7d57afb46e8f044d14898287d3d600cd78d71b60 Mon Sep 17 00:00:00 2001 From: "yaoh.wu" Date: Sat, 1 Apr 2017 20:57:39 +0800 Subject: [PATCH 03/72] =?UTF-8?q?report-1945=20frm=E7=BB=84=E4=BB=B6?= =?UTF-8?q?=E5=A4=8D=E7=94=A8=E7=BB=9D=E5=AF=B9=E5=B8=83=E5=B1=80bug?= =?UTF-8?q?=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../layout/FRAbsoluteLayoutAdapter.java | 11 +- .../adapters/layout/FRFitLayoutAdapter.java | 2 +- .../designer/beans/models/AddingModel.java | 272 +++--- .../designer/beans/models/SelectionModel.java | 17 +- .../designer/beans/models/StateModel.java | 920 +++++++++--------- .../designer/creator/XLayoutContainer.java | 435 +++++---- .../creator/cardlayout/XWCardTagLayout.java | 338 ++++--- .../mainframe/FormCreatorDropTarget.java | 17 +- .../com/fr/design/mainframe/FormDesigner.java | 6 + .../design/mainframe/FormSelectionUtils.java | 70 +- 10 files changed, 1059 insertions(+), 1029 deletions(-) diff --git a/designer_form/src/com/fr/design/designer/beans/adapters/layout/FRAbsoluteLayoutAdapter.java b/designer_form/src/com/fr/design/designer/beans/adapters/layout/FRAbsoluteLayoutAdapter.java index b8a8e8ad19..603626e13d 100644 --- a/designer_form/src/com/fr/design/designer/beans/adapters/layout/FRAbsoluteLayoutAdapter.java +++ b/designer_form/src/com/fr/design/designer/beans/adapters/layout/FRAbsoluteLayoutAdapter.java @@ -283,7 +283,6 @@ public class FRAbsoluteLayoutAdapter extends FRBodyLayoutAdapter { } else if (isCrossPointArea(parentComp, x, y)) { //交叉区域插入组件时,根据具体位置进行上下或者左右或者相邻三个组件的位置大小插入 fixCrossPointArea(parentComp, child, x, y); - //TODO 尽量不要出现这种写法吧?if else条件要么互斥,要么多个if判断return,不要在一条if else语句里面return吧? return; } else if (isTrisectionArea(parentComp, x, y)) { // 在边界三等分区域,就不再和组件二等分了 @@ -320,17 +319,15 @@ public class FRAbsoluteLayoutAdapter extends FRBodyLayoutAdapter { int height = creator.getHeight(); int width = creator.getWidth(); if (x < 0) { - width += x; - x = 0; + x = container.getX(); } else if (x + creator.getWidth() > container.getWidth()) { - width = container.getWidth() - x; + x = container.getWidth() - width; } if (y < 0) { - height += y; - y = 0; + y = container.getY(); } else if (y + creator.getHeight() > container.getHeight()) { - height = container.getHeight() - y; + y = container.getHeight() - height; } creator.setBounds(x, y, width, height); diff --git a/designer_form/src/com/fr/design/designer/beans/adapters/layout/FRFitLayoutAdapter.java b/designer_form/src/com/fr/design/designer/beans/adapters/layout/FRFitLayoutAdapter.java index e31ee6a5d3..eca82e5022 100644 --- a/designer_form/src/com/fr/design/designer/beans/adapters/layout/FRFitLayoutAdapter.java +++ b/designer_form/src/com/fr/design/designer/beans/adapters/layout/FRFitLayoutAdapter.java @@ -133,7 +133,7 @@ public class FRFitLayoutAdapter extends FRBodyLayoutAdapter { isFindRelatedComps = false; //拖入组件判断时,先判断是否为交叉点区域,其次三等分区域,再次平分区域 Component comp = container.getComponentAt(x, y); - if (checkInterval(comp)) { + if (comp == null || checkInterval(comp)) { return false; } //如果当前处于边缘地带, 那么就把他贴到父容器上 diff --git a/designer_form/src/com/fr/design/designer/beans/models/AddingModel.java b/designer_form/src/com/fr/design/designer/beans/models/AddingModel.java index 46798f4d9a..9d308b9d4b 100644 --- a/designer_form/src/com/fr/design/designer/beans/models/AddingModel.java +++ b/designer_form/src/com/fr/design/designer/beans/models/AddingModel.java @@ -1,133 +1,141 @@ -package com.fr.design.designer.beans.models; - -import java.awt.Rectangle; - -import com.fr.design.designer.creator.XWAbsoluteLayout; -import com.fr.design.mainframe.FormDesigner; -import com.fr.design.designer.beans.AdapterBus; -import com.fr.design.designer.beans.ComponentAdapter; -import com.fr.design.designer.beans.adapters.component.CompositeComponentAdapter; -import com.fr.design.designer.creator.XCreator; -import com.fr.design.designer.creator.XLayoutContainer; -import com.fr.design.designer.creator.XWParameterLayout; -import com.fr.design.utils.ComponentUtils; -import com.fr.general.ComparatorUtils; - -/** - * 添加状态下的model - */ -public class AddingModel { - - // 当前要添加的组件 - private XCreator creator; - // 记录当前鼠标的位置信息 - private int current_x; - private int current_y; - private boolean added; - - public AddingModel(FormDesigner designer, XCreator xCreator) { - String creatorName = getXCreatorName(designer, xCreator); - this.creator = xCreator; - instantiateCreator(designer, creatorName); - // 初始的时候隐藏该组件的图标 - current_x = -this.creator.getWidth(); - current_y = -this.creator.getHeight(); - } - - /** - * 待说明 - * @param designer 设计器 - * @param creatorName 组件名 - */ - public void instantiateCreator(FormDesigner designer, String creatorName) { - creator.toData().setWidgetName(creatorName); - ComponentAdapter adapter = new CompositeComponentAdapter(designer, creator); - adapter.initialize(); - creator.addNotify(); - creator.putClientProperty(AdapterBus.CLIENT_PROPERTIES, adapter); - } - - public AddingModel(XCreator xCreator, int x, int y) { - this.creator = xCreator; - this.creator.backupCurrentSize(); - this.creator.backupParent(); - this.creator.setSize(xCreator.initEditorSize()); - current_x = x - (xCreator.getWidth() / 2); - current_y = y - (xCreator.getHeight() / 2); - } - - /** - * 隐藏当前组件的图标 - */ - public void reset() { - current_x = -this.creator.getWidth(); - current_y = -this.creator.getHeight(); - } - - public String getXCreatorName(FormDesigner designer,XCreator x){ - String def= x.createDefaultName(); - if (x.acceptType(XWParameterLayout.class)) { - return def; - } - int i = 0; - while (designer.getTarget().isNameExist(def + i)) { - i++; - } - return def+i; - } - - public int getCurrentX() { - return current_x; - } - - public int getCurrentY() { - return current_y; - } - - - /** - * 移动组件图标到鼠标事件发生的位置 - * @param x 坐标 - * @param y 坐标 - */ - public void moveTo(int x, int y) { - current_x = x - (this.creator.getWidth() / 2); - current_y = y - (this.creator.getHeight() / 2); - } - - public XCreator getXCreator() { - return this.creator; - } - - /** - * 当前组件是否已经添加到某个容器中 - * @return 是返回true - */ - public boolean isCreatorAdded() { - return added; - } - - /** - * 加入容器 - * @param designer 设计器 - * @param container 容器 - * @param x 坐标 - * @param y 坐标 - * @return 成功返回true - */ - public boolean add2Container(FormDesigner designer, XLayoutContainer container, int x, int y) { - //考虑不同布局嵌套的情况,获取顶层容器 - XLayoutContainer xLayoutContainer = container.getTopLayout(); - if(xLayoutContainer != null && xLayoutContainer.acceptType(XWAbsoluteLayout.class)){ - container = xLayoutContainer; - } - - Rectangle rect = ComponentUtils.getRelativeBounds(container); - if(!ComparatorUtils.equals(container.getOuterLayout(), container.getBackupParent())){ - return added = container.getLayoutAdapter().addBean(creator, x + designer.getArea().getHorizontalValue(), y + designer.getArea().getVerticalValue()); - } - return added = container.getLayoutAdapter().addBean(creator, - x + designer.getArea().getHorizontalValue() - rect.x, - y + designer.getArea().getVerticalValue() - rect.y); - } +package com.fr.design.designer.beans.models; + +import java.awt.Rectangle; + +import com.fr.design.designer.creator.XWAbsoluteLayout; +import com.fr.design.mainframe.FormDesigner; +import com.fr.design.designer.beans.AdapterBus; +import com.fr.design.designer.beans.ComponentAdapter; +import com.fr.design.designer.beans.adapters.component.CompositeComponentAdapter; +import com.fr.design.designer.creator.XCreator; +import com.fr.design.designer.creator.XLayoutContainer; +import com.fr.design.designer.creator.XWParameterLayout; +import com.fr.design.utils.ComponentUtils; +import com.fr.general.ComparatorUtils; + +/** + * 添加状态下的model + */ +public class AddingModel { + + // 当前要添加的组件 + private XCreator creator; + // 记录当前鼠标的位置信息 + private int currentX; + private int currentY; + private boolean added; + + public AddingModel(FormDesigner designer, XCreator xCreator) { + String creatorName = getXCreatorName(designer, xCreator); + this.creator = xCreator; + instantiateCreator(designer, creatorName); + // 初始的时候隐藏该组件的图标 + currentY = -this.creator.getWidth(); + currentX = -this.creator.getHeight(); + } + + /** + * 待说明 + * + * @param designer 设计器 + * @param creatorName 组件名 + */ + public void instantiateCreator(FormDesigner designer, String creatorName) { + creator.toData().setWidgetName(creatorName); + ComponentAdapter adapter = new CompositeComponentAdapter(designer, creator); + adapter.initialize(); + creator.addNotify(); + creator.putClientProperty(AdapterBus.CLIENT_PROPERTIES, adapter); + } + + public AddingModel(XCreator xCreator, int x, int y) { + this.creator = xCreator; + this.creator.backupCurrentSize(); + this.creator.backupParent(); + this.creator.setSize(xCreator.initEditorSize()); + currentX = x - (xCreator.getWidth() / 2); + currentY = y - (xCreator.getHeight() / 2); + } + + /** + * 隐藏当前组件的图标 + */ + public void reset() { + currentX = -this.creator.getWidth(); + currentY = -this.creator.getHeight(); + } + + public String getXCreatorName(FormDesigner designer, XCreator x) { + String def = x.createDefaultName(); + if (x.acceptType(XWParameterLayout.class)) { + return def; + } + int i = 0; + while (designer.getTarget().isNameExist(def + i)) { + i++; + } + return def + i; + } + + public int getCurrentX() { + return currentX; + } + + public int getCurrentY() { + return currentY; + } + + + /** + * 移动组件图标到鼠标事件发生的位置 + * + * @param x 坐标 + * @param y 坐标 + */ + public void moveTo(int x, int y) { + currentX = x - (this.creator.getWidth() / 2); + currentY = y - (this.creator.getHeight() / 2); + } + + public XCreator getXCreator() { + return this.creator; + } + + /** + * 当前组件是否已经添加到某个容器中 + * + * @return 是返回true + */ + public boolean isCreatorAdded() { + return added; + } + + /** + * 加入容器 + * + * @param designer 设计器 + * @param container 容器 + * @param x 坐标 + * @param y 坐标 + * @return 成功返回true + */ + public boolean add2Container(FormDesigner designer, XLayoutContainer container, int x, int y) { + //考虑不同布局嵌套的情况,获取顶层容器 + XLayoutContainer xLayoutContainer = container.getTopLayout(); + if (xLayoutContainer != null && xLayoutContainer.acceptType(XWAbsoluteLayout.class)) { + container = xLayoutContainer; + } + + Rectangle rect = ComponentUtils.getRelativeBounds(container); + if (!ComparatorUtils.equals(container.getOuterLayout(), container.getBackupParent())) { + added = container.getLayoutAdapter().addBean(creator, + x + designer.getArea().getHorizontalValue(), + y + designer.getArea().getVerticalValue()); + return added; + } + added = container.getLayoutAdapter().addBean(creator, + x + designer.getArea().getHorizontalValue() - rect.x, + y + designer.getArea().getVerticalValue() - rect.y); + return added; + } } \ No newline at end of file diff --git a/designer_form/src/com/fr/design/designer/beans/models/SelectionModel.java b/designer_form/src/com/fr/design/designer/beans/models/SelectionModel.java index c364317f1a..1748fef4bd 100644 --- a/designer_form/src/com/fr/design/designer/beans/models/SelectionModel.java +++ b/designer_form/src/com/fr/design/designer/beans/models/SelectionModel.java @@ -111,7 +111,7 @@ public class SelectionModel { */ public boolean pasteFromClipBoard() { if (!clipboard.isEmpty()) { - if (!hasSelectionComponent()) { + if (!hasSelectedPasteSource()) { //未选 unselectedPaste(); } else { @@ -275,7 +275,7 @@ public class SelectionModel { * 但是编辑窗口的最外层其实是表层@see {@link com.fr.design.designer.creator.XWAbsoluteBodyLayout}, * 其他两层不是靠添加组件就可以编辑的。 */ - public boolean hasSelectionComponent() { + public boolean hasSelectedPasteSource() { XCreator selectionXCreator = selection.getSelectedCreator(); if (designer.getClass().equals(FormDesigner.class)) { //frm本地组件复用 @@ -286,10 +286,12 @@ public class SelectionModel { || selectionXCreator.getClass().equals(XWTabFitLayout.class); //选中的是否是frm绝对布局编辑器本身 boolean absoluteEditor = selectionXCreator.getClass().equals(XWAbsoluteBodyLayout.class); + //选中是否是frm绝对画布块编辑器本身 + boolean absoluteCanvas = selectionXCreator.getClass().equals(XWAbsoluteLayout.class); //选中的是否是相对布局编辑器本身 boolean relativeEditor = selectionXCreator.getClass().equals(XWFitLayout.class); - return !(tabEditor || absoluteEditor || relativeEditor); + return !(tabEditor || absoluteEditor || absoluteCanvas || relativeEditor); } else { return false; } @@ -299,6 +301,15 @@ public class SelectionModel { } } + /** + * 是否有组件被选择。如果所选组件是最底层容器,也视为无选择 + * + * @return 是则返回true + */ + public boolean hasSelectionComponent() { + return !selection.isEmpty() && selection.getSelectedCreator().getParent() != null; + } + /** * 移动组件至指定位置 * diff --git a/designer_form/src/com/fr/design/designer/beans/models/StateModel.java b/designer_form/src/com/fr/design/designer/beans/models/StateModel.java index a623caddcf..ff3fcbedcd 100644 --- a/designer_form/src/com/fr/design/designer/beans/models/StateModel.java +++ b/designer_form/src/com/fr/design/designer/beans/models/StateModel.java @@ -1,446 +1,476 @@ -package com.fr.design.designer.beans.models; - -import java.awt.Component; -import java.awt.Cursor; -import java.awt.Graphics; -import java.awt.Point; -import java.awt.Rectangle; -import java.awt.Toolkit; -import java.awt.event.MouseEvent; -import java.util.ArrayList; - -import com.fr.design.beans.location.Absorptionline; -import com.fr.design.mainframe.FormDesigner; -import com.fr.design.mainframe.FormSelectionUtils; -import com.fr.design.designer.beans.AdapterBus; -import com.fr.design.designer.beans.HoverPainter; -import com.fr.design.designer.beans.LayoutAdapter; -import com.fr.design.designer.beans.events.DesignerEvent; -import com.fr.design.designer.beans.location.Direction; -import com.fr.design.designer.beans.location.Location; -import com.fr.design.designer.creator.XConnector; -import com.fr.design.designer.creator.XCreator; -import com.fr.design.designer.creator.XCreatorUtils; -import com.fr.design.designer.creator.XLayoutContainer; -import com.fr.design.designer.creator.XWAbsoluteLayout; -import com.fr.design.utils.ComponentUtils; - -/** - * 普通模式下的状态model - */ -public class StateModel { - // 对应的selection model - - private SelectionModel selectionModel; - // 当前鼠标进入拖拽区域的位置类型 - private Direction driection; - - // 当前拖拽的起始位置 - private int current_x; - private int current_y; - - private Point startPoint = new Point(); - private Point currentPoint = new Point(); - - private Absorptionline lineInX; - private Absorptionline lineInY; - //等距线 - private Absorptionline lineEquidistant; - - // 当前是否处于拖拽选择状态 - private boolean selecting; - private boolean dragging; - - private boolean addable; - - private FormDesigner designer; - - public StateModel(FormDesigner designer) { - this.designer = designer; - selectionModel = designer.getSelectionModel(); - } - - /** - * 返回direction - * @return direction方向 - */ - public Direction getDirection() { - return driection; - } - - /** - * 是否有组件正被选中 - * - * @return true 如果至少一个组件被选中 - */ - public boolean isSelecting() { - return selecting; - } - - /** - *是否能拖拽 - * @return 非outer且选中为空 - */ - public boolean dragable() { - return ((driection != Location.outer) && !selecting); - } - - /** - * 拖拽中是否可以转换为添加模式: - * 如果拖拽组件只有一个,鼠标当前所在位置的最底层表单容器与这个组件的容器不同; - * 如果拖拽组件为多个,鼠标当前所在位置的最底层表单容器除了要求要跟这些组件的容器不同外,还必须是绝对定位布局 - */ - private void checkAddable(MouseEvent e) { - addable = false; - designer.setPainter(null); - - if (driection != Location.inner) { - return; - } - - XCreator comp = designer.getComponentAt(e.getX(), e.getY(), selectionModel.getSelection().getSelectedCreators()); - XLayoutContainer container = XCreatorUtils.getHotspotContainer(comp); - XCreator creator = selectionModel.getSelection().getSelectedCreator(); - Component creatorContainer = XCreatorUtils.getParentXLayoutContainer(creator); - if (creatorContainer != null && creatorContainer != container - && (selectionModel.getSelection().size() == 1 || container instanceof XWAbsoluteLayout)) { - HoverPainter painter = AdapterBus.getContainerPainter(designer, container); - designer.setPainter(painter); - if (painter != null) { - Rectangle rect = ComponentUtils.getRelativeBounds(container); - rect.x -= designer.getArea().getHorizontalValue(); - rect.y -= designer.getArea().getVerticalValue(); - painter.setRenderingBounds(rect); - painter.setHotspot(new Point(e.getX(), e.getY())); - painter.setCreator(creator); - } - addable = true; - } - } - - private boolean addBean(XLayoutContainer container, int x, int y) { - LayoutAdapter adapter = container.getLayoutAdapter(); - Rectangle r = ComponentUtils.getRelativeBounds(container); - if (selectionModel.getSelection().size() == 1) { - return adapter.addBean(selectionModel.getSelection().getSelectedCreator(), x - + designer.getArea().getHorizontalValue() - r.x, y + designer.getArea().getVerticalValue() - r.y); - } - for (XCreator creator : selectionModel.getSelection().getSelectedCreators()) { - adapter.addBean(creator, x + designer.getArea().getHorizontalValue() - r.x, y + designer.getArea().getVerticalValue()- r.y); - } - return true; - } - - private void adding(int x, int y) { - // 当前鼠标所在的组件 - XCreator hoveredComponent = designer.getComponentAt(x, y, selectionModel.getSelection().getSelectedCreators()); - - // 获取该组件所在的焦点容器 - XLayoutContainer container = XCreatorUtils.getHotspotContainer(hoveredComponent); - - boolean success = false; - - if (container != null) { - // 如果是容器,则调用其acceptComponent接受组件 - success = addBean(container, x, y); - } - - if (success) { - FormSelectionUtils.rebuildSelection(designer); - designer.getEditListenerTable().fireCreatorModified( - selectionModel.getSelection().getSelectedCreator(), DesignerEvent.CREATOR_ADDED); - } else { - Toolkit.getDefaultToolkit().beep(); - } - - // 取消提示 - designer.setPainter(null); - } - - /** - *是否拖拽 - * @return dragging状态 - */ - public boolean isDragging() { - return dragging; - } - - /** - *是否可以开始画线 - * @return startPoint不为空返回true - */ - public boolean prepareForDrawLining() { - return startPoint != null; - } - - /** - *设置开始位置 - * @param p point位置 - */ - public void setStartPoint(Point p) { - this.startPoint = p; - } - - /** - *返回开始位置 - * @return 点位置 - */ - public Point getStartPoint() { - return startPoint; - } - - /** - *返回当前点位置 - * @return 点位置 - */ - public Point getEndPoint() { - return currentPoint; - } - - /** - *当前选中组件 - * @param e 鼠标事件 - */ - public void startSelecting(MouseEvent e) { - selecting = true; - selectionModel.setHotspotBounds(new Rectangle()); - current_x = getMouseXY(e).x; - current_y = getMouseXY(e).y; - } - - /** - *当前鼠标的xy - * @param e 鼠标事件 - */ - public void startResizing(MouseEvent e) { - if (!selectionModel.getSelection().isEmpty()) { - driection.backupBounds(designer); - } - current_x = getMouseXY(e).x; - current_y = getMouseXY(e).y; - } - - /** - *起始点开始DrawLine - * @param p 点位置 - */ - public void startDrawLine(Point p) { - this.startPoint = p; - if(p != null) { - try { - designer.setCursor(XConnector.connectorCursor); - } catch (Exception e) { - } - } else { - designer.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR)); - } - } - - /** - *鼠标释放时所在的区域及圈中的组件 - * @param e 鼠标事件 - */ - public void selectCreators(MouseEvent e) { - int x = getMouseXY(e).x; - int y = getMouseXY(e).y; - - Rectangle bounds = createCurrentBounds(x, y); - - if ((x != current_x) || (y != current_y)) { - selectionModel.setSelectedCreators(getHotspotCreators(bounds, designer.getRootComponent())); - } - selectionModel.setHotspotBounds(null); - } - - /** - *画所在区域线 - * @param e 鼠标事件 - */ - public void drawLine(MouseEvent e) { - designer.getDrawLineHelper().setDrawLine(true); - Point p = designer.getDrawLineHelper().getNearWidgetPoint(e); - if (p != null) { - currentPoint = p; - } else { - currentPoint.x = e.getX() + designer.getArea().getHorizontalValue(); - currentPoint.y = e.getY() + designer.getArea().getVerticalValue(); - } - } - - private Rectangle createCurrentBounds(int x, int y) { - Rectangle bounds = new Rectangle(); - - bounds.x = Math.min(x, current_x); - bounds.y = Math.min(y, current_y); - bounds.width = Math.max(x, current_x) - bounds.x; - bounds.height = Math.max(y, current_y) - bounds.y; - - return bounds; - } - - private ArrayList getHotspotCreators(Rectangle selection, XCreator root) { - ArrayList creators = new ArrayList(); - - if (!root.isVisible() && !designer.isRoot(root)) { - return creators; - } - - if (root instanceof XLayoutContainer) { - XLayoutContainer container = (XLayoutContainer) root; - int count = container.getXCreatorCount(); - Rectangle clipped = new Rectangle(selection); - - for (int i = count - 1; i >= 0; i--) { - XCreator child = container.getXCreator(i); - - if (selection.contains(child.getBounds())) { - creators.add(child); - } else { - clipped.x = selection.x - child.getX(); - clipped.y = selection.y - child.getY(); - creators.addAll(getHotspotCreators(clipped, child)); - } - } - } - - return creators; - } - - - /** - *重置model - */ - public void resetModel() { - dragging = false; - selecting = false; - } - - /** - *重置 - */ - public void reset() { - driection = Location.outer; - dragging = false; - selecting = false; - } - - /** - *取消拖拽 - */ - public void draggingCancel() { - designer.repaint(); - reset(); - } - - /** - *设置可拉伸方向 - * @param dir 拉伸方向 - */ - public void setDirection(Direction dir) { - if(driection != dir) { - this.driection = dir; - driection.updateCursor(designer); - } - } - - /** - *x吸附线赋值 - * @param line 线 - */ - public void setXAbsorptionline(Absorptionline line) { - this.lineInX = line; - } - - /** - *y吸附线赋值 - * @param line 线 - */ - public void setYAbsorptionline(Absorptionline line) { - this.lineInY = line; - } - - /** - * 等距线赋值 - * @param line 线 - */ - public void setEquidistantLine(Absorptionline line){ - this.lineEquidistant = line; - } - - /** - *画吸附线 - * @param g Graphics类 - */ - public void paintAbsorptionline(Graphics g) { - if(lineInX != null) { - lineInX.paint(g,designer.getArea()); - } - if(lineInY != null) { - lineInY.paint(g,designer.getArea()); - } - if(lineEquidistant != null){ - lineEquidistant.paint(g,designer.getArea()); - } - } - - /** - *拖拽 - * @param e 鼠标事件 - */ - public void dragging(MouseEvent e) { - checkAddable(e); - setDependLinePainter(e); - driection.drag(getMouseXY(e).x-current_x, getMouseXY(e).y-current_y, designer); - this.dragging = true; - } - - // 拖拽时画依附线用到的painter - private void setDependLinePainter(MouseEvent e){ - XCreator comp = designer.getComponentAt(e.getX(), e.getY(), selectionModel.getSelection().getSelectedCreators()); - XLayoutContainer container = XCreatorUtils.getHotspotContainer(comp); - XCreator creator = selectionModel.getSelection().getSelectedCreator(); - HoverPainter painter = AdapterBus.getContainerPainter(designer, container); - designer.setPainter(painter); - if (painter != null) { - painter.setHotspot(new Point(e.getX(), e.getY())); - painter.setCreator(creator); - } - } - - /** - *释放捕获 - * @param e 鼠标事件 - */ - public void releaseDragging(MouseEvent e) { - this.dragging = false; - if (addable) { - adding(e.getX(), e.getY()); - } else if (!selectionModel.getSelection().isEmpty()) { - selectionModel.releaseDragging(); - } - designer.repaint(); - } - - /** - *改变选择区域 - * - * @param e 鼠标事件 - */ - public void changeSelection(MouseEvent e) { - Rectangle bounds = createCurrentBounds(getMouseXY(e).x, getMouseXY(e).y); - selectionModel.setHotspotBounds(bounds); - } - - /** - *返回鼠标所在的x、y 考虑滚动条的值 - * - * @param e 鼠标事件 - * @return xy值 - */ - public Point getMouseXY(MouseEvent e) { - Point p1 = new Point(e.getX() + designer.getArea().getHorizontalValue(), e.getY() - + designer.getArea().getVerticalValue()); - return p1; - } - +package com.fr.design.designer.beans.models; + +import com.fr.design.beans.location.Absorptionline; +import com.fr.design.designer.beans.AdapterBus; +import com.fr.design.designer.beans.HoverPainter; +import com.fr.design.designer.beans.LayoutAdapter; +import com.fr.design.designer.beans.events.DesignerEvent; +import com.fr.design.designer.beans.location.Direction; +import com.fr.design.designer.beans.location.Location; +import com.fr.design.designer.creator.*; +import com.fr.design.mainframe.FormDesigner; +import com.fr.design.mainframe.FormSelectionUtils; +import com.fr.design.utils.ComponentUtils; + +import java.awt.*; +import java.awt.event.MouseEvent; +import java.util.ArrayList; + +/** + * 普通模式下的状态model + */ +public class StateModel { + // 对应的selection model + + private SelectionModel selectionModel; + // 当前鼠标进入拖拽区域的位置类型 + private Direction driection; + + // 当前拖拽的起始位置 + private int currentX; + private int currentY; + + //拖拽组件原始位置大小备份 + private Rectangle selectedPositionBackup; + + private Point startPoint = new Point(); + private Point currentPoint = new Point(); + + private Absorptionline lineInX; + private Absorptionline lineInY; + //等距线 + private Absorptionline lineEquidistant; + + // 当前是否处于拖拽选择状态 + private boolean selecting; + private boolean dragging; + + private boolean addable; + + private FormDesigner designer; + + public StateModel(FormDesigner designer) { + this.designer = designer; + selectionModel = designer.getSelectionModel(); + } + + /** + * 返回direction + * + * @return direction方向 + */ + public Direction getDirection() { + return driection; + } + + /** + * 是否有组件正被选中 + * + * @return true 如果至少一个组件被选中 + */ + public boolean isSelecting() { + return selecting; + } + + /** + * 是否能拖拽 + * + * @return 非outer且选中为空 + */ + public boolean dragable() { + return ((driection != Location.outer) && !selecting); + } + + /** + * 拖拽中是否可以转换为添加模式: + * 如果拖拽组件只有一个,鼠标当前所在位置的最底层表单容器与这个组件的容器不同; + * 如果拖拽组件为多个,鼠标当前所在位置的最底层表单容器除了要求要跟这些组件的容器不同外,还必须是绝对定位布局 + */ + private void checkAddable(MouseEvent e) { + addable = false; + designer.setPainter(null); + + if (driection != Location.inner) { + return; + } + + XCreator comp = designer.getComponentAt(e.getX(), e.getY(), selectionModel.getSelection().getSelectedCreators()); + XLayoutContainer container = XCreatorUtils.getHotspotContainer(comp); + XCreator creator = selectionModel.getSelection().getSelectedCreator(); + Component creatorContainer = XCreatorUtils.getParentXLayoutContainer(creator); + if (creatorContainer != null && creatorContainer != container + && (selectionModel.getSelection().size() == 1 || container instanceof XWAbsoluteLayout)) { + HoverPainter painter = AdapterBus.getContainerPainter(designer, container); + designer.setPainter(painter); + if (painter != null) { + Rectangle rect = ComponentUtils.getRelativeBounds(container); + rect.x -= designer.getArea().getHorizontalValue(); + rect.y -= designer.getArea().getVerticalValue(); + painter.setRenderingBounds(rect); + painter.setHotspot(new Point(e.getX(), e.getY())); + painter.setCreator(creator); + } + addable = true; + } + } + + /** + * @param container 容器 + * @param mouseX 鼠标释放位置X + * @param mouseY 鼠标释放位置Y + * @return 是否成功 + */ + private boolean addBean(XLayoutContainer container, int mouseX, int mouseY) { + LayoutAdapter adapter = container.getLayoutAdapter(); + Rectangle rectangleContainer = ComponentUtils.getRelativeBounds(container); + if (selectionModel.getSelection().size() == 1) { + return adapter.addBean(selectionModel.getSelection().getSelectedCreator(), + mouseX + designer.getArea().getHorizontalValue() - rectangleContainer.x, + mouseY + designer.getArea().getVerticalValue() - rectangleContainer.y); + } + for (XCreator creator : selectionModel.getSelection().getSelectedCreators()) { + adapter.addBean(creator, + mouseX + designer.getArea().getHorizontalValue() - rectangleContainer.x, + mouseY + designer.getArea().getVerticalValue() - rectangleContainer.y); + } + return true; + } + + /** + * @param mouseReleasedX 鼠标释放位置X + * @param mouseReleasedY 鼠标释放位置Y + */ + private void adding(int mouseReleasedX, int mouseReleasedY) { + // 当前鼠标所在的组件 + XCreator hoveredComponent = designer.getComponentAt(mouseReleasedX, mouseReleasedY, selectionModel.getSelection().getSelectedCreators()); + + // 获取该组件所在的焦点容器 + XLayoutContainer container = XCreatorUtils.getHotspotContainer(hoveredComponent); + + boolean success = false; + + if (container != null) { + // 如果是容器,则调用其acceptComponent接受组件 + success = addBean(container, mouseReleasedX, mouseReleasedY); + } + + if (success) { + FormSelectionUtils.rebuildSelection(designer); + designer.getEditListenerTable().fireCreatorModified( + selectionModel.getSelection().getSelectedCreator(), DesignerEvent.CREATOR_ADDED); + } else { + selectionModel.getSelection().setSelectionBounds(selectedPositionBackup, designer); + Toolkit.getDefaultToolkit().beep(); + } + // 取消提示 + designer.setPainter(null); + } + + /** + * 是否拖拽 + * + * @return dragging状态 + */ + public boolean isDragging() { + return dragging; + } + + /** + * 是否可以开始画线 + * + * @return startPoint不为空返回true + */ + public boolean prepareForDrawLining() { + return startPoint != null; + } + + /** + * 设置开始位置 + * + * @param p point位置 + */ + public void setStartPoint(Point p) { + this.startPoint = p; + } + + /** + * 返回开始位置 + * + * @return 点位置 + */ + public Point getStartPoint() { + return startPoint; + } + + /** + * 返回当前点位置 + * + * @return 点位置 + */ + public Point getEndPoint() { + return currentPoint; + } + + /** + * 当前选中组件 + * + * @param e 鼠标事件 + */ + public void startSelecting(MouseEvent e) { + selecting = true; + selectionModel.setHotspotBounds(new Rectangle()); + currentX = getMouseXY(e).x; + currentY = getMouseXY(e).y; + } + + /** + * 当前鼠标的xy + * + * @param e 鼠标事件 + */ + public void startResizing(MouseEvent e) { + if (!selectionModel.getSelection().isEmpty()) { + driection.backupBounds(designer); + } + currentX = getMouseXY(e).x; + currentY = getMouseXY(e).y; + } + + /** + * 起始点开始DrawLine + * + * @param p 点位置 + */ + public void startDrawLine(Point p) { + this.startPoint = p; + if (p != null) { + try { + designer.setCursor(XConnector.connectorCursor); + } catch (Exception e) { + } + } else { + designer.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR)); + } + } + + /** + * 鼠标释放时所在的区域及圈中的组件 + * + * @param e 鼠标事件 + */ + public void selectCreators(MouseEvent e) { + int x = getMouseXY(e).x; + int y = getMouseXY(e).y; + + Rectangle bounds = createCurrentBounds(x, y); + + if ((x != currentX) || (y != currentY)) { + selectionModel.setSelectedCreators(getHotspotCreators(bounds, designer.getRootComponent())); + } + selectionModel.setHotspotBounds(null); + } + + /** + * 画所在区域线 + * + * @param e 鼠标事件 + */ + public void drawLine(MouseEvent e) { + designer.getDrawLineHelper().setDrawLine(true); + Point p = designer.getDrawLineHelper().getNearWidgetPoint(e); + if (p != null) { + currentPoint = p; + } else { + currentPoint.x = e.getX() + designer.getArea().getHorizontalValue(); + currentPoint.y = e.getY() + designer.getArea().getVerticalValue(); + } + } + + private Rectangle createCurrentBounds(int x, int y) { + Rectangle bounds = new Rectangle(); + + bounds.x = Math.min(x, currentX); + bounds.y = Math.min(y, currentY); + bounds.width = Math.max(x, currentX) - bounds.x; + bounds.height = Math.max(y, currentY) - bounds.y; + + return bounds; + } + + private ArrayList getHotspotCreators(Rectangle selection, XCreator root) { + ArrayList creators = new ArrayList<>(); + + if (!root.isVisible() && !designer.isRoot(root)) { + return creators; + } + + if (root instanceof XLayoutContainer) { + XLayoutContainer container = (XLayoutContainer) root; + int count = container.getXCreatorCount(); + Rectangle clipped = new Rectangle(selection); + + for (int i = count - 1; i >= 0; i--) { + XCreator child = container.getXCreator(i); + + if (selection.contains(child.getBounds())) { + creators.add(child); + } else { + clipped.x = selection.x - child.getX(); + clipped.y = selection.y - child.getY(); + creators.addAll(getHotspotCreators(clipped, child)); + } + } + } + + return creators; + } + + + /** + * 重置model + */ + public void resetModel() { + dragging = false; + selecting = false; + } + + /** + * 重置 + */ + public void reset() { + driection = Location.outer; + dragging = false; + selecting = false; + } + + /** + * 取消拖拽 + */ + public void draggingCancel() { + designer.repaint(); + reset(); + } + + /** + * 设置可拉伸方向 + * + * @param dir 拉伸方向 + */ + public void setDirection(Direction dir) { + if (driection != dir) { + this.driection = dir; + driection.updateCursor(designer); + } + } + + /** + * x吸附线赋值 + * + * @param line 线 + */ + public void setXAbsorptionline(Absorptionline line) { + this.lineInX = line; + } + + /** + * y吸附线赋值 + * + * @param line 线 + */ + public void setYAbsorptionline(Absorptionline line) { + this.lineInY = line; + } + + /** + * 等距线赋值 + * + * @param line 线 + */ + public void setEquidistantLine(Absorptionline line) { + this.lineEquidistant = line; + } + + /** + * 画吸附线 + * + * @param g Graphics类 + */ + public void paintAbsorptionline(Graphics g) { + if (lineInX != null) { + lineInX.paint(g, designer.getArea()); + } + if (lineInY != null) { + lineInY.paint(g, designer.getArea()); + } + if (lineEquidistant != null) { + lineEquidistant.paint(g, designer.getArea()); + } + } + + /** + * 拖拽 + * + * @param e 鼠标事件 + */ + public void dragging(MouseEvent e) { + //进入dragging状态时备份组件大小和位置 + if (!dragging) { + selectedPositionBackup = selectionModel.getSelection().getRelativeBounds(); + } + checkAddable(e); + setDependLinePainter(e); + driection.drag(getMouseXY(e).x - currentX, getMouseXY(e).y - currentY, designer); + this.dragging = true; + } + + // 拖拽时画依附线用到的painter + private void setDependLinePainter(MouseEvent e) { + XCreator comp = designer.getComponentAt(e.getX(), e.getY(), selectionModel.getSelection().getSelectedCreators()); + XLayoutContainer container = XCreatorUtils.getHotspotContainer(comp); + XCreator creator = selectionModel.getSelection().getSelectedCreator(); + HoverPainter painter = AdapterBus.getContainerPainter(designer, container); + designer.setPainter(painter); + if (painter != null) { + painter.setHotspot(new Point(e.getX(), e.getY())); + painter.setCreator(creator); + } + } + + /** + * 释放捕获 + * + * @param e 鼠标事件 + */ + public void releaseDragging(MouseEvent e) { + this.dragging = false; + if (addable) { + adding(e.getX(), e.getY()); + } else if (!selectionModel.getSelection().isEmpty()) { + selectionModel.releaseDragging(); + } + designer.repaint(); + } + + /** + * 改变选择区域 + * + * @param e 鼠标事件 + */ + public void changeSelection(MouseEvent e) { + Rectangle bounds = createCurrentBounds(getMouseXY(e).x, getMouseXY(e).y); + selectionModel.setHotspotBounds(bounds); + } + + /** + * 返回鼠标所在的x、y 考虑滚动条的值 + * + * @param e 鼠标事件 + * @return xy值 + */ + public Point getMouseXY(MouseEvent e) { + Point p1 = new Point(e.getX() + designer.getArea().getHorizontalValue(), e.getY() + + designer.getArea().getVerticalValue()); + return p1; + } + } \ No newline at end of file diff --git a/designer_form/src/com/fr/design/designer/creator/XLayoutContainer.java b/designer_form/src/com/fr/design/designer/creator/XLayoutContainer.java index 254e9a9184..edd1c69f0f 100644 --- a/designer_form/src/com/fr/design/designer/creator/XLayoutContainer.java +++ b/designer_form/src/com/fr/design/designer/creator/XLayoutContainer.java @@ -30,12 +30,12 @@ import java.util.List; * @since 6.5.3 */ public abstract class XLayoutContainer extends XBorderStyleWidgetCreator implements ContainerListener, ParameterBridge { - - // 布局内部组件默认最小宽度36,最小高度21 - public static int MIN_WIDTH = 36; - public static int MIN_HEIGHT = 21; - - protected static final Dimension LARGEPREFERREDSIZE = new Dimension(200, 200); + + // 布局内部组件默认最小宽度36,最小高度21 + public static int MIN_WIDTH = 36; + public static int MIN_HEIGHT = 21; + + protected static final Dimension LARGEPREFERREDSIZE = new Dimension(200, 200); protected boolean isRefreshing; protected int default_Length = 5; // 取指定点坐在的组件,默认为5保证取四侧相邻的组件时x、y在组件内非边框上 @@ -45,6 +45,7 @@ public abstract class XLayoutContainer extends XBorderStyleWidgetCreator impleme protected boolean editable = false; //鼠标移动到布局画出编辑层 protected boolean isMouseEnter = false; + public void setMouseEnter(boolean mouseEnter) { isMouseEnter = mouseEnter; } @@ -55,12 +56,13 @@ public abstract class XLayoutContainer extends XBorderStyleWidgetCreator impleme } /** - * 得到属性名 + * 得到属性名 + * * @return 属性名 * @throws IntrospectionException */ - public CRPropertyDescriptor[] supportedDescriptor() throws IntrospectionException { - return new CRPropertyDescriptor[] { + public CRPropertyDescriptor[] supportedDescriptor() throws IntrospectionException { + return new CRPropertyDescriptor[]{ new CRPropertyDescriptor("widgetName", this.data.getClass()).setI18NName(Inter .getLocText("FR-Designer_Form-Widget_Name")), new CRPropertyDescriptor("borderStyle", this.data.getClass()).setEditorClass( @@ -68,19 +70,20 @@ public abstract class XLayoutContainer extends XBorderStyleWidgetCreator impleme Inter.getLocText("FR-Engine_Style")).putKeyValue(XCreatorConstants.PROPERTY_CATEGORY, "Advanced") .setPropertyChangeListener(new PropertyChangeAdapter() { - @Override - public void propertyChange() { - initStyle(); - } - }), + @Override + public void propertyChange() { + initStyle(); + } + }), new CRPropertyDescriptor("margin", this.data.getClass()).setEditorClass(PaddingMarginEditor.class) .setI18NName(Inter.getLocText("FR-Designer_Layout-Padding")) .putKeyValue(XCreatorConstants.PROPERTY_CATEGORY, "Advanced"), - }; - } + }; + } /** * 控件名属性 + * * @return * @throws IntrospectionException */ @@ -91,6 +94,7 @@ public abstract class XLayoutContainer extends XBorderStyleWidgetCreator impleme /** * 边距属性 + * * @return * @throws IntrospectionException */ @@ -101,47 +105,50 @@ public abstract class XLayoutContainer extends XBorderStyleWidgetCreator impleme } /** - * 返回对应的wlayout + * 返回对应的wlayout + * * @return wlayout控件 */ public WLayout toData() { return (WLayout) data; } - @Override - protected void initXCreatorProperties() { - super.initXCreatorProperties(); - initBorderStyle(); - this.initLayoutManager(); - this.convert(); - } + @Override + protected void initXCreatorProperties() { + super.initXCreatorProperties(); + initBorderStyle(); + this.initLayoutManager(); + this.convert(); + } @Override - protected JComponent initEditor() { - return this; - } - - /** - * 当前组件zorder位置替换新的控件 - * @param widget 控件 - * @param oldcreator 旧组件 - * @return 组件 - */ - public XCreator replace(Widget widget, XCreator oldcreator) { - int i = this.getComponentZOrder(oldcreator); - if (i != -1) { - this.toData().replace(widget, oldcreator.toData()); - this.convert(); - XCreator creator = (XCreator) this.getComponent(i); - creator.setSize(oldcreator.getSize()); - return creator; - } - return null; - } - - /** - * 初始化时默认的组件大小 - * @return 默认Dimension + protected JComponent initEditor() { + return this; + } + + /** + * 当前组件zorder位置替换新的控件 + * + * @param widget 控件 + * @param oldcreator 旧组件 + * @return 组件 + */ + public XCreator replace(Widget widget, XCreator oldcreator) { + int i = this.getComponentZOrder(oldcreator); + if (i != -1) { + this.toData().replace(widget, oldcreator.toData()); + this.convert(); + XCreator creator = (XCreator) this.getComponent(i); + creator.setSize(oldcreator.getSize()); + return creator; + } + return null; + } + + /** + * 初始化时默认的组件大小 + * + * @return 默认Dimension */ public Dimension initEditorSize() { return LARGEPREFERREDSIZE; @@ -172,7 +179,8 @@ public abstract class XLayoutContainer extends XBorderStyleWidgetCreator impleme /** * 设计界面中有组件添加时,要通知WLayout容器重新paint - * @param e 待说明 + * + * @param e 待说明 */ @Override public void componentAdded(ContainerEvent e) { @@ -188,7 +196,8 @@ public abstract class XLayoutContainer extends XBorderStyleWidgetCreator impleme /** * 设计界面中有组件添加时,要通知WLayout容器重新paint - * @param e 待说明 + * + * @param e 待说明 */ @Override public void componentRemoved(ContainerEvent e) { @@ -203,6 +212,7 @@ public abstract class XLayoutContainer extends XBorderStyleWidgetCreator impleme /** * 根据widget的属性值来获取 + * * @param wgt * @return */ @@ -226,30 +236,32 @@ public abstract class XLayoutContainer extends XBorderStyleWidgetCreator impleme public int getXCreatorCount() { return getComponentCount(); } - + public XCreator getXCreator(int i) { return (XCreator) getComponent(i); } /** * 该组件是否可以拖入参数面板 + * * @return 是则返回true */ - public boolean canEnterIntoParaPane(){ + public boolean canEnterIntoParaPane() { return false; } - + /** - * 是否作为控件树的叶子节点 - * @return 是则返回true - */ - public boolean isComponentTreeLeaf() { - return false; - } + * 是否作为控件树的叶子节点 + * + * @return 是则返回true + */ + public boolean isComponentTreeLeaf() { + return false; + } - public List getAllXCreatorNameList(XCreator xCreator, List namelist){ - for (int i = 0; i < ((XLayoutContainer)xCreator).getXCreatorCount(); i++) { - XCreator creatorSon = ((XLayoutContainer)xCreator).getXCreator(i); + public List getAllXCreatorNameList(XCreator xCreator, List namelist) { + for (int i = 0; i < ((XLayoutContainer) xCreator).getXCreatorCount(); i++) { + XCreator creatorSon = ((XLayoutContainer) xCreator).getXCreator(i); creatorSon.getAllXCreatorNameList(creatorSon, namelist); } return namelist; @@ -257,19 +269,20 @@ public abstract class XLayoutContainer extends XBorderStyleWidgetCreator impleme /** * 是否有查询按钮 - * @param xCreator 控件或容器 - * @return 有无查询按钮 + * + * @param xCreator 控件或容器 + * @return 有无查询按钮 */ public boolean SearchQueryCreators(XCreator xCreator) { - for (int i = 0; i < ((XLayoutContainer)xCreator).getXCreatorCount(); i++) { - XCreator creatorSon = ((XLayoutContainer)xCreator).getXCreator(i); - if(creatorSon.SearchQueryCreators(creatorSon)){ + for (int i = 0; i < ((XLayoutContainer) xCreator).getXCreatorCount(); i++) { + XCreator creatorSon = ((XLayoutContainer) xCreator).getXCreator(i); + if (creatorSon.SearchQueryCreators(creatorSon)) { return true; } } return false; } - + public FRLayoutManager getFRLayout() { LayoutManager layout = getLayout(); if (layout instanceof FRLayoutManager) { @@ -279,111 +292,120 @@ public abstract class XLayoutContainer extends XBorderStyleWidgetCreator impleme return null; } - public abstract LayoutAdapter getLayoutAdapter(); - - public int getIndexOfChild(Object child) { - int count = getComponentCount(); - for (int i = 0; i < count; i++) { - Component comp = getComponent(i); - if (comp == child) { - return i; - } - } - return -1; - } - - /** - * 主要为自适应用 - * 返回指定point的上方组件 - * @param x x位置 - * @param y y位置 - * @return 指定位置的组件 - */ - public Component getTopComp(int x, int y) { - return this.getComponentAt(x, y-default_Length); - } - - /** - * 主要为自适应用 - * 返回指定point的左方组件 - * @param x x位置 - * @param y y位置 - * @return 指定位置的组件 - */ - public Component getLeftComp(int x, int y) { - return this.getComponentAt(x-default_Length, y); - } - - /** - * 返回指定point的右方组件 - * @param x x位置 - * @param y y位置 - * @param w 宽度 - * @return 指定位置的组件 - */ - public Component getRightComp(int x, int y, int w) { - return this.getComponentAt(x+w+default_Length, y); - } - - /** - * 返回指定point的下方组件 - * @param x x位置 - * @param y y位置 - * @param h 高度 - * @return 指定位置的组件 - */ - public Component getBottomComp(int x, int y, int h) { - return this.getComponentAt(x, y+h+default_Length); - } - - /** - * 返回指定point的上方且是右侧的组件 - * @param x x位置 - * @param y y位置 - * @param w 宽度 - * @return 指定位置的组件 - */ - public Component getRightTopComp(int x, int y, int w) { - return this.getComponentAt(x+w-default_Length, y-default_Length); - } - - /** - * 返回指定point的左方且是下侧的组件 - * @param x x位置 - * @param y y位置 - * @param h 高度 - * @return 指定位置的组件 - */ - public Component getBottomLeftComp(int x, int y, int h) { - return this.getComponentAt(x-default_Length, y+h-default_Length); - } - - /** - * 返回指定point的右方且是下侧的组件 - * @param x x位置 - * @param y y位置 - * @param h 高度 - * @param w 宽度 - * @return 指定位置的组件 - */ - public Component getBottomRightComp(int x, int y, int h, int w) { - return this.getComponentAt(x+w+default_Length, y+h-default_Length); - } - - /** - * 返回指定point的下方且是右侧的组件 - * @param x x位置 - * @param y y位置 - * @param h 高度 - * @param w 宽度 - * @return 指定位置的组件 - */ - public Component getRightBottomComp(int x, int y, int h, int w) { - return this.getComponentAt(x+w-default_Length, y+h+default_Length); - } + public abstract LayoutAdapter getLayoutAdapter(); + + public int getIndexOfChild(Object child) { + int count = getComponentCount(); + for (int i = 0; i < count; i++) { + Component comp = getComponent(i); + if (comp == child) { + return i; + } + } + return -1; + } + + /** + * 主要为自适应用 + * 返回指定point的上方组件 + * + * @param x x位置 + * @param y y位置 + * @return 指定位置的组件 + */ + public Component getTopComp(int x, int y) { + return this.getComponentAt(x, y - default_Length); + } + + /** + * 主要为自适应用 + * 返回指定point的左方组件 + * + * @param x x位置 + * @param y y位置 + * @return 指定位置的组件 + */ + public Component getLeftComp(int x, int y) { + return this.getComponentAt(x - default_Length, y); + } + + /** + * 返回指定point的右方组件 + * + * @param x x位置 + * @param y y位置 + * @param w 宽度 + * @return 指定位置的组件 + */ + public Component getRightComp(int x, int y, int w) { + return this.getComponentAt(x + w + default_Length, y); + } + + /** + * 返回指定point的下方组件 + * + * @param x x位置 + * @param y y位置 + * @param h 高度 + * @return 指定位置的组件 + */ + public Component getBottomComp(int x, int y, int h) { + return this.getComponentAt(x, y + h + default_Length); + } + + /** + * 返回指定point的上方且是右侧的组件 + * + * @param x x位置 + * @param y y位置 + * @param w 宽度 + * @return 指定位置的组件 + */ + public Component getRightTopComp(int x, int y, int w) { + return this.getComponentAt(x + w - default_Length, y - default_Length); + } + + /** + * 返回指定point的左方且是下侧的组件 + * + * @param x x位置 + * @param y y位置 + * @param h 高度 + * @return 指定位置的组件 + */ + public Component getBottomLeftComp(int x, int y, int h) { + return this.getComponentAt(x - default_Length, y + h - default_Length); + } + + /** + * 返回指定point的右方且是下侧的组件 + * + * @param x x位置 + * @param y y位置 + * @param h 高度 + * @param w 宽度 + * @return 指定位置的组件 + */ + public Component getBottomRightComp(int x, int y, int h, int w) { + return this.getComponentAt(x + w + default_Length, y + h - default_Length); + } + + /** + * 返回指定point的下方且是右侧的组件 + * + * @param x x位置 + * @param y y位置 + * @param h 高度 + * @param w 宽度 + * @return 指定位置的组件 + */ + public Component getRightBottomComp(int x, int y, int h, int w) { + return this.getComponentAt(x + w - default_Length, y + h + default_Length); + } /** * 是否延迟展示报表内容,也就是说是否要等点击了查询之后才执行报表 + * * @return 如果是true,则表示点击之后才开始计算,false则表示会根据参数默认值直接计算报表并展现 */ public boolean isDelayDisplayContent() { @@ -392,18 +414,20 @@ public abstract class XLayoutContainer extends XBorderStyleWidgetCreator impleme /** * 是否显示参数界面 + * * @return 显示参数界面则返回true,否则返回false */ public boolean isDisplay() { return false; } - public Background getDataBackground(){ + public Background getDataBackground() { return toData().getBackground(); } /** * 获取参数界面的宽度 + * * @return 宽度 */ public int getDesignWidth() { @@ -412,83 +436,82 @@ public abstract class XLayoutContainer extends XBorderStyleWidgetCreator impleme /** * 获取参数面板的对齐方式 + * * @return 左中右三种对齐方式 */ public int getPosition() { return 0; } - + /** * 切换到非添加状态 - * + * * @param designer 表单设计器 */ - public void stopAddingState(FormDesigner designer){ - return; - } - - /** - * 寻找最近的为自适应布局的父容器 - * - * @return 布局容器 - * - * - * @date 2014-12-30-下午3:15:28 - * - */ - public XLayoutContainer findNearestFit(){ - //一层一层网上找, 找到最近的fit那一层就return - XLayoutContainer parent = this.getBackupParent(); - return parent == null ? null : parent.findNearestFit(); - } - + public void stopAddingState(FormDesigner designer) { + } + + /** + * 寻找最近的为自适应布局的父容器 + * + * @return 布局容器 + * @date 2014-12-30-下午3:15:28 + */ + public XLayoutContainer findNearestFit() { + //一层一层网上找, 找到最近的fit那一层就return + XLayoutContainer parent = this.getBackupParent(); + return parent == null ? null : parent.findNearestFit(); + } + /** * 获取容器所有内部组件横坐标值 - * + * * @return 横坐标数组 */ - public int[] getHors(){ - return ArrayUtils.EMPTY_INT_ARRAY; + public int[] getHors() { + return ArrayUtils.EMPTY_INT_ARRAY; } - + /** * 获取容器所有内部组件纵坐标值 - * + * * @return 纵坐标数组 */ - public int[] getVeris(){ - return ArrayUtils.EMPTY_INT_ARRAY; + public int[] getVeris() { + return ArrayUtils.EMPTY_INT_ARRAY; } - public void setDelayDisplayContent(boolean delayPlaying){ + public void setDelayDisplayContent(boolean delayPlaying) { } - public void setPosition(int align){ + public void setPosition(int align) { } - public void setDisplay(boolean showWindow){ + public void setDisplay(boolean showWindow) { } - public void setBackground(Background background){ + public void setBackground(Background background) { } /** * 布局是否可编辑,不可则显示编辑蒙层 + * * @return 可否编辑 */ - public boolean isEditable(){ + public boolean isEditable() { return this.editable; } /** * 设置布局是否可编辑,不可则显示编辑蒙层 + * * @param isEditable 可否编辑 */ - public void setEditable(boolean isEditable){ + public void setEditable(boolean isEditable) { this.editable = isEditable; } } \ No newline at end of file diff --git a/designer_form/src/com/fr/design/designer/creator/cardlayout/XWCardTagLayout.java b/designer_form/src/com/fr/design/designer/creator/cardlayout/XWCardTagLayout.java index 947ec5eaba..114ce3240c 100644 --- a/designer_form/src/com/fr/design/designer/creator/cardlayout/XWCardTagLayout.java +++ b/designer_form/src/com/fr/design/designer/creator/cardlayout/XWCardTagLayout.java @@ -1,5 +1,5 @@ /** - * + * */ package com.fr.design.designer.creator.cardlayout; @@ -25,114 +25,109 @@ import com.fr.form.ui.container.cardlayout.WCardTagLayout; import com.fr.form.ui.container.cardlayout.WTabFitLayout; /** - * - * * @date: 2014-11-25-下午3:11:14 */ public class XWCardTagLayout extends XWHorizontalBoxLayout { - - private static final int MIN_SIZE = 1; - - private String tagName = "Tab"; - - private boolean switchingTab = false; - - //增加一个tabNameIndex防止tabFitLayout重名 - private int tabFitIndex = 0; - private CardSwitchButton currentCard; - - public CardSwitchButton getCurrentCard() { - return currentCard; - } - - public void setCurrentCard(CardSwitchButton currentCard) { - this.currentCard = currentCard; - } - - public int getTabFitIndex() { - return tabFitIndex; - } - - public void setTabFitIndex(int tabFitIndex) { - this.tabFitIndex = tabFitIndex; - } - - public String getTagName() { - return tagName; - } - - public void setTagName(String tagName) { - this.tagName = tagName; - } - - public boolean isSwitchingTab() { - return switchingTab; - } - - public void setSwitchingTab(boolean switchingTab) { - this.switchingTab = switchingTab; - } - - private XWCardLayout cardLayout; - - public XWCardTagLayout(WCardTagLayout widget, Dimension initSize){ - super(widget, initSize); - } - - /** - * 构造函数 - */ - public XWCardTagLayout(WCardTagLayout widget, Dimension initSize, XWCardLayout cardLayout) { - super(widget, initSize); - - this.cardLayout = cardLayout; - } - - /** - * 添加组件的监听事件 - * - * @param e 事件 - * - * - * @date 2014-11-25-下午6:20:10 - * - */ - public void componentAdded(ContainerEvent e) { - super.componentAdded(e); - - if (isSwitchingTab()){ - return; - } - - if(this.cardLayout == null){ - initCardLayout(); - } - - int index = this.cardLayout.toData().getWidgetCount(); - //新加一个card - String widgetName = tagName+getTabNameIndex(); - WTabFitLayout fitLayout = new WTabFitLayout(widgetName,tabFitIndex,currentCard); - fitLayout.setTabNameIndex(getTabNameIndex()); - XWTabFitLayout tabFitLayout = new XWTabFitLayout(fitLayout, new Dimension()); - tabFitLayout.setBackupParent(cardLayout); - cardLayout.add(tabFitLayout, widgetName); - this.cardLayout.toData().setShowIndex(index); - cardLayout.showCard(); - } - - private void initCardLayout(){ - XWCardTitleLayout titleLayout = (XWCardTitleLayout)this.getBackupParent(); - XWCardMainBorderLayout borderLayout = (XWCardMainBorderLayout)titleLayout.getBackupParent(); - - this.cardLayout = borderLayout.getCardPart(); - } - + + private static final int MIN_SIZE = 1; + + private String tagName = "Tab"; + + private boolean switchingTab = false; + + //增加一个tabNameIndex防止tabFitLayout重名 + private int tabFitIndex = 0; + private CardSwitchButton currentCard; + + public CardSwitchButton getCurrentCard() { + return currentCard; + } + + public void setCurrentCard(CardSwitchButton currentCard) { + this.currentCard = currentCard; + } + + public int getTabFitIndex() { + return tabFitIndex; + } + + public void setTabFitIndex(int tabFitIndex) { + this.tabFitIndex = tabFitIndex; + } + + public String getTagName() { + return tagName; + } + + public void setTagName(String tagName) { + this.tagName = tagName; + } + + public boolean isSwitchingTab() { + return switchingTab; + } + + public void setSwitchingTab(boolean switchingTab) { + this.switchingTab = switchingTab; + } + + private XWCardLayout cardLayout; + + public XWCardTagLayout(WCardTagLayout widget, Dimension initSize) { + super(widget, initSize); + } + + /** + * 构造函数 + */ + public XWCardTagLayout(WCardTagLayout widget, Dimension initSize, XWCardLayout cardLayout) { + super(widget, initSize); + + this.cardLayout = cardLayout; + } + + /** + * 添加组件的监听事件 + * + * @param e 事件 + * @date 2014-11-25-下午6:20:10 + */ + public void componentAdded(ContainerEvent e) { + super.componentAdded(e); + + if (isSwitchingTab()) { + return; + } + + if (this.cardLayout == null) { + initCardLayout(); + } + + int index = this.cardLayout.toData().getWidgetCount(); + //新加一个card + String widgetName = tagName + getTabNameIndex(); + WTabFitLayout fitLayout = new WTabFitLayout(widgetName, tabFitIndex, currentCard); + fitLayout.setTabNameIndex(getTabNameIndex()); + XWTabFitLayout tabFitLayout = new XWTabFitLayout(fitLayout, new Dimension()); + tabFitLayout.setBackupParent(cardLayout); + cardLayout.add(tabFitLayout, widgetName); + this.cardLayout.toData().setShowIndex(index); + cardLayout.showCard(); + } + + private void initCardLayout() { + XWCardTitleLayout titleLayout = (XWCardTitleLayout) this.getBackupParent(); + XWCardMainBorderLayout borderLayout = (XWCardMainBorderLayout) titleLayout.getBackupParent(); + + this.cardLayout = borderLayout.getCardPart(); + } + /** * 将WLayout转换为XLayoutContainer */ public void convert() { isRefreshing = true; - WCardTagLayout layout = (WCardTagLayout)this.toData(); + WCardTagLayout layout = (WCardTagLayout) this.toData(); this.removeAll(); for (int i = 0; i < layout.getWidgetCount(); i++) { Widget wgt = layout.getWidget(i); @@ -144,82 +139,81 @@ public class XWCardTagLayout extends XWHorizontalBoxLayout { } isRefreshing = false; } - + /** * 切换到非添加状态 - * + * * @return designer 表单设计器 */ - public void stopAddingState(FormDesigner designer){ - designer.stopAddingState(); - return; + public void stopAddingState(FormDesigner designer) { + designer.stopAddingState(); } - + //新增时去tabFitLayout名字中最大的Index+1,防止重名 - private int getTabNameIndex(){ - int tabNameIndex = 0; - WCardLayout layout = this.cardLayout.toData(); - int size = layout.getWidgetCount(); - if(size < MIN_SIZE){ - return tabNameIndex; - } - for(int i=0;i + * void + */ + public void adjustComponentWidth() { + } + + + /** + * 该布局需要隐藏,无需对边框进行操作 + * + * @param + */ public void setBorder(Border border) { - return; - } - - @Override - /** - * 该布局隐藏,点击该布局时选中相应的tab布局主体 - * @param editingMouseListener 监听 - * @param e 鼠标点击事件 - * - */ - public void respondClick(EditingMouseListener editingMouseListener, - MouseEvent e) { - FormDesigner designer = editingMouseListener.getDesigner(); - SelectionModel selectionModel = editingMouseListener.getSelectionModel(); - - XWCardTitleLayout titleLayout = (XWCardTitleLayout) this.getBackupParent(); - if(titleLayout != null){ - XWCardMainBorderLayout mainLayout = (XWCardMainBorderLayout)titleLayout.getBackupParent(); - if(mainLayout != null){ - XWCardLayout cardLayout = mainLayout.getCardPart(); - selectionModel.setSelectedCreator(cardLayout); - } - } - - if (editingMouseListener.stopEditing()) { - if (this != designer.getRootComponent()) { - ComponentAdapter adapter = AdapterBus.getComponentAdapter(designer, this); - editingMouseListener.startEditing(this, adapter.getDesignerEditor(), adapter); - } - } - } - - @Override - public XLayoutContainer getTopLayout() { - return this.getBackupParent().getTopLayout(); - } + + } + + @Override + /** + * 该布局隐藏,点击该布局时选中相应的tab布局主体 + * @param editingMouseListener 监听 + * @param e 鼠标点击事件 + * + */ + public void respondClick(EditingMouseListener editingMouseListener, + MouseEvent e) { + FormDesigner designer = editingMouseListener.getDesigner(); + SelectionModel selectionModel = editingMouseListener.getSelectionModel(); + + XWCardTitleLayout titleLayout = (XWCardTitleLayout) this.getBackupParent(); + if (titleLayout != null) { + XWCardMainBorderLayout mainLayout = (XWCardMainBorderLayout) titleLayout.getBackupParent(); + if (mainLayout != null) { + XWCardLayout cardLayout = mainLayout.getCardPart(); + selectionModel.setSelectedCreator(cardLayout); + } + } + + if (editingMouseListener.stopEditing()) { + if (this != designer.getRootComponent()) { + ComponentAdapter adapter = AdapterBus.getComponentAdapter(designer, this); + editingMouseListener.startEditing(this, adapter.getDesignerEditor(), adapter); + } + } + } + + @Override + public XLayoutContainer getTopLayout() { + return this.getBackupParent().getTopLayout(); + } } \ No newline at end of file diff --git a/designer_form/src/com/fr/design/mainframe/FormCreatorDropTarget.java b/designer_form/src/com/fr/design/mainframe/FormCreatorDropTarget.java index 6390b64f89..486ad26949 100644 --- a/designer_form/src/com/fr/design/mainframe/FormCreatorDropTarget.java +++ b/designer_form/src/com/fr/design/mainframe/FormCreatorDropTarget.java @@ -43,7 +43,7 @@ public class FormCreatorDropTarget extends DropTarget { * 当前添加模式对应的model */ private AddingModel addingModel; - private final static int GAP = 30; + private static final int GAP = 30; private JWindow promptWindow = new JWindow(); private UIButton promptButton = new UIButton("", BaseUtils.readIcon(IconPathConstants.FORBID_ICON_PATH)); @@ -59,10 +59,11 @@ public class FormCreatorDropTarget extends DropTarget { XCreator hoveredComponent = designer.getComponentAt(x, y); // 获取该组件所在的焦点容器 XLayoutContainer container = XCreatorUtils.getHotspotContainer(hoveredComponent); - //cardTagLayout里用到 - container.stopAddingState(designer); boolean success = false; if (container != null) { + //XWCardTagLayout 切换添加状态到普通状态 + container.stopAddingState(designer); + // 如果是容器,则调用其acceptComponent接受组件 AddingModel model = designer.getAddingModel(); @@ -129,9 +130,7 @@ public class FormCreatorDropTarget extends DropTarget { //提示组件是否可以拖入 promptUser(x, y, container); if (container != null) { - dealWithContainer(x, y, container); - } else { // 如果鼠标不在任何组件上,则取消提示器 designer.setPainter(null); @@ -197,11 +196,9 @@ public class FormCreatorDropTarget extends DropTarget { private void promptWidgetForbidEnter(int x, int y, XLayoutContainer container) { container.setBorder(BorderFactory.createLineBorder(Color.RED, Constants.LINE_MEDIUM)); - int screen_X = (int) designer.getArea().getLocationOnScreen().getX(); - int screen_Y = (int) designer.getArea().getLocationOnScreen().getY(); - this.promptWindow.setSize(promptWindow.getPreferredSize()); - this.promptWindow.setPreferredSize(promptWindow.getPreferredSize()); - promptWindow.setLocation(screen_X + x + GAP, screen_Y + y + GAP); + int screenX = designer.getArea().getLocationOnScreen().x; + int screenY = designer.getArea().getLocationOnScreen().y; + promptWindow.setLocation(screenX + x + GAP, screenY + y + GAP); promptWindow.setVisible(true); } diff --git a/designer_form/src/com/fr/design/mainframe/FormDesigner.java b/designer_form/src/com/fr/design/mainframe/FormDesigner.java index 1dd61c5597..0c77059935 100644 --- a/designer_form/src/com/fr/design/mainframe/FormDesigner.java +++ b/designer_form/src/com/fr/design/mainframe/FormDesigner.java @@ -612,6 +612,12 @@ public class FormDesigner extends TargetComponent implements TreeSelection return true; } + public void showMessageDialog(String message) { + JOptionPane.showMessageDialog(this, message, Inter.getLocText("FR-Designer_Alert"), JOptionPane.WARNING_MESSAGE); + FormSelectionUtils.rebuildSelection(this); + repaint(); + } + /** * 保存参数界面的宽度 * diff --git a/designer_form/src/com/fr/design/mainframe/FormSelectionUtils.java b/designer_form/src/com/fr/design/mainframe/FormSelectionUtils.java index ff976ef771..334c2fc373 100644 --- a/designer_form/src/com/fr/design/mainframe/FormSelectionUtils.java +++ b/designer_form/src/com/fr/design/mainframe/FormSelectionUtils.java @@ -17,11 +17,7 @@ import java.util.List; public class FormSelectionUtils { //组件复制时坐标偏移 - private static final int DELAY_X = 20; - private static final int DELAY_Y = 20; - - //组件复制时是否已经向左上偏移 - private static boolean backoffset = false; + private static final int DELAY_X_Y = 20; //组件重命名后缀 private static final String POSTFIX = "_c"; @@ -31,11 +27,7 @@ public class FormSelectionUtils { } /** - * @param designer 编辑器 - * @param parent 粘贴依据的组件 - * @param clipboard 剪贴板内容 - * @param x x - * @param y y + * 粘贴到容器 */ public static void paste2Container(FormDesigner designer, XLayoutContainer parent, FormSelection clipboard, int x, int y) { @@ -54,12 +46,6 @@ public class FormSelectionUtils { /** * 绝对布局粘贴 - * - * @param designer - * @param clipboard - * @param adapter - * @param x - * @param y */ private static void absolutePaste(FormDesigner designer, FormSelection clipboard, LayoutAdapter adapter, int x, int y) { @@ -74,6 +60,10 @@ public class FormSelectionUtils { copiedCreator, x + creator.getX() - rec.x + copiedCreator.getWidth() / 2, y + creator.getY() - rec.y + copiedCreator.getHeight() / 2); + if (!adapter.accept(copiedCreator, point.x, point.y)) { + designer.showMessageDialog("Too large to paste into container"); + return; + } boolean addSuccess = adapter.addBean(copiedCreator, point.x, point.y); if (addSuccess) { designer.getSelectionModel().getSelection().addSelectedCreator(copiedCreator); @@ -90,12 +80,6 @@ public class FormSelectionUtils { /** * 相对布局粘贴 - * - * @param designer - * @param clipboard - * @param adapter - * @param x - * @param y */ private static void relativePaste(FormDesigner designer, FormSelection clipboard, LayoutAdapter adapter, int x, int y) { designer.getSelectionModel().getSelection().reset(); @@ -118,14 +102,6 @@ public class FormSelectionUtils { /** * 组件复用绝对布局获取粘贴组件位置 - * - * @param layoutAdapter 绝对布局容器AbstractLayoutAdapter - * @param copiedCreator 复制的组件 - * @param x x=组件x + clonedCreator.getWidth() / 2 - * @param y y=组件y + clonedCreator.getHeight() / 2 - * 除2的步骤会导致当宽度或者高度为奇数是,中心点向左上各偏移一个像素 - * 由于中心点向左上各偏移一个像素,依赖中心点计算的右下点就会相应的想做上偏移一个像素,导致结果不准确 - * @return 新位置坐标 */ private static Point getPasteLocation(AbstractLayoutAdapter layoutAdapter, XCreator copiedCreator, int x, int y) { //当宽度为奇数时 设置偏移 @@ -144,12 +120,10 @@ public class FormSelectionUtils { * x,y同时越界 */ if (xOut && yOut) { - x = backoffset ? container.getWidth() - copiedCreator.getWidth() / 2 - xoffset - : container.getWidth() - copiedCreator.getWidth() / 2 - DELAY_X - xoffset; - y = backoffset ? - container.getHeight() - copiedCreator.getHeight() / 2 - yoffset - : container.getHeight() - copiedCreator.getHeight() / 2 - DELAY_Y - yoffset; - backoffset = !backoffset; + //向左偏移 + x = container.getWidth() - copiedCreator.getWidth() / 2 - DELAY_X_Y - xoffset; + //紧贴下边界 + y = container.getHeight() - copiedCreator.getHeight() / 2 - yoffset; return new Point(x, y); } /* @@ -158,7 +132,7 @@ public class FormSelectionUtils { * 距离大于20像素的一侧正常错开。 * x,y中只有一个越界 */ - else if ((xOut || yOut)) { + if ((xOut || yOut)) { x = xOut ? container.getWidth() - copiedCreator.getWidth() / 2 - xoffset : x; y = yOut ? container.getHeight() - copiedCreator.getHeight() / 2 - yoffset : y; return new Point(x, y); @@ -170,15 +144,10 @@ public class FormSelectionUtils { /** * 拷贝组件 - * - * @param formDesigner - * @param xCreator - * @return - * @throws CloneNotSupportedException */ private static Widget copyWidget(FormDesigner formDesigner, XCreator xCreator) throws CloneNotSupportedException { - ArrayList nameSpace = new ArrayList(); + ArrayList nameSpace = new ArrayList<>(); Widget copied = (Widget) xCreator.toData().clone(); //重命名拷贝的组件 String name = getCopiedName(formDesigner, copied, nameSpace); @@ -193,14 +162,9 @@ public class FormSelectionUtils { /** * 组件拷贝命名规则 - * - * @param formDesigner - * @param copied - * @param nameSpace - * @return name */ private static String getCopiedName(FormDesigner formDesigner, Widget copied, ArrayList nameSpace) { - StringBuffer name = new StringBuffer(copied.getWidgetName()); + StringBuilder name = new StringBuilder(copied.getWidgetName()); do { name.append(POSTFIX); } while (formDesigner.getTarget().isNameExist(name.toString()) || nameSpace.contains(name.toString())); @@ -209,8 +173,8 @@ public class FormSelectionUtils { } public static void rebuildSelection(FormDesigner designer) { - ArrayList newSelection = new ArrayList(); - List widgetList = new ArrayList(); + ArrayList newSelection = new ArrayList<>(); + List widgetList = new ArrayList<>(); for (XCreator comp : designer.getSelectionModel().getSelection().getSelectedCreators()) { widgetList.add(comp.toData()); } @@ -219,11 +183,11 @@ public class FormSelectionUtils { } public static ArrayList rebuildSelection(XCreator rootComponent, Widget[] selectWidgets) { - List selectionWidget = new ArrayList(); + List selectionWidget = new ArrayList<>(); if (selectWidgets != null) { selectionWidget.addAll(Arrays.asList(selectWidgets)); } - return FormSelectionUtils.rebuildSelection(rootComponent, selectionWidget, new ArrayList()); + return FormSelectionUtils.rebuildSelection(rootComponent, selectionWidget, new ArrayList<>()); } private static ArrayList rebuildSelection(XCreator rootComponent, List selectionWidget, From 552720bc961aae87dbeb6bfdbb0c1586b3eb0ff6 Mon Sep 17 00:00:00 2001 From: mengao <283296419@qq.com> Date: Wed, 5 Apr 2017 09:52:39 +0800 Subject: [PATCH 04/72] =?UTF-8?q?=E8=BF=98=E5=8E=9F=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E9=83=A8=E5=88=86design=E4=BB=A3=E7=A0=81=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fr/design/chart/axis/MinMaxValuePane.java | 26 +++++++++---------- .../chart/gui/style/axis/ChartValuePane.java | 5 ++-- 2 files changed, 15 insertions(+), 16 deletions(-) diff --git a/designer_chart/src/com/fr/design/chart/axis/MinMaxValuePane.java b/designer_chart/src/com/fr/design/chart/axis/MinMaxValuePane.java index 73235dc31f..4bd1aaca7a 100644 --- a/designer_chart/src/com/fr/design/chart/axis/MinMaxValuePane.java +++ b/designer_chart/src/com/fr/design/chart/axis/MinMaxValuePane.java @@ -42,34 +42,34 @@ public class MinMaxValuePane extends JPanel { double p = TableLayout.PREFERRED; double f = TableLayout.FILL; double[] columnSize = { p, f }; - double[] rowSize = { p, p, p, p, p, p, p, p}; + double[] rowSize = { p, p, p, p}; Component[][] components = getPanelComponents(); JPanel panel = TableLayoutHelper.createTableLayoutPane(components ,rowSize,columnSize); this.setLayout(new BorderLayout()); this.add(panel,BorderLayout.CENTER); + addComponentListener(components); + } - for(int i = 0; i < components.length; i+=2) { - ((UICheckBox)components[i][0]).addActionListener(new ActionListener() { + public void addComponentListener(Component[][] components) { + for (int i = 0; i < components.length; i++) { + ((UICheckBox) components[i][0]).addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { checkBoxUse(); } }); - ChartSwingUtils.addListener((UICheckBox)components[i][0], (UITextField)components[i+1][0]); + ChartSwingUtils.addListener((UICheckBox) components[i][0], (UITextField) components[i][1]); } } + protected Component[][] getPanelComponents() { - return new Component[][]{ - new Component[]{minCheckBox}, - new Component[]{minValueField}, - new Component[]{maxCheckBox}, - new Component[]{maxValueField}, - new Component[]{isCustomMainUnitBox}, - new Component[]{mainUnitField}, - new Component[]{isCustomSecUnitBox}, - new Component[]{secUnitField}, + return new Component[][]{ + new Component[]{minCheckBox, minValueField}, + new Component[]{maxCheckBox, maxValueField}, + new Component[]{isCustomMainUnitBox, mainUnitField}, + new Component[]{isCustomSecUnitBox, secUnitField}, }; } diff --git a/designer_chart/src/com/fr/design/mainframe/chart/gui/style/axis/ChartValuePane.java b/designer_chart/src/com/fr/design/mainframe/chart/gui/style/axis/ChartValuePane.java index f798a0a07d..e497bcb80f 100644 --- a/designer_chart/src/com/fr/design/mainframe/chart/gui/style/axis/ChartValuePane.java +++ b/designer_chart/src/com/fr/design/mainframe/chart/gui/style/axis/ChartValuePane.java @@ -151,11 +151,10 @@ public class ChartValuePane extends ChartAxisUsePane{ double p = TableLayout.PREFERRED; double f = TableLayout.FILL; double[] columnSize = { LayoutConstants.CHART_ATTR_TOMARGIN,p,f}; - double[] rowSize = { p, p, p}; + double[] rowSize = { p, p}; Component[][] component = new Component[][]{ new Component[]{null,initMinMaxValue(),null}, - new Component[]{null, addLogarithmicPane2ValuePane(), null}, - new Component[]{null, null, addLogText()}, + new Component[]{null, addLogarithmicPane2ValuePane(), addLogText()}, }; return TableLayoutHelper.createTableLayoutPane(component, rowSize, columnSize); } From fcf2f0884eec2d13f8eb4b923b164da3a4f01333 Mon Sep 17 00:00:00 2001 From: mengao <283296419@qq.com> Date: Thu, 6 Apr 2017 09:27:41 +0800 Subject: [PATCH 05/72] =?UTF-8?q?=E5=9C=B0=E5=9B=BE=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E7=BC=A9=E6=94=BE=E6=89=8B=E5=8A=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fr/design/chart/axis/MinMaxValuePane.java | 77 ++++++++++--------- 1 file changed, 41 insertions(+), 36 deletions(-) diff --git a/designer_chart/src/com/fr/design/chart/axis/MinMaxValuePane.java b/designer_chart/src/com/fr/design/chart/axis/MinMaxValuePane.java index 4bd1aaca7a..17509bd523 100644 --- a/designer_chart/src/com/fr/design/chart/axis/MinMaxValuePane.java +++ b/designer_chart/src/com/fr/design/chart/axis/MinMaxValuePane.java @@ -30,7 +30,12 @@ public class MinMaxValuePane extends JPanel { protected UICheckBox isCustomSecUnitBox; protected UITextField secUnitField; - public MinMaxValuePane() { + protected double p = TableLayout.PREFERRED; + protected double f = TableLayout.FILL; + protected double[] columnSize = {p, f}; + protected double[] rowSize = {p, p, p, p}; + + public MinMaxValuePane() { minCheckBox = new UICheckBox(Inter.getLocText(new String[]{"Custom", "Min_Value"})); minValueField = new UITextField(6); maxCheckBox = new UICheckBox(Inter.getLocText(new String[]{"Custom", "Max_Value"})); @@ -39,41 +44,41 @@ public class MinMaxValuePane extends JPanel { mainUnitField = new UITextField(6); isCustomSecUnitBox = new UICheckBox(Inter.getLocText("FR-Chart_SecondGraduationUnit")); secUnitField = new UITextField(6); - double p = TableLayout.PREFERRED; - double f = TableLayout.FILL; - double[] columnSize = { p, f }; - double[] rowSize = { p, p, p, p}; - - Component[][] components = getPanelComponents(); - JPanel panel = TableLayoutHelper.createTableLayoutPane(components ,rowSize,columnSize); - this.setLayout(new BorderLayout()); - this.add(panel,BorderLayout.CENTER); - addComponentListener(components); - } - public void addComponentListener(Component[][] components) { - for (int i = 0; i < components.length; i++) { - ((UICheckBox) components[i][0]).addActionListener(new ActionListener() { + Component[][] components = getPanelComponents(); + JPanel panel = TableLayoutHelper.createTableLayoutPane(components, getRowSize(), columnSize); + this.setLayout(new BorderLayout()); + this.add(panel, BorderLayout.CENTER); + addComponentListener(components); + } - @Override - public void actionPerformed(ActionEvent e) { - checkBoxUse(); - } - }); - ChartSwingUtils.addListener((UICheckBox) components[i][0], (UITextField) components[i][1]); - } - } + public double[] getRowSize() { + return rowSize; + } - protected Component[][] getPanelComponents() { - return new Component[][]{ - new Component[]{minCheckBox, minValueField}, - new Component[]{maxCheckBox, maxValueField}, - new Component[]{isCustomMainUnitBox, mainUnitField}, - new Component[]{isCustomSecUnitBox, secUnitField}, - }; - } + public void addComponentListener(Component[][] components) { + for (int i = 0; i < components.length; i++) { + ((UICheckBox) components[i][0]).addActionListener(new ActionListener() { + + @Override + public void actionPerformed(ActionEvent e) { + checkBoxUse(); + } + }); + ChartSwingUtils.addListener((UICheckBox) components[i][0], (UITextField) components[i][1]); + } + } + + protected Component[][] getPanelComponents() { + return new Component[][]{ + new Component[]{minCheckBox, minValueField}, + new Component[]{maxCheckBox, maxValueField}, + new Component[]{isCustomMainUnitBox, mainUnitField}, + new Component[]{isCustomSecUnitBox, secUnitField}, + }; + } - private void checkBoxUse() { + protected void checkBoxUse() { minValueField.setEnabled(minCheckBox.isSelected()); maxValueField.setEnabled(maxCheckBox.isSelected()); @@ -104,7 +109,7 @@ public class MinMaxValuePane extends JPanel { if(axis.getMinValue() != null) { minValueField.setText(axis.getMinValue().toString()); } - } + } // 最大值 if (axis.isCustomMaxValue()) { @@ -112,7 +117,7 @@ public class MinMaxValuePane extends JPanel { if(axis.getMaxValue() != null) { maxValueField.setText(axis.getMaxValue().toString()); } - } + } // 主次刻度单位 if (axis.isCustomMainUnit()) { @@ -120,7 +125,7 @@ public class MinMaxValuePane extends JPanel { if(axis.getMainUnit() != null) { mainUnitField.setText(axis.getMainUnit().toString()); } - } + } if(axis.isCustomSecUnit()) { isCustomSecUnitBox.setSelected(true); @@ -153,7 +158,7 @@ public class MinMaxValuePane extends JPanel { updateUnit(axis); } - private void updateUnit(Axis axis) { + protected void updateUnit(Axis axis) { // 主要刻度 if (isCustomMainUnitBox.isSelected()){ String increment = mainUnitField.getText(); From db32155dadc547402719bc6d62c9276833dbbef3 Mon Sep 17 00:00:00 2001 From: mengao <283296419@qq.com> Date: Thu, 6 Apr 2017 10:55:05 +0800 Subject: [PATCH 06/72] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=9B=BD=E9=99=85?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mainframe/chart/gui/style/axis/ChartValuePane.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/designer_chart/src/com/fr/design/mainframe/chart/gui/style/axis/ChartValuePane.java b/designer_chart/src/com/fr/design/mainframe/chart/gui/style/axis/ChartValuePane.java index e497bcb80f..8916efe254 100644 --- a/designer_chart/src/com/fr/design/mainframe/chart/gui/style/axis/ChartValuePane.java +++ b/designer_chart/src/com/fr/design/mainframe/chart/gui/style/axis/ChartValuePane.java @@ -72,7 +72,7 @@ public class ChartValuePane extends ChartAxisUsePane{ axisLineStylePane = new ChartAxisLineStylePane(); zeroPane = aliagnZero4Second(); - axisReversed = new UICheckBox(Inter.getLocText("AxisReversed")); + axisReversed = new UICheckBox(Inter.getLocText("FR-Designer_AxisReversed")); unitCombox = new UIComboBox(ChartConstants.UNIT_I18N_VALUES); formatPane = new FormatPane(); axisLabelPane = new ChartAxisLabelPane(); @@ -171,8 +171,8 @@ public class ChartValuePane extends ChartAxisUsePane{ // 返回对数相关界面. 百分比 没有此界面. protected JPanel addLogarithmicPane2ValuePane() { JPanel labelLogPane = FRGUIPaneFactory.createLeftFlowZeroGapBorderPane(); - labelLogPane.add(logBox = new UICheckBox(Inter.getLocText("Logarithmic")+":")); - labelLogPane.add(new UILabel(Inter.getLocText("Chart_Log_Base"))); + labelLogPane.add(logBox = new UICheckBox(Inter.getLocText("FR-Designer_Logarithmic")+":")); + labelLogPane.add(new UILabel(Inter.getLocText("FR-Designer_Chart_Log_Base"))); logBaseField = new UITextField(4); logBaseField.setText("10"); @@ -221,7 +221,7 @@ public class ChartValuePane extends ChartAxisUsePane{ * @return 返回标题. */ public String title4PopupWindow() { - return Inter.getLocText("Chart_F_Radar_Axis"); + return Inter.getLocText("FR-Designer_Chart_F_Radar_Axis"); } @Override From ae78f289b6c4c4b23c590313e4b9785f77706707 Mon Sep 17 00:00:00 2001 From: "yaoh.wu" Date: Thu, 6 Apr 2017 14:40:25 +0800 Subject: [PATCH 07/72] =?UTF-8?q?FRM=E7=BB=84=E4=BB=B6=E5=A4=8D=E7=94=A8?= =?UTF-8?q?=E8=87=AA=E9=80=82=E5=BA=94=E5=B8=83=E5=B1=80bug=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D=EF=BC=8C=E4=B8=8D=E8=83=BD=E7=B2=98=E8=B4=B4=E6=97=B6?= =?UTF-8?q?=E5=BC=B9=E7=AA=97=E6=8F=90=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/fr/design/locale/designer.properties | 2 + .../design/locale/designer_en_US.properties | 2 + .../design/locale/designer_zh_CN.properties | 2 + .../design/locale/designer_zh_TW.properties | 2 + .../adapters/layout/FRBodyLayoutAdapter.java | 26 ++- .../layout/FRTabFitLayoutAdapter.java | 15 +- .../designer/beans/models/SelectionModel.java | 29 +-- .../beans/painters/AbstractPainter.java | 187 +++++++++--------- .../fr/design/mainframe/FormSelection.java | 12 +- .../design/mainframe/FormSelectionUtils.java | 7 +- 10 files changed, 161 insertions(+), 123 deletions(-) diff --git a/designer_base/src/com/fr/design/locale/designer.properties b/designer_base/src/com/fr/design/locale/designer.properties index 7c4847f3ca..0eda01dee6 100644 --- a/designer_base/src/com/fr/design/locale/designer.properties +++ b/designer_base/src/com/fr/design/locale/designer.properties @@ -585,3 +585,5 @@ FR-Designer-Move_Tab_First=move to first FR-Designer-Move_Tab_End=move to end FR-Designer-Move_Tab_Next=move to next FR-Designer-Move_Tab_Prev=move to previous +FR-Designer_Too_Large_To_Paste=too large to paste +FR-Designer_Too_Small_To_Paste=Too small to paste diff --git a/designer_base/src/com/fr/design/locale/designer_en_US.properties b/designer_base/src/com/fr/design/locale/designer_en_US.properties index fab277ad6f..0dc0c050f9 100644 --- a/designer_base/src/com/fr/design/locale/designer_en_US.properties +++ b/designer_base/src/com/fr/design/locale/designer_en_US.properties @@ -586,3 +586,5 @@ FR-Designer-Move_Tab_First=move to first FR-Designer-Move_Tab_End=move to end FR-Designer-Move_Tab_Next=move to next FR-Designer-Move_Tab_Prev=move to previous +FR-Designer_Too_Large_To_Paste=Too large to paste! +FR-Designer_Too_Small_To_Paste=Too small to paste! diff --git a/designer_base/src/com/fr/design/locale/designer_zh_CN.properties b/designer_base/src/com/fr/design/locale/designer_zh_CN.properties index 5139b301f7..5631325835 100644 --- a/designer_base/src/com/fr/design/locale/designer_zh_CN.properties +++ b/designer_base/src/com/fr/design/locale/designer_zh_CN.properties @@ -590,3 +590,5 @@ FR-Designer-Move_Tab_First=\u79FB\u52A8\u5230\u9996\u4F4D FR-Designer-Move_Tab_End=\u79FB\u52A8\u5230\u672B\u5C3E FR-Designer-Move_Tab_Next=\u5F80\u540E\u79FB\u52A8 FR-Designer-Move_Tab_Prev=\u5F80\u524D\u79FB\u52A8 +FR-Designer_Too_Large_To_Paste=\u7EC4\u4EF6\u5927\u5C0F\u8D85\u51FA\u8FB9\u754C\uFF0C\u65E0\u6CD5\u7C98\u8D34\uFF01 +FR-Designer_Too_Small_To_Paste=\u6B64\u5904\u65E0\u6CD5\u7C98\u8D34\uFF0C\u5C0F\u4E8E\u7EC4\u4EF6\u6700\u5C0F\u9AD8\u5EA6\uFF01 diff --git a/designer_base/src/com/fr/design/locale/designer_zh_TW.properties b/designer_base/src/com/fr/design/locale/designer_zh_TW.properties index 10edd2d169..22d5581e12 100644 --- a/designer_base/src/com/fr/design/locale/designer_zh_TW.properties +++ b/designer_base/src/com/fr/design/locale/designer_zh_TW.properties @@ -578,3 +578,5 @@ FR-Designer-Move_Tab_First=\u79FB\u52D5\u5230\u9996\u4F4D FR-Designer-Move_Tab_End=\u79FB\u52D5\u5230\u672B\u5C3E FR-Designer-Move_Tab_Next=\u5F80\u5F8C\u79FB\u52D5 FR-Designer-Move_Tab_Prev=\u5F80\u524D\u79FB\u52D5 +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 diff --git a/designer_form/src/com/fr/design/designer/beans/adapters/layout/FRBodyLayoutAdapter.java b/designer_form/src/com/fr/design/designer/beans/adapters/layout/FRBodyLayoutAdapter.java index b3072667b2..75190ba3bf 100644 --- a/designer_form/src/com/fr/design/designer/beans/adapters/layout/FRBodyLayoutAdapter.java +++ b/designer_form/src/com/fr/design/designer/beans/adapters/layout/FRBodyLayoutAdapter.java @@ -640,11 +640,7 @@ public class FRBodyLayoutAdapter extends AbstractLayoutAdapter { * 又通过ComponentUtils.getRelativeBounds()方法获取到了绝对坐标, * 再次计算相对坐标,所以将y值重新变成绝对坐标。 * */ - if (currentCreator.getBackupParent().getLocation().y == WBorderLayout.DEFAULT_SIZE) { - y = y + WCardMainBorderLayout.TAB_HEIGHT + WBorderLayout.DEFAULT_SIZE; - } else { - y = y + WCardMainBorderLayout.TAB_HEIGHT; - } + y = y + WCardMainBorderLayout.TAB_HEIGHT + this.getParaEditorYOffset(); int tempX = x - rect.x; int tempY = y - rect.y; int containerX = container.getX(); @@ -675,6 +671,26 @@ public class FRBodyLayoutAdapter extends AbstractLayoutAdapter { return position; } + /** + * 获取因为参数面板导致的Y坐标偏移 + * + * @return 参数面板导致的Y坐标偏移 + */ + protected int getParaEditorYOffset() { + int offset = 0; + if (container.getParent() != null) { + Component components[] = container.getParent().getComponents(); + for (Component component : components) { + if (component instanceof XWParameterLayout) { + offset = component.getY() + component.getHeight(); + break; + } + } + } + return offset; + } + + /** * 组件交叉区域进行插入时,调整受到变动的其他组件,之前是交叉区域插入也按照三等分逻辑,后面测试中发现有bug,改为和bi一样的鼠标所在侧平分 * 默认左上角、右下角区域是垂直方向插入组件 diff --git a/designer_form/src/com/fr/design/designer/beans/adapters/layout/FRTabFitLayoutAdapter.java b/designer_form/src/com/fr/design/designer/beans/adapters/layout/FRTabFitLayoutAdapter.java index 352a3ba7a6..b1ca803c6b 100644 --- a/designer_form/src/com/fr/design/designer/beans/adapters/layout/FRTabFitLayoutAdapter.java +++ b/designer_form/src/com/fr/design/designer/beans/adapters/layout/FRTabFitLayoutAdapter.java @@ -7,11 +7,13 @@ package com.fr.design.designer.beans.adapters.layout; import com.fr.design.beans.GroupModel; import com.fr.design.designer.creator.XCreator; import com.fr.design.designer.creator.XLayoutContainer; +import com.fr.design.designer.creator.XWParameterLayout; import com.fr.design.designer.creator.XWidgetCreator; import com.fr.design.designer.creator.cardlayout.XWCardLayout; import com.fr.design.designer.creator.cardlayout.XWCardMainBorderLayout; import com.fr.design.designer.creator.cardlayout.XWTabFitLayout; import com.fr.design.designer.properties.FRTabFitLayoutPropertiesGroupModel; +import com.fr.design.mainframe.widget.editors.ParameterEditor; import com.fr.design.utils.ComponentUtils; import com.fr.form.ui.LayoutBorderStyle; import com.fr.form.ui.container.WBorderLayout; @@ -82,16 +84,14 @@ public class FRTabFitLayoutAdapter extends FRFitLayoutAdapter { return true; } - // tab布局的纵坐标受到tab高度的影响,判断的上边界取得是里面XWTabFitLayout的上边界, - // 实际计算的时候的纵坐标用了外层的CardMainBorerLayout,需要将tab高度减掉 - //将y值变为相对坐标以实现获取到鼠标drop位置的控件 - //TODO 可以直接在这边将x,y都变成相对坐标,这样在后面判断拖进来的新控件放置方式的时候就不用再判断了 + // tab布局的纵坐标受到tab高度以及参数面板高度的影响,判断的上边界取得是里面XWTabFitLayout的上边界, + // 实际计算的时候的纵坐标用了外层的CardMainBorerLayout,需要将tab高度和参数面板高度减掉 + // 将y值变为相对坐标以实现获取到鼠标drop位置的控件 + // TODO 可以直接在这边将x,y都变成相对坐标,这样在后面判断拖进来的新控件放置方式的时候就不用再判断了 private int adjustY(int y, XWTabFitLayout tabLayout) { XWCardLayout cardLayout = (XWCardLayout) tabLayout.getBackupParent(); LayoutBorderStyle style = cardLayout.toData().getBorderStyle(); - if (container.getLocation().y == WBorderLayout.DEFAULT_SIZE) { - y = y - WBorderLayout.DEFAULT_SIZE; - } + y = y - this.getParaEditorYOffset(); if (ComparatorUtils.equals(style.getType(), LayoutBorderStyle.TITLE)) { y = y - WCardMainBorderLayout.TAB_HEIGHT; } @@ -101,4 +101,5 @@ public class FRTabFitLayoutAdapter extends FRFitLayoutAdapter { protected Rectangle getLayoutBound(XWCardMainBorderLayout mainLayout) { return ComponentUtils.getRelativeBounds(mainLayout); } + } \ No newline at end of file diff --git a/designer_form/src/com/fr/design/designer/beans/models/SelectionModel.java b/designer_form/src/com/fr/design/designer/beans/models/SelectionModel.java index 1748fef4bd..a70d9b1566 100644 --- a/designer_form/src/com/fr/design/designer/beans/models/SelectionModel.java +++ b/designer_form/src/com/fr/design/designer/beans/models/SelectionModel.java @@ -13,6 +13,7 @@ import com.fr.design.form.util.XCreatorConstants; import com.fr.design.mainframe.FormDesigner; import com.fr.design.mainframe.FormSelection; import com.fr.design.mainframe.FormSelectionUtils; +import com.fr.design.utils.ComponentUtils; import com.fr.design.utils.gui.LayoutUtils; import com.fr.stable.ArrayUtils; @@ -26,7 +27,7 @@ import java.util.ArrayList; public class SelectionModel { //被粘贴组件在所选组件位置处往下、往右各错开20像素。执行多次粘贴时,在上一次粘贴的位置处错开20像素。 private static final int DELTA_X_Y = 20; //粘贴时候的偏移距离 - private static final int BORDER_PROPORTION = 20; + private static final double OFFSET_RELATIVE = 0.80; private static FormSelection clipboard = new FormSelection(); private FormDesigner designer; private FormSelection selection; @@ -140,14 +141,14 @@ public class SelectionModel { FormSelectionUtils.paste2Container(designer, (XLayoutContainer) selection.getSelectedCreator(), clipboard, rec.x + rec.width / 2, - rec.y + BORDER_PROPORTION); + rec.y + DELTA_X_Y); } else { Rectangle rec = selection.getRelativeBounds(); //自适应布局 FormSelectionUtils.paste2Container(designer, designer.getRootComponent(), clipboard, rec.x + rec.width / 2, - rec.y + BORDER_PROPORTION); + rec.y + DELTA_X_Y); } } else { //绝对布局 @@ -172,18 +173,22 @@ public class SelectionModel { * 粘贴时选择组件 */ private void selectedPaste() { - XLayoutContainer parent = null; + XLayoutContainer container = null; //获取到编辑器的表层容器(已选的组件的父容器就是表层容器) - parent = XCreatorUtils.getParentXLayoutContainer(selection.getSelectedCreator()); - if (parent != null && selection.getSelectedCreator().getParent() instanceof XWFitLayout) { + container = XCreatorUtils.getParentXLayoutContainer(selection.getSelectedCreator()); + if (container != null && selection.getSelectedCreator().getParent() instanceof XWFitLayout) { //自适应布局 - Rectangle rec = selection.getRelativeBounds(); - FormSelectionUtils.paste2Container(designer, parent, clipboard, rec.x + rec.width / 2, rec.y + - rec.height - BORDER_PROPORTION); - } else if (parent != null && selection.getSelectedCreator().getParent() instanceof XWAbsoluteLayout) { + Rectangle selectionRec = selection.getRelativeBounds(); + Rectangle containerRec = ComponentUtils.getRelativeBounds(container); + //计算自适应布局位置 + int positionX = selectionRec.x - containerRec.x + selectionRec.width / 2; + int positionY = (int) (selectionRec.y - containerRec.y + selectionRec.height * OFFSET_RELATIVE); + + FormSelectionUtils.paste2Container(designer, container, clipboard, positionX, positionY); + } else if (container != null && selection.getSelectedCreator().getParent() instanceof XWAbsoluteLayout) { //绝对布局 Rectangle rec = selection.getSelctionBounds(); - FormSelectionUtils.paste2Container(designer, parent, clipboard, rec.x + DELTA_X_Y, rec.y + DELTA_X_Y); + FormSelectionUtils.paste2Container(designer, container, clipboard, rec.x + DELTA_X_Y, rec.y + DELTA_X_Y); } } @@ -198,13 +203,13 @@ public class SelectionModel { if (creator.acceptType(XWParameterLayout.class)) { designer.removeParaComponent(); } - removeCreatorFromContainer(creator, creator.getWidth(), creator.getHeight()); creator.removeAll(); // 清除被选中的组件 selection.reset(); } setSelectedCreator(designer.getRootComponent()); + FormSelectionUtils.rebuildSelection(designer); // 触发事件 designer.getEditListenerTable().fireCreatorModified(DesignerEvent.CREATOR_DELETED); designer.repaint(); diff --git a/designer_form/src/com/fr/design/designer/beans/painters/AbstractPainter.java b/designer_form/src/com/fr/design/designer/beans/painters/AbstractPainter.java index 06565fe4f3..fca5197aee 100644 --- a/designer_form/src/com/fr/design/designer/beans/painters/AbstractPainter.java +++ b/designer_form/src/com/fr/design/designer/beans/painters/AbstractPainter.java @@ -1,93 +1,96 @@ -package com.fr.design.designer.beans.painters; - -import java.awt.Color; -import java.awt.Graphics; -import java.awt.Graphics2D; -import java.awt.Point; -import java.awt.Rectangle; -import java.awt.Stroke; - -import com.fr.design.designer.beans.HoverPainter; -import com.fr.design.designer.creator.XCreator; -import com.fr.design.designer.creator.XLayoutContainer; -import com.fr.design.form.util.XCreatorConstants; -import com.fr.general.Inter; - -public abstract class AbstractPainter implements HoverPainter { - - protected Point hotspot; - protected Rectangle hotspot_bounds; - protected XLayoutContainer container; - protected XCreator creator; - - /** - * 构造函数 - * @param container 容器 - */ - public AbstractPainter(XLayoutContainer container) { - this.container = container; - } - - @Override - public void setHotspot(Point p) { - hotspot = p; - } - - /** - * 画初始区域 - * @param g 画图类 - * @param startX 起始x位置 - * @param startY 起始y位置 - */ - public void paint(Graphics g, int startX, int startY) { - if(hotspot_bounds != null){ - drawHotspot(g, hotspot_bounds.x, hotspot_bounds.y, hotspot_bounds.width, hotspot_bounds.height, Color.lightGray, true, false); - } - } - - /** - * 设置边界 - * @param rect 位置 - */ - @Override - public void setRenderingBounds(Rectangle rect) { - hotspot_bounds = rect; - } - - @Override - public void setCreator(XCreator component) { - this.creator = component; - } - - protected void drawHotspot(Graphics g, int x, int y, int width, int height, boolean accept) { - Color bColor = accept ? XCreatorConstants.LAYOUT_HOTSPOT_COLOR : XCreatorConstants.LAYOUT_FORBIDDEN_COLOR; - drawHotspot(g, x, y, width, height, bColor, accept, false); - } - - /** - * 自适应布局那边渲染提示,要画整个背景,不是画边框 - */ - protected void drawRegionBackground(Graphics g, int x, int y, int width, int height, Color bColor, boolean accept) { - drawHotspot(g, x, y, width, height, bColor, accept, true); - } - - protected void drawHotspot(Graphics g, int x, int y, int width, int height, Color bColor, boolean accept, boolean drawBackground) { - Graphics2D g2d = (Graphics2D) g; - Color color = g2d.getColor(); - Stroke backup = g2d.getStroke(); - // 设置线条的样式 - g2d.setStroke(XCreatorConstants.STROKE); - g2d.setColor(bColor); - if (!accept) { - g2d.drawString(Inter.getLocText("Cannot-Add_To_This_Area") + "!", x + width / 3, y + height / 2); - } else if (drawBackground) { - g2d.fillRect(x, y, width, height); - } else { - g2d.drawRect(x, y, width, height); - } - g2d.setStroke(backup); - g2d.setColor(color); - } - - +package com.fr.design.designer.beans.painters; + +import java.awt.Color; +import java.awt.Graphics; +import java.awt.Graphics2D; +import java.awt.Point; +import java.awt.Rectangle; +import java.awt.Stroke; + +import com.fr.design.designer.beans.HoverPainter; +import com.fr.design.designer.creator.XCreator; +import com.fr.design.designer.creator.XLayoutContainer; +import com.fr.design.form.util.XCreatorConstants; +import com.fr.general.Inter; + +public abstract class AbstractPainter implements HoverPainter { + + protected Point hotspot; + protected Rectangle hotspot_bounds; + protected XLayoutContainer container; + protected XCreator creator; + + /** + * 构造函数 + * + * @param container 容器 + */ + public AbstractPainter(XLayoutContainer container) { + this.container = container; + } + + @Override + public void setHotspot(Point p) { + hotspot = p; + } + + /** + * 画初始区域 + * + * @param g 画图类 + * @param startX 起始x位置 + * @param startY 起始y位置 + */ + public void paint(Graphics g, int startX, int startY) { + if (hotspot_bounds != null) { + drawHotspot(g, hotspot_bounds.x, hotspot_bounds.y, hotspot_bounds.width, hotspot_bounds.height, Color.lightGray, true, false); + } + } + + /** + * 设置边界 + * + * @param rect 位置 + */ + @Override + public void setRenderingBounds(Rectangle rect) { + hotspot_bounds = rect; + } + + @Override + public void setCreator(XCreator component) { + this.creator = component; + } + + protected void drawHotspot(Graphics g, int x, int y, int width, int height, boolean accept) { + Color bColor = accept ? XCreatorConstants.LAYOUT_HOTSPOT_COLOR : XCreatorConstants.LAYOUT_FORBIDDEN_COLOR; + drawHotspot(g, x, y, width, height, bColor, accept, false); + } + + /** + * 自适应布局那边渲染提示,要画整个背景,不是画边框 + */ + protected void drawRegionBackground(Graphics g, int x, int y, int width, int height, Color bColor, boolean accept) { + drawHotspot(g, x, y, width, height, bColor, accept, true); + } + + protected void drawHotspot(Graphics g, int x, int y, int width, int height, Color bColor, boolean accept, boolean drawBackground) { + Graphics2D g2d = (Graphics2D) g; + Color color = g2d.getColor(); + Stroke backup = g2d.getStroke(); + // 设置线条的样式 + g2d.setStroke(XCreatorConstants.STROKE); + g2d.setColor(bColor); + if (!accept) { + g2d.drawString(Inter.getLocText("Cannot-Add_To_This_Area") + "!", x + width / 3, y + height / 2); + } else if (drawBackground) { + g2d.fillRect(x, y, width, height); + } else { + g2d.drawRect(x, y, width, height); + } + g2d.setStroke(backup); + g2d.setColor(color); + } + + } \ No newline at end of file diff --git a/designer_form/src/com/fr/design/mainframe/FormSelection.java b/designer_form/src/com/fr/design/mainframe/FormSelection.java index f30cf2e84f..ff809371c5 100644 --- a/designer_form/src/com/fr/design/mainframe/FormSelection.java +++ b/designer_form/src/com/fr/design/mainframe/FormSelection.java @@ -8,12 +8,7 @@ import com.fr.base.FRContext; import com.fr.design.designer.beans.AdapterBus; import com.fr.design.designer.beans.LayoutAdapter; import com.fr.design.designer.beans.location.Direction; -import com.fr.design.designer.creator.XComponent; -import com.fr.design.designer.creator.XCreator; -import com.fr.design.designer.creator.XCreatorUtils; -import com.fr.design.designer.creator.XLayoutContainer; -import com.fr.design.designer.creator.XWAbsoluteLayout; -import com.fr.design.designer.creator.XWParameterLayout; +import com.fr.design.designer.creator.*; import com.fr.form.ui.Widget; import com.fr.design.utils.ComponentUtils; import com.fr.design.utils.gui.LayoutUtils; @@ -273,6 +268,11 @@ public class FormSelection { if (parent == null) { return; } + boolean changeCreator = creator.shouldScaleCreator() || creator.hasTitleStyle(); + if (parent.acceptType(XWFitLayout.class) && changeCreator) { + creator = (XCreator) creator.getParent(); + } + parent.getLayoutAdapter().removeBean(creator, creator.getWidth(), creator.getHeight()); // 删除其根组件,同时就删除了同时被选择的叶子组件 parent.remove(creator); LayoutManager layout = parent.getLayout(); diff --git a/designer_form/src/com/fr/design/mainframe/FormSelectionUtils.java b/designer_form/src/com/fr/design/mainframe/FormSelectionUtils.java index 334c2fc373..3230cd5601 100644 --- a/designer_form/src/com/fr/design/mainframe/FormSelectionUtils.java +++ b/designer_form/src/com/fr/design/mainframe/FormSelectionUtils.java @@ -8,6 +8,7 @@ import com.fr.design.designer.creator.*; import com.fr.form.ui.Widget; import com.fr.form.ui.container.WTitleLayout; import com.fr.general.ComparatorUtils; +import com.fr.general.Inter; import java.awt.*; import java.util.ArrayList; @@ -61,7 +62,7 @@ public class FormSelectionUtils { x + creator.getX() - rec.x + copiedCreator.getWidth() / 2, y + creator.getY() - rec.y + copiedCreator.getHeight() / 2); if (!adapter.accept(copiedCreator, point.x, point.y)) { - designer.showMessageDialog("Too large to paste into container"); + designer.showMessageDialog(Inter.getLocText("FR-Designer_Too_Large_To_Paste")); return; } boolean addSuccess = adapter.addBean(copiedCreator, point.x, point.y); @@ -87,6 +88,10 @@ public class FormSelectionUtils { try { Widget copied = copyWidget(designer, creator); XCreator copiedCreator = XCreatorUtils.createXCreator(copied, creator.getSize()); + if (!adapter.accept(copiedCreator, x, y)) { + designer.showMessageDialog(Inter.getLocText("FR-Designer_Too_Small_To_Paste")); + return; + } boolean addSuccess = adapter.addBean(copiedCreator, x, y); if (addSuccess) { designer.getSelectionModel().getSelection().addSelectedCreator(copiedCreator); From c425cf94e55e0779c012fba198e06d599739e861 Mon Sep 17 00:00:00 2001 From: mengao <283296419@qq.com> Date: Thu, 6 Apr 2017 14:43:23 +0800 Subject: [PATCH 08/72] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=9B=BD=E9=99=85?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build.9.0.gradle | 75 ++++++++++++++++ designer_base/build.9.0.gradle | 69 +++++++++++++++ .../com/fr/design/locale/designer.properties | 4 + .../design/locale/designer_en_US.properties | 4 + .../design/locale/designer_ja_JP.properties | 4 + .../design/locale/designer_ko_KR.properties | 4 + .../design/locale/designer_zh_CN.properties | 4 + .../design/locale/designer_zh_TW.properties | 4 + .../fr/design/chart/axis/MinMaxValuePane.java | 13 +-- .../fun/CustomIndepentChartUIProvider.java | 87 +++++++++++++++++++ designer_form/build.9.0.gradle | 70 +++++++++++++++ .../mainframe/ElementCaseThumbnail.java | 17 ++++ 12 files changed, 349 insertions(+), 6 deletions(-) create mode 100644 build.9.0.gradle create mode 100644 designer_base/build.9.0.gradle create mode 100644 designer_chart/src/com/fr/design/chart/fun/CustomIndepentChartUIProvider.java create mode 100644 designer_form/build.9.0.gradle create mode 100644 designer_form/src/com/fr/design/mainframe/ElementCaseThumbnail.java diff --git a/build.9.0.gradle b/build.9.0.gradle new file mode 100644 index 0000000000..132db468fb --- /dev/null +++ b/build.9.0.gradle @@ -0,0 +1,75 @@ +apply plugin: "java" +tasks.withType(JavaCompile){ + options.encoding = "UTF-8" +} + +def basicDir="../" +def libDir="${basicDir}/lib" + +task appletJar<<{ + ant{ + mkdir(dir:"./tmp") + mkdir(dir:"build/classes/main") + copy(todir:"build/classes/"){ + fileset(dir:"${basicDir}/core/build/classes/main") + fileset(dir:"${basicDir}/chart/build/classes/main") + fileset(dir:"${basicDir}/report/build/classes/main") + fileset(dir:"${basicDir}/platform/build/classes/main") + } + unjar(src:"${libDir}/3rd.jar",dest:"./tmp") + unjar(src:"${libDir}/servlet-api.jar",dest:"./tmp") + jar(jarfile:"build/libs/fr-applet-8.0.jar"){ + fileset(dir:"build/classes"){ + exclude(name:"*.*") + exclude(name:"bin/*.*") + exclude(name:"classes/**") + exclude(name:"com/fr/schedule/**") + exclude(name:"com/fr/cell/**") + exclude(name:"com/fr/dialog/**") + exclude(name:"com/fr/view/**") + exclude(name:"com/fr/web/**") + exclude(name:"com/fr/fs/**") + exclude(name:"com/fr/design/**") + exclude(name:"com/fr/start/**") + exclude(name:"com/fr/process/**") + } + fileset(dir:"./tmp"){ + include(name:"javax/mail/**") + include(name:"javax/servlet/**") + include(name:"org/freehep/**") + include(name:"com/fr/third/JAI/**") + include(name:"com/fr/third/antlr/**") + include(name:"com/fr/third/javax/**") + include(name:"com/sun/xml/**") + include(name:"javax/xml/**") + + } + fileset(dir:"build/classes"){ + include(name:"com/fr/web/*.class") + include(name:"com/fr/web/attr/*.class") + } + } + delete(dir:"./tmp") + def jdk6home= "D:/FineReport/develop/java/jdk1.6u35" + def keystore="frapplet.store" + def keycert="fr.cert" + def keypassword="123456" + def keyalias="fr" + + exec(executable:"${jdk6home}/bin/keytool"){ + arg(line:"-genkey -dname "CN=FineReport L=NanJing C=China" -keystore ${keystore} -alias ${keyalias} -validity 3650 -storepass ${keypassword}") + } + exec(executable:"${jdk6home}/bin/keytool"){ + arg(line:"-export -keystore ${keystore} -alias ${keyalias} -file ${keycert} -storepass ${keypassword}") + } + + exec(executable:"${jdk6home}/bin/jarsigner"){ + arg(line:"-keystore ${keystore} -storepass ${keypassword} 'build/libs/fr-applet-8.0.jar' ${keyalias}") + } + delete(file:"${keystore}") + delete(file:"${keycert}") + delete(dir:"build/classes") + + } + +} \ No newline at end of file diff --git a/designer_base/build.9.0.gradle b/designer_base/build.9.0.gradle new file mode 100644 index 0000000000..af0dc75f05 --- /dev/null +++ b/designer_base/build.9.0.gradle @@ -0,0 +1,69 @@ + +apply plugin: 'java' +tasks.withType(JavaCompile){ + options.encoding = 'UTF-8' +} +//指定构建的jdk版本 +sourceCompatibility=1.7 +//指定生成jar包版本 +version='8.0' +//生成jar包重命名 +jar{ + baseName='fr-designer-core' +} + + +def srcDir="." +def baseDir=".." + +//指定源码路径 +sourceSets{ + main{ + java{ + srcDirs=["${srcDir}/src"] + } + } +} +//获取什么分支名 +FileTree files =fileTree(dir:'./',include:'build.*.gradle') +def buildDir=files[0].path.substring(0,files[0].path.lastIndexOf ('\\')) +buildDir=buildDir.substring(0,buildDir.lastIndexOf ('\\')) +def branchName=buildDir.substring(buildDir.lastIndexOf ('\\')+1) + +//声明外部依赖 +dependencies{ + compile fileTree(dir:"../${baseDir}/lib",include:'**/*.jar') + compile fileTree(dir:"../${baseDir}",include:"**/build/libs/*.jar",exclude:"bi/**/*.jar") + testCompile 'junit:junit:4.12' +} +//复制非.java文件到classes文件夹下参与打包 +task copyFile(type:Copy,dependsOn:compileJava){ + copy{ + from ("${srcDir}/src"){ + exclude '**/.setting/**','.classpath','.project','**/*.java','**/*.db','**/*.g','**/package.html' + } + into 'build/classes/main' + } + +} + + +//压缩项目中的js文件 +task compressJS{ + ant.taskdef(name:'yuicompress',classname:'com.yahoo.platform.yui.compressor.YUICompressTask'){ + classpath { + fileset(dir:"../${baseDir}/lib4build",includes:'**/*.jar') + } + } + ant.yuicompress(linebreak:"500",warn:"false", munge:"yes",preserveallsemicolons:"false",charset:"utf-8",encoding:"utf-8",outputfolder:'build/classes/main'){ + fileset (dir:"${srcDir}/src"){ + include (name:'**/*.js') + include (name:'**/*.css') + } + + } +} +jar.dependsOn compressJS + + + diff --git a/designer_base/src/com/fr/design/locale/designer.properties b/designer_base/src/com/fr/design/locale/designer.properties index 7c4847f3ca..8bf32d6a30 100644 --- a/designer_base/src/com/fr/design/locale/designer.properties +++ b/designer_base/src/com/fr/design/locale/designer.properties @@ -585,3 +585,7 @@ FR-Designer-Move_Tab_First=move to first FR-Designer-Move_Tab_End=move to end FR-Designer-Move_Tab_Next=move to next FR-Designer-Move_Tab_Prev=move to previous +FR-Designer_AxisReversed=Axis Reversed +FR-Designer_Logarithmic=Logarithmic +FR-Designer_Chart_Log_Base=Log Base +FR-Designer_Chart_F_Radar_Axis=Chart_F_Radar_Axis diff --git a/designer_base/src/com/fr/design/locale/designer_en_US.properties b/designer_base/src/com/fr/design/locale/designer_en_US.properties index fab277ad6f..ae93b97f3f 100644 --- a/designer_base/src/com/fr/design/locale/designer_en_US.properties +++ b/designer_base/src/com/fr/design/locale/designer_en_US.properties @@ -586,3 +586,7 @@ FR-Designer-Move_Tab_First=move to first FR-Designer-Move_Tab_End=move to end FR-Designer-Move_Tab_Next=move to next FR-Designer-Move_Tab_Prev=move to previous +FR-Designer_AxisReversed=Axis in reverse order +FR-Designer_Logarithmic=Log scale +FR-Designer_Chart_Log_Base=Log Base +FR-Designer_Chart_F_Radar_Axis=Value Axis diff --git a/designer_base/src/com/fr/design/locale/designer_ja_JP.properties b/designer_base/src/com/fr/design/locale/designer_ja_JP.properties index 4d68093c75..1b1c1a6c00 100644 --- a/designer_base/src/com/fr/design/locale/designer_ja_JP.properties +++ b/designer_base/src/com/fr/design/locale/designer_ja_JP.properties @@ -556,3 +556,7 @@ FR-Designer-Move_Tab_First= FR-Designer-Move_Tab_End= FR-Designer-Move_Tab_Next= FR-Designer-Move_Tab_Prev= +FR-Designer_AxisReversed=\u8EF8\u9006\u914D\u5217 +FR-Designer_Logarithmic=\u5BFE\u6570\u76EE\u76DB\u308A +FR-Designer_Chart_Log_Base=\u5E95\u6570 +FR-Designer_Chart_F_Radar_Axis=\u5782\u76F4\u8EF8 diff --git a/designer_base/src/com/fr/design/locale/designer_ko_KR.properties b/designer_base/src/com/fr/design/locale/designer_ko_KR.properties index 14086e8814..9df9125a94 100644 --- a/designer_base/src/com/fr/design/locale/designer_ko_KR.properties +++ b/designer_base/src/com/fr/design/locale/designer_ko_KR.properties @@ -553,3 +553,7 @@ FR-Designer-Move_Tab_First= FR-Designer-Move_Tab_End= FR-Designer-Move_Tab_Next= FR-Designer-Move_Tab_Prev= +FR-Designer_AxisReversed=\uCD95\uC5ED\uC21C +FR-Designer_Logarithmic=\uB85C\uADF8\uB208\uAE08 +FR-Designer_Chart_Log_Base=\uAE30\uC218 +FR-Designer_Chart_F_Radar_Axis=\uAC12\uCD95 diff --git a/designer_base/src/com/fr/design/locale/designer_zh_CN.properties b/designer_base/src/com/fr/design/locale/designer_zh_CN.properties index 5139b301f7..7c3917275a 100644 --- a/designer_base/src/com/fr/design/locale/designer_zh_CN.properties +++ b/designer_base/src/com/fr/design/locale/designer_zh_CN.properties @@ -590,3 +590,7 @@ FR-Designer-Move_Tab_First=\u79FB\u52A8\u5230\u9996\u4F4D FR-Designer-Move_Tab_End=\u79FB\u52A8\u5230\u672B\u5C3E FR-Designer-Move_Tab_Next=\u5F80\u540E\u79FB\u52A8 FR-Designer-Move_Tab_Prev=\u5F80\u524D\u79FB\u52A8 +FR-Designer_AxisReversed=\u8F74\u9006\u5E8F +FR-Designer_Logarithmic=\u5BF9\u6570\u523B\u5EA6 +FR-Designer_Chart_Log_Base=\u5E95\u6570 +FR-Designer_Chart_F_Radar_Axis=\u503C\u8F74 diff --git a/designer_base/src/com/fr/design/locale/designer_zh_TW.properties b/designer_base/src/com/fr/design/locale/designer_zh_TW.properties index 10edd2d169..8693d716e1 100644 --- a/designer_base/src/com/fr/design/locale/designer_zh_TW.properties +++ b/designer_base/src/com/fr/design/locale/designer_zh_TW.properties @@ -578,3 +578,7 @@ FR-Designer-Move_Tab_First=\u79FB\u52D5\u5230\u9996\u4F4D FR-Designer-Move_Tab_End=\u79FB\u52D5\u5230\u672B\u5C3E FR-Designer-Move_Tab_Next=\u5F80\u5F8C\u79FB\u52D5 FR-Designer-Move_Tab_Prev=\u5F80\u524D\u79FB\u52D5 +FR-Designer_AxisReversed=\u8EF8\u9006\u5E8F +FR-Designer_Logarithmic=\u5C0D\u6578\u523B\u5EA6 +FR-Designer_Chart_Log_Base=\u5E95\u6578 +FR-Designer_Chart_F_Radar_Axis=\u503C\u8EF8 diff --git a/designer_chart/src/com/fr/design/chart/axis/MinMaxValuePane.java b/designer_chart/src/com/fr/design/chart/axis/MinMaxValuePane.java index 17509bd523..2375eb4e64 100644 --- a/designer_chart/src/com/fr/design/chart/axis/MinMaxValuePane.java +++ b/designer_chart/src/com/fr/design/chart/axis/MinMaxValuePane.java @@ -30,10 +30,6 @@ public class MinMaxValuePane extends JPanel { protected UICheckBox isCustomSecUnitBox; protected UITextField secUnitField; - protected double p = TableLayout.PREFERRED; - protected double f = TableLayout.FILL; - protected double[] columnSize = {p, f}; - protected double[] rowSize = {p, p, p, p}; public MinMaxValuePane() { minCheckBox = new UICheckBox(Inter.getLocText(new String[]{"Custom", "Min_Value"})); @@ -45,14 +41,19 @@ public class MinMaxValuePane extends JPanel { isCustomSecUnitBox = new UICheckBox(Inter.getLocText("FR-Chart_SecondGraduationUnit")); secUnitField = new UITextField(6); + double p = TableLayout.PREFERRED; + double f = TableLayout.FILL; + double[] columnSize = {p, f}; + Component[][] components = getPanelComponents(); - JPanel panel = TableLayoutHelper.createTableLayoutPane(components, getRowSize(), columnSize); + JPanel panel = TableLayoutHelper.createTableLayoutPane(components, getRowSize(p), columnSize); this.setLayout(new BorderLayout()); this.add(panel, BorderLayout.CENTER); addComponentListener(components); } - public double[] getRowSize() { + public double[] getRowSize(double p) { + double[] rowSize = {p, p, p, p}; return rowSize; } diff --git a/designer_chart/src/com/fr/design/chart/fun/CustomIndepentChartUIProvider.java b/designer_chart/src/com/fr/design/chart/fun/CustomIndepentChartUIProvider.java new file mode 100644 index 0000000000..1ee82df454 --- /dev/null +++ b/designer_chart/src/com/fr/design/chart/fun/CustomIndepentChartUIProvider.java @@ -0,0 +1,87 @@ +package com.fr.design.chart.fun; + +import com.fr.chart.chartattr.Plot; +import com.fr.design.beans.BasicBeanPane; +import com.fr.design.condition.ConditionAttributesPane; +import com.fr.design.gui.frpane.AttributeChangeListener; +import com.fr.design.mainframe.chart.AbstractChartAttrPane; +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.mainframe.chart.gui.type.AbstractChartTypePane; + +/** + * Created by mengao on 2017/3/29. + */ +public interface CustomIndepentChartUIProvider { + + String XML_TAG = "CustomIndepentChartUIProvider"; + + int CURRENT_API_LEVEL = 3; + + /** + * 图表的类型定义界面类型,就是属性表的第一个界面 + * + * @return 图表的类型定义界面类型 + */ + AbstractChartTypePane getPlotTypePane(); + + /** + * 数据集数据源的界面 + * + * @return 数据集数据源的界面 + */ + AbstractTableDataContentPane getTableDataSourcePane(Plot plot, ChartDataPane parent); + + + /** + * 单元格数据源的界面 + * + * @return 单元格数据源的界面 + */ + AbstractReportDataContentPane getReportDataSourcePane(Plot plot, ChartDataPane parent); + + /** + * 条件属性界面 + * + * @return 条件属性界面 + */ + ConditionAttributesPane getPlotConditionPane(Plot plot); + + /** + * 系列界面 + * + * @return 系列界面 + */ + BasicBeanPane getPlotSeriesPane(ChartStylePane parent, Plot plot); + + + /** + * 图表的属性界面数组 + * + * @return 属性界面 + */ + AbstractChartAttrPane[] getAttrPaneArray(AttributeChangeListener listener); + + ChartDataPane getChartDataPane(AttributeChangeListener listener); + + /** + * 是否使用默认的界面,为了避免界面来回切换 + * + * @return 是否使用默认的界面 + */ + boolean isUseDefaultPane(); + + /** + * 图标路径 + * + * @return 图标路径 + */ + String getIconPath(); + + /** + * plot面板的标题 + */ + String getPlotTypeTitle4PopupWindow(); +} diff --git a/designer_form/build.9.0.gradle b/designer_form/build.9.0.gradle new file mode 100644 index 0000000000..5c14f78a49 --- /dev/null +++ b/designer_form/build.9.0.gradle @@ -0,0 +1,70 @@ + +apply plugin: 'java' +tasks.withType(JavaCompile){ + options.encoding = 'UTF-8' +} +//指定构建的jdk版本 +sourceCompatibility=1.7 +//指定生成jar包版本 +version='8.0' +//生成jar包重命名 +jar{ + baseName='fr-designer-report' +} + + +def srcDir="." +def baseDir=".." + +//指定源码路径 +sourceSets{ + main{ + java{ + srcDirs=["${srcDir}/src", + "${srcDir}/../designer/src"] + } + } +} +//获取什么分支名 +FileTree files =fileTree(dir:'./',include:'build.*.gradle') +def buildDir=files[0].path.substring(0,files[0].path.lastIndexOf ('\\')) +buildDir=buildDir.substring(0,buildDir.lastIndexOf ('\\')) +def branchName=buildDir.substring(buildDir.lastIndexOf ('\\')+1) + +//声明外部依赖 +dependencies{ + compile fileTree(dir:"../${baseDir}/lib",include:'**/*.jar') + compile fileTree(dir:"../${baseDir}",include:"**/build/libs/*.jar",exclude:"bi/**/*.jar") + testCompile 'junit:junit:4.12' +} +//复制非.java文件到classes文件夹下参与打包 +task copyFile(type:Copy,dependsOn:compileJava){ + copy{ + from ("${srcDir}/src"){ + exclude '**/.setting/**','.classpath','.project','**/*.java','**/*.db','**/*.g','**/package.html' + } + into 'build/classes/main' + } + +} + + +//压缩项目中的js文件 +task compressJS{ + ant.taskdef(name:'yuicompress',classname:'com.yahoo.platform.yui.compressor.YUICompressTask'){ + classpath { + fileset(dir:"../${baseDir}/lib4build",includes:'**/*.jar') + } + } + ant.yuicompress(linebreak:"500",warn:"false", munge:"yes",preserveallsemicolons:"false",charset:"utf-8",encoding:"utf-8",outputfolder:'build/classes/main'){ + fileset (dir:"${srcDir}/src"){ + include (name:'**/*.js') + include (name:'**/*.css') + } + + } +} +jar.dependsOn compressJS + + + diff --git a/designer_form/src/com/fr/design/mainframe/ElementCaseThumbnail.java b/designer_form/src/com/fr/design/mainframe/ElementCaseThumbnail.java new file mode 100644 index 0000000000..107b6f3e33 --- /dev/null +++ b/designer_form/src/com/fr/design/mainframe/ElementCaseThumbnail.java @@ -0,0 +1,17 @@ +package com.fr.design.mainframe; + +//import com.fr.form.stable.fun.AbstractECThumbnailProcessor; +/** + * 报表块缩略图处理 + * 从xml中读取缩略图 + * Created by zhouping on 2017/2/22. + */ +//public class ElementCaseThumbnail extends AbstractECThumbnailProcessor { +// public ElementCaseThumbnail(){ +// } +// +// @Override +// public Image readThumbnail(XMLableReader reader) { +// return GeneralXMLTools.readImage(reader); +// } +//} From 7660db78bb2d95762d7eda0b6add6ba7b8bab363 Mon Sep 17 00:00:00 2001 From: mengao <283296419@qq.com> Date: Thu, 6 Apr 2017 14:47:55 +0800 Subject: [PATCH 09/72] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=9B=BD=E9=99=85?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- designer_base/build.9.0.gradle | 69 --------------------------------- designer_form/build.9.0.gradle | 70 ---------------------------------- 2 files changed, 139 deletions(-) delete mode 100644 designer_base/build.9.0.gradle delete mode 100644 designer_form/build.9.0.gradle diff --git a/designer_base/build.9.0.gradle b/designer_base/build.9.0.gradle deleted file mode 100644 index af0dc75f05..0000000000 --- a/designer_base/build.9.0.gradle +++ /dev/null @@ -1,69 +0,0 @@ - -apply plugin: 'java' -tasks.withType(JavaCompile){ - options.encoding = 'UTF-8' -} -//指定构建的jdk版本 -sourceCompatibility=1.7 -//指定生成jar包版本 -version='8.0' -//生成jar包重命名 -jar{ - baseName='fr-designer-core' -} - - -def srcDir="." -def baseDir=".." - -//指定源码路径 -sourceSets{ - main{ - java{ - srcDirs=["${srcDir}/src"] - } - } -} -//获取什么分支名 -FileTree files =fileTree(dir:'./',include:'build.*.gradle') -def buildDir=files[0].path.substring(0,files[0].path.lastIndexOf ('\\')) -buildDir=buildDir.substring(0,buildDir.lastIndexOf ('\\')) -def branchName=buildDir.substring(buildDir.lastIndexOf ('\\')+1) - -//声明外部依赖 -dependencies{ - compile fileTree(dir:"../${baseDir}/lib",include:'**/*.jar') - compile fileTree(dir:"../${baseDir}",include:"**/build/libs/*.jar",exclude:"bi/**/*.jar") - testCompile 'junit:junit:4.12' -} -//复制非.java文件到classes文件夹下参与打包 -task copyFile(type:Copy,dependsOn:compileJava){ - copy{ - from ("${srcDir}/src"){ - exclude '**/.setting/**','.classpath','.project','**/*.java','**/*.db','**/*.g','**/package.html' - } - into 'build/classes/main' - } - -} - - -//压缩项目中的js文件 -task compressJS{ - ant.taskdef(name:'yuicompress',classname:'com.yahoo.platform.yui.compressor.YUICompressTask'){ - classpath { - fileset(dir:"../${baseDir}/lib4build",includes:'**/*.jar') - } - } - ant.yuicompress(linebreak:"500",warn:"false", munge:"yes",preserveallsemicolons:"false",charset:"utf-8",encoding:"utf-8",outputfolder:'build/classes/main'){ - fileset (dir:"${srcDir}/src"){ - include (name:'**/*.js') - include (name:'**/*.css') - } - - } -} -jar.dependsOn compressJS - - - diff --git a/designer_form/build.9.0.gradle b/designer_form/build.9.0.gradle deleted file mode 100644 index 5c14f78a49..0000000000 --- a/designer_form/build.9.0.gradle +++ /dev/null @@ -1,70 +0,0 @@ - -apply plugin: 'java' -tasks.withType(JavaCompile){ - options.encoding = 'UTF-8' -} -//指定构建的jdk版本 -sourceCompatibility=1.7 -//指定生成jar包版本 -version='8.0' -//生成jar包重命名 -jar{ - baseName='fr-designer-report' -} - - -def srcDir="." -def baseDir=".." - -//指定源码路径 -sourceSets{ - main{ - java{ - srcDirs=["${srcDir}/src", - "${srcDir}/../designer/src"] - } - } -} -//获取什么分支名 -FileTree files =fileTree(dir:'./',include:'build.*.gradle') -def buildDir=files[0].path.substring(0,files[0].path.lastIndexOf ('\\')) -buildDir=buildDir.substring(0,buildDir.lastIndexOf ('\\')) -def branchName=buildDir.substring(buildDir.lastIndexOf ('\\')+1) - -//声明外部依赖 -dependencies{ - compile fileTree(dir:"../${baseDir}/lib",include:'**/*.jar') - compile fileTree(dir:"../${baseDir}",include:"**/build/libs/*.jar",exclude:"bi/**/*.jar") - testCompile 'junit:junit:4.12' -} -//复制非.java文件到classes文件夹下参与打包 -task copyFile(type:Copy,dependsOn:compileJava){ - copy{ - from ("${srcDir}/src"){ - exclude '**/.setting/**','.classpath','.project','**/*.java','**/*.db','**/*.g','**/package.html' - } - into 'build/classes/main' - } - -} - - -//压缩项目中的js文件 -task compressJS{ - ant.taskdef(name:'yuicompress',classname:'com.yahoo.platform.yui.compressor.YUICompressTask'){ - classpath { - fileset(dir:"../${baseDir}/lib4build",includes:'**/*.jar') - } - } - ant.yuicompress(linebreak:"500",warn:"false", munge:"yes",preserveallsemicolons:"false",charset:"utf-8",encoding:"utf-8",outputfolder:'build/classes/main'){ - fileset (dir:"${srcDir}/src"){ - include (name:'**/*.js') - include (name:'**/*.css') - } - - } -} -jar.dependsOn compressJS - - - From ae6c1291eb37d219fc45f1cb7f3aed2d6d74dbaa Mon Sep 17 00:00:00 2001 From: mengao <283296419@qq.com> Date: Thu, 6 Apr 2017 14:50:03 +0800 Subject: [PATCH 10/72] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=9B=BD=E9=99=85?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build.9.0.gradle | 75 ------------------------------------------------ 1 file changed, 75 deletions(-) delete mode 100644 build.9.0.gradle diff --git a/build.9.0.gradle b/build.9.0.gradle deleted file mode 100644 index 132db468fb..0000000000 --- a/build.9.0.gradle +++ /dev/null @@ -1,75 +0,0 @@ -apply plugin: "java" -tasks.withType(JavaCompile){ - options.encoding = "UTF-8" -} - -def basicDir="../" -def libDir="${basicDir}/lib" - -task appletJar<<{ - ant{ - mkdir(dir:"./tmp") - mkdir(dir:"build/classes/main") - copy(todir:"build/classes/"){ - fileset(dir:"${basicDir}/core/build/classes/main") - fileset(dir:"${basicDir}/chart/build/classes/main") - fileset(dir:"${basicDir}/report/build/classes/main") - fileset(dir:"${basicDir}/platform/build/classes/main") - } - unjar(src:"${libDir}/3rd.jar",dest:"./tmp") - unjar(src:"${libDir}/servlet-api.jar",dest:"./tmp") - jar(jarfile:"build/libs/fr-applet-8.0.jar"){ - fileset(dir:"build/classes"){ - exclude(name:"*.*") - exclude(name:"bin/*.*") - exclude(name:"classes/**") - exclude(name:"com/fr/schedule/**") - exclude(name:"com/fr/cell/**") - exclude(name:"com/fr/dialog/**") - exclude(name:"com/fr/view/**") - exclude(name:"com/fr/web/**") - exclude(name:"com/fr/fs/**") - exclude(name:"com/fr/design/**") - exclude(name:"com/fr/start/**") - exclude(name:"com/fr/process/**") - } - fileset(dir:"./tmp"){ - include(name:"javax/mail/**") - include(name:"javax/servlet/**") - include(name:"org/freehep/**") - include(name:"com/fr/third/JAI/**") - include(name:"com/fr/third/antlr/**") - include(name:"com/fr/third/javax/**") - include(name:"com/sun/xml/**") - include(name:"javax/xml/**") - - } - fileset(dir:"build/classes"){ - include(name:"com/fr/web/*.class") - include(name:"com/fr/web/attr/*.class") - } - } - delete(dir:"./tmp") - def jdk6home= "D:/FineReport/develop/java/jdk1.6u35" - def keystore="frapplet.store" - def keycert="fr.cert" - def keypassword="123456" - def keyalias="fr" - - exec(executable:"${jdk6home}/bin/keytool"){ - arg(line:"-genkey -dname "CN=FineReport L=NanJing C=China" -keystore ${keystore} -alias ${keyalias} -validity 3650 -storepass ${keypassword}") - } - exec(executable:"${jdk6home}/bin/keytool"){ - arg(line:"-export -keystore ${keystore} -alias ${keyalias} -file ${keycert} -storepass ${keypassword}") - } - - exec(executable:"${jdk6home}/bin/jarsigner"){ - arg(line:"-keystore ${keystore} -storepass ${keypassword} 'build/libs/fr-applet-8.0.jar' ${keyalias}") - } - delete(file:"${keystore}") - delete(file:"${keycert}") - delete(dir:"build/classes") - - } - -} \ No newline at end of file From 8d16643d8748aef0fe12acd3cea6a1ef37f3d3c1 Mon Sep 17 00:00:00 2001 From: mengao <283296419@qq.com> Date: Thu, 6 Apr 2017 14:54:19 +0800 Subject: [PATCH 11/72] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=9B=BD=E9=99=85?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../design/mainframe/ElementCaseThumbnail.java | 17 ----------------- 1 file changed, 17 deletions(-) delete mode 100644 designer_form/src/com/fr/design/mainframe/ElementCaseThumbnail.java diff --git a/designer_form/src/com/fr/design/mainframe/ElementCaseThumbnail.java b/designer_form/src/com/fr/design/mainframe/ElementCaseThumbnail.java deleted file mode 100644 index 107b6f3e33..0000000000 --- a/designer_form/src/com/fr/design/mainframe/ElementCaseThumbnail.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.fr.design.mainframe; - -//import com.fr.form.stable.fun.AbstractECThumbnailProcessor; -/** - * 报表块缩略图处理 - * 从xml中读取缩略图 - * Created by zhouping on 2017/2/22. - */ -//public class ElementCaseThumbnail extends AbstractECThumbnailProcessor { -// public ElementCaseThumbnail(){ -// } -// -// @Override -// public Image readThumbnail(XMLableReader reader) { -// return GeneralXMLTools.readImage(reader); -// } -//} From fd561ac02bd77adf1be443b8e728b28888d00ef6 Mon Sep 17 00:00:00 2001 From: mengao <283296419@qq.com> Date: Thu, 6 Apr 2017 14:59:13 +0800 Subject: [PATCH 12/72] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=9B=BD=E9=99=85?= =?UTF-8?q?=E5=8C=96=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fun/CustomIndepentChartUIProvider.java | 87 ------------------- 1 file changed, 87 deletions(-) delete mode 100644 designer_chart/src/com/fr/design/chart/fun/CustomIndepentChartUIProvider.java diff --git a/designer_chart/src/com/fr/design/chart/fun/CustomIndepentChartUIProvider.java b/designer_chart/src/com/fr/design/chart/fun/CustomIndepentChartUIProvider.java deleted file mode 100644 index 1ee82df454..0000000000 --- a/designer_chart/src/com/fr/design/chart/fun/CustomIndepentChartUIProvider.java +++ /dev/null @@ -1,87 +0,0 @@ -package com.fr.design.chart.fun; - -import com.fr.chart.chartattr.Plot; -import com.fr.design.beans.BasicBeanPane; -import com.fr.design.condition.ConditionAttributesPane; -import com.fr.design.gui.frpane.AttributeChangeListener; -import com.fr.design.mainframe.chart.AbstractChartAttrPane; -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.mainframe.chart.gui.type.AbstractChartTypePane; - -/** - * Created by mengao on 2017/3/29. - */ -public interface CustomIndepentChartUIProvider { - - String XML_TAG = "CustomIndepentChartUIProvider"; - - int CURRENT_API_LEVEL = 3; - - /** - * 图表的类型定义界面类型,就是属性表的第一个界面 - * - * @return 图表的类型定义界面类型 - */ - AbstractChartTypePane getPlotTypePane(); - - /** - * 数据集数据源的界面 - * - * @return 数据集数据源的界面 - */ - AbstractTableDataContentPane getTableDataSourcePane(Plot plot, ChartDataPane parent); - - - /** - * 单元格数据源的界面 - * - * @return 单元格数据源的界面 - */ - AbstractReportDataContentPane getReportDataSourcePane(Plot plot, ChartDataPane parent); - - /** - * 条件属性界面 - * - * @return 条件属性界面 - */ - ConditionAttributesPane getPlotConditionPane(Plot plot); - - /** - * 系列界面 - * - * @return 系列界面 - */ - BasicBeanPane getPlotSeriesPane(ChartStylePane parent, Plot plot); - - - /** - * 图表的属性界面数组 - * - * @return 属性界面 - */ - AbstractChartAttrPane[] getAttrPaneArray(AttributeChangeListener listener); - - ChartDataPane getChartDataPane(AttributeChangeListener listener); - - /** - * 是否使用默认的界面,为了避免界面来回切换 - * - * @return 是否使用默认的界面 - */ - boolean isUseDefaultPane(); - - /** - * 图标路径 - * - * @return 图标路径 - */ - String getIconPath(); - - /** - * plot面板的标题 - */ - String getPlotTypeTitle4PopupWindow(); -} From c19c243a73470b5d3298e87f6b122e9fe13ec482 Mon Sep 17 00:00:00 2001 From: plough Date: Thu, 6 Apr 2017 15:43:45 +0800 Subject: [PATCH 13/72] =?UTF-8?q?REPORT-1916=20=E6=A8=A1=E6=9D=BF=E8=80=97?= =?UTF-8?q?=E6=97=B6=3D=E3=80=8B=E8=B0=83=E6=95=B4=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../templateinfo/JWorkBookProcessInfo.java | 1 - .../com/fr/design/mainframe/JTemplate.java | 111 +++++++++--------- .../templateinfo/TemplateInfoCollector.java | 42 +++++-- .../templateinfo/JFormProcessInfo.java | 0 4 files changed, 88 insertions(+), 66 deletions(-) rename {designer_base => designer}/src/com/fr/design/mainframe/templateinfo/JWorkBookProcessInfo.java (98%) rename {designer_base => designer_form}/src/com/fr/design/mainframe/templateinfo/JFormProcessInfo.java (100%) diff --git a/designer_base/src/com/fr/design/mainframe/templateinfo/JWorkBookProcessInfo.java b/designer/src/com/fr/design/mainframe/templateinfo/JWorkBookProcessInfo.java similarity index 98% rename from designer_base/src/com/fr/design/mainframe/templateinfo/JWorkBookProcessInfo.java rename to designer/src/com/fr/design/mainframe/templateinfo/JWorkBookProcessInfo.java index 44522b8566..bf5d835d2a 100644 --- a/designer_base/src/com/fr/design/mainframe/templateinfo/JWorkBookProcessInfo.java +++ b/designer/src/com/fr/design/mainframe/templateinfo/JWorkBookProcessInfo.java @@ -1,6 +1,5 @@ package com.fr.design.mainframe.templateinfo; -import com.fr.base.io.IOFile; import com.fr.base.parameter.ParameterUI; import com.fr.main.impl.WorkBook; import com.fr.report.cellcase.CellCase; diff --git a/designer_base/src/com/fr/design/mainframe/JTemplate.java b/designer_base/src/com/fr/design/mainframe/JTemplate.java index b0b9f7b5a9..48371c7871 100644 --- a/designer_base/src/com/fr/design/mainframe/JTemplate.java +++ b/designer_base/src/com/fr/design/mainframe/JTemplate.java @@ -85,7 +85,7 @@ public abstract class JTemplate> ex public JTemplate(T t, String defaultFileName) { this(t, new MemFILE(newTemplateNameByIndex(defaultFileName)), true); - initForCollect(); + openTime = System.currentTimeMillis(); } public JTemplate(T t, FILE file) { @@ -111,14 +111,15 @@ public abstract class JTemplate> ex // 为收集模版信息作准备 private void initForCollect() { - if (template.getTemplateID() == null) { - template.initTemplateID(); // 为新模板设置 templateID 属性 - } + template.initTemplateID(); // 为新模板设置 templateID 属性 if (openTime == 0) { openTime = System.currentTimeMillis(); } } private void collectInfo() { // 执行收集操作 + if (openTime == 0) { // 旧模板,不收集数据 + return; + } long saveTime = System.currentTimeMillis(); // 保存模板的时间点 tic.collectInfo(template, this, openTime, saveTime); openTime = saveTime; // 更新 openTime,准备下一次计算 @@ -371,7 +372,7 @@ public abstract class JTemplate> ex } protected boolean accept(Object o){ - return true; + return true; } private void fireSuperTargetModified() { @@ -487,15 +488,15 @@ public abstract class JTemplate> ex collectInfo(); return this.saveFile(); } - + private boolean isCancelOperation(int operation){ - return operation == FILEChooserPane.CANCEL_OPTION || - operation == FILEChooserPane.JOPTIONPANE_CANCEL_OPTION; + return operation == FILEChooserPane.CANCEL_OPTION || + operation == FILEChooserPane.JOPTIONPANE_CANCEL_OPTION; } - + private boolean isOkOperation(int operation){ - return operation == FILEChooserPane.JOPTIONPANE_OK_OPTION || - operation == FILEChooserPane.OK_OPTION; + return operation == FILEChooserPane.JOPTIONPANE_OK_OPTION || + operation == FILEChooserPane.OK_OPTION; } private boolean saveAsTemplate(boolean isShowLoc) { @@ -512,8 +513,8 @@ public abstract class JTemplate> ex if (isCancelOperation(chooseResult)) { fileChooser = null; return false; - } - + } + if (isOkOperation(chooseResult)) { if (!FRContext.getCurrentEnv().hasFileFolderAllow(fileChooser.getSelectedFILE().getPath()) ) { JOptionPane.showMessageDialog(DesignerContext.getDesignerFrame(), Inter.getLocText("FR-Designer_No-Privilege") + "!", Inter.getLocText("FR-Designer_Message"), JOptionPane.WARNING_MESSAGE); @@ -523,40 +524,40 @@ public abstract class JTemplate> ex mkNewFile(editingFILE); fileChooser = null; } - + return saveNewFile(editingFILE, oldName); } - + protected boolean saveNewFile(FILE editingFILE, String oldName){ this.editingFILE = editingFILE; boolean result = this.saveFile(); if (result) { DesignerFrameFileDealerPane.getInstance().refresh(); - initForCollect(); // 如果是旧模板另存为新模板,则添加 templateID + initForCollect(); // 如果保存新模板(新建模板直接保存,或者另存为),则添加 templateID collectInfo(); } //更换最近打开 DesignerEnvManager.getEnvManager().replaceRecentOpenedFilePath(oldName, this.getFullPathName()); return result; } - + protected void mkNewFile(FILE file){ try { - file.mkfile(); + file.mkfile(); } catch (Exception e) { FRContext.getLogger().error(e.getMessage(), e); } } - + /** - * 将模板另存为可以分享出去的混淆后内置数据集模板 - * - * @return 是否另存成功 - * - */ + * 将模板另存为可以分享出去的混淆后内置数据集模板 + * + * @return 是否另存成功 + * + */ public boolean saveShareFile(){ - return true; + return true; } public Widget getSelectElementCase(){ return new NoneWidget(); @@ -761,7 +762,7 @@ public abstract class JTemplate> ex public void revert() { } - + private int getVersionCompare(String versionString){ if (StringUtils.isBlank(versionString)) { return 0; @@ -771,7 +772,7 @@ public abstract class JTemplate> ex return ComparatorUtils.compare(versionString.substring(0, len), ProductConstants.DESIGNER_VERSION.substring(0, len)); } - + private int getVersionCompareHBB(String versionString){ if (StringUtils.isBlank(versionString)) { return 0; @@ -779,17 +780,17 @@ public abstract class JTemplate> ex return ComparatorUtils.compare(versionString, "HBB"); } - + private boolean isHigherThanCurrent(String versionString) { return getVersionCompare(versionString) > 0; } - + private boolean isLowerThanCurrent(String versionString) { - return getVersionCompare(versionString) < 0; + return getVersionCompare(versionString) < 0; } - + private boolean isLowerThanHBB(String versionString) { - return getVersionCompareHBB(versionString) < 0; + return getVersionCompareHBB(versionString) < 0; } /** @@ -799,7 +800,7 @@ public abstract class JTemplate> ex public boolean isNewDesigner() { String xmlDesignerVersion = getTarget().getXMLDesignerVersion(); if (isLowerThanHBB(xmlDesignerVersion)) { - String info = Inter.getLocText("FR-Designer_open-new-form-tip"); + String info = Inter.getLocText("FR-Designer_open-new-form-tip"); String moreInfo = Inter.getLocText("FR-Designer_Server-version-tip-moreInfo"); new InformationWarnPane(info, moreInfo, Inter.getLocText("FR-Designer_Tooltips")).show(); return true; @@ -853,13 +854,13 @@ public abstract class JTemplate> ex * @return 是则返回true */ public abstract boolean isJWorkBook(); - + /** * 返回当前支持的超链界面pane * @return 超链连接界面 */ public HyperlinkGroupPane getHyperLinkPane() { - return new HyperlinkGroupPane(); + return new HyperlinkGroupPane(); } /** @@ -914,29 +915,29 @@ public abstract class JTemplate> ex public void requestGridFocus() { } - + /** - * 创建内置sql提交的pane - * - * @return 内置sql提交的pane - * - * - * @date 2014-10-14-下午7:39:27 - */ + * 创建内置sql提交的pane + * + * @return 内置sql提交的pane + * + * + * @date 2014-10-14-下午7:39:27 + */ public DBManipulationPane createDBManipulationPane(){ - return new DBManipulationPane(); + return new DBManipulationPane(); } - + /** * 创建控件事件里内置sql提交的pane - * + * * @return 内置sql提交的pane - * + * * * @date 2014-10-14-下午7:39:27 */ public DBManipulationPane createDBManipulationPaneInWidget(){ - return new DBManipulationInWidgetEventPane(); + return new DBManipulationInWidgetEventPane(); } /** @@ -964,15 +965,15 @@ public abstract class JTemplate> ex public void styleChange(){ } - + /** - * 创建分享模板的按钮, 目前只有jworkbook实现了 - * - * @return 分享模板按钮 - * - */ + * 创建分享模板的按钮, 目前只有jworkbook实现了 + * + * @return 分享模板按钮 + * + */ public UIButton[] createShareButton(){ - return new UIButton[0]; + return new UIButton[0]; } /** diff --git a/designer_base/src/com/fr/design/mainframe/templateinfo/TemplateInfoCollector.java b/designer_base/src/com/fr/design/mainframe/templateinfo/TemplateInfoCollector.java index 4f7069205c..37446b3d34 100644 --- a/designer_base/src/com/fr/design/mainframe/templateinfo/TemplateInfoCollector.java +++ b/designer_base/src/com/fr/design/mainframe/templateinfo/TemplateInfoCollector.java @@ -5,6 +5,7 @@ import com.fr.base.io.IOFile; import com.fr.design.DesignerEnvManager; import com.fr.design.mainframe.DesignerContext; import com.fr.design.mainframe.JTemplate; +import com.fr.env.RemoteEnv; import com.fr.general.ComparatorUtils; import com.fr.general.FRLogger; import com.fr.general.GeneralUtils; @@ -15,9 +16,7 @@ import org.json.JSONObject; import java.io.*; import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.HashMap; +import java.util.*; /** * 做模板的过程和耗时收集,辅助类 @@ -70,18 +69,28 @@ public class TemplateInfoCollector implements Serializable { } catch (FileNotFoundException ex) { // 如果之前没有存储过,则创建新对象 instance = new TemplateInfoCollector(); - } catch (Exception ex) { + } catch (InvalidClassException ex) { + // 如果 TemplateInfoCollecor 类结构有改动,则放弃之前收集的数据(下次保存时覆盖) + // 这种情况主要在开发、测试过程中遇到,正式上线后不应该出现 + FRLogger.getLogger().error(ex.getMessage()); + FRLogger.getLogger().info("use a new instance"); + instance = new TemplateInfoCollector(); + } + catch (Exception ex) { FRLogger.getLogger().error(ex.getMessage(), ex); } } return instance; } - private static boolean shouldCollectInfo() { + private boolean shouldCollectInfo() { + if (FRContext.getCurrentEnv() instanceof RemoteEnv) { // 远程设计不收集数据 + return false; + } return DesignerEnvManager.getEnvManager().isJoinProductImprove() && FRContext.isChineseEnv(); } - public static void appendProcess(String log) { + public void appendProcess(String log) { if (!shouldCollectInfo()) { return; } @@ -113,7 +122,14 @@ public class TemplateInfoCollector implements Serializable { private void saveInfo() { try { ObjectOutputStream os = new ObjectOutputStream(new FileOutputStream(getInfoFile())); - FRLogger.getLogger().info("writing: " + instance.templateInfoList); + String log = ""; + int count = 1; + for (String key : templateInfoList.keySet()) { + String createTime = ((HashMap)templateInfoList.get(key).get("consumingMap")).get("create_time").toString(); + log += (count + ". id: " + key + " " + createTime + "\n" + templateInfoList.get(key).toString() + "\n"); + count ++; + } + FRLogger.getLogger().info("writing tplInfo: \n" + log); os.writeObject(instance); os.close(); } catch (Exception ex) { @@ -225,7 +241,9 @@ public class TemplateInfoCollector implements Serializable { if (sendSingleTemplateInfo(consumingUrl, jsonConsumingMap) && sendSingleTemplateInfo(processUrl, jsonProcessMap)) { // 清空记录 FRLogger.getLogger().info("successfully send " + templateInfo.get("templateID")); - templateInfoList.remove(templateInfo.get("templateID")); + removeFromTemplateInfoList(templateInfo.get("templateID")); + } else { + FRLogger.getLogger().info("send template info failed, will try next time, " + templateInfo.get("templateID")); } } saveInfo(); @@ -277,12 +295,16 @@ public class TemplateInfoCollector implements Serializable { } // 删除测试模板 for (String key : testTemplateKeys) { - templateInfoList.remove(key); -// System.out.println(key + " is removed..."); + removeFromTemplateInfoList(key); } return completeTemplatesInfo; } + private void removeFromTemplateInfoList(String key) { + templateInfoList.remove(key); + FRLogger.getLogger().info(key + " is removed..."); + } + @SuppressWarnings("unchecked") private boolean isTestTemplate(HashMap templateInfo) { HashMap processMap = (HashMap) templateInfo.get("processMap"); diff --git a/designer_base/src/com/fr/design/mainframe/templateinfo/JFormProcessInfo.java b/designer_form/src/com/fr/design/mainframe/templateinfo/JFormProcessInfo.java similarity index 100% rename from designer_base/src/com/fr/design/mainframe/templateinfo/JFormProcessInfo.java rename to designer_form/src/com/fr/design/mainframe/templateinfo/JFormProcessInfo.java From d87f31dc187f4fd9a803306b895815a075452bb0 Mon Sep 17 00:00:00 2001 From: mengao <283296419@qq.com> Date: Thu, 6 Apr 2017 19:18:32 +0800 Subject: [PATCH 14/72] =?UTF-8?q?=E4=BC=98=E5=8C=96=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/com/fr/design/chart/axis/MinMaxValuePane.java | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/designer_chart/src/com/fr/design/chart/axis/MinMaxValuePane.java b/designer_chart/src/com/fr/design/chart/axis/MinMaxValuePane.java index 2375eb4e64..0c61e64f3f 100644 --- a/designer_chart/src/com/fr/design/chart/axis/MinMaxValuePane.java +++ b/designer_chart/src/com/fr/design/chart/axis/MinMaxValuePane.java @@ -52,9 +52,8 @@ public class MinMaxValuePane extends JPanel { addComponentListener(components); } - public double[] getRowSize(double p) { - double[] rowSize = {p, p, p, p}; - return rowSize; + protected double[] getRowSize(double p) { + return new double[]{p, p, p, p}; } public void addComponentListener(Component[][] components) { From 4d9a3f4d8e0699c551329ba70019bcbc4f8755cc Mon Sep 17 00:00:00 2001 From: "yaoh.wu" Date: Fri, 7 Apr 2017 09:44:12 +0800 Subject: [PATCH 15/72] =?UTF-8?q?=E7=BC=96=E8=AF=91=E7=AD=89=E7=BA=A7?= =?UTF-8?q?=E4=B8=BA1.7=20=E9=9B=86=E5=90=88=E4=BD=9C=E4=B8=BA=E5=8F=82?= =?UTF-8?q?=E6=95=B0=E9=9C=80=E6=8C=87=E6=98=8E=E7=B1=BB=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/com/fr/design/mainframe/FormSelectionUtils.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/designer_form/src/com/fr/design/mainframe/FormSelectionUtils.java b/designer_form/src/com/fr/design/mainframe/FormSelectionUtils.java index 3230cd5601..79f52519ec 100644 --- a/designer_form/src/com/fr/design/mainframe/FormSelectionUtils.java +++ b/designer_form/src/com/fr/design/mainframe/FormSelectionUtils.java @@ -192,7 +192,7 @@ public class FormSelectionUtils { if (selectWidgets != null) { selectionWidget.addAll(Arrays.asList(selectWidgets)); } - return FormSelectionUtils.rebuildSelection(rootComponent, selectionWidget, new ArrayList<>()); + return FormSelectionUtils.rebuildSelection(rootComponent, selectionWidget, new ArrayList()); } private static ArrayList rebuildSelection(XCreator rootComponent, List selectionWidget, From 4b04b8e018914bf226baf93179e7cd1cef43946a Mon Sep 17 00:00:00 2001 From: plough Date: Fri, 7 Apr 2017 11:36:39 +0800 Subject: [PATCH 16/72] =?UTF-8?q?REPORT-1916=20=E6=A8=A1=E6=9D=BF=E8=80=97?= =?UTF-8?q?=E6=97=B6=3D=E3=80=8B=E7=BB=99TemplateInfoCollector=E5=8A=A0?= =?UTF-8?q?=E4=B8=8AserialVersionUID?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../design/mainframe/templateinfo/TemplateInfoCollector.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/designer_base/src/com/fr/design/mainframe/templateinfo/TemplateInfoCollector.java b/designer_base/src/com/fr/design/mainframe/templateinfo/TemplateInfoCollector.java index 37446b3d34..b9b7aa194e 100644 --- a/designer_base/src/com/fr/design/mainframe/templateinfo/TemplateInfoCollector.java +++ b/designer_base/src/com/fr/design/mainframe/templateinfo/TemplateInfoCollector.java @@ -31,6 +31,7 @@ public class TemplateInfoCollector implements Serializable { private static final int VALID_WIDGET_COUNT = 5; // 有效报表模板的控件数 private static final int COMPLETE_DAY_COUNT = 15; // 判断模板是否完成的天数 private static final int ONE_THOUSAND = 1000; + static final long serialVersionUID = 2007L; @SuppressWarnings("unchecked") private TemplateInfoCollector() { @@ -72,7 +73,7 @@ public class TemplateInfoCollector implements Serializable { } catch (InvalidClassException ex) { // 如果 TemplateInfoCollecor 类结构有改动,则放弃之前收集的数据(下次保存时覆盖) // 这种情况主要在开发、测试过程中遇到,正式上线后不应该出现 - FRLogger.getLogger().error(ex.getMessage()); + FRLogger.getLogger().info(ex.getMessage()); FRLogger.getLogger().info("use a new instance"); instance = new TemplateInfoCollector(); } From d9379875b34a38f592a7de7bed159c7ef5f2c4f7 Mon Sep 17 00:00:00 2001 From: fr_shine Date: Mon, 10 Apr 2017 11:22:48 +0800 Subject: [PATCH 17/72] =?UTF-8?q?font=3D=3Dnull=20=E4=B9=9F=E8=A6=81?= =?UTF-8?q?=E6=B3=A8=E5=86=8C=E7=9B=91=E5=90=AC=E5=99=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../chart/gui/style/ChartTextAttrPane.java | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/designer_chart/src/com/fr/design/mainframe/chart/gui/style/ChartTextAttrPane.java b/designer_chart/src/com/fr/design/mainframe/chart/gui/style/ChartTextAttrPane.java index 48ef44970d..1146d404d5 100644 --- a/designer_chart/src/com/fr/design/mainframe/chart/gui/style/ChartTextAttrPane.java +++ b/designer_chart/src/com/fr/design/mainframe/chart/gui/style/ChartTextAttrPane.java @@ -77,17 +77,17 @@ public class ChartTextAttrPane extends BasicPane { public void populate(FRFont frFont) { UIObserverListener listener = fontNameComboBox == null ? null : fontNameComboBox.getUiObserverListener(); removeAllComboBoxListener(); - if (frFont == null) { - return; - } - fontNameComboBox.setSelectedItem(frFont.getFamily()); - bold.setSelected(frFont.isBold()); - italic.setSelected(frFont.isItalic()); - if(fontSizeComboBox != null) { - fontSizeComboBox.setSelectedItem(frFont.getSize()); - } - if (fontColor != null) { - fontColor.setColor(frFont.getForeground()); + + if (frFont != null) { + fontNameComboBox.setSelectedItem(frFont.getFamily()); + bold.setSelected(frFont.isBold()); + italic.setSelected(frFont.isItalic()); + if(fontSizeComboBox != null) { + fontSizeComboBox.setSelectedItem(frFont.getSize()); + } + if (fontColor != null) { + fontColor.setColor(frFont.getForeground()); + } } //更新结束后,注册监听器 From df4d2f67863d900d99debcff46834613e409e717 Mon Sep 17 00:00:00 2001 From: neil Date: Mon, 10 Apr 2017 15:53:18 +0800 Subject: [PATCH 18/72] ct --- .../com/fr/design/locale/designer.properties | 19 ++--- .../design/locale/designer_en_US.properties | 18 +++-- .../design/locale/designer_ja_JP.properties | 17 +++-- .../design/locale/designer_ko_KR.properties | 17 +++-- .../design/locale/designer_zh_CN.properties | 20 ++++-- .../design/locale/designer_zh_TW.properties | 22 ++++-- .../fr/design/chart/axis/MinMaxValuePane.java | 71 +++++++++++-------- .../chart/gui/style/axis/ChartValuePane.java | 14 ++-- 8 files changed, 120 insertions(+), 78 deletions(-) diff --git a/designer_base/src/com/fr/design/locale/designer.properties b/designer_base/src/com/fr/design/locale/designer.properties index e3ee039994..caa3e9d355 100644 --- a/designer_base/src/com/fr/design/locale/designer.properties +++ b/designer_base/src/com/fr/design/locale/designer.properties @@ -91,6 +91,7 @@ FR-Designer_DS-Dictionary= FR-Designer_Data-confusion= FR-Designer_Data_Type= FR-Designer_Double_Click_Edit_OR_Clear= +FR-Designer_Edit_Button_ToolBar= FR-Designer_Email= FR-Designer_Enabled= FR-Designer_End-Date= @@ -100,7 +101,6 @@ 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= FR-Designer_Font-Family= FR-Designer_Font-Size= @@ -162,6 +162,7 @@ FR-Designer_Refresh_Parameter_In_SQL= FR-Designer_Reg_Expressions= FR-Designer_Reg_Max_Length= FR-Designer_Reg_Min_Length= +FR-Designer_Remove_Button_ToolBar= FR-Designer_ReportColumns-Columns= FR-Designer_Return-Date= FR-Designer_RichText= @@ -542,14 +543,14 @@ FR-Designer_Left_Display=Left FR-Designer_About_Version=Version FR-Designer_About_CopyRight=Copy Right FR-Designer_Service_Phone=Service Phone -FR-Designer_Allow_Null=Allow null +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_Function_Description_Area_Text=The class must inherit 'com.fr.script.AbstractFunction'. The compiled class should be copied to\nJ2EE server '{R1}WEB-INF{R2}classes' directory.\nAdd the source code(.java file) into the same folder if need.\nExample: {R3}classes} FR-Designer_PageSetup_Horizontal=Horizontal FR-Designer_PageSetup_Vertical=Vertical FR-Designer_Gradient_Direction=Gradient Direction @@ -563,10 +564,6 @@ 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=Page Break -FR-Designer-Move_Tab_First=move to first -FR-Designer-Move_Tab_End=move to end -FR-Designer-Move_Tab_Next=move to next -FR-Designer-Move_Tab_Prev=move to previous 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. @@ -587,4 +584,10 @@ FR-Designer_Mouse_Click_Tips= FR-Designer-Move_Tab_First=move to first FR-Designer-Move_Tab_End=move to end FR-Designer-Move_Tab_Next=move to next -FR-Designer-Move_Tab_Prev=move to previous \ No newline at end of file +FR-Designer-Move_Tab_Prev=move to previous +FR-Designer_AxisReversed=Axis Reversed +FR-Designer_Logarithmic=Logarithmic +FR-Designer_Chart_Log_Base=Log Base +FR-Designer_Chart_F_Radar_Axis=Chart_F_Radar_Axis +FR-Designer_Too_Large_To_Paste=too large to paste +FR-Designer_Too_Small_To_Paste=Too small to paste diff --git a/designer_base/src/com/fr/design/locale/designer_en_US.properties b/designer_base/src/com/fr/design/locale/designer_en_US.properties index a86a7fb14f..ccf30126a4 100644 --- a/designer_base/src/com/fr/design/locale/designer_en_US.properties +++ b/designer_base/src/com/fr/design/locale/designer_en_US.properties @@ -91,6 +91,7 @@ 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_Edit_Button_ToolBar=Edit Button ToolBar FR-Designer_Email=Mail FR-Designer_Enabled=Enabled FR-Designer_End-Date=End Date @@ -163,6 +164,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_Remove_Button_ToolBar=Remove Button ToolBar FR-Designer_ReportColumns-Columns=Multi-columns/lines FR-Designer_Return-Date=Return Date FR-Designer_RichText=Insert Rich Text @@ -542,14 +544,14 @@ FR-Designer_Left_Display=Left FR-Designer_About_Version=Version FR-Designer_About_CopyRight=Copy Right FR-Designer_Service_Phone=Service Phone -FR-Designer_Allow_Null=Allow null +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=Aggregation block edition -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_Function_Description_Area_Text=The class must inherit 'com.fr.script.AbstractFunction'. The compiled class files should be copied to\nJ2EE server '{R1}WEB-INF{R2}classes' directory.\nAdd the source code(.java file) into the same folder if need.\nExample: {R3}classes FR-Designer_PageSetup_Horizontal=Horizontal FR-Designer_PageSetup_Vertical=Vertical FR-Designer_Gradient_Direction=Gradient Direction @@ -563,10 +565,6 @@ 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=Page Break -FR-Designer-Move_Tab_First=move to first -FR-Designer-Move_Tab_End=move to end -FR-Designer-Move_Tab_Next=move to next -FR-Designer-Move_Tab_Prev=move to previous 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. @@ -587,4 +585,10 @@ FR-Designer_Mouse_Click_Tips=The background of the mouse to click the button, in FR-Designer-Move_Tab_First=move to first FR-Designer-Move_Tab_End=move to end FR-Designer-Move_Tab_Next=move to next -FR-Designer-Move_Tab_Prev=move to previous \ No newline at end of file +FR-Designer-Move_Tab_Prev=move to previous +FR-Designer_AxisReversed=Axis in reverse order +FR-Designer_Logarithmic=Log scale +FR-Designer_Chart_Log_Base=Log Base +FR-Designer_Chart_F_Radar_Axis=Value Axis +FR-Designer_Too_Large_To_Paste=Too large to paste! +FR-Designer_Too_Small_To_Paste=Too small to paste! diff --git a/designer_base/src/com/fr/design/locale/designer_ja_JP.properties b/designer_base/src/com/fr/design/locale/designer_ja_JP.properties index 943cf181d1..1b1c1a6c00 100644 --- a/designer_base/src/com/fr/design/locale/designer_ja_JP.properties +++ b/designer_base/src/com/fr/design/locale/designer_ja_JP.properties @@ -91,6 +91,7 @@ FR-Designer_DS-Dictionary=\u30C7\u30FC\u30BF\u5B57\u5178 FR-Designer_Data-confusion=\u30C7\u30FC\u30BF\u6DF7\u4EA4 FR-Designer_Data_Type=\u30C7\u30FC\u30BF\u30BF\u30A4\u30D7 FR-Designer_Double_Click_Edit_OR_Clear=\u30C0\u30D6\u30EB\u30AF\u30EA\u30C3\u30AF\u3057\u3066\u7DE8\u96C6\u307E\u305F\u306F\u30AF\u30EA\u30A2\u3059\u308B +FR-Designer_Edit_Button_ToolBar=\u30DC\u30BF\u30F3\u306B\u3042\u308B\u30C4\u30FC\u30EB\u6B04\u7DE8\u96C6 FR-Designer_Email=\u30E1\u30FC\u30EB FR-Designer_Enabled=\u4F7F\u7528\u53EF\u80FD FR-Designer_End-Date=\u7D42\u4E86\u65E5\u671F @@ -162,6 +163,7 @@ FR-Designer_Refresh_Parameter_In_SQL=SQL\u4E2D\u306E\u30D1\u30E9\u30E1\u30FC\u30 FR-Designer_Reg_Expressions=\u6B63\u5247\u8868\u73FE\u5F0F FR-Designer_Reg_Max_Length=\u6700\u5927\u9577\u3055 FR-Designer_Reg_Min_Length=\u6700\u5C0F\u9577\u3055 +FR-Designer_Remove_Button_ToolBar=\u30DC\u30BF\u30F3\u304C\u3042\u308B\u30C4\u30FC\u30EB\u30D0\u30FC\u3092\u30EA\u30E0\u30FC\u30D6 FR-Designer_ReportColumns-Columns=\u6BB5\u7D44\u307F FR-Designer_Return-Date=\u65E5\u671F\u306B\u623B\u308B FR-Designer_RichText=\u30EA\u30C3\u30C1\u6587\u66F8\u633F\u5165 @@ -523,7 +525,7 @@ FR-Designer_Property=\u5C5E\u6027 FR-Designer_ClassName=\u985E\u540D FR-Designer_Polyblock_Edit=\u30A2\u30B0\u30EA\u30B2\u30FC\u30B7\u30E7\u30F3\u30D6\u30ED\u30C3\u30AF\u7DE8\u96C6 -FR-Designer_Function_Description_Area_Text=\u3053\u306E\u30AF\u30E9\u30B9\u306F\u7D99\u627F\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059"com.fr.script.AbstractFunction"\u3002\u3092\u7D99\u627F\u3059\u3079\u304D\u3067\u3059\u3002\u30B3\u30F3\u30D1\u30A4\u30EB\u5F8C\u306E\u985E\u30D5\u30A1\u30A4\u30EB\u3092\nJ2EE\u30B5\u30FC\u30D0\u30FC "{R1}" \u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u3002\u306B\u30B3\u30D4\u30FC\u3057\u3066\u3001class\u306B\u5BFE\u5FDC\u3059\u308Bjava\u30D5\u30A1\u30A4\u30EB\u3082\u5F53\u76EE\u6B21\u306B\u7F6E\u3044\u3066\u304F\u3060\u3055\u3044\u3002\n\u4F8B\u3048\u3070\uFF1A{R2} +FR-Designer_Function_Description_Area_Text=\u3053\u306E\u30AF\u30E9\u30B9\u306F\u7D99\u627F\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059"com.fr.script.AbstractFunction"\u3002\u3092\u7D99\u627F\u3059\u3079\u304D\u3067\u3059\u3002\u30B3\u30F3\u30D1\u30A4\u30EB\u5F8C\u306E\u985E\u30D5\u30A1\u30A4\u30EB\u3092\nJ2EE\u30B5\u30FC\u30D0\u30FC "{R1}WEB-INF{R2}classes" \u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u3002\u306B\u30B3\u30D4\u30FC\u3057\u3066\u3001class\u306B\u5BFE\u5FDC\u3059\u308Bjava\u30D5\u30A1\u30A4\u30EB\u3082\u5F53\u76EE\u6B21\u306B\u7F6E\u3044\u3066\u304F\u3060\u3055\u3044\u3002\n\u4F8B\u3048\u3070\uFF1A{R3}classes FR-Designer_PageSetup_Horizontal=\u6A2A\u65B9\u5411 FR-Designer_PageSetup_Vertical=\u7E26\u65B9\u5411 FR-Designer_Gradient_Direction=\u65B9\u5411\u3092\u5F90\u3005\u306B\u5909\u5316 @@ -537,10 +539,6 @@ FR-Designer_Show_As_Download=\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9\u30EA\u30F3\u3 FR-Designer_File_Name_For_Download=\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9\u30D5\u30A1\u30A4\u30EB\u540D FR-Designer_No=\u3044\u3044\u3048 FR-Designer_Pagination=\u30DA\u30FC\u30B8\u30F3\u30B0 -FR-Designer-Move_Tab_First= -FR-Designer-Move_Tab_End= -FR-Designer-Move_Tab_Next= -FR-Designer-Move_Tab_Prev= FR-Designer_DS_TableData=\u30C7\u30FC\u30BF\u30BD\u30FC\u30B9 FR-Designer_Parameter-Formula=\u6570\u5F0F FR-Designer_Background_Null= @@ -554,4 +552,11 @@ FR-Designer_Background_Image_Select= FR-Designer_Initial_Background_Tips= FR-Designer_Mouse_Move_Tips= FR-Designer_Mouse_Click_Tips= -FR-Designer_Plugin_Should_Update_Please_Contact_Developer= +FR-Designer-Move_Tab_First= +FR-Designer-Move_Tab_End= +FR-Designer-Move_Tab_Next= +FR-Designer-Move_Tab_Prev= +FR-Designer_AxisReversed=\u8EF8\u9006\u914D\u5217 +FR-Designer_Logarithmic=\u5BFE\u6570\u76EE\u76DB\u308A +FR-Designer_Chart_Log_Base=\u5E95\u6570 +FR-Designer_Chart_F_Radar_Axis=\u5782\u76F4\u8EF8 diff --git a/designer_base/src/com/fr/design/locale/designer_ko_KR.properties b/designer_base/src/com/fr/design/locale/designer_ko_KR.properties index db796ce438..9df9125a94 100644 --- a/designer_base/src/com/fr/design/locale/designer_ko_KR.properties +++ b/designer_base/src/com/fr/design/locale/designer_ko_KR.properties @@ -91,6 +91,7 @@ FR-Designer_DS-Dictionary=\uB370\uC774\uD130\uC0AC\uC804 FR-Designer_Data-confusion=\uB370\uC774\uD130\uD63C\uD569 FR-Designer_Data_Type=\uB370\uC774\uD130\uC720\uD615 FR-Designer_Double_Click_Edit_OR_Clear=\uB354\uBE14\uD074\uB9AD\uD558\uC5EC\uD3B8\uC9D1\uB610\uB294\uD074\uB9AC\uC5B4\uC2E4\uD589 +FR-Designer_Edit_Button_ToolBar=\uD0A4\uAC00\uC788\uB294\uD234\uBC14\uD3B8\uC9D1 FR-Designer_Email=\uBA54\uC77C FR-Designer_Enabled=\uC0AC\uC6A9\uAC00\uB2A5 FR-Designer_End-Date=\uC885\uB8CC\uB0A0\uC9DC @@ -162,6 +163,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_Remove_Button_ToolBar=\uD0A4\uAC00\uC788\uB294\uD234\uBC14\uC81C\uAC70 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 @@ -520,7 +522,7 @@ FR-Designer_ClassName=\uD074\uB798\uC2A4\uB124\uC784 FR-Designer_Template_Web_Attributes=\uD15C\uD50C\uB9BF \uC6F9 \uC18D\uC131 FR-Designer_Polyblock_Edit=\uCDE8\uD569\uBE14\uB7ED\uD3B8\uC9D1 -FR-Designer_Function_Description_Area_Text=\uD574\uB2F9\uD074\uB798\uC2A4\uB294\uACC4\uC2B9\uD574\uC57C\uD55C\uB2E4."com.fr.script.AbstractFunction".\uCEF4\uD30C\uC77C\uD6C4\uC758\uD074\uB798\uC2A4\uD30C\uC77C\uC744~\uB85C\uBCF5\uC0AC\nJ2EE\uC11C\uBC84 "{R1}" \uB514\uB809\uD130\uB9AC, \uD544\uC694\uC2DC class \uC0C1\uC751\uD558\uB294 java\uC18C\uC2A4\uD30C\uC77C\uB3C4\uD574\uB2F9\uB514\uB809\uD130\uB9AC\uD558\uB2E8\uC5D0\uB450\uC5B4\uD3B8\uC9D1\uBC0F\uCC3E\uC544\uBCF4\uAE30\uB97C\uD560\uC218\uC788\uC2B5\uB2C8\uB2E4.\n\uC608: {R2} +FR-Designer_Function_Description_Area_Text=\uD574\uB2F9\uD074\uB798\uC2A4\uB294\uACC4\uC2B9\uD574\uC57C\uD55C\uB2E4."com.fr.script.AbstractFunction".\uCEF4\uD30C\uC77C\uD6C4\uC758\uD074\uB798\uC2A4\uD30C\uC77C\uC744~\uB85C\uBCF5\uC0AC\nJ2EE\uC11C\uBC84 "{R1}WEB-INF{R2}classes" \uB514\uB809\uD130\uB9AC, \uD544\uC694\uC2DC class \uC0C1\uC751\uD558\uB294 java\uC18C\uC2A4\uD30C\uC77C\uB3C4\uD574\uB2F9\uB514\uB809\uD130\uB9AC\uD558\uB2E8\uC5D0\uB450\uC5B4\uD3B8\uC9D1\uBC0F\uCC3E\uC544\uBCF4\uAE30\uB97C\uD560\uC218\uC788\uC2B5\uB2C8\uB2E4.\n\uC608: {R3}classes FR-Designer_PageSetup_Horizontal=\uAC00\uB85C FR-Designer_PageSetup_Vertical=\uC138\uB85C FR-Designer_Gradient_Direction=\uADF8\uB77C\uB370\uC774\uC158 \uBC29\uD5A5 @@ -534,10 +536,6 @@ FR-Designer_Show_As_Download=\uB2E4\uC6B4\uB85C\uB4DC\uB9C1\uD06C\uB85C2\uC9C4\u FR-Designer_File_Name_For_Download=\uB2E4\uC6B4\uB85C\uB4DC\uD30C\uC77C\uBA85 FR-Designer_No=\uC544\uB2C8\uC624 FR-Designer_Pagination=\uD398\uC774\uC9C0\uB098\uB204\uAE30 -FR-Designer-Move_Tab_First= -FR-Designer-Move_Tab_End= -FR-Designer-Move_Tab_Next= -FR-Designer-Move_Tab_Prev= FR-Designer_DS_TableData=\uB370\uC774\uD130\uC138\uD2B8 FR-Designer_Parameter-Formula=\uC218\uC2DD FR-Designer_Background_Null= @@ -551,4 +549,11 @@ FR-Designer_Background_Image_Select= FR-Designer_Initial_Background_Tips= FR-Designer_Mouse_Move_Tips= FR-Designer_Mouse_Click_Tips= -FR-Designer_Plugin_Should_Update_Please_Contact_Developer= \ No newline at end of file +FR-Designer-Move_Tab_First= +FR-Designer-Move_Tab_End= +FR-Designer-Move_Tab_Next= +FR-Designer-Move_Tab_Prev= +FR-Designer_AxisReversed=\uCD95\uC5ED\uC21C +FR-Designer_Logarithmic=\uB85C\uADF8\uB208\uAE08 +FR-Designer_Chart_Log_Base=\uAE30\uC218 +FR-Designer_Chart_F_Radar_Axis=\uAC12\uCD95 diff --git a/designer_base/src/com/fr/design/locale/designer_zh_CN.properties b/designer_base/src/com/fr/design/locale/designer_zh_CN.properties index 726a6d0f61..060eddbd74 100644 --- a/designer_base/src/com/fr/design/locale/designer_zh_CN.properties +++ b/designer_base/src/com/fr/design/locale/designer_zh_CN.properties @@ -91,6 +91,7 @@ FR-Designer_DS-Dictionary=\u6570\u636E\u5B57\u5178 FR-Designer_Data-confusion=\u6570\u636E\u6DF7\u6DC6 FR-Designer_Data_Type=\u6570\u636E\u7C7B\u578B FR-Designer_Double_Click_Edit_OR_Clear=\u53CC\u51FB\u8FDB\u884C\u7F16\u8F91\u6216\u6E05\u9664 +FR-Designer_Edit_Button_ToolBar=\u7F16\u8F91\u6309\u94AE\u6240\u5728\u5DE5\u5177\u680F FR-Designer_Email=\u90AE\u4EF6 FR-Designer_Enabled=\u53EF\u7528 FR-Designer_End-Date=\u7ED3\u675F\u65E5\u671F @@ -163,6 +164,7 @@ FR-Designer_Refresh_Parameter_In_SQL=\u662F\u5426\u5237\u65B0SQL\u4E2D\u7684\u53 FR-Designer_Reg_Expressions=\u6B63\u5219\u8868\u8FBE\u5F0F FR-Designer_Reg_Max_Length=\u6700\u5927\u957F\u5EA6 FR-Designer_Reg_Min_Length=\u6700\u5C0F\u957F\u5EA6 +FR-Designer_Remove_Button_ToolBar=\u79FB\u9664\u6309\u94AE\u6240\u5728\u5DE5\u5177\u680F FR-Designer_ReportColumns-Columns=\u5206\u680F FR-Designer_Return-Date=\u8FD4\u56DE\u65E5\u671F FR-Designer_RichText=\u63D2\u5165\u5BCC\u6587\u672C @@ -553,7 +555,7 @@ FR-Designer_Property=\u5C5E\u6027 FR-Designer_ClassName=\u7C7B\u540D FR-Designer_Polyblock_Edit=\u805A\u5408\u5757\u7F16\u8F91 -FR-Designer_Function_Description_Area_Text=\u8BE5\u7C7B\u5FC5\u987B\u7EE7\u627F"com.fr.script.AbstractFunction"\u3002\u5E94\u5C06\u7F16\u8BD1\u540E\u7684\u7C7B\u6587\u4EF6\u62F7\u8D1D\u5230\nJ2EE\u670D\u52A1\u5668 "{R1}" \u76EE\u5F55\uFF0C\u5982\u679C\u5FC5\u8981\u7684\u8BDD\u5C06class\u5BF9\u5E94\u7684java\u6E90\u6587\u4EF6\u4E5F\u653E\u7F6E\u5230\u8BE5\u76EE\u5F55\u4E0B\u65B9\u4FBF\u7F16\u8F91\u548C\u67E5\u770B\u3002\n\u4F8B\u5982\uFF1A{R2} +FR-Designer_Function_Description_Area_Text=\u8BE5\u7C7B\u5FC5\u987B\u7EE7\u627F"com.fr.script.AbstractFunction"\u3002\u5E94\u5C06\u7F16\u8BD1\u540E\u7684\u7C7B\u6587\u4EF6\u62F7\u8D1D\u5230\nJ2EE\u670D\u52A1\u5668 "{R1}WEB-INF{R2}classes" \u76EE\u5F55\uFF0C\u5982\u679C\u5FC5\u8981\u7684\u8BDD\u5C06class\u5BF9\u5E94\u7684java\u6E90\u6587\u4EF6\u4E5F\u653E\u7F6E\u5230\u8BE5\u76EE\u5F55\u4E0B\u65B9\u4FBF\u7F16\u8F91\u548C\u67E5\u770B\u3002\n\u4F8B\u5982\uFF1A{R3}classes FR-Designer_PageSetup_Horizontal=\u6A2A\u5411 FR-Designer_PageSetup_Vertical=\u7EB5\u5411 FR-Designer_Gradient_Direction=\u6E10\u53D8\u65B9\u5411 @@ -567,16 +569,12 @@ FR-Designer_Show_As_Download=\u7528\u4E0B\u8F7D\u94FE\u63A5\u663E\u793A\u4E8C\u8 FR-Designer_File_Name_For_Download=\u4E0B\u8F7D\u6587\u4EF6\u540D FR-Designer_No=\u5426 FR-Designer_Pagination=\u5206\u9875 -FR-Designer-Move_Tab_First=\u79FB\u52A8\u5230\u9996\u4F4D -FR-Designer-Move_Tab_End=\u79FB\u52A8\u5230\u672B\u5C3E -FR-Designer-Move_Tab_Next=\u5F80\u540E\u79FB\u52A8 -FR-Designer-Move_Tab_Prev=\u5F80\u524D\u79FB\u52A8 FR-Designer_DS_TableData=\u6570\u636E\u96C6 FR-Designer_Parameter-Formula=\u516C\u5F0F FR-Designer_Plugin_Should_Update_Please_Contact_Developer=\u63D2\u4EF6\u7248\u672C\u8FC7\u4F4E, \u5B58\u5728API\u4E0D\u517C\u5BB9, \u8BF7\u8054\u7CFB\u5F00\u53D1\u8005\u5347\u7EA7\u63D2\u4EF6 FR-Designer_WidgetOrder=\u63A7\u4EF6\u987A\u5E8F FR-Designer_Mobile_Form_Analysis_Annotation=\u6CE8\u91CA\uFF1A\u53EF\u4EE5\u901A\u8FC7\u8BE5\u5C5E\u6027\u63A7\u5236\u8868\u5355\u5728APP\u4E2D\u7684\u89E3\u6790\u65B9\u5F0F\u3002 -FR-Designer_Mobile_Report_Analysis_Annotation=\u6CE8\u91CA: \u53EF\u4EE5\u901A\u8FC7\u8BE5\u5C5E\u6027\u63A7\u5236\u62A5\u8868\u5728APP\u4E2D\u7684\u89E3\u6790\u65B9\u5F0F\uFF0C\u53EA\u652F\u6301\u5206\u9875\u9884\u89C8\uFF0C\u586B\u62A5\u9884\u89C8\u65F6\u5C5E\u6027\u65E0\u6548\u3002 +FR-Designer_Mobile_Report_Analysis_Annotation=\u6CE8\u91CA\: \u53EF\u4EE5\u901A\u8FC7\u8BE5\u5C5E\u6027\u63A7\u5236\u62A5\u8868\u5728APP\u4E2D\u7684\u89E3\u6790\u65B9\u5F0F\uFF0C\u53EA\u652F\u6301\u5206\u9875\u9884\u89C8\uFF0C\u586B\u62A5\u9884\u89C8\u65F6\u5C5E\u6027\u65E0\u6548\u3002 FR-Designer_Background_Null=\u6CA1\u6709\u80CC\u666F FR-Designer_Background_Color=\u989C\u8272 FR-Designer_Background_Texture=\u7EB9\u7406 @@ -588,3 +586,13 @@ FR-Designer_Background_Image_Select=\u9009\u62E9\u56FE\u7247 FR-Designer_Initial_Background_Tips=\u6309\u94AE\u7684\u521D\u59CB\u80CC\u666F FR-Designer_Mouse_Move_Tips=\u9F20\u6807\u79FB\u52A8\u5230\u6309\u94AE\u4E0A\u7684\u80CC\u666F\uFF0C\u82E5\u65E0\u5219\u4E0D\u6539\u53D8\u80CC\u666F FR-Designer_Mouse_Click_Tips=\u9F20\u6807\u70B9\u51FB\u6309\u94AE\u65F6\u80CC\u666F\uFF0C\u82E5\u65E0\u5219\u4E0D\u6539\u53D8\u80CC\u666F +FR-Designer-Move_Tab_First=\u79FB\u52A8\u5230\u9996\u4F4D +FR-Designer-Move_Tab_End=\u79FB\u52A8\u5230\u672B\u5C3E +FR-Designer-Move_Tab_Next=\u5F80\u540E\u79FB\u52A8 +FR-Designer-Move_Tab_Prev=\u5F80\u524D\u79FB\u52A8 +FR-Designer_AxisReversed=\u8F74\u9006\u5E8F +FR-Designer_Logarithmic=\u5BF9\u6570\u523B\u5EA6 +FR-Designer_Chart_Log_Base=\u5E95\u6570 +FR-Designer_Chart_F_Radar_Axis=\u503C\u8F74 +FR-Designer_Too_Large_To_Paste=\u7EC4\u4EF6\u5927\u5C0F\u8D85\u51FA\u8FB9\u754C\uFF0C\u65E0\u6CD5\u7C98\u8D34\uFF01 +FR-Designer_Too_Small_To_Paste=\u6B64\u5904\u65E0\u6CD5\u7C98\u8D34\uFF0C\u5C0F\u4E8E\u7EC4\u4EF6\u6700\u5C0F\u9AD8\u5EA6\uFF01 diff --git a/designer_base/src/com/fr/design/locale/designer_zh_TW.properties b/designer_base/src/com/fr/design/locale/designer_zh_TW.properties index f8b28dba33..bb7ab2dc62 100644 --- a/designer_base/src/com/fr/design/locale/designer_zh_TW.properties +++ b/designer_base/src/com/fr/design/locale/designer_zh_TW.properties @@ -91,6 +91,7 @@ FR-Designer_DS-Dictionary=\u8CC7\u6599\u5B57\u5178 FR-Designer_Data-confusion=\u8CC7\u6599\u6DF7\u6DC6 FR-Designer_Data_Type=\u8CC7\u6599\u985E\u578B FR-Designer_Double_Click_Edit_OR_Clear=\u96D9\u64CA\u9032\u884C\u7DE8\u8F2F\u6216\u6E05\u9664 +FR-Designer_Edit_Button_ToolBar=\u7DE8\u8F2F\u6309\u9215\u6240\u5728\u5DE5\u5177\u6B04 FR-Designer_Email=\u90F5\u4EF6 FR-Designer_Enabled=\u53EF\u7528 FR-Designer_End-Date=\u7D50\u675F\u65E5\u671F @@ -162,6 +163,7 @@ 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_Remove_Button_ToolBar=\u79FB\u9664\u6309\u9215\u6240\u5728\u5DE5\u5177\u6B04 FR-Designer_ReportColumns-Columns=\u5831\u8868\u6B04\u4F4D FR-Designer_Return-Date=\u8FD4\u56DE\u65E5\u671F FR-Designer_RichText= RTF @@ -541,7 +543,7 @@ FR-Designer_Property=\u5C6C\u6027 FR-Designer_ClassName=\u985E\u540D FR-Designer_Polyblock_Edit=\u805A\u5408\u584A\u7DE8\u8F2F -FR-Designer_Function_Description_Area_Text=\u8A72\u985E\u5FC5\u9808\u7E7C\u627F"com.fr.script.AbstractFunction"\u3002\u61C9\u5C07\u7DE8\u8B6F\u5F8C\u7684\u985E\u6A94\u6848\u62F7\u8C9D\u5230\nJ2EE\u4F3A\u670D\u5668 "{R1}" \u76EE\u9304\uFF0C\u5982\u679C\u5FC5\u8981\u7684\u8A71\u5C07class\u5C0D\u61C9\u7684java\u539F\u59CB\u6A94\u6848\u4E5F\u653E\u7F6E\u5230\u8A72\u76EE\u9304\u4E0B\u65B9\u4FBF\u7DE8\u8F2F\u548C\u67E5\u770B\u3002\n\u4F8B\u5982\uFF1A{R2} +FR-Designer_Function_Description_Area_Text=\u8A72\u985E\u5FC5\u9808\u7E7C\u627F"com.fr.script.AbstractFunction"\u3002\u61C9\u5C07\u7DE8\u8B6F\u5F8C\u7684\u985E\u6A94\u6848\u62F7\u8C9D\u5230\nJ2EE\u4F3A\u670D\u5668 "{R1}WEB-INF{R2}classes" \u76EE\u9304\uFF0C\u5982\u679C\u5FC5\u8981\u7684\u8A71\u5C07class\u5C0D\u61C9\u7684java\u539F\u59CB\u6A94\u6848\u4E5F\u653E\u7F6E\u5230\u8A72\u76EE\u9304\u4E0B\u65B9\u4FBF\u7DE8\u8F2F\u548C\u67E5\u770B\u3002\n\u4F8B\u5982\uFF1A{R3}classes FR-Designer_PageSetup_Horizontal=\u6A2A\u5411 FR-Designer_PageSetup_Vertical=\u7E31\u5411 FR-Designer_Gradient_Direction=\u6F38\u8B8A\u65B9\u5411 @@ -555,13 +557,9 @@ FR-Designer_Show_As_Download=\u7528\u4E0B\u8F09\u93C8\u63A5\u986F\u793A\u4E8C\u9 FR-Designer_File_Name_For_Download=\u4E0B\u8F09\u6A94\u6848\u540D FR-Designer_No=\u5426 FR-Designer_Pagination=\u5206\u9801 -FR-Designer-Move_Tab_First=\u79FB\u52D5\u5230\u9996\u4F4D -FR-Designer-Move_Tab_End=\u79FB\u52D5\u5230\u672B\u5C3E -FR-Designer-Move_Tab_Next=\u5F80\u5F8C\u79FB\u52D5 -FR-Designer-Move_Tab_Prev=\u5F80\u524D\u79FB\u52D5 FR-Designer_DS_TableData=\u8CC7\u6599\u96C6 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_Plugin_Should_Update_Please_Contact_Developer=\u63D2\u4EF6\u7248\u672C\u904E\u4F4E, \u5B58\u5728API\u4E0D\u517C\u5BB9, \u8ACB\u806F\u7E6B\u958B\u767C\u8005\u5347\u7D1A\u63D2\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\u6301\u5206\u9801\u9810\u89BD\uFF0C\u586B\u5831\u9810\u89BD\u6642\u5C6C\u6027\u7121\u6548\u3002 @@ -575,4 +573,14 @@ FR-Designer_Background_Clear= FR-Designer_Background_Image_Select= FR-Designer_Initial_Background_Tips= FR-Designer_Mouse_Move_Tips= -FR-Designer_Mouse_Click_Tips= \ No newline at end of file +FR-Designer_Mouse_Click_Tips= +FR-Designer-Move_Tab_First=\u79FB\u52D5\u5230\u9996\u4F4D +FR-Designer-Move_Tab_End=\u79FB\u52D5\u5230\u672B\u5C3E +FR-Designer-Move_Tab_Next=\u5F80\u5F8C\u79FB\u52D5 +FR-Designer-Move_Tab_Prev=\u5F80\u524D\u79FB\u52D5 +FR-Designer_AxisReversed=\u8EF8\u9006\u5E8F +FR-Designer_Logarithmic=\u5C0D\u6578\u523B\u5EA6 +FR-Designer_Chart_Log_Base=\u5E95\u6578 +FR-Designer_Chart_F_Radar_Axis=\u503C\u8EF8 +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 diff --git a/designer_chart/src/com/fr/design/chart/axis/MinMaxValuePane.java b/designer_chart/src/com/fr/design/chart/axis/MinMaxValuePane.java index 7fc7d9db34..0c61e64f3f 100644 --- a/designer_chart/src/com/fr/design/chart/axis/MinMaxValuePane.java +++ b/designer_chart/src/com/fr/design/chart/axis/MinMaxValuePane.java @@ -30,7 +30,8 @@ public class MinMaxValuePane extends JPanel { protected UICheckBox isCustomSecUnitBox; protected UITextField secUnitField; - public MinMaxValuePane() { + + public MinMaxValuePane() { minCheckBox = new UICheckBox(Inter.getLocText(new String[]{"Custom", "Min_Value"})); minValueField = new UITextField(6); maxCheckBox = new UICheckBox(Inter.getLocText(new String[]{"Custom", "Max_Value"})); @@ -39,37 +40,45 @@ public class MinMaxValuePane extends JPanel { mainUnitField = new UITextField(6); isCustomSecUnitBox = new UICheckBox(Inter.getLocText("FR-Chart_SecondGraduationUnit")); secUnitField = new UITextField(6); - double p = TableLayout.PREFERRED; - double f = TableLayout.FILL; - double[] columnSize = { p, f }; - double[] rowSize = { p, p, p, p}; - - Component[][] components = getPanelComponents(); - JPanel panel = TableLayoutHelper.createTableLayoutPane(components ,rowSize,columnSize); - this.setLayout(new BorderLayout()); - this.add(panel,BorderLayout.CENTER); - - for(int i = 0; i < components.length; i++) { - ((UICheckBox)components[i][0]).addActionListener(new ActionListener() { - - @Override - public void actionPerformed(ActionEvent e) { - checkBoxUse(); - } - }); - ChartSwingUtils.addListener((UICheckBox)components[i][0], (UITextField)components[i][1]); - } - } - protected Component[][] getPanelComponents() { - return new Component[][]{ + + double p = TableLayout.PREFERRED; + double f = TableLayout.FILL; + double[] columnSize = {p, f}; + + Component[][] components = getPanelComponents(); + JPanel panel = TableLayoutHelper.createTableLayoutPane(components, getRowSize(p), columnSize); + this.setLayout(new BorderLayout()); + this.add(panel, BorderLayout.CENTER); + addComponentListener(components); + } + + protected double[] getRowSize(double p) { + return new double[]{p, p, p, p}; + } + + public void addComponentListener(Component[][] components) { + for (int i = 0; i < components.length; i++) { + ((UICheckBox) components[i][0]).addActionListener(new ActionListener() { + + @Override + public void actionPerformed(ActionEvent e) { + checkBoxUse(); + } + }); + ChartSwingUtils.addListener((UICheckBox) components[i][0], (UITextField) components[i][1]); + } + } + + protected Component[][] getPanelComponents() { + return new Component[][]{ new Component[]{minCheckBox, minValueField}, new Component[]{maxCheckBox, maxValueField}, new Component[]{isCustomMainUnitBox, mainUnitField}, new Component[]{isCustomSecUnitBox, secUnitField}, - }; - } + }; + } - private void checkBoxUse() { + protected void checkBoxUse() { minValueField.setEnabled(minCheckBox.isSelected()); maxValueField.setEnabled(maxCheckBox.isSelected()); @@ -100,7 +109,7 @@ public class MinMaxValuePane extends JPanel { if(axis.getMinValue() != null) { minValueField.setText(axis.getMinValue().toString()); } - } + } // 最大值 if (axis.isCustomMaxValue()) { @@ -108,7 +117,7 @@ public class MinMaxValuePane extends JPanel { if(axis.getMaxValue() != null) { maxValueField.setText(axis.getMaxValue().toString()); } - } + } // 主次刻度单位 if (axis.isCustomMainUnit()) { @@ -116,7 +125,7 @@ public class MinMaxValuePane extends JPanel { if(axis.getMainUnit() != null) { mainUnitField.setText(axis.getMainUnit().toString()); } - } + } if(axis.isCustomSecUnit()) { isCustomSecUnitBox.setSelected(true); @@ -149,7 +158,7 @@ public class MinMaxValuePane extends JPanel { updateUnit(axis); } - private void updateUnit(Axis axis) { + protected void updateUnit(Axis axis) { // 主要刻度 if (isCustomMainUnitBox.isSelected()){ String increment = mainUnitField.getText(); diff --git a/designer_chart/src/com/fr/design/mainframe/chart/gui/style/axis/ChartValuePane.java b/designer_chart/src/com/fr/design/mainframe/chart/gui/style/axis/ChartValuePane.java index f667a66dde..8916efe254 100644 --- a/designer_chart/src/com/fr/design/mainframe/chart/gui/style/axis/ChartValuePane.java +++ b/designer_chart/src/com/fr/design/mainframe/chart/gui/style/axis/ChartValuePane.java @@ -72,7 +72,7 @@ public class ChartValuePane extends ChartAxisUsePane{ axisLineStylePane = new ChartAxisLineStylePane(); zeroPane = aliagnZero4Second(); - axisReversed = new UICheckBox(Inter.getLocText("AxisReversed")); + axisReversed = new UICheckBox(Inter.getLocText("FR-Designer_AxisReversed")); unitCombox = new UIComboBox(ChartConstants.UNIT_I18N_VALUES); formatPane = new FormatPane(); axisLabelPane = new ChartAxisLabelPane(); @@ -151,10 +151,10 @@ public class ChartValuePane extends ChartAxisUsePane{ double p = TableLayout.PREFERRED; double f = TableLayout.FILL; double[] columnSize = { LayoutConstants.CHART_ATTR_TOMARGIN,p,f}; - double[] rowSize = {p, p}; + double[] rowSize = { p, p}; Component[][] component = new Component[][]{ - new Component[]{null,initMinMaxValue(),null}, - new Component[]{null, addLogarithmicPane2ValuePane(), addLogText()}, + new Component[]{null,initMinMaxValue(),null}, + new Component[]{null, addLogarithmicPane2ValuePane(), addLogText()}, }; return TableLayoutHelper.createTableLayoutPane(component, rowSize, columnSize); } @@ -171,8 +171,8 @@ public class ChartValuePane extends ChartAxisUsePane{ // 返回对数相关界面. 百分比 没有此界面. protected JPanel addLogarithmicPane2ValuePane() { JPanel labelLogPane = FRGUIPaneFactory.createLeftFlowZeroGapBorderPane(); - labelLogPane.add(logBox = new UICheckBox(Inter.getLocText("Logarithmic")+":")); - labelLogPane.add(new UILabel(Inter.getLocText("Chart_Log_Base"))); + labelLogPane.add(logBox = new UICheckBox(Inter.getLocText("FR-Designer_Logarithmic")+":")); + labelLogPane.add(new UILabel(Inter.getLocText("FR-Designer_Chart_Log_Base"))); logBaseField = new UITextField(4); logBaseField.setText("10"); @@ -221,7 +221,7 @@ public class ChartValuePane extends ChartAxisUsePane{ * @return 返回标题. */ public String title4PopupWindow() { - return Inter.getLocText("Chart_F_Radar_Axis"); + return Inter.getLocText("FR-Designer_Chart_F_Radar_Axis"); } @Override From d8daeae4047e1639dbf6e6cfbefec3dc6cc16123 Mon Sep 17 00:00:00 2001 From: neil Date: Mon, 10 Apr 2017 15:58:11 +0800 Subject: [PATCH 19/72] ct --- .../layout/FRAbsoluteLayoutAdapter.java | 698 +++-- .../adapters/layout/FRFitLayoutAdapter.java | 2385 ++++++++--------- .../beans/location/AccessDirection.java | 335 ++- 3 files changed, 1693 insertions(+), 1725 deletions(-) diff --git a/designer_form/src/com/fr/design/designer/beans/adapters/layout/FRAbsoluteLayoutAdapter.java b/designer_form/src/com/fr/design/designer/beans/adapters/layout/FRAbsoluteLayoutAdapter.java index 7810fc9a6f..603626e13d 100644 --- a/designer_form/src/com/fr/design/designer/beans/adapters/layout/FRAbsoluteLayoutAdapter.java +++ b/designer_form/src/com/fr/design/designer/beans/adapters/layout/FRAbsoluteLayoutAdapter.java @@ -1,354 +1,346 @@ -package com.fr.design.designer.beans.adapters.layout; - -import java.awt.*; - -import com.fr.design.beans.GroupModel; -import com.fr.design.designer.beans.ConstraintsGroupModel; -import com.fr.design.designer.beans.HoverPainter; -import com.fr.design.designer.beans.painters.FRAbsoluteLayoutPainter; -import com.fr.design.designer.creator.*; -import com.fr.design.designer.properties.BoundsGroupModel; -import com.fr.design.designer.properties.FRAbsoluteLayoutPropertiesGroupModel; -import com.fr.form.ui.container.WAbsoluteLayout; -import com.fr.design.utils.ComponentUtils; -import com.fr.design.utils.gui.LayoutUtils; -import com.fr.general.ComparatorUtils; -import com.fr.form.ui.container.WAbsoluteLayout.BoundsWidget; -import com.fr.general.FRLogger; - -public class FRAbsoluteLayoutAdapter extends FRBodyLayoutAdapter { - //是不是添加到父容器上 - private boolean isAdd2ParentLayout = false; - private HoverPainter painter; - - public FRAbsoluteLayoutAdapter(XLayoutContainer container) { - super(container); - painter = new FRAbsoluteLayoutPainter(container); - initMinSize(); - } - - private void initMinSize() { - XWAbsoluteLayout layout = (XWAbsoluteLayout) container; - minWidth = layout.getActualMinWidth(); - minHeight = layout.getActualMinHeight(); - actualVal = layout.getAcualInterval(); - margin = layout.toData().getMargin(); - } - - @Override - public HoverPainter getPainter() { - return painter; - } - - /** - * 是否能在指定位置添加组件 - * @param creator 组件 - * @param x 坐标x - * @param y 坐标y - * @return 能则返回true - */ - //这个地方的逻辑非常复杂, - // 1.当前绝对布局是不可编辑且是最外层,那么其他控件添加在它周围, - // 2.当前绝对布局是不可编辑且不是最外层,那么控件不可添加,(嵌套) - // 3.当前绝对布局可编辑,那么控件添加 - @Override - public boolean accept(XCreator creator, int x, int y) { - Component comp = container.getComponentAt(x, y); - //布局控件要先判断是不是可编辑 - //可以编辑,按原有逻辑判断 - //不可编辑,当成一整个控件处理 - if (comp == null){ - return false; - } - //参数面板内的组件不允许拖往绝对布局中 - if (creator.getParent() != null && ((XCreator)creator.getParent()).acceptType(XWParameterLayout.class)){ - Rectangle rec = creator.getBounds(); - rec.y = creator.getParent().getHeight() - rec.height; - creator.setBounds(rec); - return false; - } - //判断下组件能不能拖入绝对布局 - if (!creator.canEnterIntoAbsolutePane()){ - return false; - } - XLayoutContainer topLayout = XCreatorUtils.getHotspotContainer((XCreator)comp).getTopLayout(); - if(topLayout != null){ - if (topLayout.isEditable()){ - return topLayoutAccept(creator, x, y, topLayout); - } - //绝对布局嵌套,处于内层,不可编辑,不添加,topLayout只能获取到最外层可编辑的布局 - else if (((XLayoutContainer)topLayout.getParent()).acceptType(XWAbsoluteLayout.class)) { - return false; - } - else { - return acceptWidget(creator, x, y); - } - } - else{ - FRLogger.getLogger().error("top layout is null!"); - } - - return false; - } - - //toplayout假如可以编辑的话就往里面添加组件 - private boolean topLayoutAccept(XCreator creator, int x, int y, XLayoutContainer topLayout) { - //判断有没有和当前控件重叠 - //先计算当前控件的位置 - int creatorX, creatorY; - if (XCreatorUtils.getParentXLayoutContainer(creator) != null) { - - Rectangle creatorRectangle = ComponentUtils.getRelativeBounds(creator); - creatorX = creatorRectangle.x; - creatorY = creatorRectangle.y; - } else { - int w = creator.getWidth() / 2; - int h = creator.getHeight() / 2; - creatorX = x - w; - creatorY = y - h; - } - //再判断和布局中其他控件重叠 - Rectangle curRec = new Rectangle(creatorX, creatorY, creator.getWidth(), creator.getHeight()); - WAbsoluteLayout wAbsoluteLayout = (WAbsoluteLayout)topLayout.toData(); - for (int i = 0, count = wAbsoluteLayout.getWidgetCount(); i < count; i++) { - BoundsWidget temp = (BoundsWidget) wAbsoluteLayout.getWidget(i); - Rectangle rectangle = temp.getBounds(); - if (curRec.intersects(rectangle)){ - return false; - } - } - if (creatorX < 0 || creatorX + creator.getWidth() > container.getWidth()) { - return false; - } - if (creatorY < 0 || creatorY + creator.getHeight() > container.getHeight()){ - return false; - } - return x >= 0 && y >= 0 && creator.getHeight() <= container.getHeight() - && creator.getWidth() <= container.getWidth(); - } - - /** - * 判断是否鼠标在组件的三等分区域,如果组件在布局管理器中间,上下左右都可能会三等分 - * @param parentComp 鼠标所在区域的组件 - * @param x 坐标x - * @param y 坐标y - * @return 是则返回true - */ - public boolean isTrisectionArea(Component parentComp, int x, int y) { - XCreator creator = (XCreator)parentComp; - trisectAreaDirect = 0; - if (container.getComponentCount()<=1) { - return false; - } - int maxWidth = parentComp.getWidth(); - int maxHeight = parentComp.getHeight(); - int xL = parentComp.getX(); - int yL = parentComp.getY(); - // 组件宽高的十分之一和默认值取大 - int minRangeWidth = Math.max(maxWidth/BORDER_PROPORTION, DEFAULT_AREA_LENGTH); - int minRangeHeight = Math.max(maxHeight/BORDER_PROPORTION, DEFAULT_AREA_LENGTH); - if(yyL+maxHeight-minRangeHeight) { - // 在组件下侧三等分 - trisectAreaDirect = COMP_BOTTOM; - } else if (xxL+maxWidth-minRangeWidth) { - // 在组件右侧三等分 - trisectAreaDirect = COMP_RIGHT; - } - // tab布局的边界特殊处理,不进行三等分 - if(!creator.getTargetChildrenList().isEmpty()){ - return false; - } - - return !ComparatorUtils.equals(trisectAreaDirect, 0); - } - - //当前绝对布局不可编辑,就当成一个控件,组件添加在周围 - private boolean acceptWidget(XCreator creator, int x, int y){ - isFindRelatedComps = false; - //拖入组件判断时,先判断是否为交叉点区域,其次三等分区域,再次平分区域 - Component comp = container.getComponentAt(x, y); - boolean isMatchEdge = false; - //如果当前处于边缘地带, 那么就把他贴到父容器上 - XLayoutContainer parent = container.findNearestFit(); - container = parent != null ? parent : container; - isAdd2ParentLayout = true; - - int componentHeight = comp.getHeight(); - int componentWidth = comp.getWidth(); - //上半部分高度 - int upHeight = (int) (componentHeight * TOP_HALF) + comp.getY(); - //下半部分高度 - int downHeight = (int) (componentHeight * BOTTOM_HALF) + comp.getY(); - - if (isCrossPointArea(comp, x, y)) { - return canAcceptWhileCrossPoint(comp, x, y); - } - - if (isTrisectionArea(comp, x, y)) { - return canAcceptWhileTrisection(comp, x, y); - } - - boolean horizonValid = componentWidth >= minWidth * 2 + actualVal; - boolean verticalValid = componentHeight >= minHeight * 2 + actualVal; - return y > upHeight && y < downHeight ? horizonValid : verticalValid; - } - - /** - * 组件的ComponentAdapter在添加组件时,如果发现布局管理器不为空,会继而调用该布局管理器的 - * addComp方法来完成组件的具体添加。在该方法内,布局管理器可以提供额外的功能。 - * - * @param creator 被添加的新组件 - * @param x 添加的位置x,该位置是相对于container的 - * @param y 添加的位置y,该位置是相对于container的 - * @return 是否添加成功,成功返回true,否则false - */ - @Override - public boolean addBean(XCreator creator, int x, int y) { - Rectangle rect = ComponentUtils.getRelativeBounds(container); - - int posX = x + rect.x; - int posY = y + rect.y; - if (!accept(creator, x, y)) { - return false; - } - addComp(creator, posX, posY); - ((XWidgetCreator) creator).recalculateChildrenSize(); - return true; - } - - @Override - protected void addComp(XCreator creator, int x, int y) { - if(!isAdd2ParentLayout) { - Rectangle r = ComponentUtils.getRelativeBounds(container); - x = x - r.x; - y = y - r.y; - if (XCreatorUtils.getParentXLayoutContainer(creator) != null) { - - Rectangle creatorRectangle = ComponentUtils.getRelativeBounds(creator); - x = creatorRectangle.x - r.x; - y = creatorRectangle.y - r.y; - } else { - int w = creator.getWidth() / 2; - int h = creator.getHeight() / 2; - x = x - w; - y = y - h; - } - fix(creator, x, y); - - if (creator.hasTitleStyle()) { - addParentCreator(creator); - } else { - container.add(creator, creator.toData().getWidgetName()); - } - XWAbsoluteLayout layout = (XWAbsoluteLayout) container; - layout.updateBoundsWidget(creator); - updateCreatorBackBound(); - LayoutUtils.layoutRootContainer(container); - }else{ - fixAbsolute(creator, x, y); - if (creator.shouldScaleCreator() || creator.hasTitleStyle()) { - addParentCreator(creator); - } else { - container.add(creator, creator.toData().getWidgetName()); - } - XWFitLayout layout = (XWFitLayout) container; - // 更新对应的BoundsWidget - layout.updateBoundsWidget(); - updateCreatorBackBound(); - } - } - - private void updateCreatorBackBound() { - for (int i=0,size=container.getComponentCount(); i container.getWidth()) { - width = container.getWidth() - x; - } - - if (y < 0) { - height += y; - y = 0; - } else if (y + creator.getHeight() > container.getHeight()) { - height = container.getHeight() - y; - } - - creator.setBounds(x, y, width, height); - } - - @Override - public ConstraintsGroupModel getLayoutConstraints(XCreator creator) { - return new BoundsGroupModel((XWAbsoluteLayout)container, creator); - } - - @Override - public GroupModel getLayoutProperties() { - XWAbsoluteLayout xwAbsoluteLayout = (XWAbsoluteLayout) container; - return new FRAbsoluteLayoutPropertiesGroupModel(xwAbsoluteLayout); - } +package com.fr.design.designer.beans.adapters.layout; + +import com.fr.design.beans.GroupModel; +import com.fr.design.designer.beans.ConstraintsGroupModel; +import com.fr.design.designer.beans.HoverPainter; +import com.fr.design.designer.beans.painters.FRAbsoluteLayoutPainter; +import com.fr.design.designer.creator.*; +import com.fr.design.designer.properties.BoundsGroupModel; +import com.fr.design.designer.properties.FRAbsoluteLayoutPropertiesGroupModel; +import com.fr.design.utils.ComponentUtils; +import com.fr.design.utils.gui.LayoutUtils; +import com.fr.form.ui.container.WAbsoluteLayout; +import com.fr.general.ComparatorUtils; +import com.fr.general.FRLogger; + +import java.awt.*; + +public class FRAbsoluteLayoutAdapter extends FRBodyLayoutAdapter { + //是不是添加到父容器上 + private boolean isAdd2ParentLayout = false; + private HoverPainter painter; + + public FRAbsoluteLayoutAdapter(XLayoutContainer container) { + super(container); + painter = new FRAbsoluteLayoutPainter(container); + initMinSize(); + } + + private void initMinSize() { + XWAbsoluteLayout layout = (XWAbsoluteLayout) container; + minWidth = layout.getActualMinWidth(); + minHeight = layout.getActualMinHeight(); + actualVal = layout.getAcualInterval(); + margin = layout.toData().getMargin(); + } + + @Override + public HoverPainter getPainter() { + return painter; + } + + /** + * 是否能在指定位置添加组件 + * + * @param creator 组件 + * @param x 坐标x + * @param y 坐标y + * @return 能则返回true + */ + //这个地方的逻辑非常复杂, + // 1.当前绝对布局是不可编辑且是最外层,那么其他控件添加在它周围, + // 2.当前绝对布局是不可编辑且不是最外层,那么控件不可添加,(嵌套) + // 3.当前绝对布局可编辑,那么控件添加 + @Override + public boolean accept(XCreator creator, int x, int y) { + Component comp = container.getComponentAt(x, y); + //布局控件要先判断是不是可编辑 + //可以编辑,按原有逻辑判断 + //不可编辑,当成一整个控件处理 + if (comp == null) { + return false; + } + //参数面板内的组件不允许拖往绝对布局中 + if (creator.getParent() != null && ((XCreator) creator.getParent()).acceptType(XWParameterLayout.class)) { + Rectangle rec = creator.getBounds(); + rec.y = creator.getParent().getHeight() - rec.height; + creator.setBounds(rec); + return false; + } + //判断组件能不能拖入绝对布局 + if (!creator.canEnterIntoAbsolutePane()) { + return false; + } + XLayoutContainer topLayout = XCreatorUtils.getHotspotContainer((XCreator) comp).getTopLayout(); + if (topLayout != null) { + if (topLayout.isEditable()) { + return topLayoutAccept(creator, x, y); + } + //绝对布局嵌套,处于内层,不可编辑,不添加,topLayout只能获取到最外层可编辑的布局 + else if (((XLayoutContainer) topLayout.getParent()).acceptType(XWAbsoluteLayout.class)) { + return false; + } else { + return acceptWidget(x, y); + } + } else { + FRLogger.getLogger().error("top layout is null!"); + } + + return false; + } + + //topLayout假如可以编辑的话就往里面添加组件 + private boolean topLayoutAccept(XCreator creator, int x, int y) { + //允许组件重叠,可以不判断有没有和当前控件重叠 + //先计算当前控件的位置 + int creatorX, creatorY; + if (XCreatorUtils.getParentXLayoutContainer(creator) != null) { + Rectangle creatorRectangle = ComponentUtils.getRelativeBounds(creator); + creatorX = creatorRectangle.x; + creatorY = creatorRectangle.y; + } else { + //这边计算得到的组件其实位置是正确的, + //因为传入的x和y已经加上了宽度或者高度的一半,再减去相同的宽度和高度的一半是没区别的, + // 例如高度为21,那么就是+10-10; + // 高度为20,那么就是+10-10; 没区别 + int w = creator.getWidth() / 2; + int h = creator.getHeight() / 2; + creatorX = x - w; + creatorY = y - h; + } + if (creatorX < 0 || creatorX + creator.getWidth() > container.getWidth()) { + return false; + } + if (creatorY < 0 || creatorY + creator.getHeight() > container.getHeight()) { + return false; + } + return x >= 0 && y >= 0 && creator.getHeight() <= container.getHeight() + && creator.getWidth() <= container.getWidth(); + } + + /** + * 判断是否鼠标在组件的三等分区域,如果组件在布局管理器中间,上下左右都可能会三等分 + * + * @param parentComp 鼠标所在区域的组件 + * @param x 坐标x + * @param y 坐标y + * @return 是则返回true + */ + public boolean isTrisectionArea(Component parentComp, int x, int y) { + XCreator creator = (XCreator) parentComp; + trisectAreaDirect = 0; + if (container.getComponentCount() <= 1) { + return false; + } + int maxWidth = parentComp.getWidth(); + int maxHeight = parentComp.getHeight(); + int xL = parentComp.getX(); + int yL = parentComp.getY(); + // 组件宽高的十分之一和默认值取大 + int minRangeWidth = Math.max(maxWidth / BORDER_PROPORTION, DEFAULT_AREA_LENGTH); + int minRangeHeight = Math.max(maxHeight / BORDER_PROPORTION, DEFAULT_AREA_LENGTH); + if (y < yL + minRangeHeight) { + // 在组件上侧三等分 + trisectAreaDirect = COMP_TOP; + } else if (y > yL + maxHeight - minRangeHeight) { + // 在组件下侧三等分 + trisectAreaDirect = COMP_BOTTOM; + } else if (x < xL + minRangeWidth) { + // 在组件左侧三等分 + trisectAreaDirect = COMP_LEFT; + } else if (x > xL + maxWidth - minRangeWidth) { + // 在组件右侧三等分 + trisectAreaDirect = COMP_RIGHT; + } + // tab布局的边界特殊处理,不进行三等分 + if (!creator.getTargetChildrenList().isEmpty()) { + return false; + } + + return !ComparatorUtils.equals(trisectAreaDirect, 0); + } + + //当前绝对布局不可编辑,就当成一个控件,组件添加在周围 + private boolean acceptWidget(int x, int y) { + isFindRelatedComps = false; + //拖入组件判断时,先判断是否为交叉点区域,其次三等分区域,再次平分区域 + Component comp = container.getComponentAt(x, y); + //如果当前处于边缘地带, 那么就把他贴到父容器上 + XLayoutContainer parent = container.findNearestFit(); + container = parent != null ? parent : container; + isAdd2ParentLayout = true; + + int componentHeight = comp.getHeight(); + int componentWidth = comp.getWidth(); + //上半部分高度 + int upHeight = (int) (componentHeight * TOP_HALF) + comp.getY(); + //下半部分高度 + int downHeight = (int) (componentHeight * BOTTOM_HALF) + comp.getY(); + + if (isCrossPointArea(comp, x, y)) { + return canAcceptWhileCrossPoint(comp, x, y); + } + + if (isTrisectionArea(comp, x, y)) { + return canAcceptWhileTrisection(comp, x, y); + } + + boolean horizonValid = componentWidth >= minWidth * 2 + actualVal; + boolean verticalValid = componentHeight >= minHeight * 2 + actualVal; + return y > upHeight && y < downHeight ? horizonValid : verticalValid; + } + + /** + * 组件的ComponentAdapter在添加组件时,如果发现布局管理器不为空,会继而调用该布局管理器的 + * addComp方法来完成组件的具体添加。在该方法内,布局管理器可以提供额外的功能。 + * + * @param creator 被添加的新组件 + * @param x 添加的位置x,该位置是相对于container的 + * @param y 添加的位置y,该位置是相对于container的 + * @return 是否添加成功,成功返回true,否则false + */ + @Override + public boolean addBean(XCreator creator, int x, int y) { + Rectangle rect = ComponentUtils.getRelativeBounds(container); + + int posX = x + rect.x; + int posY = y + rect.y; + if (!accept(creator, x, y)) { + return false; + } + addComp(creator, posX, posY); + ((XWidgetCreator) creator).recalculateChildrenSize(); + return true; + } + + @Override + protected void addComp(XCreator creator, int x, int y) { + if (!isAdd2ParentLayout) { + Rectangle r = ComponentUtils.getRelativeBounds(container); + x = x - r.x; + y = y - r.y; + if (XCreatorUtils.getParentXLayoutContainer(creator) != null) { + + Rectangle creatorRectangle = ComponentUtils.getRelativeBounds(creator); + x = creatorRectangle.x - r.x; + y = creatorRectangle.y - r.y; + } else { + int w = creator.getWidth() / 2; + int h = creator.getHeight() / 2; + x = x - w; + y = y - h; + } + fix(creator, x, y); + + if (creator.hasTitleStyle()) { + addParentCreator(creator); + } else { + container.add(creator, creator.toData().getWidgetName()); + } + XWAbsoluteLayout layout = (XWAbsoluteLayout) container; + layout.updateBoundsWidget(creator); + updateCreatorBackBound(); + LayoutUtils.layoutRootContainer(container); + } else { + fixAbsolute(creator, x, y); + if (creator.shouldScaleCreator() || creator.hasTitleStyle()) { + addParentCreator(creator); + } else { + container.add(creator, creator.toData().getWidgetName()); + } + XWFitLayout layout = (XWFitLayout) container; + // 更新对应的BoundsWidget + layout.updateBoundsWidget(); + updateCreatorBackBound(); + } + } + + private void updateCreatorBackBound() { + for (int i = 0, size = container.getComponentCount(); i < size; i++) { + XCreator creator = (XCreator) container.getComponent(i); + creator.updateChildBound(minHeight); + creator.setBackupBound(creator.getBounds()); + } + } + + private void addParentCreator(XCreator child) { + XLayoutContainer parentPanel = child.initCreatorWrapper(child.getHeight()); + container.add(parentPanel, child.toData().getWidgetName()); + } + + /** + * 新拖入组件时,计算调整其他关联组件位置大小 + * + * @param child 新拖入的组件 + * @param x 鼠标所在x坐标 + * @param y 鼠标所在y坐标 + */ + private void fixAbsolute(XCreator child, int x, int y) { + Component parentComp = container.getComponentAt(x, y); + if (container.getComponentCount() == 0) { + child.setLocation(0, 0); + child.setSize(parentComp.getWidth(), parentComp.getHeight()); + } else if (isCrossPointArea(parentComp, x, y)) { + //交叉区域插入组件时,根据具体位置进行上下或者左右或者相邻三个组件的位置大小插入 + fixCrossPointArea(parentComp, child, x, y); + return; + } else if (isTrisectionArea(parentComp, x, y)) { + // 在边界三等分区域,就不再和组件二等分了 + fixTrisect(parentComp, child, x, y); + return; + } else { + fixHalve(parentComp, child, x, y); + } + } + + /** + * 组件拖拽后调整大小 + * + * @param creator 组件 + */ + @Override + public void fix(XCreator creator) { + WAbsoluteLayout wabs = (WAbsoluteLayout) container.toData(); + fix(creator, creator.getX(), creator.getY()); + wabs.setBounds(creator.toData(), creator.getBounds()); + + XWAbsoluteLayout layout = (XWAbsoluteLayout) container; + layout.updateBoundsWidget(creator); + } + + /** + * 调整组件大小到合适尺寸位置 + * + * @param creator 组件 + * @param x 坐标x + * @param y 坐标y + */ + public void fix(XCreator creator, int x, int y) { + int height = creator.getHeight(); + int width = creator.getWidth(); + if (x < 0) { + x = container.getX(); + } else if (x + creator.getWidth() > container.getWidth()) { + x = container.getWidth() - width; + } + + if (y < 0) { + y = container.getY(); + } else if (y + creator.getHeight() > container.getHeight()) { + y = container.getHeight() - height; + } + + creator.setBounds(x, y, width, height); + } + + @Override + public ConstraintsGroupModel getLayoutConstraints(XCreator creator) { + return new BoundsGroupModel((XWAbsoluteLayout) container, creator); + } + + @Override + public GroupModel getLayoutProperties() { + XWAbsoluteLayout xwAbsoluteLayout = (XWAbsoluteLayout) container; + return new FRAbsoluteLayoutPropertiesGroupModel(xwAbsoluteLayout); + } } \ No newline at end of file diff --git a/designer_form/src/com/fr/design/designer/beans/adapters/layout/FRFitLayoutAdapter.java b/designer_form/src/com/fr/design/designer/beans/adapters/layout/FRFitLayoutAdapter.java index 7401b8d077..eca82e5022 100644 --- a/designer_form/src/com/fr/design/designer/beans/adapters/layout/FRFitLayoutAdapter.java +++ b/designer_form/src/com/fr/design/designer/beans/adapters/layout/FRFitLayoutAdapter.java @@ -1,1198 +1,1189 @@ -/** - * - */ -package com.fr.design.designer.beans.adapters.layout; - -import java.awt.Component; -import java.awt.Dimension; -import java.awt.Rectangle; -import java.util.ArrayList; -import java.util.List; - -import com.fr.design.beans.GroupModel; -import com.fr.design.designer.beans.ConstraintsGroupModel; -import com.fr.design.designer.beans.HoverPainter; -import com.fr.design.designer.beans.painters.FRFitLayoutPainter; -import com.fr.design.designer.creator.XCreator; -import com.fr.design.designer.creator.XCreatorUtils; -import com.fr.design.designer.creator.XLayoutContainer; -import com.fr.design.designer.creator.XWFitLayout; -import com.fr.design.designer.creator.cardlayout.XWCardLayout; -import com.fr.design.designer.creator.cardlayout.XWCardMainBorderLayout; -import com.fr.design.designer.creator.cardlayout.XWTabFitLayout; -import com.fr.design.designer.properties.FRFitLayoutConstraints; -import com.fr.design.designer.properties.FRFitLayoutPropertiesGroupModel; -import com.fr.design.file.HistoryTemplateListPane; -import com.fr.design.mainframe.JForm; -import com.fr.design.utils.ComponentUtils; -import com.fr.form.ui.LayoutBorderStyle; -import com.fr.form.ui.container.WLayout; -import com.fr.form.ui.container.cardlayout.WCardMainBorderLayout; -import com.fr.general.ComparatorUtils; -import com.fr.form.ui.container.WAbsoluteLayout.BoundsWidget; - -/** - * 自适应布局的容器适配器 - * - * @author jim - * @date 2014-6-24 - */ -public class FRFitLayoutAdapter extends FRBodyLayoutAdapter { - - public static final String WIDGETPANEICONPATH = "/com/fr/web/images/form/resources/layout_absolute.png"; - private static final int DEPENDING_SCOPE = 3; - private HoverPainter painter; - //区分拖拽和编辑宽高 - private boolean isEdit; - - public boolean isEdit() { - return isEdit; - } - - public void setEdit(boolean edit) { - isEdit = edit; - } - /** - * 构造函数 - * - * @param container XWFitLayout容器 - */ - public FRFitLayoutAdapter(XLayoutContainer container) { - super(container); - painter = new FRFitLayoutPainter(container); - initMinSize(); - } - - private void initMinSize() { - XWFitLayout layout = (XWFitLayout) container; - minWidth = layout.getActualMinWidth(); - minHeight = layout.getActualMinHeight(); - actualVal = layout.getAcualInterval(); - margin = layout.toData().getMargin(); - } - - @Override - public HoverPainter getPainter() { - return painter; - } - - /** - * 返回布局自身属性,方便一些特有设置在layout刷新时处理 - */ - @Override - public GroupModel getLayoutProperties() { - XWFitLayout xfl = (XWFitLayout) container; - return new FRFitLayoutPropertiesGroupModel(xfl); - } - - /** - * 添加组件 - * - * @param child 待添加的组件 - * @param x 坐标x - * @param y 坐标y - */ - @Override - public void addComp(XCreator child, int x, int y) { - fix(child, x, y); - if (child.shouldScaleCreator() || child.hasTitleStyle()) { - addParentCreator(child); - } else { - container.add(child, child.toData().getWidgetName()); - } - XWFitLayout layout = (XWFitLayout) container; - // 更新对应的BoundsWidget - layout.updateBoundsWidget(); - updateCreatorBackBound(); - } - - public void updateCreatorBackBound() { - for (int i = 0, size = container.getComponentCount(); i < size; i++) { - XCreator creator = (XCreator) container.getComponent(i); - creator.updateChildBound(minHeight); - creator.setBackupBound(creator.getBounds()); - } - } - - - private void addParentCreator(XCreator child) { - XLayoutContainer parentPanel = child.initCreatorWrapper(minHeight); - container.add(parentPanel, child.toData().getWidgetName()); - } - - /** - * 能否对应位置放置当前组件 - * - * @param creator 组件 - * @param x 添加的位置x,该位置是相对于container的 - * @param y 添加的位置y,该位置是相对于container的 - * @return 是否可以放置 - */ - @Override - public boolean accept(XCreator creator, int x, int y) { - // 计算是否能拖入鼠标区域时,会用到fix 的方法 - isFindRelatedComps = false; - //拖入组件判断时,先判断是否为交叉点区域,其次三等分区域,再次平分区域 - Component comp = container.getComponentAt(x, y); - if (checkInterval(comp)) { - return false; - } - //如果当前处于边缘地带, 那么就把他贴到父容器上 - boolean isMatchEdge = matchEdge(x, y); - - int componentHeight = comp.getHeight(); - int componentWidth = comp.getWidth(); - //上半部分高度 - int upHeight = (int) (componentHeight * TOP_HALF) + comp.getY(); - //下半部分高度 - int downHeight = (int) (componentHeight * BOTTOM_HALF) + comp.getY(); - - //布局控件要先判断是不是可编辑 - XLayoutContainer topLayout = XCreatorUtils.getHotspotContainer((XCreator) comp).getTopLayout(); - if (topLayout != null && !isMatchEdge && !topLayout.isEditable()) { - return false; - } - - if (isCrossPointArea(comp, x, y)) { - return canAcceptWhileCrossPoint(comp, x, y); - } - - if (isTrisectionArea(comp, x, y)) { - return canAcceptWhileTrisection(comp, x, y); - } - - boolean horizonValid = componentWidth >= minWidth * 2 + actualVal; - boolean verticalValid = componentHeight >= minHeight * 2 + actualVal; - return y > upHeight && y < downHeight ? horizonValid : verticalValid; - } - - // 间隔区域 - private boolean checkInterval(Component comp) { - return container.getComponentCount() > 0 && comp == container; - } - - /** - * 是否在组件边缘 - * - * @param x 横坐标 - * @param y 纵坐标 - * @return 是否在组件边缘 - */ - public boolean matchEdge(int x, int y) { - if (intersectsEdge(x, y, container)) { - //寻找最近的fit, 在边缘地段添加的控件, 将其送给该fit - XLayoutContainer parent = container.findNearestFit(); - container = parent != null ? parent : container; - return true; - } - return false; - } - - /** - * 是否在组件边缘 - * - * @param x 横坐标 - * @param y 纵坐标 - * @param container 参照组件 - * @return 是否在组件边缘 - */ - //是否包含于边缘地段, 按顺序上, 下, 左, 右检测 - public boolean intersectsEdge(int x, int y, XLayoutContainer container) { - int containerX = container.getX(); - int containerY = container.getY(); - int containerWidth = container.getWidth(); - int containerHeight = container.getHeight(); - - // 当前坐标点 - Rectangle currentXY = new Rectangle(x, y, 1, 1); - // 上边缘 - Rectangle upEdge = new Rectangle(containerX, containerY, containerWidth, BORDER_PROPORTION); - if (upEdge.intersects(currentXY)) { - return true; - } - - int bottomY = containerY + containerHeight - BORDER_PROPORTION; - // 下边缘 - Rectangle bottomEdge = new Rectangle(containerX, bottomY, containerWidth, BORDER_PROPORTION); - if (bottomEdge.intersects(currentXY)) { - return true; - } - - //左右边缘的高度 -10*2 是为了不和上下边缘重合 - int verticalHeight = containerHeight - BORDER_PROPORTION * 2; - int leftY = containerY + BORDER_PROPORTION; - // 左边缘 - Rectangle leftEdge = new Rectangle(containerX, leftY, BORDER_PROPORTION, verticalHeight); - if (leftEdge.intersects(currentXY)) { - return true; - } - - int rightY = containerY + BORDER_PROPORTION; - int rightX = containerX + containerWidth - BORDER_PROPORTION; - // 右边缘 - Rectangle rightEdge = new Rectangle(rightX, rightY, BORDER_PROPORTION, verticalHeight); - return rightEdge.intersects(currentXY); - } - - /** - * 交叉点区域时,能否对应位置放入组件 - */ - protected boolean canAcceptWhileCrossPoint(Component comp, int x, int y) { - return super.canAcceptWhileCrossPoint(comp, x, y); - } - - protected boolean canAcceptWhileTrisection(Component comp, int x, int y) { - return super.canAcceptWhileTrisection(comp, x, y); - } - - /** - * 判断是否鼠标在组件的三等分区域,如果组件在布局管理器中间,上下左右都可能会三等分 - * - * @param parentComp 鼠标所在区域的组件 - * @param x 坐标x - * @param y 坐标y - * @return 是则返回true - */ - public boolean isTrisectionArea(Component parentComp, int x, int y) { - return super.isTrisectionArea(parentComp, x, y); - } - - /** - * 是否为组件交叉点区域 或者是相邻三组建中间点 - * - * @param currentComp 当前组件 - * @param x 坐标x - * @param y 坐标y - * @return 是则返回true - */ - public boolean isCrossPointArea(Component currentComp, int x, int y) { - return super.isCrossPointArea(currentComp, x, y); - } - - protected void initCompsList() { - super.initCompsList(); - } - - protected void clearCompsList() { - super.clearCompsList(); - } - - protected Rectangle getLayoutBound(XWCardMainBorderLayout mainLayout){ - return mainLayout.getBounds(); - } - - private Rectangle adjustBackupBound(Rectangle backupBound, XWCardMainBorderLayout mainLayout) { - // 参数界面高度对纵坐标产生的影响 - JForm jform = (JForm) (HistoryTemplateListPane.getInstance().getCurrentEditingTemplate()); - if (jform.getFormDesign().getParaComponent() != null) { - backupBound.y -= jform.getFormDesign().getParaHeight(); - } - - Rectangle rec = getLayoutBound(mainLayout); - // XWTabLayout里面的横纵坐标收到外层XWCardMainBorderLayout的横纵坐标影响 - // 减掉之后可以按照它原来的逻辑执行 - backupBound.x -= rec.x; - backupBound.y -= rec.y; - XWCardLayout cardLayout = mainLayout.getCardPart(); - LayoutBorderStyle style = cardLayout.toData().getBorderStyle(); - // 当tab布局为标题样式时,才需要处理标题栏高度产生的影响 - if (ComparatorUtils.equals(style.getType(), LayoutBorderStyle.TITLE)) { - backupBound.y -= WCardMainBorderLayout.TAB_HEIGHT; - } - return backupBound; - } - - /** - * 拖拽控件边框后,根据控件的大小尺寸,进行相关组件的调整 - * - * @param creator 组件 - */ - @Override - public void fix(XCreator creator) { - //拖拽组件原大小、位置 - Rectangle backupBound = creator.getBackupBound(); - backupBound.x -= container.getX(); - backupBound.y -= container.getY(); - //当前拖拽组件的位置 - int x = creator.getX(); - int y = creator.getY(); - - // 获取容器所有内部组件横坐标 - int[] posXs = container.getHors(); - // 获取容器所有内部组件纵坐标 - int[] posYs = container.getVeris(); - - XLayoutContainer outerLayout = container.getOuterLayout(); - if (!ComparatorUtils.equals(outerLayout, container.getBackupParent())) { - XWCardMainBorderLayout mainLayout = (XWCardMainBorderLayout) outerLayout; - backupBound = adjustBackupBound(backupBound, mainLayout); - } - - //拖拽组件拖拽以后的大小 - int w = creator.getWidth(); - int h = creator.getHeight(); - initCompsList(); - creator.setBounds(backupBound); - int difference = 0; - if (x != backupBound.x) { - dealLeft(backupBound, x, posXs, difference, creator); - } else if (w != backupBound.width) { - dealRight(backupBound, x, w, posXs, difference, creator); - } else if (y != backupBound.y) { - dealTop(backupBound, y, posYs, difference, creator); - } else if (h != backupBound.height) { - dealButtom(backupBound, y, h, posYs, difference, creator); - } - clearCompsList(); - XWFitLayout layout = (XWFitLayout) container; - layout.updateBoundsWidget(); // 更新对应的BoundsWidget - updateCreatorBackBound(); - } - - /** - * 拖拽控件边框后,根据控件的大小尺寸,进行相关组件的调整 - * - * @param backupBound 边界备份 - * @param bounds 组件边界 - * @param xCreator 组件 - * @param row 选中的行 - * @param difference 偏移量 - */ - public void calculateBounds(Rectangle backupBound, Rectangle bounds, XCreator xCreator, int row, int difference) { - Rectangle rc = new Rectangle(0,0,0,0); - XLayoutContainer parent = XCreatorUtils.getParentXLayoutContainer(xCreator); - if (parent != null) { - Rectangle rec = ComponentUtils.getRelativeBounds(parent); - rc.x = rec.x; - rc.y = rec.y; - } - int x = backupBound.x - rc.x, y = backupBound.y - rc.y; - //处理左右延伸 - switch (row) { - case 0: - if (backupBound.width + backupBound.x == container.getWidth() - margin.getRight() +rc.x) { - x += difference; - } - break; - case 1: - if(backupBound.y + backupBound.height == container.getHeight() - margin.getBottom() +rc.y){ - y += difference; - } - break; - } - bounds.setLocation(x,y); - xCreator.setBackupBound(backupBound); - xCreator.setBounds(bounds); - this.fix(xCreator); - } - - private void dealLeft(Rectangle backupBound, int x, int[] posXs, int difference, XCreator creator) { - if (backupBound.x == margin.getLeft()) { - return; - } - x = adjustCoordinateByDependingLine(x, posXs); - difference = x - backupBound.x; - dealDirectionAtLeft(backupBound, difference, creator); - } - - private void dealRight(Rectangle backupBound, int x, int w, int[] posXs, int difference, XCreator creator) { - if (backupBound.width + backupBound.x == container.getWidth() - margin.getRight()) { - return; - } - w = adjustDiffByDependingLine(x, posXs, w); - difference = w - backupBound.width; //拖拽长度 - dealDirectionAtRight(backupBound, difference, creator); - } - - private void dealTop(Rectangle backupBound, int y, int[] posYs, int difference, XCreator creator) { - if (backupBound.y == margin.getTop()) { - return; - } - y = adjustCoordinateByDependingLine(y, posYs); - difference = y - backupBound.y; - dealDirectionAtTop(backupBound, difference, creator); - } - - private void dealButtom(Rectangle backupBound, int y, int h, int[] posYs, int difference, XCreator creator) { - if (backupBound.y + backupBound.height == container.getHeight() - margin.getBottom()) { - return; - } - h = adjustDiffByDependingLine(y, posYs, h); - difference = h - backupBound.height; - dealDirectionABottom(backupBound, difference, creator); - } - - // 根据需要依附的位置调整拖拽的坐标值 - private int adjustCoordinateByDependingLine(int coordinate, int[] coordinates) { - if(!isEdit) { - for (int i = 0; i < coordinates.length; i++) { - if (coordinate == coordinates[i]) { - continue; - } - if (coordinate > coordinates[i] - DEPENDING_SCOPE && coordinate < coordinates[i] + DEPENDING_SCOPE) { - coordinate = coordinates[i]; - break; - } - } - } - return coordinate; - } - - // 根据需要依附的位置调整拖拽的距离 - private int adjustDiffByDependingLine(int coordinate, int[] coordinates, int diff) { - if(!isEdit) { - for (int i = 0; i < coordinates.length; i++) { - if (coordinate + diff > coordinates[i] - DEPENDING_SCOPE && coordinate + diff < coordinates[i] + DEPENDING_SCOPE) { - diff = coordinates[i] - coordinate; - break; - } - } - } - return diff; - } - - // 左侧边框拉伸,循环找出对齐的两侧控件 - private void dealDirectionAtLeft(Rectangle backupBound, int difference, Component creator) { - rightComps.add(creator); - Component rightComp = null; - int leftx = backupBound.x - DEFAULT_AREA_LENGTH - actualVal; - // 取左侧边框右面的组件x值 - int rightx = backupBound.x + DEFAULT_AREA_LENGTH; - Component leftComp = container.getLeftComp(backupBound.x, backupBound.y); - leftComps.add(leftComp); - //先找上侧对齐时(y相等)的左右两边组件 - int ry = backupBound.y; - int ly = leftComp.getY(); - int min = margin.getTop(); - int max = container.getHeight() - margin.getBottom(); - while (ry >= min && ly >= min) { - if (ry == ly) { - break; - } else { - if (ry > ly) { - rightComp = container.getTopComp(rightx, ry); - ry = rightComp.getY(); - rightComps.add(rightComp); - } else { - leftComp = container.getTopComp(leftx, ly); - ly = leftComp.getY(); - leftComps.add(leftComp); - } - } - } - // 下侧对齐时(y+h相等)两边组件 - ry = backupBound.y + backupBound.height; - ly = leftComps.get(0).getY() + leftComps.get(0).getHeight(); - while (ry <= max && ly <= max) { - if (ry == ly) { - break; - } else { - if (ry > ly) { - leftComp = container.getComponentAt(leftx, ly + DEFAULT_AREA_LENGTH + actualVal); - ly = leftComp.getY() + leftComp.getHeight(); - leftComps.add(leftComp); - } else { - rightComp = container.getComponentAt(rightx, ry + DEFAULT_AREA_LENGTH + actualVal); - ry = rightComp.getY() + rightComp.getHeight(); - rightComps.add(rightComp); - } - } - } - dealHorDirection(backupBound.x, difference); - } - - // 右侧边框拉伸,循环找出对齐的两侧控件 - private void dealDirectionAtRight(Rectangle backupBound, int difference, Component creator) { - leftComps.add(creator); - Component leftComp = null; - int leftx = backupBound.x + backupBound.width - DEFAULT_AREA_LENGTH; - // 取右侧边框右面的组件x值 - int rightx = backupBound.x + backupBound.width + DEFAULT_AREA_LENGTH + actualVal; - Component rightComp = container.getRightComp(backupBound.x, backupBound.y, backupBound.width); - rightComps.add(rightComp); - int ly = backupBound.y, ry = rightComp.getY(); - int min = margin.getTop(); - int max = container.getHeight() - margin.getBottom(); - while (ry >= min && ly >= min) { - if (ry == ly) { - break; - } else { - if (ry > ly) { - rightComp = container.getTopComp(rightx, ry); - ry = rightComp.getY(); - rightComps.add(rightComp); - } else { - leftComp = container.getTopComp(leftx, ly); - ly = leftComp.getY(); - leftComps.add(leftComp); - } - } - } - ly = backupBound.y + backupBound.height; - ry = rightComps.get(0).getY() + rightComps.get(0).getHeight(); - while (ry <= max && ly <= max) { - if (ry == ly) { - break; - } else { - if (ry > ly) { - leftComp = container.getComponentAt(leftx, ly + DEFAULT_AREA_LENGTH + actualVal); - ly = leftComp.getY() + leftComp.getHeight(); - leftComps.add(leftComp); - } else { - rightComp = container.getComponentAt(rightx, ry + DEFAULT_AREA_LENGTH + actualVal); - ry = rightComp.getY() + rightComp.getHeight(); - rightComps.add(rightComp); - } - } - } - dealHorDirection(backupBound.x + backupBound.width + actualVal, difference); - } - - /** - * 水平方向上拉伸边框的处理 - */ - private void dealHorDirection(int objx, int difference) { - if (difference > 0) { - difference = Math.min(getMinWidth(rightComps) - minWidth, difference); - } else { - difference = Math.max(difference, minWidth - getMinWidth(leftComps)); - } - //重新计算左右两侧组件size、point - if (CalculateLefttRelatComponent(difference)) { - CalculateRightRelatComponent(objx + difference, -difference); - } - } - - // 上侧边框拉伸,循环找出对齐的两侧控件 - private void dealDirectionAtTop(Rectangle backupBound, int difference, Component creator) { - downComps.add(creator); - // 取上侧边框上面的组件用的y值 - int topy = backupBound.y - DEFAULT_AREA_LENGTH - actualVal; - // 上侧边框下面的组件y值 - int bottomy = backupBound.y + DEFAULT_AREA_LENGTH; - Component topComp = container.getTopComp(backupBound.x, backupBound.y); - upComps.add(topComp); - Component bottomComp = null; - int min = margin.getLeft(); - int max = container.getWidth() - margin.getRight(); - //先找左侧侧对齐时(x相等)的上下两边组件 - int ux = topComp.getX(); - int dx = backupBound.x; - while (ux >= min && dx >= min) { - if (ux == dx) { - break; - } else { - if (ux < dx) { - bottomComp = container.getLeftComp(dx, bottomy); - dx = bottomComp.getX(); - downComps.add(bottomComp); - } else { - topComp = container.getLeftComp(ux, topy); - ux = topComp.getX(); - upComps.add(topComp); - } - } - } - // 右侧对齐时(x+w相等)两边组件 - ux = upComps.get(0).getX() + upComps.get(0).getWidth(); - dx = backupBound.x + backupBound.width; - while (ux <= max && dx <= max) { - if (ux == dx) { - break; - } else { - if (ux < dx) { - topComp = container.getComponentAt(ux + DEFAULT_AREA_LENGTH + actualVal, topy); - ux = topComp.getX() + topComp.getWidth(); - upComps.add(topComp); - } else { - bottomComp = container.getComponentAt(dx + DEFAULT_AREA_LENGTH + actualVal, bottomy); - dx = bottomComp.getX() + bottomComp.getWidth(); - downComps.add(bottomComp); - } - } - } - - dealVertiDirection(backupBound.y, difference); - } - - // 下侧边框拉伸,循环找出对齐的两侧控件 - private void dealDirectionABottom(Rectangle backupBound, int difference, Component creator) { - upComps.add(creator); - Component topComp = null; - Component bottomComp = container.getBottomComp(backupBound.x, backupBound.y, backupBound.height); - // 下侧边框下面的组件y坐标 - int bottomy = backupBound.y + backupBound.height + DEFAULT_AREA_LENGTH + actualVal; - // 取下侧边框上面的组件用的y值 - int topy = backupBound.y + backupBound.height - DEFAULT_AREA_LENGTH; - downComps.add(bottomComp); - int dx = bottomComp.getX(); - int ux = backupBound.x; - int min = margin.getLeft(); - int max = container.getWidth() - margin.getRight(); - while (ux >= min && dx >= min) { - if (ux == dx) { - break; - } else { - if (ux < dx) { - bottomComp = container.getLeftComp(dx, bottomy); - dx = bottomComp.getX(); - downComps.add(bottomComp); - } else { - topComp = container.getLeftComp(ux, topy); - ux = topComp.getX(); - upComps.add(topComp); - } - } - } - dx = downComps.get(0).getX() + downComps.get(0).getWidth(); - ux = backupBound.x + backupBound.width; - while (ux <= max && dx <= max) { - if (ux == dx) { - break; - } else { - if (ux < dx) { - topComp = container.getComponentAt(ux + DEFAULT_AREA_LENGTH + actualVal, topy); - ux = topComp.getX() + topComp.getWidth(); - upComps.add(topComp); - } else { - bottomComp = container.getComponentAt(dx + DEFAULT_AREA_LENGTH + actualVal, bottomy); - dx = bottomComp.getX() + bottomComp.getWidth(); - downComps.add(bottomComp); - } - } - } - dealVertiDirection(backupBound.y + backupBound.height + actualVal, difference); - } - - /** - * 垂直方向上拉伸边框的处理 - */ - private void dealVertiDirection(int objY, int difference) { - if (difference > 0) { - difference = Math.min(getMinHeight(downComps) - minHeight, difference); - } else { - difference = Math.max(difference, minHeight - getMinHeight(upComps)); - } - //重新计算上下两侧组件size、point - if (CalculateUpRelatComponent(difference)) { - CalculateDownRelatComponent(objY + difference, -difference); - } - ; - } - - /** - * 新拖入组件时,计算调整其他关联组件位置大小 - * - * @param child 新拖入的组件 - * @param x 鼠标所在x坐标 - * @param y 鼠标所在y坐标 - */ - public void fix(XCreator child, int x, int y) { - Component parentComp = container.getComponentAt(x, y); - if (container.getComponentCount() == 0) { - child.setLocation(0, 0); - child.setSize(parentComp.getWidth(), parentComp.getHeight()); - } else if (isCrossPointArea(parentComp, x, y)) { - //交叉区域插入组件时,根据具体位置进行上下或者左右或者相邻三个组件的位置大小插入 - fixCrossPointArea(parentComp, child, x, y); - return; - } else if (isTrisectionArea(parentComp, x, y)) { - // 在边界三等分区域,就不再和组件二等分了 - fixTrisect(parentComp, child, x, y); - return; - } else { - fixHalve(parentComp, child, x, y); - } - } - - /** - * 平分,正常情况拖入组件时,按照上1/4区域、下1/4区域为上下平分,中左侧1/2区域、中右侧1/2区域为左右平分 - */ - protected void fixHalve(Component currentComp, XCreator child, int x, int y) { - super.fixHalve(currentComp, child, x, y); - } - - /** - * 组件交叉区域进行插入时,调整受到变动的其他组件,之前是交叉区域插入也按照三等分逻辑,后面测试中发现有bug,改为和bi一样的鼠标所在侧平分 - * 默认左上角、右下角区域是垂直方向插入组件 - * 右上角和左下角是水平方向插入组件,这样避免田字块时重复 - */ - protected void fixCrossPointArea(Component currentComp, XCreator child, int x, int y) { - super.fixCrossPointArea(currentComp, child, x, y); - } - - /** - * 三等分区域时,调整相关联的组件 - * - * @param currentComp 鼠标所在组件 - * @param child 待插入组件 - */ - protected void fixTrisect(Component currentComp, XCreator child, int x, int y) { - super.fixTrisect(currentComp, child, x, y); - } - - /** - * 删除组件或者重新拖动时,其它组件重新计算位置大小 - */ - protected void delete(XCreator creator, int creatorWidth, int creatorHeight) { - int x = creator.getX(); - int y = creator.getY(); - recalculateChildrenSize(x, y, creatorWidth, creatorHeight); - } - - /** - * 重新计算内部组件大小 - * - * @param x 坐标x - * @param y 坐标y - * @param creatorWidth 删除的组件之前所在布局的宽度 - * @param creatorHeight 删除的组件之前所在布局的高度 - */ - public void recalculateChildrenSize(int x, int y, int creatorWidth, int creatorHeight) { - if (container.getComponentCount() == 0) { - return; - } else { - initCompsList(); - int width = creatorWidth; - int height = creatorHeight; - calculateRelatedComponent(x, y, width, height); - if (!rightComps.isEmpty() && getAllHeight(rightComps) == height) { - CalculateRightRelatComponent(x, width + actualVal); - } else if (!leftComps.isEmpty() && getAllHeight(leftComps) == height) { - CalculateLefttRelatComponent(width + actualVal); - } else if (!downComps.isEmpty() && getAllWidth(downComps) == width) { - CalculateDownRelatComponent(y, height + actualVal); - } else if (!upComps.isEmpty() && getAllWidth(upComps) == width) { - CalculateUpRelatComponent(height + actualVal); - } else { - // 由于布局三等分的存在,可能会出现删除组件时,找不到关联的组件填充,此时特殊处理 - calculateNoRelatedComponent(x, y, width, height); - } - } - clearCompsList(); - } - - /** - * 四侧边框都没有对齐的,此时每侧有且只有一个方向不对齐 - * 比如右侧不对齐,那么必然右上或右下没对齐,不会同时不对齐,否则不会出现此情况 - * 正常删除是右左下上优先原则,这边目前只调整右侧以至填充完整, - * 右侧不对齐时的组件先上下微调,再向左侧填充。 - */ - private void calculateNoRelatedComponent(int x, int y, int width, int height) { - // 只有最后一个组件了,直接删除 - if (container.getComponentCount() <= 1) { - return; - } - // 删除当前组件时,由于没有刚好边框对齐的其他组件,这时候需要调整的组件 - Component rightComp = container.getRightComp(x, y, width); - if (rightComp == null) { - return; - } - - int ry = rightComp.getY(); - clearCompsList(); - initCompsList(); - Rectangle rec = new Rectangle(x, y, width, height); - if (ry != y) { - calculateNoRelatedWhileRightTop(rec, rightComp); - } else { - calculateNoRelatedWhileRightBott(rec, rightComp); - } - - } - - private void calculateNoRelatedWhileRightTop(Rectangle bound, Component rcomp) { - if (rcomp == null) { - return; - } - - int ry = rcomp.getY(); - int rh = rcomp.getHeight(); - int rw = rcomp.getWidth(); - int dh = bound.y - ry - actualVal; - // 没法缩小高度 - if (dh < minHeight) { - // 没法缩小时则拉伸rcomp的上边框 - dealDirectionAtTop(rcomp.getBounds(), dh + actualVal, rcomp); - //调整的时候可能有组件达到最小高度,判断下 - if (rcomp.getY() != bound.y) { - clearCompsList(); - initCompsList(); - dealDirectionAtTop(rcomp.getBounds(), bound.y - rcomp.getY() - minHeight - actualVal, rcomp); - ry = rcomp.getY(); - int rx = rcomp.getX(); - rcomp.setBounds(rx, ry, rw, minHeight); - recalculateChildrenSize(rx, bound.y, rw, rh - dh - actualVal); - recalculateChildrenSize(bound.x, bound.y, bound.width, bound.height); - return; - } - } else { - // 右侧控件底部对齐 - if (rh + ry == bound.y + bound.height) { - rcomp.setSize(rw, dh); - bound.width += rw; - bound.width += actualVal; - } else { - recalculateChildrenSize(bound.x, ry + rh + actualVal, bound.width, bound.height + bound.y - rh - ry - actualVal); - recalculateChildrenSize(bound.x, bound.y, bound.width, ry + rh - bound.y); - return; - } - } - recalculateChildrenSize(bound.x, bound.y, bound.width, bound.height); - } - - private void calculateNoRelatedWhileRightBott(Rectangle bound, Component rcomp) { - rcomp = container.getBottomRightComp(bound.x, bound.y, bound.height, bound.width); - int ry = rcomp.getY(); - int rh = rcomp.getHeight(); - int rw = rcomp.getWidth(); - int dh = ry + rh - bound.y - bound.height - actualVal; - if (dh < minHeight) { - dealDirectionABottom(rcomp.getBounds(), -dh - actualVal, rcomp); - //调整的时候可能有组件达到最小高度,判断下 - if (rcomp.getHeight() + ry != bound.y + bound.height) { - clearCompsList(); - initCompsList(); - dh = ry + rcomp.getHeight() - bound.y - bound.height - actualVal; - dealDirectionABottom(rcomp.getBounds(), minHeight - dh, rcomp); - rh = rcomp.getHeight(); - int rx = rcomp.getX(); - rcomp.setBounds(rx, bound.y + bound.height + actualVal, rw, minHeight); - recalculateChildrenSize(rx, ry, rw, rh - minHeight - actualVal); - recalculateChildrenSize(bound.x, bound.y, bound.width, bound.height); - return; - } - } else { - if (ry == bound.y) { - rcomp.setBounds(rcomp.getX(), bound.y + bound.height + actualVal, rw, dh); - bound.width += rw; - bound.width += actualVal; - } else { - recalculateChildrenSize(bound.x, bound.y, bound.width, ry - bound.y - actualVal); - recalculateChildrenSize(bound.x, ry, bound.width, bound.height - ry + bound.y); - return; - } - } - recalculateChildrenSize(bound.x, bound.y, bound.width, bound.height); - } - - private int getMinWidth(List comps) { - if (comps.isEmpty()) { - return 0; - } - int minWidth = container.getWidth() - margin.getLeft() - margin.getRight(); - for (int i = 0, size = comps.size(); i < size; i++) { - minWidth = minWidth > comps.get(i).getWidth() ? comps.get(i).getWidth() : minWidth; - } - return minWidth; - } - - private int getMinHeight(List comps) { - if (comps.isEmpty()) { - return 0; - } - int minH = container.getHeight() - margin.getTop() - margin.getBottom(); - for (int i = 0, size = comps.size(); i < size; i++) { - minH = minH > comps.get(i).getHeight() ? comps.get(i).getHeight() : minH; - } - return minH; - } - - // 删除时计算待删除组件上下侧的组件是否何其对齐 - private int getAllHeight(List comps) { - int allHeight = 0; - if (comps.isEmpty()) { - return allHeight; - } - int n = comps.size(); - for (int i = 0; i < n; i++) { - allHeight += comps.get(i).getHeight(); - } - allHeight += (n - 1) * actualVal; - return allHeight; - } - - private int getAllWidth(List comps) { - int allWidth = 0; - if (comps.isEmpty()) { - return allWidth; - } - int n = comps.size(); - for (int i = 0; i < n; i++) { - allWidth += comps.get(i).getWidth(); - } - allWidth += (n - 1) * actualVal; - return allWidth; - } - - /** - * 获取有哪些相关联的组件 - */ - protected void calculateRelatedComponent(int objX, int objY, int objWidth, int objHeight) { - int count = container.getComponentCount(); - for (int i = 0; i < count; i++) { - Component relatComp = container.getComponent(i); - int rx = relatComp.getX(); - int ry = relatComp.getY(); - int rwidth = relatComp.getWidth(); - int rheight = relatComp.getHeight(); - int verti = ry - objY; - int hori = rx - objX; - boolean isHori = verti >= 0 && objHeight >= (rheight + verti); - boolean isVerti = hori >= 0 && objWidth >= (rwidth + hori); - if (isHori && (objX + objWidth + actualVal) == rx) { - rightComps.add(relatComp); - } else if (isHori && objX == (rx + rwidth + actualVal)) { - leftComps.add(relatComp); - } else if (isVerti && (objY + objHeight + actualVal) == ry) { - downComps.add(relatComp); - } else if (isVerti && objY == (ry + rheight + actualVal)) { - upComps.add(relatComp); - } - } - } - - /** - * 拖拽组件时遍历某一侧组件得到该侧组件能够缩放的最小宽度,tab布局最小宽度 = 内部组件数 * 单个组件最小宽度 - * - * @param list 某一侧组件的集合 如:leftComps - * @return int 最小宽度 - */ - private int getCompsMinWidth(List list) { - return getMaxCompsNum(list, true) * WLayout.MIN_WIDTH; - } - - /** - * 拖拽组件遍历某一侧得到该侧组件能够缩放的最小高度,tab布局最小高度 = 内部组件数 * 单个组件最小高度 + 标题高度 - * - * @param list 某一侧组件集合 - * @return int 最小高度 - */ - private int getCompsMinHeight(List list) { - for (int i = 0; i < list.size(); i++) { - XCreator creator = (XCreator) list.get(i); - ArrayList childrenList = creator.getTargetChildrenList(); - if (!childrenList.isEmpty()) { - return getMaxCompsNum(list, false) * WLayout.MIN_HEIGHT + WCardMainBorderLayout.TAB_HEIGHT; - } - } - return WLayout.MIN_HEIGHT; - } - - /** - * 根据子组件的横(纵)坐标获取某一侧组件的最大内部组件数 - * - * @param list 某一侧组件集合 - * @param isHor 是否以横坐标为准 - * @return int 最大内部组件数 - */ - private int getMaxCompsNum(List list, boolean isHor) { - int maxCompNums = 1; - for (int i = 0, size = list.size(); i < size; i++) { - XCreator creator = (XCreator) list.get(i); - ArrayList childrenList = creator.getTargetChildrenList(); - int count = childrenList.size(); - if (count > 0) { - for (int j = 0; j < count; j++) { - XWTabFitLayout tabLayout = (XWTabFitLayout) childrenList.get(j); - int[] positions = isHor ? tabLayout.getHors(true) : tabLayout.getVeris(true); - int compNums = positions.length - 1; - maxCompNums = Math.max(compNums, maxCompNums); - } - } - } - return maxCompNums; - } - - /** - * 根据偏移量缩放内部组件大小,(tab布局用到) - * - * @param creator tab布局 - * @param offset 偏移量 - * @param isHor 是否为横向拖拽 - */ - private void adjustCompsSize(XCreator creator, int offset, boolean isHor) { - ArrayList childrenList = creator.getTargetChildrenList(); - int size = childrenList.size(); - if (size > 0) { - for (int j = 0; j < size; j++) { - XWTabFitLayout tabLayout = (XWTabFitLayout) childrenList.get(j); - tabLayout.setBackupBound(tabLayout.getBounds()); - int refSize = isHor ? tabLayout.getWidth() : tabLayout.getHeight(); - double percent = (double) offset / refSize; - if (percent < 0 && !tabLayout.canReduce(percent)) { - return; - } - setAdjustedSize(tabLayout, offset, isHor); - for (int m = 0; m < tabLayout.getComponentCount(); m++) { - XCreator childCreator = tabLayout.getXCreator(m); - BoundsWidget wgt = (BoundsWidget) tabLayout.toData().getBoundsWidget(childCreator.toData()); - wgt.setBounds(tabLayout.getComponent(m).getBounds()); - } - adjustCreatorsSize(percent, tabLayout, isHor); - } - - } - } - - // 纵向拖拽,先将tab布局的高度设置为拖拽后的实际高度 - private void setAdjustedHeight(XWTabFitLayout tabLayout, int offset) { - tabLayout.setSize(tabLayout.getWidth(), tabLayout.getHeight() + offset); - } - - // 横向拖拽,先将tab布局的宽度设置为拖拽后的实际宽度 - private void setAdjustedSize(XWTabFitLayout tabLayout, int offset, boolean isHor) { - if (offset < 0) { - // 缩放时需要备份原tab布局宽高 - tabLayout.setReferDim(new Dimension(tabLayout.getWidth(), tabLayout.getHeight())); - } - if (isHor) { - tabLayout.setSize(tabLayout.getWidth() + offset, tabLayout.getHeight()); - return; - } - setAdjustedHeight(tabLayout, offset); - } - - // 按照拖拽偏移量,对tab布局进行缩放 - private void adjustCreatorsSize(double percent, XWTabFitLayout tabLayout, boolean isHor) { - if (isHor) { - tabLayout.adjustCreatorsWidth(percent); - return; - } - tabLayout.adjustCreatorsHeight(percent); - } - - - /** - * 删除或拉伸控件右边框 调整右侧组件位置大小 - * - * @param objX 调整后的坐标x - * @param objWidth 调整后的宽度 - */ - protected void CalculateRightRelatComponent(int objX, int objWidth) { - int count = rightComps.size(); - for (int i = 0; i < count; i++) { - XCreator creator = (XCreator) rightComps.get(i); - adjustCompsSize(creator, objWidth, true); - int ry = creator.getY(); - int rwidth = creator.getWidth(); - int rheight = creator.getHeight(); - creator.setLocation(objX, ry); - creator.setSize(rwidth + objWidth, rheight); - } - } - - /** - * 实际拖拽偏移量是否超出了可调整的宽度范围 - * - * @param offset 实际偏移量 - * @return boolean 是否超出调整范围 - */ - private boolean isBeyondAdjustWidthScope(int offset) { - boolean isBeyondScope = false; - isBeyondScope = offset < 0 ? isBeyondWidthScope(offset, leftComps) : isBeyondWidthScope(offset, rightComps); - return isBeyondScope; - } - - // 实际拖拽偏移量是否超出某一侧的可调整宽度 - private boolean isBeyondWidthScope(int offset, List compsList) { - int compMinWidth = getCompsMinWidth(compsList); - for (int i = 0; i < compsList.size(); i++) { - XCreator creator = (XCreator) compsList.get(i); - if (Math.abs(offset) > (creator.getWidth() - compMinWidth)) { - return true; - } - } - return false; - } - - /** - * 删除或拉伸控件左边框时 调整左侧的组件位置大小; - */ - protected boolean CalculateLefttRelatComponent(int objWidth) { - if (isBeyondAdjustWidthScope(objWidth)) { - return false; - } - int count = leftComps.size(); - for (int i = 0; i < count; i++) { - XCreator creator = (XCreator) leftComps.get(i); - adjustCompsSize(creator, objWidth, true); - int rwidth = creator.getWidth(); - int rheight = creator.getHeight(); - creator.setSize(rwidth + objWidth, rheight); - } - return true; - } - - /** - * 删除或拉伸下边框 调整下方的组件位置大小 - */ - protected void CalculateDownRelatComponent(int objY, int objHeight) { - int count = downComps.size(); - for (int i = 0; i < count; i++) { - XCreator creator = (XCreator) downComps.get(i); - adjustCompsSize(creator, objHeight, false); - int rx = creator.getX(); - int rwidth = creator.getWidth(); - int rheight = creator.getHeight(); - creator.setLocation(rx, objY); - creator.setSize(rwidth, rheight + objHeight); - } - } - - /** - * 实际拖拽偏移量是否超出了可调整的高度范围 - * - * @param offset 实际偏移量 - * @return boolean 是否超出调整范围 - */ - private boolean isBeyondAdjustHeightScope(int offset) { - boolean isBeyondScope = false; - isBeyondScope = offset < 0 ? isBeyondHeightScope(offset, upComps) : isBeyondHeightScope(offset, downComps); - return isBeyondScope; - } - - // 实际拖拽偏移量是否超出某一侧的可调整高度 - private boolean isBeyondHeightScope(int offset, List compsList) { - int minHeight = getCompsMinHeight(compsList); - for (int i = 0; i < compsList.size(); i++) { - XCreator creator = (XCreator) compsList.get(i); - if (Math.abs(offset) > (creator.getHeight() - minHeight)) { - return true; - } - } - return false; - } - - /** - * 删除或拉伸上边框 调整上方的组件位置大小 - */ - protected boolean CalculateUpRelatComponent(int objHeight) { - if (isBeyondAdjustHeightScope(objHeight)) { - return false; - } - int count = upComps.size(); - for (int i = 0; i < count; i++) { - XCreator creator = (XCreator) upComps.get(i); - adjustCompsSize(creator, objHeight, false); - int rwidth = creator.getWidth(); - int rheight = creator.getHeight(); - creator.setSize(rwidth, rheight + objHeight); - } - return true; - } - - /** - * 不调整,只计算位置 - * - * @return child的位置 - */ - public int[] getChildPosition(Component currentComp, XCreator child, int x, int y) { - return super.getChildPosition(currentComp, child, x, y); - } - - @Override - public ConstraintsGroupModel getLayoutConstraints(XCreator creator) { - return new FRFitLayoutConstraints((XWFitLayout) container, creator); - } +/** + * + */ +package com.fr.design.designer.beans.adapters.layout; + +import com.fr.design.beans.GroupModel; +import com.fr.design.designer.beans.ConstraintsGroupModel; +import com.fr.design.designer.beans.HoverPainter; +import com.fr.design.designer.beans.painters.FRFitLayoutPainter; +import com.fr.design.designer.creator.XCreator; +import com.fr.design.designer.creator.XCreatorUtils; +import com.fr.design.designer.creator.XLayoutContainer; +import com.fr.design.designer.creator.XWFitLayout; +import com.fr.design.designer.creator.cardlayout.XWCardLayout; +import com.fr.design.designer.creator.cardlayout.XWCardMainBorderLayout; +import com.fr.design.designer.creator.cardlayout.XWTabFitLayout; +import com.fr.design.designer.properties.FRFitLayoutConstraints; +import com.fr.design.designer.properties.FRFitLayoutPropertiesGroupModel; +import com.fr.design.file.HistoryTemplateListPane; +import com.fr.design.mainframe.JForm; +import com.fr.design.utils.ComponentUtils; +import com.fr.form.ui.LayoutBorderStyle; +import com.fr.form.ui.container.WLayout; +import com.fr.form.ui.container.cardlayout.WCardMainBorderLayout; +import com.fr.form.ui.widget.BoundsWidget; +import com.fr.general.ComparatorUtils; + +import java.awt.*; +import java.util.ArrayList; +import java.util.List; + +/** + * 自适应布局的容器适配器 + * + * @author jim + * @date 2014-6-24 + */ +public class FRFitLayoutAdapter extends FRBodyLayoutAdapter { + + public static final String WIDGETPANEICONPATH = "/com/fr/web/images/form/resources/layout_absolute.png"; + private static final int DEPENDING_SCOPE = 3; + private HoverPainter painter; + //区分拖拽和编辑宽高 + private boolean isEdit; + + public boolean isEdit() { + return isEdit; + } + + public void setEdit(boolean edit) { + isEdit = edit; + } + + /** + * 构造函数 + * + * @param container XWFitLayout容器 + */ + public FRFitLayoutAdapter(XLayoutContainer container) { + super(container); + painter = new FRFitLayoutPainter(container); + initMinSize(); + } + + private void initMinSize() { + XWFitLayout layout = (XWFitLayout) container; + minWidth = layout.getActualMinWidth(); + minHeight = layout.getActualMinHeight(); + actualVal = layout.getAcualInterval(); + margin = layout.toData().getMargin(); + } + + @Override + public HoverPainter getPainter() { + return painter; + } + + /** + * 返回布局自身属性,方便一些特有设置在layout刷新时处理 + */ + @Override + public GroupModel getLayoutProperties() { + XWFitLayout xfl = (XWFitLayout) container; + return new FRFitLayoutPropertiesGroupModel(xfl); + } + + /** + * 添加组件 + * + * @param child 待添加的组件 + * @param x 坐标x + * @param y 坐标y + */ + @Override + public void addComp(XCreator child, int x, int y) { + fix(child, x, y); + if (child.shouldScaleCreator() || child.hasTitleStyle()) { + addParentCreator(child); + } else { + container.add(child, child.toData().getWidgetName()); + } + XWFitLayout layout = (XWFitLayout) container; + // 更新对应的BoundsWidget + layout.updateBoundsWidget(); + updateCreatorBackBound(); + } + + public void updateCreatorBackBound() { + for (int i = 0, size = container.getComponentCount(); i < size; i++) { + XCreator creator = (XCreator) container.getComponent(i); + creator.updateChildBound(minHeight); + creator.setBackupBound(creator.getBounds()); + } + } + + + private void addParentCreator(XCreator child) { + XLayoutContainer parentPanel = child.initCreatorWrapper(minHeight); + container.add(parentPanel, child.toData().getWidgetName()); + } + + /** + * 能否对应位置放置当前组件 + * + * @param creator 组件 + * @param x 添加的位置x,该位置是相对于container的 + * @param y 添加的位置y,该位置是相对于container的 + * @return 是否可以放置 + */ + @Override + public boolean accept(XCreator creator, int x, int y) { + // 计算是否能拖入鼠标区域时,会用到fix 的方法 + isFindRelatedComps = false; + //拖入组件判断时,先判断是否为交叉点区域,其次三等分区域,再次平分区域 + Component comp = container.getComponentAt(x, y); + if (comp == null || checkInterval(comp)) { + return false; + } + //如果当前处于边缘地带, 那么就把他贴到父容器上 + boolean isMatchEdge = matchEdge(x, y); + + int componentHeight = comp.getHeight(); + int componentWidth = comp.getWidth(); + //上半部分高度 + int upHeight = (int) (componentHeight * TOP_HALF) + comp.getY(); + //下半部分高度 + int downHeight = (int) (componentHeight * BOTTOM_HALF) + comp.getY(); + + //布局控件要先判断是不是可编辑 + XLayoutContainer topLayout = XCreatorUtils.getHotspotContainer((XCreator) comp).getTopLayout(); + if (topLayout != null && !isMatchEdge && !topLayout.isEditable()) { + return false; + } + + if (isCrossPointArea(comp, x, y)) { + return canAcceptWhileCrossPoint(comp, x, y); + } + + if (isTrisectionArea(comp, x, y)) { + return canAcceptWhileTrisection(comp, x, y); + } + + boolean horizonValid = componentWidth >= minWidth * 2 + actualVal; + boolean verticalValid = componentHeight >= minHeight * 2 + actualVal; + return y > upHeight && y < downHeight ? horizonValid : verticalValid; + } + + // 间隔区域 + private boolean checkInterval(Component comp) { + return container.getComponentCount() > 0 && comp == container; + } + + /** + * 是否在组件边缘 + * + * @param x 横坐标 + * @param y 纵坐标 + * @return 是否在组件边缘 + */ + public boolean matchEdge(int x, int y) { + if (intersectsEdge(x, y, container)) { + //寻找最近的fit, 在边缘地段添加的控件, 将其送给该fit + XLayoutContainer parent = container.findNearestFit(); + container = parent != null ? parent : container; + return true; + } + return false; + } + + /** + * 是否在组件边缘 + * + * @param x 横坐标 + * @param y 纵坐标 + * @param container 参照组件 + * @return 是否在组件边缘 + */ + //是否包含于边缘地段, 按顺序上, 下, 左, 右检测 + public boolean intersectsEdge(int x, int y, XLayoutContainer container) { + int containerX = container.getX(); + int containerY = container.getY(); + int containerWidth = container.getWidth(); + int containerHeight = container.getHeight(); + + // 当前坐标点 + Rectangle currentXY = new Rectangle(x, y, 1, 1); + // 上边缘 + Rectangle upEdge = new Rectangle(containerX, containerY, containerWidth, BORDER_PROPORTION); + if (upEdge.intersects(currentXY)) { + return true; + } + + int bottomY = containerY + containerHeight - BORDER_PROPORTION; + // 下边缘 + Rectangle bottomEdge = new Rectangle(containerX, bottomY, containerWidth, BORDER_PROPORTION); + if (bottomEdge.intersects(currentXY)) { + return true; + } + + //左右边缘的高度 -10*2 是为了不和上下边缘重合 + int verticalHeight = containerHeight - BORDER_PROPORTION * 2; + int leftY = containerY + BORDER_PROPORTION; + // 左边缘 + Rectangle leftEdge = new Rectangle(containerX, leftY, BORDER_PROPORTION, verticalHeight); + if (leftEdge.intersects(currentXY)) { + return true; + } + + int rightY = containerY + BORDER_PROPORTION; + int rightX = containerX + containerWidth - BORDER_PROPORTION; + // 右边缘 + Rectangle rightEdge = new Rectangle(rightX, rightY, BORDER_PROPORTION, verticalHeight); + return rightEdge.intersects(currentXY); + } + + /** + * 交叉点区域时,能否对应位置放入组件 + */ + protected boolean canAcceptWhileCrossPoint(Component comp, int x, int y) { + return super.canAcceptWhileCrossPoint(comp, x, y); + } + + protected boolean canAcceptWhileTrisection(Component comp, int x, int y) { + return super.canAcceptWhileTrisection(comp, x, y); + } + + /** + * 判断是否鼠标在组件的三等分区域,如果组件在布局管理器中间,上下左右都可能会三等分 + * + * @param parentComp 鼠标所在区域的组件 + * @param x 坐标x + * @param y 坐标y + * @return 是则返回true + */ + public boolean isTrisectionArea(Component parentComp, int x, int y) { + return super.isTrisectionArea(parentComp, x, y); + } + + /** + * 是否为组件交叉点区域 或者是相邻三组建中间点 + * + * @param currentComp 当前组件 + * @param x 坐标x + * @param y 坐标y + * @return 是则返回true + */ + public boolean isCrossPointArea(Component currentComp, int x, int y) { + return super.isCrossPointArea(currentComp, x, y); + } + + + protected Rectangle getLayoutBound(XWCardMainBorderLayout mainLayout) { + return mainLayout.getBounds(); + } + + private Rectangle adjustBackupBound(Rectangle backupBound, XWCardMainBorderLayout mainLayout) { + // 参数界面高度对纵坐标产生的影响 + JForm jform = (JForm) (HistoryTemplateListPane.getInstance().getCurrentEditingTemplate()); + if (jform.getFormDesign().getParaComponent() != null) { + backupBound.y -= jform.getFormDesign().getParaHeight(); + } + + Rectangle rec = getLayoutBound(mainLayout); + // XWTabLayout里面的横纵坐标收到外层XWCardMainBorderLayout的横纵坐标影响 + // 减掉之后可以按照它原来的逻辑执行 + backupBound.x -= rec.x; + backupBound.y -= rec.y; + XWCardLayout cardLayout = mainLayout.getCardPart(); + LayoutBorderStyle style = cardLayout.toData().getBorderStyle(); + // 当tab布局为标题样式时,才需要处理标题栏高度产生的影响 + if (ComparatorUtils.equals(style.getType(), LayoutBorderStyle.TITLE)) { + backupBound.y -= WCardMainBorderLayout.TAB_HEIGHT; + } + return backupBound; + } + + /** + * 拖拽控件边框后,根据控件的大小尺寸,进行相关组件的调整 + * + * @param creator 组件 + */ + @Override + public void fix(XCreator creator) { + //拖拽组件原大小、位置 + Rectangle backupBound = creator.getBackupBound(); + backupBound.x -= container.getX(); + backupBound.y -= container.getY(); + //当前拖拽组件的位置 + int x = creator.getX(); + int y = creator.getY(); + + // 获取容器所有内部组件横坐标 + int[] posXs = container.getHors(); + // 获取容器所有内部组件纵坐标 + int[] posYs = container.getVeris(); + + XLayoutContainer outerLayout = container.getOuterLayout(); + if (!ComparatorUtils.equals(outerLayout, container.getBackupParent())) { + XWCardMainBorderLayout mainLayout = (XWCardMainBorderLayout) outerLayout; + backupBound = adjustBackupBound(backupBound, mainLayout); + } + + //拖拽组件拖拽以后的大小 + int w = creator.getWidth(); + int h = creator.getHeight(); + initCompsList(); + creator.setBounds(backupBound); + int difference = 0; + if (x != backupBound.x) { + dealLeft(backupBound, x, posXs, difference, creator); + } else if (w != backupBound.width) { + dealRight(backupBound, x, w, posXs, difference, creator); + } else if (y != backupBound.y) { + dealTop(backupBound, y, posYs, difference, creator); + } else if (h != backupBound.height) { + dealButtom(backupBound, y, h, posYs, difference, creator); + } + clearCompsList(); + XWFitLayout layout = (XWFitLayout) container; + layout.updateBoundsWidget(); // 更新对应的BoundsWidget + updateCreatorBackBound(); + } + + /** + * 拖拽控件边框后,根据控件的大小尺寸,进行相关组件的调整 + * + * @param backupBound 边界备份 + * @param bounds 组件边界 + * @param xCreator 组件 + * @param row 选中的行 + * @param difference 偏移量 + */ + public void calculateBounds(Rectangle backupBound, Rectangle bounds, XCreator xCreator, int row, int difference) { + Rectangle rc = new Rectangle(0, 0, 0, 0); + XLayoutContainer parent = XCreatorUtils.getParentXLayoutContainer(xCreator); + if (parent != null) { + Rectangle rec = ComponentUtils.getRelativeBounds(parent); + rc.x = rec.x; + rc.y = rec.y; + } + int x = backupBound.x - rc.x, y = backupBound.y - rc.y; + //处理左右延伸 + switch (row) { + case 0: + if (backupBound.width + backupBound.x == container.getWidth() - margin.getRight() + rc.x) { + x += difference; + } + break; + case 1: + if (backupBound.y + backupBound.height == container.getHeight() - margin.getBottom() + rc.y) { + y += difference; + } + break; + } + bounds.setLocation(x, y); + xCreator.setBackupBound(backupBound); + xCreator.setBounds(bounds); + this.fix(xCreator); + } + + private void dealLeft(Rectangle backupBound, int x, int[] posXs, int difference, XCreator creator) { + if (backupBound.x == margin.getLeft()) { + return; + } + x = adjustCoordinateByDependingLine(x, posXs); + difference = x - backupBound.x; + dealDirectionAtLeft(backupBound, difference, creator); + } + + private void dealRight(Rectangle backupBound, int x, int w, int[] posXs, int difference, XCreator creator) { + if (backupBound.width + backupBound.x == container.getWidth() - margin.getRight()) { + return; + } + w = adjustDiffByDependingLine(x, posXs, w); + difference = w - backupBound.width; //拖拽长度 + dealDirectionAtRight(backupBound, difference, creator); + } + + private void dealTop(Rectangle backupBound, int y, int[] posYs, int difference, XCreator creator) { + if (backupBound.y == margin.getTop()) { + return; + } + y = adjustCoordinateByDependingLine(y, posYs); + difference = y - backupBound.y; + dealDirectionAtTop(backupBound, difference, creator); + } + + private void dealButtom(Rectangle backupBound, int y, int h, int[] posYs, int difference, XCreator creator) { + if (backupBound.y + backupBound.height == container.getHeight() - margin.getBottom()) { + return; + } + h = adjustDiffByDependingLine(y, posYs, h); + difference = h - backupBound.height; + dealDirectionABottom(backupBound, difference, creator); + } + + // 根据需要依附的位置调整拖拽的坐标值 + private int adjustCoordinateByDependingLine(int coordinate, int[] coordinates) { + if (!isEdit) { + for (int i = 0; i < coordinates.length; i++) { + if (coordinate == coordinates[i]) { + continue; + } + if (coordinate > coordinates[i] - DEPENDING_SCOPE && coordinate < coordinates[i] + DEPENDING_SCOPE) { + coordinate = coordinates[i]; + break; + } + } + } + return coordinate; + } + + // 根据需要依附的位置调整拖拽的距离 + private int adjustDiffByDependingLine(int coordinate, int[] coordinates, int diff) { + if (!isEdit) { + for (int i = 0; i < coordinates.length; i++) { + if (coordinate + diff > coordinates[i] - DEPENDING_SCOPE && coordinate + diff < coordinates[i] + DEPENDING_SCOPE) { + diff = coordinates[i] - coordinate; + break; + } + } + } + return diff; + } + + // 左侧边框拉伸,循环找出对齐的两侧控件 + private void dealDirectionAtLeft(Rectangle backupBound, int difference, Component creator) { + rightComps.add(creator); + Component rightComp = null; + int leftx = backupBound.x - DEFAULT_AREA_LENGTH - actualVal; + // 取左侧边框右面的组件x值 + int rightx = backupBound.x + DEFAULT_AREA_LENGTH; + Component leftComp = container.getLeftComp(backupBound.x, backupBound.y); + leftComps.add(leftComp); + //先找上侧对齐时(y相等)的左右两边组件 + int ry = backupBound.y; + int ly = leftComp.getY(); + int min = margin.getTop(); + int max = container.getHeight() - margin.getBottom(); + while (ry >= min && ly >= min) { + if (ry == ly) { + break; + } else { + if (ry > ly) { + rightComp = container.getTopComp(rightx, ry); + ry = rightComp.getY(); + rightComps.add(rightComp); + } else { + leftComp = container.getTopComp(leftx, ly); + ly = leftComp.getY(); + leftComps.add(leftComp); + } + } + } + // 下侧对齐时(y+h相等)两边组件 + ry = backupBound.y + backupBound.height; + ly = leftComps.get(0).getY() + leftComps.get(0).getHeight(); + while (ry <= max && ly <= max) { + if (ry == ly) { + break; + } else { + if (ry > ly) { + leftComp = container.getComponentAt(leftx, ly + DEFAULT_AREA_LENGTH + actualVal); + ly = leftComp.getY() + leftComp.getHeight(); + leftComps.add(leftComp); + } else { + rightComp = container.getComponentAt(rightx, ry + DEFAULT_AREA_LENGTH + actualVal); + ry = rightComp.getY() + rightComp.getHeight(); + rightComps.add(rightComp); + } + } + } + dealHorDirection(backupBound.x, difference); + } + + // 右侧边框拉伸,循环找出对齐的两侧控件 + private void dealDirectionAtRight(Rectangle backupBound, int difference, Component creator) { + leftComps.add(creator); + Component leftComp = null; + int leftx = backupBound.x + backupBound.width - DEFAULT_AREA_LENGTH; + // 取右侧边框右面的组件x值 + int rightx = backupBound.x + backupBound.width + DEFAULT_AREA_LENGTH + actualVal; + Component rightComp = container.getRightComp(backupBound.x, backupBound.y, backupBound.width); + rightComps.add(rightComp); + int ly = backupBound.y, ry = rightComp.getY(); + int min = margin.getTop(); + int max = container.getHeight() - margin.getBottom(); + while (ry >= min && ly >= min) { + if (ry == ly) { + break; + } else { + if (ry > ly) { + rightComp = container.getTopComp(rightx, ry); + ry = rightComp.getY(); + rightComps.add(rightComp); + } else { + leftComp = container.getTopComp(leftx, ly); + ly = leftComp.getY(); + leftComps.add(leftComp); + } + } + } + ly = backupBound.y + backupBound.height; + ry = rightComps.get(0).getY() + rightComps.get(0).getHeight(); + while (ry <= max && ly <= max) { + if (ry == ly) { + break; + } else { + if (ry > ly) { + leftComp = container.getComponentAt(leftx, ly + DEFAULT_AREA_LENGTH + actualVal); + ly = leftComp.getY() + leftComp.getHeight(); + leftComps.add(leftComp); + } else { + rightComp = container.getComponentAt(rightx, ry + DEFAULT_AREA_LENGTH + actualVal); + ry = rightComp.getY() + rightComp.getHeight(); + rightComps.add(rightComp); + } + } + } + dealHorDirection(backupBound.x + backupBound.width + actualVal, difference); + } + + /** + * 水平方向上拉伸边框的处理 + */ + private void dealHorDirection(int objx, int difference) { + if (difference > 0) { + difference = Math.min(getMinWidth(rightComps) - minWidth, difference); + } else { + difference = Math.max(difference, minWidth - getMinWidth(leftComps)); + } + //重新计算左右两侧组件size、point + if (calculateLefttRelatComponent(difference)) { + calculateRightRelatComponent(objx + difference, -difference); + } + } + + // 上侧边框拉伸,循环找出对齐的两侧控件 + private void dealDirectionAtTop(Rectangle backupBound, int difference, Component creator) { + downComps.add(creator); + // 取上侧边框上面的组件用的y值 + int topy = backupBound.y - DEFAULT_AREA_LENGTH - actualVal; + // 上侧边框下面的组件y值 + int bottomy = backupBound.y + DEFAULT_AREA_LENGTH; + Component topComp = container.getTopComp(backupBound.x, backupBound.y); + upComps.add(topComp); + Component bottomComp = null; + int min = margin.getLeft(); + int max = container.getWidth() - margin.getRight(); + //先找左侧侧对齐时(x相等)的上下两边组件 + int ux = topComp.getX(); + int dx = backupBound.x; + while (ux >= min && dx >= min) { + if (ux == dx) { + break; + } else { + if (ux < dx) { + bottomComp = container.getLeftComp(dx, bottomy); + dx = bottomComp.getX(); + downComps.add(bottomComp); + } else { + topComp = container.getLeftComp(ux, topy); + ux = topComp.getX(); + upComps.add(topComp); + } + } + } + // 右侧对齐时(x+w相等)两边组件 + ux = upComps.get(0).getX() + upComps.get(0).getWidth(); + dx = backupBound.x + backupBound.width; + while (ux <= max && dx <= max) { + if (ux == dx) { + break; + } else { + if (ux < dx) { + topComp = container.getComponentAt(ux + DEFAULT_AREA_LENGTH + actualVal, topy); + ux = topComp.getX() + topComp.getWidth(); + upComps.add(topComp); + } else { + bottomComp = container.getComponentAt(dx + DEFAULT_AREA_LENGTH + actualVal, bottomy); + dx = bottomComp.getX() + bottomComp.getWidth(); + downComps.add(bottomComp); + } + } + } + + dealVertiDirection(backupBound.y, difference); + } + + // 下侧边框拉伸,循环找出对齐的两侧控件 + private void dealDirectionABottom(Rectangle backupBound, int difference, Component creator) { + upComps.add(creator); + Component topComp = null; + Component bottomComp = container.getBottomComp(backupBound.x, backupBound.y, backupBound.height); + // 下侧边框下面的组件y坐标 + int bottomy = backupBound.y + backupBound.height + DEFAULT_AREA_LENGTH + actualVal; + // 取下侧边框上面的组件用的y值 + int topy = backupBound.y + backupBound.height - DEFAULT_AREA_LENGTH; + downComps.add(bottomComp); + int dx = bottomComp.getX(); + int ux = backupBound.x; + int min = margin.getLeft(); + int max = container.getWidth() - margin.getRight(); + while (ux >= min && dx >= min) { + if (ux == dx) { + break; + } else { + if (ux < dx) { + bottomComp = container.getLeftComp(dx, bottomy); + dx = bottomComp.getX(); + downComps.add(bottomComp); + } else { + topComp = container.getLeftComp(ux, topy); + ux = topComp.getX(); + upComps.add(topComp); + } + } + } + dx = downComps.get(0).getX() + downComps.get(0).getWidth(); + ux = backupBound.x + backupBound.width; + while (ux <= max && dx <= max) { + if (ux == dx) { + break; + } else { + if (ux < dx) { + topComp = container.getComponentAt(ux + DEFAULT_AREA_LENGTH + actualVal, topy); + ux = topComp.getX() + topComp.getWidth(); + upComps.add(topComp); + } else { + bottomComp = container.getComponentAt(dx + DEFAULT_AREA_LENGTH + actualVal, bottomy); + dx = bottomComp.getX() + bottomComp.getWidth(); + downComps.add(bottomComp); + } + } + } + dealVertiDirection(backupBound.y + backupBound.height + actualVal, difference); + } + + /** + * 垂直方向上拉伸边框的处理 + */ + private void dealVertiDirection(int objY, int difference) { + if (difference > 0) { + difference = Math.min(getMinHeight(downComps) - minHeight, difference); + } else { + difference = Math.max(difference, minHeight - getMinHeight(upComps)); + } + //重新计算上下两侧组件size、point + if (calculateUpRelatComponent(difference)) { + calculateDownRelatComponent(objY + difference, -difference); + } + } + + /** + * 新拖入组件时,计算调整其他关联组件位置大小 + * + * @param child 新拖入的组件 + * @param x 鼠标所在x坐标 + * @param y 鼠标所在y坐标 + */ + public void fix(XCreator child, int x, int y) { + Component parentComp = container.getComponentAt(x, y); + if (container.getComponentCount() == 0) { + child.setLocation(0, 0); + child.setSize(parentComp.getWidth(), parentComp.getHeight()); + } else if (isCrossPointArea(parentComp, x, y)) { + //交叉区域插入组件时,根据具体位置进行上下或者左右或者相邻三个组件的位置大小插入 + fixCrossPointArea(parentComp, child, x, y); + return; + } else if (isTrisectionArea(parentComp, x, y)) { + // 在边界三等分区域,就不再和组件二等分了 + fixTrisect(parentComp, child, x, y); + return; + } else { + fixHalve(parentComp, child, x, y); + } + } + + /** + * 平分,正常情况拖入组件时,按照上1/4区域、下1/4区域为上下平分,中左侧1/2区域、中右侧1/2区域为左右平分 + */ + protected void fixHalve(Component currentComp, XCreator child, int x, int y) { + super.fixHalve(currentComp, child, x, y); + } + + /** + * 组件交叉区域进行插入时,调整受到变动的其他组件,之前是交叉区域插入也按照三等分逻辑,后面测试中发现有bug,改为和bi一样的鼠标所在侧平分 + * 默认左上角、右下角区域是垂直方向插入组件 + * 右上角和左下角是水平方向插入组件,这样避免田字块时重复 + */ + protected void fixCrossPointArea(Component currentComp, XCreator child, int x, int y) { + super.fixCrossPointArea(currentComp, child, x, y); + } + + /** + * 三等分区域时,调整相关联的组件 + * + * @param currentComp 鼠标所在组件 + * @param child 待插入组件 + */ + protected void fixTrisect(Component currentComp, XCreator child, int x, int y) { + super.fixTrisect(currentComp, child, x, y); + } + + /** + * 删除组件或者重新拖动时,其它组件重新计算位置大小 + */ + protected void delete(XCreator creator, int creatorWidth, int creatorHeight) { + int x = creator.getX(); + int y = creator.getY(); + recalculateChildrenSize(x, y, creatorWidth, creatorHeight); + } + + /** + * 重新计算内部组件大小 + * + * @param x 坐标x + * @param y 坐标y + * @param creatorWidth 删除的组件之前所在布局的宽度 + * @param creatorHeight 删除的组件之前所在布局的高度 + */ + public void recalculateChildrenSize(int x, int y, int creatorWidth, int creatorHeight) { + if (container.getComponentCount() == 0) { + return; + } else { + initCompsList(); + int width = creatorWidth; + int height = creatorHeight; + calculateRelatedComponent(x, y, width, height); + if (!rightComps.isEmpty() && getAllHeight(rightComps) == height) { + calculateRightRelatComponent(x, width + actualVal); + } else if (!leftComps.isEmpty() && getAllHeight(leftComps) == height) { + calculateLefttRelatComponent(width + actualVal); + } else if (!downComps.isEmpty() && getAllWidth(downComps) == width) { + calculateDownRelatComponent(y, height + actualVal); + } else if (!upComps.isEmpty() && getAllWidth(upComps) == width) { + calculateUpRelatComponent(height + actualVal); + } else { + // 由于布局三等分的存在,可能会出现删除组件时,找不到关联的组件填充,此时特殊处理 + calculateNoRelatedComponent(x, y, width, height); + } + } + clearCompsList(); + } + + /** + * 四侧边框都没有对齐的,此时每侧有且只有一个方向不对齐 + * 比如右侧不对齐,那么必然右上或右下没对齐,不会同时不对齐,否则不会出现此情况 + * 正常删除是右左下上优先原则,这边目前只调整右侧以至填充完整, + * 右侧不对齐时的组件先上下微调,再向左侧填充。 + */ + private void calculateNoRelatedComponent(int x, int y, int width, int height) { + // 只有最后一个组件了,直接删除 + if (container.getComponentCount() <= 1) { + return; + } + // 删除当前组件时,由于没有刚好边框对齐的其他组件,这时候需要调整的组件 + Component rightComp = container.getRightComp(x, y, width); + if (rightComp == null) { + return; + } + + int ry = rightComp.getY(); + clearCompsList(); + initCompsList(); + Rectangle rec = new Rectangle(x, y, width, height); + if (ry != y) { + calculateNoRelatedWhileRightTop(rec, rightComp); + } else { + calculateNoRelatedWhileRightBott(rec, rightComp); + } + + } + + private void calculateNoRelatedWhileRightTop(Rectangle bound, Component rcomp) { + if (rcomp == null) { + return; + } + + int ry = rcomp.getY(); + int rh = rcomp.getHeight(); + int rw = rcomp.getWidth(); + int dh = bound.y - ry - actualVal; + // 没法缩小高度 + if (dh < minHeight) { + // 没法缩小时则拉伸rcomp的上边框 + dealDirectionAtTop(rcomp.getBounds(), dh + actualVal, rcomp); + //调整的时候可能有组件达到最小高度,判断下 + if (rcomp.getY() != bound.y) { + clearCompsList(); + initCompsList(); + dealDirectionAtTop(rcomp.getBounds(), bound.y - rcomp.getY() - minHeight - actualVal, rcomp); + ry = rcomp.getY(); + int rx = rcomp.getX(); + rcomp.setBounds(rx, ry, rw, minHeight); + recalculateChildrenSize(rx, bound.y, rw, rh - dh - actualVal); + recalculateChildrenSize(bound.x, bound.y, bound.width, bound.height); + return; + } + } else { + // 右侧控件底部对齐 + if (rh + ry == bound.y + bound.height) { + rcomp.setSize(rw, dh); + bound.width += rw; + bound.width += actualVal; + } else { + recalculateChildrenSize(bound.x, ry + rh + actualVal, bound.width, bound.height + bound.y - rh - ry - actualVal); + recalculateChildrenSize(bound.x, bound.y, bound.width, ry + rh - bound.y); + return; + } + } + recalculateChildrenSize(bound.x, bound.y, bound.width, bound.height); + } + + private void calculateNoRelatedWhileRightBott(Rectangle bound, Component rcomp) { + rcomp = container.getBottomRightComp(bound.x, bound.y, bound.height, bound.width); + int ry = rcomp.getY(); + int rh = rcomp.getHeight(); + int rw = rcomp.getWidth(); + int dh = ry + rh - bound.y - bound.height - actualVal; + if (dh < minHeight) { + dealDirectionABottom(rcomp.getBounds(), -dh - actualVal, rcomp); + //调整的时候可能有组件达到最小高度,判断下 + if (rcomp.getHeight() + ry != bound.y + bound.height) { + clearCompsList(); + initCompsList(); + dh = ry + rcomp.getHeight() - bound.y - bound.height - actualVal; + dealDirectionABottom(rcomp.getBounds(), minHeight - dh, rcomp); + rh = rcomp.getHeight(); + int rx = rcomp.getX(); + rcomp.setBounds(rx, bound.y + bound.height + actualVal, rw, minHeight); + recalculateChildrenSize(rx, ry, rw, rh - minHeight - actualVal); + recalculateChildrenSize(bound.x, bound.y, bound.width, bound.height); + return; + } + } else { + if (ry == bound.y) { + rcomp.setBounds(rcomp.getX(), bound.y + bound.height + actualVal, rw, dh); + bound.width += rw; + bound.width += actualVal; + } else { + recalculateChildrenSize(bound.x, bound.y, bound.width, ry - bound.y - actualVal); + recalculateChildrenSize(bound.x, ry, bound.width, bound.height - ry + bound.y); + return; + } + } + recalculateChildrenSize(bound.x, bound.y, bound.width, bound.height); + } + + private int getMinWidth(List comps) { + if (comps.isEmpty()) { + return 0; + } + int minWidth = container.getWidth() - margin.getLeft() - margin.getRight(); + for (int i = 0, size = comps.size(); i < size; i++) { + minWidth = minWidth > comps.get(i).getWidth() ? comps.get(i).getWidth() : minWidth; + } + return minWidth; + } + + private int getMinHeight(List comps) { + if (comps.isEmpty()) { + return 0; + } + int minH = container.getHeight() - margin.getTop() - margin.getBottom(); + for (int i = 0, size = comps.size(); i < size; i++) { + minH = minH > comps.get(i).getHeight() ? comps.get(i).getHeight() : minH; + } + return minH; + } + + // 删除时计算待删除组件上下侧的组件是否何其对齐 + private int getAllHeight(List comps) { + int allHeight = 0; + if (comps.isEmpty()) { + return allHeight; + } + int n = comps.size(); + for (int i = 0; i < n; i++) { + allHeight += comps.get(i).getHeight(); + } + allHeight += (n - 1) * actualVal; + return allHeight; + } + + private int getAllWidth(List comps) { + int allWidth = 0; + if (comps.isEmpty()) { + return allWidth; + } + int n = comps.size(); + for (int i = 0; i < n; i++) { + allWidth += comps.get(i).getWidth(); + } + allWidth += (n - 1) * actualVal; + return allWidth; + } + + /** + * 获取有哪些相关联的组件 + */ + protected void calculateRelatedComponent(int objX, int objY, int objWidth, int objHeight) { + int count = container.getComponentCount(); + for (int i = 0; i < count; i++) { + Component relatComp = container.getComponent(i); + int rx = relatComp.getX(); + int ry = relatComp.getY(); + int rwidth = relatComp.getWidth(); + int rheight = relatComp.getHeight(); + int verti = ry - objY; + int hori = rx - objX; + boolean isHori = verti >= 0 && objHeight >= (rheight + verti); + boolean isVerti = hori >= 0 && objWidth >= (rwidth + hori); + if (isHori && (objX + objWidth + actualVal) == rx) { + rightComps.add(relatComp); + } else if (isHori && objX == (rx + rwidth + actualVal)) { + leftComps.add(relatComp); + } else if (isVerti && (objY + objHeight + actualVal) == ry) { + downComps.add(relatComp); + } else if (isVerti && objY == (ry + rheight + actualVal)) { + upComps.add(relatComp); + } + } + } + + /** + * 拖拽组件时遍历某一侧组件得到该侧组件能够缩放的最小宽度,tab布局最小宽度 = 内部组件数 * 单个组件最小宽度 + * + * @param list 某一侧组件的集合 如:leftComps + * @return int 最小宽度 + */ + private int getCompsMinWidth(List list) { + return getMaxCompsNum(list, true) * WLayout.MIN_WIDTH; + } + + /** + * 拖拽组件遍历某一侧得到该侧组件能够缩放的最小高度,tab布局最小高度 = 内部组件数 * 单个组件最小高度 + 标题高度 + * + * @param list 某一侧组件集合 + * @return int 最小高度 + */ + private int getCompsMinHeight(List list) { + for (int i = 0; i < list.size(); i++) { + XCreator creator = (XCreator) list.get(i); + ArrayList childrenList = creator.getTargetChildrenList(); + if (!childrenList.isEmpty()) { + return getMaxCompsNum(list, false) * WLayout.MIN_HEIGHT + WCardMainBorderLayout.TAB_HEIGHT; + } + } + return WLayout.MIN_HEIGHT; + } + + /** + * 根据子组件的横(纵)坐标获取某一侧组件的最大内部组件数 + * + * @param list 某一侧组件集合 + * @param isHor 是否以横坐标为准 + * @return int 最大内部组件数 + */ + private int getMaxCompsNum(List list, boolean isHor) { + int maxCompNums = 1; + for (int i = 0, size = list.size(); i < size; i++) { + XCreator creator = (XCreator) list.get(i); + ArrayList childrenList = creator.getTargetChildrenList(); + int count = childrenList.size(); + if (count > 0) { + for (int j = 0; j < count; j++) { + XWTabFitLayout tabLayout = (XWTabFitLayout) childrenList.get(j); + int[] positions = isHor ? tabLayout.getHors(true) : tabLayout.getVeris(true); + int compNums = positions.length - 1; + maxCompNums = Math.max(compNums, maxCompNums); + } + } + } + return maxCompNums; + } + + /** + * 根据偏移量缩放内部组件大小,(tab布局用到) + * + * @param creator tab布局 + * @param offset 偏移量 + * @param isHor 是否为横向拖拽 + */ + private void adjustCompsSize(XCreator creator, int offset, boolean isHor) { + ArrayList childrenList = creator.getTargetChildrenList(); + int size = childrenList.size(); + if (size > 0) { + for (int j = 0; j < size; j++) { + XWTabFitLayout tabLayout = (XWTabFitLayout) childrenList.get(j); + tabLayout.setBackupBound(tabLayout.getBounds()); + int refSize = isHor ? tabLayout.getWidth() : tabLayout.getHeight(); + double percent = (double) offset / refSize; + if (percent < 0 && !tabLayout.canReduce(percent)) { + return; + } + setAdjustedSize(tabLayout, offset, isHor); + for (int m = 0; m < tabLayout.getComponentCount(); m++) { + XCreator childCreator = tabLayout.getXCreator(m); + BoundsWidget wgt = tabLayout.toData().getBoundsWidget(childCreator.toData()); + wgt.setBounds(tabLayout.getComponent(m).getBounds()); + } + adjustCreatorsSize(percent, tabLayout, isHor); + } + + } + } + + // 纵向拖拽,先将tab布局的高度设置为拖拽后的实际高度 + private void setAdjustedHeight(XWTabFitLayout tabLayout, int offset) { + tabLayout.setSize(tabLayout.getWidth(), tabLayout.getHeight() + offset); + } + + // 横向拖拽,先将tab布局的宽度设置为拖拽后的实际宽度 + private void setAdjustedSize(XWTabFitLayout tabLayout, int offset, boolean isHor) { + if (offset < 0) { + // 缩放时需要备份原tab布局宽高 + tabLayout.setReferDim(new Dimension(tabLayout.getWidth(), tabLayout.getHeight())); + } + if (isHor) { + tabLayout.setSize(tabLayout.getWidth() + offset, tabLayout.getHeight()); + return; + } + setAdjustedHeight(tabLayout, offset); + } + + // 按照拖拽偏移量,对tab布局进行缩放 + private void adjustCreatorsSize(double percent, XWTabFitLayout tabLayout, boolean isHor) { + if (isHor) { + tabLayout.adjustCreatorsWidth(percent); + return; + } + tabLayout.adjustCreatorsHeight(percent); + } + + + /** + * 删除或拉伸控件右边框 调整右侧组件位置大小 + * + * @param objX 调整后的坐标x + * @param objWidth 调整后的宽度 + */ + protected void calculateRightRelatComponent(int objX, int objWidth) { + int count = rightComps.size(); + for (int i = 0; i < count; i++) { + XCreator creator = (XCreator) rightComps.get(i); + adjustCompsSize(creator, objWidth, true); + int ry = creator.getY(); + int rwidth = creator.getWidth(); + int rheight = creator.getHeight(); + creator.setLocation(objX, ry); + creator.setSize(rwidth + objWidth, rheight); + } + } + + /** + * 实际拖拽偏移量是否超出了可调整的宽度范围 + * + * @param offset 实际偏移量 + * @return boolean 是否超出调整范围 + */ + private boolean isBeyondAdjustWidthScope(int offset) { + boolean isBeyondScope = false; + isBeyondScope = offset < 0 ? isBeyondWidthScope(offset, leftComps) : isBeyondWidthScope(offset, rightComps); + return isBeyondScope; + } + + // 实际拖拽偏移量是否超出某一侧的可调整宽度 + private boolean isBeyondWidthScope(int offset, List compsList) { + int compMinWidth = getCompsMinWidth(compsList); + for (int i = 0; i < compsList.size(); i++) { + XCreator creator = (XCreator) compsList.get(i); + if (Math.abs(offset) > (creator.getWidth() - compMinWidth)) { + return true; + } + } + return false; + } + + /** + * 删除或拉伸控件左边框时 调整左侧的组件位置大小; + */ + protected boolean calculateLefttRelatComponent(int objWidth) { + if (isBeyondAdjustWidthScope(objWidth)) { + return false; + } + int count = leftComps.size(); + for (int i = 0; i < count; i++) { + XCreator creator = (XCreator) leftComps.get(i); + adjustCompsSize(creator, objWidth, true); + int rwidth = creator.getWidth(); + int rheight = creator.getHeight(); + creator.setSize(rwidth + objWidth, rheight); + } + return true; + } + + /** + * 删除或拉伸下边框 调整下方的组件位置大小 + */ + protected void calculateDownRelatComponent(int objY, int objHeight) { + int count = downComps.size(); + for (int i = 0; i < count; i++) { + XCreator creator = (XCreator) downComps.get(i); + adjustCompsSize(creator, objHeight, false); + int rx = creator.getX(); + int rwidth = creator.getWidth(); + int rheight = creator.getHeight(); + creator.setLocation(rx, objY); + creator.setSize(rwidth, rheight + objHeight); + } + } + + /** + * 实际拖拽偏移量是否超出了可调整的高度范围 + * + * @param offset 实际偏移量 + * @return boolean 是否超出调整范围 + */ + private boolean isBeyondAdjustHeightScope(int offset) { + boolean isBeyondScope = false; + isBeyondScope = offset < 0 ? isBeyondHeightScope(offset, upComps) : isBeyondHeightScope(offset, downComps); + return isBeyondScope; + } + + // 实际拖拽偏移量是否超出某一侧的可调整高度 + private boolean isBeyondHeightScope(int offset, List compsList) { + int minHeight = getCompsMinHeight(compsList); + for (int i = 0; i < compsList.size(); i++) { + XCreator creator = (XCreator) compsList.get(i); + if (Math.abs(offset) > (creator.getHeight() - minHeight)) { + return true; + } + } + return false; + } + + /** + * 删除或拉伸上边框 调整上方的组件位置大小 + */ + protected boolean calculateUpRelatComponent(int objHeight) { + if (isBeyondAdjustHeightScope(objHeight)) { + return false; + } + int count = upComps.size(); + for (int i = 0; i < count; i++) { + XCreator creator = (XCreator) upComps.get(i); + adjustCompsSize(creator, objHeight, false); + int rwidth = creator.getWidth(); + int rheight = creator.getHeight(); + creator.setSize(rwidth, rheight + objHeight); + } + return true; + } + + /** + * 不调整,只计算位置 + * + * @return child的位置 + */ + public int[] getChildPosition(Component currentComp, XCreator child, int x, int y) { + return super.getChildPosition(currentComp, child, x, y); + } + + @Override + public ConstraintsGroupModel getLayoutConstraints(XCreator creator) { + return new FRFitLayoutConstraints((XWFitLayout) container, creator); + } } \ No newline at end of file diff --git a/designer_form/src/com/fr/design/designer/beans/location/AccessDirection.java b/designer_form/src/com/fr/design/designer/beans/location/AccessDirection.java index e368c74250..088f29a0a0 100644 --- a/designer_form/src/com/fr/design/designer/beans/location/AccessDirection.java +++ b/designer_form/src/com/fr/design/designer/beans/location/AccessDirection.java @@ -3,18 +3,16 @@ */ package com.fr.design.designer.beans.location; -import java.awt.*; - import com.fr.design.beans.location.Absorptionline; import com.fr.design.beans.location.MoveUtils; import com.fr.design.designer.creator.*; import com.fr.design.mainframe.FormDesigner; import com.fr.design.mainframe.FormSelection; import com.fr.design.utils.ComponentUtils; -import com.fr.form.main.Form; import com.fr.form.ui.container.WAbsoluteLayout; -import com.fr.form.ui.container.WParameterLayout; -import com.fr.form.ui.container.WAbsoluteLayout.BoundsWidget; +import com.fr.form.ui.widget.BoundsWidget; + +import java.awt.*; /** * @author richer @@ -26,197 +24,184 @@ public abstract class AccessDirection implements Direction { private int ymin; private int xmin; - abstract int getCursor(); - - protected abstract Rectangle getDraggedBounds(int dx, int dy, Rectangle current_bounds, FormDesigner designer, - Rectangle oldbounds); - - protected int[] sorption(int x, int y,Rectangle current_bounds, FormDesigner designer) { - // 自适应布局不需要吸附线,但需要对齐线,对齐线后面处理 - if (!designer.hasWAbsoluteLayout()) { - designer.getStateModel().setEquidistantLine(null); - designer.getStateModel().setXAbsorptionline(null); - designer.getStateModel().setYAbsorptionline(null); - return new int[] { x, y }; - } else { - int posy = current_bounds.y; - - Point relativePoint = getRelativePoint(x, y, current_bounds,designer); - sorptionPoint(relativePoint,current_bounds, designer); - return new int[] { relativePoint.x, relativePoint.y }; - } - - } - - protected Point getRelativePoint(int x, int y, Rectangle current_bounds,FormDesigner designer) { - if (x < 0) { - x = 0; - } else if (x > designer.getRootComponent().getWidth() && designer.getSelectionModel().hasSelectionComponent()) { - x = designer.getRootComponent().getWidth(); - } + abstract int getCursor(); + + protected abstract Rectangle getDraggedBounds(int dx, int dy, Rectangle currentBounds, FormDesigner designer, + Rectangle oldBounds); + + protected int[] sorption(int x, int y, Rectangle currentBounds, FormDesigner designer) { + // 自适应布局不需要吸附线,但需要对齐线,对齐线后面处理 + if (!designer.hasWAbsoluteLayout()) { + designer.getStateModel().setEquidistantLine(null); + designer.getStateModel().setXAbsorptionline(null); + designer.getStateModel().setYAbsorptionline(null); + return new int[]{x, y}; + } else { + Point relativePoint = getRelativePoint(x, y, currentBounds, designer); + sorptionPoint(relativePoint, currentBounds, designer); + return new int[]{relativePoint.x, relativePoint.y}; + } + + } + + protected Point getRelativePoint(int x, int y, Rectangle currentBounds, FormDesigner designer) { + if (x < 0) { + x = 0; + } else if (x > designer.getRootComponent().getWidth() && designer.getSelectionModel().hasSelectionComponent()) { + x = designer.getRootComponent().getWidth(); + } //参数面板可以无下限拉长 - if (y < 0) { - y = 0; - } else if (y > designer.getRootComponent().getHeight() + designer.getParaHeight() && designer.getSelectionModel().hasSelectionComponent() + if (y < 0) { + y = 0; + } else if (y > designer.getRootComponent().getHeight() + designer.getParaHeight() && designer.getSelectionModel().hasSelectionComponent() && !designer.getSelectionModel().getSelection().getSelectedCreator().acceptType(XWParameterLayout.class)) { - y = designer.getRootComponent().getHeight() + designer.getParaHeight(); - } - return new Point(x, y); - } - - protected void sorptionPoint(Point point, Rectangle current_bounds,FormDesigner designer) { - boolean findInX = current_bounds.getWidth() <= MoveUtils.SORPTION_UNIT ? true : false; - boolean findInY = current_bounds.getHeight() <= MoveUtils.SORPTION_UNIT ? true : false; - WAbsoluteLayout layout =getLayout(designer); - FormSelection selection = designer.getSelectionModel().getSelection(); - boolean isWidgetsIntersect = false; - for (int i = 0, count = layout.getWidgetCount(); i < count; i++) { - BoundsWidget temp = (BoundsWidget) layout.getWidget(i); - if (!temp.isVisible() || selection.contains(temp.getWidget())) { - continue; - } - Rectangle bounds = getWidgetRelativeBounds(temp.getBounds(), selection); - if (!findInX) { - int x1 = bounds.x; - if (Math.abs(x1 - point.x) <= MoveUtils.SORPTION_UNIT) { - point.x = x1; - findInX = true; - } - int x2 = bounds.x + bounds.width; - if (Math.abs(x2 - point.x) <= MoveUtils.SORPTION_UNIT) { - point.x = x2; - findInX = true; - } - } - if (!findInY) { - int y1 = bounds.y; - if (Math.abs(y1 - point.y) <= MoveUtils.SORPTION_UNIT) { - point.y = y1; - findInY = true; - } - int y2 = bounds.y + bounds.height; - if (Math.abs(y2 - point.y) <= MoveUtils.SORPTION_UNIT) { - point.y = y2; - findInY = true; - } - - } - if (findInX && findInY) { - break; - } - - if (current_bounds.intersects(bounds) && !(layout instanceof WParameterLayout)){ - isWidgetsIntersect = true; - } - } - processRectangleIntersects(designer, point.x, point.y, isWidgetsIntersect); - setDesignerStateModelProperties(designer, findInX, findInY, current_bounds, point); - } - - private void setDesignerStateModelProperties (FormDesigner designer, boolean findInX, boolean findInY, Rectangle current_bounds, Point point) { - designer.getStateModel().setXAbsorptionline(findInX && current_bounds.getWidth() > MoveUtils.SORPTION_UNIT ? Absorptionline.createXAbsorptionline(point.x) : null); - designer.getStateModel().setYAbsorptionline(findInY && current_bounds.getHeight() > MoveUtils.SORPTION_UNIT ? Absorptionline.createYAbsorptionline(point.y) : null); - designer.getStateModel().setEquidistantLine(null); - } - - private Rectangle getWidgetRelativeBounds(Rectangle bounds, FormSelection selection){ - Rectangle relativeRec = new Rectangle(bounds.x, bounds.y, bounds.width, bounds.height); - XLayoutContainer parent = XCreatorUtils.getParentXLayoutContainer(selection.getSelectedCreator()); - if (parent == null) { - return relativeRec; - } - Rectangle rec = ComponentUtils.getRelativeBounds(parent); - relativeRec.x += rec.x; - relativeRec.y += rec.y; - return relativeRec; - } - - private void processRectangleIntersects(FormDesigner designer, int x, int y, boolean isIntersects){ - if(isIntersects){ - if(designer.getLocationOnScreen() != null) { - MoveUtils.displayForbidWindow(x + designer.getLocationOnScreen().x, y + designer.getLocationOnScreen().y); - } - designer.setWidgetsIntersect(true); - } - else{ - MoveUtils.hideForbidWindow(); - designer.setWidgetsIntersect(false); - } - } - - private WAbsoluteLayout getLayout(final FormDesigner designer){ + y = designer.getRootComponent().getHeight() + designer.getParaHeight(); + } + return new Point(x, y); + } + + protected void sorptionPoint(Point point, Rectangle currentBounds, FormDesigner designer) { + boolean findInX = currentBounds.getWidth() <= MoveUtils.SORPTION_UNIT; + boolean findInY = currentBounds.getHeight() <= MoveUtils.SORPTION_UNIT; + WAbsoluteLayout layout = getLayout(designer); + FormSelection selection = designer.getSelectionModel().getSelection(); + for (int i = 0, count = layout.getWidgetCount(); i < count; i++) { + BoundsWidget temp = (BoundsWidget) layout.getWidget(i); + if (!temp.isVisible() || selection.contains(temp.getWidget())) { + continue; + } + Rectangle bounds = getWidgetRelativeBounds(temp.getBounds(), selection); + if (!findInX) { + int x1 = bounds.x; + if (Math.abs(x1 - point.x) <= MoveUtils.SORPTION_UNIT) { + point.x = x1; + findInX = true; + } + int x2 = bounds.x + bounds.width; + if (Math.abs(x2 - point.x) <= MoveUtils.SORPTION_UNIT) { + point.x = x2; + findInX = true; + } + } + if (!findInY) { + int y1 = bounds.y; + if (Math.abs(y1 - point.y) <= MoveUtils.SORPTION_UNIT) { + point.y = y1; + findInY = true; + } + int y2 = bounds.y + bounds.height; + if (Math.abs(y2 - point.y) <= MoveUtils.SORPTION_UNIT) { + point.y = y2; + findInY = true; + } + + } + if (findInX && findInY) { + break; + } + + } + setDesignerStateModelProperties(designer, findInX, findInY, currentBounds, point); + } + + private void setDesignerStateModelProperties(FormDesigner designer, boolean findInX, boolean findInY, Rectangle + currentBounds, Point point) { + designer.getStateModel().setXAbsorptionline(findInX && currentBounds.getWidth() > MoveUtils.SORPTION_UNIT ? Absorptionline.createXAbsorptionline(point.x) : null); + designer.getStateModel().setYAbsorptionline(findInY && currentBounds.getHeight() > MoveUtils.SORPTION_UNIT ? Absorptionline.createYAbsorptionline(point.y) : null); + designer.getStateModel().setEquidistantLine(null); + } + + private Rectangle getWidgetRelativeBounds(Rectangle bounds, FormSelection selection) { + Rectangle relativeRec = new Rectangle(bounds.x, bounds.y, bounds.width, bounds.height); + XLayoutContainer parent = XCreatorUtils.getParentXLayoutContainer(selection.getSelectedCreator()); + if (parent == null) { + return relativeRec; + } + Rectangle rec = ComponentUtils.getRelativeBounds(parent); + relativeRec.x += rec.x; + relativeRec.y += rec.y; + return relativeRec; + } + + + private WAbsoluteLayout getLayout(final FormDesigner designer) { XLayoutContainer formLayoutContainer = (XLayoutContainer) XCreatorUtils.createXCreator( designer.getTarget().getContainer()); WAbsoluteLayout layout; - if (formLayoutContainer.acceptType(XWBorderLayout.class)){//看起来这边的作用应该是为了区别cpt(得到XWParameterLayout)还是frm(得到XWBorderLayout)的参数界面 - Container container = designer.getSelectionModel().getSelection().getSelectedCreator().getParent(); - if(container instanceof XWAbsoluteLayout){ - layout = ((XWAbsoluteLayout)container).toData(); - } - else { - layout = (WAbsoluteLayout) designer.getParaComponent().toData(); - } - } else{ + if (formLayoutContainer.acceptType(XWBorderLayout.class)) {//看起来这边的作用应该是为了区别cpt(得到XWParameterLayout)还是frm(得到XWBorderLayout)的参数界面 + Container container = designer.getSelectionModel().getSelection().getSelectedCreator().getParent(); + if (container instanceof XWAbsoluteLayout) { + layout = ((XWAbsoluteLayout) container).toData(); + } else { + layout = (WAbsoluteLayout) designer.getParaComponent().toData(); + } + } else { layout = (WAbsoluteLayout) designer.getTarget().getContainer(); } - return layout; + return layout; } - /** - * 拖拽 - * @param dx 坐标x - * @param dy 坐标y - * @param designer 设计界面 - */ - public void drag(int dx, int dy, FormDesigner designer) { - Rectangle rec = getDraggedBounds(dx, dy, designer.getSelectionModel().getSelection().getRelativeBounds(), designer, designer.getSelectionModel().getSelection().getBackupBounds()); + /** + * 拖拽 + * + * @param dx 坐标x + * @param dy 坐标y + * @param designer 设计界面 + */ + public void drag(int dx, int dy, FormDesigner designer) { + Rectangle rec = getDraggedBounds(dx, dy, designer.getSelectionModel().getSelection().getRelativeBounds(), designer, designer.getSelectionModel().getSelection().getBackupBounds()); + if (rec != null) { + designer.getSelectionModel().getSelection().setSelectionBounds(rec, designer); + } else { + return; + } //设定控件最小高度21,因每次拖曳至少移动1,防止控件高度等于21时,拖曳导致rec.y的变化使得控件不停的向上或向下移动。 - if(rec.height == MINHEIGHT){ + if (rec.height == MINHEIGHT) { ymin = rec.y; } - if(rec.height == MINHEIGHT - 1){ + if (rec.height == MINHEIGHT - 1) { ymin = ymin == rec.y ? rec.y : rec.y - 1; } - if(rec.height < MINHEIGHT){ + if (rec.height < MINHEIGHT) { rec.height = MINHEIGHT; rec.y = ymin; } // 增加下宽度也设最小为21 if (rec.width == MINWIDTH) { - xmin = rec.x; + xmin = rec.x; } - if(rec.width == MINWIDTH - 1){ - xmin = xmin == rec.x ? rec.x : rec.x - 1; + if (rec.width == MINWIDTH - 1) { + xmin = xmin == rec.x ? rec.x : rec.x - 1; } if (rec.width < MINWIDTH) { - rec.width = MINWIDTH; - rec.x = xmin; + rec.width = MINWIDTH; + rec.x = xmin; + } + + } + + /** + * 更新鼠标指针形状 + * + * @param formEditor 设计界面组件 + */ + public void updateCursor(FormDesigner formEditor) { + + // 调用位置枚举的多态方法getCursor获取鼠标形状 + int type = getCursor(); + + if (type != formEditor.getCursor().getType()) { + // 设置当前形状 + formEditor.setCursor(Cursor.getPredefinedCursor(type)); } - if(rec != null) { - designer.getSelectionModel().getSelection().setSelectionBounds(rec, designer); - } - } - - /** - * 更新鼠标指针形状 - * @param formEditor 设计界面组件 - */ - public void updateCursor(FormDesigner formEditor) { - - // 调用位置枚举的多态方法getCursor获取鼠标形状 - int type = getCursor(); - - if (type != formEditor.getCursor().getType()) { - // 设置当前形状 - formEditor.setCursor(Cursor.getPredefinedCursor(type)); - } - } - - /** - * 生成组件备用的bound - * @param formEditor 设计界面组件 - */ - public void backupBounds(FormDesigner formEditor) { - formEditor.getSelectionModel().getSelection().backupBounds(); - } + } + + /** + * 生成组件备用的bound + * + * @param formEditor 设计界面组件 + */ + public void backupBounds(FormDesigner formEditor) { + formEditor.getSelectionModel().getSelection().backupBounds(); + } } \ No newline at end of file From 40dbc0272fff3a95ab65a9510735590320e13ab6 Mon Sep 17 00:00:00 2001 From: "yaoh.wu" Date: Mon, 10 Apr 2017 17:44:13 +0800 Subject: [PATCH 20/72] =?UTF-8?q?report-1945frm=E6=9C=AC=E5=9C=B0=E7=BB=84?= =?UTF-8?q?=E4=BB=B6=E5=A4=8D=E7=94=A8=EF=BC=9A1=E3=80=81=E8=87=AA?= =?UTF-8?q?=E9=80=82=E5=BA=94=E6=88=96=E8=80=85tab=E5=B8=83=E5=B1=80?= =?UTF-8?q?=E6=97=B6=EF=BC=8C=E4=B8=8D=E9=80=89=E4=B8=AD=E7=B2=98=E8=B4=B4?= =?UTF-8?q?=E9=BB=98=E8=AE=A4=E4=B8=BA=E4=B8=8A=E4=B8=8B=E5=B9=B3=E5=88=86?= =?UTF-8?q?=E5=B7=A6=E4=B8=8A=E8=A7=92=E7=9A=84=E7=BB=84=E4=BB=B6=EF=BC=9B?= =?UTF-8?q?2=E3=80=81tab=E5=B8=83=E5=B1=80=EF=BC=88=E6=9C=89=E6=97=A0?= =?UTF-8?q?=E5=8F=82=E6=95=B0=E9=9D=A2=E6=9D=BF=EF=BC=89=E7=B2=98=E8=B4=B4?= =?UTF-8?q?=E4=BD=8D=E7=BD=AE=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../designer/beans/models/SelectionModel.java | 48 ++++++++++++------- .../design/mainframe/FormSelectionUtils.java | 20 ++++++-- 2 files changed, 48 insertions(+), 20 deletions(-) diff --git a/designer_form/src/com/fr/design/designer/beans/models/SelectionModel.java b/designer_form/src/com/fr/design/designer/beans/models/SelectionModel.java index a70d9b1566..8ef0033ea2 100644 --- a/designer_form/src/com/fr/design/designer/beans/models/SelectionModel.java +++ b/designer_form/src/com/fr/design/designer/beans/models/SelectionModel.java @@ -15,6 +15,8 @@ import com.fr.design.mainframe.FormSelection; import com.fr.design.mainframe.FormSelectionUtils; import com.fr.design.utils.ComponentUtils; import com.fr.design.utils.gui.LayoutUtils; +import com.fr.form.ui.container.cardlayout.WCardMainBorderLayout; +import com.fr.form.ui.container.cardlayout.WTabFitLayout; import com.fr.stable.ArrayUtils; import java.awt.*; @@ -27,7 +29,7 @@ import java.util.ArrayList; public class SelectionModel { //被粘贴组件在所选组件位置处往下、往右各错开20像素。执行多次粘贴时,在上一次粘贴的位置处错开20像素。 private static final int DELTA_X_Y = 20; //粘贴时候的偏移距离 - private static final double OFFSET_RELATIVE = 0.80; + private static final double OFFSET_RELATIVE = 0.78; private static FormSelection clipboard = new FormSelection(); private FormDesigner designer; private FormSelection selection; @@ -136,19 +138,20 @@ public class SelectionModel { if (designer.getClass().equals(FormDesigner.class)) { if (selection.getSelectedCreator() instanceof XWFitLayout) { if (selection.getSelectedCreator().getClass().equals(XWTabFitLayout.class)) { - Rectangle rec = selection.getRelativeBounds(); - //Tab布局 - FormSelectionUtils.paste2Container(designer, (XLayoutContainer) selection.getSelectedCreator(), - clipboard, - rec.x + rec.width / 2, - rec.y + DELTA_X_Y); + XLayoutContainer container = (XLayoutContainer) selection.getSelectedCreator(); + //tab布局编辑器内部左上角第一个坐标点 + int leftUpX = container.toData().getMargin().getLeft() + 1; + int leftUpY = container.toData().getMargin().getTop() + 1; + //选中第一个坐标点坐在的组件 + selection.setSelectedCreator((XCreator) container.getComponentAt(leftUpX, leftUpY)); + pasteFromClipBoard(); } else { - Rectangle rec = selection.getRelativeBounds(); - //自适应布局 - FormSelectionUtils.paste2Container(designer, designer.getRootComponent(), - clipboard, - rec.x + rec.width / 2, - rec.y + DELTA_X_Y); + //自适应布局编辑器内部左上角第一个坐标点 + int leftUpX = designer.getRootComponent().toData().getMargin().getLeft() + 1; + int leftUpY = designer.getRootComponent().toData().getMargin().getTop() + 1; + //选中第一个坐标点坐在的组件 + selection.setSelectedCreator((XCreator) designer.getRootComponent().getComponentAt(leftUpX, leftUpY)); + pasteFromClipBoard(); } } else { //绝对布局 @@ -178,12 +181,23 @@ public class SelectionModel { container = XCreatorUtils.getParentXLayoutContainer(selection.getSelectedCreator()); if (container != null && selection.getSelectedCreator().getParent() instanceof XWFitLayout) { //自适应布局 + Rectangle selectionRec = selection.getRelativeBounds(); + //获取父容器位置,补充因参数面板高度导致的位置坐标计算偏移 Rectangle containerRec = ComponentUtils.getRelativeBounds(container); - //计算自适应布局位置 - int positionX = selectionRec.x - containerRec.x + selectionRec.width / 2; - int positionY = (int) (selectionRec.y - containerRec.y + selectionRec.height * OFFSET_RELATIVE); - + int positionX, positionY; + + if (container.getClass().equals(XWTabFitLayout.class)) { + //tab内部粘贴不补充高度偏移 + //且不计算参数面板造成的影响,因为在 + //@see com.fr.design.designer.beans.adapters.layout.FRTabFitLayoutAdapter#addBean中做了 + positionX = selectionRec.x + selectionRec.width / 2; + positionY = (int) (selectionRec.y + selectionRec.height * OFFSET_RELATIVE); + } else { + //计算自适应布局位置 + positionX = selectionRec.x - containerRec.x + selectionRec.width / 2; + positionY = (int) (selectionRec.y - containerRec.y + selectionRec.height * OFFSET_RELATIVE); + } FormSelectionUtils.paste2Container(designer, container, clipboard, positionX, positionY); } else if (container != null && selection.getSelectedCreator().getParent() instanceof XWAbsoluteLayout) { //绝对布局 diff --git a/designer_form/src/com/fr/design/mainframe/FormSelectionUtils.java b/designer_form/src/com/fr/design/mainframe/FormSelectionUtils.java index 79f52519ec..1978e8432b 100644 --- a/designer_form/src/com/fr/design/mainframe/FormSelectionUtils.java +++ b/designer_form/src/com/fr/design/mainframe/FormSelectionUtils.java @@ -3,8 +3,10 @@ package com.fr.design.mainframe; import com.fr.base.FRContext; import com.fr.design.designer.beans.LayoutAdapter; import com.fr.design.designer.beans.adapters.layout.AbstractLayoutAdapter; +import com.fr.design.designer.beans.adapters.layout.FRTabFitLayoutAdapter; import com.fr.design.designer.beans.events.DesignerEvent; import com.fr.design.designer.creator.*; +import com.fr.design.utils.ComponentUtils; import com.fr.form.ui.Widget; import com.fr.form.ui.container.WTitleLayout; import com.fr.general.ComparatorUtils; @@ -83,14 +85,26 @@ public class FormSelectionUtils { * 相对布局粘贴 */ private static void relativePaste(FormDesigner designer, FormSelection clipboard, LayoutAdapter adapter, int x, int y) { + + //@see FRTabFitLayoutAdapter + Rectangle tabContainerRect = ComponentUtils.getRelativeBounds(designer.getSelectionModel().getSelection() + .getSelectedCreator().getParent()); + designer.getSelectionModel().getSelection().reset(); for (XCreator creator : clipboard.getSelectedCreators()) { try { Widget copied = copyWidget(designer, creator); XCreator copiedCreator = XCreatorUtils.createXCreator(copied, creator.getSize()); - if (!adapter.accept(copiedCreator, x, y)) { - designer.showMessageDialog(Inter.getLocText("FR-Designer_Too_Small_To_Paste")); - return; + if (adapter.getClass().equals(FRTabFitLayoutAdapter.class)) { + if (!adapter.accept(copiedCreator, x - tabContainerRect.x, y - tabContainerRect.y)) { + designer.showMessageDialog(Inter.getLocText("FR-Designer_Too_Small_To_Paste")); + return; + } + } else { + if (!adapter.accept(copiedCreator, x, y)) { + designer.showMessageDialog(Inter.getLocText("FR-Designer_Too_Small_To_Paste")); + return; + } } boolean addSuccess = adapter.addBean(copiedCreator, x, y); if (addSuccess) { From 9dd806a40ff153526e1f6199bfcfd19e050c4127 Mon Sep 17 00:00:00 2001 From: neil Date: Mon, 10 Apr 2017 18:16:38 +0800 Subject: [PATCH 21/72] =?UTF-8?q?=E6=97=A0JIRA=E4=BB=BB=E5=8A=A1=EF=BC=8C?= =?UTF-8?q?=20=E5=86=B2=E7=AA=81=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fr/design/beans/location/MoveUtils.java | 1130 ++++---- .../com/fr/design/locale/designer.properties | 19 +- .../design/locale/designer_en_US.properties | 18 +- .../design/locale/designer_ja_JP.properties | 17 +- .../design/locale/designer_ko_KR.properties | 17 +- .../design/locale/designer_zh_CN.properties | 20 +- .../design/locale/designer_zh_TW.properties | 22 +- .../fr/design/chart/axis/MinMaxValuePane.java | 71 +- .../layout/FRAbsoluteLayoutAdapter.java | 698 ++--- .../adapters/layout/FRFitLayoutAdapter.java | 2385 +++++++++-------- .../beans/location/AccessDirection.java | 330 +-- 11 files changed, 2380 insertions(+), 2347 deletions(-) diff --git a/designer_base/src/com/fr/design/beans/location/MoveUtils.java b/designer_base/src/com/fr/design/beans/location/MoveUtils.java index 91a62ed5ff..d898484464 100644 --- a/designer_base/src/com/fr/design/beans/location/MoveUtils.java +++ b/designer_base/src/com/fr/design/beans/location/MoveUtils.java @@ -1,544 +1,588 @@ -/* - * Copyright(c) 2001-2011, FineReport Inc, All Rights Reserved. - */ -package com.fr.design.beans.location; - -import javax.swing.*; -import java.awt.*; -import java.util.ArrayList; - -/** - * Created by IntelliJ IDEA. - * - * @author: Richer - * @since : 6.5.5 Date: 11-7-1 Time: 下午2:22 - */ -public class MoveUtils { - - public static final int SORPTION_UNIT = 5; - private static final int EQUIDISTANTLINE_UNIT = 4; - - private static ArrayList equidistantLines = new ArrayList<>(); - - private MoveUtils() { - - } - - public interface RectangleDesigner { - - /** - * 获取块边界的迭代器 - * - * @return 块边界的迭代器 - * @date 2015-2-12-下午2:43:47 - */ - RectangleIterator createRectangleIterator(); - - /** - * 设置X轴的线 - * - * @param line 连接线 - * @date 2015-2-12-下午2:44:04 - */ - void setXAbsorptionline(Absorptionline line); - - /** - * 设置Y轴的线 - * - * @param line 连接线 - * @date 2015-2-12-下午2:44:04 - */ - void setYAbsorptionline(Absorptionline line); - - /** - * 获取当前选中块的垂直线数组 - * - * @return 块的垂直线数组 - */ - int[] getVerticalLine(); - - /** - * 获取当前选中块的水平线数组 - * - * @return 块的水平线数组 - */ - int[] getHorizontalLine(); - - /** - * 设置designer内部组件是否重叠的标志位 - * - * @param isIntersects 是否重叠 - */ - void setWidgetsIntersected(boolean isIntersects); - - /** - * 获取designer内部组件是否重叠的标志位 - * - * @return 重叠 - */ - boolean isWidgetsIntersected(); - - /** - * 获取designer相对屏幕的位置 - * - * @return 位置 - */ - Point getDesignerLocationOnScreen(); - - /** - * 设置等距线 - * - * @param line 吸附线 - */ - void setEquidistantLine(Absorptionline line); - - /** - * 获取设计器垂直滚动条的值 - * - * @return 滚动条的值 - */ - int getDesignerScrollVerticalValue(); - - /** - * 获取设计器水平滚动条的值 - * - * @return 滚动条的值 - */ - int getDesignerScrollHorizontalValue(); - } - - public interface RectangleIterator { - - /** - * 是否存在下一个块 - * - * @return 是否存在下一个块 - * @date 2015-2-12-下午2:41:32 - */ - boolean hasNext(); - - /** - * 获取下一个块的bounds - * - * @return 下一个块的bounds - * @date 2015-2-12-下午2:41:55 - */ - Rectangle nextRectangle(); - - /** - * 获取块的垂直线数组 - * - * @return 块的垂直线数组 - * @date 2015-2-12-下午2:42:27 - */ - int[] getVerticalLine(); - - /** - * 获取块的水平线数组 - * - * @return 块的水平线数组 - * @date 2015-2-12-下午2:42:27 - */ - int[] getHorizontalLine(); - } - - private static class PlacePointing { - public PlacePointing(int x) { - this.palce = x; - } - - private boolean isFind() { - return direction != -1; - } - - private int palce; - private int direction = -1; - } - - private static void findX(PlacePointing px, Rectangle bounds, int left, int right, int width) { - if (px.isFind()) { - return; - } - if (Math.abs(bounds.x + bounds.width / 2 - (left + right) / 2) <= SORPTION_UNIT) { - px.palce = bounds.x + bounds.width / 2 - width / 2; - px.direction = SwingConstants.CENTER; - } - int x1 = bounds.x; - if (Math.abs(x1 - left) <= SORPTION_UNIT) { - px.palce = x1; - px.direction = SwingConstants.LEFT; - } - if (Math.abs(x1 - right) <= SORPTION_UNIT) { - px.palce = x1 - width; - px.direction = SwingConstants.RIGHT; - } - int x2 = bounds.x + bounds.width; - if (Math.abs(x2 - left) <= SORPTION_UNIT) { - px.palce = x2; - px.direction = SwingConstants.LEFT; - } - if (Math.abs(x2 - right) <= SORPTION_UNIT) { - px.palce = x2 - width; - px.direction = SwingConstants.RIGHT; - } - if (Math.abs(bounds.x + bounds.width / 2 - left) <= SORPTION_UNIT) { - px.palce = bounds.x + bounds.width / 2; - px.direction = SwingConstants.LEFT; - } - if (Math.abs(bounds.x + bounds.width / 2 - right) <= SORPTION_UNIT) { - px.palce = bounds.x + bounds.width / 2 - width; - px.direction = SwingConstants.RIGHT; - } - } - - private static void findY(PlacePointing py, Rectangle bounds, int top, int bottom, int height) { - if (py.isFind()) { - return; - } - - if (Math.abs(bounds.y + bounds.height / 2 - (top + bottom) / 2) <= SORPTION_UNIT) { - py.palce = bounds.y + bounds.height / 2 - height / 2; - py.direction = SwingConstants.CENTER; - } - int y1 = bounds.y; - if (Math.abs(y1 - top) <= SORPTION_UNIT) { - py.palce = y1; - py.direction = SwingConstants.TOP; - } - if (Math.abs(y1 - bottom) <= SORPTION_UNIT) { - py.palce = y1 - height; - py.direction = SwingConstants.BOTTOM; - } - int y2 = bounds.y + bounds.height; - if (Math.abs(y2 - top) <= SORPTION_UNIT) { - py.palce = y2; - py.direction = SwingConstants.TOP; - } - if (Math.abs(y2 - bottom) <= SORPTION_UNIT) { - py.palce = y2 - height; - py.direction = SwingConstants.BOTTOM; - } - if (Math.abs(bounds.y + bounds.height / 2 - top) <= SORPTION_UNIT) { - py.palce = bounds.y + bounds.height / 2; - py.direction = SwingConstants.TOP; - } - if (Math.abs(bounds.y + bounds.height / 2 - bottom) <= SORPTION_UNIT) { - py.palce = bounds.y + bounds.height / 2 - height; - py.direction = SwingConstants.BOTTOM; - } - } - - private static void findEquidistantLine(Rectangle bounds, int left, int top, int height, int width) { - //最近的距离与坐标 - EquidistantLine equidistantLineInfo = new EquidistantLine(0, 0, 0); - //等距线从各边中点画出,先要判断是不是在范围内 - int topMiddleX = left + width / 2; - int leftMiddleY = top + height / 2; - if ((topMiddleX > bounds.getX()) && (topMiddleX < (bounds.getX() + bounds.getWidth()))) { - //当前操作rec在bounds的下方 - if (top > (bounds.getY() + bounds.getHeight())) { - equidistantLineInfo.setDistance(top - (bounds.y + bounds.height)); - equidistantLineInfo.setReference(bounds.y + bounds.height); - equidistantLineInfo.setDirection(SwingConstants.TOP); - } - //当前操作rec在bounds上方 - if ((top + height) < bounds.getY()) { - equidistantLineInfo.setDistance(bounds.y - (top + height)); - equidistantLineInfo.setReference(bounds.y); - equidistantLineInfo.setDirection(SwingConstants.BOTTOM); - } - } else if ((leftMiddleY > bounds.getY()) && (leftMiddleY < (bounds.getY() + bounds.getHeight()))) { - //当前操作rec在bounds的右侧 - if (left > (bounds.getX() + bounds.getWidth())) { - equidistantLineInfo.setDistance(left - (bounds.x + bounds.width)); - equidistantLineInfo.setReference(bounds.x + bounds.width); - equidistantLineInfo.setDirection(SwingConstants.LEFT); - } - //当前操作rec在bounds的左侧 - if ((left + width) < bounds.getX()) { - equidistantLineInfo.setDistance(bounds.x - (left + width)); - equidistantLineInfo.setReference(bounds.x); - equidistantLineInfo.setDirection(SwingConstants.RIGHT); - } - } - if (equidistantLineInfo.getDistance() > 0) { - equidistantLines.add(equidistantLineInfo); - } - } - - - /** - * 吸附 - * - * @param x x坐标 - * @param y y坐标 - * @param width 宽度 - * @param height 高度 - * @param designer 块设计器 - * @return 吸附后坐标 - * @date 2015-2-12-下午2:39:16 - */ - public static Point sorption(int x, int y, int width, int height, RectangleDesigner designer, boolean isParameterLayout) { - - int left = x, top = y, bottom = top + height, right = left + width; - - Rectangle operatingRectangle = new Rectangle(x, y, width, height); - - equidistantLines.clear(); - - PlacePointing px = new PlacePointing(x); - PlacePointing py = new PlacePointing(y); - - PlacePointing pEquidistantX = new PlacePointing(x); - PlacePointing pEquidistantY = new PlacePointing(y); - - RectangleIterator iterator = designer.createRectangleIterator(); - - java.util.List cacheRecs = new ArrayList(); - while (iterator.hasNext()) { - Rectangle bounds = iterator.nextRectangle(); - cacheRecs.add(bounds); - findX(px, bounds, left, right, width); - findY(py, bounds, top, bottom, height); - - if (!isParameterLayout) { - findEquidistantLine(bounds, left, top, height, width); - } - } - - createXAbsorptionline(px, designer, width, cacheRecs); - createYAbsorptionline(py, designer, height, cacheRecs); - operatingRectangle.x = px.palce; - operatingRectangle.y = py.palce; - createEquidistantLine(pEquidistantX, pEquidistantY, operatingRectangle, designer); - Point sorptionPoint = new Point(px.palce, py.palce); - if (!px.isFind()) { - sorptionPoint.x = pEquidistantX.palce; - } - if (!py.isFind()) { - sorptionPoint.y = pEquidistantY.palce; - } - return sorptionPoint; - } - - - private static void createXAbsorptionline(PlacePointing px, RectangleDesigner designer, int width, java.util.List cacheRecs) { - Absorptionline line = null; - RectangleIterator iterator = designer.createRectangleIterator(); - int[] selfVertical = designer.getVerticalLine(); - if (px.direction == SwingConstants.CENTER) { - line = Absorptionline.createXMidAbsorptionline(px.palce + width / 2); - int left = px.palce; - int right = px.palce + width; - for (Rectangle bounds : cacheRecs) { - if (bounds.x == left || bounds.x + bounds.width == left) { - line.setFirstLine(left); - } - if (bounds.x == right || bounds.x + bounds.width == right) { - line.setSecondLine(right); - } - updateVerticalLine(selfVertical, iterator, line); - if (line.isFull()) { - break; - } - } - } else if (px.direction == SwingConstants.LEFT || px.direction == SwingConstants.RIGHT) { - int left = px.direction == SwingConstants.LEFT ? px.palce + width : px.palce; - line = Absorptionline.createXAbsorptionline(px.direction == SwingConstants.LEFT ? px.palce : px.palce + width); - int middle = px.palce + width / 2; - for (Rectangle bounds : cacheRecs) { - if (bounds.x == left || bounds.x + bounds.width == left) { - line.setSecondLine(left); - } - if (bounds.x + bounds.width / 2 == middle) { - line.setMidLine(middle); - } - updateVerticalLine(selfVertical, iterator, line); - if (line.isFull()) { - break; - } - } - } - designer.setXAbsorptionline(line); - } - - private static void createYAbsorptionline(PlacePointing py, RectangleDesigner designer, int height, java.util.List cacheRecs) { - Absorptionline line = null; - RectangleIterator iterator = designer.createRectangleIterator(); - int[] selfHorizontal = designer.getHorizontalLine(); - if (py.direction == SwingConstants.CENTER) { - line = Absorptionline.createYMidAbsorptionline(py.palce + height / 2); - int top = py.palce; - int bottom = py.palce + height; - for (Rectangle bounds : cacheRecs) { - if (bounds.y == top || bounds.y + bounds.height == top) { - line.setFirstLine(top); - } - if (bounds.y == bottom || bounds.y + bounds.height == bottom) { - line.setSecondLine(bottom); - } - updateHorizontalLine(selfHorizontal, iterator, line); - if (line.isFull()) { - break; - } - } - } else if (py.direction == SwingConstants.TOP || py.direction == SwingConstants.BOTTOM) { - int top = py.direction == SwingConstants.TOP ? py.palce + height : py.palce; - line = Absorptionline.createYAbsorptionline(py.direction == SwingConstants.TOP ? py.palce : py.palce + height); - int middle = py.palce + height / 2; - for (Rectangle bounds : cacheRecs) { - if (bounds.y == top || bounds.y + bounds.height == top) { - line.setSecondLine(top); - } - if (bounds.y + bounds.height / 2 == middle) { - line.setMidLine(middle); - } - updateHorizontalLine(selfHorizontal, iterator, line); - if (line.isFull()) { - break; - } - } - } - designer.setYAbsorptionline(line); - } - - private static void createEquidistantLine(PlacePointing px, PlacePointing py, Rectangle operatingRectangle, RectangleDesigner designer) { - processEquidistantLinesList(px, py, operatingRectangle); - Absorptionline line = null; - if (equidistantLines.size() > 0) { - int top = -1; - int left = -1; - int bottom = -1; - int right = -1; - for (int i = 0; i < equidistantLines.size(); i++) { - if (equidistantLines.get(i).getDirection() == SwingConstants.TOP) { - top = equidistantLines.get(i).getReference(); - } - if (equidistantLines.get(i).getDirection() == SwingConstants.LEFT) { - left = equidistantLines.get(i).getReference(); - } - if (equidistantLines.get(i).getDirection() == SwingConstants.BOTTOM) { - bottom = equidistantLines.get(i).getReference(); - } - if (equidistantLines.get(i).getDirection() == SwingConstants.RIGHT) { - right = equidistantLines.get(i).getReference(); - } - } - operatingRectangle.x -= designer.getDesignerScrollHorizontalValue(); - operatingRectangle.y -= designer.getDesignerScrollVerticalValue(); - line = Absorptionline.createEquidistantAbsorptionline(operatingRectangle, - top - designer.getDesignerScrollVerticalValue(), - left - designer.getDesignerScrollHorizontalValue(), - bottom - designer.getDesignerScrollVerticalValue(), - right - designer.getDesignerScrollHorizontalValue()); - } - designer.setEquidistantLine(line); - } - - private static void processEquidistantLinesList(PlacePointing pEquidistantX, PlacePointing pEquidistantY, Rectangle operatingRectangle) { - EquidistantLine[] equidistantLines1 = new EquidistantLine[EQUIDISTANTLINE_UNIT]; - //先按方向处理,只保留四个方向上距离最近 - for (int count = 0; count < equidistantLines.size(); count++) { - for (int direction = 0; direction < EQUIDISTANTLINE_UNIT; direction++) { - if (equidistantLines.get(count).getDirection() == (direction + 1)) {//direction 1,2,3,4 分别对应top,left,bottom,right - if (equidistantLines1[direction] != null - && equidistantLines1[direction].getDistance() > equidistantLines.get(count).getDistance() - || equidistantLines1[direction] == null) { - equidistantLines1[direction] = equidistantLines.get(count); - } - } - } - } - - equidistantLines.clear(); - //找list中横纵分别等距的组合 - if (equidistantLines1[0] != null && equidistantLines1[2] != null) {//top, bottom - int offset = equidistantLines1[0].getDistance() - equidistantLines1[2].getDistance(); - if (Math.abs(offset) <= SORPTION_UNIT * 2) { - pEquidistantY.direction = SwingConstants.TOP; - equidistantLines.add(equidistantLines1[0]); - equidistantLines.add(equidistantLines1[2]); - pEquidistantY.palce = operatingRectangle.y - offset / 2; - operatingRectangle.y = pEquidistantY.palce; - } - } - if (equidistantLines1[1] != null && equidistantLines1[3] != null) {//left, right - int offset = equidistantLines1[1].getDistance() - equidistantLines1[3].getDistance(); - if (Math.abs(offset) <= SORPTION_UNIT * 2) { - pEquidistantX.direction = SwingConstants.LEFT; - equidistantLines.add(equidistantLines1[1]); - equidistantLines.add(equidistantLines1[3]); - pEquidistantX.palce = operatingRectangle.x - offset / 2; - operatingRectangle.x = pEquidistantX.palce; - } - } - } - - //更新纵向行列线 - private static void updateVerticalLine(int[] selfVertical, RectangleIterator iterator, Absorptionline line) { - int[] targetArray = iterator.getVerticalLine(); - if (intersectArrays(targetArray, selfVertical)) { - line.setVerticalLines(targetArray); - } - } - - //更新横向行列线 - private static void updateHorizontalLine(int[] selfHorizontal, RectangleIterator iterator, Absorptionline line) { - int[] targetArray = iterator.getHorizontalLine(); - if (intersectArrays(targetArray, selfHorizontal)) { - line.setHorizontalLines(targetArray); - } - } - - //检测两个数组是否有相交的部分 - private static boolean intersectArrays(int[] targetArray, int[] selfArray) { - for (int i : targetArray) { - for (int j : selfArray) { - if (i == j) { - return true; - } - } - } - - return false; - } - - private static class EquidistantLine { - //与操作rectangle的距离 - private int distance; - //参考rectangle的位置 - private int reference; - //等距线的方向 - private int direction; - - EquidistantLine(int distance, int reference, int direction) { - this.distance = distance; - this.reference = reference; - this.direction = direction; - } - - public void setDistance(int distance) { - this.distance = distance; - } - - public int getDistance() { - return this.distance; - } - - public void setReference(int reference) { - this.reference = reference; - } - - public int getReference() { - return this.reference; - } - - public void setDirection(int direction) { - this.direction = direction; - } - - public int getDirection() { - return this.direction; - } - } +/* + * Copyright(c) 2001-2011, FineReport Inc, All Rights Reserved. + */ +package com.fr.design.beans.location; + +import javax.swing.*; +import java.awt.*; +import java.util.ArrayList; + +/** + * Created by IntelliJ IDEA. + * + * @author: Richer + * @since : 6.5.5 Date: 11-7-1 Time: 下午2:22 + */ +public class MoveUtils { + + public static final int SORPTION_UNIT = 5; + private static final int EQUIDISTANTLINE_UNIT = 4; + + public static WidgetForbidWindow widgetForbidWindow = new WidgetForbidWindow(); + + public static ArrayList equidistantLines = new ArrayList<>(); + + private MoveUtils() { + + } + + public interface RectangleDesigner { + + /** + * 获取块边界的迭代器 + * + * @return 块边界的迭代器 + * + * @date 2015-2-12-下午2:43:47 + * + */ + RectangleIterator createRectangleIterator(); + + /** + * 设置X轴的线 + * + * @param line 连接线 + * + * @date 2015-2-12-下午2:44:04 + * + */ + void setXAbsorptionline(Absorptionline line); + + /** + * 设置Y轴的线 + * + * @param line 连接线 + * + * @date 2015-2-12-下午2:44:04 + * + */ + void setYAbsorptionline(Absorptionline line); + + /** + * 获取当前选中块的垂直线数组 + * + * @return 块的垂直线数组 + * + */ + int[] getVerticalLine(); + + /** + * 获取当前选中块的水平线数组 + * + * @return 块的水平线数组 + * + */ + int[] getHorizontalLine(); + + /** + * 设置designer内部组件是否重叠的标志位 + * @param isIntersects 是否重叠 + */ + void setWidgetsIntersected(boolean isIntersects); + + /** + * 获取designer内部组件是否重叠的标志位 + * @return 重叠 + */ + boolean isWidgetsIntersected(); + + /** + * 获取designer相对屏幕的位置 + * @return 位置 + */ + Point getDesignerLocationOnScreen(); + + /** + * 设置等距线 + * @param line 吸附线 + */ + void setEquidistantLine(Absorptionline line); + + /** + * 获取设计器垂直滚动条的值 + * @return 滚动条的值 + */ + int getDesignerScrollVerticalValue(); + + /** + * 获取设计器水平滚动条的值 + * @return 滚动条的值 + */ + int getDesignerScrollHorizontalValue(); + } + + public interface RectangleIterator { + + /** + * 是否存在下一个块 + * + * @return 是否存在下一个块 + * + * @date 2015-2-12-下午2:41:32 + * + */ + boolean hasNext(); + + /** + * 获取下一个块的bounds + * + * @return 下一个块的bounds + * + * @date 2015-2-12-下午2:41:55 + * + */ + Rectangle nextRectangle(); + + /** + * 获取块的垂直线数组 + * + * @return 块的垂直线数组 + * + * @date 2015-2-12-下午2:42:27 + * + */ + int[] getVerticalLine(); + + /** + * 获取块的水平线数组 + * + * @return 块的水平线数组 + * + * @date 2015-2-12-下午2:42:27 + * + */ + int[] getHorizontalLine(); + } + + private static class PlacePointing { + public PlacePointing(int x) { + this.palce = x; + } + + private boolean isFind() { + return direction != -1; + } + + private int palce; + private int direction = -1; + } + + private static void findX(PlacePointing px, Rectangle bounds, int left, int right, int width) { + if (px.isFind()) { + return; + } + if (Math.abs(bounds.x + bounds.width / 2 - (left + right) / 2) <= SORPTION_UNIT) { + px.palce = bounds.x + bounds.width / 2 - width / 2; + px.direction = SwingConstants.CENTER; + } + int x1 = bounds.x; + if (Math.abs(x1 - left) <= SORPTION_UNIT) { + px.palce = x1; + px.direction = SwingConstants.LEFT; + } + if (Math.abs(x1 - right) <= SORPTION_UNIT) { + px.palce = x1 - width; + px.direction = SwingConstants.RIGHT; + } + int x2 = bounds.x + bounds.width; + if (Math.abs(x2 - left) <= SORPTION_UNIT) { + px.palce = x2; + px.direction = SwingConstants.LEFT; + } + if (Math.abs(x2 - right) <= SORPTION_UNIT) { + px.palce = x2 - width; + px.direction = SwingConstants.RIGHT; + } + if (Math.abs(bounds.x + bounds.width / 2 - left) <= SORPTION_UNIT) { + px.palce = bounds.x + bounds.width / 2; + px.direction = SwingConstants.LEFT; + } + if (Math.abs(bounds.x + bounds.width / 2 - right) <= SORPTION_UNIT) { + px.palce = bounds.x + bounds.width / 2 - width; + px.direction = SwingConstants.RIGHT; + } + } + + private static void findY(PlacePointing py, Rectangle bounds, int top, int bottom, int height) { + if (py.isFind()) { + return; + } + + if (Math.abs(bounds.y + bounds.height / 2 - (top + bottom) / 2) <= SORPTION_UNIT) { + py.palce = bounds.y + bounds.height / 2 - height / 2; + py.direction = SwingConstants.CENTER; + } + int y1 = bounds.y; + if (Math.abs(y1 - top) <= SORPTION_UNIT) { + py.palce = y1; + py.direction = SwingConstants.TOP; + } + if (Math.abs(y1 - bottom) <= SORPTION_UNIT) { + py.palce = y1 - height; + py.direction = SwingConstants.BOTTOM; + } + int y2 = bounds.y + bounds.height; + if (Math.abs(y2 - top) <= SORPTION_UNIT) { + py.palce = y2; + py.direction = SwingConstants.TOP; + } + if (Math.abs(y2 - bottom) <= SORPTION_UNIT) { + py.palce = y2 - height; + py.direction = SwingConstants.BOTTOM; + } + if (Math.abs(bounds.y + bounds.height / 2 - top) <= SORPTION_UNIT) { + py.palce = bounds.y + bounds.height / 2; + py.direction = SwingConstants.TOP; + } + if (Math.abs(bounds.y + bounds.height / 2 - bottom) <= SORPTION_UNIT) { + py.palce = bounds.y + bounds.height / 2 - height; + py.direction = SwingConstants.BOTTOM; + } + } + + private static void findEquidistantLine(Rectangle bounds, int left, int top, int height, int width) { + //最近的距离与坐标 + EquidistantLine equidistantLineInfo = new EquidistantLine(0, 0, 0); + //等距线从各边中点画出,先要判断是不是在范围内 + int topMiddleX = left + width / 2; + int leftMiddleY = top + height / 2; + if ((topMiddleX > bounds.getX()) && (topMiddleX < (bounds.getX() + bounds.getWidth()))){ + //当前操作rec在bounds的下方 + if (top > (bounds.getY() + bounds.getHeight())){ + equidistantLineInfo.setDistance(top - (bounds.y + bounds.height)); + equidistantLineInfo.setReference(bounds.y + bounds.height); + equidistantLineInfo.setDirection(SwingConstants.TOP); + } + //当前操作rec在bounds上方 + if ((top + height) < bounds.getY()){ + equidistantLineInfo.setDistance(bounds.y - (top + height)); + equidistantLineInfo.setReference(bounds.y); + equidistantLineInfo.setDirection(SwingConstants.BOTTOM); + } + } + else if ((leftMiddleY > bounds.getY()) && (leftMiddleY < (bounds.getY() + bounds.getHeight()))){ + //当前操作rec在bounds的右侧 + if (left > (bounds.getX() + bounds.getWidth())){ + equidistantLineInfo.setDistance(left - (bounds.x + bounds.width)); + equidistantLineInfo.setReference(bounds.x + bounds.width); + equidistantLineInfo.setDirection(SwingConstants.LEFT); + } + //当前操作rec在bounds的左侧 + if ((left + width) < bounds.getX()){ + equidistantLineInfo.setDistance(bounds.x - (left + width)); + equidistantLineInfo.setReference(bounds.x); + equidistantLineInfo.setDirection(SwingConstants.RIGHT); + } + } + if(equidistantLineInfo.getDistance() > 0) { + equidistantLines.add(equidistantLineInfo); + } + } + + public static void displayForbidWindow(int x, int y) { + widgetForbidWindow.showWindow(x, y); + } + + public static void hideForbidWindow() { + widgetForbidWindow.hideWindow(); + } + + /** + * 吸附 + * + * @param x x坐标 + * @param y y坐标 + * @param width 宽度 + * @param height 高度 + * @param designer 块设计器 + * + * @return 吸附后坐标 + * + * @date 2015-2-12-下午2:39:16 + * + */ + public static Point sorption(int x, int y, int width, int height, RectangleDesigner designer, boolean isParameterLayout) { + + int left = x, top = y, bottom = top + height, right = left + width; + + Rectangle operatingRectangle = new Rectangle(x, y, width, height); + + equidistantLines.clear(); + + PlacePointing px = new PlacePointing(x); + PlacePointing py = new PlacePointing(y); + + PlacePointing pEquidistantX = new PlacePointing(x); + PlacePointing pEquidistantY = new PlacePointing(y); + + RectangleIterator iterator = designer.createRectangleIterator(); + + java.util.List cacheRecs = new ArrayList(); + //是否存在控件重叠 + boolean isWidgetsIntersects = false; + while (iterator.hasNext()) { + Rectangle bounds = iterator.nextRectangle(); + cacheRecs.add(bounds); + boolean isIntersects = operatingRectangle.intersects(bounds); + findX(px, bounds, left, right, width); + findY(py, bounds, top, bottom, height); + + if(!isParameterLayout){ + if(isIntersects) { + isWidgetsIntersects = true; + } + else{ + findEquidistantLine(bounds, left, top, height, width); + } + } + } + showForbiddenWindow(designer, x, y, isWidgetsIntersects); + + createXAbsorptionline(px, designer, width, cacheRecs); + createYAbsorptionline(py, designer, height, cacheRecs); + operatingRectangle.x = px.palce; + operatingRectangle.y = py.palce; + createEquidistantLine(pEquidistantX, pEquidistantY, operatingRectangle, designer); + Point sorptionPoint = new Point(px.palce,py.palce); + if (!px.isFind()){ + sorptionPoint.x = pEquidistantX.palce; + } + if (!py.isFind()){ + sorptionPoint.y = pEquidistantY.palce; + } + return sorptionPoint; + } + + public static void showForbiddenWindow(RectangleDesigner designer, int x, int y, boolean isIntersects){ + if (isIntersects){ + if(designer.getDesignerLocationOnScreen() != null) { + displayForbidWindow(x + designer.getDesignerLocationOnScreen().x, y + designer.getDesignerLocationOnScreen().y); + } + designer.setWidgetsIntersected(true); + } + else{ + designer.setWidgetsIntersected(false); + hideForbidWindow(); + } + } + + private static void createXAbsorptionline(PlacePointing px, RectangleDesigner designer, int width, java.util.List cacheRecs) { + Absorptionline line = null; + RectangleIterator iterator = designer.createRectangleIterator(); + int[] selfVertical = designer.getVerticalLine(); + if (px.direction == SwingConstants.CENTER) { + line = Absorptionline.createXMidAbsorptionline(px.palce + width / 2); + int left = px.palce; + int right = px.palce + width; + for (Rectangle bounds : cacheRecs) { + if (bounds.x == left || bounds.x + bounds.width == left) { + line.setFirstLine(left); + } + if (bounds.x == right || bounds.x + bounds.width == right) { + line.setSecondLine(right); + } + updateVerticalLine(selfVertical, iterator, line); + if (line.isFull()) { + break; + } + } + } else if (px.direction == SwingConstants.LEFT || px.direction == SwingConstants.RIGHT) { + int left = px.direction == SwingConstants.LEFT ? px.palce + width : px.palce; + line = Absorptionline.createXAbsorptionline(px.direction == SwingConstants.LEFT ? px.palce : px.palce + width); + int middle = px.palce + width / 2; + for (Rectangle bounds : cacheRecs) { + if (bounds.x == left || bounds.x + bounds.width == left) { + line.setSecondLine(left); + } + if (bounds.x + bounds.width / 2 == middle) { + line.setMidLine(middle); + } + updateVerticalLine(selfVertical, iterator, line); + if (line.isFull()) { + break; + } + } + } + designer.setXAbsorptionline(line); + } + + private static void createYAbsorptionline(PlacePointing py, RectangleDesigner designer, int height, java.util.List cacheRecs) { + Absorptionline line = null; + RectangleIterator iterator = designer.createRectangleIterator(); + int[] selfHorizontal = designer.getHorizontalLine(); + if (py.direction == SwingConstants.CENTER) { + line = Absorptionline.createYMidAbsorptionline(py.palce + height / 2); + int top = py.palce; + int bottom = py.palce + height; + for (Rectangle bounds : cacheRecs) { + if (bounds.y == top || bounds.y + bounds.height == top) { + line.setFirstLine(top); + } + if (bounds.y == bottom || bounds.y + bounds.height == bottom) { + line.setSecondLine(bottom); + } + updateHorizontalLine(selfHorizontal, iterator, line); + if (line.isFull()) { + break; + } + } + } else if (py.direction == SwingConstants.TOP || py.direction == SwingConstants.BOTTOM) { + int top = py.direction == SwingConstants.TOP ? py.palce + height : py.palce; + line = Absorptionline.createYAbsorptionline(py.direction == SwingConstants.TOP ? py.palce : py.palce + height); + int middle = py.palce + height / 2; + for (Rectangle bounds : cacheRecs) { + if (bounds.y == top || bounds.y + bounds.height == top) { + line.setSecondLine(top); + } + if (bounds.y + bounds.height / 2 == middle) { + line.setMidLine(middle); + } + updateHorizontalLine(selfHorizontal, iterator, line); + if (line.isFull()) { + break; + } + } + } + designer.setYAbsorptionline(line); + } + + private static void createEquidistantLine(PlacePointing px, PlacePointing py, Rectangle operatingRectangle, RectangleDesigner designer){ + processEquidistantLinesList(px, py, operatingRectangle); + Absorptionline line = null; + if(equidistantLines.size() > 0) { + int top = -1; + int left = -1; + int bottom = -1; + int right = -1; + for(int i = 0; i < equidistantLines.size(); i++){ + if (equidistantLines.get(i).getDirection() == SwingConstants.TOP){ + top = equidistantLines.get(i).getReference(); + } + if (equidistantLines.get(i).getDirection() == SwingConstants.LEFT){ + left = equidistantLines.get(i).getReference(); + } + if (equidistantLines.get(i).getDirection() == SwingConstants.BOTTOM){ + bottom = equidistantLines.get(i).getReference(); + } + if (equidistantLines.get(i).getDirection() == SwingConstants.RIGHT){ + right = equidistantLines.get(i).getReference(); + } + } + operatingRectangle.x -= designer.getDesignerScrollHorizontalValue(); + operatingRectangle.y -= designer.getDesignerScrollVerticalValue(); + line = Absorptionline.createEquidistantAbsorptionline(operatingRectangle, + top - designer.getDesignerScrollVerticalValue(), + left - designer.getDesignerScrollHorizontalValue(), + bottom - designer.getDesignerScrollVerticalValue(), + right - designer.getDesignerScrollHorizontalValue()); + } + designer.setEquidistantLine(line); + } + + private static void processEquidistantLinesList(PlacePointing pEquidistantX, PlacePointing pEquidistantY, Rectangle operatingRectangle){ + EquidistantLine[] equidistantLines1 = new EquidistantLine[EQUIDISTANTLINE_UNIT]; + //先按方向处理,只保留四个方向上距离最近 + for(int count = 0; count < equidistantLines.size(); count++){ + for (int direction = 0; direction < EQUIDISTANTLINE_UNIT; direction++){ + if(equidistantLines.get(count).getDirection() == (direction + 1)){//direction 1,2,3,4 分别对应top,left,bottom,right + if(equidistantLines1[direction] != null + && equidistantLines1[direction].getDistance() > equidistantLines.get(count).getDistance() + || equidistantLines1[direction] == null) { + equidistantLines1[direction] = equidistantLines.get(count); + } + } + } + } + + equidistantLines.clear(); + //找list中横纵分别等距的组合 + if (equidistantLines1[0] != null && equidistantLines1[2] != null){//top, bottom + int offset = equidistantLines1[0].getDistance() - equidistantLines1[2].getDistance(); + if (Math.abs(offset) <= SORPTION_UNIT * 2){ + pEquidistantY.direction = SwingConstants.TOP; + equidistantLines.add(equidistantLines1[0]); + equidistantLines.add(equidistantLines1[2]); + pEquidistantY.palce = operatingRectangle.y - offset / 2; + operatingRectangle.y = pEquidistantY.palce; + } + } + if (equidistantLines1[1] != null && equidistantLines1[3] != null){//left, right + int offset = equidistantLines1[1].getDistance() - equidistantLines1[3].getDistance(); + if (Math.abs(offset) <= SORPTION_UNIT * 2){ + pEquidistantX.direction = SwingConstants.LEFT; + equidistantLines.add(equidistantLines1[1]); + equidistantLines.add(equidistantLines1[3]); + pEquidistantX.palce = operatingRectangle.x - offset / 2; + operatingRectangle.x = pEquidistantX.palce; + } + } + } + + //更新纵向行列线 + private static void updateVerticalLine(int[] selfVertical, RectangleIterator iterator, Absorptionline line){ + int[] targetArray = iterator.getVerticalLine(); + if (intersectArrays(targetArray, selfVertical)){ + line.setVerticalLines(targetArray); + } + } + + //更新横向行列线 + private static void updateHorizontalLine(int[] selfHorizontal, RectangleIterator iterator, Absorptionline line){ + int[] targetArray = iterator.getHorizontalLine(); + if (intersectArrays(targetArray, selfHorizontal)){ + line.setHorizontalLines(targetArray); + } + } + + //检测两个数组是否有相交的部分 + private static boolean intersectArrays(int[] targetArray, int[] selfArray){ + for (int i : targetArray) { + for (int j : selfArray) { + if(i == j){ + return true; + } + } + } + + return false; + } + + private static class EquidistantLine{ + //与操作rectangle的距离 + private int distance; + //参考rectangle的位置 + private int reference; + //等距线的方向 + private int direction; + + EquidistantLine(int distance, int reference, int direction){ + this.distance = distance; + this.reference = reference; + this.direction = direction; + } + + public void setDistance(int distance){ + this.distance = distance; + } + + public int getDistance(){ + return this.distance; + } + + public void setReference(int reference){ + this.reference = reference; + } + + public int getReference(){ + return this.reference; + } + + public void setDirection(int direction){ + this.direction = direction; + } + + public int getDirection(){ + return this.direction; + } + } } \ No newline at end of file diff --git a/designer_base/src/com/fr/design/locale/designer.properties b/designer_base/src/com/fr/design/locale/designer.properties index caa3e9d355..e3ee039994 100644 --- a/designer_base/src/com/fr/design/locale/designer.properties +++ b/designer_base/src/com/fr/design/locale/designer.properties @@ -91,7 +91,6 @@ FR-Designer_DS-Dictionary= FR-Designer_Data-confusion= FR-Designer_Data_Type= FR-Designer_Double_Click_Edit_OR_Clear= -FR-Designer_Edit_Button_ToolBar= FR-Designer_Email= FR-Designer_Enabled= FR-Designer_End-Date= @@ -101,6 +100,7 @@ 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= FR-Designer_Font-Family= FR-Designer_Font-Size= @@ -162,7 +162,6 @@ FR-Designer_Refresh_Parameter_In_SQL= FR-Designer_Reg_Expressions= FR-Designer_Reg_Max_Length= FR-Designer_Reg_Min_Length= -FR-Designer_Remove_Button_ToolBar= FR-Designer_ReportColumns-Columns= FR-Designer_Return-Date= FR-Designer_RichText= @@ -543,14 +542,14 @@ FR-Designer_Left_Display=Left FR-Designer_About_Version=Version FR-Designer_About_CopyRight=Copy Right FR-Designer_Service_Phone=Service Phone -FR-Designer_Allow_Null=Allow Null +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}WEB-INF{R2}classes' directory.\nAdd the source code(.java file) into the same folder if need.\nExample: {R3}classes} +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 FR-Designer_PageSetup_Vertical=Vertical FR-Designer_Gradient_Direction=Gradient Direction @@ -564,6 +563,10 @@ 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=Page Break +FR-Designer-Move_Tab_First=move to first +FR-Designer-Move_Tab_End=move to end +FR-Designer-Move_Tab_Next=move to next +FR-Designer-Move_Tab_Prev=move to previous 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. @@ -584,10 +587,4 @@ FR-Designer_Mouse_Click_Tips= FR-Designer-Move_Tab_First=move to first FR-Designer-Move_Tab_End=move to end FR-Designer-Move_Tab_Next=move to next -FR-Designer-Move_Tab_Prev=move to previous -FR-Designer_AxisReversed=Axis Reversed -FR-Designer_Logarithmic=Logarithmic -FR-Designer_Chart_Log_Base=Log Base -FR-Designer_Chart_F_Radar_Axis=Chart_F_Radar_Axis -FR-Designer_Too_Large_To_Paste=too large to paste -FR-Designer_Too_Small_To_Paste=Too small to paste +FR-Designer-Move_Tab_Prev=move to previous \ No newline at end of file diff --git a/designer_base/src/com/fr/design/locale/designer_en_US.properties b/designer_base/src/com/fr/design/locale/designer_en_US.properties index ccf30126a4..a86a7fb14f 100644 --- a/designer_base/src/com/fr/design/locale/designer_en_US.properties +++ b/designer_base/src/com/fr/design/locale/designer_en_US.properties @@ -91,7 +91,6 @@ 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_Edit_Button_ToolBar=Edit Button ToolBar FR-Designer_Email=Mail FR-Designer_Enabled=Enabled FR-Designer_End-Date=End Date @@ -164,7 +163,6 @@ 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_Remove_Button_ToolBar=Remove Button ToolBar FR-Designer_ReportColumns-Columns=Multi-columns/lines FR-Designer_Return-Date=Return Date FR-Designer_RichText=Insert Rich Text @@ -544,14 +542,14 @@ FR-Designer_Left_Display=Left FR-Designer_About_Version=Version FR-Designer_About_CopyRight=Copy Right FR-Designer_Service_Phone=Service Phone -FR-Designer_Allow_Null=Allow Null +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=Aggregation block edition -FR-Designer_Function_Description_Area_Text=The class must inherit 'com.fr.script.AbstractFunction'. The compiled class files should be copied to\nJ2EE server '{R1}WEB-INF{R2}classes' directory.\nAdd the source code(.java file) into the same folder if need.\nExample: {R3}classes +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 FR-Designer_PageSetup_Vertical=Vertical FR-Designer_Gradient_Direction=Gradient Direction @@ -565,6 +563,10 @@ 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=Page Break +FR-Designer-Move_Tab_First=move to first +FR-Designer-Move_Tab_End=move to end +FR-Designer-Move_Tab_Next=move to next +FR-Designer-Move_Tab_Prev=move to previous 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. @@ -585,10 +587,4 @@ FR-Designer_Mouse_Click_Tips=The background of the mouse to click the button, in FR-Designer-Move_Tab_First=move to first FR-Designer-Move_Tab_End=move to end FR-Designer-Move_Tab_Next=move to next -FR-Designer-Move_Tab_Prev=move to previous -FR-Designer_AxisReversed=Axis in reverse order -FR-Designer_Logarithmic=Log scale -FR-Designer_Chart_Log_Base=Log Base -FR-Designer_Chart_F_Radar_Axis=Value Axis -FR-Designer_Too_Large_To_Paste=Too large to paste! -FR-Designer_Too_Small_To_Paste=Too small to paste! +FR-Designer-Move_Tab_Prev=move to previous \ No newline at end of file diff --git a/designer_base/src/com/fr/design/locale/designer_ja_JP.properties b/designer_base/src/com/fr/design/locale/designer_ja_JP.properties index 1b1c1a6c00..943cf181d1 100644 --- a/designer_base/src/com/fr/design/locale/designer_ja_JP.properties +++ b/designer_base/src/com/fr/design/locale/designer_ja_JP.properties @@ -91,7 +91,6 @@ FR-Designer_DS-Dictionary=\u30C7\u30FC\u30BF\u5B57\u5178 FR-Designer_Data-confusion=\u30C7\u30FC\u30BF\u6DF7\u4EA4 FR-Designer_Data_Type=\u30C7\u30FC\u30BF\u30BF\u30A4\u30D7 FR-Designer_Double_Click_Edit_OR_Clear=\u30C0\u30D6\u30EB\u30AF\u30EA\u30C3\u30AF\u3057\u3066\u7DE8\u96C6\u307E\u305F\u306F\u30AF\u30EA\u30A2\u3059\u308B -FR-Designer_Edit_Button_ToolBar=\u30DC\u30BF\u30F3\u306B\u3042\u308B\u30C4\u30FC\u30EB\u6B04\u7DE8\u96C6 FR-Designer_Email=\u30E1\u30FC\u30EB FR-Designer_Enabled=\u4F7F\u7528\u53EF\u80FD FR-Designer_End-Date=\u7D42\u4E86\u65E5\u671F @@ -163,7 +162,6 @@ FR-Designer_Refresh_Parameter_In_SQL=SQL\u4E2D\u306E\u30D1\u30E9\u30E1\u30FC\u30 FR-Designer_Reg_Expressions=\u6B63\u5247\u8868\u73FE\u5F0F FR-Designer_Reg_Max_Length=\u6700\u5927\u9577\u3055 FR-Designer_Reg_Min_Length=\u6700\u5C0F\u9577\u3055 -FR-Designer_Remove_Button_ToolBar=\u30DC\u30BF\u30F3\u304C\u3042\u308B\u30C4\u30FC\u30EB\u30D0\u30FC\u3092\u30EA\u30E0\u30FC\u30D6 FR-Designer_ReportColumns-Columns=\u6BB5\u7D44\u307F FR-Designer_Return-Date=\u65E5\u671F\u306B\u623B\u308B FR-Designer_RichText=\u30EA\u30C3\u30C1\u6587\u66F8\u633F\u5165 @@ -525,7 +523,7 @@ FR-Designer_Property=\u5C5E\u6027 FR-Designer_ClassName=\u985E\u540D FR-Designer_Polyblock_Edit=\u30A2\u30B0\u30EA\u30B2\u30FC\u30B7\u30E7\u30F3\u30D6\u30ED\u30C3\u30AF\u7DE8\u96C6 -FR-Designer_Function_Description_Area_Text=\u3053\u306E\u30AF\u30E9\u30B9\u306F\u7D99\u627F\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059"com.fr.script.AbstractFunction"\u3002\u3092\u7D99\u627F\u3059\u3079\u304D\u3067\u3059\u3002\u30B3\u30F3\u30D1\u30A4\u30EB\u5F8C\u306E\u985E\u30D5\u30A1\u30A4\u30EB\u3092\nJ2EE\u30B5\u30FC\u30D0\u30FC "{R1}WEB-INF{R2}classes" \u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u3002\u306B\u30B3\u30D4\u30FC\u3057\u3066\u3001class\u306B\u5BFE\u5FDC\u3059\u308Bjava\u30D5\u30A1\u30A4\u30EB\u3082\u5F53\u76EE\u6B21\u306B\u7F6E\u3044\u3066\u304F\u3060\u3055\u3044\u3002\n\u4F8B\u3048\u3070\uFF1A{R3}classes +FR-Designer_Function_Description_Area_Text=\u3053\u306E\u30AF\u30E9\u30B9\u306F\u7D99\u627F\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059"com.fr.script.AbstractFunction"\u3002\u3092\u7D99\u627F\u3059\u3079\u304D\u3067\u3059\u3002\u30B3\u30F3\u30D1\u30A4\u30EB\u5F8C\u306E\u985E\u30D5\u30A1\u30A4\u30EB\u3092\nJ2EE\u30B5\u30FC\u30D0\u30FC "{R1}" \u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u3002\u306B\u30B3\u30D4\u30FC\u3057\u3066\u3001class\u306B\u5BFE\u5FDC\u3059\u308Bjava\u30D5\u30A1\u30A4\u30EB\u3082\u5F53\u76EE\u6B21\u306B\u7F6E\u3044\u3066\u304F\u3060\u3055\u3044\u3002\n\u4F8B\u3048\u3070\uFF1A{R2} FR-Designer_PageSetup_Horizontal=\u6A2A\u65B9\u5411 FR-Designer_PageSetup_Vertical=\u7E26\u65B9\u5411 FR-Designer_Gradient_Direction=\u65B9\u5411\u3092\u5F90\u3005\u306B\u5909\u5316 @@ -539,6 +537,10 @@ FR-Designer_Show_As_Download=\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9\u30EA\u30F3\u3 FR-Designer_File_Name_For_Download=\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9\u30D5\u30A1\u30A4\u30EB\u540D FR-Designer_No=\u3044\u3044\u3048 FR-Designer_Pagination=\u30DA\u30FC\u30B8\u30F3\u30B0 +FR-Designer-Move_Tab_First= +FR-Designer-Move_Tab_End= +FR-Designer-Move_Tab_Next= +FR-Designer-Move_Tab_Prev= FR-Designer_DS_TableData=\u30C7\u30FC\u30BF\u30BD\u30FC\u30B9 FR-Designer_Parameter-Formula=\u6570\u5F0F FR-Designer_Background_Null= @@ -552,11 +554,4 @@ FR-Designer_Background_Image_Select= FR-Designer_Initial_Background_Tips= FR-Designer_Mouse_Move_Tips= FR-Designer_Mouse_Click_Tips= -FR-Designer-Move_Tab_First= -FR-Designer-Move_Tab_End= -FR-Designer-Move_Tab_Next= -FR-Designer-Move_Tab_Prev= -FR-Designer_AxisReversed=\u8EF8\u9006\u914D\u5217 -FR-Designer_Logarithmic=\u5BFE\u6570\u76EE\u76DB\u308A -FR-Designer_Chart_Log_Base=\u5E95\u6570 -FR-Designer_Chart_F_Radar_Axis=\u5782\u76F4\u8EF8 +FR-Designer_Plugin_Should_Update_Please_Contact_Developer= diff --git a/designer_base/src/com/fr/design/locale/designer_ko_KR.properties b/designer_base/src/com/fr/design/locale/designer_ko_KR.properties index 9df9125a94..db796ce438 100644 --- a/designer_base/src/com/fr/design/locale/designer_ko_KR.properties +++ b/designer_base/src/com/fr/design/locale/designer_ko_KR.properties @@ -91,7 +91,6 @@ FR-Designer_DS-Dictionary=\uB370\uC774\uD130\uC0AC\uC804 FR-Designer_Data-confusion=\uB370\uC774\uD130\uD63C\uD569 FR-Designer_Data_Type=\uB370\uC774\uD130\uC720\uD615 FR-Designer_Double_Click_Edit_OR_Clear=\uB354\uBE14\uD074\uB9AD\uD558\uC5EC\uD3B8\uC9D1\uB610\uB294\uD074\uB9AC\uC5B4\uC2E4\uD589 -FR-Designer_Edit_Button_ToolBar=\uD0A4\uAC00\uC788\uB294\uD234\uBC14\uD3B8\uC9D1 FR-Designer_Email=\uBA54\uC77C FR-Designer_Enabled=\uC0AC\uC6A9\uAC00\uB2A5 FR-Designer_End-Date=\uC885\uB8CC\uB0A0\uC9DC @@ -163,7 +162,6 @@ 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_Remove_Button_ToolBar=\uD0A4\uAC00\uC788\uB294\uD234\uBC14\uC81C\uAC70 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 @@ -522,7 +520,7 @@ FR-Designer_ClassName=\uD074\uB798\uC2A4\uB124\uC784 FR-Designer_Template_Web_Attributes=\uD15C\uD50C\uB9BF \uC6F9 \uC18D\uC131 FR-Designer_Polyblock_Edit=\uCDE8\uD569\uBE14\uB7ED\uD3B8\uC9D1 -FR-Designer_Function_Description_Area_Text=\uD574\uB2F9\uD074\uB798\uC2A4\uB294\uACC4\uC2B9\uD574\uC57C\uD55C\uB2E4."com.fr.script.AbstractFunction".\uCEF4\uD30C\uC77C\uD6C4\uC758\uD074\uB798\uC2A4\uD30C\uC77C\uC744~\uB85C\uBCF5\uC0AC\nJ2EE\uC11C\uBC84 "{R1}WEB-INF{R2}classes" \uB514\uB809\uD130\uB9AC, \uD544\uC694\uC2DC class \uC0C1\uC751\uD558\uB294 java\uC18C\uC2A4\uD30C\uC77C\uB3C4\uD574\uB2F9\uB514\uB809\uD130\uB9AC\uD558\uB2E8\uC5D0\uB450\uC5B4\uD3B8\uC9D1\uBC0F\uCC3E\uC544\uBCF4\uAE30\uB97C\uD560\uC218\uC788\uC2B5\uB2C8\uB2E4.\n\uC608: {R3}classes +FR-Designer_Function_Description_Area_Text=\uD574\uB2F9\uD074\uB798\uC2A4\uB294\uACC4\uC2B9\uD574\uC57C\uD55C\uB2E4."com.fr.script.AbstractFunction".\uCEF4\uD30C\uC77C\uD6C4\uC758\uD074\uB798\uC2A4\uD30C\uC77C\uC744~\uB85C\uBCF5\uC0AC\nJ2EE\uC11C\uBC84 "{R1}" \uB514\uB809\uD130\uB9AC, \uD544\uC694\uC2DC class \uC0C1\uC751\uD558\uB294 java\uC18C\uC2A4\uD30C\uC77C\uB3C4\uD574\uB2F9\uB514\uB809\uD130\uB9AC\uD558\uB2E8\uC5D0\uB450\uC5B4\uD3B8\uC9D1\uBC0F\uCC3E\uC544\uBCF4\uAE30\uB97C\uD560\uC218\uC788\uC2B5\uB2C8\uB2E4.\n\uC608: {R2} FR-Designer_PageSetup_Horizontal=\uAC00\uB85C FR-Designer_PageSetup_Vertical=\uC138\uB85C FR-Designer_Gradient_Direction=\uADF8\uB77C\uB370\uC774\uC158 \uBC29\uD5A5 @@ -536,6 +534,10 @@ FR-Designer_Show_As_Download=\uB2E4\uC6B4\uB85C\uB4DC\uB9C1\uD06C\uB85C2\uC9C4\u FR-Designer_File_Name_For_Download=\uB2E4\uC6B4\uB85C\uB4DC\uD30C\uC77C\uBA85 FR-Designer_No=\uC544\uB2C8\uC624 FR-Designer_Pagination=\uD398\uC774\uC9C0\uB098\uB204\uAE30 +FR-Designer-Move_Tab_First= +FR-Designer-Move_Tab_End= +FR-Designer-Move_Tab_Next= +FR-Designer-Move_Tab_Prev= FR-Designer_DS_TableData=\uB370\uC774\uD130\uC138\uD2B8 FR-Designer_Parameter-Formula=\uC218\uC2DD FR-Designer_Background_Null= @@ -549,11 +551,4 @@ FR-Designer_Background_Image_Select= FR-Designer_Initial_Background_Tips= FR-Designer_Mouse_Move_Tips= FR-Designer_Mouse_Click_Tips= -FR-Designer-Move_Tab_First= -FR-Designer-Move_Tab_End= -FR-Designer-Move_Tab_Next= -FR-Designer-Move_Tab_Prev= -FR-Designer_AxisReversed=\uCD95\uC5ED\uC21C -FR-Designer_Logarithmic=\uB85C\uADF8\uB208\uAE08 -FR-Designer_Chart_Log_Base=\uAE30\uC218 -FR-Designer_Chart_F_Radar_Axis=\uAC12\uCD95 +FR-Designer_Plugin_Should_Update_Please_Contact_Developer= \ No newline at end of file diff --git a/designer_base/src/com/fr/design/locale/designer_zh_CN.properties b/designer_base/src/com/fr/design/locale/designer_zh_CN.properties index 060eddbd74..726a6d0f61 100644 --- a/designer_base/src/com/fr/design/locale/designer_zh_CN.properties +++ b/designer_base/src/com/fr/design/locale/designer_zh_CN.properties @@ -91,7 +91,6 @@ FR-Designer_DS-Dictionary=\u6570\u636E\u5B57\u5178 FR-Designer_Data-confusion=\u6570\u636E\u6DF7\u6DC6 FR-Designer_Data_Type=\u6570\u636E\u7C7B\u578B FR-Designer_Double_Click_Edit_OR_Clear=\u53CC\u51FB\u8FDB\u884C\u7F16\u8F91\u6216\u6E05\u9664 -FR-Designer_Edit_Button_ToolBar=\u7F16\u8F91\u6309\u94AE\u6240\u5728\u5DE5\u5177\u680F FR-Designer_Email=\u90AE\u4EF6 FR-Designer_Enabled=\u53EF\u7528 FR-Designer_End-Date=\u7ED3\u675F\u65E5\u671F @@ -164,7 +163,6 @@ 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_Remove_Button_ToolBar=\u79FB\u9664\u6309\u94AE\u6240\u5728\u5DE5\u5177\u680F FR-Designer_ReportColumns-Columns=\u5206\u680F FR-Designer_Return-Date=\u8FD4\u56DE\u65E5\u671F FR-Designer_RichText=\u63D2\u5165\u5BCC\u6587\u672C @@ -555,7 +553,7 @@ FR-Designer_Property=\u5C5E\u6027 FR-Designer_ClassName=\u7C7B\u540D FR-Designer_Polyblock_Edit=\u805A\u5408\u5757\u7F16\u8F91 -FR-Designer_Function_Description_Area_Text=\u8BE5\u7C7B\u5FC5\u987B\u7EE7\u627F"com.fr.script.AbstractFunction"\u3002\u5E94\u5C06\u7F16\u8BD1\u540E\u7684\u7C7B\u6587\u4EF6\u62F7\u8D1D\u5230\nJ2EE\u670D\u52A1\u5668 "{R1}WEB-INF{R2}classes" \u76EE\u5F55\uFF0C\u5982\u679C\u5FC5\u8981\u7684\u8BDD\u5C06class\u5BF9\u5E94\u7684java\u6E90\u6587\u4EF6\u4E5F\u653E\u7F6E\u5230\u8BE5\u76EE\u5F55\u4E0B\u65B9\u4FBF\u7F16\u8F91\u548C\u67E5\u770B\u3002\n\u4F8B\u5982\uFF1A{R3}classes +FR-Designer_Function_Description_Area_Text=\u8BE5\u7C7B\u5FC5\u987B\u7EE7\u627F"com.fr.script.AbstractFunction"\u3002\u5E94\u5C06\u7F16\u8BD1\u540E\u7684\u7C7B\u6587\u4EF6\u62F7\u8D1D\u5230\nJ2EE\u670D\u52A1\u5668 "{R1}" \u76EE\u5F55\uFF0C\u5982\u679C\u5FC5\u8981\u7684\u8BDD\u5C06class\u5BF9\u5E94\u7684java\u6E90\u6587\u4EF6\u4E5F\u653E\u7F6E\u5230\u8BE5\u76EE\u5F55\u4E0B\u65B9\u4FBF\u7F16\u8F91\u548C\u67E5\u770B\u3002\n\u4F8B\u5982\uFF1A{R2} FR-Designer_PageSetup_Horizontal=\u6A2A\u5411 FR-Designer_PageSetup_Vertical=\u7EB5\u5411 FR-Designer_Gradient_Direction=\u6E10\u53D8\u65B9\u5411 @@ -569,12 +567,16 @@ FR-Designer_Show_As_Download=\u7528\u4E0B\u8F7D\u94FE\u63A5\u663E\u793A\u4E8C\u8 FR-Designer_File_Name_For_Download=\u4E0B\u8F7D\u6587\u4EF6\u540D FR-Designer_No=\u5426 FR-Designer_Pagination=\u5206\u9875 +FR-Designer-Move_Tab_First=\u79FB\u52A8\u5230\u9996\u4F4D +FR-Designer-Move_Tab_End=\u79FB\u52A8\u5230\u672B\u5C3E +FR-Designer-Move_Tab_Next=\u5F80\u540E\u79FB\u52A8 +FR-Designer-Move_Tab_Prev=\u5F80\u524D\u79FB\u52A8 FR-Designer_DS_TableData=\u6570\u636E\u96C6 FR-Designer_Parameter-Formula=\u516C\u5F0F FR-Designer_Plugin_Should_Update_Please_Contact_Developer=\u63D2\u4EF6\u7248\u672C\u8FC7\u4F4E, \u5B58\u5728API\u4E0D\u517C\u5BB9, \u8BF7\u8054\u7CFB\u5F00\u53D1\u8005\u5347\u7EA7\u63D2\u4EF6 FR-Designer_WidgetOrder=\u63A7\u4EF6\u987A\u5E8F FR-Designer_Mobile_Form_Analysis_Annotation=\u6CE8\u91CA\uFF1A\u53EF\u4EE5\u901A\u8FC7\u8BE5\u5C5E\u6027\u63A7\u5236\u8868\u5355\u5728APP\u4E2D\u7684\u89E3\u6790\u65B9\u5F0F\u3002 -FR-Designer_Mobile_Report_Analysis_Annotation=\u6CE8\u91CA\: \u53EF\u4EE5\u901A\u8FC7\u8BE5\u5C5E\u6027\u63A7\u5236\u62A5\u8868\u5728APP\u4E2D\u7684\u89E3\u6790\u65B9\u5F0F\uFF0C\u53EA\u652F\u6301\u5206\u9875\u9884\u89C8\uFF0C\u586B\u62A5\u9884\u89C8\u65F6\u5C5E\u6027\u65E0\u6548\u3002 +FR-Designer_Mobile_Report_Analysis_Annotation=\u6CE8\u91CA: \u53EF\u4EE5\u901A\u8FC7\u8BE5\u5C5E\u6027\u63A7\u5236\u62A5\u8868\u5728APP\u4E2D\u7684\u89E3\u6790\u65B9\u5F0F\uFF0C\u53EA\u652F\u6301\u5206\u9875\u9884\u89C8\uFF0C\u586B\u62A5\u9884\u89C8\u65F6\u5C5E\u6027\u65E0\u6548\u3002 FR-Designer_Background_Null=\u6CA1\u6709\u80CC\u666F FR-Designer_Background_Color=\u989C\u8272 FR-Designer_Background_Texture=\u7EB9\u7406 @@ -586,13 +588,3 @@ FR-Designer_Background_Image_Select=\u9009\u62E9\u56FE\u7247 FR-Designer_Initial_Background_Tips=\u6309\u94AE\u7684\u521D\u59CB\u80CC\u666F FR-Designer_Mouse_Move_Tips=\u9F20\u6807\u79FB\u52A8\u5230\u6309\u94AE\u4E0A\u7684\u80CC\u666F\uFF0C\u82E5\u65E0\u5219\u4E0D\u6539\u53D8\u80CC\u666F FR-Designer_Mouse_Click_Tips=\u9F20\u6807\u70B9\u51FB\u6309\u94AE\u65F6\u80CC\u666F\uFF0C\u82E5\u65E0\u5219\u4E0D\u6539\u53D8\u80CC\u666F -FR-Designer-Move_Tab_First=\u79FB\u52A8\u5230\u9996\u4F4D -FR-Designer-Move_Tab_End=\u79FB\u52A8\u5230\u672B\u5C3E -FR-Designer-Move_Tab_Next=\u5F80\u540E\u79FB\u52A8 -FR-Designer-Move_Tab_Prev=\u5F80\u524D\u79FB\u52A8 -FR-Designer_AxisReversed=\u8F74\u9006\u5E8F -FR-Designer_Logarithmic=\u5BF9\u6570\u523B\u5EA6 -FR-Designer_Chart_Log_Base=\u5E95\u6570 -FR-Designer_Chart_F_Radar_Axis=\u503C\u8F74 -FR-Designer_Too_Large_To_Paste=\u7EC4\u4EF6\u5927\u5C0F\u8D85\u51FA\u8FB9\u754C\uFF0C\u65E0\u6CD5\u7C98\u8D34\uFF01 -FR-Designer_Too_Small_To_Paste=\u6B64\u5904\u65E0\u6CD5\u7C98\u8D34\uFF0C\u5C0F\u4E8E\u7EC4\u4EF6\u6700\u5C0F\u9AD8\u5EA6\uFF01 diff --git a/designer_base/src/com/fr/design/locale/designer_zh_TW.properties b/designer_base/src/com/fr/design/locale/designer_zh_TW.properties index bb7ab2dc62..f8b28dba33 100644 --- a/designer_base/src/com/fr/design/locale/designer_zh_TW.properties +++ b/designer_base/src/com/fr/design/locale/designer_zh_TW.properties @@ -91,7 +91,6 @@ FR-Designer_DS-Dictionary=\u8CC7\u6599\u5B57\u5178 FR-Designer_Data-confusion=\u8CC7\u6599\u6DF7\u6DC6 FR-Designer_Data_Type=\u8CC7\u6599\u985E\u578B FR-Designer_Double_Click_Edit_OR_Clear=\u96D9\u64CA\u9032\u884C\u7DE8\u8F2F\u6216\u6E05\u9664 -FR-Designer_Edit_Button_ToolBar=\u7DE8\u8F2F\u6309\u9215\u6240\u5728\u5DE5\u5177\u6B04 FR-Designer_Email=\u90F5\u4EF6 FR-Designer_Enabled=\u53EF\u7528 FR-Designer_End-Date=\u7D50\u675F\u65E5\u671F @@ -163,7 +162,6 @@ 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_Remove_Button_ToolBar=\u79FB\u9664\u6309\u9215\u6240\u5728\u5DE5\u5177\u6B04 FR-Designer_ReportColumns-Columns=\u5831\u8868\u6B04\u4F4D FR-Designer_Return-Date=\u8FD4\u56DE\u65E5\u671F FR-Designer_RichText= RTF @@ -543,7 +541,7 @@ FR-Designer_Property=\u5C6C\u6027 FR-Designer_ClassName=\u985E\u540D FR-Designer_Polyblock_Edit=\u805A\u5408\u584A\u7DE8\u8F2F -FR-Designer_Function_Description_Area_Text=\u8A72\u985E\u5FC5\u9808\u7E7C\u627F"com.fr.script.AbstractFunction"\u3002\u61C9\u5C07\u7DE8\u8B6F\u5F8C\u7684\u985E\u6A94\u6848\u62F7\u8C9D\u5230\nJ2EE\u4F3A\u670D\u5668 "{R1}WEB-INF{R2}classes" \u76EE\u9304\uFF0C\u5982\u679C\u5FC5\u8981\u7684\u8A71\u5C07class\u5C0D\u61C9\u7684java\u539F\u59CB\u6A94\u6848\u4E5F\u653E\u7F6E\u5230\u8A72\u76EE\u9304\u4E0B\u65B9\u4FBF\u7DE8\u8F2F\u548C\u67E5\u770B\u3002\n\u4F8B\u5982\uFF1A{R3}classes +FR-Designer_Function_Description_Area_Text=\u8A72\u985E\u5FC5\u9808\u7E7C\u627F"com.fr.script.AbstractFunction"\u3002\u61C9\u5C07\u7DE8\u8B6F\u5F8C\u7684\u985E\u6A94\u6848\u62F7\u8C9D\u5230\nJ2EE\u4F3A\u670D\u5668 "{R1}" \u76EE\u9304\uFF0C\u5982\u679C\u5FC5\u8981\u7684\u8A71\u5C07class\u5C0D\u61C9\u7684java\u539F\u59CB\u6A94\u6848\u4E5F\u653E\u7F6E\u5230\u8A72\u76EE\u9304\u4E0B\u65B9\u4FBF\u7DE8\u8F2F\u548C\u67E5\u770B\u3002\n\u4F8B\u5982\uFF1A{R2} FR-Designer_PageSetup_Horizontal=\u6A2A\u5411 FR-Designer_PageSetup_Vertical=\u7E31\u5411 FR-Designer_Gradient_Direction=\u6F38\u8B8A\u65B9\u5411 @@ -557,9 +555,13 @@ FR-Designer_Show_As_Download=\u7528\u4E0B\u8F09\u93C8\u63A5\u986F\u793A\u4E8C\u9 FR-Designer_File_Name_For_Download=\u4E0B\u8F09\u6A94\u6848\u540D FR-Designer_No=\u5426 FR-Designer_Pagination=\u5206\u9801 +FR-Designer-Move_Tab_First=\u79FB\u52D5\u5230\u9996\u4F4D +FR-Designer-Move_Tab_End=\u79FB\u52D5\u5230\u672B\u5C3E +FR-Designer-Move_Tab_Next=\u5F80\u5F8C\u79FB\u52D5 +FR-Designer-Move_Tab_Prev=\u5F80\u524D\u79FB\u52D5 FR-Designer_DS_TableData=\u8CC7\u6599\u96C6 FR-Designer_Parameter-Formula=\u516C\u5F0F -FR-Designer_Plugin_Should_Update_Please_Contact_Developer=\u63D2\u4EF6\u7248\u672C\u904E\u4F4E, \u5B58\u5728API\u4E0D\u517C\u5BB9, \u8ACB\u806F\u7E6B\u958B\u767C\u8005\u5347\u7D1A\u63D2\u4EF6 +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\u6301\u5206\u9801\u9810\u89BD\uFF0C\u586B\u5831\u9810\u89BD\u6642\u5C6C\u6027\u7121\u6548\u3002 @@ -573,14 +575,4 @@ FR-Designer_Background_Clear= FR-Designer_Background_Image_Select= FR-Designer_Initial_Background_Tips= FR-Designer_Mouse_Move_Tips= -FR-Designer_Mouse_Click_Tips= -FR-Designer-Move_Tab_First=\u79FB\u52D5\u5230\u9996\u4F4D -FR-Designer-Move_Tab_End=\u79FB\u52D5\u5230\u672B\u5C3E -FR-Designer-Move_Tab_Next=\u5F80\u5F8C\u79FB\u52D5 -FR-Designer-Move_Tab_Prev=\u5F80\u524D\u79FB\u52D5 -FR-Designer_AxisReversed=\u8EF8\u9006\u5E8F -FR-Designer_Logarithmic=\u5C0D\u6578\u523B\u5EA6 -FR-Designer_Chart_Log_Base=\u5E95\u6578 -FR-Designer_Chart_F_Radar_Axis=\u503C\u8EF8 -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_Mouse_Click_Tips= \ No newline at end of file diff --git a/designer_chart/src/com/fr/design/chart/axis/MinMaxValuePane.java b/designer_chart/src/com/fr/design/chart/axis/MinMaxValuePane.java index 0c61e64f3f..7fc7d9db34 100644 --- a/designer_chart/src/com/fr/design/chart/axis/MinMaxValuePane.java +++ b/designer_chart/src/com/fr/design/chart/axis/MinMaxValuePane.java @@ -30,8 +30,7 @@ public class MinMaxValuePane extends JPanel { protected UICheckBox isCustomSecUnitBox; protected UITextField secUnitField; - - public MinMaxValuePane() { + public MinMaxValuePane() { minCheckBox = new UICheckBox(Inter.getLocText(new String[]{"Custom", "Min_Value"})); minValueField = new UITextField(6); maxCheckBox = new UICheckBox(Inter.getLocText(new String[]{"Custom", "Max_Value"})); @@ -40,45 +39,37 @@ public class MinMaxValuePane extends JPanel { mainUnitField = new UITextField(6); isCustomSecUnitBox = new UICheckBox(Inter.getLocText("FR-Chart_SecondGraduationUnit")); secUnitField = new UITextField(6); - - double p = TableLayout.PREFERRED; - double f = TableLayout.FILL; - double[] columnSize = {p, f}; - - Component[][] components = getPanelComponents(); - JPanel panel = TableLayoutHelper.createTableLayoutPane(components, getRowSize(p), columnSize); - this.setLayout(new BorderLayout()); - this.add(panel, BorderLayout.CENTER); - addComponentListener(components); - } - - protected double[] getRowSize(double p) { - return new double[]{p, p, p, p}; - } - - public void addComponentListener(Component[][] components) { - for (int i = 0; i < components.length; i++) { - ((UICheckBox) components[i][0]).addActionListener(new ActionListener() { - - @Override - public void actionPerformed(ActionEvent e) { - checkBoxUse(); - } - }); - ChartSwingUtils.addListener((UICheckBox) components[i][0], (UITextField) components[i][1]); - } - } - - protected Component[][] getPanelComponents() { - return new Component[][]{ + double p = TableLayout.PREFERRED; + double f = TableLayout.FILL; + double[] columnSize = { p, f }; + double[] rowSize = { p, p, p, p}; + + Component[][] components = getPanelComponents(); + JPanel panel = TableLayoutHelper.createTableLayoutPane(components ,rowSize,columnSize); + this.setLayout(new BorderLayout()); + this.add(panel,BorderLayout.CENTER); + + for(int i = 0; i < components.length; i++) { + ((UICheckBox)components[i][0]).addActionListener(new ActionListener() { + + @Override + public void actionPerformed(ActionEvent e) { + checkBoxUse(); + } + }); + ChartSwingUtils.addListener((UICheckBox)components[i][0], (UITextField)components[i][1]); + } + } + protected Component[][] getPanelComponents() { + return new Component[][]{ new Component[]{minCheckBox, minValueField}, new Component[]{maxCheckBox, maxValueField}, new Component[]{isCustomMainUnitBox, mainUnitField}, new Component[]{isCustomSecUnitBox, secUnitField}, - }; - } + }; + } - protected void checkBoxUse() { + private void checkBoxUse() { minValueField.setEnabled(minCheckBox.isSelected()); maxValueField.setEnabled(maxCheckBox.isSelected()); @@ -109,7 +100,7 @@ public class MinMaxValuePane extends JPanel { if(axis.getMinValue() != null) { minValueField.setText(axis.getMinValue().toString()); } - } + } // 最大值 if (axis.isCustomMaxValue()) { @@ -117,7 +108,7 @@ public class MinMaxValuePane extends JPanel { if(axis.getMaxValue() != null) { maxValueField.setText(axis.getMaxValue().toString()); } - } + } // 主次刻度单位 if (axis.isCustomMainUnit()) { @@ -125,7 +116,7 @@ public class MinMaxValuePane extends JPanel { if(axis.getMainUnit() != null) { mainUnitField.setText(axis.getMainUnit().toString()); } - } + } if(axis.isCustomSecUnit()) { isCustomSecUnitBox.setSelected(true); @@ -158,7 +149,7 @@ public class MinMaxValuePane extends JPanel { updateUnit(axis); } - protected void updateUnit(Axis axis) { + private void updateUnit(Axis axis) { // 主要刻度 if (isCustomMainUnitBox.isSelected()){ String increment = mainUnitField.getText(); diff --git a/designer_form/src/com/fr/design/designer/beans/adapters/layout/FRAbsoluteLayoutAdapter.java b/designer_form/src/com/fr/design/designer/beans/adapters/layout/FRAbsoluteLayoutAdapter.java index 603626e13d..7810fc9a6f 100644 --- a/designer_form/src/com/fr/design/designer/beans/adapters/layout/FRAbsoluteLayoutAdapter.java +++ b/designer_form/src/com/fr/design/designer/beans/adapters/layout/FRAbsoluteLayoutAdapter.java @@ -1,346 +1,354 @@ -package com.fr.design.designer.beans.adapters.layout; - -import com.fr.design.beans.GroupModel; -import com.fr.design.designer.beans.ConstraintsGroupModel; -import com.fr.design.designer.beans.HoverPainter; -import com.fr.design.designer.beans.painters.FRAbsoluteLayoutPainter; -import com.fr.design.designer.creator.*; -import com.fr.design.designer.properties.BoundsGroupModel; -import com.fr.design.designer.properties.FRAbsoluteLayoutPropertiesGroupModel; -import com.fr.design.utils.ComponentUtils; -import com.fr.design.utils.gui.LayoutUtils; -import com.fr.form.ui.container.WAbsoluteLayout; -import com.fr.general.ComparatorUtils; -import com.fr.general.FRLogger; - -import java.awt.*; - -public class FRAbsoluteLayoutAdapter extends FRBodyLayoutAdapter { - //是不是添加到父容器上 - private boolean isAdd2ParentLayout = false; - private HoverPainter painter; - - public FRAbsoluteLayoutAdapter(XLayoutContainer container) { - super(container); - painter = new FRAbsoluteLayoutPainter(container); - initMinSize(); - } - - private void initMinSize() { - XWAbsoluteLayout layout = (XWAbsoluteLayout) container; - minWidth = layout.getActualMinWidth(); - minHeight = layout.getActualMinHeight(); - actualVal = layout.getAcualInterval(); - margin = layout.toData().getMargin(); - } - - @Override - public HoverPainter getPainter() { - return painter; - } - - /** - * 是否能在指定位置添加组件 - * - * @param creator 组件 - * @param x 坐标x - * @param y 坐标y - * @return 能则返回true - */ - //这个地方的逻辑非常复杂, - // 1.当前绝对布局是不可编辑且是最外层,那么其他控件添加在它周围, - // 2.当前绝对布局是不可编辑且不是最外层,那么控件不可添加,(嵌套) - // 3.当前绝对布局可编辑,那么控件添加 - @Override - public boolean accept(XCreator creator, int x, int y) { - Component comp = container.getComponentAt(x, y); - //布局控件要先判断是不是可编辑 - //可以编辑,按原有逻辑判断 - //不可编辑,当成一整个控件处理 - if (comp == null) { - return false; - } - //参数面板内的组件不允许拖往绝对布局中 - if (creator.getParent() != null && ((XCreator) creator.getParent()).acceptType(XWParameterLayout.class)) { - Rectangle rec = creator.getBounds(); - rec.y = creator.getParent().getHeight() - rec.height; - creator.setBounds(rec); - return false; - } - //判断组件能不能拖入绝对布局 - if (!creator.canEnterIntoAbsolutePane()) { - return false; - } - XLayoutContainer topLayout = XCreatorUtils.getHotspotContainer((XCreator) comp).getTopLayout(); - if (topLayout != null) { - if (topLayout.isEditable()) { - return topLayoutAccept(creator, x, y); - } - //绝对布局嵌套,处于内层,不可编辑,不添加,topLayout只能获取到最外层可编辑的布局 - else if (((XLayoutContainer) topLayout.getParent()).acceptType(XWAbsoluteLayout.class)) { - return false; - } else { - return acceptWidget(x, y); - } - } else { - FRLogger.getLogger().error("top layout is null!"); - } - - return false; - } - - //topLayout假如可以编辑的话就往里面添加组件 - private boolean topLayoutAccept(XCreator creator, int x, int y) { - //允许组件重叠,可以不判断有没有和当前控件重叠 - //先计算当前控件的位置 - int creatorX, creatorY; - if (XCreatorUtils.getParentXLayoutContainer(creator) != null) { - Rectangle creatorRectangle = ComponentUtils.getRelativeBounds(creator); - creatorX = creatorRectangle.x; - creatorY = creatorRectangle.y; - } else { - //这边计算得到的组件其实位置是正确的, - //因为传入的x和y已经加上了宽度或者高度的一半,再减去相同的宽度和高度的一半是没区别的, - // 例如高度为21,那么就是+10-10; - // 高度为20,那么就是+10-10; 没区别 - int w = creator.getWidth() / 2; - int h = creator.getHeight() / 2; - creatorX = x - w; - creatorY = y - h; - } - if (creatorX < 0 || creatorX + creator.getWidth() > container.getWidth()) { - return false; - } - if (creatorY < 0 || creatorY + creator.getHeight() > container.getHeight()) { - return false; - } - return x >= 0 && y >= 0 && creator.getHeight() <= container.getHeight() - && creator.getWidth() <= container.getWidth(); - } - - /** - * 判断是否鼠标在组件的三等分区域,如果组件在布局管理器中间,上下左右都可能会三等分 - * - * @param parentComp 鼠标所在区域的组件 - * @param x 坐标x - * @param y 坐标y - * @return 是则返回true - */ - public boolean isTrisectionArea(Component parentComp, int x, int y) { - XCreator creator = (XCreator) parentComp; - trisectAreaDirect = 0; - if (container.getComponentCount() <= 1) { - return false; - } - int maxWidth = parentComp.getWidth(); - int maxHeight = parentComp.getHeight(); - int xL = parentComp.getX(); - int yL = parentComp.getY(); - // 组件宽高的十分之一和默认值取大 - int minRangeWidth = Math.max(maxWidth / BORDER_PROPORTION, DEFAULT_AREA_LENGTH); - int minRangeHeight = Math.max(maxHeight / BORDER_PROPORTION, DEFAULT_AREA_LENGTH); - if (y < yL + minRangeHeight) { - // 在组件上侧三等分 - trisectAreaDirect = COMP_TOP; - } else if (y > yL + maxHeight - minRangeHeight) { - // 在组件下侧三等分 - trisectAreaDirect = COMP_BOTTOM; - } else if (x < xL + minRangeWidth) { - // 在组件左侧三等分 - trisectAreaDirect = COMP_LEFT; - } else if (x > xL + maxWidth - minRangeWidth) { - // 在组件右侧三等分 - trisectAreaDirect = COMP_RIGHT; - } - // tab布局的边界特殊处理,不进行三等分 - if (!creator.getTargetChildrenList().isEmpty()) { - return false; - } - - return !ComparatorUtils.equals(trisectAreaDirect, 0); - } - - //当前绝对布局不可编辑,就当成一个控件,组件添加在周围 - private boolean acceptWidget(int x, int y) { - isFindRelatedComps = false; - //拖入组件判断时,先判断是否为交叉点区域,其次三等分区域,再次平分区域 - Component comp = container.getComponentAt(x, y); - //如果当前处于边缘地带, 那么就把他贴到父容器上 - XLayoutContainer parent = container.findNearestFit(); - container = parent != null ? parent : container; - isAdd2ParentLayout = true; - - int componentHeight = comp.getHeight(); - int componentWidth = comp.getWidth(); - //上半部分高度 - int upHeight = (int) (componentHeight * TOP_HALF) + comp.getY(); - //下半部分高度 - int downHeight = (int) (componentHeight * BOTTOM_HALF) + comp.getY(); - - if (isCrossPointArea(comp, x, y)) { - return canAcceptWhileCrossPoint(comp, x, y); - } - - if (isTrisectionArea(comp, x, y)) { - return canAcceptWhileTrisection(comp, x, y); - } - - boolean horizonValid = componentWidth >= minWidth * 2 + actualVal; - boolean verticalValid = componentHeight >= minHeight * 2 + actualVal; - return y > upHeight && y < downHeight ? horizonValid : verticalValid; - } - - /** - * 组件的ComponentAdapter在添加组件时,如果发现布局管理器不为空,会继而调用该布局管理器的 - * addComp方法来完成组件的具体添加。在该方法内,布局管理器可以提供额外的功能。 - * - * @param creator 被添加的新组件 - * @param x 添加的位置x,该位置是相对于container的 - * @param y 添加的位置y,该位置是相对于container的 - * @return 是否添加成功,成功返回true,否则false - */ - @Override - public boolean addBean(XCreator creator, int x, int y) { - Rectangle rect = ComponentUtils.getRelativeBounds(container); - - int posX = x + rect.x; - int posY = y + rect.y; - if (!accept(creator, x, y)) { - return false; - } - addComp(creator, posX, posY); - ((XWidgetCreator) creator).recalculateChildrenSize(); - return true; - } - - @Override - protected void addComp(XCreator creator, int x, int y) { - if (!isAdd2ParentLayout) { - Rectangle r = ComponentUtils.getRelativeBounds(container); - x = x - r.x; - y = y - r.y; - if (XCreatorUtils.getParentXLayoutContainer(creator) != null) { - - Rectangle creatorRectangle = ComponentUtils.getRelativeBounds(creator); - x = creatorRectangle.x - r.x; - y = creatorRectangle.y - r.y; - } else { - int w = creator.getWidth() / 2; - int h = creator.getHeight() / 2; - x = x - w; - y = y - h; - } - fix(creator, x, y); - - if (creator.hasTitleStyle()) { - addParentCreator(creator); - } else { - container.add(creator, creator.toData().getWidgetName()); - } - XWAbsoluteLayout layout = (XWAbsoluteLayout) container; - layout.updateBoundsWidget(creator); - updateCreatorBackBound(); - LayoutUtils.layoutRootContainer(container); - } else { - fixAbsolute(creator, x, y); - if (creator.shouldScaleCreator() || creator.hasTitleStyle()) { - addParentCreator(creator); - } else { - container.add(creator, creator.toData().getWidgetName()); - } - XWFitLayout layout = (XWFitLayout) container; - // 更新对应的BoundsWidget - layout.updateBoundsWidget(); - updateCreatorBackBound(); - } - } - - private void updateCreatorBackBound() { - for (int i = 0, size = container.getComponentCount(); i < size; i++) { - XCreator creator = (XCreator) container.getComponent(i); - creator.updateChildBound(minHeight); - creator.setBackupBound(creator.getBounds()); - } - } - - private void addParentCreator(XCreator child) { - XLayoutContainer parentPanel = child.initCreatorWrapper(child.getHeight()); - container.add(parentPanel, child.toData().getWidgetName()); - } - - /** - * 新拖入组件时,计算调整其他关联组件位置大小 - * - * @param child 新拖入的组件 - * @param x 鼠标所在x坐标 - * @param y 鼠标所在y坐标 - */ - private void fixAbsolute(XCreator child, int x, int y) { - Component parentComp = container.getComponentAt(x, y); - if (container.getComponentCount() == 0) { - child.setLocation(0, 0); - child.setSize(parentComp.getWidth(), parentComp.getHeight()); - } else if (isCrossPointArea(parentComp, x, y)) { - //交叉区域插入组件时,根据具体位置进行上下或者左右或者相邻三个组件的位置大小插入 - fixCrossPointArea(parentComp, child, x, y); - return; - } else if (isTrisectionArea(parentComp, x, y)) { - // 在边界三等分区域,就不再和组件二等分了 - fixTrisect(parentComp, child, x, y); - return; - } else { - fixHalve(parentComp, child, x, y); - } - } - - /** - * 组件拖拽后调整大小 - * - * @param creator 组件 - */ - @Override - public void fix(XCreator creator) { - WAbsoluteLayout wabs = (WAbsoluteLayout) container.toData(); - fix(creator, creator.getX(), creator.getY()); - wabs.setBounds(creator.toData(), creator.getBounds()); - - XWAbsoluteLayout layout = (XWAbsoluteLayout) container; - layout.updateBoundsWidget(creator); - } - - /** - * 调整组件大小到合适尺寸位置 - * - * @param creator 组件 - * @param x 坐标x - * @param y 坐标y - */ - public void fix(XCreator creator, int x, int y) { - int height = creator.getHeight(); - int width = creator.getWidth(); - if (x < 0) { - x = container.getX(); - } else if (x + creator.getWidth() > container.getWidth()) { - x = container.getWidth() - width; - } - - if (y < 0) { - y = container.getY(); - } else if (y + creator.getHeight() > container.getHeight()) { - y = container.getHeight() - height; - } - - creator.setBounds(x, y, width, height); - } - - @Override - public ConstraintsGroupModel getLayoutConstraints(XCreator creator) { - return new BoundsGroupModel((XWAbsoluteLayout) container, creator); - } - - @Override - public GroupModel getLayoutProperties() { - XWAbsoluteLayout xwAbsoluteLayout = (XWAbsoluteLayout) container; - return new FRAbsoluteLayoutPropertiesGroupModel(xwAbsoluteLayout); - } +package com.fr.design.designer.beans.adapters.layout; + +import java.awt.*; + +import com.fr.design.beans.GroupModel; +import com.fr.design.designer.beans.ConstraintsGroupModel; +import com.fr.design.designer.beans.HoverPainter; +import com.fr.design.designer.beans.painters.FRAbsoluteLayoutPainter; +import com.fr.design.designer.creator.*; +import com.fr.design.designer.properties.BoundsGroupModel; +import com.fr.design.designer.properties.FRAbsoluteLayoutPropertiesGroupModel; +import com.fr.form.ui.container.WAbsoluteLayout; +import com.fr.design.utils.ComponentUtils; +import com.fr.design.utils.gui.LayoutUtils; +import com.fr.general.ComparatorUtils; +import com.fr.form.ui.container.WAbsoluteLayout.BoundsWidget; +import com.fr.general.FRLogger; + +public class FRAbsoluteLayoutAdapter extends FRBodyLayoutAdapter { + //是不是添加到父容器上 + private boolean isAdd2ParentLayout = false; + private HoverPainter painter; + + public FRAbsoluteLayoutAdapter(XLayoutContainer container) { + super(container); + painter = new FRAbsoluteLayoutPainter(container); + initMinSize(); + } + + private void initMinSize() { + XWAbsoluteLayout layout = (XWAbsoluteLayout) container; + minWidth = layout.getActualMinWidth(); + minHeight = layout.getActualMinHeight(); + actualVal = layout.getAcualInterval(); + margin = layout.toData().getMargin(); + } + + @Override + public HoverPainter getPainter() { + return painter; + } + + /** + * 是否能在指定位置添加组件 + * @param creator 组件 + * @param x 坐标x + * @param y 坐标y + * @return 能则返回true + */ + //这个地方的逻辑非常复杂, + // 1.当前绝对布局是不可编辑且是最外层,那么其他控件添加在它周围, + // 2.当前绝对布局是不可编辑且不是最外层,那么控件不可添加,(嵌套) + // 3.当前绝对布局可编辑,那么控件添加 + @Override + public boolean accept(XCreator creator, int x, int y) { + Component comp = container.getComponentAt(x, y); + //布局控件要先判断是不是可编辑 + //可以编辑,按原有逻辑判断 + //不可编辑,当成一整个控件处理 + if (comp == null){ + return false; + } + //参数面板内的组件不允许拖往绝对布局中 + if (creator.getParent() != null && ((XCreator)creator.getParent()).acceptType(XWParameterLayout.class)){ + Rectangle rec = creator.getBounds(); + rec.y = creator.getParent().getHeight() - rec.height; + creator.setBounds(rec); + return false; + } + //判断下组件能不能拖入绝对布局 + if (!creator.canEnterIntoAbsolutePane()){ + return false; + } + XLayoutContainer topLayout = XCreatorUtils.getHotspotContainer((XCreator)comp).getTopLayout(); + if(topLayout != null){ + if (topLayout.isEditable()){ + return topLayoutAccept(creator, x, y, topLayout); + } + //绝对布局嵌套,处于内层,不可编辑,不添加,topLayout只能获取到最外层可编辑的布局 + else if (((XLayoutContainer)topLayout.getParent()).acceptType(XWAbsoluteLayout.class)) { + return false; + } + else { + return acceptWidget(creator, x, y); + } + } + else{ + FRLogger.getLogger().error("top layout is null!"); + } + + return false; + } + + //toplayout假如可以编辑的话就往里面添加组件 + private boolean topLayoutAccept(XCreator creator, int x, int y, XLayoutContainer topLayout) { + //判断有没有和当前控件重叠 + //先计算当前控件的位置 + int creatorX, creatorY; + if (XCreatorUtils.getParentXLayoutContainer(creator) != null) { + + Rectangle creatorRectangle = ComponentUtils.getRelativeBounds(creator); + creatorX = creatorRectangle.x; + creatorY = creatorRectangle.y; + } else { + int w = creator.getWidth() / 2; + int h = creator.getHeight() / 2; + creatorX = x - w; + creatorY = y - h; + } + //再判断和布局中其他控件重叠 + Rectangle curRec = new Rectangle(creatorX, creatorY, creator.getWidth(), creator.getHeight()); + WAbsoluteLayout wAbsoluteLayout = (WAbsoluteLayout)topLayout.toData(); + for (int i = 0, count = wAbsoluteLayout.getWidgetCount(); i < count; i++) { + BoundsWidget temp = (BoundsWidget) wAbsoluteLayout.getWidget(i); + Rectangle rectangle = temp.getBounds(); + if (curRec.intersects(rectangle)){ + return false; + } + } + if (creatorX < 0 || creatorX + creator.getWidth() > container.getWidth()) { + return false; + } + if (creatorY < 0 || creatorY + creator.getHeight() > container.getHeight()){ + return false; + } + return x >= 0 && y >= 0 && creator.getHeight() <= container.getHeight() + && creator.getWidth() <= container.getWidth(); + } + + /** + * 判断是否鼠标在组件的三等分区域,如果组件在布局管理器中间,上下左右都可能会三等分 + * @param parentComp 鼠标所在区域的组件 + * @param x 坐标x + * @param y 坐标y + * @return 是则返回true + */ + public boolean isTrisectionArea(Component parentComp, int x, int y) { + XCreator creator = (XCreator)parentComp; + trisectAreaDirect = 0; + if (container.getComponentCount()<=1) { + return false; + } + int maxWidth = parentComp.getWidth(); + int maxHeight = parentComp.getHeight(); + int xL = parentComp.getX(); + int yL = parentComp.getY(); + // 组件宽高的十分之一和默认值取大 + int minRangeWidth = Math.max(maxWidth/BORDER_PROPORTION, DEFAULT_AREA_LENGTH); + int minRangeHeight = Math.max(maxHeight/BORDER_PROPORTION, DEFAULT_AREA_LENGTH); + if(yyL+maxHeight-minRangeHeight) { + // 在组件下侧三等分 + trisectAreaDirect = COMP_BOTTOM; + } else if (xxL+maxWidth-minRangeWidth) { + // 在组件右侧三等分 + trisectAreaDirect = COMP_RIGHT; + } + // tab布局的边界特殊处理,不进行三等分 + if(!creator.getTargetChildrenList().isEmpty()){ + return false; + } + + return !ComparatorUtils.equals(trisectAreaDirect, 0); + } + + //当前绝对布局不可编辑,就当成一个控件,组件添加在周围 + private boolean acceptWidget(XCreator creator, int x, int y){ + isFindRelatedComps = false; + //拖入组件判断时,先判断是否为交叉点区域,其次三等分区域,再次平分区域 + Component comp = container.getComponentAt(x, y); + boolean isMatchEdge = false; + //如果当前处于边缘地带, 那么就把他贴到父容器上 + XLayoutContainer parent = container.findNearestFit(); + container = parent != null ? parent : container; + isAdd2ParentLayout = true; + + int componentHeight = comp.getHeight(); + int componentWidth = comp.getWidth(); + //上半部分高度 + int upHeight = (int) (componentHeight * TOP_HALF) + comp.getY(); + //下半部分高度 + int downHeight = (int) (componentHeight * BOTTOM_HALF) + comp.getY(); + + if (isCrossPointArea(comp, x, y)) { + return canAcceptWhileCrossPoint(comp, x, y); + } + + if (isTrisectionArea(comp, x, y)) { + return canAcceptWhileTrisection(comp, x, y); + } + + boolean horizonValid = componentWidth >= minWidth * 2 + actualVal; + boolean verticalValid = componentHeight >= minHeight * 2 + actualVal; + return y > upHeight && y < downHeight ? horizonValid : verticalValid; + } + + /** + * 组件的ComponentAdapter在添加组件时,如果发现布局管理器不为空,会继而调用该布局管理器的 + * addComp方法来完成组件的具体添加。在该方法内,布局管理器可以提供额外的功能。 + * + * @param creator 被添加的新组件 + * @param x 添加的位置x,该位置是相对于container的 + * @param y 添加的位置y,该位置是相对于container的 + * @return 是否添加成功,成功返回true,否则false + */ + @Override + public boolean addBean(XCreator creator, int x, int y) { + Rectangle rect = ComponentUtils.getRelativeBounds(container); + + int posX = x + rect.x; + int posY = y + rect.y; + if (!accept(creator, x, y)) { + return false; + } + addComp(creator, posX, posY); + ((XWidgetCreator) creator).recalculateChildrenSize(); + return true; + } + + @Override + protected void addComp(XCreator creator, int x, int y) { + if(!isAdd2ParentLayout) { + Rectangle r = ComponentUtils.getRelativeBounds(container); + x = x - r.x; + y = y - r.y; + if (XCreatorUtils.getParentXLayoutContainer(creator) != null) { + + Rectangle creatorRectangle = ComponentUtils.getRelativeBounds(creator); + x = creatorRectangle.x - r.x; + y = creatorRectangle.y - r.y; + } else { + int w = creator.getWidth() / 2; + int h = creator.getHeight() / 2; + x = x - w; + y = y - h; + } + fix(creator, x, y); + + if (creator.hasTitleStyle()) { + addParentCreator(creator); + } else { + container.add(creator, creator.toData().getWidgetName()); + } + XWAbsoluteLayout layout = (XWAbsoluteLayout) container; + layout.updateBoundsWidget(creator); + updateCreatorBackBound(); + LayoutUtils.layoutRootContainer(container); + }else{ + fixAbsolute(creator, x, y); + if (creator.shouldScaleCreator() || creator.hasTitleStyle()) { + addParentCreator(creator); + } else { + container.add(creator, creator.toData().getWidgetName()); + } + XWFitLayout layout = (XWFitLayout) container; + // 更新对应的BoundsWidget + layout.updateBoundsWidget(); + updateCreatorBackBound(); + } + } + + private void updateCreatorBackBound() { + for (int i=0,size=container.getComponentCount(); i container.getWidth()) { + width = container.getWidth() - x; + } + + if (y < 0) { + height += y; + y = 0; + } else if (y + creator.getHeight() > container.getHeight()) { + height = container.getHeight() - y; + } + + creator.setBounds(x, y, width, height); + } + + @Override + public ConstraintsGroupModel getLayoutConstraints(XCreator creator) { + return new BoundsGroupModel((XWAbsoluteLayout)container, creator); + } + + @Override + public GroupModel getLayoutProperties() { + XWAbsoluteLayout xwAbsoluteLayout = (XWAbsoluteLayout) container; + return new FRAbsoluteLayoutPropertiesGroupModel(xwAbsoluteLayout); + } } \ No newline at end of file diff --git a/designer_form/src/com/fr/design/designer/beans/adapters/layout/FRFitLayoutAdapter.java b/designer_form/src/com/fr/design/designer/beans/adapters/layout/FRFitLayoutAdapter.java index eca82e5022..7401b8d077 100644 --- a/designer_form/src/com/fr/design/designer/beans/adapters/layout/FRFitLayoutAdapter.java +++ b/designer_form/src/com/fr/design/designer/beans/adapters/layout/FRFitLayoutAdapter.java @@ -1,1189 +1,1198 @@ -/** - * - */ -package com.fr.design.designer.beans.adapters.layout; - -import com.fr.design.beans.GroupModel; -import com.fr.design.designer.beans.ConstraintsGroupModel; -import com.fr.design.designer.beans.HoverPainter; -import com.fr.design.designer.beans.painters.FRFitLayoutPainter; -import com.fr.design.designer.creator.XCreator; -import com.fr.design.designer.creator.XCreatorUtils; -import com.fr.design.designer.creator.XLayoutContainer; -import com.fr.design.designer.creator.XWFitLayout; -import com.fr.design.designer.creator.cardlayout.XWCardLayout; -import com.fr.design.designer.creator.cardlayout.XWCardMainBorderLayout; -import com.fr.design.designer.creator.cardlayout.XWTabFitLayout; -import com.fr.design.designer.properties.FRFitLayoutConstraints; -import com.fr.design.designer.properties.FRFitLayoutPropertiesGroupModel; -import com.fr.design.file.HistoryTemplateListPane; -import com.fr.design.mainframe.JForm; -import com.fr.design.utils.ComponentUtils; -import com.fr.form.ui.LayoutBorderStyle; -import com.fr.form.ui.container.WLayout; -import com.fr.form.ui.container.cardlayout.WCardMainBorderLayout; -import com.fr.form.ui.widget.BoundsWidget; -import com.fr.general.ComparatorUtils; - -import java.awt.*; -import java.util.ArrayList; -import java.util.List; - -/** - * 自适应布局的容器适配器 - * - * @author jim - * @date 2014-6-24 - */ -public class FRFitLayoutAdapter extends FRBodyLayoutAdapter { - - public static final String WIDGETPANEICONPATH = "/com/fr/web/images/form/resources/layout_absolute.png"; - private static final int DEPENDING_SCOPE = 3; - private HoverPainter painter; - //区分拖拽和编辑宽高 - private boolean isEdit; - - public boolean isEdit() { - return isEdit; - } - - public void setEdit(boolean edit) { - isEdit = edit; - } - - /** - * 构造函数 - * - * @param container XWFitLayout容器 - */ - public FRFitLayoutAdapter(XLayoutContainer container) { - super(container); - painter = new FRFitLayoutPainter(container); - initMinSize(); - } - - private void initMinSize() { - XWFitLayout layout = (XWFitLayout) container; - minWidth = layout.getActualMinWidth(); - minHeight = layout.getActualMinHeight(); - actualVal = layout.getAcualInterval(); - margin = layout.toData().getMargin(); - } - - @Override - public HoverPainter getPainter() { - return painter; - } - - /** - * 返回布局自身属性,方便一些特有设置在layout刷新时处理 - */ - @Override - public GroupModel getLayoutProperties() { - XWFitLayout xfl = (XWFitLayout) container; - return new FRFitLayoutPropertiesGroupModel(xfl); - } - - /** - * 添加组件 - * - * @param child 待添加的组件 - * @param x 坐标x - * @param y 坐标y - */ - @Override - public void addComp(XCreator child, int x, int y) { - fix(child, x, y); - if (child.shouldScaleCreator() || child.hasTitleStyle()) { - addParentCreator(child); - } else { - container.add(child, child.toData().getWidgetName()); - } - XWFitLayout layout = (XWFitLayout) container; - // 更新对应的BoundsWidget - layout.updateBoundsWidget(); - updateCreatorBackBound(); - } - - public void updateCreatorBackBound() { - for (int i = 0, size = container.getComponentCount(); i < size; i++) { - XCreator creator = (XCreator) container.getComponent(i); - creator.updateChildBound(minHeight); - creator.setBackupBound(creator.getBounds()); - } - } - - - private void addParentCreator(XCreator child) { - XLayoutContainer parentPanel = child.initCreatorWrapper(minHeight); - container.add(parentPanel, child.toData().getWidgetName()); - } - - /** - * 能否对应位置放置当前组件 - * - * @param creator 组件 - * @param x 添加的位置x,该位置是相对于container的 - * @param y 添加的位置y,该位置是相对于container的 - * @return 是否可以放置 - */ - @Override - public boolean accept(XCreator creator, int x, int y) { - // 计算是否能拖入鼠标区域时,会用到fix 的方法 - isFindRelatedComps = false; - //拖入组件判断时,先判断是否为交叉点区域,其次三等分区域,再次平分区域 - Component comp = container.getComponentAt(x, y); - if (comp == null || checkInterval(comp)) { - return false; - } - //如果当前处于边缘地带, 那么就把他贴到父容器上 - boolean isMatchEdge = matchEdge(x, y); - - int componentHeight = comp.getHeight(); - int componentWidth = comp.getWidth(); - //上半部分高度 - int upHeight = (int) (componentHeight * TOP_HALF) + comp.getY(); - //下半部分高度 - int downHeight = (int) (componentHeight * BOTTOM_HALF) + comp.getY(); - - //布局控件要先判断是不是可编辑 - XLayoutContainer topLayout = XCreatorUtils.getHotspotContainer((XCreator) comp).getTopLayout(); - if (topLayout != null && !isMatchEdge && !topLayout.isEditable()) { - return false; - } - - if (isCrossPointArea(comp, x, y)) { - return canAcceptWhileCrossPoint(comp, x, y); - } - - if (isTrisectionArea(comp, x, y)) { - return canAcceptWhileTrisection(comp, x, y); - } - - boolean horizonValid = componentWidth >= minWidth * 2 + actualVal; - boolean verticalValid = componentHeight >= minHeight * 2 + actualVal; - return y > upHeight && y < downHeight ? horizonValid : verticalValid; - } - - // 间隔区域 - private boolean checkInterval(Component comp) { - return container.getComponentCount() > 0 && comp == container; - } - - /** - * 是否在组件边缘 - * - * @param x 横坐标 - * @param y 纵坐标 - * @return 是否在组件边缘 - */ - public boolean matchEdge(int x, int y) { - if (intersectsEdge(x, y, container)) { - //寻找最近的fit, 在边缘地段添加的控件, 将其送给该fit - XLayoutContainer parent = container.findNearestFit(); - container = parent != null ? parent : container; - return true; - } - return false; - } - - /** - * 是否在组件边缘 - * - * @param x 横坐标 - * @param y 纵坐标 - * @param container 参照组件 - * @return 是否在组件边缘 - */ - //是否包含于边缘地段, 按顺序上, 下, 左, 右检测 - public boolean intersectsEdge(int x, int y, XLayoutContainer container) { - int containerX = container.getX(); - int containerY = container.getY(); - int containerWidth = container.getWidth(); - int containerHeight = container.getHeight(); - - // 当前坐标点 - Rectangle currentXY = new Rectangle(x, y, 1, 1); - // 上边缘 - Rectangle upEdge = new Rectangle(containerX, containerY, containerWidth, BORDER_PROPORTION); - if (upEdge.intersects(currentXY)) { - return true; - } - - int bottomY = containerY + containerHeight - BORDER_PROPORTION; - // 下边缘 - Rectangle bottomEdge = new Rectangle(containerX, bottomY, containerWidth, BORDER_PROPORTION); - if (bottomEdge.intersects(currentXY)) { - return true; - } - - //左右边缘的高度 -10*2 是为了不和上下边缘重合 - int verticalHeight = containerHeight - BORDER_PROPORTION * 2; - int leftY = containerY + BORDER_PROPORTION; - // 左边缘 - Rectangle leftEdge = new Rectangle(containerX, leftY, BORDER_PROPORTION, verticalHeight); - if (leftEdge.intersects(currentXY)) { - return true; - } - - int rightY = containerY + BORDER_PROPORTION; - int rightX = containerX + containerWidth - BORDER_PROPORTION; - // 右边缘 - Rectangle rightEdge = new Rectangle(rightX, rightY, BORDER_PROPORTION, verticalHeight); - return rightEdge.intersects(currentXY); - } - - /** - * 交叉点区域时,能否对应位置放入组件 - */ - protected boolean canAcceptWhileCrossPoint(Component comp, int x, int y) { - return super.canAcceptWhileCrossPoint(comp, x, y); - } - - protected boolean canAcceptWhileTrisection(Component comp, int x, int y) { - return super.canAcceptWhileTrisection(comp, x, y); - } - - /** - * 判断是否鼠标在组件的三等分区域,如果组件在布局管理器中间,上下左右都可能会三等分 - * - * @param parentComp 鼠标所在区域的组件 - * @param x 坐标x - * @param y 坐标y - * @return 是则返回true - */ - public boolean isTrisectionArea(Component parentComp, int x, int y) { - return super.isTrisectionArea(parentComp, x, y); - } - - /** - * 是否为组件交叉点区域 或者是相邻三组建中间点 - * - * @param currentComp 当前组件 - * @param x 坐标x - * @param y 坐标y - * @return 是则返回true - */ - public boolean isCrossPointArea(Component currentComp, int x, int y) { - return super.isCrossPointArea(currentComp, x, y); - } - - - protected Rectangle getLayoutBound(XWCardMainBorderLayout mainLayout) { - return mainLayout.getBounds(); - } - - private Rectangle adjustBackupBound(Rectangle backupBound, XWCardMainBorderLayout mainLayout) { - // 参数界面高度对纵坐标产生的影响 - JForm jform = (JForm) (HistoryTemplateListPane.getInstance().getCurrentEditingTemplate()); - if (jform.getFormDesign().getParaComponent() != null) { - backupBound.y -= jform.getFormDesign().getParaHeight(); - } - - Rectangle rec = getLayoutBound(mainLayout); - // XWTabLayout里面的横纵坐标收到外层XWCardMainBorderLayout的横纵坐标影响 - // 减掉之后可以按照它原来的逻辑执行 - backupBound.x -= rec.x; - backupBound.y -= rec.y; - XWCardLayout cardLayout = mainLayout.getCardPart(); - LayoutBorderStyle style = cardLayout.toData().getBorderStyle(); - // 当tab布局为标题样式时,才需要处理标题栏高度产生的影响 - if (ComparatorUtils.equals(style.getType(), LayoutBorderStyle.TITLE)) { - backupBound.y -= WCardMainBorderLayout.TAB_HEIGHT; - } - return backupBound; - } - - /** - * 拖拽控件边框后,根据控件的大小尺寸,进行相关组件的调整 - * - * @param creator 组件 - */ - @Override - public void fix(XCreator creator) { - //拖拽组件原大小、位置 - Rectangle backupBound = creator.getBackupBound(); - backupBound.x -= container.getX(); - backupBound.y -= container.getY(); - //当前拖拽组件的位置 - int x = creator.getX(); - int y = creator.getY(); - - // 获取容器所有内部组件横坐标 - int[] posXs = container.getHors(); - // 获取容器所有内部组件纵坐标 - int[] posYs = container.getVeris(); - - XLayoutContainer outerLayout = container.getOuterLayout(); - if (!ComparatorUtils.equals(outerLayout, container.getBackupParent())) { - XWCardMainBorderLayout mainLayout = (XWCardMainBorderLayout) outerLayout; - backupBound = adjustBackupBound(backupBound, mainLayout); - } - - //拖拽组件拖拽以后的大小 - int w = creator.getWidth(); - int h = creator.getHeight(); - initCompsList(); - creator.setBounds(backupBound); - int difference = 0; - if (x != backupBound.x) { - dealLeft(backupBound, x, posXs, difference, creator); - } else if (w != backupBound.width) { - dealRight(backupBound, x, w, posXs, difference, creator); - } else if (y != backupBound.y) { - dealTop(backupBound, y, posYs, difference, creator); - } else if (h != backupBound.height) { - dealButtom(backupBound, y, h, posYs, difference, creator); - } - clearCompsList(); - XWFitLayout layout = (XWFitLayout) container; - layout.updateBoundsWidget(); // 更新对应的BoundsWidget - updateCreatorBackBound(); - } - - /** - * 拖拽控件边框后,根据控件的大小尺寸,进行相关组件的调整 - * - * @param backupBound 边界备份 - * @param bounds 组件边界 - * @param xCreator 组件 - * @param row 选中的行 - * @param difference 偏移量 - */ - public void calculateBounds(Rectangle backupBound, Rectangle bounds, XCreator xCreator, int row, int difference) { - Rectangle rc = new Rectangle(0, 0, 0, 0); - XLayoutContainer parent = XCreatorUtils.getParentXLayoutContainer(xCreator); - if (parent != null) { - Rectangle rec = ComponentUtils.getRelativeBounds(parent); - rc.x = rec.x; - rc.y = rec.y; - } - int x = backupBound.x - rc.x, y = backupBound.y - rc.y; - //处理左右延伸 - switch (row) { - case 0: - if (backupBound.width + backupBound.x == container.getWidth() - margin.getRight() + rc.x) { - x += difference; - } - break; - case 1: - if (backupBound.y + backupBound.height == container.getHeight() - margin.getBottom() + rc.y) { - y += difference; - } - break; - } - bounds.setLocation(x, y); - xCreator.setBackupBound(backupBound); - xCreator.setBounds(bounds); - this.fix(xCreator); - } - - private void dealLeft(Rectangle backupBound, int x, int[] posXs, int difference, XCreator creator) { - if (backupBound.x == margin.getLeft()) { - return; - } - x = adjustCoordinateByDependingLine(x, posXs); - difference = x - backupBound.x; - dealDirectionAtLeft(backupBound, difference, creator); - } - - private void dealRight(Rectangle backupBound, int x, int w, int[] posXs, int difference, XCreator creator) { - if (backupBound.width + backupBound.x == container.getWidth() - margin.getRight()) { - return; - } - w = adjustDiffByDependingLine(x, posXs, w); - difference = w - backupBound.width; //拖拽长度 - dealDirectionAtRight(backupBound, difference, creator); - } - - private void dealTop(Rectangle backupBound, int y, int[] posYs, int difference, XCreator creator) { - if (backupBound.y == margin.getTop()) { - return; - } - y = adjustCoordinateByDependingLine(y, posYs); - difference = y - backupBound.y; - dealDirectionAtTop(backupBound, difference, creator); - } - - private void dealButtom(Rectangle backupBound, int y, int h, int[] posYs, int difference, XCreator creator) { - if (backupBound.y + backupBound.height == container.getHeight() - margin.getBottom()) { - return; - } - h = adjustDiffByDependingLine(y, posYs, h); - difference = h - backupBound.height; - dealDirectionABottom(backupBound, difference, creator); - } - - // 根据需要依附的位置调整拖拽的坐标值 - private int adjustCoordinateByDependingLine(int coordinate, int[] coordinates) { - if (!isEdit) { - for (int i = 0; i < coordinates.length; i++) { - if (coordinate == coordinates[i]) { - continue; - } - if (coordinate > coordinates[i] - DEPENDING_SCOPE && coordinate < coordinates[i] + DEPENDING_SCOPE) { - coordinate = coordinates[i]; - break; - } - } - } - return coordinate; - } - - // 根据需要依附的位置调整拖拽的距离 - private int adjustDiffByDependingLine(int coordinate, int[] coordinates, int diff) { - if (!isEdit) { - for (int i = 0; i < coordinates.length; i++) { - if (coordinate + diff > coordinates[i] - DEPENDING_SCOPE && coordinate + diff < coordinates[i] + DEPENDING_SCOPE) { - diff = coordinates[i] - coordinate; - break; - } - } - } - return diff; - } - - // 左侧边框拉伸,循环找出对齐的两侧控件 - private void dealDirectionAtLeft(Rectangle backupBound, int difference, Component creator) { - rightComps.add(creator); - Component rightComp = null; - int leftx = backupBound.x - DEFAULT_AREA_LENGTH - actualVal; - // 取左侧边框右面的组件x值 - int rightx = backupBound.x + DEFAULT_AREA_LENGTH; - Component leftComp = container.getLeftComp(backupBound.x, backupBound.y); - leftComps.add(leftComp); - //先找上侧对齐时(y相等)的左右两边组件 - int ry = backupBound.y; - int ly = leftComp.getY(); - int min = margin.getTop(); - int max = container.getHeight() - margin.getBottom(); - while (ry >= min && ly >= min) { - if (ry == ly) { - break; - } else { - if (ry > ly) { - rightComp = container.getTopComp(rightx, ry); - ry = rightComp.getY(); - rightComps.add(rightComp); - } else { - leftComp = container.getTopComp(leftx, ly); - ly = leftComp.getY(); - leftComps.add(leftComp); - } - } - } - // 下侧对齐时(y+h相等)两边组件 - ry = backupBound.y + backupBound.height; - ly = leftComps.get(0).getY() + leftComps.get(0).getHeight(); - while (ry <= max && ly <= max) { - if (ry == ly) { - break; - } else { - if (ry > ly) { - leftComp = container.getComponentAt(leftx, ly + DEFAULT_AREA_LENGTH + actualVal); - ly = leftComp.getY() + leftComp.getHeight(); - leftComps.add(leftComp); - } else { - rightComp = container.getComponentAt(rightx, ry + DEFAULT_AREA_LENGTH + actualVal); - ry = rightComp.getY() + rightComp.getHeight(); - rightComps.add(rightComp); - } - } - } - dealHorDirection(backupBound.x, difference); - } - - // 右侧边框拉伸,循环找出对齐的两侧控件 - private void dealDirectionAtRight(Rectangle backupBound, int difference, Component creator) { - leftComps.add(creator); - Component leftComp = null; - int leftx = backupBound.x + backupBound.width - DEFAULT_AREA_LENGTH; - // 取右侧边框右面的组件x值 - int rightx = backupBound.x + backupBound.width + DEFAULT_AREA_LENGTH + actualVal; - Component rightComp = container.getRightComp(backupBound.x, backupBound.y, backupBound.width); - rightComps.add(rightComp); - int ly = backupBound.y, ry = rightComp.getY(); - int min = margin.getTop(); - int max = container.getHeight() - margin.getBottom(); - while (ry >= min && ly >= min) { - if (ry == ly) { - break; - } else { - if (ry > ly) { - rightComp = container.getTopComp(rightx, ry); - ry = rightComp.getY(); - rightComps.add(rightComp); - } else { - leftComp = container.getTopComp(leftx, ly); - ly = leftComp.getY(); - leftComps.add(leftComp); - } - } - } - ly = backupBound.y + backupBound.height; - ry = rightComps.get(0).getY() + rightComps.get(0).getHeight(); - while (ry <= max && ly <= max) { - if (ry == ly) { - break; - } else { - if (ry > ly) { - leftComp = container.getComponentAt(leftx, ly + DEFAULT_AREA_LENGTH + actualVal); - ly = leftComp.getY() + leftComp.getHeight(); - leftComps.add(leftComp); - } else { - rightComp = container.getComponentAt(rightx, ry + DEFAULT_AREA_LENGTH + actualVal); - ry = rightComp.getY() + rightComp.getHeight(); - rightComps.add(rightComp); - } - } - } - dealHorDirection(backupBound.x + backupBound.width + actualVal, difference); - } - - /** - * 水平方向上拉伸边框的处理 - */ - private void dealHorDirection(int objx, int difference) { - if (difference > 0) { - difference = Math.min(getMinWidth(rightComps) - minWidth, difference); - } else { - difference = Math.max(difference, minWidth - getMinWidth(leftComps)); - } - //重新计算左右两侧组件size、point - if (calculateLefttRelatComponent(difference)) { - calculateRightRelatComponent(objx + difference, -difference); - } - } - - // 上侧边框拉伸,循环找出对齐的两侧控件 - private void dealDirectionAtTop(Rectangle backupBound, int difference, Component creator) { - downComps.add(creator); - // 取上侧边框上面的组件用的y值 - int topy = backupBound.y - DEFAULT_AREA_LENGTH - actualVal; - // 上侧边框下面的组件y值 - int bottomy = backupBound.y + DEFAULT_AREA_LENGTH; - Component topComp = container.getTopComp(backupBound.x, backupBound.y); - upComps.add(topComp); - Component bottomComp = null; - int min = margin.getLeft(); - int max = container.getWidth() - margin.getRight(); - //先找左侧侧对齐时(x相等)的上下两边组件 - int ux = topComp.getX(); - int dx = backupBound.x; - while (ux >= min && dx >= min) { - if (ux == dx) { - break; - } else { - if (ux < dx) { - bottomComp = container.getLeftComp(dx, bottomy); - dx = bottomComp.getX(); - downComps.add(bottomComp); - } else { - topComp = container.getLeftComp(ux, topy); - ux = topComp.getX(); - upComps.add(topComp); - } - } - } - // 右侧对齐时(x+w相等)两边组件 - ux = upComps.get(0).getX() + upComps.get(0).getWidth(); - dx = backupBound.x + backupBound.width; - while (ux <= max && dx <= max) { - if (ux == dx) { - break; - } else { - if (ux < dx) { - topComp = container.getComponentAt(ux + DEFAULT_AREA_LENGTH + actualVal, topy); - ux = topComp.getX() + topComp.getWidth(); - upComps.add(topComp); - } else { - bottomComp = container.getComponentAt(dx + DEFAULT_AREA_LENGTH + actualVal, bottomy); - dx = bottomComp.getX() + bottomComp.getWidth(); - downComps.add(bottomComp); - } - } - } - - dealVertiDirection(backupBound.y, difference); - } - - // 下侧边框拉伸,循环找出对齐的两侧控件 - private void dealDirectionABottom(Rectangle backupBound, int difference, Component creator) { - upComps.add(creator); - Component topComp = null; - Component bottomComp = container.getBottomComp(backupBound.x, backupBound.y, backupBound.height); - // 下侧边框下面的组件y坐标 - int bottomy = backupBound.y + backupBound.height + DEFAULT_AREA_LENGTH + actualVal; - // 取下侧边框上面的组件用的y值 - int topy = backupBound.y + backupBound.height - DEFAULT_AREA_LENGTH; - downComps.add(bottomComp); - int dx = bottomComp.getX(); - int ux = backupBound.x; - int min = margin.getLeft(); - int max = container.getWidth() - margin.getRight(); - while (ux >= min && dx >= min) { - if (ux == dx) { - break; - } else { - if (ux < dx) { - bottomComp = container.getLeftComp(dx, bottomy); - dx = bottomComp.getX(); - downComps.add(bottomComp); - } else { - topComp = container.getLeftComp(ux, topy); - ux = topComp.getX(); - upComps.add(topComp); - } - } - } - dx = downComps.get(0).getX() + downComps.get(0).getWidth(); - ux = backupBound.x + backupBound.width; - while (ux <= max && dx <= max) { - if (ux == dx) { - break; - } else { - if (ux < dx) { - topComp = container.getComponentAt(ux + DEFAULT_AREA_LENGTH + actualVal, topy); - ux = topComp.getX() + topComp.getWidth(); - upComps.add(topComp); - } else { - bottomComp = container.getComponentAt(dx + DEFAULT_AREA_LENGTH + actualVal, bottomy); - dx = bottomComp.getX() + bottomComp.getWidth(); - downComps.add(bottomComp); - } - } - } - dealVertiDirection(backupBound.y + backupBound.height + actualVal, difference); - } - - /** - * 垂直方向上拉伸边框的处理 - */ - private void dealVertiDirection(int objY, int difference) { - if (difference > 0) { - difference = Math.min(getMinHeight(downComps) - minHeight, difference); - } else { - difference = Math.max(difference, minHeight - getMinHeight(upComps)); - } - //重新计算上下两侧组件size、point - if (calculateUpRelatComponent(difference)) { - calculateDownRelatComponent(objY + difference, -difference); - } - } - - /** - * 新拖入组件时,计算调整其他关联组件位置大小 - * - * @param child 新拖入的组件 - * @param x 鼠标所在x坐标 - * @param y 鼠标所在y坐标 - */ - public void fix(XCreator child, int x, int y) { - Component parentComp = container.getComponentAt(x, y); - if (container.getComponentCount() == 0) { - child.setLocation(0, 0); - child.setSize(parentComp.getWidth(), parentComp.getHeight()); - } else if (isCrossPointArea(parentComp, x, y)) { - //交叉区域插入组件时,根据具体位置进行上下或者左右或者相邻三个组件的位置大小插入 - fixCrossPointArea(parentComp, child, x, y); - return; - } else if (isTrisectionArea(parentComp, x, y)) { - // 在边界三等分区域,就不再和组件二等分了 - fixTrisect(parentComp, child, x, y); - return; - } else { - fixHalve(parentComp, child, x, y); - } - } - - /** - * 平分,正常情况拖入组件时,按照上1/4区域、下1/4区域为上下平分,中左侧1/2区域、中右侧1/2区域为左右平分 - */ - protected void fixHalve(Component currentComp, XCreator child, int x, int y) { - super.fixHalve(currentComp, child, x, y); - } - - /** - * 组件交叉区域进行插入时,调整受到变动的其他组件,之前是交叉区域插入也按照三等分逻辑,后面测试中发现有bug,改为和bi一样的鼠标所在侧平分 - * 默认左上角、右下角区域是垂直方向插入组件 - * 右上角和左下角是水平方向插入组件,这样避免田字块时重复 - */ - protected void fixCrossPointArea(Component currentComp, XCreator child, int x, int y) { - super.fixCrossPointArea(currentComp, child, x, y); - } - - /** - * 三等分区域时,调整相关联的组件 - * - * @param currentComp 鼠标所在组件 - * @param child 待插入组件 - */ - protected void fixTrisect(Component currentComp, XCreator child, int x, int y) { - super.fixTrisect(currentComp, child, x, y); - } - - /** - * 删除组件或者重新拖动时,其它组件重新计算位置大小 - */ - protected void delete(XCreator creator, int creatorWidth, int creatorHeight) { - int x = creator.getX(); - int y = creator.getY(); - recalculateChildrenSize(x, y, creatorWidth, creatorHeight); - } - - /** - * 重新计算内部组件大小 - * - * @param x 坐标x - * @param y 坐标y - * @param creatorWidth 删除的组件之前所在布局的宽度 - * @param creatorHeight 删除的组件之前所在布局的高度 - */ - public void recalculateChildrenSize(int x, int y, int creatorWidth, int creatorHeight) { - if (container.getComponentCount() == 0) { - return; - } else { - initCompsList(); - int width = creatorWidth; - int height = creatorHeight; - calculateRelatedComponent(x, y, width, height); - if (!rightComps.isEmpty() && getAllHeight(rightComps) == height) { - calculateRightRelatComponent(x, width + actualVal); - } else if (!leftComps.isEmpty() && getAllHeight(leftComps) == height) { - calculateLefttRelatComponent(width + actualVal); - } else if (!downComps.isEmpty() && getAllWidth(downComps) == width) { - calculateDownRelatComponent(y, height + actualVal); - } else if (!upComps.isEmpty() && getAllWidth(upComps) == width) { - calculateUpRelatComponent(height + actualVal); - } else { - // 由于布局三等分的存在,可能会出现删除组件时,找不到关联的组件填充,此时特殊处理 - calculateNoRelatedComponent(x, y, width, height); - } - } - clearCompsList(); - } - - /** - * 四侧边框都没有对齐的,此时每侧有且只有一个方向不对齐 - * 比如右侧不对齐,那么必然右上或右下没对齐,不会同时不对齐,否则不会出现此情况 - * 正常删除是右左下上优先原则,这边目前只调整右侧以至填充完整, - * 右侧不对齐时的组件先上下微调,再向左侧填充。 - */ - private void calculateNoRelatedComponent(int x, int y, int width, int height) { - // 只有最后一个组件了,直接删除 - if (container.getComponentCount() <= 1) { - return; - } - // 删除当前组件时,由于没有刚好边框对齐的其他组件,这时候需要调整的组件 - Component rightComp = container.getRightComp(x, y, width); - if (rightComp == null) { - return; - } - - int ry = rightComp.getY(); - clearCompsList(); - initCompsList(); - Rectangle rec = new Rectangle(x, y, width, height); - if (ry != y) { - calculateNoRelatedWhileRightTop(rec, rightComp); - } else { - calculateNoRelatedWhileRightBott(rec, rightComp); - } - - } - - private void calculateNoRelatedWhileRightTop(Rectangle bound, Component rcomp) { - if (rcomp == null) { - return; - } - - int ry = rcomp.getY(); - int rh = rcomp.getHeight(); - int rw = rcomp.getWidth(); - int dh = bound.y - ry - actualVal; - // 没法缩小高度 - if (dh < minHeight) { - // 没法缩小时则拉伸rcomp的上边框 - dealDirectionAtTop(rcomp.getBounds(), dh + actualVal, rcomp); - //调整的时候可能有组件达到最小高度,判断下 - if (rcomp.getY() != bound.y) { - clearCompsList(); - initCompsList(); - dealDirectionAtTop(rcomp.getBounds(), bound.y - rcomp.getY() - minHeight - actualVal, rcomp); - ry = rcomp.getY(); - int rx = rcomp.getX(); - rcomp.setBounds(rx, ry, rw, minHeight); - recalculateChildrenSize(rx, bound.y, rw, rh - dh - actualVal); - recalculateChildrenSize(bound.x, bound.y, bound.width, bound.height); - return; - } - } else { - // 右侧控件底部对齐 - if (rh + ry == bound.y + bound.height) { - rcomp.setSize(rw, dh); - bound.width += rw; - bound.width += actualVal; - } else { - recalculateChildrenSize(bound.x, ry + rh + actualVal, bound.width, bound.height + bound.y - rh - ry - actualVal); - recalculateChildrenSize(bound.x, bound.y, bound.width, ry + rh - bound.y); - return; - } - } - recalculateChildrenSize(bound.x, bound.y, bound.width, bound.height); - } - - private void calculateNoRelatedWhileRightBott(Rectangle bound, Component rcomp) { - rcomp = container.getBottomRightComp(bound.x, bound.y, bound.height, bound.width); - int ry = rcomp.getY(); - int rh = rcomp.getHeight(); - int rw = rcomp.getWidth(); - int dh = ry + rh - bound.y - bound.height - actualVal; - if (dh < minHeight) { - dealDirectionABottom(rcomp.getBounds(), -dh - actualVal, rcomp); - //调整的时候可能有组件达到最小高度,判断下 - if (rcomp.getHeight() + ry != bound.y + bound.height) { - clearCompsList(); - initCompsList(); - dh = ry + rcomp.getHeight() - bound.y - bound.height - actualVal; - dealDirectionABottom(rcomp.getBounds(), minHeight - dh, rcomp); - rh = rcomp.getHeight(); - int rx = rcomp.getX(); - rcomp.setBounds(rx, bound.y + bound.height + actualVal, rw, minHeight); - recalculateChildrenSize(rx, ry, rw, rh - minHeight - actualVal); - recalculateChildrenSize(bound.x, bound.y, bound.width, bound.height); - return; - } - } else { - if (ry == bound.y) { - rcomp.setBounds(rcomp.getX(), bound.y + bound.height + actualVal, rw, dh); - bound.width += rw; - bound.width += actualVal; - } else { - recalculateChildrenSize(bound.x, bound.y, bound.width, ry - bound.y - actualVal); - recalculateChildrenSize(bound.x, ry, bound.width, bound.height - ry + bound.y); - return; - } - } - recalculateChildrenSize(bound.x, bound.y, bound.width, bound.height); - } - - private int getMinWidth(List comps) { - if (comps.isEmpty()) { - return 0; - } - int minWidth = container.getWidth() - margin.getLeft() - margin.getRight(); - for (int i = 0, size = comps.size(); i < size; i++) { - minWidth = minWidth > comps.get(i).getWidth() ? comps.get(i).getWidth() : minWidth; - } - return minWidth; - } - - private int getMinHeight(List comps) { - if (comps.isEmpty()) { - return 0; - } - int minH = container.getHeight() - margin.getTop() - margin.getBottom(); - for (int i = 0, size = comps.size(); i < size; i++) { - minH = minH > comps.get(i).getHeight() ? comps.get(i).getHeight() : minH; - } - return minH; - } - - // 删除时计算待删除组件上下侧的组件是否何其对齐 - private int getAllHeight(List comps) { - int allHeight = 0; - if (comps.isEmpty()) { - return allHeight; - } - int n = comps.size(); - for (int i = 0; i < n; i++) { - allHeight += comps.get(i).getHeight(); - } - allHeight += (n - 1) * actualVal; - return allHeight; - } - - private int getAllWidth(List comps) { - int allWidth = 0; - if (comps.isEmpty()) { - return allWidth; - } - int n = comps.size(); - for (int i = 0; i < n; i++) { - allWidth += comps.get(i).getWidth(); - } - allWidth += (n - 1) * actualVal; - return allWidth; - } - - /** - * 获取有哪些相关联的组件 - */ - protected void calculateRelatedComponent(int objX, int objY, int objWidth, int objHeight) { - int count = container.getComponentCount(); - for (int i = 0; i < count; i++) { - Component relatComp = container.getComponent(i); - int rx = relatComp.getX(); - int ry = relatComp.getY(); - int rwidth = relatComp.getWidth(); - int rheight = relatComp.getHeight(); - int verti = ry - objY; - int hori = rx - objX; - boolean isHori = verti >= 0 && objHeight >= (rheight + verti); - boolean isVerti = hori >= 0 && objWidth >= (rwidth + hori); - if (isHori && (objX + objWidth + actualVal) == rx) { - rightComps.add(relatComp); - } else if (isHori && objX == (rx + rwidth + actualVal)) { - leftComps.add(relatComp); - } else if (isVerti && (objY + objHeight + actualVal) == ry) { - downComps.add(relatComp); - } else if (isVerti && objY == (ry + rheight + actualVal)) { - upComps.add(relatComp); - } - } - } - - /** - * 拖拽组件时遍历某一侧组件得到该侧组件能够缩放的最小宽度,tab布局最小宽度 = 内部组件数 * 单个组件最小宽度 - * - * @param list 某一侧组件的集合 如:leftComps - * @return int 最小宽度 - */ - private int getCompsMinWidth(List list) { - return getMaxCompsNum(list, true) * WLayout.MIN_WIDTH; - } - - /** - * 拖拽组件遍历某一侧得到该侧组件能够缩放的最小高度,tab布局最小高度 = 内部组件数 * 单个组件最小高度 + 标题高度 - * - * @param list 某一侧组件集合 - * @return int 最小高度 - */ - private int getCompsMinHeight(List list) { - for (int i = 0; i < list.size(); i++) { - XCreator creator = (XCreator) list.get(i); - ArrayList childrenList = creator.getTargetChildrenList(); - if (!childrenList.isEmpty()) { - return getMaxCompsNum(list, false) * WLayout.MIN_HEIGHT + WCardMainBorderLayout.TAB_HEIGHT; - } - } - return WLayout.MIN_HEIGHT; - } - - /** - * 根据子组件的横(纵)坐标获取某一侧组件的最大内部组件数 - * - * @param list 某一侧组件集合 - * @param isHor 是否以横坐标为准 - * @return int 最大内部组件数 - */ - private int getMaxCompsNum(List list, boolean isHor) { - int maxCompNums = 1; - for (int i = 0, size = list.size(); i < size; i++) { - XCreator creator = (XCreator) list.get(i); - ArrayList childrenList = creator.getTargetChildrenList(); - int count = childrenList.size(); - if (count > 0) { - for (int j = 0; j < count; j++) { - XWTabFitLayout tabLayout = (XWTabFitLayout) childrenList.get(j); - int[] positions = isHor ? tabLayout.getHors(true) : tabLayout.getVeris(true); - int compNums = positions.length - 1; - maxCompNums = Math.max(compNums, maxCompNums); - } - } - } - return maxCompNums; - } - - /** - * 根据偏移量缩放内部组件大小,(tab布局用到) - * - * @param creator tab布局 - * @param offset 偏移量 - * @param isHor 是否为横向拖拽 - */ - private void adjustCompsSize(XCreator creator, int offset, boolean isHor) { - ArrayList childrenList = creator.getTargetChildrenList(); - int size = childrenList.size(); - if (size > 0) { - for (int j = 0; j < size; j++) { - XWTabFitLayout tabLayout = (XWTabFitLayout) childrenList.get(j); - tabLayout.setBackupBound(tabLayout.getBounds()); - int refSize = isHor ? tabLayout.getWidth() : tabLayout.getHeight(); - double percent = (double) offset / refSize; - if (percent < 0 && !tabLayout.canReduce(percent)) { - return; - } - setAdjustedSize(tabLayout, offset, isHor); - for (int m = 0; m < tabLayout.getComponentCount(); m++) { - XCreator childCreator = tabLayout.getXCreator(m); - BoundsWidget wgt = tabLayout.toData().getBoundsWidget(childCreator.toData()); - wgt.setBounds(tabLayout.getComponent(m).getBounds()); - } - adjustCreatorsSize(percent, tabLayout, isHor); - } - - } - } - - // 纵向拖拽,先将tab布局的高度设置为拖拽后的实际高度 - private void setAdjustedHeight(XWTabFitLayout tabLayout, int offset) { - tabLayout.setSize(tabLayout.getWidth(), tabLayout.getHeight() + offset); - } - - // 横向拖拽,先将tab布局的宽度设置为拖拽后的实际宽度 - private void setAdjustedSize(XWTabFitLayout tabLayout, int offset, boolean isHor) { - if (offset < 0) { - // 缩放时需要备份原tab布局宽高 - tabLayout.setReferDim(new Dimension(tabLayout.getWidth(), tabLayout.getHeight())); - } - if (isHor) { - tabLayout.setSize(tabLayout.getWidth() + offset, tabLayout.getHeight()); - return; - } - setAdjustedHeight(tabLayout, offset); - } - - // 按照拖拽偏移量,对tab布局进行缩放 - private void adjustCreatorsSize(double percent, XWTabFitLayout tabLayout, boolean isHor) { - if (isHor) { - tabLayout.adjustCreatorsWidth(percent); - return; - } - tabLayout.adjustCreatorsHeight(percent); - } - - - /** - * 删除或拉伸控件右边框 调整右侧组件位置大小 - * - * @param objX 调整后的坐标x - * @param objWidth 调整后的宽度 - */ - protected void calculateRightRelatComponent(int objX, int objWidth) { - int count = rightComps.size(); - for (int i = 0; i < count; i++) { - XCreator creator = (XCreator) rightComps.get(i); - adjustCompsSize(creator, objWidth, true); - int ry = creator.getY(); - int rwidth = creator.getWidth(); - int rheight = creator.getHeight(); - creator.setLocation(objX, ry); - creator.setSize(rwidth + objWidth, rheight); - } - } - - /** - * 实际拖拽偏移量是否超出了可调整的宽度范围 - * - * @param offset 实际偏移量 - * @return boolean 是否超出调整范围 - */ - private boolean isBeyondAdjustWidthScope(int offset) { - boolean isBeyondScope = false; - isBeyondScope = offset < 0 ? isBeyondWidthScope(offset, leftComps) : isBeyondWidthScope(offset, rightComps); - return isBeyondScope; - } - - // 实际拖拽偏移量是否超出某一侧的可调整宽度 - private boolean isBeyondWidthScope(int offset, List compsList) { - int compMinWidth = getCompsMinWidth(compsList); - for (int i = 0; i < compsList.size(); i++) { - XCreator creator = (XCreator) compsList.get(i); - if (Math.abs(offset) > (creator.getWidth() - compMinWidth)) { - return true; - } - } - return false; - } - - /** - * 删除或拉伸控件左边框时 调整左侧的组件位置大小; - */ - protected boolean calculateLefttRelatComponent(int objWidth) { - if (isBeyondAdjustWidthScope(objWidth)) { - return false; - } - int count = leftComps.size(); - for (int i = 0; i < count; i++) { - XCreator creator = (XCreator) leftComps.get(i); - adjustCompsSize(creator, objWidth, true); - int rwidth = creator.getWidth(); - int rheight = creator.getHeight(); - creator.setSize(rwidth + objWidth, rheight); - } - return true; - } - - /** - * 删除或拉伸下边框 调整下方的组件位置大小 - */ - protected void calculateDownRelatComponent(int objY, int objHeight) { - int count = downComps.size(); - for (int i = 0; i < count; i++) { - XCreator creator = (XCreator) downComps.get(i); - adjustCompsSize(creator, objHeight, false); - int rx = creator.getX(); - int rwidth = creator.getWidth(); - int rheight = creator.getHeight(); - creator.setLocation(rx, objY); - creator.setSize(rwidth, rheight + objHeight); - } - } - - /** - * 实际拖拽偏移量是否超出了可调整的高度范围 - * - * @param offset 实际偏移量 - * @return boolean 是否超出调整范围 - */ - private boolean isBeyondAdjustHeightScope(int offset) { - boolean isBeyondScope = false; - isBeyondScope = offset < 0 ? isBeyondHeightScope(offset, upComps) : isBeyondHeightScope(offset, downComps); - return isBeyondScope; - } - - // 实际拖拽偏移量是否超出某一侧的可调整高度 - private boolean isBeyondHeightScope(int offset, List compsList) { - int minHeight = getCompsMinHeight(compsList); - for (int i = 0; i < compsList.size(); i++) { - XCreator creator = (XCreator) compsList.get(i); - if (Math.abs(offset) > (creator.getHeight() - minHeight)) { - return true; - } - } - return false; - } - - /** - * 删除或拉伸上边框 调整上方的组件位置大小 - */ - protected boolean calculateUpRelatComponent(int objHeight) { - if (isBeyondAdjustHeightScope(objHeight)) { - return false; - } - int count = upComps.size(); - for (int i = 0; i < count; i++) { - XCreator creator = (XCreator) upComps.get(i); - adjustCompsSize(creator, objHeight, false); - int rwidth = creator.getWidth(); - int rheight = creator.getHeight(); - creator.setSize(rwidth, rheight + objHeight); - } - return true; - } - - /** - * 不调整,只计算位置 - * - * @return child的位置 - */ - public int[] getChildPosition(Component currentComp, XCreator child, int x, int y) { - return super.getChildPosition(currentComp, child, x, y); - } - - @Override - public ConstraintsGroupModel getLayoutConstraints(XCreator creator) { - return new FRFitLayoutConstraints((XWFitLayout) container, creator); - } +/** + * + */ +package com.fr.design.designer.beans.adapters.layout; + +import java.awt.Component; +import java.awt.Dimension; +import java.awt.Rectangle; +import java.util.ArrayList; +import java.util.List; + +import com.fr.design.beans.GroupModel; +import com.fr.design.designer.beans.ConstraintsGroupModel; +import com.fr.design.designer.beans.HoverPainter; +import com.fr.design.designer.beans.painters.FRFitLayoutPainter; +import com.fr.design.designer.creator.XCreator; +import com.fr.design.designer.creator.XCreatorUtils; +import com.fr.design.designer.creator.XLayoutContainer; +import com.fr.design.designer.creator.XWFitLayout; +import com.fr.design.designer.creator.cardlayout.XWCardLayout; +import com.fr.design.designer.creator.cardlayout.XWCardMainBorderLayout; +import com.fr.design.designer.creator.cardlayout.XWTabFitLayout; +import com.fr.design.designer.properties.FRFitLayoutConstraints; +import com.fr.design.designer.properties.FRFitLayoutPropertiesGroupModel; +import com.fr.design.file.HistoryTemplateListPane; +import com.fr.design.mainframe.JForm; +import com.fr.design.utils.ComponentUtils; +import com.fr.form.ui.LayoutBorderStyle; +import com.fr.form.ui.container.WLayout; +import com.fr.form.ui.container.cardlayout.WCardMainBorderLayout; +import com.fr.general.ComparatorUtils; +import com.fr.form.ui.container.WAbsoluteLayout.BoundsWidget; + +/** + * 自适应布局的容器适配器 + * + * @author jim + * @date 2014-6-24 + */ +public class FRFitLayoutAdapter extends FRBodyLayoutAdapter { + + public static final String WIDGETPANEICONPATH = "/com/fr/web/images/form/resources/layout_absolute.png"; + private static final int DEPENDING_SCOPE = 3; + private HoverPainter painter; + //区分拖拽和编辑宽高 + private boolean isEdit; + + public boolean isEdit() { + return isEdit; + } + + public void setEdit(boolean edit) { + isEdit = edit; + } + /** + * 构造函数 + * + * @param container XWFitLayout容器 + */ + public FRFitLayoutAdapter(XLayoutContainer container) { + super(container); + painter = new FRFitLayoutPainter(container); + initMinSize(); + } + + private void initMinSize() { + XWFitLayout layout = (XWFitLayout) container; + minWidth = layout.getActualMinWidth(); + minHeight = layout.getActualMinHeight(); + actualVal = layout.getAcualInterval(); + margin = layout.toData().getMargin(); + } + + @Override + public HoverPainter getPainter() { + return painter; + } + + /** + * 返回布局自身属性,方便一些特有设置在layout刷新时处理 + */ + @Override + public GroupModel getLayoutProperties() { + XWFitLayout xfl = (XWFitLayout) container; + return new FRFitLayoutPropertiesGroupModel(xfl); + } + + /** + * 添加组件 + * + * @param child 待添加的组件 + * @param x 坐标x + * @param y 坐标y + */ + @Override + public void addComp(XCreator child, int x, int y) { + fix(child, x, y); + if (child.shouldScaleCreator() || child.hasTitleStyle()) { + addParentCreator(child); + } else { + container.add(child, child.toData().getWidgetName()); + } + XWFitLayout layout = (XWFitLayout) container; + // 更新对应的BoundsWidget + layout.updateBoundsWidget(); + updateCreatorBackBound(); + } + + public void updateCreatorBackBound() { + for (int i = 0, size = container.getComponentCount(); i < size; i++) { + XCreator creator = (XCreator) container.getComponent(i); + creator.updateChildBound(minHeight); + creator.setBackupBound(creator.getBounds()); + } + } + + + private void addParentCreator(XCreator child) { + XLayoutContainer parentPanel = child.initCreatorWrapper(minHeight); + container.add(parentPanel, child.toData().getWidgetName()); + } + + /** + * 能否对应位置放置当前组件 + * + * @param creator 组件 + * @param x 添加的位置x,该位置是相对于container的 + * @param y 添加的位置y,该位置是相对于container的 + * @return 是否可以放置 + */ + @Override + public boolean accept(XCreator creator, int x, int y) { + // 计算是否能拖入鼠标区域时,会用到fix 的方法 + isFindRelatedComps = false; + //拖入组件判断时,先判断是否为交叉点区域,其次三等分区域,再次平分区域 + Component comp = container.getComponentAt(x, y); + if (checkInterval(comp)) { + return false; + } + //如果当前处于边缘地带, 那么就把他贴到父容器上 + boolean isMatchEdge = matchEdge(x, y); + + int componentHeight = comp.getHeight(); + int componentWidth = comp.getWidth(); + //上半部分高度 + int upHeight = (int) (componentHeight * TOP_HALF) + comp.getY(); + //下半部分高度 + int downHeight = (int) (componentHeight * BOTTOM_HALF) + comp.getY(); + + //布局控件要先判断是不是可编辑 + XLayoutContainer topLayout = XCreatorUtils.getHotspotContainer((XCreator) comp).getTopLayout(); + if (topLayout != null && !isMatchEdge && !topLayout.isEditable()) { + return false; + } + + if (isCrossPointArea(comp, x, y)) { + return canAcceptWhileCrossPoint(comp, x, y); + } + + if (isTrisectionArea(comp, x, y)) { + return canAcceptWhileTrisection(comp, x, y); + } + + boolean horizonValid = componentWidth >= minWidth * 2 + actualVal; + boolean verticalValid = componentHeight >= minHeight * 2 + actualVal; + return y > upHeight && y < downHeight ? horizonValid : verticalValid; + } + + // 间隔区域 + private boolean checkInterval(Component comp) { + return container.getComponentCount() > 0 && comp == container; + } + + /** + * 是否在组件边缘 + * + * @param x 横坐标 + * @param y 纵坐标 + * @return 是否在组件边缘 + */ + public boolean matchEdge(int x, int y) { + if (intersectsEdge(x, y, container)) { + //寻找最近的fit, 在边缘地段添加的控件, 将其送给该fit + XLayoutContainer parent = container.findNearestFit(); + container = parent != null ? parent : container; + return true; + } + return false; + } + + /** + * 是否在组件边缘 + * + * @param x 横坐标 + * @param y 纵坐标 + * @param container 参照组件 + * @return 是否在组件边缘 + */ + //是否包含于边缘地段, 按顺序上, 下, 左, 右检测 + public boolean intersectsEdge(int x, int y, XLayoutContainer container) { + int containerX = container.getX(); + int containerY = container.getY(); + int containerWidth = container.getWidth(); + int containerHeight = container.getHeight(); + + // 当前坐标点 + Rectangle currentXY = new Rectangle(x, y, 1, 1); + // 上边缘 + Rectangle upEdge = new Rectangle(containerX, containerY, containerWidth, BORDER_PROPORTION); + if (upEdge.intersects(currentXY)) { + return true; + } + + int bottomY = containerY + containerHeight - BORDER_PROPORTION; + // 下边缘 + Rectangle bottomEdge = new Rectangle(containerX, bottomY, containerWidth, BORDER_PROPORTION); + if (bottomEdge.intersects(currentXY)) { + return true; + } + + //左右边缘的高度 -10*2 是为了不和上下边缘重合 + int verticalHeight = containerHeight - BORDER_PROPORTION * 2; + int leftY = containerY + BORDER_PROPORTION; + // 左边缘 + Rectangle leftEdge = new Rectangle(containerX, leftY, BORDER_PROPORTION, verticalHeight); + if (leftEdge.intersects(currentXY)) { + return true; + } + + int rightY = containerY + BORDER_PROPORTION; + int rightX = containerX + containerWidth - BORDER_PROPORTION; + // 右边缘 + Rectangle rightEdge = new Rectangle(rightX, rightY, BORDER_PROPORTION, verticalHeight); + return rightEdge.intersects(currentXY); + } + + /** + * 交叉点区域时,能否对应位置放入组件 + */ + protected boolean canAcceptWhileCrossPoint(Component comp, int x, int y) { + return super.canAcceptWhileCrossPoint(comp, x, y); + } + + protected boolean canAcceptWhileTrisection(Component comp, int x, int y) { + return super.canAcceptWhileTrisection(comp, x, y); + } + + /** + * 判断是否鼠标在组件的三等分区域,如果组件在布局管理器中间,上下左右都可能会三等分 + * + * @param parentComp 鼠标所在区域的组件 + * @param x 坐标x + * @param y 坐标y + * @return 是则返回true + */ + public boolean isTrisectionArea(Component parentComp, int x, int y) { + return super.isTrisectionArea(parentComp, x, y); + } + + /** + * 是否为组件交叉点区域 或者是相邻三组建中间点 + * + * @param currentComp 当前组件 + * @param x 坐标x + * @param y 坐标y + * @return 是则返回true + */ + public boolean isCrossPointArea(Component currentComp, int x, int y) { + return super.isCrossPointArea(currentComp, x, y); + } + + protected void initCompsList() { + super.initCompsList(); + } + + protected void clearCompsList() { + super.clearCompsList(); + } + + protected Rectangle getLayoutBound(XWCardMainBorderLayout mainLayout){ + return mainLayout.getBounds(); + } + + private Rectangle adjustBackupBound(Rectangle backupBound, XWCardMainBorderLayout mainLayout) { + // 参数界面高度对纵坐标产生的影响 + JForm jform = (JForm) (HistoryTemplateListPane.getInstance().getCurrentEditingTemplate()); + if (jform.getFormDesign().getParaComponent() != null) { + backupBound.y -= jform.getFormDesign().getParaHeight(); + } + + Rectangle rec = getLayoutBound(mainLayout); + // XWTabLayout里面的横纵坐标收到外层XWCardMainBorderLayout的横纵坐标影响 + // 减掉之后可以按照它原来的逻辑执行 + backupBound.x -= rec.x; + backupBound.y -= rec.y; + XWCardLayout cardLayout = mainLayout.getCardPart(); + LayoutBorderStyle style = cardLayout.toData().getBorderStyle(); + // 当tab布局为标题样式时,才需要处理标题栏高度产生的影响 + if (ComparatorUtils.equals(style.getType(), LayoutBorderStyle.TITLE)) { + backupBound.y -= WCardMainBorderLayout.TAB_HEIGHT; + } + return backupBound; + } + + /** + * 拖拽控件边框后,根据控件的大小尺寸,进行相关组件的调整 + * + * @param creator 组件 + */ + @Override + public void fix(XCreator creator) { + //拖拽组件原大小、位置 + Rectangle backupBound = creator.getBackupBound(); + backupBound.x -= container.getX(); + backupBound.y -= container.getY(); + //当前拖拽组件的位置 + int x = creator.getX(); + int y = creator.getY(); + + // 获取容器所有内部组件横坐标 + int[] posXs = container.getHors(); + // 获取容器所有内部组件纵坐标 + int[] posYs = container.getVeris(); + + XLayoutContainer outerLayout = container.getOuterLayout(); + if (!ComparatorUtils.equals(outerLayout, container.getBackupParent())) { + XWCardMainBorderLayout mainLayout = (XWCardMainBorderLayout) outerLayout; + backupBound = adjustBackupBound(backupBound, mainLayout); + } + + //拖拽组件拖拽以后的大小 + int w = creator.getWidth(); + int h = creator.getHeight(); + initCompsList(); + creator.setBounds(backupBound); + int difference = 0; + if (x != backupBound.x) { + dealLeft(backupBound, x, posXs, difference, creator); + } else if (w != backupBound.width) { + dealRight(backupBound, x, w, posXs, difference, creator); + } else if (y != backupBound.y) { + dealTop(backupBound, y, posYs, difference, creator); + } else if (h != backupBound.height) { + dealButtom(backupBound, y, h, posYs, difference, creator); + } + clearCompsList(); + XWFitLayout layout = (XWFitLayout) container; + layout.updateBoundsWidget(); // 更新对应的BoundsWidget + updateCreatorBackBound(); + } + + /** + * 拖拽控件边框后,根据控件的大小尺寸,进行相关组件的调整 + * + * @param backupBound 边界备份 + * @param bounds 组件边界 + * @param xCreator 组件 + * @param row 选中的行 + * @param difference 偏移量 + */ + public void calculateBounds(Rectangle backupBound, Rectangle bounds, XCreator xCreator, int row, int difference) { + Rectangle rc = new Rectangle(0,0,0,0); + XLayoutContainer parent = XCreatorUtils.getParentXLayoutContainer(xCreator); + if (parent != null) { + Rectangle rec = ComponentUtils.getRelativeBounds(parent); + rc.x = rec.x; + rc.y = rec.y; + } + int x = backupBound.x - rc.x, y = backupBound.y - rc.y; + //处理左右延伸 + switch (row) { + case 0: + if (backupBound.width + backupBound.x == container.getWidth() - margin.getRight() +rc.x) { + x += difference; + } + break; + case 1: + if(backupBound.y + backupBound.height == container.getHeight() - margin.getBottom() +rc.y){ + y += difference; + } + break; + } + bounds.setLocation(x,y); + xCreator.setBackupBound(backupBound); + xCreator.setBounds(bounds); + this.fix(xCreator); + } + + private void dealLeft(Rectangle backupBound, int x, int[] posXs, int difference, XCreator creator) { + if (backupBound.x == margin.getLeft()) { + return; + } + x = adjustCoordinateByDependingLine(x, posXs); + difference = x - backupBound.x; + dealDirectionAtLeft(backupBound, difference, creator); + } + + private void dealRight(Rectangle backupBound, int x, int w, int[] posXs, int difference, XCreator creator) { + if (backupBound.width + backupBound.x == container.getWidth() - margin.getRight()) { + return; + } + w = adjustDiffByDependingLine(x, posXs, w); + difference = w - backupBound.width; //拖拽长度 + dealDirectionAtRight(backupBound, difference, creator); + } + + private void dealTop(Rectangle backupBound, int y, int[] posYs, int difference, XCreator creator) { + if (backupBound.y == margin.getTop()) { + return; + } + y = adjustCoordinateByDependingLine(y, posYs); + difference = y - backupBound.y; + dealDirectionAtTop(backupBound, difference, creator); + } + + private void dealButtom(Rectangle backupBound, int y, int h, int[] posYs, int difference, XCreator creator) { + if (backupBound.y + backupBound.height == container.getHeight() - margin.getBottom()) { + return; + } + h = adjustDiffByDependingLine(y, posYs, h); + difference = h - backupBound.height; + dealDirectionABottom(backupBound, difference, creator); + } + + // 根据需要依附的位置调整拖拽的坐标值 + private int adjustCoordinateByDependingLine(int coordinate, int[] coordinates) { + if(!isEdit) { + for (int i = 0; i < coordinates.length; i++) { + if (coordinate == coordinates[i]) { + continue; + } + if (coordinate > coordinates[i] - DEPENDING_SCOPE && coordinate < coordinates[i] + DEPENDING_SCOPE) { + coordinate = coordinates[i]; + break; + } + } + } + return coordinate; + } + + // 根据需要依附的位置调整拖拽的距离 + private int adjustDiffByDependingLine(int coordinate, int[] coordinates, int diff) { + if(!isEdit) { + for (int i = 0; i < coordinates.length; i++) { + if (coordinate + diff > coordinates[i] - DEPENDING_SCOPE && coordinate + diff < coordinates[i] + DEPENDING_SCOPE) { + diff = coordinates[i] - coordinate; + break; + } + } + } + return diff; + } + + // 左侧边框拉伸,循环找出对齐的两侧控件 + private void dealDirectionAtLeft(Rectangle backupBound, int difference, Component creator) { + rightComps.add(creator); + Component rightComp = null; + int leftx = backupBound.x - DEFAULT_AREA_LENGTH - actualVal; + // 取左侧边框右面的组件x值 + int rightx = backupBound.x + DEFAULT_AREA_LENGTH; + Component leftComp = container.getLeftComp(backupBound.x, backupBound.y); + leftComps.add(leftComp); + //先找上侧对齐时(y相等)的左右两边组件 + int ry = backupBound.y; + int ly = leftComp.getY(); + int min = margin.getTop(); + int max = container.getHeight() - margin.getBottom(); + while (ry >= min && ly >= min) { + if (ry == ly) { + break; + } else { + if (ry > ly) { + rightComp = container.getTopComp(rightx, ry); + ry = rightComp.getY(); + rightComps.add(rightComp); + } else { + leftComp = container.getTopComp(leftx, ly); + ly = leftComp.getY(); + leftComps.add(leftComp); + } + } + } + // 下侧对齐时(y+h相等)两边组件 + ry = backupBound.y + backupBound.height; + ly = leftComps.get(0).getY() + leftComps.get(0).getHeight(); + while (ry <= max && ly <= max) { + if (ry == ly) { + break; + } else { + if (ry > ly) { + leftComp = container.getComponentAt(leftx, ly + DEFAULT_AREA_LENGTH + actualVal); + ly = leftComp.getY() + leftComp.getHeight(); + leftComps.add(leftComp); + } else { + rightComp = container.getComponentAt(rightx, ry + DEFAULT_AREA_LENGTH + actualVal); + ry = rightComp.getY() + rightComp.getHeight(); + rightComps.add(rightComp); + } + } + } + dealHorDirection(backupBound.x, difference); + } + + // 右侧边框拉伸,循环找出对齐的两侧控件 + private void dealDirectionAtRight(Rectangle backupBound, int difference, Component creator) { + leftComps.add(creator); + Component leftComp = null; + int leftx = backupBound.x + backupBound.width - DEFAULT_AREA_LENGTH; + // 取右侧边框右面的组件x值 + int rightx = backupBound.x + backupBound.width + DEFAULT_AREA_LENGTH + actualVal; + Component rightComp = container.getRightComp(backupBound.x, backupBound.y, backupBound.width); + rightComps.add(rightComp); + int ly = backupBound.y, ry = rightComp.getY(); + int min = margin.getTop(); + int max = container.getHeight() - margin.getBottom(); + while (ry >= min && ly >= min) { + if (ry == ly) { + break; + } else { + if (ry > ly) { + rightComp = container.getTopComp(rightx, ry); + ry = rightComp.getY(); + rightComps.add(rightComp); + } else { + leftComp = container.getTopComp(leftx, ly); + ly = leftComp.getY(); + leftComps.add(leftComp); + } + } + } + ly = backupBound.y + backupBound.height; + ry = rightComps.get(0).getY() + rightComps.get(0).getHeight(); + while (ry <= max && ly <= max) { + if (ry == ly) { + break; + } else { + if (ry > ly) { + leftComp = container.getComponentAt(leftx, ly + DEFAULT_AREA_LENGTH + actualVal); + ly = leftComp.getY() + leftComp.getHeight(); + leftComps.add(leftComp); + } else { + rightComp = container.getComponentAt(rightx, ry + DEFAULT_AREA_LENGTH + actualVal); + ry = rightComp.getY() + rightComp.getHeight(); + rightComps.add(rightComp); + } + } + } + dealHorDirection(backupBound.x + backupBound.width + actualVal, difference); + } + + /** + * 水平方向上拉伸边框的处理 + */ + private void dealHorDirection(int objx, int difference) { + if (difference > 0) { + difference = Math.min(getMinWidth(rightComps) - minWidth, difference); + } else { + difference = Math.max(difference, minWidth - getMinWidth(leftComps)); + } + //重新计算左右两侧组件size、point + if (CalculateLefttRelatComponent(difference)) { + CalculateRightRelatComponent(objx + difference, -difference); + } + } + + // 上侧边框拉伸,循环找出对齐的两侧控件 + private void dealDirectionAtTop(Rectangle backupBound, int difference, Component creator) { + downComps.add(creator); + // 取上侧边框上面的组件用的y值 + int topy = backupBound.y - DEFAULT_AREA_LENGTH - actualVal; + // 上侧边框下面的组件y值 + int bottomy = backupBound.y + DEFAULT_AREA_LENGTH; + Component topComp = container.getTopComp(backupBound.x, backupBound.y); + upComps.add(topComp); + Component bottomComp = null; + int min = margin.getLeft(); + int max = container.getWidth() - margin.getRight(); + //先找左侧侧对齐时(x相等)的上下两边组件 + int ux = topComp.getX(); + int dx = backupBound.x; + while (ux >= min && dx >= min) { + if (ux == dx) { + break; + } else { + if (ux < dx) { + bottomComp = container.getLeftComp(dx, bottomy); + dx = bottomComp.getX(); + downComps.add(bottomComp); + } else { + topComp = container.getLeftComp(ux, topy); + ux = topComp.getX(); + upComps.add(topComp); + } + } + } + // 右侧对齐时(x+w相等)两边组件 + ux = upComps.get(0).getX() + upComps.get(0).getWidth(); + dx = backupBound.x + backupBound.width; + while (ux <= max && dx <= max) { + if (ux == dx) { + break; + } else { + if (ux < dx) { + topComp = container.getComponentAt(ux + DEFAULT_AREA_LENGTH + actualVal, topy); + ux = topComp.getX() + topComp.getWidth(); + upComps.add(topComp); + } else { + bottomComp = container.getComponentAt(dx + DEFAULT_AREA_LENGTH + actualVal, bottomy); + dx = bottomComp.getX() + bottomComp.getWidth(); + downComps.add(bottomComp); + } + } + } + + dealVertiDirection(backupBound.y, difference); + } + + // 下侧边框拉伸,循环找出对齐的两侧控件 + private void dealDirectionABottom(Rectangle backupBound, int difference, Component creator) { + upComps.add(creator); + Component topComp = null; + Component bottomComp = container.getBottomComp(backupBound.x, backupBound.y, backupBound.height); + // 下侧边框下面的组件y坐标 + int bottomy = backupBound.y + backupBound.height + DEFAULT_AREA_LENGTH + actualVal; + // 取下侧边框上面的组件用的y值 + int topy = backupBound.y + backupBound.height - DEFAULT_AREA_LENGTH; + downComps.add(bottomComp); + int dx = bottomComp.getX(); + int ux = backupBound.x; + int min = margin.getLeft(); + int max = container.getWidth() - margin.getRight(); + while (ux >= min && dx >= min) { + if (ux == dx) { + break; + } else { + if (ux < dx) { + bottomComp = container.getLeftComp(dx, bottomy); + dx = bottomComp.getX(); + downComps.add(bottomComp); + } else { + topComp = container.getLeftComp(ux, topy); + ux = topComp.getX(); + upComps.add(topComp); + } + } + } + dx = downComps.get(0).getX() + downComps.get(0).getWidth(); + ux = backupBound.x + backupBound.width; + while (ux <= max && dx <= max) { + if (ux == dx) { + break; + } else { + if (ux < dx) { + topComp = container.getComponentAt(ux + DEFAULT_AREA_LENGTH + actualVal, topy); + ux = topComp.getX() + topComp.getWidth(); + upComps.add(topComp); + } else { + bottomComp = container.getComponentAt(dx + DEFAULT_AREA_LENGTH + actualVal, bottomy); + dx = bottomComp.getX() + bottomComp.getWidth(); + downComps.add(bottomComp); + } + } + } + dealVertiDirection(backupBound.y + backupBound.height + actualVal, difference); + } + + /** + * 垂直方向上拉伸边框的处理 + */ + private void dealVertiDirection(int objY, int difference) { + if (difference > 0) { + difference = Math.min(getMinHeight(downComps) - minHeight, difference); + } else { + difference = Math.max(difference, minHeight - getMinHeight(upComps)); + } + //重新计算上下两侧组件size、point + if (CalculateUpRelatComponent(difference)) { + CalculateDownRelatComponent(objY + difference, -difference); + } + ; + } + + /** + * 新拖入组件时,计算调整其他关联组件位置大小 + * + * @param child 新拖入的组件 + * @param x 鼠标所在x坐标 + * @param y 鼠标所在y坐标 + */ + public void fix(XCreator child, int x, int y) { + Component parentComp = container.getComponentAt(x, y); + if (container.getComponentCount() == 0) { + child.setLocation(0, 0); + child.setSize(parentComp.getWidth(), parentComp.getHeight()); + } else if (isCrossPointArea(parentComp, x, y)) { + //交叉区域插入组件时,根据具体位置进行上下或者左右或者相邻三个组件的位置大小插入 + fixCrossPointArea(parentComp, child, x, y); + return; + } else if (isTrisectionArea(parentComp, x, y)) { + // 在边界三等分区域,就不再和组件二等分了 + fixTrisect(parentComp, child, x, y); + return; + } else { + fixHalve(parentComp, child, x, y); + } + } + + /** + * 平分,正常情况拖入组件时,按照上1/4区域、下1/4区域为上下平分,中左侧1/2区域、中右侧1/2区域为左右平分 + */ + protected void fixHalve(Component currentComp, XCreator child, int x, int y) { + super.fixHalve(currentComp, child, x, y); + } + + /** + * 组件交叉区域进行插入时,调整受到变动的其他组件,之前是交叉区域插入也按照三等分逻辑,后面测试中发现有bug,改为和bi一样的鼠标所在侧平分 + * 默认左上角、右下角区域是垂直方向插入组件 + * 右上角和左下角是水平方向插入组件,这样避免田字块时重复 + */ + protected void fixCrossPointArea(Component currentComp, XCreator child, int x, int y) { + super.fixCrossPointArea(currentComp, child, x, y); + } + + /** + * 三等分区域时,调整相关联的组件 + * + * @param currentComp 鼠标所在组件 + * @param child 待插入组件 + */ + protected void fixTrisect(Component currentComp, XCreator child, int x, int y) { + super.fixTrisect(currentComp, child, x, y); + } + + /** + * 删除组件或者重新拖动时,其它组件重新计算位置大小 + */ + protected void delete(XCreator creator, int creatorWidth, int creatorHeight) { + int x = creator.getX(); + int y = creator.getY(); + recalculateChildrenSize(x, y, creatorWidth, creatorHeight); + } + + /** + * 重新计算内部组件大小 + * + * @param x 坐标x + * @param y 坐标y + * @param creatorWidth 删除的组件之前所在布局的宽度 + * @param creatorHeight 删除的组件之前所在布局的高度 + */ + public void recalculateChildrenSize(int x, int y, int creatorWidth, int creatorHeight) { + if (container.getComponentCount() == 0) { + return; + } else { + initCompsList(); + int width = creatorWidth; + int height = creatorHeight; + calculateRelatedComponent(x, y, width, height); + if (!rightComps.isEmpty() && getAllHeight(rightComps) == height) { + CalculateRightRelatComponent(x, width + actualVal); + } else if (!leftComps.isEmpty() && getAllHeight(leftComps) == height) { + CalculateLefttRelatComponent(width + actualVal); + } else if (!downComps.isEmpty() && getAllWidth(downComps) == width) { + CalculateDownRelatComponent(y, height + actualVal); + } else if (!upComps.isEmpty() && getAllWidth(upComps) == width) { + CalculateUpRelatComponent(height + actualVal); + } else { + // 由于布局三等分的存在,可能会出现删除组件时,找不到关联的组件填充,此时特殊处理 + calculateNoRelatedComponent(x, y, width, height); + } + } + clearCompsList(); + } + + /** + * 四侧边框都没有对齐的,此时每侧有且只有一个方向不对齐 + * 比如右侧不对齐,那么必然右上或右下没对齐,不会同时不对齐,否则不会出现此情况 + * 正常删除是右左下上优先原则,这边目前只调整右侧以至填充完整, + * 右侧不对齐时的组件先上下微调,再向左侧填充。 + */ + private void calculateNoRelatedComponent(int x, int y, int width, int height) { + // 只有最后一个组件了,直接删除 + if (container.getComponentCount() <= 1) { + return; + } + // 删除当前组件时,由于没有刚好边框对齐的其他组件,这时候需要调整的组件 + Component rightComp = container.getRightComp(x, y, width); + if (rightComp == null) { + return; + } + + int ry = rightComp.getY(); + clearCompsList(); + initCompsList(); + Rectangle rec = new Rectangle(x, y, width, height); + if (ry != y) { + calculateNoRelatedWhileRightTop(rec, rightComp); + } else { + calculateNoRelatedWhileRightBott(rec, rightComp); + } + + } + + private void calculateNoRelatedWhileRightTop(Rectangle bound, Component rcomp) { + if (rcomp == null) { + return; + } + + int ry = rcomp.getY(); + int rh = rcomp.getHeight(); + int rw = rcomp.getWidth(); + int dh = bound.y - ry - actualVal; + // 没法缩小高度 + if (dh < minHeight) { + // 没法缩小时则拉伸rcomp的上边框 + dealDirectionAtTop(rcomp.getBounds(), dh + actualVal, rcomp); + //调整的时候可能有组件达到最小高度,判断下 + if (rcomp.getY() != bound.y) { + clearCompsList(); + initCompsList(); + dealDirectionAtTop(rcomp.getBounds(), bound.y - rcomp.getY() - minHeight - actualVal, rcomp); + ry = rcomp.getY(); + int rx = rcomp.getX(); + rcomp.setBounds(rx, ry, rw, minHeight); + recalculateChildrenSize(rx, bound.y, rw, rh - dh - actualVal); + recalculateChildrenSize(bound.x, bound.y, bound.width, bound.height); + return; + } + } else { + // 右侧控件底部对齐 + if (rh + ry == bound.y + bound.height) { + rcomp.setSize(rw, dh); + bound.width += rw; + bound.width += actualVal; + } else { + recalculateChildrenSize(bound.x, ry + rh + actualVal, bound.width, bound.height + bound.y - rh - ry - actualVal); + recalculateChildrenSize(bound.x, bound.y, bound.width, ry + rh - bound.y); + return; + } + } + recalculateChildrenSize(bound.x, bound.y, bound.width, bound.height); + } + + private void calculateNoRelatedWhileRightBott(Rectangle bound, Component rcomp) { + rcomp = container.getBottomRightComp(bound.x, bound.y, bound.height, bound.width); + int ry = rcomp.getY(); + int rh = rcomp.getHeight(); + int rw = rcomp.getWidth(); + int dh = ry + rh - bound.y - bound.height - actualVal; + if (dh < minHeight) { + dealDirectionABottom(rcomp.getBounds(), -dh - actualVal, rcomp); + //调整的时候可能有组件达到最小高度,判断下 + if (rcomp.getHeight() + ry != bound.y + bound.height) { + clearCompsList(); + initCompsList(); + dh = ry + rcomp.getHeight() - bound.y - bound.height - actualVal; + dealDirectionABottom(rcomp.getBounds(), minHeight - dh, rcomp); + rh = rcomp.getHeight(); + int rx = rcomp.getX(); + rcomp.setBounds(rx, bound.y + bound.height + actualVal, rw, minHeight); + recalculateChildrenSize(rx, ry, rw, rh - minHeight - actualVal); + recalculateChildrenSize(bound.x, bound.y, bound.width, bound.height); + return; + } + } else { + if (ry == bound.y) { + rcomp.setBounds(rcomp.getX(), bound.y + bound.height + actualVal, rw, dh); + bound.width += rw; + bound.width += actualVal; + } else { + recalculateChildrenSize(bound.x, bound.y, bound.width, ry - bound.y - actualVal); + recalculateChildrenSize(bound.x, ry, bound.width, bound.height - ry + bound.y); + return; + } + } + recalculateChildrenSize(bound.x, bound.y, bound.width, bound.height); + } + + private int getMinWidth(List comps) { + if (comps.isEmpty()) { + return 0; + } + int minWidth = container.getWidth() - margin.getLeft() - margin.getRight(); + for (int i = 0, size = comps.size(); i < size; i++) { + minWidth = minWidth > comps.get(i).getWidth() ? comps.get(i).getWidth() : minWidth; + } + return minWidth; + } + + private int getMinHeight(List comps) { + if (comps.isEmpty()) { + return 0; + } + int minH = container.getHeight() - margin.getTop() - margin.getBottom(); + for (int i = 0, size = comps.size(); i < size; i++) { + minH = minH > comps.get(i).getHeight() ? comps.get(i).getHeight() : minH; + } + return minH; + } + + // 删除时计算待删除组件上下侧的组件是否何其对齐 + private int getAllHeight(List comps) { + int allHeight = 0; + if (comps.isEmpty()) { + return allHeight; + } + int n = comps.size(); + for (int i = 0; i < n; i++) { + allHeight += comps.get(i).getHeight(); + } + allHeight += (n - 1) * actualVal; + return allHeight; + } + + private int getAllWidth(List comps) { + int allWidth = 0; + if (comps.isEmpty()) { + return allWidth; + } + int n = comps.size(); + for (int i = 0; i < n; i++) { + allWidth += comps.get(i).getWidth(); + } + allWidth += (n - 1) * actualVal; + return allWidth; + } + + /** + * 获取有哪些相关联的组件 + */ + protected void calculateRelatedComponent(int objX, int objY, int objWidth, int objHeight) { + int count = container.getComponentCount(); + for (int i = 0; i < count; i++) { + Component relatComp = container.getComponent(i); + int rx = relatComp.getX(); + int ry = relatComp.getY(); + int rwidth = relatComp.getWidth(); + int rheight = relatComp.getHeight(); + int verti = ry - objY; + int hori = rx - objX; + boolean isHori = verti >= 0 && objHeight >= (rheight + verti); + boolean isVerti = hori >= 0 && objWidth >= (rwidth + hori); + if (isHori && (objX + objWidth + actualVal) == rx) { + rightComps.add(relatComp); + } else if (isHori && objX == (rx + rwidth + actualVal)) { + leftComps.add(relatComp); + } else if (isVerti && (objY + objHeight + actualVal) == ry) { + downComps.add(relatComp); + } else if (isVerti && objY == (ry + rheight + actualVal)) { + upComps.add(relatComp); + } + } + } + + /** + * 拖拽组件时遍历某一侧组件得到该侧组件能够缩放的最小宽度,tab布局最小宽度 = 内部组件数 * 单个组件最小宽度 + * + * @param list 某一侧组件的集合 如:leftComps + * @return int 最小宽度 + */ + private int getCompsMinWidth(List list) { + return getMaxCompsNum(list, true) * WLayout.MIN_WIDTH; + } + + /** + * 拖拽组件遍历某一侧得到该侧组件能够缩放的最小高度,tab布局最小高度 = 内部组件数 * 单个组件最小高度 + 标题高度 + * + * @param list 某一侧组件集合 + * @return int 最小高度 + */ + private int getCompsMinHeight(List list) { + for (int i = 0; i < list.size(); i++) { + XCreator creator = (XCreator) list.get(i); + ArrayList childrenList = creator.getTargetChildrenList(); + if (!childrenList.isEmpty()) { + return getMaxCompsNum(list, false) * WLayout.MIN_HEIGHT + WCardMainBorderLayout.TAB_HEIGHT; + } + } + return WLayout.MIN_HEIGHT; + } + + /** + * 根据子组件的横(纵)坐标获取某一侧组件的最大内部组件数 + * + * @param list 某一侧组件集合 + * @param isHor 是否以横坐标为准 + * @return int 最大内部组件数 + */ + private int getMaxCompsNum(List list, boolean isHor) { + int maxCompNums = 1; + for (int i = 0, size = list.size(); i < size; i++) { + XCreator creator = (XCreator) list.get(i); + ArrayList childrenList = creator.getTargetChildrenList(); + int count = childrenList.size(); + if (count > 0) { + for (int j = 0; j < count; j++) { + XWTabFitLayout tabLayout = (XWTabFitLayout) childrenList.get(j); + int[] positions = isHor ? tabLayout.getHors(true) : tabLayout.getVeris(true); + int compNums = positions.length - 1; + maxCompNums = Math.max(compNums, maxCompNums); + } + } + } + return maxCompNums; + } + + /** + * 根据偏移量缩放内部组件大小,(tab布局用到) + * + * @param creator tab布局 + * @param offset 偏移量 + * @param isHor 是否为横向拖拽 + */ + private void adjustCompsSize(XCreator creator, int offset, boolean isHor) { + ArrayList childrenList = creator.getTargetChildrenList(); + int size = childrenList.size(); + if (size > 0) { + for (int j = 0; j < size; j++) { + XWTabFitLayout tabLayout = (XWTabFitLayout) childrenList.get(j); + tabLayout.setBackupBound(tabLayout.getBounds()); + int refSize = isHor ? tabLayout.getWidth() : tabLayout.getHeight(); + double percent = (double) offset / refSize; + if (percent < 0 && !tabLayout.canReduce(percent)) { + return; + } + setAdjustedSize(tabLayout, offset, isHor); + for (int m = 0; m < tabLayout.getComponentCount(); m++) { + XCreator childCreator = tabLayout.getXCreator(m); + BoundsWidget wgt = (BoundsWidget) tabLayout.toData().getBoundsWidget(childCreator.toData()); + wgt.setBounds(tabLayout.getComponent(m).getBounds()); + } + adjustCreatorsSize(percent, tabLayout, isHor); + } + + } + } + + // 纵向拖拽,先将tab布局的高度设置为拖拽后的实际高度 + private void setAdjustedHeight(XWTabFitLayout tabLayout, int offset) { + tabLayout.setSize(tabLayout.getWidth(), tabLayout.getHeight() + offset); + } + + // 横向拖拽,先将tab布局的宽度设置为拖拽后的实际宽度 + private void setAdjustedSize(XWTabFitLayout tabLayout, int offset, boolean isHor) { + if (offset < 0) { + // 缩放时需要备份原tab布局宽高 + tabLayout.setReferDim(new Dimension(tabLayout.getWidth(), tabLayout.getHeight())); + } + if (isHor) { + tabLayout.setSize(tabLayout.getWidth() + offset, tabLayout.getHeight()); + return; + } + setAdjustedHeight(tabLayout, offset); + } + + // 按照拖拽偏移量,对tab布局进行缩放 + private void adjustCreatorsSize(double percent, XWTabFitLayout tabLayout, boolean isHor) { + if (isHor) { + tabLayout.adjustCreatorsWidth(percent); + return; + } + tabLayout.adjustCreatorsHeight(percent); + } + + + /** + * 删除或拉伸控件右边框 调整右侧组件位置大小 + * + * @param objX 调整后的坐标x + * @param objWidth 调整后的宽度 + */ + protected void CalculateRightRelatComponent(int objX, int objWidth) { + int count = rightComps.size(); + for (int i = 0; i < count; i++) { + XCreator creator = (XCreator) rightComps.get(i); + adjustCompsSize(creator, objWidth, true); + int ry = creator.getY(); + int rwidth = creator.getWidth(); + int rheight = creator.getHeight(); + creator.setLocation(objX, ry); + creator.setSize(rwidth + objWidth, rheight); + } + } + + /** + * 实际拖拽偏移量是否超出了可调整的宽度范围 + * + * @param offset 实际偏移量 + * @return boolean 是否超出调整范围 + */ + private boolean isBeyondAdjustWidthScope(int offset) { + boolean isBeyondScope = false; + isBeyondScope = offset < 0 ? isBeyondWidthScope(offset, leftComps) : isBeyondWidthScope(offset, rightComps); + return isBeyondScope; + } + + // 实际拖拽偏移量是否超出某一侧的可调整宽度 + private boolean isBeyondWidthScope(int offset, List compsList) { + int compMinWidth = getCompsMinWidth(compsList); + for (int i = 0; i < compsList.size(); i++) { + XCreator creator = (XCreator) compsList.get(i); + if (Math.abs(offset) > (creator.getWidth() - compMinWidth)) { + return true; + } + } + return false; + } + + /** + * 删除或拉伸控件左边框时 调整左侧的组件位置大小; + */ + protected boolean CalculateLefttRelatComponent(int objWidth) { + if (isBeyondAdjustWidthScope(objWidth)) { + return false; + } + int count = leftComps.size(); + for (int i = 0; i < count; i++) { + XCreator creator = (XCreator) leftComps.get(i); + adjustCompsSize(creator, objWidth, true); + int rwidth = creator.getWidth(); + int rheight = creator.getHeight(); + creator.setSize(rwidth + objWidth, rheight); + } + return true; + } + + /** + * 删除或拉伸下边框 调整下方的组件位置大小 + */ + protected void CalculateDownRelatComponent(int objY, int objHeight) { + int count = downComps.size(); + for (int i = 0; i < count; i++) { + XCreator creator = (XCreator) downComps.get(i); + adjustCompsSize(creator, objHeight, false); + int rx = creator.getX(); + int rwidth = creator.getWidth(); + int rheight = creator.getHeight(); + creator.setLocation(rx, objY); + creator.setSize(rwidth, rheight + objHeight); + } + } + + /** + * 实际拖拽偏移量是否超出了可调整的高度范围 + * + * @param offset 实际偏移量 + * @return boolean 是否超出调整范围 + */ + private boolean isBeyondAdjustHeightScope(int offset) { + boolean isBeyondScope = false; + isBeyondScope = offset < 0 ? isBeyondHeightScope(offset, upComps) : isBeyondHeightScope(offset, downComps); + return isBeyondScope; + } + + // 实际拖拽偏移量是否超出某一侧的可调整高度 + private boolean isBeyondHeightScope(int offset, List compsList) { + int minHeight = getCompsMinHeight(compsList); + for (int i = 0; i < compsList.size(); i++) { + XCreator creator = (XCreator) compsList.get(i); + if (Math.abs(offset) > (creator.getHeight() - minHeight)) { + return true; + } + } + return false; + } + + /** + * 删除或拉伸上边框 调整上方的组件位置大小 + */ + protected boolean CalculateUpRelatComponent(int objHeight) { + if (isBeyondAdjustHeightScope(objHeight)) { + return false; + } + int count = upComps.size(); + for (int i = 0; i < count; i++) { + XCreator creator = (XCreator) upComps.get(i); + adjustCompsSize(creator, objHeight, false); + int rwidth = creator.getWidth(); + int rheight = creator.getHeight(); + creator.setSize(rwidth, rheight + objHeight); + } + return true; + } + + /** + * 不调整,只计算位置 + * + * @return child的位置 + */ + public int[] getChildPosition(Component currentComp, XCreator child, int x, int y) { + return super.getChildPosition(currentComp, child, x, y); + } + + @Override + public ConstraintsGroupModel getLayoutConstraints(XCreator creator) { + return new FRFitLayoutConstraints((XWFitLayout) container, creator); + } } \ No newline at end of file diff --git a/designer_form/src/com/fr/design/designer/beans/location/AccessDirection.java b/designer_form/src/com/fr/design/designer/beans/location/AccessDirection.java index 088f29a0a0..572ac721e9 100644 --- a/designer_form/src/com/fr/design/designer/beans/location/AccessDirection.java +++ b/designer_form/src/com/fr/design/designer/beans/location/AccessDirection.java @@ -10,7 +10,8 @@ import com.fr.design.mainframe.FormDesigner; import com.fr.design.mainframe.FormSelection; import com.fr.design.utils.ComponentUtils; import com.fr.form.ui.container.WAbsoluteLayout; -import com.fr.form.ui.widget.BoundsWidget; +import com.fr.form.ui.container.WAbsoluteLayout.BoundsWidget; +import com.fr.form.ui.container.WParameterLayout; import java.awt.*; @@ -24,184 +25,197 @@ public abstract class AccessDirection implements Direction { private int ymin; private int xmin; - abstract int getCursor(); - - protected abstract Rectangle getDraggedBounds(int dx, int dy, Rectangle currentBounds, FormDesigner designer, - Rectangle oldBounds); - - protected int[] sorption(int x, int y, Rectangle currentBounds, FormDesigner designer) { - // 自适应布局不需要吸附线,但需要对齐线,对齐线后面处理 - if (!designer.hasWAbsoluteLayout()) { - designer.getStateModel().setEquidistantLine(null); - designer.getStateModel().setXAbsorptionline(null); - designer.getStateModel().setYAbsorptionline(null); - return new int[]{x, y}; - } else { - Point relativePoint = getRelativePoint(x, y, currentBounds, designer); - sorptionPoint(relativePoint, currentBounds, designer); - return new int[]{relativePoint.x, relativePoint.y}; - } - - } - - protected Point getRelativePoint(int x, int y, Rectangle currentBounds, FormDesigner designer) { - if (x < 0) { - x = 0; - } else if (x > designer.getRootComponent().getWidth() && designer.getSelectionModel().hasSelectionComponent()) { - x = designer.getRootComponent().getWidth(); - } + abstract int getCursor(); + + protected abstract Rectangle getDraggedBounds(int dx, int dy, Rectangle current_bounds, FormDesigner designer, + Rectangle oldbounds); + + protected int[] sorption(int x, int y,Rectangle current_bounds, FormDesigner designer) { + // 自适应布局不需要吸附线,但需要对齐线,对齐线后面处理 + if (!designer.hasWAbsoluteLayout()) { + designer.getStateModel().setEquidistantLine(null); + designer.getStateModel().setXAbsorptionline(null); + designer.getStateModel().setYAbsorptionline(null); + return new int[] { x, y }; + } else { + int posy = current_bounds.y; + + Point relativePoint = getRelativePoint(x, y, current_bounds,designer); + sorptionPoint(relativePoint,current_bounds, designer); + return new int[] { relativePoint.x, relativePoint.y }; + } + + } + + protected Point getRelativePoint(int x, int y, Rectangle current_bounds,FormDesigner designer) { + if (x < 0) { + x = 0; + } else if (x > designer.getRootComponent().getWidth() && designer.getSelectionModel().hasSelectionComponent()) { + x = designer.getRootComponent().getWidth(); + } //参数面板可以无下限拉长 - if (y < 0) { - y = 0; - } else if (y > designer.getRootComponent().getHeight() + designer.getParaHeight() && designer.getSelectionModel().hasSelectionComponent() + if (y < 0) { + y = 0; + } else if (y > designer.getRootComponent().getHeight() + designer.getParaHeight() && designer.getSelectionModel().hasSelectionComponent() && !designer.getSelectionModel().getSelection().getSelectedCreator().acceptType(XWParameterLayout.class)) { - y = designer.getRootComponent().getHeight() + designer.getParaHeight(); - } - return new Point(x, y); - } - - protected void sorptionPoint(Point point, Rectangle currentBounds, FormDesigner designer) { - boolean findInX = currentBounds.getWidth() <= MoveUtils.SORPTION_UNIT; - boolean findInY = currentBounds.getHeight() <= MoveUtils.SORPTION_UNIT; - WAbsoluteLayout layout = getLayout(designer); - FormSelection selection = designer.getSelectionModel().getSelection(); - for (int i = 0, count = layout.getWidgetCount(); i < count; i++) { - BoundsWidget temp = (BoundsWidget) layout.getWidget(i); - if (!temp.isVisible() || selection.contains(temp.getWidget())) { - continue; - } - Rectangle bounds = getWidgetRelativeBounds(temp.getBounds(), selection); - if (!findInX) { - int x1 = bounds.x; - if (Math.abs(x1 - point.x) <= MoveUtils.SORPTION_UNIT) { - point.x = x1; - findInX = true; - } - int x2 = bounds.x + bounds.width; - if (Math.abs(x2 - point.x) <= MoveUtils.SORPTION_UNIT) { - point.x = x2; - findInX = true; - } - } - if (!findInY) { - int y1 = bounds.y; - if (Math.abs(y1 - point.y) <= MoveUtils.SORPTION_UNIT) { - point.y = y1; - findInY = true; - } - int y2 = bounds.y + bounds.height; - if (Math.abs(y2 - point.y) <= MoveUtils.SORPTION_UNIT) { - point.y = y2; - findInY = true; - } - - } - if (findInX && findInY) { - break; - } - - } - setDesignerStateModelProperties(designer, findInX, findInY, currentBounds, point); - } - - private void setDesignerStateModelProperties(FormDesigner designer, boolean findInX, boolean findInY, Rectangle - currentBounds, Point point) { - designer.getStateModel().setXAbsorptionline(findInX && currentBounds.getWidth() > MoveUtils.SORPTION_UNIT ? Absorptionline.createXAbsorptionline(point.x) : null); - designer.getStateModel().setYAbsorptionline(findInY && currentBounds.getHeight() > MoveUtils.SORPTION_UNIT ? Absorptionline.createYAbsorptionline(point.y) : null); - designer.getStateModel().setEquidistantLine(null); - } - - private Rectangle getWidgetRelativeBounds(Rectangle bounds, FormSelection selection) { - Rectangle relativeRec = new Rectangle(bounds.x, bounds.y, bounds.width, bounds.height); - XLayoutContainer parent = XCreatorUtils.getParentXLayoutContainer(selection.getSelectedCreator()); - if (parent == null) { - return relativeRec; - } - Rectangle rec = ComponentUtils.getRelativeBounds(parent); - relativeRec.x += rec.x; - relativeRec.y += rec.y; - return relativeRec; - } - - - private WAbsoluteLayout getLayout(final FormDesigner designer) { + y = designer.getRootComponent().getHeight() + designer.getParaHeight(); + } + return new Point(x, y); + } + + protected void sorptionPoint(Point point, Rectangle current_bounds,FormDesigner designer) { + boolean findInX = current_bounds.getWidth() <= MoveUtils.SORPTION_UNIT ? true : false; + boolean findInY = current_bounds.getHeight() <= MoveUtils.SORPTION_UNIT ? true : false; + WAbsoluteLayout layout =getLayout(designer); + FormSelection selection = designer.getSelectionModel().getSelection(); + boolean isWidgetsIntersect = false; + for (int i = 0, count = layout.getWidgetCount(); i < count; i++) { + BoundsWidget temp = (BoundsWidget) layout.getWidget(i); + if (!temp.isVisible() || selection.contains(temp.getWidget())) { + continue; + } + Rectangle bounds = getWidgetRelativeBounds(temp.getBounds(), selection); + if (!findInX) { + int x1 = bounds.x; + if (Math.abs(x1 - point.x) <= MoveUtils.SORPTION_UNIT) { + point.x = x1; + findInX = true; + } + int x2 = bounds.x + bounds.width; + if (Math.abs(x2 - point.x) <= MoveUtils.SORPTION_UNIT) { + point.x = x2; + findInX = true; + } + } + if (!findInY) { + int y1 = bounds.y; + if (Math.abs(y1 - point.y) <= MoveUtils.SORPTION_UNIT) { + point.y = y1; + findInY = true; + } + int y2 = bounds.y + bounds.height; + if (Math.abs(y2 - point.y) <= MoveUtils.SORPTION_UNIT) { + point.y = y2; + findInY = true; + } + + } + if (findInX && findInY) { + break; + } + + if (current_bounds.intersects(bounds) && !(layout instanceof WParameterLayout)){ + isWidgetsIntersect = true; + } + } + processRectangleIntersects(designer, point.x, point.y, isWidgetsIntersect); + setDesignerStateModelProperties(designer, findInX, findInY, current_bounds, point); + } + + private void setDesignerStateModelProperties (FormDesigner designer, boolean findInX, boolean findInY, Rectangle current_bounds, Point point) { + designer.getStateModel().setXAbsorptionline(findInX && current_bounds.getWidth() > MoveUtils.SORPTION_UNIT ? Absorptionline.createXAbsorptionline(point.x) : null); + designer.getStateModel().setYAbsorptionline(findInY && current_bounds.getHeight() > MoveUtils.SORPTION_UNIT ? Absorptionline.createYAbsorptionline(point.y) : null); + designer.getStateModel().setEquidistantLine(null); + } + + private Rectangle getWidgetRelativeBounds(Rectangle bounds, FormSelection selection){ + Rectangle relativeRec = new Rectangle(bounds.x, bounds.y, bounds.width, bounds.height); + XLayoutContainer parent = XCreatorUtils.getParentXLayoutContainer(selection.getSelectedCreator()); + if (parent == null) { + return relativeRec; + } + Rectangle rec = ComponentUtils.getRelativeBounds(parent); + relativeRec.x += rec.x; + relativeRec.y += rec.y; + return relativeRec; + } + + private void processRectangleIntersects(FormDesigner designer, int x, int y, boolean isIntersects){ + if(isIntersects){ + if(designer.getLocationOnScreen() != null) { + MoveUtils.displayForbidWindow(x + designer.getLocationOnScreen().x, y + designer.getLocationOnScreen().y); + } + designer.setWidgetsIntersect(true); + } + else{ + MoveUtils.hideForbidWindow(); + designer.setWidgetsIntersect(false); + } + } + + private WAbsoluteLayout getLayout(final FormDesigner designer){ XLayoutContainer formLayoutContainer = (XLayoutContainer) XCreatorUtils.createXCreator( designer.getTarget().getContainer()); WAbsoluteLayout layout; - if (formLayoutContainer.acceptType(XWBorderLayout.class)) {//看起来这边的作用应该是为了区别cpt(得到XWParameterLayout)还是frm(得到XWBorderLayout)的参数界面 - Container container = designer.getSelectionModel().getSelection().getSelectedCreator().getParent(); - if (container instanceof XWAbsoluteLayout) { - layout = ((XWAbsoluteLayout) container).toData(); - } else { - layout = (WAbsoluteLayout) designer.getParaComponent().toData(); - } - } else { + if (formLayoutContainer.acceptType(XWBorderLayout.class)){//看起来这边的作用应该是为了区别cpt(得到XWParameterLayout)还是frm(得到XWBorderLayout)的参数界面 + Container container = designer.getSelectionModel().getSelection().getSelectedCreator().getParent(); + if(container instanceof XWAbsoluteLayout){ + layout = ((XWAbsoluteLayout)container).toData(); + } + else { + layout = (WAbsoluteLayout) designer.getParaComponent().toData(); + } + } else{ layout = (WAbsoluteLayout) designer.getTarget().getContainer(); } - return layout; + return layout; } - /** - * 拖拽 - * - * @param dx 坐标x - * @param dy 坐标y - * @param designer 设计界面 - */ - public void drag(int dx, int dy, FormDesigner designer) { - Rectangle rec = getDraggedBounds(dx, dy, designer.getSelectionModel().getSelection().getRelativeBounds(), designer, designer.getSelectionModel().getSelection().getBackupBounds()); - if (rec != null) { - designer.getSelectionModel().getSelection().setSelectionBounds(rec, designer); - } else { - return; - } + /** + * 拖拽 + * @param dx 坐标x + * @param dy 坐标y + * @param designer 设计界面 + */ + public void drag(int dx, int dy, FormDesigner designer) { + Rectangle rec = getDraggedBounds(dx, dy, designer.getSelectionModel().getSelection().getRelativeBounds(), designer, designer.getSelectionModel().getSelection().getBackupBounds()); //设定控件最小高度21,因每次拖曳至少移动1,防止控件高度等于21时,拖曳导致rec.y的变化使得控件不停的向上或向下移动。 - if (rec.height == MINHEIGHT) { + if(rec.height == MINHEIGHT){ ymin = rec.y; } - if (rec.height == MINHEIGHT - 1) { + if(rec.height == MINHEIGHT - 1){ ymin = ymin == rec.y ? rec.y : rec.y - 1; } - if (rec.height < MINHEIGHT) { + if(rec.height < MINHEIGHT){ rec.height = MINHEIGHT; rec.y = ymin; } // 增加下宽度也设最小为21 if (rec.width == MINWIDTH) { - xmin = rec.x; + xmin = rec.x; } - if (rec.width == MINWIDTH - 1) { - xmin = xmin == rec.x ? rec.x : rec.x - 1; + if(rec.width == MINWIDTH - 1){ + xmin = xmin == rec.x ? rec.x : rec.x - 1; } if (rec.width < MINWIDTH) { - rec.width = MINWIDTH; - rec.x = xmin; - } - - } - - /** - * 更新鼠标指针形状 - * - * @param formEditor 设计界面组件 - */ - public void updateCursor(FormDesigner formEditor) { - - // 调用位置枚举的多态方法getCursor获取鼠标形状 - int type = getCursor(); - - if (type != formEditor.getCursor().getType()) { - // 设置当前形状 - formEditor.setCursor(Cursor.getPredefinedCursor(type)); + rec.width = MINWIDTH; + rec.x = xmin; } - } - - /** - * 生成组件备用的bound - * - * @param formEditor 设计界面组件 - */ - public void backupBounds(FormDesigner formEditor) { - formEditor.getSelectionModel().getSelection().backupBounds(); - } + if(rec != null) { + designer.getSelectionModel().getSelection().setSelectionBounds(rec, designer); + } + } + + /** + * 更新鼠标指针形状 + * @param formEditor 设计界面组件 + */ + public void updateCursor(FormDesigner formEditor) { + + // 调用位置枚举的多态方法getCursor获取鼠标形状 + int type = getCursor(); + + if (type != formEditor.getCursor().getType()) { + // 设置当前形状 + formEditor.setCursor(Cursor.getPredefinedCursor(type)); + } + } + + /** + * 生成组件备用的bound + * @param formEditor 设计界面组件 + */ + public void backupBounds(FormDesigner formEditor) { + formEditor.getSelectionModel().getSelection().backupBounds(); + } } \ No newline at end of file From b67778a4ded602bd9c9434b83b234268c8054917 Mon Sep 17 00:00:00 2001 From: "yaoh.wu" Date: Tue, 11 Apr 2017 10:37:41 +0800 Subject: [PATCH 22/72] =?UTF-8?q?=E6=97=A0=E4=BB=BB=E5=8A=A1=20=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/com/fr/design/designer/beans/models/SelectionModel.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/designer_form/src/com/fr/design/designer/beans/models/SelectionModel.java b/designer_form/src/com/fr/design/designer/beans/models/SelectionModel.java index 8ef0033ea2..5bd159a43e 100644 --- a/designer_form/src/com/fr/design/designer/beans/models/SelectionModel.java +++ b/designer_form/src/com/fr/design/designer/beans/models/SelectionModel.java @@ -15,8 +15,6 @@ import com.fr.design.mainframe.FormSelection; import com.fr.design.mainframe.FormSelectionUtils; import com.fr.design.utils.ComponentUtils; import com.fr.design.utils.gui.LayoutUtils; -import com.fr.form.ui.container.cardlayout.WCardMainBorderLayout; -import com.fr.form.ui.container.cardlayout.WTabFitLayout; import com.fr.stable.ArrayUtils; import java.awt.*; From 48723cc22006085f1b100318eeebb1e91f1fd4a4 Mon Sep 17 00:00:00 2001 From: fr_shine Date: Tue, 11 Apr 2017 16:42:34 +0800 Subject: [PATCH 23/72] =?UTF-8?q?=E5=90=88=E5=B9=B6=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=E6=88=96=E8=80=85=E4=BF=AE=E6=94=B9=E5=86=B2=E7=AA=81=E6=97=B6?= =?UTF-8?q?=20merge=E9=94=99=E8=AF=AF=20=E6=94=B9=E5=9B=9E=E6=AD=A3?= =?UTF-8?q?=E7=A1=AE=E7=9A=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fr/design/chart/axis/MinMaxValuePane.java | 52 +++++++++++-------- 1 file changed, 30 insertions(+), 22 deletions(-) diff --git a/designer_chart/src/com/fr/design/chart/axis/MinMaxValuePane.java b/designer_chart/src/com/fr/design/chart/axis/MinMaxValuePane.java index 7fc7d9db34..4790892596 100644 --- a/designer_chart/src/com/fr/design/chart/axis/MinMaxValuePane.java +++ b/designer_chart/src/com/fr/design/chart/axis/MinMaxValuePane.java @@ -31,45 +31,53 @@ public class MinMaxValuePane extends JPanel { protected UITextField secUnitField; public MinMaxValuePane() { - minCheckBox = new UICheckBox(Inter.getLocText(new String[]{"Custom", "Min_Value"})); - minValueField = new UITextField(6); - maxCheckBox = new UICheckBox(Inter.getLocText(new String[]{"Custom", "Max_Value"})); - maxValueField = new UITextField(6); - isCustomMainUnitBox = new UICheckBox(Inter.getLocText("FR-Chart_MainGraduationUnit")); - mainUnitField = new UITextField(6); - isCustomSecUnitBox = new UICheckBox(Inter.getLocText("FR-Chart_SecondGraduationUnit")); - secUnitField = new UITextField(6); + minCheckBox = new UICheckBox(Inter.getLocText(new String[]{"Custom", "Min_Value"})); + minValueField = new UITextField(6); + maxCheckBox = new UICheckBox(Inter.getLocText(new String[]{"Custom", "Max_Value"})); + maxValueField = new UITextField(6); + isCustomMainUnitBox = new UICheckBox(Inter.getLocText("FR-Chart_MainGraduationUnit")); + mainUnitField = new UITextField(6); + isCustomSecUnitBox = new UICheckBox(Inter.getLocText("FR-Chart_SecondGraduationUnit")); + secUnitField = new UITextField(6); + double p = TableLayout.PREFERRED; double f = TableLayout.FILL; - double[] columnSize = { p, f }; - double[] rowSize = { p, p, p, p}; + double[] columnSize = {p, f}; - Component[][] components = getPanelComponents(); - JPanel panel = TableLayoutHelper.createTableLayoutPane(components ,rowSize,columnSize); + Component[][] components = getPanelComponents(); + JPanel panel = TableLayoutHelper.createTableLayoutPane(components, getRowSize(p), columnSize); this.setLayout(new BorderLayout()); - this.add(panel,BorderLayout.CENTER); + this.add(panel, BorderLayout.CENTER); + addComponentListener(components); + } - for(int i = 0; i < components.length; i++) { - ((UICheckBox)components[i][0]).addActionListener(new ActionListener() { + protected double[] getRowSize(double p) { + return new double[]{p, p, p, p}; + } + + public void addComponentListener(Component[][] components) { + for (int i = 0; i < components.length; i++) { + ((UICheckBox) components[i][0]).addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { checkBoxUse(); } }); - ChartSwingUtils.addListener((UICheckBox)components[i][0], (UITextField)components[i][1]); + ChartSwingUtils.addListener((UICheckBox) components[i][0], (UITextField) components[i][1]); } } + protected Component[][] getPanelComponents() { - return new Component[][]{ - new Component[]{minCheckBox, minValueField}, - new Component[]{maxCheckBox, maxValueField}, - new Component[]{isCustomMainUnitBox, mainUnitField}, - new Component[]{isCustomSecUnitBox, secUnitField}, + return new Component[][]{ + new Component[]{minCheckBox, minValueField}, + new Component[]{maxCheckBox, maxValueField}, + new Component[]{isCustomMainUnitBox, mainUnitField}, + new Component[]{isCustomSecUnitBox, secUnitField}, }; } - private void checkBoxUse() { + protected void checkBoxUse() { minValueField.setEnabled(minCheckBox.isSelected()); maxValueField.setEnabled(maxCheckBox.isSelected()); From 333fd8357733c51924ead06553c57077b03b9be0 Mon Sep 17 00:00:00 2001 From: mengao <283296419@qq.com> Date: Thu, 13 Apr 2017 11:23:14 +0800 Subject: [PATCH 24/72] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=AE=BE=E8=AE=A1?= =?UTF-8?q?=E5=99=A8=E6=9C=80=E5=A4=A7=E6=9C=80=E5=B0=8F=E5=80=BC=EF=BC=8C?= =?UTF-8?q?=E4=B8=8Ereleas=E5=88=86=E6=94=AF=E5=90=8C=E6=AD=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fr/design/chart/axis/MinMaxValuePane.java | 28 +++++++++++-------- 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/designer_chart/src/com/fr/design/chart/axis/MinMaxValuePane.java b/designer_chart/src/com/fr/design/chart/axis/MinMaxValuePane.java index 4790892596..8a157f0843 100644 --- a/designer_chart/src/com/fr/design/chart/axis/MinMaxValuePane.java +++ b/designer_chart/src/com/fr/design/chart/axis/MinMaxValuePane.java @@ -55,19 +55,23 @@ public class MinMaxValuePane extends JPanel { return new double[]{p, p, p, p}; } - public void addComponentListener(Component[][] components) { + protected void addComponentListener(Component[][] components) { for (int i = 0; i < components.length; i++) { - ((UICheckBox) components[i][0]).addActionListener(new ActionListener() { - - @Override - public void actionPerformed(ActionEvent e) { - checkBoxUse(); - } - }); + addListener((UICheckBox) components[i][0]); ChartSwingUtils.addListener((UICheckBox) components[i][0], (UITextField) components[i][1]); } } + protected void addListener(UICheckBox checkBox) { + checkBox.addActionListener(new ActionListener() { + + @Override + public void actionPerformed(ActionEvent e) { + checkBoxUse(); + } + }); + } + protected Component[][] getPanelComponents() { return new Component[][]{ new Component[]{minCheckBox, minValueField}, @@ -77,7 +81,7 @@ public class MinMaxValuePane extends JPanel { }; } - protected void checkBoxUse() { + private void checkBoxUse() { minValueField.setEnabled(minCheckBox.isSelected()); maxValueField.setEnabled(maxCheckBox.isSelected()); @@ -108,7 +112,7 @@ public class MinMaxValuePane extends JPanel { if(axis.getMinValue() != null) { minValueField.setText(axis.getMinValue().toString()); } - } + } // 最大值 if (axis.isCustomMaxValue()) { @@ -116,7 +120,7 @@ public class MinMaxValuePane extends JPanel { if(axis.getMaxValue() != null) { maxValueField.setText(axis.getMaxValue().toString()); } - } + } // 主次刻度单位 if (axis.isCustomMainUnit()) { @@ -124,7 +128,7 @@ public class MinMaxValuePane extends JPanel { if(axis.getMainUnit() != null) { mainUnitField.setText(axis.getMainUnit().toString()); } - } + } if(axis.isCustomSecUnit()) { isCustomSecUnitBox.setSelected(true); From 5f68195875d229f011c065c416d618243e60ea41 Mon Sep 17 00:00:00 2001 From: mengao <283296419@qq.com> Date: Thu, 13 Apr 2017 11:39:31 +0800 Subject: [PATCH 25/72] =?UTF-8?q?=E5=8A=A0=E4=B8=8A=E4=B9=8B=E5=89=8D?= =?UTF-8?q?=E5=90=88=E5=B9=B6=E5=86=B2=E7=AA=81=E8=A2=AB=E5=88=A0=E6=8E=89?= =?UTF-8?q?=E7=9A=84=E5=9B=BD=E9=99=85=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- designer_base/src/com/fr/design/locale/designer.properties | 6 +++++- .../src/com/fr/design/locale/designer_en_US.properties | 6 +++++- .../src/com/fr/design/locale/designer_ja_JP.properties | 4 ++++ .../src/com/fr/design/locale/designer_ko_KR.properties | 6 +++++- .../src/com/fr/design/locale/designer_zh_CN.properties | 4 ++++ .../src/com/fr/design/locale/designer_zh_TW.properties | 6 +++++- 6 files changed, 28 insertions(+), 4 deletions(-) diff --git a/designer_base/src/com/fr/design/locale/designer.properties b/designer_base/src/com/fr/design/locale/designer.properties index e3ee039994..94733eaad4 100644 --- a/designer_base/src/com/fr/design/locale/designer.properties +++ b/designer_base/src/com/fr/design/locale/designer.properties @@ -587,4 +587,8 @@ FR-Designer_Mouse_Click_Tips= FR-Designer-Move_Tab_First=move to first FR-Designer-Move_Tab_End=move to end FR-Designer-Move_Tab_Next=move to next -FR-Designer-Move_Tab_Prev=move to previous \ No newline at end of file +FR-Designer-Move_Tab_Prev=move to previous +FR-Designer_AxisReversed=AxisValue +FR-Designer_Logarithmic=Logarithmic +FR-Designer_Chart_Log_Base=Log Base +FR-Designer_Chart_F_Radar_Axis=Chart_F_Radar_Axis \ No newline at end of file diff --git a/designer_base/src/com/fr/design/locale/designer_en_US.properties b/designer_base/src/com/fr/design/locale/designer_en_US.properties index a86a7fb14f..5bc73972ea 100644 --- a/designer_base/src/com/fr/design/locale/designer_en_US.properties +++ b/designer_base/src/com/fr/design/locale/designer_en_US.properties @@ -587,4 +587,8 @@ FR-Designer_Mouse_Click_Tips=The background of the mouse to click the button, in FR-Designer-Move_Tab_First=move to first FR-Designer-Move_Tab_End=move to end FR-Designer-Move_Tab_Next=move to next -FR-Designer-Move_Tab_Prev=move to previous \ No newline at end of file +FR-Designer-Move_Tab_Prev=move to previous +FR-Designer_AxisReversed=Axis in reverse order +FR-Designer_Logarithmic=Log scale +FR-Designer_Chart_Log_Base=Log Base +FR-Designer_Chart_F_Radar_Axis=Value Axis \ No newline at end of file diff --git a/designer_base/src/com/fr/design/locale/designer_ja_JP.properties b/designer_base/src/com/fr/design/locale/designer_ja_JP.properties index 943cf181d1..1a7ee9322d 100644 --- a/designer_base/src/com/fr/design/locale/designer_ja_JP.properties +++ b/designer_base/src/com/fr/design/locale/designer_ja_JP.properties @@ -555,3 +555,7 @@ FR-Designer_Initial_Background_Tips= FR-Designer_Mouse_Move_Tips= FR-Designer_Mouse_Click_Tips= FR-Designer_Plugin_Should_Update_Please_Contact_Developer= +FR-Designer_AxisReversed=\u8EF8\u9006\u9806 +FR-Designer_Logarithmic=\u5BFE\u6570\u76EE\u76DB\u308A +FR-Designer_Chart_Log_Base=\u5E95\u6570 +FR-Designer_Chart_F_Radar_Axis=\u5782\u76F4\u8EF8 \ No newline at end of file diff --git a/designer_base/src/com/fr/design/locale/designer_ko_KR.properties b/designer_base/src/com/fr/design/locale/designer_ko_KR.properties index db796ce438..87fc8705af 100644 --- a/designer_base/src/com/fr/design/locale/designer_ko_KR.properties +++ b/designer_base/src/com/fr/design/locale/designer_ko_KR.properties @@ -551,4 +551,8 @@ FR-Designer_Background_Image_Select= FR-Designer_Initial_Background_Tips= FR-Designer_Mouse_Move_Tips= FR-Designer_Mouse_Click_Tips= -FR-Designer_Plugin_Should_Update_Please_Contact_Developer= \ No newline at end of file +FR-Designer_Plugin_Should_Update_Please_Contact_Developer= +FR-Designer_AxisReversed=\uCD95\uC5ED\uC21C +FR-Designer_Logarithmic=\uB85C\uADF8\uB208\uAE08 +FR-Designer_Chart_Log_Base=\uAE30\uC218 +FR-Designer_Chart_F_Radar_Axis=\uAC12\uCD95 \ No newline at end of file diff --git a/designer_base/src/com/fr/design/locale/designer_zh_CN.properties b/designer_base/src/com/fr/design/locale/designer_zh_CN.properties index 726a6d0f61..f0e7eb1763 100644 --- a/designer_base/src/com/fr/design/locale/designer_zh_CN.properties +++ b/designer_base/src/com/fr/design/locale/designer_zh_CN.properties @@ -588,3 +588,7 @@ FR-Designer_Background_Image_Select=\u9009\u62E9\u56FE\u7247 FR-Designer_Initial_Background_Tips=\u6309\u94AE\u7684\u521D\u59CB\u80CC\u666F FR-Designer_Mouse_Move_Tips=\u9F20\u6807\u79FB\u52A8\u5230\u6309\u94AE\u4E0A\u7684\u80CC\u666F\uFF0C\u82E5\u65E0\u5219\u4E0D\u6539\u53D8\u80CC\u666F FR-Designer_Mouse_Click_Tips=\u9F20\u6807\u70B9\u51FB\u6309\u94AE\u65F6\u80CC\u666F\uFF0C\u82E5\u65E0\u5219\u4E0D\u6539\u53D8\u80CC\u666F +FR-Designer_AxisReversed=\u8F74\u9006\u5E8F +FR-Designer_Logarithmic=\u5BF9\u6570\u523B\u5EA6 +FR-Designer_Chart_Log_Base=\u5E95\u6570 +FR-Designer_Chart_F_Radar_Axis=\u503C\u8F74 \ No newline at end of file diff --git a/designer_base/src/com/fr/design/locale/designer_zh_TW.properties b/designer_base/src/com/fr/design/locale/designer_zh_TW.properties index f8b28dba33..b97e4969ba 100644 --- a/designer_base/src/com/fr/design/locale/designer_zh_TW.properties +++ b/designer_base/src/com/fr/design/locale/designer_zh_TW.properties @@ -575,4 +575,8 @@ FR-Designer_Background_Clear= FR-Designer_Background_Image_Select= FR-Designer_Initial_Background_Tips= FR-Designer_Mouse_Move_Tips= -FR-Designer_Mouse_Click_Tips= \ No newline at end of file +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 +FR-Designer_Chart_F_Radar_Axis=\u503C\u8EF8 \ No newline at end of file From 3471515bddf69b30c9a7956077a0c40c83c3b128 Mon Sep 17 00:00:00 2001 From: fr_shine Date: Thu, 13 Apr 2017 20:10:05 +0800 Subject: [PATCH 26/72] =?UTF-8?q?=E4=B8=80=E4=B8=AA=E5=B0=8F=E8=AD=A6?= =?UTF-8?q?=E5=91=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/fr/design/style/color/ColorSelectConfigManager.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/designer_base/src/com/fr/design/style/color/ColorSelectConfigManager.java b/designer_base/src/com/fr/design/style/color/ColorSelectConfigManager.java index af3d7df81f..e135b17c6b 100644 --- a/designer_base/src/com/fr/design/style/color/ColorSelectConfigManager.java +++ b/designer_base/src/com/fr/design/style/color/ColorSelectConfigManager.java @@ -84,6 +84,9 @@ public class ColorSelectConfigManager extends XMLFileManager implements ColorSel * @param color 颜色 */ public void addToColorQueue(Color color) { + if(color == null){ + return; + } // 过滤重复的最近使用颜色 // 因为有个后进先出的问题,最近使用的颜色需要放到最前面所以没用set if (colors.contains(color)) { From 935b4fcca69eb3f0e5d792fccc596e45b1f23f03 Mon Sep 17 00:00:00 2001 From: plough Date: Mon, 17 Apr 2017 15:33:00 +0800 Subject: [PATCH 27/72] =?UTF-8?q?=E6=97=A0JIRA=E4=BB=BB=E5=8A=A1=EF=BC=9B?= =?UTF-8?q?=E5=8E=BB=E6=8E=89=E8=B0=83=E8=AF=95=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../templateinfo/TemplateInfoCollector.java | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/designer_base/src/com/fr/design/mainframe/templateinfo/TemplateInfoCollector.java b/designer_base/src/com/fr/design/mainframe/templateinfo/TemplateInfoCollector.java index b9b7aa194e..e5c6688ec9 100644 --- a/designer_base/src/com/fr/design/mainframe/templateinfo/TemplateInfoCollector.java +++ b/designer_base/src/com/fr/design/mainframe/templateinfo/TemplateInfoCollector.java @@ -73,8 +73,6 @@ public class TemplateInfoCollector implements Serializable { } catch (InvalidClassException ex) { // 如果 TemplateInfoCollecor 类结构有改动,则放弃之前收集的数据(下次保存时覆盖) // 这种情况主要在开发、测试过程中遇到,正式上线后不应该出现 - FRLogger.getLogger().info(ex.getMessage()); - FRLogger.getLogger().info("use a new instance"); instance = new TemplateInfoCollector(); } catch (Exception ex) { @@ -123,14 +121,6 @@ public class TemplateInfoCollector implements Serializable { private void saveInfo() { try { ObjectOutputStream os = new ObjectOutputStream(new FileOutputStream(getInfoFile())); - String log = ""; - int count = 1; - for (String key : templateInfoList.keySet()) { - String createTime = ((HashMap)templateInfoList.get(key).get("consumingMap")).get("create_time").toString(); - log += (count + ". id: " + key + " " + createTime + "\n" + templateInfoList.get(key).toString() + "\n"); - count ++; - } - FRLogger.getLogger().info("writing tplInfo: \n" + log); os.writeObject(instance); os.close(); } catch (Exception ex) { @@ -241,10 +231,7 @@ public class TemplateInfoCollector implements Serializable { String jsonProcessMap = templateInfo.get("jsonProcessMap"); if (sendSingleTemplateInfo(consumingUrl, jsonConsumingMap) && sendSingleTemplateInfo(processUrl, jsonProcessMap)) { // 清空记录 - FRLogger.getLogger().info("successfully send " + templateInfo.get("templateID")); removeFromTemplateInfoList(templateInfo.get("templateID")); - } else { - FRLogger.getLogger().info("send template info failed, will try next time, " + templateInfo.get("templateID")); } } saveInfo(); @@ -303,7 +290,6 @@ public class TemplateInfoCollector implements Serializable { private void removeFromTemplateInfoList(String key) { templateInfoList.remove(key); - FRLogger.getLogger().info(key + " is removed..."); } @SuppressWarnings("unchecked") From 23566ed6ba492fa846b83bd88241474317186e6c Mon Sep 17 00:00:00 2001 From: plough Date: Wed, 19 Apr 2017 16:39:06 +0800 Subject: [PATCH 28/72] =?UTF-8?q?=E6=97=A0JIRA=E4=BB=BB=E5=8A=A1=EF=BC=8C?= =?UTF-8?q?=E6=88=AA=E8=8E=B7=E6=A8=A1=E6=9D=BF=E4=BF=A1=E6=81=AF=E6=94=B6?= =?UTF-8?q?=E9=9B=86=E5=88=9D=E5=A7=8B=E5=8C=96=E6=97=B6=EF=BC=8C=E5=8F=AF?= =?UTF-8?q?=E8=83=BD=E5=AF=BC=E8=87=B4=E6=A8=A1=E6=9D=BF=E6=89=93=E4=B8=8D?= =?UTF-8?q?=E5=BC=80=E7=9A=84=E5=BC=82=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mainframe/templateinfo/TemplateInfoCollector.java | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/designer_base/src/com/fr/design/mainframe/templateinfo/TemplateInfoCollector.java b/designer_base/src/com/fr/design/mainframe/templateinfo/TemplateInfoCollector.java index e5c6688ec9..f8e985f667 100644 --- a/designer_base/src/com/fr/design/mainframe/templateinfo/TemplateInfoCollector.java +++ b/designer_base/src/com/fr/design/mainframe/templateinfo/TemplateInfoCollector.java @@ -67,16 +67,8 @@ public class TemplateInfoCollector implements Serializable { try{ ObjectInputStream is = new ObjectInputStream(new FileInputStream(getInfoFile())); instance = (TemplateInfoCollector) is.readObject(); - } catch (FileNotFoundException ex) { - // 如果之前没有存储过,则创建新对象 + } catch (Exception ex) { instance = new TemplateInfoCollector(); - } catch (InvalidClassException ex) { - // 如果 TemplateInfoCollecor 类结构有改动,则放弃之前收集的数据(下次保存时覆盖) - // 这种情况主要在开发、测试过程中遇到,正式上线后不应该出现 - instance = new TemplateInfoCollector(); - } - catch (Exception ex) { - FRLogger.getLogger().error(ex.getMessage(), ex); } } return instance; From ffc2a088efe9c3cf3903615eea584cb1b245d0bf Mon Sep 17 00:00:00 2001 From: zack Date: Wed, 19 Apr 2017 18:46:25 +0800 Subject: [PATCH 29/72] =?UTF-8?q?REPORT-1344=20=E8=A1=A8=E5=8D=95=E7=BF=BB?= =?UTF-8?q?=E9=A1=B5=E6=94=B9=E8=89=AF=E9=87=8D=E6=96=B0=E6=8F=90=E4=BA=A4?= =?UTF-8?q?release?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fr/design/designer/creator/XElementCase.java | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/designer_form/src/com/fr/design/designer/creator/XElementCase.java b/designer_form/src/com/fr/design/designer/creator/XElementCase.java index 3a077e57a8..af268e9843 100644 --- a/designer_form/src/com/fr/design/designer/creator/XElementCase.java +++ b/designer_form/src/com/fr/design/designer/creator/XElementCase.java @@ -10,11 +10,9 @@ import com.fr.design.fun.WidgetPropertyUIProvider; import com.fr.design.fun.impl.AbstractFormElementCaseEditorProvider; import com.fr.design.gui.ilable.UILabel; import com.fr.design.mainframe.*; -import com.fr.design.mainframe.widget.editors.BooleanEditor; +import com.fr.design.mainframe.widget.editors.ElementCaseToolBarEditor; import com.fr.design.mainframe.widget.editors.PaddingMarginEditor; import com.fr.design.mainframe.widget.editors.WLayoutBorderStyleEditor; -import com.fr.design.mainframe.widget.renderer.LayoutBorderStyleRenderer; -import com.fr.design.mainframe.widget.renderer.PaddingMarginCellRenderer; import com.fr.form.FormElementCaseContainerProvider; import com.fr.form.FormElementCaseProvider; import com.fr.form.FormProvider; @@ -83,6 +81,13 @@ public class XElementCase extends XBorderStyleWidgetCreator implements FormEleme CRPropertyDescriptor[] propertyTableEditor = new CRPropertyDescriptor[]{ new CRPropertyDescriptor("widgetName", this.data.getClass()) .setI18NName(Inter.getLocText("Form-Widget_Name")), + new CRPropertyDescriptor("visible", this.data.getClass()).setI18NName( + Inter.getLocText("FR-Designer_Widget-Visible")).setPropertyChangeListener(new PropertyChangeAdapter() { + + @Override + public void propertyChange() { + makeVisible(toData().isVisible());} + }), new CRPropertyDescriptor("borderStyle", this.data.getClass()).setEditorClass( WLayoutBorderStyleEditor.class).setI18NName( Inter.getLocText("FR-Designer-Widget_Style")).putKeyValue(XCreatorConstants.PROPERTY_CATEGORY, "Advanced") @@ -92,11 +97,12 @@ public class XElementCase extends XBorderStyleWidgetCreator implements FormEleme public void propertyChange() { initStyle(); } + }), new CRPropertyDescriptor("margin", this.data.getClass()).setEditorClass(PaddingMarginEditor.class) .setI18NName(Inter.getLocText("FR-Layout_Padding")) .putKeyValue(XCreatorConstants.PROPERTY_CATEGORY, "Advanced"), - new CRPropertyDescriptor("showToolBar", this.data.getClass()).setEditorClass(BooleanEditor.class) + new CRPropertyDescriptor("ToolBars", this.data.getClass()).setEditorClass(ElementCaseToolBarEditor.class) .setI18NName(Inter.getLocText("Form-EC_toolbar")) .putKeyValue(XCreatorConstants.PROPERTY_CATEGORY, "Advanced") }; From 46b6f5c880e62de970c46ba14de3b0a90b7f098f Mon Sep 17 00:00:00 2001 From: zack Date: Fri, 21 Apr 2017 13:52:21 +0800 Subject: [PATCH 30/72] =?UTF-8?q?REPORT-1344=20=E5=91=BD=E5=90=8D=E8=A7=84?= =?UTF-8?q?=E8=8C=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/com/fr/design/designer/creator/XElementCase.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/designer_form/src/com/fr/design/designer/creator/XElementCase.java b/designer_form/src/com/fr/design/designer/creator/XElementCase.java index af268e9843..56aca1c43a 100644 --- a/designer_form/src/com/fr/design/designer/creator/XElementCase.java +++ b/designer_form/src/com/fr/design/designer/creator/XElementCase.java @@ -102,7 +102,7 @@ public class XElementCase extends XBorderStyleWidgetCreator implements FormEleme new CRPropertyDescriptor("margin", this.data.getClass()).setEditorClass(PaddingMarginEditor.class) .setI18NName(Inter.getLocText("FR-Layout_Padding")) .putKeyValue(XCreatorConstants.PROPERTY_CATEGORY, "Advanced"), - new CRPropertyDescriptor("ToolBars", this.data.getClass()).setEditorClass(ElementCaseToolBarEditor.class) + new CRPropertyDescriptor("toolBars", this.data.getClass()).setEditorClass(ElementCaseToolBarEditor.class) .setI18NName(Inter.getLocText("Form-EC_toolbar")) .putKeyValue(XCreatorConstants.PROPERTY_CATEGORY, "Advanced") }; From 6e352e28f6ee49e13bb9b2bdcc11668736ed964f Mon Sep 17 00:00:00 2001 From: "yaoh.wu" Date: Fri, 21 Apr 2017 14:41:18 +0800 Subject: [PATCH 31/72] =?UTF-8?q?=E6=97=A0JIRA=E4=BB=BB=E5=8A=A1=20?= =?UTF-8?q?=E7=BB=84=E4=BB=B6=E5=A4=8D=E7=94=A8=E4=B9=8B=E5=89=8Dmaster?= =?UTF-8?q?=E5=90=88=E5=88=B0dev=E6=97=B6=E4=B8=A2=E5=A4=B1=E7=9A=84?= =?UTF-8?q?=E4=BB=A3=E7=A0=81=E4=BB=A5=E5=8F=8A=E7=BB=84=E4=BB=B6=E5=A4=8D?= =?UTF-8?q?=E7=94=A8=E8=BF=91=E6=9C=9Fbug=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fr/design/beans/location/MoveUtils.java | 55 +---- .../beans/location/WidgetForbidWindow.java | 45 ---- .../com/fr/design/locale/designer.properties | 4 +- .../design/locale/designer_en_US.properties | 4 +- .../design/locale/designer_ja_JP.properties | 2 + .../design/locale/designer_zh_CN.properties | 2 + .../design/locale/designer_zh_TW.properties | 2 + .../layout/FRAbsoluteLayoutAdapter.java | 79 +++---- .../adapters/layout/FRFitLayoutAdapter.java | 81 +++---- .../beans/location/AccessDirection.java | 217 ++++++++---------- .../designer/beans/models/SelectionModel.java | 21 +- .../design/mainframe/FormSelectionUtils.java | 33 +-- 12 files changed, 220 insertions(+), 325 deletions(-) delete mode 100644 designer_base/src/com/fr/design/beans/location/WidgetForbidWindow.java diff --git a/designer_base/src/com/fr/design/beans/location/MoveUtils.java b/designer_base/src/com/fr/design/beans/location/MoveUtils.java index d898484464..d3dc94a08f 100644 --- a/designer_base/src/com/fr/design/beans/location/MoveUtils.java +++ b/designer_base/src/com/fr/design/beans/location/MoveUtils.java @@ -18,9 +18,7 @@ public class MoveUtils { public static final int SORPTION_UNIT = 5; private static final int EQUIDISTANTLINE_UNIT = 4; - public static WidgetForbidWindow widgetForbidWindow = new WidgetForbidWindow(); - - public static ArrayList equidistantLines = new ArrayList<>(); + private static ArrayList equidistantLines = new ArrayList<>(); private MoveUtils() { @@ -259,8 +257,7 @@ public class MoveUtils { equidistantLineInfo.setReference(bounds.y); equidistantLineInfo.setDirection(SwingConstants.BOTTOM); } - } - else if ((leftMiddleY > bounds.getY()) && (leftMiddleY < (bounds.getY() + bounds.getHeight()))){ + } else if ((leftMiddleY > bounds.getY()) && (leftMiddleY < (bounds.getY() + bounds.getHeight()))) { //当前操作rec在bounds的右侧 if (left > (bounds.getX() + bounds.getWidth())){ equidistantLineInfo.setDistance(left - (bounds.x + bounds.width)); @@ -279,13 +276,6 @@ public class MoveUtils { } } - public static void displayForbidWindow(int x, int y) { - widgetForbidWindow.showWindow(x, y); - } - - public static void hideForbidWindow() { - widgetForbidWindow.hideWindow(); - } /** * 吸附 @@ -318,25 +308,16 @@ public class MoveUtils { RectangleIterator iterator = designer.createRectangleIterator(); java.util.List cacheRecs = new ArrayList(); - //是否存在控件重叠 - boolean isWidgetsIntersects = false; - while (iterator.hasNext()) { - Rectangle bounds = iterator.nextRectangle(); - cacheRecs.add(bounds); - boolean isIntersects = operatingRectangle.intersects(bounds); - findX(px, bounds, left, right, width); - findY(py, bounds, top, bottom, height); - - if(!isParameterLayout){ - if(isIntersects) { - isWidgetsIntersects = true; - } - else{ - findEquidistantLine(bounds, left, top, height, width); - } - } - } - showForbiddenWindow(designer, x, y, isWidgetsIntersects); + while (iterator.hasNext()) { + Rectangle bounds = iterator.nextRectangle(); + cacheRecs.add(bounds); + findX(px, bounds, left, right, width); + findY(py, bounds, top, bottom, height); + + if (!isParameterLayout) { + findEquidistantLine(bounds, left, top, height, width); + } + } createXAbsorptionline(px, designer, width, cacheRecs); createYAbsorptionline(py, designer, height, cacheRecs); @@ -353,18 +334,6 @@ public class MoveUtils { return sorptionPoint; } - public static void showForbiddenWindow(RectangleDesigner designer, int x, int y, boolean isIntersects){ - if (isIntersects){ - if(designer.getDesignerLocationOnScreen() != null) { - displayForbidWindow(x + designer.getDesignerLocationOnScreen().x, y + designer.getDesignerLocationOnScreen().y); - } - designer.setWidgetsIntersected(true); - } - else{ - designer.setWidgetsIntersected(false); - hideForbidWindow(); - } - } private static void createXAbsorptionline(PlacePointing px, RectangleDesigner designer, int width, java.util.List cacheRecs) { Absorptionline line = null; diff --git a/designer_base/src/com/fr/design/beans/location/WidgetForbidWindow.java b/designer_base/src/com/fr/design/beans/location/WidgetForbidWindow.java deleted file mode 100644 index 7c645d0adb..0000000000 --- a/designer_base/src/com/fr/design/beans/location/WidgetForbidWindow.java +++ /dev/null @@ -1,45 +0,0 @@ -package com.fr.design.beans.location; - -import com.fr.base.BaseUtils; -import com.fr.design.gui.ibutton.UIButton; -import com.fr.design.icon.IconPathConstants; -import com.fr.general.Inter; - -import javax.swing.*; - -/** - * Created by zhouping on 2016/7/24. - */ -public class WidgetForbidWindow extends JWindow { - - private static final int WIDTH = 150; - private static final int HEIGHT = 20; - - private UIButton promptButton = new UIButton(Inter.getLocText("FR-Designer_Forbid_Widgets_Intersects"), BaseUtils.readIcon(IconPathConstants.FORBID_ICON_PATH)); - - /** - * 构造函数 - */ - public WidgetForbidWindow() { - this.add(promptButton); - this.setSize(WIDTH, HEIGHT); - } - - /** - * 在指定位置显示窗口, 默认将window的中心点放到指定位置上 - * - * @param x x坐标 - * @param y y坐标 - */ - public void showWindow(int x, int y) { - this.setLocation(x - WIDTH / 2, y - HEIGHT / 2); - this.setVisible(true); - } - - /** - * 隐藏当前窗口 - */ - public void hideWindow() { - this.setVisible(false); - } -} diff --git a/designer_base/src/com/fr/design/locale/designer.properties b/designer_base/src/com/fr/design/locale/designer.properties index e3ee039994..ac663b6d66 100644 --- a/designer_base/src/com/fr/design/locale/designer.properties +++ b/designer_base/src/com/fr/design/locale/designer.properties @@ -587,4 +587,6 @@ FR-Designer_Mouse_Click_Tips= FR-Designer-Move_Tab_First=move to first FR-Designer-Move_Tab_End=move to end FR-Designer-Move_Tab_Next=move to next -FR-Designer-Move_Tab_Prev=move to previous \ No newline at end of file +FR-Designer-Move_Tab_Prev=move to previous +FR-Designer_Too_Large_To_Paste=too large to paste +FR-Designer_Too_Small_To_Paste=Too small to paste diff --git a/designer_base/src/com/fr/design/locale/designer_en_US.properties b/designer_base/src/com/fr/design/locale/designer_en_US.properties index a86a7fb14f..94cba14c37 100644 --- a/designer_base/src/com/fr/design/locale/designer_en_US.properties +++ b/designer_base/src/com/fr/design/locale/designer_en_US.properties @@ -587,4 +587,6 @@ FR-Designer_Mouse_Click_Tips=The background of the mouse to click the button, in FR-Designer-Move_Tab_First=move to first FR-Designer-Move_Tab_End=move to end FR-Designer-Move_Tab_Next=move to next -FR-Designer-Move_Tab_Prev=move to previous \ No newline at end of file +FR-Designer-Move_Tab_Prev=move to previous +FR-Designer_Too_Large_To_Paste=Too large to paste! +FR-Designer_Too_Small_To_Paste=Too small to paste! diff --git a/designer_base/src/com/fr/design/locale/designer_ja_JP.properties b/designer_base/src/com/fr/design/locale/designer_ja_JP.properties index 943cf181d1..214978ed57 100644 --- a/designer_base/src/com/fr/design/locale/designer_ja_JP.properties +++ b/designer_base/src/com/fr/design/locale/designer_ja_JP.properties @@ -553,5 +553,7 @@ FR-Designer_Background_Clear= FR-Designer_Background_Image_Select= FR-Designer_Initial_Background_Tips= FR-Designer_Mouse_Move_Tips= +FR-Designer_Too_Large_To_Paste=\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u306E\u30B5\u30A4\u30BA\u306F\u30DC\u30FC\u30C0\u30FC\u306B\u8D85\u3048\u305F\u306E\u3067\u3001\u8CBC\u308A\u4ED8\u3051\u3067\u304D\u307E\u305B\u3093\uFF01 +FR-Designer_Too_Small_To_Paste=\u8A72\u5F53\u51E6\u306B\u8CBC\u308A\u4ED8\u3051\u3067\u304D\u307E\u305B\u3093\u3001\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u306E\u30B5\u30A4\u30BA\u306F\u9AD8\u3059\u304E\uFF01 FR-Designer_Mouse_Click_Tips= FR-Designer_Plugin_Should_Update_Please_Contact_Developer= diff --git a/designer_base/src/com/fr/design/locale/designer_zh_CN.properties b/designer_base/src/com/fr/design/locale/designer_zh_CN.properties index 726a6d0f61..93e219698b 100644 --- a/designer_base/src/com/fr/design/locale/designer_zh_CN.properties +++ b/designer_base/src/com/fr/design/locale/designer_zh_CN.properties @@ -588,3 +588,5 @@ FR-Designer_Background_Image_Select=\u9009\u62E9\u56FE\u7247 FR-Designer_Initial_Background_Tips=\u6309\u94AE\u7684\u521D\u59CB\u80CC\u666F FR-Designer_Mouse_Move_Tips=\u9F20\u6807\u79FB\u52A8\u5230\u6309\u94AE\u4E0A\u7684\u80CC\u666F\uFF0C\u82E5\u65E0\u5219\u4E0D\u6539\u53D8\u80CC\u666F FR-Designer_Mouse_Click_Tips=\u9F20\u6807\u70B9\u51FB\u6309\u94AE\u65F6\u80CC\u666F\uFF0C\u82E5\u65E0\u5219\u4E0D\u6539\u53D8\u80CC\u666F +FR-Designer_Too_Large_To_Paste=\u7EC4\u4EF6\u5927\u5C0F\u8D85\u51FA\u8FB9\u754C\uFF0C\u65E0\u6CD5\u7C98\u8D34\uFF01 +FR-Designer_Too_Small_To_Paste=\u6B64\u5904\u65E0\u6CD5\u7C98\u8D34\uFF0C\u5C0F\u4E8E\u7EC4\u4EF6\u6700\u5C0F\u9AD8\u5EA6\uFF01 diff --git a/designer_base/src/com/fr/design/locale/designer_zh_TW.properties b/designer_base/src/com/fr/design/locale/designer_zh_TW.properties index f8b28dba33..bb14426648 100644 --- a/designer_base/src/com/fr/design/locale/designer_zh_TW.properties +++ b/designer_base/src/com/fr/design/locale/designer_zh_TW.properties @@ -573,6 +573,8 @@ 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= FR-Designer_Mouse_Move_Tips= FR-Designer_Mouse_Click_Tips= \ No newline at end of file diff --git a/designer_form/src/com/fr/design/designer/beans/adapters/layout/FRAbsoluteLayoutAdapter.java b/designer_form/src/com/fr/design/designer/beans/adapters/layout/FRAbsoluteLayoutAdapter.java index 7810fc9a6f..539e60450f 100644 --- a/designer_form/src/com/fr/design/designer/beans/adapters/layout/FRAbsoluteLayoutAdapter.java +++ b/designer_form/src/com/fr/design/designer/beans/adapters/layout/FRAbsoluteLayoutAdapter.java @@ -1,7 +1,5 @@ package com.fr.design.designer.beans.adapters.layout; -import java.awt.*; - import com.fr.design.beans.GroupModel; import com.fr.design.designer.beans.ConstraintsGroupModel; import com.fr.design.designer.beans.HoverPainter; @@ -9,13 +7,14 @@ import com.fr.design.designer.beans.painters.FRAbsoluteLayoutPainter; import com.fr.design.designer.creator.*; import com.fr.design.designer.properties.BoundsGroupModel; import com.fr.design.designer.properties.FRAbsoluteLayoutPropertiesGroupModel; -import com.fr.form.ui.container.WAbsoluteLayout; import com.fr.design.utils.ComponentUtils; import com.fr.design.utils.gui.LayoutUtils; +import com.fr.form.ui.container.WAbsoluteLayout; import com.fr.general.ComparatorUtils; -import com.fr.form.ui.container.WAbsoluteLayout.BoundsWidget; import com.fr.general.FRLogger; +import java.awt.*; + public class FRAbsoluteLayoutAdapter extends FRBodyLayoutAdapter { //是不是添加到父容器上 private boolean isAdd2ParentLayout = false; @@ -74,48 +73,39 @@ public class FRAbsoluteLayoutAdapter extends FRBodyLayoutAdapter { XLayoutContainer topLayout = XCreatorUtils.getHotspotContainer((XCreator)comp).getTopLayout(); if(topLayout != null){ if (topLayout.isEditable()){ - return topLayoutAccept(creator, x, y, topLayout); + return topLayoutAccept(creator, x, y); } //绝对布局嵌套,处于内层,不可编辑,不添加,topLayout只能获取到最外层可编辑的布局 else if (((XLayoutContainer)topLayout.getParent()).acceptType(XWAbsoluteLayout.class)) { return false; + } else { + return acceptWidget(x, y); } - else { - return acceptWidget(creator, x, y); - } - } - else{ + } else { FRLogger.getLogger().error("top layout is null!"); } return false; } - //toplayout假如可以编辑的话就往里面添加组件 - private boolean topLayoutAccept(XCreator creator, int x, int y, XLayoutContainer topLayout) { - //判断有没有和当前控件重叠 - //先计算当前控件的位置 - int creatorX, creatorY; - if (XCreatorUtils.getParentXLayoutContainer(creator) != null) { - + //topLayout假如可以编辑的话就往里面添加组件 + private boolean topLayoutAccept(XCreator creator, int x, int y) { + //允许组件重叠,可以不判断有没有和当前控件重叠 + //先计算当前控件的位置 + int creatorX, creatorY; + if (XCreatorUtils.getParentXLayoutContainer(creator) != null) { Rectangle creatorRectangle = ComponentUtils.getRelativeBounds(creator); creatorX = creatorRectangle.x; creatorY = creatorRectangle.y; } else { + //这边计算得到的组件其实位置是正确的, + //因为传入的x和y已经加上了宽度或者高度的一半,再减去相同的宽度和高度的一半是没区别的, + // 例如高度为21,那么就是+10-10; + // 高度为20,那么就是+10-10; 没区别 int w = creator.getWidth() / 2; int h = creator.getHeight() / 2; creatorX = x - w; creatorY = y - h; - } - //再判断和布局中其他控件重叠 - Rectangle curRec = new Rectangle(creatorX, creatorY, creator.getWidth(), creator.getHeight()); - WAbsoluteLayout wAbsoluteLayout = (WAbsoluteLayout)topLayout.toData(); - for (int i = 0, count = wAbsoluteLayout.getWidgetCount(); i < count; i++) { - BoundsWidget temp = (BoundsWidget) wAbsoluteLayout.getWidget(i); - Rectangle rectangle = temp.getBounds(); - if (curRec.intersects(rectangle)){ - return false; - } } if (creatorX < 0 || creatorX + creator.getWidth() > container.getWidth()) { return false; @@ -168,16 +158,15 @@ public class FRAbsoluteLayoutAdapter extends FRBodyLayoutAdapter { return !ComparatorUtils.equals(trisectAreaDirect, 0); } - //当前绝对布局不可编辑,就当成一个控件,组件添加在周围 - private boolean acceptWidget(XCreator creator, int x, int y){ - isFindRelatedComps = false; - //拖入组件判断时,先判断是否为交叉点区域,其次三等分区域,再次平分区域 - Component comp = container.getComponentAt(x, y); - boolean isMatchEdge = false; - //如果当前处于边缘地带, 那么就把他贴到父容器上 - XLayoutContainer parent = container.findNearestFit(); - container = parent != null ? parent : container; - isAdd2ParentLayout = true; + //当前绝对布局不可编辑,就当成一个控件,组件添加在周围 + private boolean acceptWidget(int x, int y) { + isFindRelatedComps = false; + //拖入组件判断时,先判断是否为交叉点区域,其次三等分区域,再次平分区域 + Component comp = container.getComponentAt(x, y); + //如果当前处于边缘地带, 那么就把他贴到父容器上 + XLayoutContainer parent = container.findNearestFit(); + container = parent != null ? parent : container; + isAdd2ParentLayout = true; int componentHeight = comp.getHeight(); int componentWidth = comp.getWidth(); @@ -244,7 +233,7 @@ public class FRAbsoluteLayoutAdapter extends FRBodyLayoutAdapter { if (creator.hasTitleStyle()) { addParentCreator(creator); } else { - container.add(creator, creator.toData().getWidgetName()); + container.add(creator, creator.toData().getWidgetName(),0); } XWAbsoluteLayout layout = (XWAbsoluteLayout) container; layout.updateBoundsWidget(creator); @@ -255,7 +244,7 @@ public class FRAbsoluteLayoutAdapter extends FRBodyLayoutAdapter { if (creator.shouldScaleCreator() || creator.hasTitleStyle()) { addParentCreator(creator); } else { - container.add(creator, creator.toData().getWidgetName()); + container.add(creator, creator.toData().getWidgetName(),0); } XWFitLayout layout = (XWFitLayout) container; // 更新对应的BoundsWidget @@ -274,7 +263,7 @@ public class FRAbsoluteLayoutAdapter extends FRBodyLayoutAdapter { private void addParentCreator(XCreator child) { XLayoutContainer parentPanel = child.initCreatorWrapper(child.getHeight()); - container.add(parentPanel, child.toData().getWidgetName()); + container.add(parentPanel, child.toData().getWidgetName(),0); } /** @@ -325,17 +314,15 @@ public class FRAbsoluteLayoutAdapter extends FRBodyLayoutAdapter { int height = creator.getHeight(); int width = creator.getWidth(); if (x < 0) { - width += x; - x = 0; + x = container.getX(); } else if (x + creator.getWidth() > container.getWidth()) { - width = container.getWidth() - x; + x = container.getWidth() - width; } if (y < 0) { - height += y; - y = 0; + y = container.getY(); } else if (y + creator.getHeight() > container.getHeight()) { - height = container.getHeight() - y; + y = container.getHeight() - height; } creator.setBounds(x, y, width, height); diff --git a/designer_form/src/com/fr/design/designer/beans/adapters/layout/FRFitLayoutAdapter.java b/designer_form/src/com/fr/design/designer/beans/adapters/layout/FRFitLayoutAdapter.java index 7401b8d077..3a030f7f2b 100644 --- a/designer_form/src/com/fr/design/designer/beans/adapters/layout/FRFitLayoutAdapter.java +++ b/designer_form/src/com/fr/design/designer/beans/adapters/layout/FRFitLayoutAdapter.java @@ -3,12 +3,6 @@ */ package com.fr.design.designer.beans.adapters.layout; -import java.awt.Component; -import java.awt.Dimension; -import java.awt.Rectangle; -import java.util.ArrayList; -import java.util.List; - import com.fr.design.beans.GroupModel; import com.fr.design.designer.beans.ConstraintsGroupModel; import com.fr.design.designer.beans.HoverPainter; @@ -22,14 +16,16 @@ import com.fr.design.designer.creator.cardlayout.XWCardMainBorderLayout; import com.fr.design.designer.creator.cardlayout.XWTabFitLayout; import com.fr.design.designer.properties.FRFitLayoutConstraints; import com.fr.design.designer.properties.FRFitLayoutPropertiesGroupModel; -import com.fr.design.file.HistoryTemplateListPane; -import com.fr.design.mainframe.JForm; import com.fr.design.utils.ComponentUtils; import com.fr.form.ui.LayoutBorderStyle; +import com.fr.form.ui.container.WAbsoluteLayout; import com.fr.form.ui.container.WLayout; import com.fr.form.ui.container.cardlayout.WCardMainBorderLayout; import com.fr.general.ComparatorUtils; -import com.fr.form.ui.container.WAbsoluteLayout.BoundsWidget; + +import java.awt.*; +import java.util.ArrayList; +import java.util.List; /** * 自适应布局的容器适配器 @@ -52,6 +48,7 @@ public class FRFitLayoutAdapter extends FRBodyLayoutAdapter { public void setEdit(boolean edit) { isEdit = edit; } + /** * 构造函数 * @@ -134,7 +131,7 @@ public class FRFitLayoutAdapter extends FRBodyLayoutAdapter { isFindRelatedComps = false; //拖入组件判断时,先判断是否为交叉点区域,其次三等分区域,再次平分区域 Component comp = container.getComponentAt(x, y); - if (checkInterval(comp)) { + if (comp == null || checkInterval(comp)) { return false; } //如果当前处于边缘地带, 那么就把他贴到父容器上 @@ -269,25 +266,14 @@ public class FRFitLayoutAdapter extends FRBodyLayoutAdapter { return super.isCrossPointArea(currentComp, x, y); } - protected void initCompsList() { - super.initCompsList(); - } - - protected void clearCompsList() { - super.clearCompsList(); - } - protected Rectangle getLayoutBound(XWCardMainBorderLayout mainLayout){ + protected Rectangle getLayoutBound(XWCardMainBorderLayout mainLayout) { return mainLayout.getBounds(); } private Rectangle adjustBackupBound(Rectangle backupBound, XWCardMainBorderLayout mainLayout) { - // 参数界面高度对纵坐标产生的影响 - JForm jform = (JForm) (HistoryTemplateListPane.getInstance().getCurrentEditingTemplate()); - if (jform.getFormDesign().getParaComponent() != null) { - backupBound.y -= jform.getFormDesign().getParaHeight(); - } - + // zhouping: REPORT-2334 表单tab布局中图表放大缩小会明显 + // 这边不需要单独处理参数面板高度了,下面的方法中获取的是XWCardMainBorderLayout相对坐标 Rectangle rec = getLayoutBound(mainLayout); // XWTabLayout里面的横纵坐标收到外层XWCardMainBorderLayout的横纵坐标影响 // 减掉之后可以按照它原来的逻辑执行 @@ -353,13 +339,13 @@ public class FRFitLayoutAdapter extends FRBodyLayoutAdapter { * 拖拽控件边框后,根据控件的大小尺寸,进行相关组件的调整 * * @param backupBound 边界备份 - * @param bounds 组件边界 - * @param xCreator 组件 - * @param row 选中的行 - * @param difference 偏移量 + * @param bounds 组件边界 + * @param xCreator 组件 + * @param row 选中的行 + * @param difference 偏移量 */ public void calculateBounds(Rectangle backupBound, Rectangle bounds, XCreator xCreator, int row, int difference) { - Rectangle rc = new Rectangle(0,0,0,0); + Rectangle rc = new Rectangle(0, 0, 0, 0); XLayoutContainer parent = XCreatorUtils.getParentXLayoutContainer(xCreator); if (parent != null) { Rectangle rec = ComponentUtils.getRelativeBounds(parent); @@ -370,17 +356,17 @@ public class FRFitLayoutAdapter extends FRBodyLayoutAdapter { //处理左右延伸 switch (row) { case 0: - if (backupBound.width + backupBound.x == container.getWidth() - margin.getRight() +rc.x) { + if (backupBound.width + backupBound.x == container.getWidth() - margin.getRight() + rc.x) { x += difference; } break; case 1: - if(backupBound.y + backupBound.height == container.getHeight() - margin.getBottom() +rc.y){ + if (backupBound.y + backupBound.height == container.getHeight() - margin.getBottom() + rc.y) { y += difference; } break; } - bounds.setLocation(x,y); + bounds.setLocation(x, y); xCreator.setBackupBound(backupBound); xCreator.setBounds(bounds); this.fix(xCreator); @@ -424,7 +410,7 @@ public class FRFitLayoutAdapter extends FRBodyLayoutAdapter { // 根据需要依附的位置调整拖拽的坐标值 private int adjustCoordinateByDependingLine(int coordinate, int[] coordinates) { - if(!isEdit) { + if (!isEdit) { for (int i = 0; i < coordinates.length; i++) { if (coordinate == coordinates[i]) { continue; @@ -440,7 +426,7 @@ public class FRFitLayoutAdapter extends FRBodyLayoutAdapter { // 根据需要依附的位置调整拖拽的距离 private int adjustDiffByDependingLine(int coordinate, int[] coordinates, int diff) { - if(!isEdit) { + if (!isEdit) { for (int i = 0; i < coordinates.length; i++) { if (coordinate + diff > coordinates[i] - DEPENDING_SCOPE && coordinate + diff < coordinates[i] + DEPENDING_SCOPE) { diff = coordinates[i] - coordinate; @@ -558,8 +544,8 @@ public class FRFitLayoutAdapter extends FRBodyLayoutAdapter { difference = Math.max(difference, minWidth - getMinWidth(leftComps)); } //重新计算左右两侧组件size、point - if (CalculateLefttRelatComponent(difference)) { - CalculateRightRelatComponent(objx + difference, -difference); + if (calculateLefttRelatComponent(difference)) { + calculateRightRelatComponent(objx + difference, -difference); } } @@ -674,10 +660,9 @@ public class FRFitLayoutAdapter extends FRBodyLayoutAdapter { difference = Math.max(difference, minHeight - getMinHeight(upComps)); } //重新计算上下两侧组件size、point - if (CalculateUpRelatComponent(difference)) { - CalculateDownRelatComponent(objY + difference, -difference); + if (calculateUpRelatComponent(difference)) { + calculateDownRelatComponent(objY + difference, -difference); } - ; } /** @@ -757,13 +742,13 @@ public class FRFitLayoutAdapter extends FRBodyLayoutAdapter { int height = creatorHeight; calculateRelatedComponent(x, y, width, height); if (!rightComps.isEmpty() && getAllHeight(rightComps) == height) { - CalculateRightRelatComponent(x, width + actualVal); + calculateRightRelatComponent(x, width + actualVal); } else if (!leftComps.isEmpty() && getAllHeight(leftComps) == height) { - CalculateLefttRelatComponent(width + actualVal); + calculateLefttRelatComponent(width + actualVal); } else if (!downComps.isEmpty() && getAllWidth(downComps) == width) { - CalculateDownRelatComponent(y, height + actualVal); + calculateDownRelatComponent(y, height + actualVal); } else if (!upComps.isEmpty() && getAllWidth(upComps) == width) { - CalculateUpRelatComponent(height + actualVal); + calculateUpRelatComponent(height + actualVal); } else { // 由于布局三等分的存在,可能会出现删除组件时,找不到关联的组件填充,此时特殊处理 calculateNoRelatedComponent(x, y, width, height); @@ -1026,7 +1011,7 @@ public class FRFitLayoutAdapter extends FRBodyLayoutAdapter { setAdjustedSize(tabLayout, offset, isHor); for (int m = 0; m < tabLayout.getComponentCount(); m++) { XCreator childCreator = tabLayout.getXCreator(m); - BoundsWidget wgt = (BoundsWidget) tabLayout.toData().getBoundsWidget(childCreator.toData()); + WAbsoluteLayout.BoundsWidget wgt = (WAbsoluteLayout.BoundsWidget) tabLayout.toData().getBoundsWidget(childCreator.toData()); wgt.setBounds(tabLayout.getComponent(m).getBounds()); } adjustCreatorsSize(percent, tabLayout, isHor); @@ -1069,7 +1054,7 @@ public class FRFitLayoutAdapter extends FRBodyLayoutAdapter { * @param objX 调整后的坐标x * @param objWidth 调整后的宽度 */ - protected void CalculateRightRelatComponent(int objX, int objWidth) { + protected void calculateRightRelatComponent(int objX, int objWidth) { int count = rightComps.size(); for (int i = 0; i < count; i++) { XCreator creator = (XCreator) rightComps.get(i); @@ -1109,7 +1094,7 @@ public class FRFitLayoutAdapter extends FRBodyLayoutAdapter { /** * 删除或拉伸控件左边框时 调整左侧的组件位置大小; */ - protected boolean CalculateLefttRelatComponent(int objWidth) { + protected boolean calculateLefttRelatComponent(int objWidth) { if (isBeyondAdjustWidthScope(objWidth)) { return false; } @@ -1127,7 +1112,7 @@ public class FRFitLayoutAdapter extends FRBodyLayoutAdapter { /** * 删除或拉伸下边框 调整下方的组件位置大小 */ - protected void CalculateDownRelatComponent(int objY, int objHeight) { + protected void calculateDownRelatComponent(int objY, int objHeight) { int count = downComps.size(); for (int i = 0; i < count; i++) { XCreator creator = (XCreator) downComps.get(i); @@ -1167,7 +1152,7 @@ public class FRFitLayoutAdapter extends FRBodyLayoutAdapter { /** * 删除或拉伸上边框 调整上方的组件位置大小 */ - protected boolean CalculateUpRelatComponent(int objHeight) { + protected boolean calculateUpRelatComponent(int objHeight) { if (isBeyondAdjustHeightScope(objHeight)) { return false; } diff --git a/designer_form/src/com/fr/design/designer/beans/location/AccessDirection.java b/designer_form/src/com/fr/design/designer/beans/location/AccessDirection.java index 572ac721e9..3538d2fd9f 100644 --- a/designer_form/src/com/fr/design/designer/beans/location/AccessDirection.java +++ b/designer_form/src/com/fr/design/designer/beans/location/AccessDirection.java @@ -27,32 +27,30 @@ public abstract class AccessDirection implements Direction { abstract int getCursor(); - protected abstract Rectangle getDraggedBounds(int dx, int dy, Rectangle current_bounds, FormDesigner designer, - Rectangle oldbounds); - - protected int[] sorption(int x, int y,Rectangle current_bounds, FormDesigner designer) { - // 自适应布局不需要吸附线,但需要对齐线,对齐线后面处理 - if (!designer.hasWAbsoluteLayout()) { - designer.getStateModel().setEquidistantLine(null); - designer.getStateModel().setXAbsorptionline(null); - designer.getStateModel().setYAbsorptionline(null); - return new int[] { x, y }; - } else { - int posy = current_bounds.y; - - Point relativePoint = getRelativePoint(x, y, current_bounds,designer); - sorptionPoint(relativePoint,current_bounds, designer); - return new int[] { relativePoint.x, relativePoint.y }; - } + protected abstract Rectangle getDraggedBounds(int dx, int dy, Rectangle currentBounds, FormDesigner designer, + Rectangle oldBounds); + + protected int[] sorption(int x, int y, Rectangle currentBounds, FormDesigner designer) { + // 自适应布局不需要吸附线,但需要对齐线,对齐线后面处理 + if (!designer.hasWAbsoluteLayout()) { + designer.getStateModel().setEquidistantLine(null); + designer.getStateModel().setXAbsorptionline(null); + designer.getStateModel().setYAbsorptionline(null); + return new int[]{x, y}; + } else { + Point relativePoint = getRelativePoint(x, y, currentBounds, designer); + sorptionPoint(relativePoint, currentBounds, designer); + return new int[]{relativePoint.x, relativePoint.y}; + } - } + } - protected Point getRelativePoint(int x, int y, Rectangle current_bounds,FormDesigner designer) { - if (x < 0) { - x = 0; - } else if (x > designer.getRootComponent().getWidth() && designer.getSelectionModel().hasSelectionComponent()) { - x = designer.getRootComponent().getWidth(); - } + protected Point getRelativePoint(int x, int y, Rectangle currentBounds, FormDesigner designer) { + if (x < 0) { + x = 0; + } else if (x > designer.getRootComponent().getWidth() && designer.getSelectionModel().hasSelectionComponent()) { + x = designer.getRootComponent().getWidth(); + } //参数面板可以无下限拉长 if (y < 0) { y = 0; @@ -63,112 +61,101 @@ public abstract class AccessDirection implements Direction { return new Point(x, y); } - protected void sorptionPoint(Point point, Rectangle current_bounds,FormDesigner designer) { - boolean findInX = current_bounds.getWidth() <= MoveUtils.SORPTION_UNIT ? true : false; - boolean findInY = current_bounds.getHeight() <= MoveUtils.SORPTION_UNIT ? true : false; - WAbsoluteLayout layout =getLayout(designer); - FormSelection selection = designer.getSelectionModel().getSelection(); - boolean isWidgetsIntersect = false; - for (int i = 0, count = layout.getWidgetCount(); i < count; i++) { - BoundsWidget temp = (BoundsWidget) layout.getWidget(i); - if (!temp.isVisible() || selection.contains(temp.getWidget())) { - continue; - } - Rectangle bounds = getWidgetRelativeBounds(temp.getBounds(), selection); - if (!findInX) { - int x1 = bounds.x; - if (Math.abs(x1 - point.x) <= MoveUtils.SORPTION_UNIT) { - point.x = x1; - findInX = true; - } - int x2 = bounds.x + bounds.width; - if (Math.abs(x2 - point.x) <= MoveUtils.SORPTION_UNIT) { - point.x = x2; - findInX = true; - } - } - if (!findInY) { - int y1 = bounds.y; - if (Math.abs(y1 - point.y) <= MoveUtils.SORPTION_UNIT) { - point.y = y1; - findInY = true; - } - int y2 = bounds.y + bounds.height; - if (Math.abs(y2 - point.y) <= MoveUtils.SORPTION_UNIT) { - point.y = y2; - findInY = true; - } + protected void sorptionPoint(Point point, Rectangle currentBounds, FormDesigner designer) { + boolean findInX = currentBounds.getWidth() <= MoveUtils.SORPTION_UNIT; + boolean findInY = currentBounds.getHeight() <= MoveUtils.SORPTION_UNIT; + WAbsoluteLayout layout = getLayout(designer); + FormSelection selection = designer.getSelectionModel().getSelection(); + for (int i = 0, count = layout.getWidgetCount(); i < count; i++) { + BoundsWidget temp = (BoundsWidget) layout.getWidget(i); + if (!temp.isVisible() || selection.contains(temp.getWidget())) { + continue; + } + Rectangle bounds = getWidgetRelativeBounds(temp.getBounds(), selection); + if (!findInX) { + int x1 = bounds.x; + if (Math.abs(x1 - point.x) <= MoveUtils.SORPTION_UNIT) { + point.x = x1; + findInX = true; + } + int x2 = bounds.x + bounds.width; + if (Math.abs(x2 - point.x) <= MoveUtils.SORPTION_UNIT) { + point.x = x2; + findInX = true; + } + } + if (!findInY) { + int y1 = bounds.y; + if (Math.abs(y1 - point.y) <= MoveUtils.SORPTION_UNIT) { + point.y = y1; + findInY = true; + } + int y2 = bounds.y + bounds.height; + if (Math.abs(y2 - point.y) <= MoveUtils.SORPTION_UNIT) { + point.y = y2; + findInY = true; + } } if (findInX && findInY) { break; } - if (current_bounds.intersects(bounds) && !(layout instanceof WParameterLayout)){ - isWidgetsIntersect = true; - } - } - processRectangleIntersects(designer, point.x, point.y, isWidgetsIntersect); - setDesignerStateModelProperties(designer, findInX, findInY, current_bounds, point); - } + } + setDesignerStateModelProperties(designer, findInX, findInY, currentBounds, point); + } - private void setDesignerStateModelProperties (FormDesigner designer, boolean findInX, boolean findInY, Rectangle current_bounds, Point point) { - designer.getStateModel().setXAbsorptionline(findInX && current_bounds.getWidth() > MoveUtils.SORPTION_UNIT ? Absorptionline.createXAbsorptionline(point.x) : null); - designer.getStateModel().setYAbsorptionline(findInY && current_bounds.getHeight() > MoveUtils.SORPTION_UNIT ? Absorptionline.createYAbsorptionline(point.y) : null); - designer.getStateModel().setEquidistantLine(null); - } + private void setDesignerStateModelProperties(FormDesigner designer, boolean findInX, boolean findInY, Rectangle + currentBounds, Point point) { + designer.getStateModel().setXAbsorptionline(findInX && currentBounds.getWidth() > MoveUtils.SORPTION_UNIT ? Absorptionline.createXAbsorptionline(point.x) : null); + designer.getStateModel().setYAbsorptionline(findInY && currentBounds.getHeight() > MoveUtils.SORPTION_UNIT ? Absorptionline.createYAbsorptionline(point.y) : null); + designer.getStateModel().setEquidistantLine(null); + } - private Rectangle getWidgetRelativeBounds(Rectangle bounds, FormSelection selection){ - Rectangle relativeRec = new Rectangle(bounds.x, bounds.y, bounds.width, bounds.height); - XLayoutContainer parent = XCreatorUtils.getParentXLayoutContainer(selection.getSelectedCreator()); - if (parent == null) { - return relativeRec; - } - Rectangle rec = ComponentUtils.getRelativeBounds(parent); - relativeRec.x += rec.x; - relativeRec.y += rec.y; - return relativeRec; - } + private Rectangle getWidgetRelativeBounds(Rectangle bounds, FormSelection selection) { + Rectangle relativeRec = new Rectangle(bounds.x, bounds.y, bounds.width, bounds.height); + XLayoutContainer parent = XCreatorUtils.getParentXLayoutContainer(selection.getSelectedCreator()); + if (parent == null) { + return relativeRec; + } + Rectangle rec = ComponentUtils.getRelativeBounds(parent); + relativeRec.x += rec.x; + relativeRec.y += rec.y; + return relativeRec; + } - private void processRectangleIntersects(FormDesigner designer, int x, int y, boolean isIntersects){ - if(isIntersects){ - if(designer.getLocationOnScreen() != null) { - MoveUtils.displayForbidWindow(x + designer.getLocationOnScreen().x, y + designer.getLocationOnScreen().y); - } - designer.setWidgetsIntersect(true); - } - else{ - MoveUtils.hideForbidWindow(); - designer.setWidgetsIntersect(false); - } - } private WAbsoluteLayout getLayout(final FormDesigner designer){ XLayoutContainer formLayoutContainer = (XLayoutContainer) XCreatorUtils.createXCreator( designer.getTarget().getContainer()); WAbsoluteLayout layout; - if (formLayoutContainer.acceptType(XWBorderLayout.class)){//看起来这边的作用应该是为了区别cpt(得到XWParameterLayout)还是frm(得到XWBorderLayout)的参数界面 - Container container = designer.getSelectionModel().getSelection().getSelectedCreator().getParent(); - if(container instanceof XWAbsoluteLayout){ - layout = ((XWAbsoluteLayout)container).toData(); - } - else { - layout = (WAbsoluteLayout) designer.getParaComponent().toData(); - } - } else{ + if (formLayoutContainer.acceptType(XWBorderLayout.class)) {//看起来这边的作用应该是为了区别cpt(得到XWParameterLayout)还是frm(得到XWBorderLayout)的参数界面 + Container container = designer.getSelectionModel().getSelection().getSelectedCreator().getParent(); + if (container instanceof XWAbsoluteLayout) { + layout = ((XWAbsoluteLayout) container).toData(); + } else { + layout = (WAbsoluteLayout) designer.getParaComponent().toData(); + } + } else { layout = (WAbsoluteLayout) designer.getTarget().getContainer(); } - return layout; + return layout; } - /** - * 拖拽 - * @param dx 坐标x - * @param dy 坐标y - * @param designer 设计界面 - */ - public void drag(int dx, int dy, FormDesigner designer) { - Rectangle rec = getDraggedBounds(dx, dy, designer.getSelectionModel().getSelection().getRelativeBounds(), designer, designer.getSelectionModel().getSelection().getBackupBounds()); + /** + * 拖拽 + * + * @param dx 坐标x + * @param dy 坐标y + * @param designer 设计界面 + */ + public void drag(int dx, int dy, FormDesigner designer) { + Rectangle rec = getDraggedBounds(dx, dy, designer.getSelectionModel().getSelection().getRelativeBounds(), designer, designer.getSelectionModel().getSelection().getBackupBounds()); + if (rec != null) { + designer.getSelectionModel().getSelection().setSelectionBounds(rec, designer); + } else { + return; + } //设定控件最小高度21,因每次拖曳至少移动1,防止控件高度等于21时,拖曳导致rec.y的变化使得控件不停的向上或向下移动。 if(rec.height == MINHEIGHT){ ymin = rec.y; @@ -191,10 +178,8 @@ public abstract class AccessDirection implements Direction { rec.width = MINWIDTH; rec.x = xmin; } - if(rec != null) { - designer.getSelectionModel().getSelection().setSelectionBounds(rec, designer); - } - } + + } /** * 更新鼠标指针形状 diff --git a/designer_form/src/com/fr/design/designer/beans/models/SelectionModel.java b/designer_form/src/com/fr/design/designer/beans/models/SelectionModel.java index 5bd159a43e..13eaa18ac3 100644 --- a/designer_form/src/com/fr/design/designer/beans/models/SelectionModel.java +++ b/designer_form/src/com/fr/design/designer/beans/models/SelectionModel.java @@ -27,7 +27,7 @@ import java.util.ArrayList; public class SelectionModel { //被粘贴组件在所选组件位置处往下、往右各错开20像素。执行多次粘贴时,在上一次粘贴的位置处错开20像素。 private static final int DELTA_X_Y = 20; //粘贴时候的偏移距离 - private static final double OFFSET_RELATIVE = 0.78; + private static final double OFFSET_RELATIVE = 0.80; private static FormSelection clipboard = new FormSelection(); private FormDesigner designer; private FormSelection selection; @@ -142,14 +142,29 @@ public class SelectionModel { int leftUpY = container.toData().getMargin().getTop() + 1; //选中第一个坐标点坐在的组件 selection.setSelectedCreator((XCreator) container.getComponentAt(leftUpX, leftUpY)); - pasteFromClipBoard(); + Rectangle rectangle = selection.getRelativeBounds(); + if (hasSelectedPasteSource()) { + selectedPaste(); + } else { + FormSelectionUtils.paste2Container(designer, container, clipboard, + rectangle.x + rectangle.width / 2, + rectangle.y + DELTA_X_Y); + } } else { //自适应布局编辑器内部左上角第一个坐标点 int leftUpX = designer.getRootComponent().toData().getMargin().getLeft() + 1; int leftUpY = designer.getRootComponent().toData().getMargin().getTop() + 1; //选中第一个坐标点坐在的组件 selection.setSelectedCreator((XCreator) designer.getRootComponent().getComponentAt(leftUpX, leftUpY)); - pasteFromClipBoard(); + Rectangle rectangle = selection.getRelativeBounds(); + if (hasSelectedPasteSource()) { + selectedPaste(); + } else { + FormSelectionUtils.paste2Container(designer, designer.getRootComponent(), + clipboard, + rectangle.x + rectangle.width / 2, + rectangle.y + DELTA_X_Y); + } } } else { //绝对布局 diff --git a/designer_form/src/com/fr/design/mainframe/FormSelectionUtils.java b/designer_form/src/com/fr/design/mainframe/FormSelectionUtils.java index 1978e8432b..90945b1e80 100644 --- a/designer_form/src/com/fr/design/mainframe/FormSelectionUtils.java +++ b/designer_form/src/com/fr/design/mainframe/FormSelectionUtils.java @@ -132,29 +132,18 @@ public class FormSelectionUtils { XLayoutContainer container = layoutAdapter.getContainer(); boolean xOut = x < 0 || x + copiedCreator.getWidth() / 2 + xoffset > container.getWidth(); boolean yOut = y < 0 || y + copiedCreator.getHeight() / 2 + yoffset > container.getHeight(); - /* - * 组件原始位置位于布局的右下角, - * 和布局右下边界线紧挨, - * 粘贴时组件在原始位置向左错开20像素。 - * x,y同时越界 - */ - if (xOut && yOut) { - //向左偏移 - x = container.getWidth() - copiedCreator.getWidth() / 2 - DELAY_X_Y - xoffset; + + y = yOut ? container.getHeight() - copiedCreator.getHeight() / 2 - yoffset : y; + boolean isEdge = (x - DELAY_X_Y == container.getWidth() - copiedCreator.getWidth() / 2 - xoffset); + if (xOut) { + if (isEdge) { + //向左偏移 + x = container.getWidth() - copiedCreator.getWidth() / 2 - DELAY_X_Y - xoffset; + } //紧贴下边界 - y = container.getHeight() - copiedCreator.getHeight() / 2 - yoffset; - return new Point(x, y); - } - /* - * 组件原始位置与布局边界距离小于20像素(下边界&右边界同时小于或者任意一个边界小于), - * 则粘贴时距离小于20像素一侧直接贴近布局边界, - * 距离大于20像素的一侧正常错开。 - * x,y中只有一个越界 - */ - if ((xOut || yOut)) { - x = xOut ? container.getWidth() - copiedCreator.getWidth() / 2 - xoffset : x; - y = yOut ? container.getHeight() - copiedCreator.getHeight() / 2 - yoffset : y; - return new Point(x, y); + else { + x = container.getWidth() - copiedCreator.getWidth() / 2 - xoffset; + } } } return new Point(x, y); From 92d1f8209cce7d6e95de62b02a2d75d95d34392f Mon Sep 17 00:00:00 2001 From: plough Date: Fri, 21 Apr 2017 15:43:47 +0800 Subject: [PATCH 32/72] =?UTF-8?q?REPORT-2368=20=E9=A2=84=E5=AE=9A=E4=B9=89?= =?UTF-8?q?=E6=8E=A7=E4=BB=B6=E8=AE=BE=E7=BD=AE=E4=BA=86=E4=B8=8D=E5=8F=AF?= =?UTF-8?q?=E8=A7=81=EF=BC=8C=E5=9C=A8=E5=8F=82=E6=95=B0=E9=9D=A2=E6=9D=BF?= =?UTF-8?q?=E4=B8=8A=E8=BF=98=E6=98=AF=E5=8F=AF=E8=A7=81=E7=9A=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/com/fr/design/widget/CellWidgetCardPane.java | 9 --------- 1 file changed, 9 deletions(-) diff --git a/designer/src/com/fr/design/widget/CellWidgetCardPane.java b/designer/src/com/fr/design/widget/CellWidgetCardPane.java index 8ba9d32350..12f3137b40 100644 --- a/designer/src/com/fr/design/widget/CellWidgetCardPane.java +++ b/designer/src/com/fr/design/widget/CellWidgetCardPane.java @@ -88,15 +88,6 @@ public class CellWidgetCardPane extends BasicPane { this.tabbedPane.setEnabled(true); } - attriTabPane.remove(widgetPropertyPane); - widgetPropertyPane = new BasicWidgetPropertySettingPane(); - JPanel northPane = FRGUIPaneFactory.createBorderLayout_S_Pane(); - northPane.setBorder(BorderFactory.createEmptyBorder(5, 8, 0, 8)); - JPanel basic = FRGUIPaneFactory.createTitledBorderPane(Inter.getLocText("FR-Designer_Form_Basic_Properties")); - northPane.add(basic); - basic.add(widgetPropertyPane); - attriTabPane.add(northPane, BorderLayout.NORTH); - WidgetDefinePaneFactory.RN rn = WidgetDefinePaneFactory.createWidgetDefinePane(cellWidget, new Operator() { @Override public void did(DataCreatorUI ui, String cardName) { From b5024a0547fc23b908a7a645a6eee15cd4bb6f28 Mon Sep 17 00:00:00 2001 From: plough Date: Fri, 21 Apr 2017 16:27:51 +0800 Subject: [PATCH 33/72] =?UTF-8?q?REPORT-2368=20=E4=BF=AE=E6=94=B9=E6=8E=A7?= =?UTF-8?q?=E4=BB=B6=E8=AE=BE=E7=BD=AE=E7=95=8C=E9=9D=A2=E5=AF=B9=E2=80=9C?= =?UTF-8?q?=E5=9F=BA=E6=9C=AC=E5=B1=9E=E6=80=A7=E2=80=9D=E9=9D=A2=E6=9D=BF?= =?UTF-8?q?=E7=9A=84=E5=88=9D=E5=A7=8B=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- designer/src/com/fr/design/widget/CellWidgetCardPane.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/designer/src/com/fr/design/widget/CellWidgetCardPane.java b/designer/src/com/fr/design/widget/CellWidgetCardPane.java index 12f3137b40..d286cc1900 100644 --- a/designer/src/com/fr/design/widget/CellWidgetCardPane.java +++ b/designer/src/com/fr/design/widget/CellWidgetCardPane.java @@ -67,7 +67,12 @@ public class CellWidgetCardPane extends BasicPane { treeTabPane = FRGUIPaneFactory.createBorderLayout_L_Pane(); widgetPropertyPane = new BasicWidgetPropertySettingPane(); - attriTabPane.add(widgetPropertyPane, BorderLayout.NORTH); + JPanel northPane = FRGUIPaneFactory.createBorderLayout_S_Pane(); + northPane.setBorder(BorderFactory.createEmptyBorder(5, 8, 0, 8)); + JPanel basic = FRGUIPaneFactory.createTitledBorderPane(Inter.getLocText("FR-Designer_Form_Basic_Properties")); + northPane.add(basic); + basic.add(widgetPropertyPane); + attriTabPane.add(northPane, BorderLayout.NORTH); attriCardPane = FRGUIPaneFactory.createCardLayout_S_Pane(); attriTabPane.add(attriCardPane, BorderLayout.CENTER); attriCardLayout = (CardLayout) attriCardPane.getLayout(); From c93986c3973154ff6861d7d75863f019fc4ef353 Mon Sep 17 00:00:00 2001 From: "yaoh.wu" Date: Mon, 24 Apr 2017 09:20:52 +0800 Subject: [PATCH 34/72] =?UTF-8?q?REPORT-2273=20=E8=BF=9C=E7=A8=8B=E8=AE=BE?= =?UTF-8?q?=E8=AE=A1=E6=95=B0=E6=8D=AE=E5=BA=93=E8=BF=9E=E6=8E=A5=E6=88=90?= =?UTF-8?q?=E5=8A=9F=EF=BC=8C=E9=A2=84=E8=A7=88=E6=8A=A5=E9=94=99=EF=BC=8C?= =?UTF-8?q?datasourcexml=E4=BF=9D=E5=AD=98=E5=A4=B1=E8=B4=A5=E9=97=AE?= =?UTF-8?q?=E9=A2=98=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../actions/server/ConnectionListAction.java | 345 +++++++++--------- .../connect/ConnectionComboBoxPanel.java | 266 +++++++------- .../datapane/connect/ConnectionListPane.java | 324 ++++++++-------- .../connect/ConnectionManagerPane.java | 155 ++++---- .../datapane/connect/ConnectionShowPane.java | 15 + 5 files changed, 569 insertions(+), 536 deletions(-) create mode 100644 designer_base/src/com/fr/design/data/datapane/connect/ConnectionShowPane.java diff --git a/designer_base/src/com/fr/design/actions/server/ConnectionListAction.java b/designer_base/src/com/fr/design/actions/server/ConnectionListAction.java index e24826b50b..68e6057575 100644 --- a/designer_base/src/com/fr/design/actions/server/ConnectionListAction.java +++ b/designer_base/src/com/fr/design/actions/server/ConnectionListAction.java @@ -1,171 +1,176 @@ -package com.fr.design.actions.server; - -import com.fr.base.BaseUtils; -import com.fr.base.Env; -import com.fr.base.FRContext; -import com.fr.base.ModifiedTable; -import com.fr.data.impl.Connection; -import com.fr.dav.LocalEnv; -import com.fr.design.actions.UpdateAction; -import com.fr.design.data.datapane.connect.ConnectionManagerPane; -import com.fr.design.dialog.BasicDialog; -import com.fr.design.dialog.DialogActionAdapter; -import com.fr.design.mainframe.DesignerContext; -import com.fr.design.mainframe.DesignerFrame; -import com.fr.design.menu.MenuKeySet; -import com.fr.file.DatasourceManager; -import com.fr.file.DatasourceManagerProvider; -import com.fr.general.Inter; - -import javax.swing.*; -import java.awt.event.ActionEvent; -import java.util.HashMap; - -/** - * DatasourceList Action - */ -public class ConnectionListAction extends UpdateAction { - private static final int BYTENUM = 1444; - - public ConnectionListAction() { - this.setMenuKeySet(DEFINE_DATA_CONNECTION); - this.setName(getMenuKeySet().getMenuKeySetName()); - this.setMnemonic(getMenuKeySet().getMnemonic()); - this.setSmallIcon(BaseUtils.readIcon("/com/fr/design/images/m_web/connection.png")); - } - - public static final MenuKeySet DEFINE_DATA_CONNECTION = new MenuKeySet() { - @Override - public char getMnemonic() { - return 'D'; - } - - @Override - public String getMenuName() { - return Inter.getLocText("Server-Define_Data_Connection"); - } - - @Override - public KeyStroke getKeyStroke() { - return null; - } - }; - - /** - * 执行动作 - * - * @param evt 事件 - */ - public void actionPerformed(ActionEvent evt) { - DesignerFrame designerFrame = DesignerContext.getDesignerFrame(); - final DatasourceManagerProvider datasourceManager = DatasourceManager.getProviderInstance(); - final DatasourceManager backupManager = datasourceManager.getBackUpManager(); - final ConnectionManagerPane databaseManagerPane = new ConnectionManagerPane() { - public void complete() { - populate(datasourceManager); - } - - protected void renameConnection(String oldName, String newName) { - datasourceManager.getConnectionLocalModifyTable().rename(oldName, newName); - } - }; - final BasicDialog databaseListDialog = databaseManagerPane.showLargeWindow(designerFrame, null); - databaseListDialog.addDialogActionListener(new DialogActionAdapter() { - public void doOk() { - if (!databaseManagerPane.isNamePermitted()) { - databaseListDialog.setDoOKSucceed(false); - return; - } - if (!doWithDatasourceManager(datasourceManager, backupManager, databaseManagerPane, databaseListDialog)) { - //如果更新失败,则不关闭对话框,也不写xml文件,并且将对话框定位在请重命名的那个对象页面 - return; - } - // marks:保存数据 - writeFile(datasourceManager); - } - - public void doCancel() { - datasourceManager.synchronizedWithServer(); - } - }); - databaseListDialog.setVisible(true); - } - - - private void writeFile(DatasourceManagerProvider datasourceManager) { - Env currentEnv = FRContext.getCurrentEnv(); - try { - boolean isSuccess = currentEnv.writeResource(datasourceManager); - if (!isSuccess) { - throw new RuntimeException(Inter.getLocText("FR-Designer_Already_exist")); - } - } catch (Exception e) { - throw new RuntimeException(Inter.getLocText("FR-Designer_Already_exist")); - } - DesignerContext.getDesignerBean("databasename").refreshBeanElement(); - } - - /** - * 是否正常更新完datasourceManager - * - * @param datasourceManager - * @param databaseManagerPane - * @return - */ - private boolean doWithDatasourceManager(DatasourceManagerProvider datasourceManager, DatasourceManager backupManager, - ConnectionManagerPane databaseManagerPane, BasicDialog databaseListDialog) { - databaseManagerPane.update(datasourceManager); - HashMap modifyDetails = datasourceManager.getConnectionModifyDetails(); - modifyDetails.clear(); - Env currentEnv = FRContext.getCurrentEnv(); - ModifiedTable localModifiedTable = datasourceManager.checkConnectionModifyTable(backupManager, currentEnv.getUserID()); - boolean isFailed = false; - if (currentEnv.isSupportLocalFileOperate() && !((LocalEnv) currentEnv).isNoRemoteUser()) { - //如果是本地,并且有远程用户时则更新自己的修改表 - datasourceManager.updateSelfConnectionTotalModifiedTable(localModifiedTable, ModifiedTable.LOCAL_MODIFIER); - } else { - if (!currentEnv.isSupportLocalFileOperate()) { - //如果是远程,则去取服务器的最新的修改表,检查有没有冲突 - ModifiedTable currentServerModifyTable = currentEnv.getDataSourceModifiedTables(DatasourceManager.CONNECTION); - if (localModifiedTable.checkModifiedTableConflictWithServer(currentServerModifyTable, currentEnv.getUserID())) { - //有冲突,进行提示 - String title = Inter.getLocText(new String[]{"Select", "Single", "Setting"}); - int returnVal = JOptionPane.showConfirmDialog(DesignerContext.getDesignerFrame(), localModifiedTable.getWaringMessage(), title, JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE); - if (returnVal == JOptionPane.YES_OPTION) { - //点击是,进行相应刷新去冲突 - datasourceManager.synchronizedWithServer(backupManager, DatasourceManager.CONNECTION); - //要是有重命名冲突的,则对详细的修改表先进行修改 - datasourceManager.doWithConnectionConflict(localModifiedTable); - localModifiedTable.removeConfilct(); - modifyDetails.clear(); - //更新面板 - databaseManagerPane.populate(datasourceManager); - } else { - //更新失败,继续停留页面 - isFailed = true; - } - - } - } - } - //存在请重命名则不能更新 - int index = datasourceManager.isConnectionMapContainsRename(); - if (index != -1) { - isFailed = true; - databaseManagerPane.setSelectedIndex(index); - } - databaseListDialog.setDoOKSucceed(!isFailed); - //如果修改成功,则去远程端增量修改修改表 - if (!isFailed && !currentEnv.isSupportLocalFileOperate()) { - currentEnv.writeDataSourceModifiedTables(localModifiedTable, DatasourceManager.CONNECTION); - localModifiedTable.clear(); - modifyDetails.clear(); - } - return !isFailed; - } - - - public void update() { - this.setEnabled(true); - } +package com.fr.design.actions.server; + +import com.fr.base.BaseUtils; +import com.fr.base.Env; +import com.fr.base.FRContext; +import com.fr.base.ModifiedTable; +import com.fr.data.impl.Connection; +import com.fr.dav.LocalEnv; +import com.fr.design.actions.UpdateAction; +import com.fr.design.data.datapane.connect.ConnectionManagerPane; +import com.fr.design.data.datapane.connect.ConnectionShowPane; +import com.fr.design.dialog.BasicDialog; +import com.fr.design.dialog.DialogActionAdapter; +import com.fr.design.mainframe.DesignerContext; +import com.fr.design.mainframe.DesignerFrame; +import com.fr.design.menu.MenuKeySet; +import com.fr.file.DatasourceManager; +import com.fr.file.DatasourceManagerProvider; +import com.fr.general.Inter; + +import javax.swing.*; +import java.awt.event.ActionEvent; +import java.util.HashMap; + +/** + * DatasourceList Action + */ +public class ConnectionListAction extends UpdateAction { + + public ConnectionListAction() { + this.setMenuKeySet(DEFINE_DATA_CONNECTION); + this.setName(getMenuKeySet().getMenuKeySetName()); + this.setMnemonic(getMenuKeySet().getMnemonic()); + this.setSmallIcon(BaseUtils.readIcon("/com/fr/design/images/m_web/connection.png")); + } + + public static final MenuKeySet DEFINE_DATA_CONNECTION = new MenuKeySet() { + @Override + public char getMnemonic() { + return 'D'; + } + + @Override + public String getMenuName() { + return Inter.getLocText("Server-Define_Data_Connection"); + } + + @Override + public KeyStroke getKeyStroke() { + return null; + } + }; + + /** + * 执行动作 + * + * @param evt 事件 + */ + public void actionPerformed(ActionEvent evt) { + DesignerFrame designerFrame = DesignerContext.getDesignerFrame(); + final DatasourceManagerProvider datasourceManager = DatasourceManager.getProviderInstance(); + final DatasourceManager backupManager = datasourceManager.getBackUpManager(); + final ConnectionManagerPane databaseManagerPane = new ConnectionManagerPane() { + public void complete() { + populate(datasourceManager); + } + + protected void renameConnection(String oldName, String newName) { + datasourceManager.getConnectionLocalModifyTable().rename(oldName, newName); + } + }; + final BasicDialog databaseListDialog = databaseManagerPane.showLargeWindow(designerFrame, null); + databaseListDialog.addDialogActionListener(new DialogActionAdapter() { + public void doOk() { + if (!databaseManagerPane.isNamePermitted()) { + databaseListDialog.setDoOKSucceed(false); + return; + } + if (!doWithDatasourceManager(datasourceManager, backupManager, databaseManagerPane, databaseListDialog)) { + //如果更新失败,则不关闭对话框,也不写xml文件,并且将对话框定位在请重命名的那个对象页面 + return; + } + // marks:保存数据 + writeFile(datasourceManager); + } + + public void doCancel() { + datasourceManager.synchronizedWithServer(); + } + }); + databaseListDialog.setVisible(true); + } + + + /** + * @param datasourceManager + */ + public static void writeFile(DatasourceManagerProvider datasourceManager) { + Env currentEnv = FRContext.getCurrentEnv(); + try { + boolean isSuccess = currentEnv.writeResource(datasourceManager); + if (!isSuccess) { + throw new RuntimeException(Inter.getLocText("FR-Designer_Already_exist")); + } + } catch (Exception e) { + throw new RuntimeException(Inter.getLocText("FR-Designer_Already_exist")); + } + DesignerContext.getDesignerBean("databasename").refreshBeanElement(); + } + + /** + * 更新datasourceManager + * + * @param datasourceManager datasource管理对象 + * @param backupManager datasource管理对象备份 + * @param connectionShowPane datasource面板 + * @param databaseListDialog datasource管理对话框 + * @return boolean 是否更新成功 + */ + public static boolean doWithDatasourceManager(DatasourceManagerProvider datasourceManager, DatasourceManager + backupManager, ConnectionShowPane connectionShowPane, BasicDialog databaseListDialog) { + connectionShowPane.update(datasourceManager); + HashMap modifyDetails = datasourceManager.getConnectionModifyDetails(); + modifyDetails.clear(); + Env currentEnv = FRContext.getCurrentEnv(); + ModifiedTable localModifiedTable = datasourceManager.checkConnectionModifyTable(backupManager, currentEnv.getUserID()); + boolean isFailed = false; + if (currentEnv.isSupportLocalFileOperate() && !((LocalEnv) currentEnv).isNoRemoteUser()) { + //如果是本地,并且有远程用户时则更新自己的修改表 + datasourceManager.updateSelfConnectionTotalModifiedTable(localModifiedTable, ModifiedTable.LOCAL_MODIFIER); + } else { + if (!currentEnv.isSupportLocalFileOperate()) { + //如果是远程,则去取服务器的最新的修改表,检查有没有冲突 + ModifiedTable currentServerModifyTable = currentEnv.getDataSourceModifiedTables(DatasourceManager.CONNECTION); + if (localModifiedTable.checkModifiedTableConflictWithServer(currentServerModifyTable, currentEnv.getUserID())) { + //有冲突,进行提示 + String title = Inter.getLocText(new String[]{"Select", "Single", "Setting"}); + int returnVal = JOptionPane.showConfirmDialog(DesignerContext.getDesignerFrame(), localModifiedTable.getWaringMessage(), title, JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE); + if (returnVal == JOptionPane.YES_OPTION) { + //点击是,进行相应刷新去冲突 + datasourceManager.synchronizedWithServer(backupManager, DatasourceManager.CONNECTION); + //要是有重命名冲突的,则对详细的修改表先进行修改 + datasourceManager.doWithConnectionConflict(localModifiedTable); + localModifiedTable.removeConfilct(); + modifyDetails.clear(); + //更新面板 + connectionShowPane.populate(datasourceManager); + } else { + //更新失败,继续停留页面 + isFailed = true; + } + + } + } + } + //存在请重命名则不能更新 + int index = datasourceManager.isConnectionMapContainsRename(); + if (index != -1) { + isFailed = true; + connectionShowPane.setSelectedIndex(index); + } + databaseListDialog.setDoOKSucceed(!isFailed); + //如果修改成功,则去远程端增量修改修改表 + if (!isFailed && !currentEnv.isSupportLocalFileOperate()) { + currentEnv.writeDataSourceModifiedTables(localModifiedTable, DatasourceManager.CONNECTION); + localModifiedTable.clear(); + modifyDetails.clear(); + } + return !isFailed; + } + + + public void update() { + this.setEnabled(true); + } } \ No newline at end of file diff --git a/designer_base/src/com/fr/design/data/datapane/connect/ConnectionComboBoxPanel.java b/designer_base/src/com/fr/design/data/datapane/connect/ConnectionComboBoxPanel.java index cc75b7ca22..c80970bd9c 100644 --- a/designer_base/src/com/fr/design/data/datapane/connect/ConnectionComboBoxPanel.java +++ b/designer_base/src/com/fr/design/data/datapane/connect/ConnectionComboBoxPanel.java @@ -1,128 +1,140 @@ -package com.fr.design.data.datapane.connect; - -import com.fr.base.Env; -import com.fr.base.FRContext; -import com.fr.data.impl.AbstractDatabaseConnection; -import com.fr.data.impl.Connection; -import com.fr.data.impl.NameDatabaseConnection; -import com.fr.design.DesignerEnvManager; -import com.fr.design.dialog.BasicDialog; -import com.fr.design.dialog.DialogActionAdapter; -import com.fr.file.DatasourceManager; -import com.fr.file.DatasourceManagerProvider; -import com.fr.general.ComparatorUtils; -import com.fr.stable.StringUtils; - -import javax.swing.*; -import java.awt.event.ItemEvent; -import java.awt.event.ItemListener; -import java.util.ArrayList; -import java.util.List; - -/** - * 选择数据连接的下拉框 - * - * @editor zhou - * @since 2012-3-28下午3:02:30 - */ -public class ConnectionComboBoxPanel extends ItemEditableComboBoxPanel { - /** - * - */ - private static final long serialVersionUID = 1L; - private Class cls; // 所取的Connection都是cls及其子类 - private java.util.List nameList = new ArrayList(); - - public ConnectionComboBoxPanel(Class cls) { - super(); - - this.cls = cls; - - // alex:添加item change监听,当改变时改变DesignerEnvManager中的最近选中的数据连接 - this.itemComboBox.addItemListener(new ItemListener() { - public void itemStateChanged(ItemEvent e) { - String selected = ConnectionComboBoxPanel.this.getSelectedItem(); - if (StringUtils.isNotBlank(selected)) { - DesignerEnvManager.getEnvManager().setRecentSelectedConnection(selected); - } - } - }); - refreshItems(); - } - - /* - * 刷新ComboBox.items - */ - protected java.util.Iterator items() { - nameList = new ArrayList(); - - DatasourceManagerProvider mgr = DatasourceManager.getProviderInstance(); - java.util.Iterator nameIt = mgr.getConnectionNameIterator(); - while (nameIt.hasNext()) { - String conName = nameIt.next(); - Connection connection = mgr.getConnection(conName); - filterConnection(connection, conName, nameList); - } - - return nameList.iterator(); - } - - protected void filterConnection(Connection connection, String conName, List nameList) { - connection.addConnection(nameList, conName, new Class[]{AbstractDatabaseConnection.class}); - } - - - public int getConnectionSize() { - return nameList.size(); - } - - public String getConnection(int i) { - return nameList.get(i); - } - - /* - * 弹出对话框编辑Items - */ - protected void editItems() { - final ConnectionListPane connectionListPane = new ConnectionListPane(); - final DatasourceManagerProvider datasourceManager = DatasourceManager.getProviderInstance(); - connectionListPane.populate(datasourceManager); - BasicDialog connectionListDialog = connectionListPane.showLargeWindow( - SwingUtilities.getWindowAncestor(ConnectionComboBoxPanel.this), new DialogActionAdapter() { - public void doOk() { - connectionListPane.update(datasourceManager); - // marks:保存数据 - Env currentEnv = FRContext.getCurrentEnv(); - try { - currentEnv.writeResource(datasourceManager); - } catch (Exception ex) { - FRContext.getLogger().error(ex.getMessage(), ex); - } - } - }); - connectionListDialog.setVisible(true); - refreshItems(); - } - - public void populate(com.fr.data.impl.Connection connection) { - editButton.setEnabled(FRContext.getCurrentEnv().isRoot()); - if (connection instanceof NameDatabaseConnection) { - this.setSelectedItem(((NameDatabaseConnection) connection).getName()); - } else { - String s = DesignerEnvManager.getEnvManager().getRecentSelectedConnection(); - if (StringUtils.isNotBlank(s)) { - for (int i = 0; i < this.getConnectionSize(); i++) { - String t = this.getConnection(i); - if (ComparatorUtils.equals(s, t)) { - this.setSelectedItem(s); - break; - } - } - } - // alex:如果这个ComboBox还是没有选中,那么选中第一个 - if (StringUtils.isBlank(this.getSelectedItem()) && this.getConnectionSize() > 0) { - this.setSelectedItem(this.getConnection(0)); - } - } - } +package com.fr.design.data.datapane.connect; + +import com.fr.base.FRContext; +import com.fr.data.impl.AbstractDatabaseConnection; +import com.fr.data.impl.Connection; +import com.fr.data.impl.NameDatabaseConnection; +import com.fr.design.DesignerEnvManager; +import com.fr.design.actions.server.ConnectionListAction; +import com.fr.design.dialog.BasicDialog; +import com.fr.design.dialog.DialogActionAdapter; +import com.fr.file.DatasourceManager; +import com.fr.file.DatasourceManagerProvider; +import com.fr.general.ComparatorUtils; +import com.fr.stable.StringUtils; + +import javax.swing.*; +import java.awt.event.ItemEvent; +import java.awt.event.ItemListener; +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; + +/** + * 选择数据连接的下拉框 + * + * @editor zhou + * @since 2012-3-28下午3:02:30 + */ +public class ConnectionComboBoxPanel extends ItemEditableComboBoxPanel { + /** + * + */ + private static final long serialVersionUID = 1L; + private Class cls; // 所取的Connection都是cls及其子类 + private List nameList = new ArrayList(); + + public ConnectionComboBoxPanel(Class cls) { + super(); + + this.cls = cls; + + // alex:添加item change监听,当改变时改变DesignerEnvManager中的最近选中的数据连接 + this.itemComboBox.addItemListener(new ItemListener() { + public void itemStateChanged(ItemEvent e) { + String selected = ConnectionComboBoxPanel.this.getSelectedItem(); + if (StringUtils.isNotBlank(selected)) { + DesignerEnvManager.getEnvManager().setRecentSelectedConnection(selected); + } + } + }); + refreshItems(); + } + + /* + * 刷新ComboBox.items + */ + protected Iterator items() { + nameList = new ArrayList(); + + DatasourceManagerProvider mgr = DatasourceManager.getProviderInstance(); + Iterator nameIt = mgr.getConnectionNameIterator(); + while (nameIt.hasNext()) { + String conName = nameIt.next(); + Connection connection = mgr.getConnection(conName); + filterConnection(connection, conName, nameList); + } + + return nameList.iterator(); + } + + protected void filterConnection(Connection connection, String conName, List nameList) { + connection.addConnection(nameList, conName, new Class[]{AbstractDatabaseConnection.class}); + } + + public int getConnectionSize() { + return nameList.size(); + } + + public String getConnection(int i) { + return nameList.get(i); + } + + /* + * 弹出对话框编辑Items + */ + protected void editItems() { + final ConnectionListPane connectionListPane = new ConnectionListPane(); + final DatasourceManagerProvider datasourceManager = DatasourceManager.getProviderInstance(); + final DatasourceManager backupManager = datasourceManager.getBackUpManager(); + connectionListPane.populate(datasourceManager); + final BasicDialog connectionListDialog = connectionListPane.showLargeWindow( + SwingUtilities.getWindowAncestor(ConnectionComboBoxPanel.this), null); + connectionListDialog.addDialogActionListener(new DialogActionAdapter() { + public void doOk() { + if (!connectionListPane.isNamePermitted()) { + connectionListDialog.setDoOKSucceed(false); + return; + } + if (!ConnectionListAction.doWithDatasourceManager(datasourceManager, backupManager, connectionListPane, + connectionListDialog)) { + //如果更新失败,则不关闭对话框,也不写xml文件,并且将对话框定位在请重命名的那个对象页面 + return; + } + // marks:保存数据 + ConnectionListAction.writeFile(datasourceManager); + } + + public void doCancel() { + datasourceManager.synchronizedWithServer(); + } + }); + connectionListDialog.setVisible(true); + refreshItems(); + } + + /** + * @param connection 数据库链接 + */ + public void populate(Connection connection) { + editButton.setEnabled(FRContext.getCurrentEnv().isRoot()); + if (connection instanceof NameDatabaseConnection) { + this.setSelectedItem(((NameDatabaseConnection) connection).getName()); + } else { + String s = DesignerEnvManager.getEnvManager().getRecentSelectedConnection(); + if (StringUtils.isNotBlank(s)) { + for (int i = 0; i < this.getConnectionSize(); i++) { + String t = this.getConnection(i); + if (ComparatorUtils.equals(s, t)) { + this.setSelectedItem(s); + break; + } + } + } + // alex:如果这个ComboBox还是没有选中,那么选中第一个 + if (StringUtils.isBlank(this.getSelectedItem()) && this.getConnectionSize() > 0) { + this.setSelectedItem(this.getConnection(0)); + } + } + } } \ No newline at end of file diff --git a/designer_base/src/com/fr/design/data/datapane/connect/ConnectionListPane.java b/designer_base/src/com/fr/design/data/datapane/connect/ConnectionListPane.java index 8d0f2aa392..1cdf1cb1a9 100644 --- a/designer_base/src/com/fr/design/data/datapane/connect/ConnectionListPane.java +++ b/designer_base/src/com/fr/design/data/datapane/connect/ConnectionListPane.java @@ -1,163 +1,163 @@ -package com.fr.design.data.datapane.connect; - -import com.fr.data.impl.Connection; -import com.fr.data.impl.JDBCDatabaseConnection; -import com.fr.data.impl.JNDIDatabaseConnection; -import com.fr.design.ExtraDesignClassManager; -import com.fr.design.fun.ConnectionProvider; -import com.fr.design.gui.controlpane.JListControlPane; -import com.fr.design.gui.controlpane.NameObjectCreator; -import com.fr.design.gui.controlpane.NameableCreator; -import com.fr.file.DatasourceManagerProvider; -import com.fr.general.ComparatorUtils; -import com.fr.general.Inter; -import com.fr.general.NameObject; -import com.fr.stable.ArrayUtils; -import com.fr.stable.Nameable; -import com.fr.stable.StringUtils; -import com.fr.stable.core.PropertyChangeAdapter; - -import javax.swing.*; -import java.util.*; - -/** - * Connection List Pane. - */ -public class ConnectionListPane extends JListControlPane { - public static final String TITLE_NAME = Inter.getLocText("Server-Define_Data_Connection"); - private boolean isNamePermitted = true; - private HashMap renameMap = new HashMap(); - - public ConnectionListPane() { - renameMap.clear(); - this.addEditingListner(new PropertyChangeAdapter() { - public void propertyChange() { - isNamePermitted = true; - String[] allListNames = nameableList.getAllNames(); - allListNames[nameableList.getSelectedIndex()] = StringUtils.EMPTY; - String tempName = getEditingName(); - if (StringUtils.isEmpty(tempName)) { - String[] warning = new String[]{"NOT_NULL_Des", "Please_Rename"}; - String[] sign = new String[]{",", "!"}; - nameableList.stopEditing(); - JOptionPane.showMessageDialog(SwingUtilities.getWindowAncestor(ConnectionListPane.this), Inter.getLocText(warning, sign)); - setWarnigText(editingIndex); - isNamePermitted = false; - return; - } - if (!ComparatorUtils.equals(tempName, selectedName) - && isNameRepeted(new List[]{Arrays.asList(allListNames)}, tempName)) { - isNamePermitted = false; - nameableList.stopEditing(); - String message = Inter.getLocText(new String[]{"Utils-has_been_existed", "DashBoard-ConnectionList", "Please_Rename"}, new String[]{"", tempName + ",", "!"}); - JOptionPane.showMessageDialog(SwingUtilities.getWindowAncestor(ConnectionListPane.this), message); - setWarnigText(editingIndex); - } - if (isNamePermitted && !ComparatorUtils.equals(tempName, selectedName)) { - rename(selectedName, tempName); - } - - } - }); - } - - - protected void rename(String oldName, String newName) { - if (renameMap.containsKey(selectedName)) { - renameMap.remove(selectedName); - } - renameMap.put(selectedName, newName); - } - - /** - * 名字是否允许 - * - * @return 是/否 - */ - public boolean isNamePermitted() { - return isNamePermitted; - } - - /** - * 检查按钮可用状态 Check button enabled. - */ - public void checkButtonEnabled() { - super.checkButtonEnabled(); - isNamePermitted = !isContainsRename(); - } - - - public HashMap getRenameMap() { - return renameMap; - } - - /** - * 创建菜单项 - * - * @return 菜单项 - */ - public NameableCreator[] createNameableCreators() { - NameableCreator[] creators = new NameableCreator[]{new NameObjectCreator( - "JDBC", - "/com/fr/design/images/data/source/jdbcTableData.png", - JDBCDatabaseConnection.class, - DatabaseConnectionPane.JDBC.class - ), new NameObjectCreator( - "JNDI", - "/com/fr/design/images/data/source/jdbcTableData.png", - JNDIDatabaseConnection.class, - DatabaseConnectionPane.JNDI.class - )}; - Set pluginCreators = ExtraDesignClassManager.getInstance().getArray(ConnectionProvider.XML_TAG); - for (ConnectionProvider provider : pluginCreators) { - NameObjectCreator creator = new NameObjectCreator( - provider.nameForConnection(), - provider.iconPathForConnection(), - provider.classForConnection(), - provider.appearanceForConnection() - ); - creators = ArrayUtils.add(creators, creator); - } - - return creators; - } - - @Override - protected String title4PopupWindow() { - return TITLE_NAME; - } - - /** - * Populate. - * - * @param datasourceManager the new datasourceManager. - */ - public void populate(DatasourceManagerProvider datasourceManager) { - Iterator nameIt = datasourceManager.getConnectionNameIterator(); - - List nameObjectList = new ArrayList(); - while (nameIt.hasNext()) { - String name = nameIt.next(); - nameObjectList.add(new NameObject(name, datasourceManager.getConnection(name))); - } - this.populate(nameObjectList.toArray(new NameObject[nameObjectList.size()])); - - } - - /** - * Update. - */ - public void update(DatasourceManagerProvider datasourceManager) { - // Nameable[]居然不能强转成NameObject[],一定要这么写... - Nameable[] res = this.update(); - NameObject[] res_array = new NameObject[res.length]; - java.util.Arrays.asList(res).toArray(res_array); - - datasourceManager.clearAllConnection(); - - for (int i = 0; i < res_array.length; i++) { - NameObject nameObject = res_array[i]; - datasourceManager.putConnection(nameObject.getName(), (Connection) nameObject.getObject()); - } - } +package com.fr.design.data.datapane.connect; + +import com.fr.data.impl.Connection; +import com.fr.data.impl.JDBCDatabaseConnection; +import com.fr.data.impl.JNDIDatabaseConnection; +import com.fr.design.ExtraDesignClassManager; +import com.fr.design.fun.ConnectionProvider; +import com.fr.design.gui.controlpane.JListControlPane; +import com.fr.design.gui.controlpane.NameObjectCreator; +import com.fr.design.gui.controlpane.NameableCreator; +import com.fr.file.DatasourceManagerProvider; +import com.fr.general.ComparatorUtils; +import com.fr.general.Inter; +import com.fr.general.NameObject; +import com.fr.stable.ArrayUtils; +import com.fr.stable.Nameable; +import com.fr.stable.StringUtils; +import com.fr.stable.core.PropertyChangeAdapter; + +import javax.swing.*; +import java.util.*; + +/** + * Connection List Pane. + */ +public class ConnectionListPane extends JListControlPane implements ConnectionShowPane { + public static final String TITLE_NAME = Inter.getLocText("Server-Define_Data_Connection"); + private boolean isNamePermitted = true; + private HashMap renameMap = new HashMap(); + + public ConnectionListPane() { + renameMap.clear(); + this.addEditingListner(new PropertyChangeAdapter() { + public void propertyChange() { + isNamePermitted = true; + String[] allListNames = nameableList.getAllNames(); + allListNames[nameableList.getSelectedIndex()] = StringUtils.EMPTY; + String tempName = getEditingName(); + if (StringUtils.isEmpty(tempName)) { + String[] warning = new String[]{"NOT_NULL_Des", "Please_Rename"}; + String[] sign = new String[]{",", "!"}; + nameableList.stopEditing(); + JOptionPane.showMessageDialog(SwingUtilities.getWindowAncestor(ConnectionListPane.this), Inter.getLocText(warning, sign)); + setWarnigText(editingIndex); + isNamePermitted = false; + return; + } + if (!ComparatorUtils.equals(tempName, selectedName) + && isNameRepeted(new List[]{Arrays.asList(allListNames)}, tempName)) { + isNamePermitted = false; + nameableList.stopEditing(); + String message = Inter.getLocText(new String[]{"Utils-has_been_existed", "DashBoard-ConnectionList", "Please_Rename"}, new String[]{"", tempName + ",", "!"}); + JOptionPane.showMessageDialog(SwingUtilities.getWindowAncestor(ConnectionListPane.this), message); + setWarnigText(editingIndex); + } + if (isNamePermitted && !ComparatorUtils.equals(tempName, selectedName)) { + rename(selectedName, tempName); + } + + } + }); + } + + + protected void rename(String oldName, String newName) { + if (renameMap.containsKey(selectedName)) { + renameMap.remove(selectedName); + } + renameMap.put(selectedName, newName); + } + + /** + * 名字是否允许 + * + * @return 是/否 + */ + public boolean isNamePermitted() { + return isNamePermitted; + } + + /** + * 检查按钮可用状态 Check button enabled. + */ + public void checkButtonEnabled() { + super.checkButtonEnabled(); + isNamePermitted = !isContainsRename(); + } + + + public HashMap getRenameMap() { + return renameMap; + } + + /** + * 创建菜单项 + * + * @return 菜单项 + */ + public NameableCreator[] createNameableCreators() { + NameableCreator[] creators = new NameableCreator[]{new NameObjectCreator( + "JDBC", + "/com/fr/design/images/data/source/jdbcTableData.png", + JDBCDatabaseConnection.class, + DatabaseConnectionPane.JDBC.class + ), new NameObjectCreator( + "JNDI", + "/com/fr/design/images/data/source/jdbcTableData.png", + JNDIDatabaseConnection.class, + DatabaseConnectionPane.JNDI.class + )}; + Set pluginCreators = ExtraDesignClassManager.getInstance().getArray(ConnectionProvider.XML_TAG); + for (ConnectionProvider provider : pluginCreators) { + NameObjectCreator creator = new NameObjectCreator( + provider.nameForConnection(), + provider.iconPathForConnection(), + provider.classForConnection(), + provider.appearanceForConnection() + ); + creators = ArrayUtils.add(creators, creator); + } + + return creators; + } + + @Override + protected String title4PopupWindow() { + return TITLE_NAME; + } + + /** + * Populate. + * + * @param datasourceManager the new datasourceManager. + */ + public void populate(DatasourceManagerProvider datasourceManager) { + Iterator nameIt = datasourceManager.getConnectionNameIterator(); + + List nameObjectList = new ArrayList(); + while (nameIt.hasNext()) { + String name = nameIt.next(); + nameObjectList.add(new NameObject(name, datasourceManager.getConnection(name))); + } + this.populate(nameObjectList.toArray(new NameObject[nameObjectList.size()])); + + } + + /** + * Update. + */ + public void update(DatasourceManagerProvider datasourceManager) { + // Nameable[]居然不能强转成NameObject[],一定要这么写... + Nameable[] res = this.update(); + NameObject[] res_array = new NameObject[res.length]; + java.util.Arrays.asList(res).toArray(res_array); + + datasourceManager.clearAllConnection(); + + for (int i = 0; i < res_array.length; i++) { + NameObject nameObject = res_array[i]; + datasourceManager.putConnection(nameObject.getName(), (Connection) nameObject.getObject()); + } + } } \ No newline at end of file diff --git a/designer_base/src/com/fr/design/data/datapane/connect/ConnectionManagerPane.java b/designer_base/src/com/fr/design/data/datapane/connect/ConnectionManagerPane.java index ace69ff692..70d4933faf 100644 --- a/designer_base/src/com/fr/design/data/datapane/connect/ConnectionManagerPane.java +++ b/designer_base/src/com/fr/design/data/datapane/connect/ConnectionManagerPane.java @@ -1,78 +1,79 @@ -package com.fr.design.data.datapane.connect; - -import com.fr.base.FRContext; -import com.fr.design.gui.frpane.LoadingBasicPane; -import com.fr.design.gui.ilable.UILabel; -import com.fr.design.gui.itextfield.UITextField; -import com.fr.design.layout.FRGUIPaneFactory; -import com.fr.file.DatasourceManagerProvider; -import com.fr.general.Inter; -import com.fr.stable.project.ProjectConstants; - -import javax.swing.*; -import java.awt.*; -import java.io.File; -import java.util.HashMap; - -public class ConnectionManagerPane extends LoadingBasicPane { - private UITextField connectionTextField; - private ConnectionListPane connectionListPane; - - protected void initComponents(JPanel container) { - container.setLayout(FRGUIPaneFactory.createBorderLayout()); - - JPanel connectionPathPane = FRGUIPaneFactory.createBorderLayout_L_Pane(); - container.add(connectionPathPane, BorderLayout.NORTH); - - connectionPathPane.setBorder(BorderFactory.createEmptyBorder(6, 2, 2, 2)); - - connectionPathPane.add(new UILabel(Inter.getLocText("FR-Designer_Save_Path") + ":"), BorderLayout.WEST); - this.connectionTextField = new UITextField(); - connectionPathPane.add(connectionTextField, BorderLayout.CENTER); - this.connectionTextField.setEditable(false); - connectionListPane = new ConnectionListPane(){ - protected void rename(String oldName,String newName) { - super.rename(oldName,newName); - renameConnection(oldName,newName); - } - }; - container.add(connectionListPane, BorderLayout.CENTER); - } - - @Override - protected String title4PopupWindow() { - return Inter.getLocText("Server-Define_Data_Connection"); - } - - public HashMap getRenameMap() { - return connectionListPane.getRenameMap(); - } - - public void populate(DatasourceManagerProvider datasourceManager) { - this.connectionTextField.setText(FRContext.getCurrentEnv().getPath() + File.separator + ProjectConstants.RESOURCES_NAME - + File.separator + datasourceManager.fileName()); - this.connectionListPane.populate(datasourceManager); - } - - public void update(DatasourceManagerProvider datasourceManager) { - this.connectionListPane.update(datasourceManager); - } - - /** - * 设置选中项 - * - * @param index 选中项的序列号 - */ - public void setSelectedIndex(int index) { - this.connectionListPane.setSelectedIndex(index); - } - - /** - * 名字是否允许 - * @return 允许返回true - */ - public boolean isNamePermitted() { - return connectionListPane.isNamePermitted(); - } - +package com.fr.design.data.datapane.connect; + +import com.fr.base.FRContext; +import com.fr.design.gui.frpane.LoadingBasicPane; +import com.fr.design.gui.ilable.UILabel; +import com.fr.design.gui.itextfield.UITextField; +import com.fr.design.layout.FRGUIPaneFactory; +import com.fr.file.DatasourceManagerProvider; +import com.fr.general.Inter; +import com.fr.stable.project.ProjectConstants; + +import javax.swing.*; +import java.awt.*; +import java.io.File; +import java.util.HashMap; + +public class ConnectionManagerPane extends LoadingBasicPane implements ConnectionShowPane { + private UITextField connectionTextField; + private ConnectionListPane connectionListPane; + + protected void initComponents(JPanel container) { + container.setLayout(FRGUIPaneFactory.createBorderLayout()); + + JPanel connectionPathPane = FRGUIPaneFactory.createBorderLayout_L_Pane(); + container.add(connectionPathPane, BorderLayout.NORTH); + + connectionPathPane.setBorder(BorderFactory.createEmptyBorder(6, 2, 2, 2)); + + connectionPathPane.add(new UILabel(Inter.getLocText("FR-Designer_Save_Path") + ":"), BorderLayout.WEST); + this.connectionTextField = new UITextField(); + connectionPathPane.add(connectionTextField, BorderLayout.CENTER); + this.connectionTextField.setEditable(false); + connectionListPane = new ConnectionListPane() { + protected void rename(String oldName, String newName) { + super.rename(oldName, newName); + renameConnection(oldName, newName); + } + }; + container.add(connectionListPane, BorderLayout.CENTER); + } + + @Override + protected String title4PopupWindow() { + return Inter.getLocText("Server-Define_Data_Connection"); + } + + public HashMap getRenameMap() { + return connectionListPane.getRenameMap(); + } + + public void populate(DatasourceManagerProvider datasourceManager) { + this.connectionTextField.setText(FRContext.getCurrentEnv().getPath() + File.separator + ProjectConstants.RESOURCES_NAME + + File.separator + datasourceManager.fileName()); + this.connectionListPane.populate(datasourceManager); + } + + public void update(DatasourceManagerProvider datasourceManager) { + this.connectionListPane.update(datasourceManager); + } + + /** + * 设置选中项 + * + * @param index 选中项的序列号 + */ + public void setSelectedIndex(int index) { + this.connectionListPane.setSelectedIndex(index); + } + + /** + * 名字是否允许 + * + * @return 允许返回true + */ + public boolean isNamePermitted() { + return connectionListPane.isNamePermitted(); + } + } \ No newline at end of file diff --git a/designer_base/src/com/fr/design/data/datapane/connect/ConnectionShowPane.java b/designer_base/src/com/fr/design/data/datapane/connect/ConnectionShowPane.java new file mode 100644 index 0000000000..ce857ddc65 --- /dev/null +++ b/designer_base/src/com/fr/design/data/datapane/connect/ConnectionShowPane.java @@ -0,0 +1,15 @@ +package com.fr.design.data.datapane.connect; + +import com.fr.file.DatasourceManagerProvider; + +/** + * Created by yaoh.wu on 2017/4/22. + * 数据链接显示面板 + */ +public interface ConnectionShowPane { + void update(DatasourceManagerProvider datasourceManager); + + void populate(DatasourceManagerProvider datasourceManager); + + void setSelectedIndex(int index); +} From c86cfd1c1b0275ad3d6b4eafd734869d6891dd55 Mon Sep 17 00:00:00 2001 From: "yaoh.wu" Date: Mon, 24 Apr 2017 09:21:32 +0800 Subject: [PATCH 35/72] =?UTF-8?q?=E7=BB=84=E4=BB=B6=E5=A4=8D=E7=94=A8?= =?UTF-8?q?=E8=BE=B9=E7=95=8C=E5=A4=8D=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../design/mainframe/FormSelectionUtils.java | 33 +++++++------------ 1 file changed, 11 insertions(+), 22 deletions(-) diff --git a/designer_form/src/com/fr/design/mainframe/FormSelectionUtils.java b/designer_form/src/com/fr/design/mainframe/FormSelectionUtils.java index 1978e8432b..90945b1e80 100644 --- a/designer_form/src/com/fr/design/mainframe/FormSelectionUtils.java +++ b/designer_form/src/com/fr/design/mainframe/FormSelectionUtils.java @@ -132,29 +132,18 @@ public class FormSelectionUtils { XLayoutContainer container = layoutAdapter.getContainer(); boolean xOut = x < 0 || x + copiedCreator.getWidth() / 2 + xoffset > container.getWidth(); boolean yOut = y < 0 || y + copiedCreator.getHeight() / 2 + yoffset > container.getHeight(); - /* - * 组件原始位置位于布局的右下角, - * 和布局右下边界线紧挨, - * 粘贴时组件在原始位置向左错开20像素。 - * x,y同时越界 - */ - if (xOut && yOut) { - //向左偏移 - x = container.getWidth() - copiedCreator.getWidth() / 2 - DELAY_X_Y - xoffset; + + y = yOut ? container.getHeight() - copiedCreator.getHeight() / 2 - yoffset : y; + boolean isEdge = (x - DELAY_X_Y == container.getWidth() - copiedCreator.getWidth() / 2 - xoffset); + if (xOut) { + if (isEdge) { + //向左偏移 + x = container.getWidth() - copiedCreator.getWidth() / 2 - DELAY_X_Y - xoffset; + } //紧贴下边界 - y = container.getHeight() - copiedCreator.getHeight() / 2 - yoffset; - return new Point(x, y); - } - /* - * 组件原始位置与布局边界距离小于20像素(下边界&右边界同时小于或者任意一个边界小于), - * 则粘贴时距离小于20像素一侧直接贴近布局边界, - * 距离大于20像素的一侧正常错开。 - * x,y中只有一个越界 - */ - if ((xOut || yOut)) { - x = xOut ? container.getWidth() - copiedCreator.getWidth() / 2 - xoffset : x; - y = yOut ? container.getHeight() - copiedCreator.getHeight() / 2 - yoffset : y; - return new Point(x, y); + else { + x = container.getWidth() - copiedCreator.getWidth() / 2 - xoffset; + } } } return new Point(x, y); From a5769fe4679a35212ac3235fa8f823bac87a753a Mon Sep 17 00:00:00 2001 From: "yaoh.wu" Date: Mon, 24 Apr 2017 11:45:09 +0800 Subject: [PATCH 36/72] =?UTF-8?q?REPORT-934=E9=A2=9C=E8=89=B2=E8=AE=B0?= =?UTF-8?q?=E4=BD=8F=E6=AD=A3=E7=A1=AE=E4=BD=86=E6=98=AF=E6=98=BE=E7=A4=BA?= =?UTF-8?q?=E9=94=99=E8=AF=AF=E4=BF=AE=E5=A4=8D=E5=92=8C=E9=83=A8=E5=88=86?= =?UTF-8?q?=E4=BB=A3=E7=A0=81=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../style/color/ColorSelectDetailPane.java | 190 +++++---- .../design/style/color/ColorSelectPane.java | 243 ++++++----- .../style/color/NewColorSelectPane.java | 386 +++++++++--------- .../style/color/RecentUseColorPane.java | 91 ++--- .../fr/design/style/color/UsedColorPane.java | 219 +++++----- 5 files changed, 547 insertions(+), 582 deletions(-) diff --git a/designer_base/src/com/fr/design/style/color/ColorSelectDetailPane.java b/designer_base/src/com/fr/design/style/color/ColorSelectDetailPane.java index 5c6c505a3c..a84b772cac 100644 --- a/designer_base/src/com/fr/design/style/color/ColorSelectDetailPane.java +++ b/designer_base/src/com/fr/design/style/color/ColorSelectDetailPane.java @@ -1,112 +1,104 @@ package com.fr.design.style.color; -import java.awt.BorderLayout; -import java.awt.Color; -import java.awt.Dimension; +import com.fr.design.dialog.BasicPane; +import com.fr.design.layout.FRGUIPaneFactory; +import com.fr.general.Inter; -import javax.swing.JColorChooser; -import javax.swing.JPanel; +import javax.swing.*; import javax.swing.colorchooser.AbstractColorChooserPanel; import javax.swing.colorchooser.ColorSelectionModel; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; - -import com.fr.design.dialog.BasicPane; -import com.fr.design.layout.FRGUIPaneFactory; -import com.fr.general.Inter; +import java.awt.*; /** * 颜色选择器更多颜色面板 - * @author focus * + * @author focus */ -public class ColorSelectDetailPane extends BasicPane{ - private static final int SELECT_PANEL_HEIGHT = 245; - // Selected color - private Color color; - - // 颜色选择器面板 - JColorChooser selectedPanel; - - // 最近使用颜色面板 - JPanel recentUsePanel; - - // 预览 - JPanel previewPanel; - - public JColorChooser getSelectedPanel() { - return selectedPanel; - } - - public void setSelectedPanel(JColorChooser selectedPanel) { - this.selectedPanel = selectedPanel; - } - - public Color getColor() { - return color; - } - - public void setColor(Color color) { - this.color = color; - } - - public ColorSelectDetailPane() { - super(); - } - - public ColorSelectDetailPane(Color color){ - if(color == null){ - color = Color.white; - } - this.color = color; - initComponents(); - } - - @Override - protected String title4PopupWindow() { - return null; - } - - protected void initComponents() { - this.setLayout(FRGUIPaneFactory.createBorderLayout()); - - // 颜色选择器面板 - selectedPanel = new JColorChooser(this.color); - selectedPanel.setPreferredSize(new Dimension(selectedPanel.getWidth(),SELECT_PANEL_HEIGHT)); - AbstractColorChooserPanel[] choosers = selectedPanel.getChooserPanels(); - for(int i=0;i colorChangeListenerList = new ArrayList(); - - ColorSelectDetailPane pane; - + + + /* default */ ColorSelectDetailPane pane; + /** * Constructor. */ public ColorSelectPane() { - super(true); - initialCompents(true); + super(true); + initialCompents(true); } public ColorSelectPane(boolean isSupportTransparent) { super(isSupportTransparent); initialCompents(isSupportTransparent); } - + private void initialCompents(boolean isSupportTransparent) { - this.setLayout(FRGUIPaneFactory.createBorderLayout()); - this.setBorder(new UIRoundedBorder(UIConstants.LINE_COLOR, 1, 5)); - if (isSupportTransparent) { - UIButton transpanrentButton = new UIButton(Inter.getLocText("FR-Designer_ChartF-Transparency")); - this.add(transpanrentButton, BorderLayout.NORTH); - transpanrentButton.addActionListener(new ActionListener() { - - @Override - public void actionPerformed(ActionEvent e) { - doTransparent(); - } - }); - } - - // center - JPanel centerPane = FRGUIPaneFactory.createY_AXISBoxInnerContainer_S_Pane(); - this.add(centerPane, BorderLayout.CENTER); - - centerPane.add(getRow1Pane()); - - JPanel menuColorPane1 = getMenuColorPane(); - centerPane.add(menuColorPane1); + this.setLayout(FRGUIPaneFactory.createBorderLayout()); + this.setBorder(new UIRoundedBorder(UIConstants.LINE_COLOR, 1, 5)); + if (isSupportTransparent) { + UIButton transpanrentButton = new UIButton(Inter.getLocText("FR-Designer_ChartF-Transparency")); + this.add(transpanrentButton, BorderLayout.NORTH); + transpanrentButton.addActionListener(new ActionListener() { + + @Override + public void actionPerformed(ActionEvent e) { + doTransparent(); + } + }); + } + + // center + JPanel centerPane = FRGUIPaneFactory.createY_AXISBoxInnerContainer_S_Pane(); + this.add(centerPane, BorderLayout.CENTER); + + centerPane.add(getRow1Pane()); + + JPanel menuColorPane1 = getMenuColorPane(); + centerPane.add(menuColorPane1); Color[] colorArray = this.getColorArray(); - for (int i = 0; i < colorArray.length; i++) { - Color color = colorArray[i] == null ? UsedColorPane.DEFAULT_COLOR : colorArray[i]; - menuColorPane1.add(new ColorCell(color, this)); - } - - centerPane.add(Box.createVerticalStrut(1)); - - UIButton customButton = new UIButton(Inter.getLocText("FR-Designer-Basic_More_Color")); - - customButton.addMouseListener(new MouseAdapter() { - @Override - public void mousePressed(MouseEvent e) { - customButtonPressed(); - } - }); - customButton.setCursor(new Cursor(Cursor.HAND_CURSOR)); - JPanel centerPane1 = FRGUIPaneFactory.createBorderLayout_S_Pane(); - centerPane1.setBorder(BorderFactory.createEmptyBorder(2, 8, 8, 8)); - centerPane1.add(customButton, BorderLayout.NORTH); - centerPane.add(centerPane1); - } - - protected JPanel getMenuColorPane() { - JPanel menuColorPane = new JPanel(); - menuColorPane.setLayout(new GridLayout(5, 8, 1, 1)); - menuColorPane.setBorder(BorderFactory.createEmptyBorder(8, 8, 0, 8)); - - return menuColorPane; - } - - // 第一行,1个取色按钮 + 7个最近使用的颜色 - protected JPanel getRow1Pane() { - JPanel row1Pane = new JPanel(FRGUIPaneFactory.createBorderLayout()); - row1Pane.setBorder(BorderFactory.createEmptyBorder(8, 8, 0, 0)); - row1Pane.setPreferredSize(new Dimension(135, 24)); // 宽度为 16 * 8 + 7 - - // 最近使用 - UsedColorPane usedColorPane = new UsedColorPane(1, 8, 1, ColorSelectConfigManager.getInstance().getColors(), this, true, true); - usedColorPane.getPane().setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 8)); - row1Pane.add(usedColorPane.getPane()); - return row1Pane; - } - - protected Color[] getColorArray(){ + for (int i = 0; i < colorArray.length; i++) { + Color color = colorArray[i] == null ? UsedColorPane.DEFAULT_COLOR : colorArray[i]; + menuColorPane1.add(new ColorCell(color, this)); + } + + centerPane.add(Box.createVerticalStrut(1)); + + UIButton customButton = new UIButton(Inter.getLocText("FR-Designer-Basic_More_Color")); + + customButton.addMouseListener(new MouseAdapter() { + @Override + public void mousePressed(MouseEvent e) { + customButtonPressed(); + } + }); + customButton.setCursor(new Cursor(Cursor.HAND_CURSOR)); + JPanel centerPane1 = FRGUIPaneFactory.createBorderLayout_S_Pane(); + centerPane1.setBorder(BorderFactory.createEmptyBorder(2, 8, 8, 8)); + centerPane1.add(customButton, BorderLayout.NORTH); + centerPane.add(centerPane1); + } + + protected JPanel getMenuColorPane() { + JPanel menuColorPane = new JPanel(); + menuColorPane.setLayout(new GridLayout(5, 8, 1, 1)); + menuColorPane.setBorder(BorderFactory.createEmptyBorder(8, 8, 0, 8)); + + return menuColorPane; + } + + // 第一行,1个取色按钮 + 1个留空的单元格 + 6个最近使用的颜色 + protected JPanel getRow1Pane() { + JPanel row1Pane = new JPanel(FRGUIPaneFactory.createBorderLayout()); + row1Pane.setBorder(BorderFactory.createEmptyBorder(8, 8, 0, 0)); + row1Pane.setPreferredSize(new Dimension(135, 24)); // 宽度为 16 * 8 + 7 + + // 最近使用 + UsedColorPane usedColorPane = new UsedColorPane(1, 8, 1, this, true, true); + usedColorPane.getPane().setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 8)); + row1Pane.add(usedColorPane.getPane()); + return row1Pane; + } + + protected Color[] getColorArray() { return ColorFactory.MenuColors; } @@ -125,15 +123,16 @@ public class ColorSelectPane extends TransparentPane implements ColorSelectable /** * Add change listener. * 增加监听 - * @param 监听 + * + * @param changeListener */ public void addChangeListener(ChangeListener changeListener) { this.colorChangeListenerList.add(changeListener); } - + @Override protected String title4PopupWindow() { - return "Color"; + return "Color"; } /** @@ -166,38 +165,36 @@ public class ColorSelectPane extends TransparentPane implements ColorSelectable /** * 选中颜色 - * @param 颜色单元格 - * */ - @Override - public void colorSetted(ColorCell colorCell) { - colorCell.repaint(); - } - - /** - * 初始化中央面板 - * @param centerPane 中央面板 - * - */ - @Override - public void initCenterPaneChildren(JPanel centerPane) { - GUICoreUtils.initCenterPaneChildren(centerPane, this); - } - - /** - * 透明 - */ - @Override - public void doTransparent() { - this.setColor(null); - } - - /** - * 更多颜色 - */ - @Override - public void customButtonPressed() { - pane = new ColorSelectDetailPane(Color.WHITE); - ColorSelectDialog.showDialog(DesignerContext.getDesignerFrame(), pane, Color.WHITE, this); - } + @Override + public void colorSetted(ColorCell colorCell) { + colorCell.repaint(); + } + + /** + * 初始化中央面板 + * + * @param centerPane 中央面板 + */ + @Override + public void initCenterPaneChildren(JPanel centerPane) { + GUICoreUtils.initCenterPaneChildren(centerPane, this); + } + + /** + * 透明 + */ + @Override + public void doTransparent() { + this.setColor(null); + } + + /** + * 更多颜色 + */ + @Override + public void customButtonPressed() { + pane = new ColorSelectDetailPane(Color.WHITE); + ColorSelectDialog.showDialog(DesignerContext.getDesignerFrame(), pane, Color.WHITE, this); + } } \ No newline at end of file diff --git a/designer_base/src/com/fr/design/style/color/NewColorSelectPane.java b/designer_base/src/com/fr/design/style/color/NewColorSelectPane.java index b9903a81f3..cb4398fd9e 100644 --- a/designer_base/src/com/fr/design/style/color/NewColorSelectPane.java +++ b/designer_base/src/com/fr/design/style/color/NewColorSelectPane.java @@ -1,215 +1,205 @@ package com.fr.design.style.color; -import java.awt.BorderLayout; -import java.awt.Color; -import java.awt.Cursor; -import java.awt.Dimension; -import java.awt.GridLayout; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; -import java.awt.event.MouseAdapter; -import java.awt.event.MouseEvent; -import java.util.ArrayList; - -import javax.swing.BorderFactory; -import javax.swing.Box; -import javax.swing.JPanel; -import javax.swing.event.ChangeEvent; -import javax.swing.event.ChangeListener; - -import com.fr.design.constants.UIConstants; import com.fr.design.border.UIRoundedBorder; +import com.fr.design.constants.UIConstants; +import com.fr.design.dialog.BasicPane; import com.fr.design.gui.ibutton.UIButton; import com.fr.design.layout.FRGUIPaneFactory; import com.fr.design.mainframe.DesignerContext; -import com.fr.design.dialog.BasicPane; import com.fr.general.Inter; +import javax.swing.*; +import javax.swing.event.ChangeEvent; +import javax.swing.event.ChangeListener; +import java.awt.*; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.awt.event.MouseAdapter; +import java.awt.event.MouseEvent; +import java.util.ArrayList; + /** - * * @author zhou * @since 2012-5-29上午10:39:35 */ public class NewColorSelectPane extends BasicPane implements ColorSelectable { - private static final long serialVersionUID = -8634152305687249392L; - - private Color color = null; // color - // color setting action. - private ArrayList colorChangeListenerList = new ArrayList(); - - // 颜色选择器 - private ColorSelectDetailPane pane; - // 是否支持透明 - private boolean isSupportTransparent; - - private final static int TRANSPANENT_WINDOW_HEIGHT = 165; - private final static int WINDWO_HEIGHT = 150; - - // 最近使用颜色 - UsedColorPane usedColorPane; - - /** - * Constructor. - */ - public NewColorSelectPane() { - this(false); - } - - /** - * Constructor. - */ - public NewColorSelectPane(boolean isSupportTransparent) { - this.isSupportTransparent = isSupportTransparent; - this.setLayout(FRGUIPaneFactory.createBorderLayout()); - this.setBorder(new UIRoundedBorder(UIConstants.LINE_COLOR, 1, 5)); - if (isSupportTransparent) { - UIButton transpanrentButton = new UIButton(Inter.getLocText("FR-Designer_ChartF-Transparency")); - this.add(transpanrentButton, BorderLayout.NORTH); - transpanrentButton.addActionListener(new ActionListener() { - - @Override - public void actionPerformed(ActionEvent e) { - doTransparent(); - } - }); - } - - // center - JPanel centerPane = FRGUIPaneFactory.createY_AXISBoxInnerContainer_S_Pane(); - this.add(centerPane, BorderLayout.CENTER); - - // 第一行 - JPanel row1Pane = new JPanel(FRGUIPaneFactory.createBorderLayout()); - row1Pane.setBorder(BorderFactory.createEmptyBorder(8, 8, 0, 0)); - row1Pane.setPreferredSize(new Dimension(135, 16)); // 宽度为 16 * 8 + 7 - centerPane.add(row1Pane); - // 最近使用 - usedColorPane = new UsedColorPane(1, 8, 1, ColorSelectConfigManager.getInstance().getColors(), this, true, false); - usedColorPane.getPane().setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 8)); - row1Pane.add(usedColorPane.getPane()); - - JPanel menuColorPane1 = new JPanel(); - centerPane.add(menuColorPane1); - - menuColorPane1.setLayout(new GridLayout(5, 8, 1, 1)); - menuColorPane1.setBorder(BorderFactory.createEmptyBorder(8, 8, 0, 8)); - for (int i = 0; i < ColorFactory.MenuColors.length; i++) { - menuColorPane1.add(new ColorCell(ColorFactory.MenuColors[i], this)); - } - - centerPane.add(Box.createVerticalStrut(1)); - - // mod by anchore 16/11/16 - UIButton customButton = new UIButton(Inter.getLocText("FR-Designer-Basic_More_Color")); - //UIButton customButton = new UIButton(Inter.getLocText(new String[]{"More", "Color"}) + "..."); - - customButton.addMouseListener(new MouseAdapter() { - @Override - public void mousePressed(MouseEvent e) { - customButtonPressed(); - } - }); - customButton.setCursor(new Cursor(Cursor.HAND_CURSOR)); - JPanel centerPane1 = FRGUIPaneFactory.createBorderLayout_S_Pane(); - centerPane1.setBorder(BorderFactory.createEmptyBorder(2, 8, 0, 8)); - centerPane1.add(customButton, BorderLayout.NORTH); - centerPane.add(centerPane1); - } - - - - /** - * 添加监听 - * @param 监听列表 - * Add change listener. - */ - public void addChangeListener(ChangeListener changeListener) { - this.colorChangeListenerList.add(changeListener); - } - - @Override - protected String title4PopupWindow() { - return "Color"; - } - - /** - * 获取颜色 - * @return 颜色 - * Return the color. - */ - public Color getColor() { - return color; - } - - /** - * 获取颜色 - * - * @return 颜色 - */ - public Color getNotNoneColor() { - if (color == null) { - setColor(Color.WHITE); - return Color.WHITE; - } - return color; - } - - /** - * Set the color. - * - * @param color - * the new color. - */ - @Override - public void setColor(Color color) { - this.color = color; - - // fire color change. - if (!colorChangeListenerList.isEmpty()) { - ChangeEvent evt = new ChangeEvent(this); - - for (int i = 0; i < colorChangeListenerList.size(); i++) { - this.colorChangeListenerList.get(i).stateChanged(evt); - } - } - ColorSelectConfigManager.getInstance().addToColorQueue(color); - this.repaint(); - } - - /** - * 设置颜色 - * @param 颜色位置 - */ - @Override - public void colorSetted(ColorCell colorCell) { - colorCell.repaint(); - } - - protected void doTransparent() { - setColor(null); - } - protected void customButtonPressed() { - pane = new ColorSelectDetailPane(Color.WHITE); - ColorSelectDialog.showDialog(DesignerContext.getDesignerFrame(), pane, Color.WHITE, this); - } - - @Override - public Dimension getPreferredSize() { - if(isSupportTransparent){ - return new Dimension(super.getPreferredSize().width, TRANSPANENT_WINDOW_HEIGHT); - } - return new Dimension(super.getPreferredSize().width, WINDWO_HEIGHT); - } - - /** - * 更新最近使用颜色 - * - */ - public void updateUsedColor(){ - usedColorPane.updateUsedColor(); - } - + private static final long serialVersionUID = -8634152305687249392L; + + private Color color = null; // color + // color setting action. + private ArrayList colorChangeListenerList = new ArrayList(); + + // 颜色选择器 + private ColorSelectDetailPane pane; + // 是否支持透明 + private boolean isSupportTransparent; + + private final static int TRANSPANENT_WINDOW_HEIGHT = 165; + private final static int WINDWO_HEIGHT = 150; + + // 最近使用颜色 + private UsedColorPane usedColorPane; + + /** + * Constructor. + */ + public NewColorSelectPane() { + this(false); + } + + /** + * Constructor. + */ + public NewColorSelectPane(boolean isSupportTransparent) { + this.isSupportTransparent = isSupportTransparent; + this.setLayout(FRGUIPaneFactory.createBorderLayout()); + this.setBorder(new UIRoundedBorder(UIConstants.LINE_COLOR, 1, 5)); + if (isSupportTransparent) { + UIButton transpanrentButton = new UIButton(Inter.getLocText("FR-Designer_ChartF-Transparency")); + this.add(transpanrentButton, BorderLayout.NORTH); + transpanrentButton.addActionListener(new ActionListener() { + + @Override + public void actionPerformed(ActionEvent e) { + doTransparent(); + } + }); + } + + // center + JPanel centerPane = FRGUIPaneFactory.createY_AXISBoxInnerContainer_S_Pane(); + this.add(centerPane, BorderLayout.CENTER); + + // 第一行 + JPanel row1Pane = new JPanel(FRGUIPaneFactory.createBorderLayout()); + row1Pane.setBorder(BorderFactory.createEmptyBorder(8, 8, 0, 0)); + row1Pane.setPreferredSize(new Dimension(135, 16)); // 宽度为 16 * 8 + 7 + centerPane.add(row1Pane); + // 最近使用 + usedColorPane = new UsedColorPane(1, 8, 1, this, true, false); + usedColorPane.getPane().setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 8)); + row1Pane.add(usedColorPane.getPane()); + + JPanel menuColorPane1 = new JPanel(); + centerPane.add(menuColorPane1); + + menuColorPane1.setLayout(new GridLayout(5, 8, 1, 1)); + menuColorPane1.setBorder(BorderFactory.createEmptyBorder(8, 8, 0, 8)); + for (int i = 0; i < ColorFactory.MenuColors.length; i++) { + menuColorPane1.add(new ColorCell(ColorFactory.MenuColors[i], this)); + } + + centerPane.add(Box.createVerticalStrut(1)); + + // mod by anchore 16/11/16 + UIButton customButton = new UIButton(Inter.getLocText("FR-Designer-Basic_More_Color")); + + customButton.addMouseListener(new MouseAdapter() { + @Override + public void mousePressed(MouseEvent e) { + customButtonPressed(); + } + }); + customButton.setCursor(new Cursor(Cursor.HAND_CURSOR)); + JPanel centerPane1 = FRGUIPaneFactory.createBorderLayout_S_Pane(); + centerPane1.setBorder(BorderFactory.createEmptyBorder(2, 8, 0, 8)); + centerPane1.add(customButton, BorderLayout.NORTH); + centerPane.add(centerPane1); + } + + + /** + * 添加监听 + * + * @param 监听列表 Add change listener. + */ + public void addChangeListener(ChangeListener changeListener) { + this.colorChangeListenerList.add(changeListener); + } + + @Override + protected String title4PopupWindow() { + return "Color"; + } + + /** + * 获取颜色 + * + * @return 颜色 + * Return the color. + */ + public Color getColor() { + return color; + } + + /** + * 获取颜色 + * + * @return 颜色 + */ + public Color getNotNoneColor() { + if (color == null) { + setColor(Color.WHITE); + return Color.WHITE; + } + return color; + } + + /** + * Set the color. + * + * @param color the new color. + */ + @Override + public void setColor(Color color) { + this.color = color; + + // fire color change. + if (!colorChangeListenerList.isEmpty()) { + ChangeEvent evt = new ChangeEvent(this); + + for (int i = 0; i < colorChangeListenerList.size(); i++) { + this.colorChangeListenerList.get(i).stateChanged(evt); + } + } + ColorSelectConfigManager.getInstance().addToColorQueue(color); + this.repaint(); + } + + /** + * 设置颜色 + * + * @param 颜色位置 + */ + @Override + public void colorSetted(ColorCell colorCell) { + colorCell.repaint(); + } + + protected void doTransparent() { + setColor(null); + } + + protected void customButtonPressed() { + pane = new ColorSelectDetailPane(Color.WHITE); + ColorSelectDialog.showDialog(DesignerContext.getDesignerFrame(), pane, Color.WHITE, this); + } + + @Override + public Dimension getPreferredSize() { + if (isSupportTransparent) { + return new Dimension(super.getPreferredSize().width, TRANSPANENT_WINDOW_HEIGHT); + } + return new Dimension(super.getPreferredSize().width, WINDWO_HEIGHT); + } + + /** + * 更新最近使用颜色 + */ + public void updateUsedColor() { + usedColorPane.updateUsedColor(); + } } \ No newline at end of file diff --git a/designer_base/src/com/fr/design/style/color/RecentUseColorPane.java b/designer_base/src/com/fr/design/style/color/RecentUseColorPane.java index 914436d0f1..c85ff6be8a 100644 --- a/designer_base/src/com/fr/design/style/color/RecentUseColorPane.java +++ b/designer_base/src/com/fr/design/style/color/RecentUseColorPane.java @@ -1,55 +1,48 @@ package com.fr.design.style.color; -import java.awt.BorderLayout; -import java.awt.Color; - -import javax.swing.JColorChooser; -import javax.swing.JPanel; - import com.fr.design.dialog.BasicPane; import com.fr.design.layout.FRGUIPaneFactory; -public class RecentUseColorPane extends BasicPane implements ColorSelectable{ - - JColorChooser chooser; - - @Override - protected String title4PopupWindow() { - return null; - } - - public RecentUseColorPane() { - } - - public RecentUseColorPane(JColorChooser chooser) { - this.chooser = chooser; - - // center - JPanel centerPane = FRGUIPaneFactory.createY_AXISBoxInnerContainer_S_Pane(); - this.add(centerPane, BorderLayout.CENTER); - // 最近使用 - UsedColorPane pane = new UsedColorPane(2, 10, ColorSelectConfigManager.getInstance().getColors(),this); - centerPane.add(pane.getPane()); - } - - /** - * 选中颜色 - * - * @param 颜色 - */ - @Override - public void colorSetted(ColorCell color) { - - } - - @Override - public Color getColor() { - return null; - } - - @Override - public void setColor(Color color) { - chooser.getSelectionModel().setSelectedColor(color); - } - +import javax.swing.*; +import java.awt.*; + +public class RecentUseColorPane extends BasicPane implements ColorSelectable { + + private JColorChooser chooser; + + @Override + protected String title4PopupWindow() { + return null; + } + + + public RecentUseColorPane(JColorChooser chooser) { + this.chooser = chooser; + + // center + JPanel centerPane = FRGUIPaneFactory.createY_AXISBoxInnerContainer_S_Pane(); + this.add(centerPane, BorderLayout.CENTER); + // 最近使用 + UsedColorPane pane = new UsedColorPane(2, 10, this); + centerPane.add(pane.getPane()); + } + + /** + * 选中颜色 + */ + @Override + public void colorSetted(ColorCell color) { + + } + + @Override + public Color getColor() { + return null; + } + + @Override + public void setColor(Color color) { + chooser.getSelectionModel().setSelectedColor(color); + } + } \ No newline at end of file diff --git a/designer_base/src/com/fr/design/style/color/UsedColorPane.java b/designer_base/src/com/fr/design/style/color/UsedColorPane.java index c8dfdcaece..5594254c37 100644 --- a/designer_base/src/com/fr/design/style/color/UsedColorPane.java +++ b/designer_base/src/com/fr/design/style/color/UsedColorPane.java @@ -1,119 +1,112 @@ package com.fr.design.style.color; -import java.awt.Color; -import java.awt.GridLayout; - -import javax.swing.BorderFactory; -import javax.swing.JPanel; - import com.fr.design.dialog.BasicPane; import com.fr.design.gui.ibutton.SpecialUIButton; -public class UsedColorPane extends BasicPane{ - - public static final Color DEFAULT_COLOR = new Color(222,222,222); - - // 最近使用面板列数 - private int columns; - // 最近使用面板行数 - private int rows; - // 留白的单元格数量 - private int reserveCells; - // 是否需要取色器按钮 - private boolean needPickColorButton; - // 是否在取色时实时设定颜色 - private boolean setColorRealTime; - // 最近使用颜色 - private Object[] colors; - // 最近使用面板 - private JPanel pane; - - private ColorSelectable selectable; - - public JPanel getPane() { - return pane; - } - - public void setPane(JPanel pane) { - this.pane = pane; - } - - public UsedColorPane(){ - - } - - /** - * 构造函数 - * - * @param rows 行 - * @param columns 列 - * @param reserveCells 留白的单元格个数 - * @param colors 最近使用的颜色 - * @param needPickColorButton 是否需要加上取色器按钮 - * @param setColorRealTime 取色器是否实时设定颜色 - */ - public UsedColorPane(int rows,int columns,int reserveCells, Object[] colors, ColorSelectable selectable, boolean needPickColorButton, boolean setColorRealTime){ - this.columns = columns; - this.rows = rows; - this.reserveCells = reserveCells; - this.colors = colors; - this.selectable = selectable; - this.needPickColorButton = needPickColorButton; - this.setColorRealTime = setColorRealTime; - initialComponents(); - } - - public UsedColorPane(int rows,int columns, Object[] colors,ColorSelectable selectable){ - this(rows, columns, 0, colors, selectable, false, false); - } - - private void initialComponents(){ - int total = columns * rows; - JPanel panel = new JPanel(); - panel.setLayout(new GridLayout(rows,columns, 1, 1)); - panel.setBorder(BorderFactory.createEmptyBorder(8, 8, 0, 8)); - Color[] colors = ColorSelectConfigManager.getInstance().getColors(); - int size = colors.length; - - int i = 0; - if (needPickColorButton) { - // 取色按钮 - SpecialUIButton pickColorButton = PickColorButtonFactory.getPickColorButton(selectable, PickColorButtonFactory.IconType.ICON16, setColorRealTime); - panel.add(pickColorButton); - i++; - this.reserveCells += 1; - } - while (i < this.reserveCells) { - ColorCell cc = new ColorCell(DEFAULT_COLOR, selectable); - cc.setVisible(false); - panel.add(cc); - i++; - } - while (i < total) { - Color color = i < size ? colors[size-1-i]: DEFAULT_COLOR; - panel.add(new ColorCell(color == null ? DEFAULT_COLOR : color, selectable)); - i++; - } - this.pane = panel; - } - - /** - * 更新最近使用颜色 - * - */ - public void updateUsedColor(){ - int total = columns * rows; - Color[] colors = ColorSelectConfigManager.getInstance().getColors(); - int size = colors.length; - for(int i=this.reserveCells; i Date: Mon, 24 Apr 2017 16:15:24 +0800 Subject: [PATCH 37/72] =?UTF-8?q?=E7=BB=84=E4=BB=B6=E5=A4=8D=E7=94=A8?= =?UTF-8?q?=E8=BE=B9=E7=95=8C=E7=B2=98=E8=B4=B4=EF=BC=8C=E4=B9=8B=E5=89=8D?= =?UTF-8?q?=E8=80=83=E8=99=91=E7=9A=84=E7=89=87=E9=9D=A2=E4=BA=86=EF=BC=8C?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=B8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/com/fr/design/mainframe/FormSelectionUtils.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/designer_form/src/com/fr/design/mainframe/FormSelectionUtils.java b/designer_form/src/com/fr/design/mainframe/FormSelectionUtils.java index 90945b1e80..7a03782c25 100644 --- a/designer_form/src/com/fr/design/mainframe/FormSelectionUtils.java +++ b/designer_form/src/com/fr/design/mainframe/FormSelectionUtils.java @@ -133,8 +133,10 @@ public class FormSelectionUtils { boolean xOut = x < 0 || x + copiedCreator.getWidth() / 2 + xoffset > container.getWidth(); boolean yOut = y < 0 || y + copiedCreator.getHeight() / 2 + yoffset > container.getHeight(); + boolean isEdge = (x - DELAY_X_Y == container.getWidth() - copiedCreator.getWidth() / 2 - xoffset) + && (y - DELAY_X_Y == container.getHeight() - copiedCreator.getHeight() / 2 - yoffset); + y = yOut ? container.getHeight() - copiedCreator.getHeight() / 2 - yoffset : y; - boolean isEdge = (x - DELAY_X_Y == container.getWidth() - copiedCreator.getWidth() / 2 - xoffset); if (xOut) { if (isEdge) { //向左偏移 From 9a6bc3f93dd325e7c3c46581983f742f26aef02a Mon Sep 17 00:00:00 2001 From: syoki Date: Tue, 25 Apr 2017 18:41:22 +0900 Subject: [PATCH 38/72] =?UTF-8?q?=E5=9B=BD=E9=99=85=E5=8C=96=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=20=E6=97=A5=E6=96=87=20design=E9=83=A8=E5=88=86=20?= =?UTF-8?q?=E7=AC=AC1-200=E4=B8=AAkey=E4=BF=AE=E6=94=B9=E7=BF=BB=E8=AF=91?= =?UTF-8?q?=20=E5=BA=84=E5=A5=87=20syoki?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../design/locale/designer_ja_JP.properties | 278 +++++++++--------- 1 file changed, 139 insertions(+), 139 deletions(-) diff --git a/designer_base/src/com/fr/design/locale/designer_ja_JP.properties b/designer_base/src/com/fr/design/locale/designer_ja_JP.properties index 87d0801981..a9b1b3923a 100644 --- a/designer_base/src/com/fr/design/locale/designer_ja_JP.properties +++ b/designer_base/src/com/fr/design/locale/designer_ja_JP.properties @@ -1,202 +1,202 @@ # generated time: \u661F\u671F\u56DB \u5341\u4E00\u6708 24 12:02:51 CST 2016 -FR-Designer-BBSLogin_Account=\u30E6\u30FC\u30B6\u30FC\u540D -FR-Designer-BBSLogin_Connection-Failure=\u30CD\u30C3\u30C8\u30EF\u30FC\u30AF\u63A5\u7D9A\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u3002\u73FE\u5728\u306E\u30CD\u30C3\u30C8\u30EF\u30FC\u30AF\u72B6\u614B\u3092\u691C\u67FB\u3057\u3066\u304F\u3060\u3055\u3044 +FR-Designer-BBSLogin_Account=\u30E6\u30FC\u30B6\u30FCID +FR-Designer-BBSLogin_Connection-Failure=\u30CD\u30C3\u30C8\u63A5\u7D9A\u5931\u6557\u3001\u30CD\u30C3\u30C8\u72B6\u614B\u3054\u78BA\u8A8D\u4E0B\u3055\u3044 FR-Designer-BBSLogin_Connection-Failure-Tip=\u30D2\u30F3\u30C8 -FR-Designer-BBSLogin_Forgot-Password=\u30D1\u30B9\u30EF\u30FC\u30C9\u3092\u5FD8\u308C\u305F +FR-Designer-BBSLogin_Forgot-Password=\u30D1\u30B9\u30EF\u30FC\u30C9\u5FD8\u308C\u305F FR-Designer-BBSLogin_Login=\u30ED\u30B0\u30A4\u30F3 -FR-Designer-BBSLogin_Login-Failure-Tip=\u30E6\u30FC\u30B6\u30FC\u540D\u307E\u305F\u306F\u30D1\u30B9\u30EF\u30FC\u30C9\u30A8\u30E9\u30FC\u3067\u3059\u3002\u518D\u5EA6\u30ED\u30B0\u30A4\u30F3\u3057\u3066\u304F\u3060\u3055\u3044 +FR-Designer-BBSLogin_Login-Failure-Tip=\u30E6\u30FC\u30B6\u30FCID\u3084\u30D1\u30B9\u30EF\u30FC\u30C9\u30A8\u30E9\u30FC\u3001\u518D\u30ED\u30B0\u30A4\u30F3\u4E0B\u3055\u3044 FR-Designer-BBSLogin_Password=\u30D1\u30B9\u30EF\u30FC\u30C9 -FR-Designer-BBSLogin_Password-Empty-Tip=\u30D1\u30B9\u30EF\u30FC\u30C9\u306F\u7A7A\u6B04\u306B\u3059\u308B\u3053\u3068\u304C\u3067\u304D\u307E\u305B\u3093 +FR-Designer-BBSLogin_Password-Empty-Tip=\u30D1\u30B9\u30EF\u30FC\u30C9\u306F\u7A7A\u6B04\u306B\u3067\u304D\u307E\u305B\u3093 FR-Designer-BBSLogin_Register-Account=\u30A2\u30AB\u30A6\u30F3\u30C8\u767B\u9332 -FR-Designer-BBSLogin_Switch-Account=\u30A2\u30AB\u30A6\u30F3\u30C8\u5207\u308A\u66FF\u3048 -FR-Designer-BBSLogin_Privite-Message=\u30D7\u30E9\u30A4\u30D9\u30FC\u30C8\u30E1\u30C3\u30BB\u30FC\u30B8 -FR-Designer-BBSLogin_Times=\u6B21 -FR-Designer-BBSLogin_Username-Empty-Tip=\u30E6\u30FC\u30B6\u30FC\u540D\u306F\u7A7A\u6B04\u306B\u3059\u308B\u3053\u3068\u304C\u3067\u304D\u307E\u305B\u3093 -FR-Designer-Basic_More_Color=\u3082\u3063\u3068\u8272 -FR-Designer-Estate_Any=\u4E0D\u9650 +FR-Designer-BBSLogin_Switch-Account=\u30A2\u30AB\u30A6\u30F3\u30C8\u3092\u5207\u308A\u66FF\u3048 +FR-Designer-BBSLogin_Privite-Message=\u500B\u4EBA\u30E1\u30C3\u30BB\u30FC\u30B8 +FR-Designer-BBSLogin_Times=\u56DE +FR-Designer-BBSLogin_Username-Empty-Tip=\u30E6\u30FC\u30B6\u30FCID\u306F\u7A7A\u306B\u3067\u304D\u307E\u305B\u3093 +FR-Designer-Basic_More_Color=\u305D\u306E\u4ED6\uFF08\u8272\uFF09 +FR-Designer-Estate_Any=\u5236\u9650\u306A\u3057 FR-Designer-Estate_Default_Font=\u30C7\u30D5\u30A9\u30EB\u30C8\u30D5\u30A9\u30F3\u30C8 -FR-Designer-Estate_Default_Null=\u30C7\u30D5\u30A9\u30EB\u30C8\u3092\u7A7A\u6B04\u306B\u3059\u308B +FR-Designer-Estate_Default_Null=\u30C7\u30D5\u30A9\u30EB\u30C8\u306F\u7A7A FR-Designer-Estate_Default_Text=\u30C7\u30D5\u30A9\u30EB\u30C8\u5024 -FR-Designer-Estate_Parameter_Null_Text=\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC\u3092\u7A7A\u6B04\u306B\u3057\u8868\u793A\u3059\u308B -FR-Designer-Estate_Radio-Group=\u4E0D\u52D5\u7523\u696D\u901A\u7528\u30DC\u30BF\u30F3\u30BB\u30C3\u30C8\u30B3\u30F3\u30C8\u30ED\u30FC\u30EB -FR-Designer-Estate_Selected_Font=\u9078\u629E\u3057\u305F\u30D5\u30A9\u30F3\u30C8 -FR-Designer-Estate_Widget_Value=\u30B3\u30F3\u30C8\u30ED\u30FC\u30EB\u5024 -FR-Designer-Layout_Adaptive_Layout=\u81EA\u9069\u5FDC\u914D\u7F6E +FR-Designer-Estate_Parameter_Null_Text=\u30D1\u30E9\u30E1\u30FC\u30BF\u304C\u7A7A\u306B\u306A\u308B\u6642\u306E\u8868\u793A\u306F +FR-Designer-Estate_Radio-Group=\u4E0D\u52D5\u7523\u696D\u6C4E\u7528\u30E9\u30B8\u30AA\u30DC\u30BF\u30F3\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8 +FR-Designer-Estate_Selected_Font=\u30D5\u30A9\u30F3\u30C8\u3092\u9078\u629E +FR-Designer-Estate_Widget_Value=\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u5024 +FR-Designer-Layout_Adaptive_Layout=\u81EA\u5DF1\u8ABF\u6574\u30EC\u30A4\u30A2\u30A6\u30C8 FR-Designer-Output_Background_Set=\u80CC\u666F\u8A2D\u5B9A FR-Designer-Output_Default_Background=\u30C7\u30D5\u30A9\u30EB\u30C8\u80CC\u666F -FR-Designer-Output_Excel_Page=Excel\u30A2\u30A6\u30C8\u30D7\u30C3\u30C8(\u30DA\u30FC\u30B8\u5225\u30A2\u30A6\u30C8\u30D7\u30C3\u30C8) -FR-Designer-Output_Excel_Sheet=Excel\u30A2\u30A6\u30C8\u30D7\u30C3\u30C8(\u30DA\u30FC\u30B8\u5225\u30B7\u30FC\u30C8\u5225\u30A2\u30A6\u30C8\u30D7\u30C3\u30C8) -FR-Designer-Output_Excel_Simple=Excel\u30A2\u30A6\u30C8\u30D7\u30C3\u30C8(\u5143\u306E\u307E\u307E\u30A2\u30A6\u30C8\u30D7\u30C3\u30C8) -FR-Designer-Plugin_PluginMarket_Coding=\u30D7\u30E9\u30B0\u30A4\u30F3\u30DE\u30FC\u30B1\u30C3\u30C8\u306F\u958B\u767A\u4E2D\u3067\u3059\u3002\u3054\u671F\u5F85\u304F\u3060\u3055\u3044 -FR-Desinger-Plugin_Updater_UpdateAndUpgrade=\u66F4\u65B0\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8 -FR-Desinger-Plugin_Updater_Checking_Jar_Update=Jar\u30D1\u30C3\u30B1\u30FC\u30B8\u30C1\u30A7\u30C3\u30AF\u66F4\u65B0\u4E2D -FR-Desinger-Plugin_Updater_Checking_Version_Update=\u30D0\u30FC\u30B8\u30E7\u30F3\u30C1\u30A7\u30C3\u30AF\u66F4\u65B0\u4E2D -FR-Desinger-Plugin_Updater_Update=\u66F4\u65B0 -FR-Desinger-Plugin_Updater_Upgrade=\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8 -FR-Desinger-Plugin_Updater_Restore=\u5FA9\u5143 -FR-Desinger-Plugin_Updater_New_Version_Available=\u65B0\u30D0\u30FC\u30B8\u30E7\u30F3\u6709\u308A -FR-Desinger-Plugin_Updater_JarUpdate=Jar\u30D1\u30C3\u30B1\u30FC\u30B8\u66F4\u65B0 -FR-Desinger-Plugin_Updater_VersionUpgrade=\u30D0\u30FC\u30B8\u30E7\u30F3\u30A2\u30C3\u30D7 -FR-Desinger-Plugin_Updater_Previous_Version=\u65E7\u30D0\u30FC\u30B8\u30E7\u30F3\u307E\u3067\u306B -FR-Desinger-Plugin_Updater_Current_Version=\u73FE\u30D0\u30FC\u30B8\u30E7\u30F3 -FR-Desinger-Plugin_Updater_Not_Install_Version=\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u30D0\u30FC\u30B8\u30E7\u30F3\u3067\u306F\u306A\u3044 +FR-Designer-Output_Excel_Page=Excel\u51FA\u529B(\u30DA\u30FC\u30B8\u5225) +FR-Designer-Output_Excel_Sheet=Excel\u51FA\u529B(\u30DA\u30FC\u30B8\u5225\u30B7\u30FC\u30C8\u5225) +FR-Designer-Output_Excel_Simple=Excel\u51FA\u529B(\u5143\u306E\u307E\u307E) +FR-Designer-Plugin_PluginMarket_Coding=\u30D7\u30E9\u30B0\u30A4\u30F3\u30B9\u30C8\u30A2\u958B\u767A\u4E2D\u3001\u304A\u5F85\u3061\u4E0B\u3055\u3044 +FR-Desinger-Plugin_Updater_UpdateAndUpgrade=\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8\u30A2\u30C3\u30D7\u30B0\u30EC\u30FC\u30C8 +FR-Desinger-Plugin_Updater_Checking_Jar_Update=Jar\u30D5\u30A1\u30A4\u30EB\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8\u691C\u8A3C\u4E2D +FR-Desinger-Plugin_Updater_Checking_Version_Update=\u30D1\u30FC\u30B8\u30E7\u30F3\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8\u691C\u8A3C\u4E2D +FR-Desinger-Plugin_Updater_Update=\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8 +FR-Desinger-Plugin_Updater_Upgrade=\u30A2\u30C3\u30D7\u30B0\u30EC\u30FC\u30C9 +FR-Desinger-Plugin_Updater_Restore=\u30EA\u30AB\u30D0\u30EA +FR-Desinger-Plugin_Updater_New_Version_Available=\u65B0\u3057\u3044\u30D0\u30FC\u30B8\u30E7\u30F3\u304C\u3042\u308A\u307E\u3059 +FR-Desinger-Plugin_Updater_JarUpdate=Jar\u30D5\u30A1\u30A4\u30EB\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8 +FR-Desinger-Plugin_Updater_VersionUpgrade=\u30D0\u30FC\u30B8\u30E7\u30F3\u30A2\u30C3\u30D7\u30B0\u30EC\u30FC\u30C8 +FR-Desinger-Plugin_Updater_Previous_Version=\u4EE5\u524D\u306E\u30D0\u30FC\u30B8\u30E7\u30F3\u3078? +FR-Desinger-Plugin_Updater_Current_Version=\u73FE\u5728\u306E\u30D0\u30FC\u30B8\u30E7\u30F3\uFF1A +FR-Desinger-Plugin_Updater_Not_Install_Version=\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u7528\u30D0\u30FC\u30B8\u30E7\u30F3\u3067\u306F\u3042\u308A\u307E\u305B\u3093 FR-Desinger-Plugin_Updater_Latest_Version=\u6700\u65B0\u30D0\u30FC\u30B8\u30E7\u30F3 -FR-Desinger-Plugin_Updater_Jar_Downloading=Jar\u30D1\u30C3\u30B1\u30FC\u30B8\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9\u5B8C\u6210\u5F85\u3061 -FR-Desinger-Plugin_Updater_Version_Downloading=\u30D0\u30FC\u30B8\u30E7\u30F3\u30A2\u30C3\u30D7\u30D1\u30C3\u30B1\u30FC\u30B8\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9\u5B8C\u6210\u5F85\u3061 -FR-Desinger-Plugin_Updater_Restart_Designer=\u30C7\u30B6\u30A4\u30CA\u30FC\u518D\u8D77\u52D5 -FR-Desinger-Plugin_Updater_Connect_VersionUpdateServer_Failed=\u30D0\u30FC\u30B8\u30E7\u30F3\u66F4\u65B0\u30B5\u30FC\u30D0\u30FC\u63A5\u7D9A\u3067\u304D\u306A\u3044 -FR-Desinger-Plugin_Updater_Connect_VersionUpgradeServer_Failed=\u30D0\u30FC\u30B8\u30E7\u30F3\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8\u30B5\u30FC\u30D0\u30FC\u63A5\u7D9A\u3067\u304D\u306A\u3044 -FR-Desinger-Plugin_Updater_Already_Latest_Version=\u65E2\u306B\u6700\u65B0\u30D0\u30FC\u30B8\u30E7\u30F3 -FR-Desinger-Plugin_Updater_Backup_OldJar_To=\u65E7Jar\u30D1\u30C3\u30B1\u30FC\u30B8\u306F\u65E2\u306B\u30D0\u30C3\u30AF\u30A2\u30C3\u30D7 -FR-Desinger-Plugin_Updater_Backup_OldVersion_To=\u65E7\u30D0\u30FC\u30B8\u30E7\u30F3\u30D1\u30C3\u30B1\u30FC\u30B8\u306F\u65E2\u306B\u30D0\u30C3\u30AF\u30A2\u30C3\u30D7 -FR-Desinger-Plugin_Updater_Please_Restart=\u30C7\u30B6\u30A4\u30CA\u30FC\u306F\u518D\u8D77\u52D5\u3057\u3066\u304F\u3060\u3055\u3044 -FR-Desinger-Plugin_Updater_Jar_Restore=\u65E7Jar\u30D1\u30C3\u30B1\u30FC\u30B8\u5FA9\u5143 -FR-Desinger-Plugin_Updater_Version_Restore=\u30D0\u30FC\u30B8\u30E7\u30F3\u5FA9\u5143 -FR-Desinger-Plugin_Updater_Restore_To=\u5FA9\u5143 -FR-Desinger-Plugin_Updater_WorksAfterRestart=\u30D0\u30FC\u30B8\u30E7\u30F3\u306F\u518D\u8D77\u52D5\u5F8C\u306B\u6709\u52B9\u3059\u308B +FR-Desinger-Plugin_Updater_Jar_Downloading=Jar\u30D5\u30A1\u30A4\u30EB\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9\u7D42\u4E86\u3092\u5F85\u3063\u3066\u3044\u308B +FR-Desinger-Plugin_Updater_Version_Downloading=\u30A2\u30C3\u30D7\u30B0\u30EC\u30FC\u30C8\u30D1\u30C3\u30B1\u30FC\u30B8\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9\u3092\u5F85\u3063\u3066\u3044\u308B +FR-Desinger-Plugin_Updater_Restart_Designer=\u30C7\u30B6\u30A4\u30CA\u30FC\u3092\u518D\u8D77\u52D5 +FR-Desinger-Plugin_Updater_Connect_VersionUpdateServer_Failed=\u30D0\u30FC\u30B8\u30E7\u30F3\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8\u30B5\u30FC\u30D0\u306B\u63A5\u7D9A\u3067\u304D\u306A\u3044 +FR-Desinger-Plugin_Updater_Connect_VersionUpgradeServer_Failed=\u30D0\u30FC\u30B8\u30E7\u30F3\u30A2\u30C3\u30D7\u30B0\u30EC\u30FC\u30C8\u30B5\u30FC\u30D0\u306B\u63A5\u7D9A\u3067\u304D\u306A\u3044 +FR-Desinger-Plugin_Updater_Already_Latest_Version=\u6700\u65B0\u30D0\u30FC\u30B8\u30E7\u30F3\u306B\u306A\u308A\u307E\u3057\u305F +FR-Desinger-Plugin_Updater_Backup_OldJar_To=\u53E4\u3044Jar\u30D5\u30A1\u30A4\u30EB\u3092\u4E0B\u8A18\u306B\u30D0\u30C3\u30AF\u30A2\u30C3\u30D7\u3057\u307E\u3057\u305F\uFF1A +FR-Desinger-Plugin_Updater_Backup_OldVersion_To=\u53E4\u3044\u30D0\u30FC\u30B8\u30E7\u30F3\u3092\u4E0B\u8A18\u306B\u30D0\u30C3\u30AF\u30A2\u30C3\u30D7\u3057\u307E\u3057\u305F\uFF1A +FR-Desinger-Plugin_Updater_Please_Restart=\u3001\u30C7\u30B6\u30A4\u30CA\u30FC\u3092\u518D\u8D77\u52D5\u3057\u3066\u4E0B\u3055\u3044 +FR-Desinger-Plugin_Updater_Jar_Restore=Jar\u30D5\u30A1\u30A4\u30EB\u30EA\u30AB\u30D0\u30EA +FR-Desinger-Plugin_Updater_Version_Restore=\u30D0\u30FC\u30B8\u30E7\u30F3\u30EA\u30AB\u30D0\u30EA +FR-Desinger-Plugin_Updater_Restore_To=\u30EA\u30AB\u30D0\u30EA +FR-Desinger-Plugin_Updater_WorksAfterRestart=\u30D0\u30FC\u30B8\u30E7\u30F3\u3001\u518D\u8D77\u52D5\u5F8C\u6709\u52B9\u306B\u306A\u308A\u307E\u3059 FR-Designer-Submit_Condition=\u6761\u4EF6 -FR-Designer-Widget-Title_border=\u30D5\u30EC\u30FC\u30E0 +FR-Designer-Widget-Title_border=\u67A0 FR-Designer-Widget-Title_border_color=\u8272 FR-Designer_AbsoluteLayout=\u7D76\u5BFE\u30EC\u30A4\u30A2\u30A6\u30C8 -FR-Designer_Allow_Decimals=\u5C0F\u6570\u3092\u8A31\u53EF -FR-Designer_Allow_Negative=\u30DE\u30A4\u30CA\u30B9\u5024\u3092\u8A31\u53EF -FR-Designer_Background-Click=\u30DE\u30A6\u30B9\u30AF\u30EA\u30C3\u30AF\u80CC\u666F +FR-Designer_Allow_Decimals=\u5C0F\u6570\u306E\u8A31\u53EF +FR-Designer_Allow_Negative=\u8CA0\u5024\u306E\u8A31\u53EF +FR-Designer_Background-Click=\u30DE\u30A6\u30B9\u30AF\u30EA\u30C3\u30AF\u6642\u80CC\u666F FR-Designer_Background-Initial=\u521D\u671F\u80CC\u666F -FR-Designer_Background-Over=\u30DE\u30A6\u30B9\u30D5\u30ED\u30FC\u30C8\u80CC\u666F -FR-Designer_Bar-Code-Exception-Tip=\u30C7\u30FC\u30BF\u306F\u7A7A\u6B04\u306B\u3059\u308B\u3053\u3068\u304C\u3067\u304D\u307E\u305B\u3093 -FR-Designer_Block-intersect=\u30E2\u30B8\u30E5\u30FC\u30EB\u3068\u30E2\u30B8\u30E5\u30FC\u30EB\u9593\u3092\u91CD\u306D\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093 +FR-Designer_Background-Over=\u30DE\u30A6\u30B9\u30AA\u30FC\u30D0\u30FC\u6642\u80CC\u666F +FR-Designer_Bar-Code-Exception-Tip=\u30C7\u30FC\u30BF\u306F\u7A7A\u306B\u3067\u304D\u307E\u305B\u3093 +FR-Designer_Block-intersect=\u30D6\u30ED\u30C3\u30AF\u3068\u30D6\u30EB\u30C3\u30AF\u9593\u306E\u91CD\u306A\u308A\u7981\u6B62 FR-Designer_BorderLayout=\u30DC\u30FC\u30C0\u30FC\u30EC\u30A4\u30A2\u30A6\u30C8 FR-Designer_Button-Hotkeys=\u30B7\u30E7\u30FC\u30C8\u30AB\u30C3\u30C8\u30AD\u30FC FR-Designer_Button-Icon=\u30DC\u30BF\u30F3\u30A2\u30A4\u30B3\u30F3 -FR-Designer_Button-Name=\u30DC\u30BF\u30F3\u540D\u79F0 +FR-Designer_Button-Name=\u30DC\u30BF\u30F3\u540D FR-Designer_Button-Type=\u30DC\u30BF\u30F3\u30BF\u30A4\u30D7 -FR-Designer_CardLayout=Tab\u914D\u7F6E +FR-Designer_CardLayout=Tab\u30EC\u30A4\u30A2\u30A6\u30C8 FR-Designer_Cell=\u30BB\u30EB -FR-Designer_Chart_Cell=\u30B0\u30E9\u30D5\u30CF\u30A4\u30D1\u30FC\u30EA\u30F3\u30AF-\u9023\u52D5\u30BB\u30EB -FR-Designer_Chart_Float=\u30B0\u30E9\u30D5\u30CF\u30A4\u30D1\u30FC\u30EA\u30F3\u30AF-\u9023\u52D5\u30D5\u30ED\u30FC\u8981\u7D20 -FR-Designer_Chart_Float_chart=\u30B0\u30E9\u30D5\u30CF\u30A4\u30D1\u30FC\u30EA\u30F3\u30AF-\u30D5\u30ED\u30FC\u7A93\u30B0\u30E9\u30D5 -FR-Designer_Check-for-Updates=\u66F4\u65B0\u3092\u78BA\u8A8D -FR-Designer_Choose-Data-Confusion-Tip=\ \u6DF7\u4EA4\u3059\u308B\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u9078\u629E\u5F8C\u30D7\u30EC\u30D3\u30E5\u30FC\u3057\u3066\u304F\u3060\u3055\u3044 -FR-Designer_Close=\u30AF\u30ED\u30FC\u30BA +FR-Designer_Chart_Cell=\u30B0\u30E9\u30D5\u30CF\u30A4\u30D1\u30FC\u30EA\u30F3\u30AF-\u30BB\u30EB\u9023\u52D5 +FR-Designer_Chart_Float=\u30B0\u30E9\u30D5\u30CF\u30A4\u30D1\u30FC\u30EA\u30F3\u30AF-\u30D5\u30ED\u30FC\u30C6\u30A3\u30F3\u30B0\u8981\u7D20\u9023\u52D5 +FR-Designer_Chart_Float_chart=\u30B0\u30E9\u30D5\u30CF\u30A4\u30D1\u30FC\u30EA\u30F3\u30AF-\u30D5\u30ED\u30FC\u30C6\u30A3\u30F3\u30B0\u30A6\u30A3\u30F3\u30C9\u30A6\u30B0\u30E9\u30D5 +FR-Designer_Check-for-Updates=\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8\u3092\u78BA\u8A8D +FR-Designer_Choose-Data-Confusion-Tip=\ \u6DF7\u4E71\u3055\u305B\u308B\u3079\u304D\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u9078\u629E\u3057\u3066\u30D7\u30EC\u30D3\u30E5\u30FC\u4E0B\u3055\u3044 +FR-Designer_Close=\u9589\u3058\u308B FR-Designer_Column=\u5217 -FR-Designer_Column_Measure=\u5217\u8EF8/\u5EA6\u91CF\u5024 +FR-Designer_Column_Measure=\u5217\u8EF8/\u30E1\u30C8\u30EA\u30C3\u30AF FR-Designer_Condition_Attributes=\u6761\u4EF6\u5C5E\u6027 -FR-Designer_Confusion-Col-Name=\u30D5\u30A3\u30FC\u30EB\u30C9\u540D\u79F0 -FR-Designer_Confusion-key=\u6DF7\u4EA4\u3059\u308B\u30AD\u30FC\u30EF\u30FC\u30C9 -FR-Designer_Currency_Line=\u91D1\u984D\u7DDA -FR-Designer_Current_tab=\u73FE\u5728\u306E\u7DE8\u96C6tab -FR-Designer_Custom=\u30AB\u30B9\u30BF\u30DE\u30A4\u30BA -FR-Designer_Custom-Angle=\u30AB\u30B9\u30BF\u30DE\u30A4\u30BA\u89D2\u5EA6 -FR-Designer_DS-Dictionary=\u30C7\u30FC\u30BF\u5B57\u5178 -FR-Designer_Data-confusion=\u30C7\u30FC\u30BF\u6DF7\u4EA4 +FR-Designer_Confusion-Col-Name=\u30D5\u30A3\u30FC\u30EB\u30C9\u540D +FR-Designer_Confusion-key=\u30AD\u30FC\u30EF\u30FC\u30C9\u3092\u6DF7\u4E71\u3055\u305B\u308B +FR-Designer_Currency_Line=\u6841\u533A\u5207\u308A\u7DDA +FR-Designer_Current_tab=tab\u7DE8\u96C6\u4E2D +FR-Designer_Custom=\u30AB\u30B9\u30BF\u30E0 +FR-Designer_Custom-Angle=\u30AB\u30B9\u30BF\u30E0\u89D2\u5EA6 +FR-Designer_DS-Dictionary=\u30C7\u30FC\u30BF\u8F9E\u66F8 +FR-Designer_Data-confusion=\u30C7\u30FC\u30BF\u6DF7\u4E71 FR-Designer_Data_Type=\u30C7\u30FC\u30BF\u30BF\u30A4\u30D7 -FR-Designer_Double_Click_Edit_OR_Clear=\u30C0\u30D6\u30EB\u30AF\u30EA\u30C3\u30AF\u3057\u3066\u7DE8\u96C6\u307E\u305F\u306F\u30AF\u30EA\u30A2\u3059\u308B -FR-Designer_Edit_Button_ToolBar=\u30DC\u30BF\u30F3\u306B\u3042\u308B\u30C4\u30FC\u30EB\u6B04\u7DE8\u96C6 -FR-Designer_Email=\u30E1\u30FC\u30EB +FR-Designer_Double_Click_Edit_OR_Clear=\u30C0\u30D6\u30EB\u30AF\u30EA\u30C3\u30AF\u3057\u3066\u7DE8\u96C6\u3084\u30AF\u30EA\u30A2\u3092\u884C\u3046 +FR-Designer_Edit_Button_ToolBar=\u30DC\u30BF\u30F3\u306E\u30C4\u30FC\u30EB\u30D0\u30FC\u3092\u7DE8\u96C6 +FR-Designer_Email=E\u30E1\u30FC\u30EB FR-Designer_Enabled=\u4F7F\u7528\u53EF\u80FD -FR-Designer_End-Date=\u7D42\u4E86\u65E5\u671F -FR-Designer_ExportAndOutput=\u30A2\u30A6\u30C8\u30D7\u30C3\u30C8 +FR-Designer_End-Date=\u7D42\u4E86\u65E5 +FR-Designer_ExportAndOutput=\u30A8\u30AF\u30B9\u30DD\u30FC\u30C8 FR-Designer_FRFont=\u30D5\u30A9\u30F3\u30C8 -FR-Designer_FS_Close_Other_Templates=\u305D\u306E\u4ED6\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u3092\u9589\u3058\u308B +FR-Designer_FS_Close_Other_Templates=\u4ED6\u306E\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u3092\u9589\u3058\u308B FR-Designer_File=\u30D5\u30A1\u30A4\u30EB -FR-Designer_Filter_Conditions=\u9078\u5225\u6761\u4EF6 -FR-Designer_Finish-Modify-Share=\u4FEE\u6B63\u3092\u5B8C\u4E86\u3057\u3066\u30B7\u30A7\u30A2 -FR-Designer_Fit-App=App\u81EA\u9069\u5FDC -FR-Designer_Fit=\u81EA\u9069\u5FDC -FR-Designer_Font-Family=\u30D5\u30A9\u30F3\u30C8\u540D\u79F0 -FR-Designer_Font-Size=\u30D5\u30A9\u30F3\u30C8\u5927\u5C0F -FR-Designer_Forbid_Drag_into_Adapt_Pane=\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u306F\u30D5\u30A9\u30FC\u30E0\u672C\u6587\u3092\u30C9\u30E9\u30C3\u30B0\u3059\u308B\u3053\u3068\u306F\u8A31\u3055\u308C\u306A\u3044 -FR-Designer_Forbid_Drag_into_Para_Pane=\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u306F\u3001\u30D1\u30E9\u30E1\u30FC\u30BF\u30D1\u30CD\u30EB\u306B\u30C9\u30E9\u30C3\u30B0\u3059\u308B\u3053\u3068\u304C\u3067\u304D\u307E\u305B\u3093 +FR-Designer_Filter_Conditions=\u30D5\u30A3\u30EB\u30BF\u6761\u4EF6 +FR-Designer_Finish-Modify-Share=\u4FEE\u6B63\u3092\u7D42\u4E86\u3055\u305B\u3066\u5171\u6709 +FR-Designer_Fit-App=\u30A2\u30D7\u30EA\u81EA\u5DF1\u8ABF\u6574 +FR-Designer_Fit=\u81EA\u5DF1\u8ABF\u6574 +FR-Designer_Font-Family=\u30D5\u30A9\u30F3\u30C8\u540D +FR-Designer_Font-Size=\u30D5\u30A9\u30F3\u30C8\u30B5\u30A4\u30BA +FR-Designer_Forbid_Drag_into_Adapt_Pane=\u5F53\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u3092\u30C0\u30C3\u30B7\u30E5\u30DC\u30FC\u30C9\u4E3B\u4F53\u306B\u30C9\u30E9\u30C3\u30B0\u3057\u3066\u306F\u306A\u3089\u306A\u3044 +FR-Designer_Forbid_Drag_into_Para_Pane=\u5F53\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u3092\u30D1\u30E9\u30E1\u30FC\u30BF\u30D1\u30CD\u30EB\u306B\u30C9\u30E9\u30C3\u30B0\u3067\u304D\u307E\u305B\u3093 FR-Designer_Foreground=\u8272 -FR-Designer_Form-AuthorityEdited_Cannot_be_Supported=\u8868\u306E\u6A29\u9650\u7DE8\u96C6\u306B\u30B5\u30DD\u30FC\u30C8\u3057\u3066\u3044\u307E\u305B\u3093 -FR-Designer_Form-Report=\u5E33\u7968\u30E2\u30B8\u30E5\u30FC\u30EB -FR-Designer_Form_EmbeddedTD=\u8868(\u5185\u8535\u30C7\u30FC\u30BF) -FR-Designer_Form_Module=\u8868\u30E2\u30B8\u30E5\u30FC\u30EB +FR-Designer_Form-AuthorityEdited_Cannot_be_Supported=\u30C0\u30C3\u30B7\u30E5\u30DC\u30FC\u30C9\u6A29\u9650\u7DE8\u96C6\u306F\u73FE\u6642\u70B9\u3067\u306F\u30B5\u30DD\u30FC\u30C8\u3057\u3066\u3044\u307E\u305B\u3093 +FR-Designer_Form-Report=\u5E33\u7968\u30D6\u30ED\u30C3\u30AF +FR-Designer_Form_EmbeddedTD=\u30C0\u30C3\u30B7\u30E5\u30DC\u30FC\u30C9(\u7D44\u307F\u8FBC\u307F\u30C7\u30FC\u30BF) +FR-Designer_Form_Module=\u30C0\u30C3\u30B7\u30E5\u30DC\u30FC\u30C9\u30E2\u30B8\u30E5\u30FC\u30EB FR-Designer_Format_explan=\u66F8\u5F0F\u8AAC\u660E -FR-Designer_Formula=\u516C\u5F0F -FR-Designer_Forum=BBS +FR-Designer_Formula=\u6570\u5F0F +FR-Designer_Forum=\u30D5\u30A9\u30FC\u30E9\u30E0 FR-Designer_Get-Cube=cube\u53D6\u5F97\u4E2D FR-Designer_Help=\u30D8\u30EB\u30D7 -FR-Designer_Hide=\u96A0\u3059 -FR-Designer_Hyperlink=\u30B9\u30FC\u30D1\u30FC\u30EA\u30F3\u30AF -FR-Designer_Hyperlink-Form_link=\u73FE\u5728\u306E\u8868\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8 +FR-Designer_Hide=\u975E\u8868\u793A +FR-Designer_Hyperlink=\u30CF\u30A4\u30D1\u30FC\u30EA\u30F3\u30AF +FR-Designer_Hyperlink-Form_link=\u73FE\u5728\u306E\u30C0\u30C3\u30B7\u30E5\u30DC\u30FC\u30C9\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8 FR-Designer_IDCard=\u8EAB\u5206\u8A3C\u660E\u66F8 FR-Designer_Icon=\u30A2\u30A4\u30B3\u30F3 FR-Designer_Index=\u5217\u8EF8/\u6307\u6A19 -FR-Designer_Input_Rule=\u30EB\u30FC\u30EB\u8A18\u5165 +FR-Designer_Input_Rule=\u5165\u529B\u898F\u5247 FR-Designer_Language_Default=\u30C7\u30D5\u30A9\u30EB\u30C8 -FR-Designer_Layout=\u914D\u7F6E -FR-Designer_Layout-HBox=\u6C34\u5E73\u30B1\u30FC\u30B9\u914D\u7F6E -FR-Designer_Layout-Index=\u7D22\u5F15 -FR-Designer_Layout_Constraints=\u4F4D\u7F6E\u3068\u5927\u5C0F +FR-Designer_Layout=\u30EC\u30A4\u30A2\u30A6\u30C8 +FR-Designer_Layout-HBox=\u6C34\u5E73\u30DC\u30C3\u30AF\u30B9\u306E\u30EC\u30A4\u30A2\u30A6\u30C8 +FR-Designer_Layout-Index=\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9 +FR-Designer_Layout_Constraints=\u4F4D\u7F6E\u3068\u30B5\u30A4\u30BA FR-Designer_Length=\u9577\u3055 -FR-Designer_Loading_Data=\u30C7\u30FC\u30BF\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9\u3057\u3066\u3044\u307E\u3059 -FR-Designer_M-Exit=\u9000\u51FA +FR-Designer_Loading_Data=\u30C7\u30FC\u30BF\u30ED\u30FC\u30C9\u4E2D +FR-Designer_M-Exit=\u7D42\u4E86 FR-Designer_M-Help=\u30D8\u30EB\u30D7 FR-Designer_M-Insert=\u633F\u5165 -FR-Designer_M-Repeat-Freeze=\u91CD\u8907\u3068\u30D5\u30EA\u30FC\u30BA\u8A2D\u5B9A -FR-Designer_M-Server=\u30B5\u30FC\u30D0\u30FC -FR-Designer_M-SwitchWorkspace=\u4F5C\u696D\u76EE\u6B21\u5207\u308A\u66FF\u3048 +FR-Designer_M-Repeat-Freeze=\u7E70\u308A\u8FD4\u3057\u3068\u56FA\u5B9A\u306E\u8A2D\u5B9A +FR-Designer_M-Server=\u30B5\u30FC\u30D0 +FR-Designer_M-SwitchWorkspace=\u4F5C\u696D\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u5207\u308A\u66FF\u3048 FR-Designer_M-Template=\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8 -FR-Designer_MDX_Explain=\u6587\u6CD5\u66F8\u5F0F\u306FMDX\u6587\u6CD5\u3092\u53C2\u8003\u3002\n\u4F8B\u3048\u3070\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\u6CE8\uFF1ACOLUMNS\u3001ROWS\u306F0\u30011\u3092\u4F7F\u7528\u3057\u3066\u4EE3\u66FF\u53EF\u80FD\u3067\u3059\u3002\u30AF\u30A8\u30EA\u8EF8\u306F\u4E8C\u3064\u306E\u8EF8\u623B\u3057\u306B\u306E\u307F\u30B5\u30DD\u30FC\u30C8\u3057\u307E\u3059\u3002 +FR-Designer_MDX_Explain=\u6587\u6CD5\u66F8\u5F0F\u306FMDX\u6587\u6CD5\u3092\u53C2\u7167\u3057\u3066\u304F\u3060\u3055\u3044\u3002\n\u4F8B\:\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\u6CE8\uFF1ACOLUMNS\u3001ROWS\u30011\u3067\u53D6\u308A\u63DB\u3048\u308B\u3053\u3068\u304C\u3067\u304D\u3001\u691C\u7D22\u8EF8\u306F2\u8EF8\u306E\u623B\u308A\u3057\u304B\u30B5\u30DD\u30FC\u30C8\u3057\u3066\u3044\u307E\u305B\u3093\u3002 FR-Designer_M_Help-About_Software=\u30BD\u30D5\u30C8\u30A6\u30A7\u30A2\u306B\u3064\u3044\u3066 FR-Designer_M_Help-Tutorial=\u30D8\u30EB\u30D7\u30C1\u30E5\u30FC\u30C8\u30EA\u30A2\u30EB FR-Designer_Max_Value=\u6700\u5927\u5024 FR-Designer_Min_Value=\u6700\u5C0F\u5024 -FR-Designer_MobilePhone=\u643A\u5E2F\u96FB\u8A71 -FR-Designer_New_Value=\u65B0\u5024 +FR-Designer_MobilePhone=\u30B9\u30DE\u30FC\u30C8\u30D5\u30A9\u30F3 +FR-Designer_New_Value=\u65B0\u3057\u3044\u5024 FR-Designer_None=\u7121\u3057 -FR-Designer_PaperSize-Mobile=\u643A\u5E2F\u96FB\u8A71 -FR-Designer_PaperSize-Mobile-Large=\u643A\u5E2F\u96FB\u8A71\u5927\u30B9\u30AF\u30EA\u30FC\u30F3 -FR-Designer_PaperSize-Mobile-Small=\u643A\u5E2F\u96FB\u8A71\u5C0F\u30B9\u30AF\u30EA\u30FC\u30F3 -FR-Designer_Para-Body=\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC\u753B\u9762 -FR-Designer_Parameters=\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC +FR-Designer_PaperSize-Mobile=\u30B9\u30DE\u30FC\u30C8\u30D5\u30A9\u30F3 +FR-Designer_PaperSize-Mobile-Large=\u643A\u5E2F\u5927\u753B\u9762 +FR-Designer_PaperSize-Mobile-Small=\u643A\u5E2F\u5C0F\u753B\u9762 +FR-Designer_Para-Body=\u30D1\u30E9\u30E1\u30FC\u30BF\u30D1\u30CD\u30EB +FR-Designer_Parameters=\u30D1\u30E9\u30E1\u30FC\u30BF FR-Designer_Phone=\u96FB\u8A71 FR-Designer_PostCode=\u90F5\u4FBF\u756A\u53F7 -FR-Designer_Present=\u30D5\u30A9\u30EB\u30E0 +FR-Designer_Present=\u5F62\u614B FR-Designer_Preview=\u30D7\u30EC\u30D3\u30E5\u30FC -FR-Designer_Preview-Data-Confusion=\u6DF7\u4EA4\u5F8C\u306E\u30C7\u30FC\u30BF\u3092\u30D7\u30EC\u30D3\u30E5\u30FC +FR-Designer_Preview-Data-Confusion=\u6DF7\u4E71\u3055\u308C\u305F\u30C7\u30FC\u30BF\u3092\u30D7\u30EC\u30D3\u30E5\u30FC FR-Designer_Product_Demo=\u88FD\u54C1\u30C7\u30E2 -FR-Designer_Query_Type=\u30AF\u30A8\u30EA\u65B9\u6CD5 +FR-Designer_Query_Type=\u30AF\u30A8\u30EA\u30BF\u30A4\u30D7 FR-Designer_Refresh=\u66F4\u65B0 -FR-Designer_Refresh_Parameter_In_SQL=SQL\u4E2D\u306E\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC\u3092\u66F4\u65B0\u3057\u307E\u3059\u304B -FR-Designer_Reg_Expressions=\u6B63\u5247\u8868\u73FE\u5F0F -FR-Designer_Reg_Max_Length=\u6700\u5927\u9577\u3055 -FR-Designer_Reg_Min_Length=\u6700\u5C0F\u9577\u3055 -FR-Designer_Remove_Button_ToolBar=\u30DC\u30BF\u30F3\u304C\u3042\u308B\u30C4\u30FC\u30EB\u30D0\u30FC\u3092\u30EA\u30E0\u30FC\u30D6 -FR-Designer_ReportColumns-Columns=\u6BB5\u7D44\u307F -FR-Designer_Return-Date=\u65E5\u671F\u306B\u623B\u308B -FR-Designer_RichText=\u30EA\u30C3\u30C1\u6587\u66F8\u633F\u5165 -FR-Designer_RichTextEditor=\u30EA\u30C3\u30C1\u6587\u66F8\u30A8\u30C7\u30A3\u30BF +FR-Designer_Refresh_Parameter_In_SQL=SQL\u306E\u30D1\u30E9\u30E1\u30FC\u30BF\u3092\u66F4\u65B0\u3057\u307E\u3059\u304B +FR-Designer_Reg_Expressions=\u6B63\u898F\u8868\u73FE +FR-Designer_Reg_Max_Length=\u6700\u5927 +FR-Designer_Reg_Min_Length=\u6700\u5C0F +FR-Designer_Remove_Button_ToolBar=\u30DC\u30BF\u30F3\u306E\u30C4\u30FC\u30EB\u30D0\u30FC\u3092\u524A\u9664 +FR-Designer_ReportColumns-Columns=\u30B5\u30D6\u30D5\u30A3\u30FC\u30EB\u30C9 +FR-Designer_Return-Date=\u65E5\u4ED8\u578B\u3092\u623B\u3059 +FR-Designer_RichText=\u30EA\u30C3\u30C1\u30C6\u30AD\u30B9\u30C8 +FR-Designer_RichTextEditor=\u30EA\u30C3\u30C1\u30C6\u30AD\u30B9\u30C8\u30A8\u30C7\u30A3\u30BF FR-Designer_Row=\u884C -FR-Designer_Row_Dimension=\u884C\u8EF8/\u7DEF\u5EA6 +FR-Designer_Row_Dimension=\u884C\u8EF8/\u30C7\u30A3\u30E1\u30F3\u30B7\u30E7\u30F3 FR-Designer_Save=\u4FDD\u5B58 FR-Designer_Search=\u691C\u7D22 FR-Designer_Set=\u8A2D\u5B9A -FR-Designer_Share-Template=\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u30B7\u30A7\u30A2 -FR-Designer_Simple_general=\u30B7\u30F3\u30D7\u30EB\u901A\u7528\u30AF\u30A8\u30EA +FR-Designer_Share-Template=\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u5171\u6709 +FR-Designer_Simple_general=\u7C21\u6613\u4E00\u822C\u691C\u7D22 FR-Designer_Song_TypeFace=\u5B8B\u4F53 -FR-Designer_Start-Date=\u958B\u59CB\u65E5\u671F +FR-Designer_Start-Date=\u958B\u59CB\u65E5 FR-Designer_Subscript=\u4E0B\u4ED8\u304D FR-Designer_Superscript=\u4E0A\u4ED8\u304D -FR-Designer_Support_QQ=\u6280\u8853QQ +FR-Designer_Support_QQ=\u6280\u8853\u30B5\u30DD\u30FC\u30C8QQ FR-Designer_Swatch=\u30B5\u30F3\u30D7\u30EB -FR-Designer_Tab_title=tab\u30BF\u30A4\u30C8\u30EB +FR-Designer_Tab_title=\u30BF\u30D6\u30BF\u30A4\u30C8\u30EB FR-Designer_TableData=\u30C7\u30FC\u30BF\u30BB\u30C3\u30C8 -FR-Designer_Thank_guest=\u7279\u306B\u5F53\u8A72\u30D0\u30FC\u30B8\u30E7\u30F3\u30C7\u30B6\u30A4\u30CA\u30FC\u306E\u4F7F\u3044\u3084\u3059\u3055\u306B\u3064\u3044\u3066\u8CA2\u732E\u3057\u3066\u304F\u308C\u305F\u4EE5\u4E0B\u306EBBS\u306E\u5E06\u30BD\u30D5\u30C8\u30D5\u30A1\u30F3\u306B\u611F\u8B1D\u3057\u307E\u3059 +FR-Designer_Thank_guest=\u7279\u306B\u4EE5\u4E0B\u306E\u30D5\u30A9\u30FC\u30E9\u30E0\u5E06\u85AF\u304C\u5F53\u30D0\u30FC\u30B8\u30E7\u30F3\u306E\u30C7\u30B6\u30A4\u30CA\u30FC\u306E\u4F7F\u3044\u3084\u3059\u3055\u306B\u9855\u8457\u306A\u8CA2\u732E\u306B\u611F\u8B1D FR-Designer_Thanks-To=\u611F\u8B1D FR-Designer_Title=\u30BF\u30A4\u30C8\u30EB -FR-Designer_Total=\u5168\u90E8\u3067 +FR-Designer_Total=\u5408\u8A08 FR-Designer_UnSignIn=\u672A\u30ED\u30B0\u30A4\u30F3 -FR-Designer_Underline=\u30A2\u30F3\u30C0\u30FC\u30E9\u30A4\u30F3 -FR-Designer_Used=\u6700\u8FD1\u4F7F\u7528\u3057\u305F -FR-Designer_User-defined-MDX=\u30AB\u30B9\u30BF\u30DE\u30A4\u30BAMDX\u30AF\u30A8\u30EA -FR-Designer_SampleText=\u30C6\u30AD\u30B9\u30C8\u4F8B -FR-Designer_Vertical-LeftToRight=\u6587\u5B57\u7E26\u66F8(\u5DE6\u304B\u3089\u53F3\u3078\uFF09 +FR-Designer_Underline=\u4E0B\u7DDA +FR-Designer_Used=\u6700\u8FD1\u4F7F\u7528 +FR-Designer_User-defined-MDX=\u30AB\u30B9\u30BF\u30E0MDX\u691C\u7D22 +FR-Designer_SampleText=\u30B5\u30F3\u30D7\u30EB\u30C6\u30AD\u30B9\u30C8 \u30B5\u30F3\u30D7\u30EB\u30C6\u30AD\u30B9\u30C8 +FR-Designer_Vertical-LeftToRight=\u6587\u5B57\u7E26\u66F8\u304D(\u5DE6\u304B\u3089\u53F3\u3078) FR-Designer_Vertical-RightToLeft=\u6587\u5B57\u7E26\u66F8(\u53F3\u304B\u3089\u5DE6\u3078) -FR-Designer_VerticalBoxLayout=\u5782\u76F4\u30B1\u30FC\u30B9\u914D\u7F6E -FR-Designer_Visible=\u53EF\u8996 -FR-Designer_WLayout-Border-ToolTips=\u5B8C\u74A7\u306A\u30DC\u30FC\u30C0\u30FC\u30EC\u30A4\u30A2\u30A6\u30C8\u5BB9\u5668\u306F\u6771\u897F\u5357\u5317\u4E2D\u306E\u4E94\u3064\u306E\u30E2\u30B8\u30E5\u30FC\u30EB\u304B\u3089\u69CB\u6210\u3055\u308C\u307E\u3059\u3002\\uff4e\u305D\u306E\u3046\u3061\u3001\u5357\u5317\u30E2\u30B8\u30E5\u30FC\u30EB\u306F\u5FC5\u8981\u306B\u5FDC\u3058\u3066\u9AD8\u3055\u3092\u8ABF\u6574\u3067\u304D\u3001\u6771\u897F\u30E2\u30B8\u30E5\u30FC\u30EB\u306F\u5FC5\u8981\u306B\u5FDC\u3058\u3066\u5E45\u3092\u8ABF\u6574\u3067\u304D\u307E\u3059\u3002 +FR-Designer_VerticalBoxLayout=\u5782\u76F4\u30DC\u30C3\u30AF\u30B9\u30EC\u30A4\u30A2\u30A6\u30C8 +FR-Designer_Visible=\u8868\u793A +FR-Designer_WLayout-Border-ToolTips=\u5B8C\u5168\u306A\u30DC\u30FC\u30C0\u30FC\u30EC\u30A4\u30A2\u30A6\u30C8\u30B3\u30F3\u30C6\u30CA\u306F\u3001\u6771\u3001\u5357\u3001\u897F\u3001\u5317\u3001\u4E2D\u592E\u306E5\u30D6\u30ED\u30C3\u30AF\u3088\u308A\u69CB\u6210\u3055\u308C\u307E\u3059\u3002\n\u5317\u90E8\u3068\u5357\u90E8\u3067\u306F\u9AD8\u3055\u3092\u3001\u6771\u90E8\u3068\u897F\u90E8\u3068\u3067\u306F\u5E45\u3092\u8ABF\u6574\u3067\u304D\u307E\u3059\u3002 FR-Designer_WaterMark=\u900F\u304B\u3057 FR-Designer_Widget=\u30B3\u30F3\u30C8\u30ED\u30FC\u30EB FR-Designer_Widget-Settings=\u30B3\u30F3\u30C8\u30ED\u30FC\u30EB\u8A2D\u5B9A From 5a05c497c710255d88b40bfdfc6e862658bb441f Mon Sep 17 00:00:00 2001 From: plough Date: Wed, 26 Apr 2017 09:28:21 +0800 Subject: [PATCH 39/72] =?UTF-8?q?REPORT-2343=20[=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=E8=B4=A8=E9=87=8F]=20=E6=A8=A1=E6=9D=BF=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=E6=94=B6=E9=9B=86=E7=94=A8xml=E6=96=B9=E5=BC=8F=E4=BF=9D?= =?UTF-8?q?=E5=AD=98=E4=B8=8E=E8=AF=BB=E5=8F=96,=20=E7=9B=B4=E6=8E=A5readO?= =?UTF-8?q?bject=E4=B8=8D=E5=A4=AA=E5=A5=BD.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../templateinfo/TemplateInfoCollector.java | 205 ++++++++++++++---- 1 file changed, 164 insertions(+), 41 deletions(-) diff --git a/designer_base/src/com/fr/design/mainframe/templateinfo/TemplateInfoCollector.java b/designer_base/src/com/fr/design/mainframe/templateinfo/TemplateInfoCollector.java index b9b7aa194e..dccff0e9c3 100644 --- a/designer_base/src/com/fr/design/mainframe/templateinfo/TemplateInfoCollector.java +++ b/designer_base/src/com/fr/design/mainframe/templateinfo/TemplateInfoCollector.java @@ -6,32 +6,37 @@ import com.fr.design.DesignerEnvManager; import com.fr.design.mainframe.DesignerContext; import com.fr.design.mainframe.JTemplate; import com.fr.env.RemoteEnv; -import com.fr.general.ComparatorUtils; -import com.fr.general.FRLogger; -import com.fr.general.GeneralUtils; -import com.fr.general.SiteCenter; +import com.fr.general.*; import com.fr.general.http.HttpClient; +import com.fr.json.JSONArray; +import com.fr.json.JSONException; import com.fr.stable.*; -import org.json.JSONObject; +import com.fr.stable.xml.*; +import com.fr.third.javax.xml.stream.XMLStreamException; +import com.fr.json.JSONObject; import java.io.*; import java.text.SimpleDateFormat; import java.util.*; +import java.util.HashMap; +import java.util.Iterator; /** * 做模板的过程和耗时收集,辅助类 * Created by plough on 2017/2/21. */ -public class TemplateInfoCollector implements Serializable { - private static final String FILE_NAME = "tplInfo.ser"; +public class TemplateInfoCollector implements XMLReadable, XMLWriter { + private static final String FILE_NAME = "tpl.info"; private static TemplateInfoCollector instance; - private HashMap> templateInfoList; + private Map> templateInfoList; private String designerOpenDate; //设计器最近一次打开日期 private static final int VALID_CELL_COUNT = 5; // 有效报表模板的格子数 private static final int VALID_WIDGET_COUNT = 5; // 有效报表模板的控件数 private static final int COMPLETE_DAY_COUNT = 15; // 判断模板是否完成的天数 private static final int ONE_THOUSAND = 1000; static final long serialVersionUID = 2007L; + private static final String XML_DESIGNER_OPEN_DATE = "DesignerOpenDate"; + private static final String XML_TEMPLATE_INFO_LIST = "TemplateInfoList"; @SuppressWarnings("unchecked") private TemplateInfoCollector() { @@ -63,27 +68,42 @@ public class TemplateInfoCollector implements Serializable { public static TemplateInfoCollector getInstance() { if (instance == null) { - // 先尝试从文件读取 - try{ - ObjectInputStream is = new ObjectInputStream(new FileInputStream(getInfoFile())); - instance = (TemplateInfoCollector) is.readObject(); - } catch (FileNotFoundException ex) { - // 如果之前没有存储过,则创建新对象 - instance = new TemplateInfoCollector(); - } catch (InvalidClassException ex) { - // 如果 TemplateInfoCollecor 类结构有改动,则放弃之前收集的数据(下次保存时覆盖) - // 这种情况主要在开发、测试过程中遇到,正式上线后不应该出现 - FRLogger.getLogger().info(ex.getMessage()); - FRLogger.getLogger().info("use a new instance"); - instance = new TemplateInfoCollector(); - } - catch (Exception ex) { - FRLogger.getLogger().error(ex.getMessage(), ex); - } + instance = new TemplateInfoCollector(); + readXMLFile(instance, getInfoFile()); } return instance; } + private static void readXMLFile(XMLReadable xmlReadable, File xmlFile){ + if (xmlFile == null || !xmlFile.exists()) { + return; + } + String charset = EncodeConstants.ENCODING_UTF_8; + try { + String fileContent = getFileContent(xmlFile); + InputStream xmlInputStream = new ByteArrayInputStream(fileContent.getBytes(charset)); + InputStreamReader inputStreamReader = new InputStreamReader(xmlInputStream, charset); + XMLableReader xmlReader = XMLableReader.createXMLableReader(inputStreamReader); + + if (xmlReader != null) { + xmlReader.readXMLObject(xmlReadable); + } + xmlInputStream.close(); + } catch (FileNotFoundException e) { + FRContext.getLogger().error(e.getMessage()); + } catch (IOException e) { + FRContext.getLogger().error(e.getMessage()); + } catch (XMLStreamException e) { + FRContext.getLogger().error(e.getMessage()); + } + + } + + private static String getFileContent(File xmlFile) throws FileNotFoundException, UnsupportedEncodingException{ + InputStream is = new FileInputStream(xmlFile); + return IOUtils.inputStream2String(is); + } + private boolean shouldCollectInfo() { if (FRContext.getCurrentEnv() instanceof RemoteEnv) { // 远程设计不收集数据 return false; @@ -122,22 +142,40 @@ public class TemplateInfoCollector implements Serializable { */ private void saveInfo() { try { - ObjectOutputStream os = new ObjectOutputStream(new FileOutputStream(getInfoFile())); - String log = ""; - int count = 1; - for (String key : templateInfoList.keySet()) { - String createTime = ((HashMap)templateInfoList.get(key).get("consumingMap")).get("create_time").toString(); - log += (count + ". id: " + key + " " + createTime + "\n" + templateInfoList.get(key).toString() + "\n"); - count ++; - } - FRLogger.getLogger().info("writing tplInfo: \n" + log); - os.writeObject(instance); - os.close(); + ByteArrayOutputStream out = new ByteArrayOutputStream(); + XMLTools.writeOutputStreamXML(this, out); + out.flush(); + out.close(); + String fileContent = new String(out.toByteArray(), EncodeConstants.ENCODING_UTF_8); + writeContentToFile(fileContent, getInfoFile()); } catch (Exception ex) { FRLogger.getLogger().error(ex.getMessage()); } } + /** + * 将文件内容写到输出流中 + */ + private static void writeContentToFile(String fileContent, File file){ + BufferedWriter bw = null; + try { + FileOutputStream fos = new FileOutputStream(file); + OutputStreamWriter osw = new OutputStreamWriter(fos, EncodeConstants.ENCODING_UTF_8); + bw = new BufferedWriter(osw); + bw.write(fileContent); + } catch (Exception e) { + FRContext.getLogger().error(e.getMessage()); + } finally { + if(bw != null){ + try { + bw.close(); + } catch (IOException e) { + } + } + } + + } + /** * 更新 day_count:打开设计器却未编辑模板的连续日子 */ @@ -241,10 +279,7 @@ public class TemplateInfoCollector implements Serializable { String jsonProcessMap = templateInfo.get("jsonProcessMap"); if (sendSingleTemplateInfo(consumingUrl, jsonConsumingMap) && sendSingleTemplateInfo(processUrl, jsonProcessMap)) { // 清空记录 - FRLogger.getLogger().info("successfully send " + templateInfo.get("templateID")); removeFromTemplateInfoList(templateInfo.get("templateID")); - } else { - FRLogger.getLogger().info("send template info failed, will try next time, " + templateInfo.get("templateID")); } } saveInfo(); @@ -264,7 +299,12 @@ public class TemplateInfoCollector implements Serializable { } String res = httpClient.getResponseText(); - boolean success = ComparatorUtils.equals(new JSONObject(res).get("status"), "success"); + boolean success; + try { + success = ComparatorUtils.equals(new JSONObject(res).get("status"), "success"); + } catch (Exception ex) { + success = false; + } return success; } @@ -303,7 +343,6 @@ public class TemplateInfoCollector implements Serializable { private void removeFromTemplateInfoList(String key) { templateInfoList.remove(key); - FRLogger.getLogger().info(key + " is removed..."); } @SuppressWarnings("unchecked") @@ -325,6 +364,90 @@ public class TemplateInfoCollector implements Serializable { return isTestTemplate; } + public static Map jsonToMap(JSONObject json) throws JSONException { + Map retMap = new HashMap<>(); + + if(json != JSONObject.NULL) { + retMap = toMap(json); + } + return retMap; + } + + private static Map toMap(JSONObject object) throws JSONException { + Map map = new HashMap<>(); + + Iterator keysItr = object.keys(); + while(keysItr.hasNext()) { + String key = keysItr.next(); + Object value = object.get(key); + + if(value instanceof JSONArray) { + value = toList((JSONArray) value); + } + + else if(value instanceof JSONObject) { + value = toMap((JSONObject) value); + } + map.put(key, value); + } + return map; + } + + private static List toList(JSONArray array) throws JSONException { + List list = new ArrayList<>(); + for(int i = 0; i < array.length(); i++) { + Object value = array.get(i); + if(value instanceof JSONArray) { + value = toList((JSONArray) value); + } + + else if(value instanceof JSONObject) { + value = toMap((JSONObject) value); + } + list.add(value); + } + return list; + } + + @SuppressWarnings("unchecked") + @Override + public void readXML(XMLableReader reader) { + if (reader.isChildNode()) { + try { + String name = reader.getTagName(); + if (XML_DESIGNER_OPEN_DATE.equals(name)) { + this.designerOpenDate = reader.getElementValue(); + } else if(XML_TEMPLATE_INFO_LIST.equals(name)){ + JSONObject jsonObject = new JSONObject(reader.getElementValue()); + Map map = jsonToMap(jsonObject); + for (Map.Entry entry : map.entrySet()) { + if (entry.getValue() instanceof HashMap) { + this.templateInfoList.put(entry.getKey(), (HashMap) entry.getValue()); + } + } + } + } catch (Exception ex) { + // 什么也不做,使用默认值 + } + } + } + + @Override + public void writeXML(XMLPrintWriter writer) { + writer.startTAG("TemplateInfo"); + + writer.startTAG(XML_DESIGNER_OPEN_DATE); + writer.textNode(designerOpenDate); + writer.end(); + + writer.startTAG(XML_TEMPLATE_INFO_LIST); + writer.textNode(new JSONObject(templateInfoList).toString()); + writer.end(); + + writer.end(); + } + + public static void main(String[] args) { TemplateInfoCollector tic = TemplateInfoCollector.getInstance(); tic.sendTemplateInfo(); From c0c2ed2f6033a68d233b0cf4c538a9536396ba17 Mon Sep 17 00:00:00 2001 From: "yaoh.wu" Date: Wed, 26 Apr 2017 11:04:22 +0800 Subject: [PATCH 40/72] =?UTF-8?q?REPORT-2381=20=E5=AE=A2=E6=88=B7bug?= =?UTF-8?q?=E5=8E=86=E5=8F=B2=E9=81=97=E7=95=99=E9=97=AE=E9=A2=98=EF=BC=8C?= =?UTF-8?q?=E7=A9=BA=E6=8C=87=E9=92=88=E5=BC=95=E5=8F=91=E6=8E=A7=E4=BB=B6?= =?UTF-8?q?=E5=B1=9E=E6=80=A7=E9=9D=A2=E6=9D=BF=E7=94=9F=E6=88=90=E5=A4=B1?= =?UTF-8?q?=E8=B4=A5=E6=9C=80=E7=BB=88=E5=AF=BC=E8=87=B4=E6=8A=A5=E8=A1=A8?= =?UTF-8?q?=E5=88=87=E6=8D=A2=E5=A4=B1=E8=B4=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/com/fr/design/mainframe/WidgetPropertyPane.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/designer_form/src/com/fr/design/mainframe/WidgetPropertyPane.java b/designer_form/src/com/fr/design/mainframe/WidgetPropertyPane.java index 6a8480206d..201ab203e4 100644 --- a/designer_form/src/com/fr/design/mainframe/WidgetPropertyPane.java +++ b/designer_form/src/com/fr/design/mainframe/WidgetPropertyPane.java @@ -259,8 +259,11 @@ public class WidgetPropertyPane extends FormDockView implements BaseWidgetProper xCreator = designer.getRootComponent(); } XLayoutContainer container = XCreatorUtils.getHotspotContainer(xCreator); - //TODO container可能为空,引发空指针异常 - return xCreator.acceptType(XWParameterLayout.class) || container.acceptType(XWParameterLayout.class); + + boolean xCreatorAccept = xCreator.acceptType(XWParameterLayout.class); + boolean containerAccept = container!=null && container.acceptType(XWParameterLayout.class); + + return xCreatorAccept || containerAccept; } public void setEditingFormDesigner(BaseFormDesigner editor) { From c96943543ece4080e6294d7847a7c5e325075a2e Mon Sep 17 00:00:00 2001 From: XiaXiang Date: Wed, 26 Apr 2017 16:19:38 +0800 Subject: [PATCH 41/72] =?UTF-8?q?=E6=8E=A7=E4=BB=B6=E7=9A=84=E6=A1=86?= =?UTF-8?q?=E9=80=89=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fr/design/mainframe/ComponentTree.java | 46 ++++++++++--------- .../com/fr/design/mainframe/FormDesigner.java | 3 +- .../mainframe/widget/UITreeComboBox.java | 28 +++++------ 3 files changed, 41 insertions(+), 36 deletions(-) diff --git a/designer_form/src/com/fr/design/mainframe/ComponentTree.java b/designer_form/src/com/fr/design/mainframe/ComponentTree.java index 4d58c4887d..67894b991e 100644 --- a/designer_form/src/com/fr/design/mainframe/ComponentTree.java +++ b/designer_form/src/com/fr/design/mainframe/ComponentTree.java @@ -1,30 +1,26 @@ package com.fr.design.mainframe; -import java.awt.Component; -import java.awt.event.MouseAdapter; -import java.awt.event.MouseEvent; -import java.util.ArrayList; - -import javax.swing.DropMode; -import javax.swing.JPopupMenu; -import javax.swing.JTree; -import javax.swing.tree.TreePath; -import javax.swing.tree.TreeSelectionModel; - import com.fr.design.constants.UIConstants; -import com.fr.design.designer.beans.AdapterBus; -import com.fr.design.designer.beans.ComponentAdapter; -import com.fr.design.designer.beans.events.DesignerEditListener; -import com.fr.design.designer.beans.events.DesignerEvent; -import com.fr.design.designer.creator.*; +import com.fr.design.designer.creator.XCreator; +import com.fr.design.designer.creator.XLayoutContainer; +import com.fr.design.designer.creator.XWAbsoluteBodyLayout; +import com.fr.design.designer.creator.XWFitLayout; import com.fr.design.designer.treeview.ComponentTreeCellRenderer; import com.fr.design.designer.treeview.ComponentTreeModel; import com.fr.stable.StringUtils; +import javax.swing.*; +import javax.swing.tree.TreePath; +import javax.swing.tree.TreeSelectionModel; +import java.awt.*; +import java.util.ArrayList; + public class ComponentTree extends JTree { private FormDesigner designer; private ComponentTreeModel model; + //xiaoxia 保存框选的全部组件,只显示第一个 + private TreePath[] allSelectedTreePaths; public ComponentTree(FormDesigner designer) { this.designer = designer; @@ -92,9 +88,10 @@ public class ComponentTree extends JTree { } } - public void setAndScrollSelectionPath(TreePath treepath) { - setSelectionPath(treepath); - scrollPathToVisible(treepath); + public void setAndScrollSelectionPath(TreePath[] treepath) { + this.setAllSelectedTreePaths(treepath); + setSelectionPath(treepath[0]); + scrollPathToVisible(treepath[0]); } @@ -112,7 +109,6 @@ public class ComponentTree extends JTree { public TreePath[] getSelectedTreePath() { XCreator[] creators = designer.getSelectionModel().getSelection().getSelectedCreators(); TreePath[] paths = new TreePath[creators.length]; - for (int i = 0; i < paths.length; i++) { paths[i] = buildTreePath(creators[i]); } @@ -141,7 +137,7 @@ public class ComponentTree extends JTree { paths[i] = buildTreePath(searchList.get(i)); } if(paths.length > 0) { - setAndScrollSelectionPath(paths[0]); + setAndScrollSelectionPath(paths); } else { setSelectionPath(); } @@ -217,4 +213,12 @@ public class ComponentTree extends JTree { Object[] components = path.toArray(); return new TreePath(components); } + + public TreePath[] getAllSelectedTreePaths() { + return allSelectedTreePaths; + } + + public void setAllSelectedTreePaths(TreePath[] allSelectedTreePaths) { + this.allSelectedTreePaths = allSelectedTreePaths; + } } \ No newline at end of file diff --git a/designer_form/src/com/fr/design/mainframe/FormDesigner.java b/designer_form/src/com/fr/design/mainframe/FormDesigner.java index 0c77059935..3e29f41281 100644 --- a/designer_form/src/com/fr/design/mainframe/FormDesigner.java +++ b/designer_form/src/com/fr/design/mainframe/FormDesigner.java @@ -1008,7 +1008,7 @@ public class FormDesigner extends TargetComponent implements TreeSelection @Override public void valueChanged(TreeSelectionEvent e) { ComponentTree tree = (ComponentTree) e.getSource(); - TreePath[] paths = tree.getSelectionPaths(); + TreePath[] paths = tree.getAllSelectedTreePaths(); if (paths != null) { ArrayList selected = new ArrayList(); @@ -1018,7 +1018,6 @@ public class FormDesigner extends TargetComponent implements TreeSelection } if (!BaseUtils.isAuthorityEditing()) { - selectionModel.setSelectedCreators(selected); TreePath path = e.getNewLeadSelectionPath(); diff --git a/designer_form/src/com/fr/design/mainframe/widget/UITreeComboBox.java b/designer_form/src/com/fr/design/mainframe/widget/UITreeComboBox.java index 0d7b224f64..258fd15d31 100644 --- a/designer_form/src/com/fr/design/mainframe/widget/UITreeComboBox.java +++ b/designer_form/src/com/fr/design/mainframe/widget/UITreeComboBox.java @@ -3,22 +3,24 @@ package com.fr.design.mainframe.widget; /** * Created by xiaxiang on 2016/9/30. */ -import java.awt.*; -import java.awt.event.*; -import javax.swing.*; -import javax.swing.plaf.*; -import javax.swing.plaf.basic.*; -import javax.swing.plaf.metal.*; -import javax.swing.tree.*; -import com.fr.design.designer.beans.*; +import com.fr.design.designer.beans.AdapterBus; import com.fr.design.designer.beans.events.DesignerEditListener; import com.fr.design.designer.beans.events.DesignerEvent; import com.fr.design.designer.creator.XCreator; import com.fr.design.gui.icontainer.UIScrollPane; import com.fr.design.mainframe.ComponentTree; -import com.sun.java.swing.plaf.motif.*; -import com.sun.java.swing.plaf.windows.*; +import com.sun.java.swing.plaf.motif.MotifComboBoxUI; +import com.sun.java.swing.plaf.windows.WindowsComboBoxUI; + +import javax.swing.*; +import javax.swing.plaf.ComboBoxUI; +import javax.swing.plaf.basic.ComboPopup; +import javax.swing.plaf.metal.MetalComboBoxUI; +import javax.swing.tree.TreeCellRenderer; +import javax.swing.tree.TreePath; +import java.awt.*; +import java.awt.event.*; /** * 控件树下拉列表框 @@ -110,7 +112,7 @@ public class UITreeComboBox extends JComboBox{ int index, boolean isSelected, boolean cellHasFocus){ if(tree != null && tree.getSelectedTreePath().length > 0){ TreePath path = tree.getSelectedTreePath()[0]; - tree.setAndScrollSelectionPath(path); + tree.setAndScrollSelectionPath(tree.getSelectedTreePath()); Object node = path.getLastPathComponent(); value = node; TreeCellRenderer r = tree.getCellRenderer(); @@ -132,7 +134,7 @@ public class UITreeComboBox extends JComboBox{ if (evt.getCreatorEventID() == DesignerEvent.CREATOR_SELECTED) { TreePath[] paths = tree.getSelectedTreePath(); if (tree != null && paths.length > 0) { - tree.setAndScrollSelectionPath(paths[0]); + tree.setAndScrollSelectionPath(paths); setSelectedItem(paths[0]); MenuSelectionManager.defaultManager().clearSelectedPath(); } @@ -141,7 +143,7 @@ public class UITreeComboBox extends JComboBox{ tree.refreshUI(); TreePath[] paths = tree.getSelectedTreePath(); if (tree != null && paths.length > 0) { - tree.setAndScrollSelectionPath(paths[0]); + tree.setAndScrollSelectionPath(paths); setSelectedItem(paths[0]); MenuSelectionManager.defaultManager().clearSelectedPath(); } From 37b19cce1dc9a2fc2920ea00b6052a71492228a9 Mon Sep 17 00:00:00 2001 From: "yaoh.wu" Date: Wed, 26 Apr 2017 17:19:37 +0800 Subject: [PATCH 42/72] =?UTF-8?q?=E5=90=AF=E5=8A=A8=E6=97=B6=E4=BC=9A?= =?UTF-8?q?=E5=B0=86=E5=88=9D=E5=A7=8B=E5=8C=96=E7=9A=84=E9=A2=9C=E8=89=B2?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=88=B0=E5=8E=86=E5=8F=B2=E9=A2=9C=E8=89=B2?= =?UTF-8?q?=E4=B8=AD=EF=BC=8C=E4=B8=8D=E9=9C=80=E8=A6=81=E8=BF=99=E6=A0=B7?= =?UTF-8?q?=E5=81=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- designer_base/src/com/fr/design/gui/style/BorderPane.java | 3 --- .../mainframe/backgroundpane/PatternBackgroundQuickPane.java | 2 -- 2 files changed, 5 deletions(-) diff --git a/designer_base/src/com/fr/design/gui/style/BorderPane.java b/designer_base/src/com/fr/design/gui/style/BorderPane.java index 60989aedd9..714f0f0ac2 100644 --- a/designer_base/src/com/fr/design/gui/style/BorderPane.java +++ b/designer_base/src/com/fr/design/gui/style/BorderPane.java @@ -99,9 +99,6 @@ public class BorderPane extends AbstractBasicStylePane { this.add(northPane, BorderLayout.NORTH); this.add(centerPane, BorderLayout.CENTER); - - this.currentLineColorPane.setSelectObject(Color.BLACK); - outerToggleButton.addChangeListener(new ChangeListener() { @Override diff --git a/designer_base/src/com/fr/design/mainframe/backgroundpane/PatternBackgroundQuickPane.java b/designer_base/src/com/fr/design/mainframe/backgroundpane/PatternBackgroundQuickPane.java index 4e31405d11..1dc21db899 100644 --- a/designer_base/src/com/fr/design/mainframe/backgroundpane/PatternBackgroundQuickPane.java +++ b/designer_base/src/com/fr/design/mainframe/backgroundpane/PatternBackgroundQuickPane.java @@ -52,8 +52,6 @@ public class PatternBackgroundQuickPane extends BackgroundQuickPane { JPanel colorPane = new JPanel(new GridLayout(0, 2)); foregroundColorPane = new ColorSelectBox(70); backgroundColorPane = new ColorSelectBox(70); - foregroundColorPane.setSelectObject(Color.lightGray); - backgroundColorPane.setSelectObject(Color.black); colorPane.add(this.createLabelColorPane(Inter.getLocText("Foreground") + ":", foregroundColorPane)); colorPane.add(this.createLabelColorPane(Inter.getLocText("Background") + ":", backgroundColorPane)); From cf4578290587ce36978d813593879f1ba1f4eb7c Mon Sep 17 00:00:00 2001 From: "yaoh.wu" Date: Wed, 26 Apr 2017 18:05:30 +0800 Subject: [PATCH 43/72] pmd --- .../com/fr/design/gui/style/BorderPane.java | 49 +++++++------------ .../com/fr/design/locale/designer.properties | 4 ++ .../design/locale/designer_en_US.properties | 4 ++ .../design/locale/designer_ja_JP.properties | 6 ++- .../design/locale/designer_ko_KR.properties | 6 ++- .../design/locale/designer_zh_CN.properties | 6 ++- .../design/locale/designer_zh_TW.properties | 6 ++- .../PatternBackgroundQuickPane.java | 13 ++--- 8 files changed, 50 insertions(+), 44 deletions(-) diff --git a/designer_base/src/com/fr/design/gui/style/BorderPane.java b/designer_base/src/com/fr/design/gui/style/BorderPane.java index 714f0f0ac2..cb37f1c1a1 100644 --- a/designer_base/src/com/fr/design/gui/style/BorderPane.java +++ b/designer_base/src/com/fr/design/gui/style/BorderPane.java @@ -51,34 +51,16 @@ public class BorderPane extends AbstractBasicStylePane { } protected void initComponents() { - topToggleButton = new UIToggleButton(BaseUtils.readIcon("/com/fr/base/images/dialog/border/top.png")); - leftToggleButton = new UIToggleButton(BaseUtils.readIcon("/com/fr/base/images/dialog/border/left.png")); - bottomToggleButton = new UIToggleButton(BaseUtils.readIcon("/com/fr/base/images/dialog/border/bottom.png")); - rightToggleButton = new UIToggleButton(BaseUtils.readIcon("/com/fr/base/images/dialog/border/right.png")); - horizontalToggleButton = new UIToggleButton(BaseUtils.readIcon("/com/fr/base/images/dialog/border/horizontal.png")); - verticalToggleButton = new UIToggleButton(BaseUtils.readIcon("/com/fr/base/images/dialog/border/vertical.png")); - this.currentLineCombo = new LineComboBox(CoreConstants.UNDERLINE_STYLE_ARRAY); - this.currentLineColorPane = new NewColorSelectBox(100); - + initButtonsWithIcon(); this.setLayout(new BorderLayout(0, 6)); - - double p = TableLayout.PREFERRED; - double f = TableLayout.FILL; - - double[] columnSize1 = {p, f}; - double[] rowSize1 = {p, p}; - - + double p = TableLayout.PREFERRED, f = TableLayout.FILL; + double[] columnSize1 = {p, f}, rowSize1 = {p, p}; Component[][] components1 = new Component[][]{ - new Component[]{new UILabel(Inter.getLocText("Style") + ":"), currentLineCombo}, - new Component[]{new UILabel(Inter.getLocText("Color") + ":"), currentLineColorPane}, + new Component[]{new UILabel(Inter.getLocText("FR-Designer_Style") + ":"), currentLineCombo}, + new Component[]{new UILabel(Inter.getLocText("FR-Designer_Color") + ":"), currentLineColorPane}, }; - JPanel northPane = TableLayoutHelper.createTableLayoutPane(components1, rowSize1, columnSize1); - - - double[] columnSize2 = {p, f}; - double[] rowSize2 = {p, p}; + double[] columnSize2 = {p, f}, rowSize2 = {p, p}; JPanel externalPane = new JPanel(new GridLayout(0, 4)); externalPane.add(topToggleButton); externalPane.add(leftToggleButton); @@ -87,20 +69,15 @@ public class BorderPane extends AbstractBasicStylePane { JPanel insidePane = new JPanel(new GridLayout(0, 2)); insidePane.add(horizontalToggleButton); insidePane.add(verticalToggleButton); - - Component[][] components2 = new Component[][]{ new Component[]{outerToggleButton = new UIToggleButton(BaseUtils.readIcon("com/fr/design/images/m_format/out.png")), innerToggleButton = new UIToggleButton(BaseUtils.readIcon("com/fr/design/images/m_format/in.png"))}, new Component[]{externalPane, insidePane,} }; JPanel centerPane = TableLayoutHelper.createTableLayoutPane(components2, rowSize2, columnSize2); - this.setLayout(new BorderLayout(0, 6)); this.add(northPane, BorderLayout.NORTH); this.add(centerPane, BorderLayout.CENTER); - outerToggleButton.addChangeListener(new ChangeListener() { - @Override public void stateChanged(ChangeEvent e) { boolean value = outerToggleButton.isSelected(); @@ -110,9 +87,7 @@ public class BorderPane extends AbstractBasicStylePane { rightToggleButton.setSelected(value); } }); - innerToggleButton.addChangeListener(new ChangeListener() { - @Override public void stateChanged(ChangeEvent e) { boolean value = innerToggleButton.isSelected(); @@ -120,12 +95,22 @@ public class BorderPane extends AbstractBasicStylePane { verticalToggleButton.setSelected(value); } }); + } + private void initButtonsWithIcon(){ + topToggleButton = new UIToggleButton(BaseUtils.readIcon("/com/fr/base/images/dialog/border/top.png")); + leftToggleButton = new UIToggleButton(BaseUtils.readIcon("/com/fr/base/images/dialog/border/left.png")); + bottomToggleButton = new UIToggleButton(BaseUtils.readIcon("/com/fr/base/images/dialog/border/bottom.png")); + rightToggleButton = new UIToggleButton(BaseUtils.readIcon("/com/fr/base/images/dialog/border/right.png")); + horizontalToggleButton = new UIToggleButton(BaseUtils.readIcon("/com/fr/base/images/dialog/border/horizontal.png")); + verticalToggleButton = new UIToggleButton(BaseUtils.readIcon("/com/fr/base/images/dialog/border/vertical.png")); + this.currentLineCombo = new LineComboBox(CoreConstants.UNDERLINE_STYLE_ARRAY); + this.currentLineColorPane = new NewColorSelectBox(100); } @Override public String title4PopupWindow() { - return Inter.getLocText("Border"); + return Inter.getLocText("FR-Designer_Border"); } public void populate(Style style) { diff --git a/designer_base/src/com/fr/design/locale/designer.properties b/designer_base/src/com/fr/design/locale/designer.properties index 044278dbae..cc75cee8ac 100644 --- a/designer_base/src/com/fr/design/locale/designer.properties +++ b/designer_base/src/com/fr/design/locale/designer.properties @@ -596,3 +596,7 @@ FR-Designer_AxisReversed=AxisValue FR-Designer_Logarithmic=Logarithmic FR-Designer_Chart_Log_Base=Log Base FR-Designer_Chart_F_Radar_Axis=Chart_F_Radar_Axis +FR-Designer_Style=Style +FR-Designer_Color=Color +FR-Designer_Border=Border +FR-Designer_Background-Pattern=Pattern diff --git a/designer_base/src/com/fr/design/locale/designer_en_US.properties b/designer_base/src/com/fr/design/locale/designer_en_US.properties index 53c3ba7732..1c646aebeb 100644 --- a/designer_base/src/com/fr/design/locale/designer_en_US.properties +++ b/designer_base/src/com/fr/design/locale/designer_en_US.properties @@ -596,4 +596,8 @@ FR-Designer_AxisReversed=Axis in reverse order FR-Designer_Logarithmic=Log scale FR-Designer_Chart_Log_Base=Log Base FR-Designer_Chart_F_Radar_Axis=Value Axis +FR-Designer_Style=Style +FR-Designer_Color=Color +FR-Designer_Border=Border +FR-Designer_Background-Pattern=Pattern diff --git a/designer_base/src/com/fr/design/locale/designer_ja_JP.properties b/designer_base/src/com/fr/design/locale/designer_ja_JP.properties index 10c59bd36d..2f4affb916 100644 --- a/designer_base/src/com/fr/design/locale/designer_ja_JP.properties +++ b/designer_base/src/com/fr/design/locale/designer_ja_JP.properties @@ -560,4 +560,8 @@ FR-Designer_Plugin_Should_Update_Please_Contact_Developer= FR-Designer_AxisReversed=\u8EF8\u9006\u9806 FR-Designer_Logarithmic=\u5BFE\u6570\u76EE\u76DB\u308A FR-Designer_Chart_Log_Base=\u5E95\u6570 -FR-Designer_Chart_F_Radar_Axis=\u5782\u76F4\u8EF8 \ No newline at end of file +FR-Designer_Chart_F_Radar_Axis=\u5782\u76F4\u8EF8 +FR-Designer_Style=\u30B9\u30BF\u30A4\u30EB +FR-Designer_Color=\u8272 +FR-Designer_Border=\u67A0 +FR-Designer_Background-Pattern=\u30D1\u30BF\u30FC\u30F3 \ No newline at end of file diff --git a/designer_base/src/com/fr/design/locale/designer_ko_KR.properties b/designer_base/src/com/fr/design/locale/designer_ko_KR.properties index 87fc8705af..075b017ab1 100644 --- a/designer_base/src/com/fr/design/locale/designer_ko_KR.properties +++ b/designer_base/src/com/fr/design/locale/designer_ko_KR.properties @@ -555,4 +555,8 @@ FR-Designer_Plugin_Should_Update_Please_Contact_Developer= FR-Designer_AxisReversed=\uCD95\uC5ED\uC21C FR-Designer_Logarithmic=\uB85C\uADF8\uB208\uAE08 FR-Designer_Chart_Log_Base=\uAE30\uC218 -FR-Designer_Chart_F_Radar_Axis=\uAC12\uCD95 \ No newline at end of file +FR-Designer_Chart_F_Radar_Axis=\uAC12\uCD95 +FR-Designer_Style=\uC591\uC2DD +FR-Designer_Color=\uC0C9 +FR-Designer_Border=\uD14C\uB450\uB9AC +FR-Designer_Background-Pattern=\uC774\uBBF8\uC9C0 \ No newline at end of file diff --git a/designer_base/src/com/fr/design/locale/designer_zh_CN.properties b/designer_base/src/com/fr/design/locale/designer_zh_CN.properties index a70e0c445e..d0a2b05203 100644 --- a/designer_base/src/com/fr/design/locale/designer_zh_CN.properties +++ b/designer_base/src/com/fr/design/locale/designer_zh_CN.properties @@ -595,4 +595,8 @@ FR-Designer_Too_Small_To_Paste=\u6B64\u5904\u65E0\u6CD5\u7C98\u8D34\uFF0C\u5C0F\ FR-Designer_AxisReversed=\u8F74\u9006\u5E8F FR-Designer_Logarithmic=\u5BF9\u6570\u523B\u5EA6 FR-Designer_Chart_Log_Base=\u5E95\u6570 -FR-Designer_Chart_F_Radar_Axis=\u503C\u8F74 \ No newline at end of file +FR-Designer_Chart_F_Radar_Axis=\u503C\u8F74 +FR-Designer_Style=\u6837\u5F0F +FR-Designer_Color=\u989C\u8272 +FR-Designer_Border=\u8FB9\u6846 +FR-Designer_Background-Pattern=\u56FE\u6848 \ No newline at end of file diff --git a/designer_base/src/com/fr/design/locale/designer_zh_TW.properties b/designer_base/src/com/fr/design/locale/designer_zh_TW.properties index d32829c187..bbaf3db36d 100644 --- a/designer_base/src/com/fr/design/locale/designer_zh_TW.properties +++ b/designer_base/src/com/fr/design/locale/designer_zh_TW.properties @@ -581,4 +581,8 @@ 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 -FR-Designer_Chart_F_Radar_Axis=\u503C\u8EF8 \ No newline at end of file +FR-Designer_Chart_F_Radar_Axis=\u503C\u8EF8 +FR-Designer_Style=\u6A23\u5F0F +FR-Designer_Color=\u984F\u8272 +FR-Designer_Border=\u6846\u7DDA +FR-Designer_Background-Pattern=\u5716\u6848 \ No newline at end of file diff --git a/designer_base/src/com/fr/design/mainframe/backgroundpane/PatternBackgroundQuickPane.java b/designer_base/src/com/fr/design/mainframe/backgroundpane/PatternBackgroundQuickPane.java index 1dc21db899..16b294955c 100644 --- a/designer_base/src/com/fr/design/mainframe/backgroundpane/PatternBackgroundQuickPane.java +++ b/designer_base/src/com/fr/design/mainframe/backgroundpane/PatternBackgroundQuickPane.java @@ -26,17 +26,16 @@ import java.awt.geom.Rectangle2D; public class PatternBackgroundQuickPane extends BackgroundQuickPane { private int patternIndex = 0; // pattern setIndex. + private final static int DEFAULT_DIM_HEIGHT = 190; private ColorSelectBox foregroundColorPane; private ColorSelectBox backgroundColorPane; private PatternButton[] patternButtonArray; public PatternBackgroundQuickPane() { this.setLayout(new BorderLayout(0, 4)); - JPanel contentPane = FRGUIPaneFactory.createY_AXISBoxInnerContainer_S_Pane(); this.add(contentPane, BorderLayout.NORTH); contentPane.setBorder(new UIRoundedBorder(UIConstants.LINE_COLOR, 1, 5)); - JPanel typePane2 = new JPanel(); contentPane.add(typePane2); typePane2.setLayout(new GridLayout(0, 8, 1, 1)); @@ -48,13 +47,11 @@ public class PatternBackgroundQuickPane extends BackgroundQuickPane { patternButtonGroup.add(patternButtonArray[i]); typePane2.add(patternButtonArray[i]); } - JPanel colorPane = new JPanel(new GridLayout(0, 2)); foregroundColorPane = new ColorSelectBox(70); backgroundColorPane = new ColorSelectBox(70); - - colorPane.add(this.createLabelColorPane(Inter.getLocText("Foreground") + ":", foregroundColorPane)); - colorPane.add(this.createLabelColorPane(Inter.getLocText("Background") + ":", backgroundColorPane)); + colorPane.add(this.createLabelColorPane(Inter.getLocText("FR-Designer_Foreground") + ":", foregroundColorPane)); + colorPane.add(this.createLabelColorPane(Inter.getLocText("FR-Designer_Background") + ":", backgroundColorPane)); this.add(colorPane, BorderLayout.CENTER); foregroundColorPane.addSelectChangeListener(colorChangeListener); backgroundColorPane.addSelectChangeListener(colorChangeListener); @@ -63,7 +60,7 @@ public class PatternBackgroundQuickPane extends BackgroundQuickPane { @Override public Dimension getPreferredSize() { Dimension dim = super.getPreferredSize(); - dim.height = 190; + dim.height = DEFAULT_DIM_HEIGHT; return dim; } @@ -204,6 +201,6 @@ public class PatternBackgroundQuickPane extends BackgroundQuickPane { @Override public String title4PopupWindow() { - return Inter.getLocText("Background-Pattern"); + return Inter.getLocText("FR-Designer_Background-Pattern"); } } \ No newline at end of file From 8cafb6397b8b1f5b513a79bac473f2572b417175 Mon Sep 17 00:00:00 2001 From: plough Date: Thu, 27 Apr 2017 14:23:56 +0800 Subject: [PATCH 44/72] =?UTF-8?q?REPORT-2343=20[=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=E8=B4=A8=E9=87=8F]=20=E6=A8=A1=E6=9D=BF=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=E6=94=B6=E9=9B=86=E7=94=A8xml=E6=96=B9=E5=BC=8F=E4=BF=9D?= =?UTF-8?q?=E5=AD=98=E4=B8=8E=E8=AF=BB=E5=8F=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../templateinfo/TemplateInfoCollector.java | 193 +++++++++++++++++- 1 file changed, 183 insertions(+), 10 deletions(-) diff --git a/designer_base/src/com/fr/design/mainframe/templateinfo/TemplateInfoCollector.java b/designer_base/src/com/fr/design/mainframe/templateinfo/TemplateInfoCollector.java index dccff0e9c3..c8a25cb29a 100644 --- a/designer_base/src/com/fr/design/mainframe/templateinfo/TemplateInfoCollector.java +++ b/designer_base/src/com/fr/design/mainframe/templateinfo/TemplateInfoCollector.java @@ -37,6 +37,35 @@ public class TemplateInfoCollector implements XMLReadable, XML static final long serialVersionUID = 2007L; private static final String XML_DESIGNER_OPEN_DATE = "DesignerOpenDate"; private static final String XML_TEMPLATE_INFO_LIST = "TemplateInfoList"; + private static final String XML_TEMPLATE_INFO = "TemplateInfo"; + private static final String XML_PROCESS_MAP = "ProcessMap"; + private static final String XML_CONSUMING_MAP = "ConsumingMap"; + private static final String ATTR_DAY_COUNT = "dayCount"; + private static final String ATTR_TEMPLATE_ID = "templateID"; + /* + * "process":"","float_count":0,"widget_count":1,"cell_count":0,"block_count":0,"report_type":2 + * */ + private static final String ATTR_PROCESS = "process"; + private static final String ATTR_FLOAT_COUNT = "floatCount"; + private static final String ATTR_WIDGET_COUNT = "widgetCount"; + private static final String ATTR_CELL_COUNT = "cellCount"; + private static final String ATTR_BLOCK_COUNT = "blockCount"; + private static final String ATTR_REPORT_TYPE = "reportType"; + /* + * "activitykey":"2e0ea413-fa9c241e0-9723-4354fce51e81","jar_time":"2017.04.21.10.41.10.806", + * "create_time":"2017-04-26 10:27","templateID":"0aa19027-e298-4d43-868d-45232b879d0e", + * "uuid":"476ca2cc-f789-4c5d-8e89-ef146580775c","time_consume":36,"version":"8.0", + * "username":"ueeHq6 + * */ + private static final String ATTR_ACTIVITYKEY = "activitykey"; + private static final String ATTR_JAR_TIME = "jarTime"; + private static final String ATTR_CREATE_TIME = "createTime"; + private static final String ATTR_UUID = "uuid"; + private static final String ATTR_TIME_CONSUME = "timeConsume"; + private static final String ATTR_VERSION = "version"; + private static final String ATTR_USERNAME = "username"; + + @SuppressWarnings("unchecked") private TemplateInfoCollector() { @@ -418,13 +447,14 @@ public class TemplateInfoCollector implements XMLReadable, XML if (XML_DESIGNER_OPEN_DATE.equals(name)) { this.designerOpenDate = reader.getElementValue(); } else if(XML_TEMPLATE_INFO_LIST.equals(name)){ - JSONObject jsonObject = new JSONObject(reader.getElementValue()); - Map map = jsonToMap(jsonObject); - for (Map.Entry entry : map.entrySet()) { - if (entry.getValue() instanceof HashMap) { - this.templateInfoList.put(entry.getKey(), (HashMap) entry.getValue()); - } - } +// JSONObject jsonObject = new JSONObject(reader.getElementValue()); +// Map map = jsonToMap(jsonObject); +// for (Map.Entry entry : map.entrySet()) { +// if (entry.getValue() instanceof HashMap) { +// this.templateInfoList.put(entry.getKey(), (HashMap) entry.getValue()); +// } +// } + readTemplateInfoList(reader); } } catch (Exception ex) { // 什么也不做,使用默认值 @@ -432,21 +462,164 @@ public class TemplateInfoCollector implements XMLReadable, XML } } + private void readTemplateInfoList(XMLableReader reader) { + reader.readXMLObject(new XMLReadable() { + public void readXML(XMLableReader reader) { + if (XML_TEMPLATE_INFO.equals(reader.getTagName())) { + TemplateInfo templateInfo = new TemplateInfo(); + reader.readXMLObject(templateInfo); + templateInfoList.put(templateInfo.getTemplateID(), templateInfo.getTemplateInfo()); + } + } + }); + } + @Override public void writeXML(XMLPrintWriter writer) { - writer.startTAG("TemplateInfo"); + writer.startTAG("TplInfo"); writer.startTAG(XML_DESIGNER_OPEN_DATE); writer.textNode(designerOpenDate); writer.end(); - writer.startTAG(XML_TEMPLATE_INFO_LIST); - writer.textNode(new JSONObject(templateInfoList).toString()); +// writer.startTAG(XML_TEMPLATE_INFO_LIST); +// writer.textNode(new JSONObject(templateInfoList).toString()); +// writer.end(); + writeTemplateInfoList(writer); + writer.end(); + } + private void writeTemplateInfoList(XMLPrintWriter writer){ + //启停 + writer.startTAG(XML_TEMPLATE_INFO_LIST); + for (String templateID : templateInfoList.keySet()) { + new TemplateInfo(templateInfoList.get(templateID)).writeXML(writer); + } +// for (int i = 0; i < templateInfoList.size(); i++) { +// startStop.get(i).writeXML(writer); +// } writer.end(); } + private class TemplateInfo implements XMLReadable, XMLWriter { + + private int dayCount; + private String templateID; + private HashMap processMap = new HashMap<>(); + private HashMap consumingMap = new HashMap<>(); + + @SuppressWarnings("unchecked") + public TemplateInfo(HashMap templateInfo) { + this.dayCount = (int)templateInfo.get("day_count"); + this.processMap = (HashMap) templateInfo.get("processMap"); + this.consumingMap = (HashMap) templateInfo.get("consumingMap"); + this.templateID = (String) processMap.get("templateID"); + } + + public TemplateInfo() {} + +// public int getDayCount() { +// return dayCount; +// } + public String getTemplateID() { + return templateID; + } + +// public void setStartDate(String startDate) { +// this.startDate = startDate; +// } + + public HashMap getTemplateInfo() { + HashMap templateInfo = new HashMap<>(); + templateInfo.put("processMap", processMap); + templateInfo.put("consumingMap", consumingMap); + templateInfo.put("day_count", dayCount); + return templateInfo; + } + +// public HashMap getProcessMap() { +// return processMap; +// } +// +// public HashMap getConsumingMap() { +// return consumingMap; +// } + +// public void setStopDate(String endDate) { +// this.stopDate = endDate; +// } + + public void writeXML(XMLPrintWriter writer) { + writer.startTAG(XML_TEMPLATE_INFO); + if (StringUtils.isNotEmpty(templateID)) { + writer.attr(ATTR_TEMPLATE_ID, this.templateID); + } + if (dayCount >= 0) { + writer.attr(ATTR_DAY_COUNT, this.dayCount); + } + writeProcessMap(writer); + writeConsumingMap(writer); + + writer.end(); + } + + private void writeProcessMap(XMLPrintWriter writer) { + writer.startTAG(XML_PROCESS_MAP); + writer.attr(ATTR_PROCESS, (String)processMap.get("process")); + writer.attr(ATTR_FLOAT_COUNT, (int)processMap.get("float_count")); + writer.attr(ATTR_WIDGET_COUNT, (int)processMap.get("widget_count")); + writer.attr(ATTR_CELL_COUNT, (int)processMap.get("cell_count")); + writer.attr(ATTR_BLOCK_COUNT, (int)processMap.get("block_count")); + writer.attr(ATTR_REPORT_TYPE, (int)processMap.get("report_type")); + writer.end(); + } + + private void writeConsumingMap(XMLPrintWriter writer) { + writer.startTAG(XML_CONSUMING_MAP); + writer.attr(ATTR_ACTIVITYKEY, (String)consumingMap.get("activitykey")); + writer.attr(ATTR_JAR_TIME, (String)consumingMap.get("jar_time")); + writer.attr(ATTR_CREATE_TIME, (String)consumingMap.get("create_time")); + writer.attr(ATTR_UUID, (String)consumingMap.get("uuid")); + writer.attr(ATTR_TIME_CONSUME, (long)consumingMap.get("time_consume")); + writer.attr(ATTR_VERSION, (String)consumingMap.get("version")); + writer.attr(ATTR_USERNAME, (String)consumingMap.get("username")); + writer.end(); + } + + public void readXML(XMLableReader reader) { + if (!reader.isChildNode()) { + dayCount = reader.getAttrAsInt(ATTR_DAY_COUNT, 0); + templateID = reader.getAttrAsString(ATTR_TEMPLATE_ID, StringUtils.EMPTY); + } else { + try { + String name = reader.getTagName(); + if (XML_PROCESS_MAP.equals(name)) { + processMap.put("process", reader.getAttrAsString(ATTR_PROCESS, StringUtils.EMPTY)); + processMap.put("float_count", reader.getAttrAsInt(ATTR_FLOAT_COUNT, 0)); + processMap.put("widget_count", reader.getAttrAsInt(ATTR_WIDGET_COUNT, 0)); + processMap.put("cell_count", reader.getAttrAsInt(ATTR_CELL_COUNT, 0)); + processMap.put("block_count", reader.getAttrAsInt(ATTR_BLOCK_COUNT, 0)); + processMap.put("report_type", reader.getAttrAsInt(ATTR_REPORT_TYPE, 0)); + processMap.put("templateID", templateID); + } else if(XML_CONSUMING_MAP.equals(name)){ + consumingMap.put("activitykey", reader.getAttrAsString(ATTR_ACTIVITYKEY, StringUtils.EMPTY)); + consumingMap.put("jar_time", reader.getAttrAsString(ATTR_JAR_TIME, StringUtils.EMPTY)); + consumingMap.put("create_time", reader.getAttrAsString(ATTR_CREATE_TIME, StringUtils.EMPTY)); + consumingMap.put("templateID", templateID); + consumingMap.put("uuid", reader.getAttrAsString(ATTR_UUID, StringUtils.EMPTY)); + consumingMap.put("time_consume", reader.getAttrAsLong(ATTR_TIME_CONSUME, 0)); + consumingMap.put("version", reader.getAttrAsString(ATTR_VERSION, "8.0")); + consumingMap.put("username", reader.getAttrAsString(ATTR_USERNAME, StringUtils.EMPTY)); + } + } catch (Exception ex) { + // 什么也不做,使用默认值 + } + } + } + + } + public static void main(String[] args) { TemplateInfoCollector tic = TemplateInfoCollector.getInstance(); From f7b05c896eaae670a010e1a471b755d25ad4ef66 Mon Sep 17 00:00:00 2001 From: zack Date: Thu, 27 Apr 2017 15:01:59 +0800 Subject: [PATCH 45/72] =?UTF-8?q?=E6=97=A0JIRA=E4=BB=BB=E5=8A=A1=20master?= =?UTF-8?q?=E7=9A=84boundsWidget=E5=88=B0release?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../designer/beans/ConnectorCreator.java | 9 ++--- .../adapters/layout/FRFitLayoutAdapter.java | 4 +- .../beans/location/AccessDirection.java | 2 +- .../design/designer/beans/location/Inner.java | 2 +- .../designer/creator/XWAbsoluteLayout.java | 40 ++++++++++++------- .../design/designer/creator/XWFitLayout.java | 18 ++++----- .../designer/creator/XWScaleLayout.java | 9 ++--- .../designer/creator/XWTitleLayout.java | 2 +- .../cardlayout/XWCardMainBorderLayout.java | 11 ++--- .../creator/cardlayout/XWTabFitLayout.java | 2 +- .../fr/design/mainframe/ConnectorHelper.java | 15 +++---- 11 files changed, 58 insertions(+), 56 deletions(-) diff --git a/designer_form/src/com/fr/design/designer/beans/ConnectorCreator.java b/designer_form/src/com/fr/design/designer/beans/ConnectorCreator.java index 350235d453..ed83c12d67 100644 --- a/designer_form/src/com/fr/design/designer/beans/ConnectorCreator.java +++ b/designer_form/src/com/fr/design/designer/beans/ConnectorCreator.java @@ -1,13 +1,12 @@ package com.fr.design.designer.beans; -import java.awt.Point; -import java.awt.Rectangle; +import com.fr.form.ui.container.WAbsoluteLayout.BoundsWidget; +import com.fr.form.ui.container.WLayout; + +import java.awt.*; import java.util.ArrayList; import java.util.PriorityQueue; -import com.fr.form.ui.container.WLayout; -import com.fr.form.ui.widget.BoundsWidget; - public class ConnectorCreator { public static final int UNIT = 10; diff --git a/designer_form/src/com/fr/design/designer/beans/adapters/layout/FRFitLayoutAdapter.java b/designer_form/src/com/fr/design/designer/beans/adapters/layout/FRFitLayoutAdapter.java index 12e53ccdd3..74a69e525c 100644 --- a/designer_form/src/com/fr/design/designer/beans/adapters/layout/FRFitLayoutAdapter.java +++ b/designer_form/src/com/fr/design/designer/beans/adapters/layout/FRFitLayoutAdapter.java @@ -16,13 +16,11 @@ import com.fr.design.designer.creator.cardlayout.XWCardMainBorderLayout; import com.fr.design.designer.creator.cardlayout.XWTabFitLayout; import com.fr.design.designer.properties.FRFitLayoutConstraints; import com.fr.design.designer.properties.FRFitLayoutPropertiesGroupModel; -import com.fr.design.file.HistoryTemplateListPane; -import com.fr.design.mainframe.JForm; import com.fr.design.utils.ComponentUtils; import com.fr.form.ui.LayoutBorderStyle; +import com.fr.form.ui.container.WAbsoluteLayout.BoundsWidget; import com.fr.form.ui.container.WLayout; import com.fr.form.ui.container.cardlayout.WCardMainBorderLayout; -import com.fr.form.ui.widget.BoundsWidget; import com.fr.general.ComparatorUtils; import java.awt.*; diff --git a/designer_form/src/com/fr/design/designer/beans/location/AccessDirection.java b/designer_form/src/com/fr/design/designer/beans/location/AccessDirection.java index 088f29a0a0..c39dfc4dba 100644 --- a/designer_form/src/com/fr/design/designer/beans/location/AccessDirection.java +++ b/designer_form/src/com/fr/design/designer/beans/location/AccessDirection.java @@ -10,7 +10,7 @@ import com.fr.design.mainframe.FormDesigner; import com.fr.design.mainframe.FormSelection; import com.fr.design.utils.ComponentUtils; import com.fr.form.ui.container.WAbsoluteLayout; -import com.fr.form.ui.widget.BoundsWidget; +import com.fr.form.ui.container.WAbsoluteLayout.BoundsWidget; import java.awt.*; diff --git a/designer_form/src/com/fr/design/designer/beans/location/Inner.java b/designer_form/src/com/fr/design/designer/beans/location/Inner.java index 4f475adf09..c909244898 100644 --- a/designer_form/src/com/fr/design/designer/beans/location/Inner.java +++ b/designer_form/src/com/fr/design/designer/beans/location/Inner.java @@ -9,7 +9,7 @@ import com.fr.design.mainframe.FormDesigner; import com.fr.design.mainframe.FormSelection; import com.fr.design.utils.ComponentUtils; import com.fr.form.ui.container.WAbsoluteLayout; -import com.fr.form.ui.widget.BoundsWidget; +import com.fr.form.ui.container.WAbsoluteLayout.BoundsWidget; import com.fr.stable.ArrayUtils; import java.awt.*; diff --git a/designer_form/src/com/fr/design/designer/creator/XWAbsoluteLayout.java b/designer_form/src/com/fr/design/designer/creator/XWAbsoluteLayout.java index 1854b91f46..852cdf1220 100644 --- a/designer_form/src/com/fr/design/designer/creator/XWAbsoluteLayout.java +++ b/designer_form/src/com/fr/design/designer/creator/XWAbsoluteLayout.java @@ -3,31 +3,35 @@ */ package com.fr.design.designer.creator; -import java.awt.*; -import java.awt.event.ContainerEvent; -import java.awt.event.MouseEvent; -import java.awt.image.BufferedImage; -import java.beans.IntrospectionException; -import java.util.HashMap; - import com.fr.design.designer.beans.AdapterBus; import com.fr.design.designer.beans.ComponentAdapter; import com.fr.design.designer.beans.LayoutAdapter; import com.fr.design.designer.beans.adapters.layout.FRAbsoluteLayoutAdapter; import com.fr.design.designer.beans.location.Direction; import com.fr.design.designer.beans.models.SelectionModel; +import com.fr.design.designer.creator.cardlayout.XWTabFitLayout; import com.fr.design.form.layout.FRAbsoluteLayout; import com.fr.design.icon.IconPathConstants; -import com.fr.design.mainframe.*; +import com.fr.design.mainframe.EditingMouseListener; +import com.fr.design.mainframe.FormArea; +import com.fr.design.mainframe.FormDesigner; import com.fr.form.ui.Connector; import com.fr.form.ui.Widget; import com.fr.form.ui.container.WAbsoluteLayout; +import com.fr.form.ui.container.WAbsoluteLayout.BoundsWidget; import com.fr.form.ui.container.WLayout; -import com.fr.form.ui.widget.BoundsWidget; import com.fr.general.FRScreen; import com.fr.general.IOUtils; import com.fr.general.Inter; +import java.awt.*; +import java.awt.event.ContainerEvent; +import java.awt.event.MouseEvent; +import java.awt.image.BufferedImage; +import java.beans.IntrospectionException; +import java.util.ArrayList; +import java.util.HashMap; + /** * @author richer * @since 6.5.3 @@ -159,7 +163,15 @@ public class XWAbsoluteLayout extends XLayoutContainer { if (xCreator.acceptType(XWAbsoluteLayout.class)) { ((XWAbsoluteLayout) xCreator).updateBoundsWidget(); } - BoundsWidget boundsWidget = layout.getBoundsWidget(xCreator.toData()); + // 如果子组件时tab布局,则tab布局内部的组件的wiget也要更新,否则保存后重新打开大小不对 + ArrayList childrenList = xCreator.getTargetChildrenList(); + if (!childrenList.isEmpty()) { + for (int i = 0; i < childrenList.size(); i++) { + XWTabFitLayout tabLayout = (XWTabFitLayout) childrenList.get(i); + tabLayout.updateBoundsWidget(); + } + } + BoundsWidget boundsWidget = (BoundsWidget) layout.getBoundsWidget(xCreator.toData()); Rectangle rectangle = dealWidgetBound(xCreator.getBounds()); } @@ -184,7 +196,7 @@ public class XWAbsoluteLayout extends XLayoutContainer { double percentH = ((double) backupBound.height / (double) currentBound.height); for (int index = 0, n = this.getComponentCount(); index < n; index++) { XCreator creator = (XCreator) this.getComponent(index); - BoundsWidget wgt = layout.getBoundsWidget(creator.toData()); + BoundsWidget wgt = (BoundsWidget) layout.getBoundsWidget(creator.toData()); // 用当前的显示大小计算后调正具体位置 Rectangle wgtBound = creator.getBounds(); Rectangle rec = calculateBound(wgtBound, percentW, percentH); @@ -217,7 +229,7 @@ public class XWAbsoluteLayout extends XLayoutContainer { rec.y = (int) (rec.y / prevContainerPercent * containerPercent); rec.height = (int) (rec.height / prevContainerPercent * containerPercent); rec.width = (int) (rec.width / prevContainerPercent * containerPercent); - BoundsWidget wgt = toData().getBoundsWidget(creator.toData()); + BoundsWidget wgt = (BoundsWidget) toData().getBoundsWidget(creator.toData()); wgt.setBounds(rec); creator.setBounds(rec); creator.updateChildBound(minHeight); @@ -481,7 +493,7 @@ public class XWAbsoluteLayout extends XLayoutContainer { XCreator xCreator = (XCreator) getComponent(i); Rectangle rectangle = xCreator.getBounds(); xCreator.setBounds((int) (rectangle.x * percent), rectangle.y, (int) (rectangle.width * percent), rectangle.height); - BoundsWidget widget = toData().getBoundsWidget(xCreator.toData()); + BoundsWidget widget = (BoundsWidget) toData().getBoundsWidget(xCreator.toData()); widget.setBounds(xCreator.getBounds()); } } @@ -498,7 +510,7 @@ public class XWAbsoluteLayout extends XLayoutContainer { XCreator xCreator = (XCreator) getComponent(i); Rectangle rectangle = xCreator.getBounds(); xCreator.setBounds(rectangle.x, (int) (rectangle.y * percent), rectangle.width, (int) (rectangle.height * percent)); - BoundsWidget widget = toData().getBoundsWidget(xCreator.toData()); + BoundsWidget widget = (BoundsWidget) toData().getBoundsWidget(xCreator.toData()); widget.setBounds(xCreator.getBounds()); } } diff --git a/designer_form/src/com/fr/design/designer/creator/XWFitLayout.java b/designer_form/src/com/fr/design/designer/creator/XWFitLayout.java index 340ec9cd1e..2ab8910223 100644 --- a/designer_form/src/com/fr/design/designer/creator/XWFitLayout.java +++ b/designer_form/src/com/fr/design/designer/creator/XWFitLayout.java @@ -1,14 +1,5 @@ package com.fr.design.designer.creator; -import java.awt.Component; -import java.awt.Dimension; -import java.awt.Rectangle; -import java.awt.Toolkit; -import java.awt.event.ContainerEvent; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; - import com.fr.design.designer.beans.LayoutAdapter; import com.fr.design.designer.beans.adapters.layout.FRFitLayoutAdapter; import com.fr.design.designer.beans.location.Direction; @@ -20,14 +11,19 @@ import com.fr.design.mainframe.FormArea; import com.fr.design.utils.gui.LayoutUtils; import com.fr.form.ui.PaddingMargin; import com.fr.form.ui.Widget; +import com.fr.form.ui.container.WAbsoluteLayout.BoundsWidget; import com.fr.form.ui.container.WBodyLayoutType; import com.fr.form.ui.container.WFitLayout; import com.fr.form.ui.container.WLayout; -import com.fr.form.ui.widget.BoundsWidget; import com.fr.general.FRScreen; -import com.fr.general.Inter; import com.fr.stable.ArrayUtils; +import java.awt.*; +import java.awt.event.ContainerEvent; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + /** * @author jim * @date 2014-6-23 diff --git a/designer_form/src/com/fr/design/designer/creator/XWScaleLayout.java b/designer_form/src/com/fr/design/designer/creator/XWScaleLayout.java index 8dad2c7f07..2c592cc217 100644 --- a/designer_form/src/com/fr/design/designer/creator/XWScaleLayout.java +++ b/designer_form/src/com/fr/design/designer/creator/XWScaleLayout.java @@ -3,16 +3,15 @@ */ package com.fr.design.designer.creator; -import java.awt.Dimension; -import java.awt.Rectangle; -import java.awt.event.ContainerEvent; - import com.fr.design.designer.beans.LayoutAdapter; import com.fr.design.designer.beans.adapters.layout.FRScaleLayoutAdapter; import com.fr.design.form.layout.FRScaleLayout; import com.fr.form.ui.Widget; +import com.fr.form.ui.container.WAbsoluteLayout.BoundsWidget; import com.fr.form.ui.container.WScaleLayout; -import com.fr.form.ui.widget.BoundsWidget; + +import java.awt.*; +import java.awt.event.ContainerEvent; /** * 自适应布局中添加组件时,部分控件如数字文本下拉等需要保持控件默认高度21, 用此容器来实现 diff --git a/designer_form/src/com/fr/design/designer/creator/XWTitleLayout.java b/designer_form/src/com/fr/design/designer/creator/XWTitleLayout.java index 0e1a293bdf..7b9a5380c2 100644 --- a/designer_form/src/com/fr/design/designer/creator/XWTitleLayout.java +++ b/designer_form/src/com/fr/design/designer/creator/XWTitleLayout.java @@ -11,7 +11,7 @@ import com.fr.form.ui.Label; import com.fr.form.ui.Widget; import com.fr.form.ui.WidgetTitle; import com.fr.form.ui.container.WTitleLayout; -import com.fr.form.ui.widget.BoundsWidget; +import com.fr.form.ui.container.WAbsoluteLayout.BoundsWidget; import com.fr.general.ComparatorUtils; import java.awt.*; diff --git a/designer_form/src/com/fr/design/designer/creator/cardlayout/XWCardMainBorderLayout.java b/designer_form/src/com/fr/design/designer/creator/cardlayout/XWCardMainBorderLayout.java index 9b778f850f..94dfaf92e5 100644 --- a/designer_form/src/com/fr/design/designer/creator/cardlayout/XWCardMainBorderLayout.java +++ b/designer_form/src/com/fr/design/designer/creator/cardlayout/XWCardMainBorderLayout.java @@ -3,10 +3,6 @@ */ package com.fr.design.designer.creator.cardlayout; -import java.awt.*; -import java.awt.event.MouseEvent; -import java.awt.image.BufferedImage; -import java.util.ArrayList; import com.fr.design.designer.beans.AdapterBus; import com.fr.design.designer.beans.ComponentAdapter; import com.fr.design.designer.beans.models.SelectionModel; @@ -17,12 +13,17 @@ import com.fr.design.designer.creator.XWBorderLayout; import com.fr.design.icon.IconPathConstants; import com.fr.design.mainframe.EditingMouseListener; import com.fr.design.mainframe.FormDesigner; +import com.fr.form.ui.container.WAbsoluteLayout.BoundsWidget; import com.fr.form.ui.container.WBorderLayout; import com.fr.form.ui.container.cardlayout.WCardMainBorderLayout; -import com.fr.form.ui.widget.BoundsWidget; import com.fr.general.IOUtils; import com.fr.general.Inter; +import java.awt.*; +import java.awt.event.MouseEvent; +import java.awt.image.BufferedImage; +import java.util.ArrayList; + /** * card布局主体框架 * diff --git a/designer_form/src/com/fr/design/designer/creator/cardlayout/XWTabFitLayout.java b/designer_form/src/com/fr/design/designer/creator/cardlayout/XWTabFitLayout.java index c0d1a06ed1..5a2afa00c0 100644 --- a/designer_form/src/com/fr/design/designer/creator/cardlayout/XWTabFitLayout.java +++ b/designer_form/src/com/fr/design/designer/creator/cardlayout/XWTabFitLayout.java @@ -18,7 +18,7 @@ import com.fr.design.utils.gui.LayoutUtils; import com.fr.form.ui.CardSwitchButton; import com.fr.form.ui.container.cardlayout.WCardTagLayout; import com.fr.form.ui.container.cardlayout.WTabFitLayout; -import com.fr.form.ui.widget.BoundsWidget; +import com.fr.form.ui.container.WAbsoluteLayout.BoundsWidget; import com.fr.general.Background; import com.fr.general.FRLogger; import com.fr.general.Inter; diff --git a/designer_form/src/com/fr/design/mainframe/ConnectorHelper.java b/designer_form/src/com/fr/design/mainframe/ConnectorHelper.java index a640058123..93add36341 100644 --- a/designer_form/src/com/fr/design/mainframe/ConnectorHelper.java +++ b/designer_form/src/com/fr/design/mainframe/ConnectorHelper.java @@ -1,18 +1,15 @@ package com.fr.design.mainframe; -import java.awt.Color; -import java.awt.Graphics; -import java.awt.Point; -import java.awt.Rectangle; -import java.awt.event.MouseEvent; -import java.util.ArrayList; - -import com.fr.form.ui.widget.BoundsWidget; -import com.fr.stable.Constants; import com.fr.base.GraphHelper; import com.fr.design.designer.beans.ConnectorCreator; import com.fr.design.designer.creator.XWAbsoluteLayout; import com.fr.form.ui.Connector; +import com.fr.form.ui.container.WAbsoluteLayout.BoundsWidget; +import com.fr.stable.Constants; + +import java.awt.*; +import java.awt.event.MouseEvent; +import java.util.ArrayList; public class ConnectorHelper { //这个类是用来画连接线的,暂时用不到 From 4700b3dc89fb369e73a08d0ccf3b590edd4ffbea Mon Sep 17 00:00:00 2001 From: plough Date: Thu, 27 Apr 2017 15:20:06 +0800 Subject: [PATCH 46/72] =?UTF-8?q?REPORT-2343=20[=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=E8=B4=A8=E9=87=8F]=3D>=E5=85=BC=E5=AE=B9=E4=B9=8B=E5=89=8D?= =?UTF-8?q?=E7=9A=84=E5=AF=B9=E8=B1=A1=E6=B5=81=E8=AF=BB=E5=86=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../templateinfo/TemplateInfoCollector.java | 58 +++++-------------- 1 file changed, 15 insertions(+), 43 deletions(-) diff --git a/designer_base/src/com/fr/design/mainframe/templateinfo/TemplateInfoCollector.java b/designer_base/src/com/fr/design/mainframe/templateinfo/TemplateInfoCollector.java index c8a25cb29a..9206785dd9 100644 --- a/designer_base/src/com/fr/design/mainframe/templateinfo/TemplateInfoCollector.java +++ b/designer_base/src/com/fr/design/mainframe/templateinfo/TemplateInfoCollector.java @@ -25,8 +25,9 @@ import java.util.Iterator; * 做模板的过程和耗时收集,辅助类 * Created by plough on 2017/2/21. */ -public class TemplateInfoCollector implements XMLReadable, XMLWriter { +public class TemplateInfoCollector implements Serializable, XMLReadable, XMLWriter { private static final String FILE_NAME = "tpl.info"; + private static final String OBJECT_FILE_NAME = "tplInfo.ser"; private static TemplateInfoCollector instance; private Map> templateInfoList; private String designerOpenDate; //设计器最近一次打开日期 @@ -42,21 +43,12 @@ public class TemplateInfoCollector implements XMLReadable, XML private static final String XML_CONSUMING_MAP = "ConsumingMap"; private static final String ATTR_DAY_COUNT = "dayCount"; private static final String ATTR_TEMPLATE_ID = "templateID"; - /* - * "process":"","float_count":0,"widget_count":1,"cell_count":0,"block_count":0,"report_type":2 - * */ private static final String ATTR_PROCESS = "process"; private static final String ATTR_FLOAT_COUNT = "floatCount"; private static final String ATTR_WIDGET_COUNT = "widgetCount"; private static final String ATTR_CELL_COUNT = "cellCount"; private static final String ATTR_BLOCK_COUNT = "blockCount"; private static final String ATTR_REPORT_TYPE = "reportType"; - /* - * "activitykey":"2e0ea413-fa9c241e0-9723-4354fce51e81","jar_time":"2017.04.21.10.41.10.806", - * "create_time":"2017-04-26 10:27","templateID":"0aa19027-e298-4d43-868d-45232b879d0e", - * "uuid":"476ca2cc-f789-4c5d-8e89-ef146580775c","time_consume":36,"version":"8.0", - * "username":"ueeHq6 - * */ private static final String ATTR_ACTIVITYKEY = "activitykey"; private static final String ATTR_JAR_TIME = "jarTime"; private static final String ATTR_CREATE_TIME = "createTime"; @@ -66,7 +58,6 @@ public class TemplateInfoCollector implements XMLReadable, XML private static final String ATTR_USERNAME = "username"; - @SuppressWarnings("unchecked") private TemplateInfoCollector() { templateInfoList = new HashMap<>(); @@ -95,10 +86,23 @@ public class TemplateInfoCollector implements XMLReadable, XML return new File(StableUtils.pathJoin(ProductConstants.getEnvHome(), FILE_NAME)); } + private static File getObjectInfoFile() { + return new File(StableUtils.pathJoin(ProductConstants.getEnvHome(), OBJECT_FILE_NAME)); + } + public static TemplateInfoCollector getInstance() { if (instance == null) { instance = new TemplateInfoCollector(); readXMLFile(instance, getInfoFile()); + // 兼容过渡。如果没有新文件,则从老文件读取数据。以后都是读写新的 xml 文件 + if (!getInfoFile().exists() && getObjectInfoFile().exists()) { + try { + ObjectInputStream is = new ObjectInputStream(new FileInputStream(getObjectInfoFile())); + instance = (TemplateInfoCollector) is.readObject(); + } catch (Exception ex) { + // 什么也不做,instance 使用新值 + } + } } return instance; } @@ -447,13 +451,6 @@ public class TemplateInfoCollector implements XMLReadable, XML if (XML_DESIGNER_OPEN_DATE.equals(name)) { this.designerOpenDate = reader.getElementValue(); } else if(XML_TEMPLATE_INFO_LIST.equals(name)){ -// JSONObject jsonObject = new JSONObject(reader.getElementValue()); -// Map map = jsonToMap(jsonObject); -// for (Map.Entry entry : map.entrySet()) { -// if (entry.getValue() instanceof HashMap) { -// this.templateInfoList.put(entry.getKey(), (HashMap) entry.getValue()); -// } -// } readTemplateInfoList(reader); } } catch (Exception ex) { @@ -482,9 +479,6 @@ public class TemplateInfoCollector implements XMLReadable, XML writer.textNode(designerOpenDate); writer.end(); -// writer.startTAG(XML_TEMPLATE_INFO_LIST); -// writer.textNode(new JSONObject(templateInfoList).toString()); -// writer.end(); writeTemplateInfoList(writer); writer.end(); @@ -496,9 +490,6 @@ public class TemplateInfoCollector implements XMLReadable, XML for (String templateID : templateInfoList.keySet()) { new TemplateInfo(templateInfoList.get(templateID)).writeXML(writer); } -// for (int i = 0; i < templateInfoList.size(); i++) { -// startStop.get(i).writeXML(writer); -// } writer.end(); } @@ -519,17 +510,10 @@ public class TemplateInfoCollector implements XMLReadable, XML public TemplateInfo() {} -// public int getDayCount() { -// return dayCount; -// } public String getTemplateID() { return templateID; } -// public void setStartDate(String startDate) { -// this.startDate = startDate; -// } - public HashMap getTemplateInfo() { HashMap templateInfo = new HashMap<>(); templateInfo.put("processMap", processMap); @@ -538,18 +522,6 @@ public class TemplateInfoCollector implements XMLReadable, XML return templateInfo; } -// public HashMap getProcessMap() { -// return processMap; -// } -// -// public HashMap getConsumingMap() { -// return consumingMap; -// } - -// public void setStopDate(String endDate) { -// this.stopDate = endDate; -// } - public void writeXML(XMLPrintWriter writer) { writer.startTAG(XML_TEMPLATE_INFO); if (StringUtils.isNotEmpty(templateID)) { From aa379c899448a73727f2e0cd99a6b6b0eb94fc5c Mon Sep 17 00:00:00 2001 From: plough Date: Thu, 27 Apr 2017 15:23:15 +0800 Subject: [PATCH 47/72] =?UTF-8?q?REPORT-2343=20[=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=E8=B4=A8=E9=87=8F]=3D>=E5=8E=BB=E6=8E=89=E6=97=A0=E7=94=A8?= =?UTF-8?q?=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../templateinfo/TemplateInfoCollector.java | 45 ------------------- 1 file changed, 45 deletions(-) diff --git a/designer_base/src/com/fr/design/mainframe/templateinfo/TemplateInfoCollector.java b/designer_base/src/com/fr/design/mainframe/templateinfo/TemplateInfoCollector.java index 9206785dd9..b5bac38d90 100644 --- a/designer_base/src/com/fr/design/mainframe/templateinfo/TemplateInfoCollector.java +++ b/designer_base/src/com/fr/design/mainframe/templateinfo/TemplateInfoCollector.java @@ -397,51 +397,6 @@ public class TemplateInfoCollector implements Serializable, XM return isTestTemplate; } - public static Map jsonToMap(JSONObject json) throws JSONException { - Map retMap = new HashMap<>(); - - if(json != JSONObject.NULL) { - retMap = toMap(json); - } - return retMap; - } - - private static Map toMap(JSONObject object) throws JSONException { - Map map = new HashMap<>(); - - Iterator keysItr = object.keys(); - while(keysItr.hasNext()) { - String key = keysItr.next(); - Object value = object.get(key); - - if(value instanceof JSONArray) { - value = toList((JSONArray) value); - } - - else if(value instanceof JSONObject) { - value = toMap((JSONObject) value); - } - map.put(key, value); - } - return map; - } - - private static List toList(JSONArray array) throws JSONException { - List list = new ArrayList<>(); - for(int i = 0; i < array.length(); i++) { - Object value = array.get(i); - if(value instanceof JSONArray) { - value = toList((JSONArray) value); - } - - else if(value instanceof JSONObject) { - value = toMap((JSONObject) value); - } - list.add(value); - } - return list; - } - @SuppressWarnings("unchecked") @Override public void readXML(XMLableReader reader) { From ba60f5ad9a0efa80d8e2d5201ddedd8f634620fd Mon Sep 17 00:00:00 2001 From: XiaXiang Date: Thu, 27 Apr 2017 17:08:36 +0800 Subject: [PATCH 48/72] =?UTF-8?q?=E6=A1=86=E9=80=89=E6=94=B9=E9=94=99?= =?UTF-8?q?=E5=95=A6=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fr/design/mainframe/ComponentTree.java | 31 ++++++------------- .../com/fr/design/mainframe/FormDesigner.java | 2 +- .../mainframe/widget/UITreeComboBox.java | 23 ++++++-------- 3 files changed, 21 insertions(+), 35 deletions(-) diff --git a/designer_form/src/com/fr/design/mainframe/ComponentTree.java b/designer_form/src/com/fr/design/mainframe/ComponentTree.java index 67894b991e..1ceab13c0a 100644 --- a/designer_form/src/com/fr/design/mainframe/ComponentTree.java +++ b/designer_form/src/com/fr/design/mainframe/ComponentTree.java @@ -1,26 +1,23 @@ package com.fr.design.mainframe; +import java.awt.Component; +import java.util.ArrayList; + +import javax.swing.DropMode; +import javax.swing.JTree; +import javax.swing.tree.TreePath; +import javax.swing.tree.TreeSelectionModel; + import com.fr.design.constants.UIConstants; -import com.fr.design.designer.creator.XCreator; -import com.fr.design.designer.creator.XLayoutContainer; -import com.fr.design.designer.creator.XWAbsoluteBodyLayout; -import com.fr.design.designer.creator.XWFitLayout; +import com.fr.design.designer.creator.*; import com.fr.design.designer.treeview.ComponentTreeCellRenderer; import com.fr.design.designer.treeview.ComponentTreeModel; import com.fr.stable.StringUtils; -import javax.swing.*; -import javax.swing.tree.TreePath; -import javax.swing.tree.TreeSelectionModel; -import java.awt.*; -import java.util.ArrayList; - public class ComponentTree extends JTree { private FormDesigner designer; private ComponentTreeModel model; - //xiaoxia 保存框选的全部组件,只显示第一个 - private TreePath[] allSelectedTreePaths; public ComponentTree(FormDesigner designer) { this.designer = designer; @@ -89,8 +86,7 @@ public class ComponentTree extends JTree { } public void setAndScrollSelectionPath(TreePath[] treepath) { - this.setAllSelectedTreePaths(treepath); - setSelectionPath(treepath[0]); + setSelectionPaths(treepath); scrollPathToVisible(treepath[0]); } @@ -214,11 +210,4 @@ public class ComponentTree extends JTree { return new TreePath(components); } - public TreePath[] getAllSelectedTreePaths() { - return allSelectedTreePaths; - } - - public void setAllSelectedTreePaths(TreePath[] allSelectedTreePaths) { - this.allSelectedTreePaths = allSelectedTreePaths; - } } \ No newline at end of file diff --git a/designer_form/src/com/fr/design/mainframe/FormDesigner.java b/designer_form/src/com/fr/design/mainframe/FormDesigner.java index 3e29f41281..3aa9e24ee1 100644 --- a/designer_form/src/com/fr/design/mainframe/FormDesigner.java +++ b/designer_form/src/com/fr/design/mainframe/FormDesigner.java @@ -1008,7 +1008,7 @@ public class FormDesigner extends TargetComponent implements TreeSelection @Override public void valueChanged(TreeSelectionEvent e) { ComponentTree tree = (ComponentTree) e.getSource(); - TreePath[] paths = tree.getAllSelectedTreePaths(); + TreePath[] paths = tree.getSelectionPaths(); if (paths != null) { ArrayList selected = new ArrayList(); diff --git a/designer_form/src/com/fr/design/mainframe/widget/UITreeComboBox.java b/designer_form/src/com/fr/design/mainframe/widget/UITreeComboBox.java index 258fd15d31..62c9aa0678 100644 --- a/designer_form/src/com/fr/design/mainframe/widget/UITreeComboBox.java +++ b/designer_form/src/com/fr/design/mainframe/widget/UITreeComboBox.java @@ -3,24 +3,22 @@ package com.fr.design.mainframe.widget; /** * Created by xiaxiang on 2016/9/30. */ +import java.awt.*; +import java.awt.event.*; +import javax.swing.*; +import javax.swing.plaf.*; +import javax.swing.plaf.basic.*; +import javax.swing.plaf.metal.*; +import javax.swing.tree.*; -import com.fr.design.designer.beans.AdapterBus; +import com.fr.design.designer.beans.*; import com.fr.design.designer.beans.events.DesignerEditListener; import com.fr.design.designer.beans.events.DesignerEvent; import com.fr.design.designer.creator.XCreator; import com.fr.design.gui.icontainer.UIScrollPane; import com.fr.design.mainframe.ComponentTree; -import com.sun.java.swing.plaf.motif.MotifComboBoxUI; -import com.sun.java.swing.plaf.windows.WindowsComboBoxUI; - -import javax.swing.*; -import javax.swing.plaf.ComboBoxUI; -import javax.swing.plaf.basic.ComboPopup; -import javax.swing.plaf.metal.MetalComboBoxUI; -import javax.swing.tree.TreeCellRenderer; -import javax.swing.tree.TreePath; -import java.awt.*; -import java.awt.event.*; +import com.sun.java.swing.plaf.motif.*; +import com.sun.java.swing.plaf.windows.*; /** * 控件树下拉列表框 @@ -67,7 +65,6 @@ public class UITreeComboBox extends JComboBox{ * @param o Object */ public void setSelectedItem(Object o){ - tree.setSelectionPath((TreePath)o); getModel().setSelectedItem(o); } From ef7543f1f80883d090eb49c2d95fe8d4e698116e Mon Sep 17 00:00:00 2001 From: plough Date: Thu, 27 Apr 2017 17:48:19 +0800 Subject: [PATCH 49/72] =?UTF-8?q?REPORT-2343=20[=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=E8=B4=A8=E9=87=8F]=3D>=E5=A4=9A=E6=AC=A1=E5=87=BA=E7=8E=B0?= =?UTF-8?q?=E7=9A=84=E5=AD=97=E7=AC=A6=E4=B8=B2=E6=94=B9=E4=B8=BA=E5=B8=B8?= =?UTF-8?q?=E9=87=8F=EF=BC=9B=E7=BB=9F=E4=B8=80=E5=91=BD=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../templateinfo/TemplateInfoCollector.java | 174 +++++++++--------- 1 file changed, 88 insertions(+), 86 deletions(-) diff --git a/designer_base/src/com/fr/design/mainframe/templateinfo/TemplateInfoCollector.java b/designer_base/src/com/fr/design/mainframe/templateinfo/TemplateInfoCollector.java index b5bac38d90..1a06d82c35 100644 --- a/designer_base/src/com/fr/design/mainframe/templateinfo/TemplateInfoCollector.java +++ b/designer_base/src/com/fr/design/mainframe/templateinfo/TemplateInfoCollector.java @@ -39,23 +39,25 @@ public class TemplateInfoCollector implements Serializable, XM private static final String XML_DESIGNER_OPEN_DATE = "DesignerOpenDate"; private static final String XML_TEMPLATE_INFO_LIST = "TemplateInfoList"; private static final String XML_TEMPLATE_INFO = "TemplateInfo"; - private static final String XML_PROCESS_MAP = "ProcessMap"; - private static final String XML_CONSUMING_MAP = "ConsumingMap"; - private static final String ATTR_DAY_COUNT = "dayCount"; + private static final String XML_PROCESS_MAP = "processMap"; + private static final String XML_CONSUMING_MAP = "consumingMap"; + private static final String ATTR_DAY_COUNT = "day_count"; private static final String ATTR_TEMPLATE_ID = "templateID"; private static final String ATTR_PROCESS = "process"; - private static final String ATTR_FLOAT_COUNT = "floatCount"; - private static final String ATTR_WIDGET_COUNT = "widgetCount"; - private static final String ATTR_CELL_COUNT = "cellCount"; - private static final String ATTR_BLOCK_COUNT = "blockCount"; - private static final String ATTR_REPORT_TYPE = "reportType"; + private static final String ATTR_FLOAT_COUNT = "float_count"; + private static final String ATTR_WIDGET_COUNT = "widget_count"; + private static final String ATTR_CELL_COUNT = "cell_count"; + private static final String ATTR_BLOCK_COUNT = "block_count"; + private static final String ATTR_REPORT_TYPE = "report_type"; private static final String ATTR_ACTIVITYKEY = "activitykey"; - private static final String ATTR_JAR_TIME = "jarTime"; - private static final String ATTR_CREATE_TIME = "createTime"; + private static final String ATTR_JAR_TIME = "jar_time"; + private static final String ATTR_CREATE_TIME = "create_time"; private static final String ATTR_UUID = "uuid"; - private static final String ATTR_TIME_CONSUME = "timeConsume"; + private static final String ATTR_TIME_CONSUME = "time_consume"; private static final String ATTR_VERSION = "version"; private static final String ATTR_USERNAME = "username"; + private static final String JSON_CONSUMING_MAP = "jsonConsumingMap"; + private static final String JSON_PROCESS_MAP = "jsonProcessMap"; @SuppressWarnings("unchecked") @@ -159,8 +161,8 @@ public class TemplateInfoCollector implements Serializable, XM */ @SuppressWarnings("unchecked") public String loadProcess(T t) { - HashMap processMap = (HashMap) templateInfoList.get(t.getTemplateID()).get("processMap"); - return (String)processMap.get("process"); + HashMap processMap = (HashMap) templateInfoList.get(t.getTemplateID()).get(XML_PROCESS_MAP); + return (String)processMap.get(ATTR_PROCESS); } /** @@ -216,8 +218,8 @@ public class TemplateInfoCollector implements Serializable, XM if (designerOpenFirstTime()) { for (String key : templateInfoList.keySet()) { HashMap templateInfo = templateInfoList.get(key); - int dayCount = (int)templateInfo.get("day_count") + 1; - templateInfo.put("day_count", dayCount); + int dayCount = (int)templateInfo.get(ATTR_DAY_COUNT) + 1; + templateInfo.put(ATTR_DAY_COUNT, dayCount); } setDesignerOpenDate(); } @@ -241,20 +243,20 @@ public class TemplateInfoCollector implements Serializable, XM if (inList(t)) { // 已有记录 templateInfo = templateInfoList.get(t.getTemplateID()); // 更新 conusmingMap - HashMap consumingMap = (HashMap) templateInfo.get("consumingMap"); - timeConsume += (long)consumingMap.get("time_consume"); // 加上之前的累计编辑时间 - consumingMap.put("time_consume", timeConsume); + HashMap consumingMap = (HashMap) templateInfo.get(XML_CONSUMING_MAP); + timeConsume += (long)consumingMap.get(ATTR_TIME_CONSUME); // 加上之前的累计编辑时间 + consumingMap.put(ATTR_TIME_CONSUME, timeConsume); } else { // 新增 templateInfo = new HashMap<>(); - templateInfo.put("consumingMap", getNewConsumingMap(templateID, openTime, timeConsume)); + templateInfo.put(XML_CONSUMING_MAP, getNewConsumingMap(templateID, openTime, timeConsume)); } // 直接覆盖 processMap - templateInfo.put("processMap", getProcessMap(templateID, jt)); + templateInfo.put(XML_PROCESS_MAP, getProcessMap(templateID, jt)); // 保存模板时,让 day_count 归零 - templateInfo.put("day_count", 0); + templateInfo.put(ATTR_DAY_COUNT, 0); templateInfoList.put(templateID, templateInfo); @@ -271,14 +273,14 @@ public class TemplateInfoCollector implements Serializable, XM String createTime = new SimpleDateFormat("yyyy-MM-dd HH:mm").format(Calendar.getInstance().getTime()); String jarTime = GeneralUtils.readBuildNO(); String version = ProductConstants.VERSION; - consumingMap.put("username", username); - consumingMap.put("uuid", uuid); - consumingMap.put("activitykey", activitykey); - consumingMap.put("templateID", templateID); - consumingMap.put("create_time", createTime); - consumingMap.put("time_consume", timeConsume); - consumingMap.put("jar_time", jarTime); - consumingMap.put("version", version); + consumingMap.put(ATTR_USERNAME, username); + consumingMap.put(ATTR_UUID, uuid); + consumingMap.put(ATTR_ACTIVITYKEY, activitykey); + consumingMap.put(ATTR_TEMPLATE_ID, templateID); + consumingMap.put(ATTR_CREATE_TIME, createTime); + consumingMap.put(ATTR_TIME_CONSUME, timeConsume); + consumingMap.put(ATTR_JAR_TIME, jarTime); + consumingMap.put(ATTR_VERSION, version); return consumingMap; } @@ -286,15 +288,15 @@ public class TemplateInfoCollector implements Serializable, XM private HashMap getProcessMap(String templateID, JTemplate jt) { HashMap processMap = new HashMap<>(); - processMap.put("templateID", templateID); - processMap.put("process", jt.getProcess()); + processMap.put(ATTR_TEMPLATE_ID, templateID); + processMap.put(ATTR_PROCESS, jt.getProcess()); TemplateProcessInfo info = jt.getProcessInfo(); - processMap.put("report_type", info.getReportType()); - processMap.put("cell_count", info.getCellCount()); - processMap.put("float_count", info.getFloatCount()); - processMap.put("block_count", info.getBlockCount()); - processMap.put("widget_count", info.getWidgetCount()); + processMap.put(ATTR_REPORT_TYPE, info.getReportType()); + processMap.put(ATTR_CELL_COUNT, info.getCellCount()); + processMap.put(ATTR_FLOAT_COUNT, info.getFloatCount()); + processMap.put(ATTR_BLOCK_COUNT, info.getBlockCount()); + processMap.put(ATTR_WIDGET_COUNT, info.getWidgetCount()); return processMap; } @@ -308,11 +310,11 @@ public class TemplateInfoCollector implements Serializable, XM String processUrl = SiteCenter.getInstance().acquireUrlByKind("tempinfo.process") + "/single"; ArrayList> completeTemplatesInfo = getCompleteTemplatesInfo(); for (HashMap templateInfo : completeTemplatesInfo) { - String jsonConsumingMap = templateInfo.get("jsonConsumingMap"); - String jsonProcessMap = templateInfo.get("jsonProcessMap"); + String jsonConsumingMap = templateInfo.get(JSON_CONSUMING_MAP); + String jsonProcessMap = templateInfo.get(JSON_PROCESS_MAP); if (sendSingleTemplateInfo(consumingUrl, jsonConsumingMap) && sendSingleTemplateInfo(processUrl, jsonProcessMap)) { // 清空记录 - removeFromTemplateInfoList(templateInfo.get("templateID")); + removeFromTemplateInfoList(templateInfo.get(ATTR_TEMPLATE_ID)); } } saveInfo(); @@ -350,21 +352,21 @@ public class TemplateInfoCollector implements Serializable, XM ArrayList testTemplateKeys = new ArrayList<>(); // 保存测试模板的key for (String key : templateInfoList.keySet()) { HashMap templateInfo = templateInfoList.get(key); - if ((int)templateInfo.get("day_count") <= COMPLETE_DAY_COUNT) { // 未完成模板 + if ((int)templateInfo.get(ATTR_DAY_COUNT) <= COMPLETE_DAY_COUNT) { // 未完成模板 continue; } if (isTestTemplate(templateInfo)) { testTemplateKeys.add(key); continue; } - HashMap consumingMap = (HashMap) templateInfo.get("consumingMap"); - HashMap processMap = (HashMap) templateInfo.get("processMap"); + HashMap consumingMap = (HashMap) templateInfo.get(XML_CONSUMING_MAP); + HashMap processMap = (HashMap) templateInfo.get(XML_PROCESS_MAP); String jsonConsumingMap = new JSONObject(consumingMap).toString(); String jsonProcessMap = new JSONObject(processMap).toString(); HashMap jsonTemplateInfo = new HashMap<>(); - jsonTemplateInfo.put("jsonConsumingMap", jsonConsumingMap); - jsonTemplateInfo.put("jsonProcessMap", jsonProcessMap); - jsonTemplateInfo.put("templateID", key); + jsonTemplateInfo.put(JSON_CONSUMING_MAP, jsonConsumingMap); + jsonTemplateInfo.put(JSON_PROCESS_MAP, jsonProcessMap); + jsonTemplateInfo.put(ATTR_TEMPLATE_ID, key); completeTemplatesInfo.add(jsonTemplateInfo); } // 删除测试模板 @@ -380,12 +382,12 @@ public class TemplateInfoCollector implements Serializable, XM @SuppressWarnings("unchecked") private boolean isTestTemplate(HashMap templateInfo) { - HashMap processMap = (HashMap) templateInfo.get("processMap"); - int reportType = (int)processMap.get("report_type"); - int cellCount = (int)processMap.get("cell_count"); - int floatCount = (int)processMap.get("float_count"); - int blockCount = (int)processMap.get("block_count"); - int widgetCount = (int)processMap.get("widget_count"); + HashMap processMap = (HashMap) templateInfo.get(XML_PROCESS_MAP); + int reportType = (int)processMap.get(ATTR_REPORT_TYPE); + int cellCount = (int)processMap.get(ATTR_CELL_COUNT); + int floatCount = (int)processMap.get(ATTR_FLOAT_COUNT); + int blockCount = (int)processMap.get(ATTR_BLOCK_COUNT); + int widgetCount = (int)processMap.get(ATTR_WIDGET_COUNT); boolean isTestTemplate = false; if (reportType == 0) { // 普通报表 isTestTemplate = cellCount <= VALID_CELL_COUNT && floatCount <= 1 && widgetCount <= VALID_WIDGET_COUNT; @@ -457,10 +459,10 @@ public class TemplateInfoCollector implements Serializable, XM @SuppressWarnings("unchecked") public TemplateInfo(HashMap templateInfo) { - this.dayCount = (int)templateInfo.get("day_count"); - this.processMap = (HashMap) templateInfo.get("processMap"); - this.consumingMap = (HashMap) templateInfo.get("consumingMap"); - this.templateID = (String) processMap.get("templateID"); + this.dayCount = (int)templateInfo.get(ATTR_DAY_COUNT); + this.processMap = (HashMap) templateInfo.get(XML_PROCESS_MAP); + this.consumingMap = (HashMap) templateInfo.get(XML_CONSUMING_MAP); + this.templateID = (String) processMap.get(ATTR_TEMPLATE_ID); } public TemplateInfo() {} @@ -471,9 +473,9 @@ public class TemplateInfoCollector implements Serializable, XM public HashMap getTemplateInfo() { HashMap templateInfo = new HashMap<>(); - templateInfo.put("processMap", processMap); - templateInfo.put("consumingMap", consumingMap); - templateInfo.put("day_count", dayCount); + templateInfo.put(XML_PROCESS_MAP, processMap); + templateInfo.put(XML_CONSUMING_MAP, consumingMap); + templateInfo.put(ATTR_DAY_COUNT, dayCount); return templateInfo; } @@ -493,24 +495,24 @@ public class TemplateInfoCollector implements Serializable, XM private void writeProcessMap(XMLPrintWriter writer) { writer.startTAG(XML_PROCESS_MAP); - writer.attr(ATTR_PROCESS, (String)processMap.get("process")); - writer.attr(ATTR_FLOAT_COUNT, (int)processMap.get("float_count")); - writer.attr(ATTR_WIDGET_COUNT, (int)processMap.get("widget_count")); - writer.attr(ATTR_CELL_COUNT, (int)processMap.get("cell_count")); - writer.attr(ATTR_BLOCK_COUNT, (int)processMap.get("block_count")); - writer.attr(ATTR_REPORT_TYPE, (int)processMap.get("report_type")); + writer.attr(ATTR_PROCESS, (String)processMap.get(ATTR_PROCESS)); + writer.attr(ATTR_FLOAT_COUNT, (int)processMap.get(ATTR_FLOAT_COUNT)); + writer.attr(ATTR_WIDGET_COUNT, (int)processMap.get(ATTR_WIDGET_COUNT)); + writer.attr(ATTR_CELL_COUNT, (int)processMap.get(ATTR_CELL_COUNT)); + writer.attr(ATTR_BLOCK_COUNT, (int)processMap.get(ATTR_BLOCK_COUNT)); + writer.attr(ATTR_REPORT_TYPE, (int)processMap.get(ATTR_REPORT_TYPE)); writer.end(); } private void writeConsumingMap(XMLPrintWriter writer) { writer.startTAG(XML_CONSUMING_MAP); - writer.attr(ATTR_ACTIVITYKEY, (String)consumingMap.get("activitykey")); - writer.attr(ATTR_JAR_TIME, (String)consumingMap.get("jar_time")); - writer.attr(ATTR_CREATE_TIME, (String)consumingMap.get("create_time")); - writer.attr(ATTR_UUID, (String)consumingMap.get("uuid")); - writer.attr(ATTR_TIME_CONSUME, (long)consumingMap.get("time_consume")); - writer.attr(ATTR_VERSION, (String)consumingMap.get("version")); - writer.attr(ATTR_USERNAME, (String)consumingMap.get("username")); + writer.attr(ATTR_ACTIVITYKEY, (String)consumingMap.get(ATTR_ACTIVITYKEY)); + writer.attr(ATTR_JAR_TIME, (String)consumingMap.get(ATTR_JAR_TIME)); + writer.attr(ATTR_CREATE_TIME, (String)consumingMap.get(ATTR_CREATE_TIME)); + writer.attr(ATTR_UUID, (String)consumingMap.get(ATTR_UUID)); + writer.attr(ATTR_TIME_CONSUME, (long)consumingMap.get(ATTR_TIME_CONSUME)); + writer.attr(ATTR_VERSION, (String)consumingMap.get(ATTR_VERSION)); + writer.attr(ATTR_USERNAME, (String)consumingMap.get(ATTR_USERNAME)); writer.end(); } @@ -522,22 +524,22 @@ public class TemplateInfoCollector implements Serializable, XM try { String name = reader.getTagName(); if (XML_PROCESS_MAP.equals(name)) { - processMap.put("process", reader.getAttrAsString(ATTR_PROCESS, StringUtils.EMPTY)); - processMap.put("float_count", reader.getAttrAsInt(ATTR_FLOAT_COUNT, 0)); - processMap.put("widget_count", reader.getAttrAsInt(ATTR_WIDGET_COUNT, 0)); - processMap.put("cell_count", reader.getAttrAsInt(ATTR_CELL_COUNT, 0)); - processMap.put("block_count", reader.getAttrAsInt(ATTR_BLOCK_COUNT, 0)); - processMap.put("report_type", reader.getAttrAsInt(ATTR_REPORT_TYPE, 0)); - processMap.put("templateID", templateID); + processMap.put(ATTR_PROCESS, reader.getAttrAsString(ATTR_PROCESS, StringUtils.EMPTY)); + processMap.put(ATTR_FLOAT_COUNT, reader.getAttrAsInt(ATTR_FLOAT_COUNT, 0)); + processMap.put(ATTR_WIDGET_COUNT, reader.getAttrAsInt(ATTR_WIDGET_COUNT, 0)); + processMap.put(ATTR_CELL_COUNT, reader.getAttrAsInt(ATTR_CELL_COUNT, 0)); + processMap.put(ATTR_BLOCK_COUNT, reader.getAttrAsInt(ATTR_BLOCK_COUNT, 0)); + processMap.put(ATTR_REPORT_TYPE, reader.getAttrAsInt(ATTR_REPORT_TYPE, 0)); + processMap.put(ATTR_TEMPLATE_ID, templateID); } else if(XML_CONSUMING_MAP.equals(name)){ - consumingMap.put("activitykey", reader.getAttrAsString(ATTR_ACTIVITYKEY, StringUtils.EMPTY)); - consumingMap.put("jar_time", reader.getAttrAsString(ATTR_JAR_TIME, StringUtils.EMPTY)); - consumingMap.put("create_time", reader.getAttrAsString(ATTR_CREATE_TIME, StringUtils.EMPTY)); - consumingMap.put("templateID", templateID); - consumingMap.put("uuid", reader.getAttrAsString(ATTR_UUID, StringUtils.EMPTY)); - consumingMap.put("time_consume", reader.getAttrAsLong(ATTR_TIME_CONSUME, 0)); - consumingMap.put("version", reader.getAttrAsString(ATTR_VERSION, "8.0")); - consumingMap.put("username", reader.getAttrAsString(ATTR_USERNAME, StringUtils.EMPTY)); + consumingMap.put(ATTR_ACTIVITYKEY, reader.getAttrAsString(ATTR_ACTIVITYKEY, StringUtils.EMPTY)); + consumingMap.put(ATTR_JAR_TIME, reader.getAttrAsString(ATTR_JAR_TIME, StringUtils.EMPTY)); + consumingMap.put(ATTR_CREATE_TIME, reader.getAttrAsString(ATTR_CREATE_TIME, StringUtils.EMPTY)); + consumingMap.put(ATTR_TEMPLATE_ID, templateID); + consumingMap.put(ATTR_UUID, reader.getAttrAsString(ATTR_UUID, StringUtils.EMPTY)); + consumingMap.put(ATTR_TIME_CONSUME, reader.getAttrAsLong(ATTR_TIME_CONSUME, 0)); + consumingMap.put(ATTR_VERSION, reader.getAttrAsString(ATTR_VERSION, "8.0")); + consumingMap.put(ATTR_USERNAME, reader.getAttrAsString(ATTR_USERNAME, StringUtils.EMPTY)); } } catch (Exception ex) { // 什么也不做,使用默认值 From a574cb0b6de6a0c358581086c4e659707f2f8182 Mon Sep 17 00:00:00 2001 From: plough Date: Fri, 28 Apr 2017 10:10:50 +0800 Subject: [PATCH 50/72] =?UTF-8?q?REPORT-2343=20[=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=E8=B4=A8=E9=87=8F]=3D>=E5=8E=BB=E6=8E=89=E5=A4=9A=E4=BD=99?= =?UTF-8?q?=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../templateinfo/TemplateInfoCollector.java | 33 +------------------ 1 file changed, 1 insertion(+), 32 deletions(-) diff --git a/designer_base/src/com/fr/design/mainframe/templateinfo/TemplateInfoCollector.java b/designer_base/src/com/fr/design/mainframe/templateinfo/TemplateInfoCollector.java index 1a06d82c35..17d785a439 100644 --- a/designer_base/src/com/fr/design/mainframe/templateinfo/TemplateInfoCollector.java +++ b/designer_base/src/com/fr/design/mainframe/templateinfo/TemplateInfoCollector.java @@ -8,8 +8,6 @@ import com.fr.design.mainframe.JTemplate; import com.fr.env.RemoteEnv; import com.fr.general.*; import com.fr.general.http.HttpClient; -import com.fr.json.JSONArray; -import com.fr.json.JSONException; import com.fr.stable.*; import com.fr.stable.xml.*; import com.fr.third.javax.xml.stream.XMLStreamException; @@ -19,7 +17,6 @@ import java.io.*; import java.text.SimpleDateFormat; import java.util.*; import java.util.HashMap; -import java.util.Iterator; /** * 做模板的过程和耗时收集,辅助类 @@ -177,40 +174,13 @@ public class TemplateInfoCollector implements Serializable, XM */ private void saveInfo() { try { - ByteArrayOutputStream out = new ByteArrayOutputStream(); + FileOutputStream out = new FileOutputStream(getInfoFile()); XMLTools.writeOutputStreamXML(this, out); - out.flush(); - out.close(); - String fileContent = new String(out.toByteArray(), EncodeConstants.ENCODING_UTF_8); - writeContentToFile(fileContent, getInfoFile()); } catch (Exception ex) { FRLogger.getLogger().error(ex.getMessage()); } } - /** - * 将文件内容写到输出流中 - */ - private static void writeContentToFile(String fileContent, File file){ - BufferedWriter bw = null; - try { - FileOutputStream fos = new FileOutputStream(file); - OutputStreamWriter osw = new OutputStreamWriter(fos, EncodeConstants.ENCODING_UTF_8); - bw = new BufferedWriter(osw); - bw.write(fileContent); - } catch (Exception e) { - FRContext.getLogger().error(e.getMessage()); - } finally { - if(bw != null){ - try { - bw.close(); - } catch (IOException e) { - } - } - } - - } - /** * 更新 day_count:打开设计器却未编辑模板的连续日子 */ @@ -258,7 +228,6 @@ public class TemplateInfoCollector implements Serializable, XM // 保存模板时,让 day_count 归零 templateInfo.put(ATTR_DAY_COUNT, 0); - templateInfoList.put(templateID, templateInfo); saveInfo(); // 每次更新之后,都同步到暂存文件中 From 589725a8dd2b624c33cd78fa0fe93c65aab3ede5 Mon Sep 17 00:00:00 2001 From: zhouping Date: Fri, 28 Apr 2017 11:39:11 +0800 Subject: [PATCH 51/72] =?UTF-8?q?REPORT-2526=20tab=E4=BA=A4=E4=BA=92?= =?UTF-8?q?=E6=94=B9=E8=89=AF=E5=90=8E=E7=BB=AD--tab=E9=A1=B5=E7=AD=BE?= =?UTF-8?q?=E8=B0=83=E6=95=B4=E7=9A=84=E8=A7=86=E8=A7=89=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/com/fr/design/images/control/tab/end.png | Bin 0 -> 248 bytes .../com/fr/design/images/control/tab/end_not.png | Bin 0 -> 250 bytes .../com/fr/design/images/control/tab/first.png | Bin 0 -> 264 bytes .../fr/design/images/control/tab/first_not.png | Bin 0 -> 264 bytes .../src/com/fr/design/images/control/tab/next.png | Bin 0 -> 265 bytes .../com/fr/design/images/control/tab/next_not.png | Bin 0 -> 257 bytes .../src/com/fr/design/images/control/tab/prev.png | Bin 0 -> 272 bytes .../com/fr/design/images/control/tab/prev_not.png | Bin 0 -> 273 bytes .../creator/cardlayout/TabMoveEndAction.java | 2 +- .../creator/cardlayout/TabMoveFirstAction.java | 2 +- .../creator/cardlayout/TabMoveNextAction.java | 2 +- .../creator/cardlayout/TabMovePrevAction.java | 2 +- 12 files changed, 4 insertions(+), 4 deletions(-) create mode 100644 designer_base/src/com/fr/design/images/control/tab/end.png create mode 100644 designer_base/src/com/fr/design/images/control/tab/end_not.png create mode 100644 designer_base/src/com/fr/design/images/control/tab/first.png create mode 100644 designer_base/src/com/fr/design/images/control/tab/first_not.png create mode 100644 designer_base/src/com/fr/design/images/control/tab/next.png create mode 100644 designer_base/src/com/fr/design/images/control/tab/next_not.png create mode 100644 designer_base/src/com/fr/design/images/control/tab/prev.png create mode 100644 designer_base/src/com/fr/design/images/control/tab/prev_not.png diff --git a/designer_base/src/com/fr/design/images/control/tab/end.png b/designer_base/src/com/fr/design/images/control/tab/end.png new file mode 100644 index 0000000000000000000000000000000000000000..da848239fb915844ab692e00126c47b426ae3222 GIT binary patch literal 248 zcmeAS@N?(olHy`uVBq!ia0vp^d?3uh1|;P@bT0xa#^NA%Cx&(BWL^R}n><|{Lo`H_ z6BdYwg;Nh8iy_jbVPyaU?_{`%x#&GH5{5YdIdiTD?b9?fr3r8w5U$9wQ|6jsS zJooSXhG6y(CRgQ<9`1|-HBNrVmkFjx#w~w*x#Rjv9fQaG_x>;?FS^jv)1&aOUco`| zc(!uDQ&Taqu*;iWZMXwV7%eSKnR25}oH(3ZWz_#yYL}XT{JW4DDglSh6|A{u>l&CU uNX06j$XvK1$MG6Rxt8K`#q32LybQm#JM&yh_nr%MJ%gvKpUXO@geCw>-B~~Y literal 0 HcmV?d00001 diff --git a/designer_base/src/com/fr/design/images/control/tab/end_not.png b/designer_base/src/com/fr/design/images/control/tab/end_not.png new file mode 100644 index 0000000000000000000000000000000000000000..1f08bdf35a524a08badaa957e60cca45f00c1eab GIT binary patch literal 250 zcmVPx#v`IukR45gtkTD9wAQXnRI0d{&X1fX=qH{avQfbbUJ(~s>j}RxdTA~D_5n4ff z`oHh}KLYUY5<d9a=|lu@qju;pLv|e4!Dcw|6c#~rRw3#1+ywg-_!){UZze z8CSbac(nOt&;5pN>I|mMAIwXb3$j`?k321Dl5%7dcw92Wl_is5-)85{y$mjAfWBey MboFyt=akR{0RC%dP5=M^ literal 0 HcmV?d00001 diff --git a/designer_base/src/com/fr/design/images/control/tab/first_not.png b/designer_base/src/com/fr/design/images/control/tab/first_not.png new file mode 100644 index 0000000000000000000000000000000000000000..50d048a19d3ac8d8058ea133b5d4bc61f37dcb8b GIT binary patch literal 264 zcmV+j0r&oiP)Px#!bwCyR45gtkg*NJAP_}OM3usWxW+9KlZ2^K$8|<=?+%a~k6>tQa%TlZWC)Rh zgzn(}IX7ec$)!lFqZ>JK7V3A1*0)idu@6LfA(~a5-j#5cq@Q=SKeID1;a&r9CL7sLC`a z5H+0hscqXH+=mQvTxCI=FveDJmjFvRu6UQOA{a!a=v5FO_$7KUs@4~cu1U}+2aLu5 O0000Px#!%0LzR45f=V4x-_-12`x!{!hTB8K*|5VlJQo^RYRd5u^Yp@gJM1$YP9)4A+1-wAYLA8c3Xwjc~o_PG|m#YjX;tFGmUybqxczU(?SMr?yR%v zjNf2t@!AN~08*HBwuomTOaqL@rxC?zFbyyoYp8;p#>m5C3iA(4F;!>)C^J2@0$neI P00000NkvXXu0mjf`8#cI literal 0 HcmV?d00001 diff --git a/designer_base/src/com/fr/design/images/control/tab/next_not.png b/designer_base/src/com/fr/design/images/control/tab/next_not.png new file mode 100644 index 0000000000000000000000000000000000000000..f002a0b9ee64e093045296811dcc45efe22c80d3 GIT binary patch literal 257 zcmeAS@N?(olHy`uVBq!ia0vp^d?3uh1|;P@bT0xa#^NA%Cx&(BWL^R}yFFbTLo`I! zPT0tMSV6$m*Cn-6@vc zG4>qpZVjq>K1cuLx;&eY3Rb>pe_DdimwIxXd}&m1mu-&B*7v_Px#%1J~)R45f=V4wwPIP;&YaLfM%*vw|aCI}KM-u7SX(@TcaKxRBPHCQzkZT+9{ z?;peI|Nj}ZuxSE`u^>x;oc8er!!)1qN&beY< z6m=lADA92?o$(vc_5?;oMiBl6Qh*DfXoM*u#_3o!f($sB$9|2GhsP9X^Fo+`RG|S} W)<$1S+_;JW0000TW{_F literal 0 HcmV?d00001 diff --git a/designer_base/src/com/fr/design/images/control/tab/prev_not.png b/designer_base/src/com/fr/design/images/control/tab/prev_not.png new file mode 100644 index 0000000000000000000000000000000000000000..2530395fd12212d71f33bf72a2a15d8ac0c846d7 GIT binary patch literal 273 zcmeAS@N?(olHy`uVBq!ia0vp^d?3uh1|;P@bT0xa#^NA%Cx&(BWL^R}r#)R9Lo`IU zPBi3eHsEpfoZ8vwy}|Hs7mK*&@}#z%?uy3A4XxY?jLeE#C&oCYF5$@)(>_=K&%X2d z-{juMFS6Ha=Y4C=PRf^P%ZQwIEb8|Y6P+8Sv57sI3>_96)t_n_E?z6u{a%|MdoIdR zx@TMNZSHT|^_K7+4v-0qT_ou8wd2-z+dYj-=LOr!Y}Q%5bPA`yT4B~j=Vb*0ynbFb znR-8d!tmbO%@8im(4huSngy?{h0iVZTeZS V2G{Tfdx73!@O1TaS?83{1OOMXY<~a% literal 0 HcmV?d00001 diff --git a/designer_form/src/com/fr/design/designer/creator/cardlayout/TabMoveEndAction.java b/designer_form/src/com/fr/design/designer/creator/cardlayout/TabMoveEndAction.java index 5da5dd1c73..e8c7c04b02 100644 --- a/designer_form/src/com/fr/design/designer/creator/cardlayout/TabMoveEndAction.java +++ b/designer_form/src/com/fr/design/designer/creator/cardlayout/TabMoveEndAction.java @@ -14,7 +14,7 @@ public class TabMoveEndAction extends TabMoveAction { public TabMoveEndAction(FormDesigner t, XCardSwitchButton xCardSwitchButton) { super(t, xCardSwitchButton); this.setName(Inter.getLocText("FR-Designer-Move_Tab_End")); - this.setSmallIcon(IOUtils.readIcon("com/fr/design/images/control/rightright.png")); + this.setSmallIcon(IOUtils.readIcon("com/fr/design/images/control/tab/end.png")); } //改变Tab的索引号 diff --git a/designer_form/src/com/fr/design/designer/creator/cardlayout/TabMoveFirstAction.java b/designer_form/src/com/fr/design/designer/creator/cardlayout/TabMoveFirstAction.java index 26195b9462..a2483c01e9 100644 --- a/designer_form/src/com/fr/design/designer/creator/cardlayout/TabMoveFirstAction.java +++ b/designer_form/src/com/fr/design/designer/creator/cardlayout/TabMoveFirstAction.java @@ -14,7 +14,7 @@ public class TabMoveFirstAction extends TabMoveAction { public TabMoveFirstAction(FormDesigner t, XCardSwitchButton xCardSwitchButton) { super(t, xCardSwitchButton); this.setName(Inter.getLocText("FR-Designer-Move_Tab_First")); - this.setSmallIcon(IOUtils.readIcon("com/fr/design/images/control/leftleft.png")); + this.setSmallIcon(IOUtils.readIcon("com/fr/design/images/control/tab/first.png")); } @Override diff --git a/designer_form/src/com/fr/design/designer/creator/cardlayout/TabMoveNextAction.java b/designer_form/src/com/fr/design/designer/creator/cardlayout/TabMoveNextAction.java index 10e796abc9..f3e34208ca 100644 --- a/designer_form/src/com/fr/design/designer/creator/cardlayout/TabMoveNextAction.java +++ b/designer_form/src/com/fr/design/designer/creator/cardlayout/TabMoveNextAction.java @@ -14,7 +14,7 @@ public class TabMoveNextAction extends TabMoveAction { public TabMoveNextAction(FormDesigner t, XCardSwitchButton xCardSwitchButton) { super(t, xCardSwitchButton); this.setName(Inter.getLocText("FR-Designer-Move_Tab_Next")); - this.setSmallIcon(IOUtils.readIcon("com/fr/design/images/control/right.png")); + this.setSmallIcon(IOUtils.readIcon("com/fr/design/images/control/tab/next.png")); } @Override diff --git a/designer_form/src/com/fr/design/designer/creator/cardlayout/TabMovePrevAction.java b/designer_form/src/com/fr/design/designer/creator/cardlayout/TabMovePrevAction.java index 859a27eea2..94f501c57e 100644 --- a/designer_form/src/com/fr/design/designer/creator/cardlayout/TabMovePrevAction.java +++ b/designer_form/src/com/fr/design/designer/creator/cardlayout/TabMovePrevAction.java @@ -14,7 +14,7 @@ public class TabMovePrevAction extends TabMoveAction { public TabMovePrevAction(FormDesigner t, XCardSwitchButton xCardSwitchButton) { super(t, xCardSwitchButton); this.setName(Inter.getLocText("FR-Designer-Move_Tab_Prev")); - this.setSmallIcon(IOUtils.readIcon("com/fr/design/images/control/left.png")); + this.setSmallIcon(IOUtils.readIcon("com/fr/design/images/control/tab/prev.png")); } @Override From a4788f9f94b45e179af0f7bcce7f2039471c4372 Mon Sep 17 00:00:00 2001 From: neil Date: Tue, 2 May 2017 10:28:45 +0800 Subject: [PATCH 52/72] ct --- .../mainframe/templateinfo/TemplateInfoCollector.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/designer_base/src/com/fr/design/mainframe/templateinfo/TemplateInfoCollector.java b/designer_base/src/com/fr/design/mainframe/templateinfo/TemplateInfoCollector.java index f8e985f667..e5c6688ec9 100644 --- a/designer_base/src/com/fr/design/mainframe/templateinfo/TemplateInfoCollector.java +++ b/designer_base/src/com/fr/design/mainframe/templateinfo/TemplateInfoCollector.java @@ -67,8 +67,16 @@ public class TemplateInfoCollector implements Serializable { try{ ObjectInputStream is = new ObjectInputStream(new FileInputStream(getInfoFile())); instance = (TemplateInfoCollector) is.readObject(); - } catch (Exception ex) { + } catch (FileNotFoundException ex) { + // 如果之前没有存储过,则创建新对象 instance = new TemplateInfoCollector(); + } catch (InvalidClassException ex) { + // 如果 TemplateInfoCollecor 类结构有改动,则放弃之前收集的数据(下次保存时覆盖) + // 这种情况主要在开发、测试过程中遇到,正式上线后不应该出现 + instance = new TemplateInfoCollector(); + } + catch (Exception ex) { + FRLogger.getLogger().error(ex.getMessage(), ex); } } return instance; From 22aa93fff25b1462f2ca5c84ef83f43c02f78d4f Mon Sep 17 00:00:00 2001 From: neil Date: Tue, 2 May 2017 10:34:53 +0800 Subject: [PATCH 53/72] 1 --- .../com/fr/design/mainframe/ConnectorHelper.java | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/designer_form/src/com/fr/design/mainframe/ConnectorHelper.java b/designer_form/src/com/fr/design/mainframe/ConnectorHelper.java index 93add36341..215ff8036d 100644 --- a/designer_form/src/com/fr/design/mainframe/ConnectorHelper.java +++ b/designer_form/src/com/fr/design/mainframe/ConnectorHelper.java @@ -1,15 +1,18 @@ package com.fr.design.mainframe; +import java.awt.Color; +import java.awt.Graphics; +import java.awt.Point; +import java.awt.Rectangle; +import java.awt.event.MouseEvent; +import java.util.ArrayList; + +import com.fr.form.ui.container.WAbsoluteLayout.BoundsWidget; +import com.fr.stable.Constants; import com.fr.base.GraphHelper; import com.fr.design.designer.beans.ConnectorCreator; import com.fr.design.designer.creator.XWAbsoluteLayout; import com.fr.form.ui.Connector; -import com.fr.form.ui.container.WAbsoluteLayout.BoundsWidget; -import com.fr.stable.Constants; - -import java.awt.*; -import java.awt.event.MouseEvent; -import java.util.ArrayList; public class ConnectorHelper { //这个类是用来画连接线的,暂时用不到 From 89240801d5b1d94e66d95824c6d4499c8143e8fe Mon Sep 17 00:00:00 2001 From: neil Date: Tue, 2 May 2017 10:52:50 +0800 Subject: [PATCH 54/72] ct --- .../src/com/fr/design/mainframe/FormSelectionUtils.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/designer_form/src/com/fr/design/mainframe/FormSelectionUtils.java b/designer_form/src/com/fr/design/mainframe/FormSelectionUtils.java index b288ec2029..7a03782c25 100644 --- a/designer_form/src/com/fr/design/mainframe/FormSelectionUtils.java +++ b/designer_form/src/com/fr/design/mainframe/FormSelectionUtils.java @@ -25,7 +25,6 @@ public class FormSelectionUtils { //组件重命名后缀 private static final String POSTFIX = "_c"; - private FormSelectionUtils() { } @@ -134,8 +133,10 @@ public class FormSelectionUtils { boolean xOut = x < 0 || x + copiedCreator.getWidth() / 2 + xoffset > container.getWidth(); boolean yOut = y < 0 || y + copiedCreator.getHeight() / 2 + yoffset > container.getHeight(); + boolean isEdge = (x - DELAY_X_Y == container.getWidth() - copiedCreator.getWidth() / 2 - xoffset) + && (y - DELAY_X_Y == container.getHeight() - copiedCreator.getHeight() / 2 - yoffset); + y = yOut ? container.getHeight() - copiedCreator.getHeight() / 2 - yoffset : y; - boolean isEdge = (x - DELAY_X_Y == container.getWidth() - copiedCreator.getWidth() / 2 - xoffset); if (xOut) { if (isEdge) { //向左偏移 From b828924647c4473a9c253c764c87700f2c664914 Mon Sep 17 00:00:00 2001 From: neil Date: Tue, 2 May 2017 10:53:07 +0800 Subject: [PATCH 55/72] ct --- .../designer/beans/ConnectorCreator.java | 9 +- .../adapters/layout/FRFitLayoutAdapter.java | 2306 +++++++++-------- .../design/designer/beans/location/Inner.java | 2 +- .../design/designer/creator/XElementCase.java | 10 +- .../designer/creator/XWAbsoluteLayout.java | 924 ++++--- .../design/designer/creator/XWFitLayout.java | 39 +- .../designer/creator/XWScaleLayout.java | 9 +- .../designer/creator/XWTitleLayout.java | 2 +- 8 files changed, 1647 insertions(+), 1654 deletions(-) diff --git a/designer_form/src/com/fr/design/designer/beans/ConnectorCreator.java b/designer_form/src/com/fr/design/designer/beans/ConnectorCreator.java index ed83c12d67..ca9934416a 100644 --- a/designer_form/src/com/fr/design/designer/beans/ConnectorCreator.java +++ b/designer_form/src/com/fr/design/designer/beans/ConnectorCreator.java @@ -1,12 +1,13 @@ package com.fr.design.designer.beans; -import com.fr.form.ui.container.WAbsoluteLayout.BoundsWidget; -import com.fr.form.ui.container.WLayout; - -import java.awt.*; +import java.awt.Point; +import java.awt.Rectangle; import java.util.ArrayList; import java.util.PriorityQueue; +import com.fr.form.ui.container.WLayout; +import com.fr.form.ui.container.WAbsoluteLayout.BoundsWidget; + public class ConnectorCreator { public static final int UNIT = 10; diff --git a/designer_form/src/com/fr/design/designer/beans/adapters/layout/FRFitLayoutAdapter.java b/designer_form/src/com/fr/design/designer/beans/adapters/layout/FRFitLayoutAdapter.java index 74a69e525c..03962df487 100644 --- a/designer_form/src/com/fr/design/designer/beans/adapters/layout/FRFitLayoutAdapter.java +++ b/designer_form/src/com/fr/design/designer/beans/adapters/layout/FRFitLayoutAdapter.java @@ -1,1183 +1,1185 @@ -/** - * - */ -package com.fr.design.designer.beans.adapters.layout; - -import com.fr.design.beans.GroupModel; -import com.fr.design.designer.beans.ConstraintsGroupModel; -import com.fr.design.designer.beans.HoverPainter; -import com.fr.design.designer.beans.painters.FRFitLayoutPainter; -import com.fr.design.designer.creator.XCreator; -import com.fr.design.designer.creator.XCreatorUtils; -import com.fr.design.designer.creator.XLayoutContainer; -import com.fr.design.designer.creator.XWFitLayout; -import com.fr.design.designer.creator.cardlayout.XWCardLayout; -import com.fr.design.designer.creator.cardlayout.XWCardMainBorderLayout; -import com.fr.design.designer.creator.cardlayout.XWTabFitLayout; -import com.fr.design.designer.properties.FRFitLayoutConstraints; -import com.fr.design.designer.properties.FRFitLayoutPropertiesGroupModel; -import com.fr.design.utils.ComponentUtils; -import com.fr.form.ui.LayoutBorderStyle; -import com.fr.form.ui.container.WAbsoluteLayout.BoundsWidget; -import com.fr.form.ui.container.WLayout; -import com.fr.form.ui.container.cardlayout.WCardMainBorderLayout; -import com.fr.general.ComparatorUtils; - +/** + * + */ +package com.fr.design.designer.beans.adapters.layout; + +import com.fr.design.beans.GroupModel; +import com.fr.design.designer.beans.ConstraintsGroupModel; +import com.fr.design.designer.beans.HoverPainter; +import com.fr.design.designer.beans.painters.FRFitLayoutPainter; +import com.fr.design.designer.creator.XCreator; +import com.fr.design.designer.creator.XCreatorUtils; +import com.fr.design.designer.creator.XLayoutContainer; +import com.fr.design.designer.creator.XWFitLayout; +import com.fr.design.designer.creator.cardlayout.XWCardLayout; +import com.fr.design.designer.creator.cardlayout.XWCardMainBorderLayout; +import com.fr.design.designer.creator.cardlayout.XWTabFitLayout; +import com.fr.design.designer.properties.FRFitLayoutConstraints; +import com.fr.design.designer.properties.FRFitLayoutPropertiesGroupModel; +import com.fr.design.file.HistoryTemplateListPane; +import com.fr.design.mainframe.JForm; +import com.fr.design.utils.ComponentUtils; +import com.fr.form.ui.LayoutBorderStyle; +import com.fr.form.ui.container.WLayout; +import com.fr.form.ui.container.cardlayout.WCardMainBorderLayout; +import com.fr.general.ComparatorUtils; +import com.fr.form.ui.container.WAbsoluteLayout.BoundsWidget; + import java.awt.*; import java.util.ArrayList; import java.util.List; -/** - * 自适应布局的容器适配器 - * - * @author jim - * @date 2014-6-24 - */ -public class FRFitLayoutAdapter extends FRBodyLayoutAdapter { - - public static final String WIDGETPANEICONPATH = "/com/fr/web/images/form/resources/layout_absolute.png"; - private static final int DEPENDING_SCOPE = 3; - private HoverPainter painter; - //区分拖拽和编辑宽高 - private boolean isEdit; - - public boolean isEdit() { - return isEdit; - } - - public void setEdit(boolean edit) { - isEdit = edit; - } - - /** - * 构造函数 - * - * @param container XWFitLayout容器 - */ - public FRFitLayoutAdapter(XLayoutContainer container) { - super(container); - painter = new FRFitLayoutPainter(container); - initMinSize(); - } - - private void initMinSize() { - XWFitLayout layout = (XWFitLayout) container; - minWidth = layout.getActualMinWidth(); - minHeight = layout.getActualMinHeight(); - actualVal = layout.getAcualInterval(); - margin = layout.toData().getMargin(); - } - - @Override - public HoverPainter getPainter() { - return painter; - } - - /** - * 返回布局自身属性,方便一些特有设置在layout刷新时处理 - */ - @Override - public GroupModel getLayoutProperties() { - XWFitLayout xfl = (XWFitLayout) container; - return new FRFitLayoutPropertiesGroupModel(xfl); - } - - /** - * 添加组件 - * - * @param child 待添加的组件 - * @param x 坐标x - * @param y 坐标y - */ - @Override - public void addComp(XCreator child, int x, int y) { - fix(child, x, y); - if (child.shouldScaleCreator() || child.hasTitleStyle()) { - addParentCreator(child); - } else { - container.add(child, child.toData().getWidgetName()); - } - XWFitLayout layout = (XWFitLayout) container; - // 更新对应的BoundsWidget - layout.updateBoundsWidget(); - updateCreatorBackBound(); - } - - public void updateCreatorBackBound() { - for (int i = 0, size = container.getComponentCount(); i < size; i++) { - XCreator creator = (XCreator) container.getComponent(i); - creator.updateChildBound(minHeight); - creator.setBackupBound(creator.getBounds()); - } - } - - - private void addParentCreator(XCreator child) { - XLayoutContainer parentPanel = child.initCreatorWrapper(minHeight); - container.add(parentPanel, child.toData().getWidgetName()); - } - - /** - * 能否对应位置放置当前组件 - * - * @param creator 组件 - * @param x 添加的位置x,该位置是相对于container的 - * @param y 添加的位置y,该位置是相对于container的 - * @return 是否可以放置 - */ - @Override - public boolean accept(XCreator creator, int x, int y) { - // 计算是否能拖入鼠标区域时,会用到fix 的方法 - isFindRelatedComps = false; - //拖入组件判断时,先判断是否为交叉点区域,其次三等分区域,再次平分区域 - Component comp = container.getComponentAt(x, y); +/** + * 自适应布局的容器适配器 + * + * @author jim + * @date 2014-6-24 + */ +public class FRFitLayoutAdapter extends FRBodyLayoutAdapter { + + public static final String WIDGETPANEICONPATH = "/com/fr/web/images/form/resources/layout_absolute.png"; + private static final int DEPENDING_SCOPE = 3; + private HoverPainter painter; + //区分拖拽和编辑宽高 + private boolean isEdit; + + public boolean isEdit() { + return isEdit; + } + + public void setEdit(boolean edit) { + isEdit = edit; + } + + /** + * 构造函数 + * + * @param container XWFitLayout容器 + */ + public FRFitLayoutAdapter(XLayoutContainer container) { + super(container); + painter = new FRFitLayoutPainter(container); + initMinSize(); + } + + private void initMinSize() { + XWFitLayout layout = (XWFitLayout) container; + minWidth = layout.getActualMinWidth(); + minHeight = layout.getActualMinHeight(); + actualVal = layout.getAcualInterval(); + margin = layout.toData().getMargin(); + } + + @Override + public HoverPainter getPainter() { + return painter; + } + + /** + * 返回布局自身属性,方便一些特有设置在layout刷新时处理 + */ + @Override + public GroupModel getLayoutProperties() { + XWFitLayout xfl = (XWFitLayout) container; + return new FRFitLayoutPropertiesGroupModel(xfl); + } + + /** + * 添加组件 + * + * @param child 待添加的组件 + * @param x 坐标x + * @param y 坐标y + */ + @Override + public void addComp(XCreator child, int x, int y) { + fix(child, x, y); + if (child.shouldScaleCreator() || child.hasTitleStyle()) { + addParentCreator(child); + } else { + container.add(child, child.toData().getWidgetName()); + } + XWFitLayout layout = (XWFitLayout) container; + // 更新对应的BoundsWidget + layout.updateBoundsWidget(); + updateCreatorBackBound(); + } + + public void updateCreatorBackBound() { + for (int i = 0, size = container.getComponentCount(); i < size; i++) { + XCreator creator = (XCreator) container.getComponent(i); + creator.updateChildBound(minHeight); + creator.setBackupBound(creator.getBounds()); + } + } + + + private void addParentCreator(XCreator child) { + XLayoutContainer parentPanel = child.initCreatorWrapper(minHeight); + container.add(parentPanel, child.toData().getWidgetName()); + } + + /** + * 能否对应位置放置当前组件 + * + * @param creator 组件 + * @param x 添加的位置x,该位置是相对于container的 + * @param y 添加的位置y,该位置是相对于container的 + * @return 是否可以放置 + */ + @Override + public boolean accept(XCreator creator, int x, int y) { + // 计算是否能拖入鼠标区域时,会用到fix 的方法 + isFindRelatedComps = false; + //拖入组件判断时,先判断是否为交叉点区域,其次三等分区域,再次平分区域 + Component comp = container.getComponentAt(x, y); if (comp == null || checkInterval(comp)) { - return false; - } - //如果当前处于边缘地带, 那么就把他贴到父容器上 - boolean isMatchEdge = matchEdge(x, y); - - int componentHeight = comp.getHeight(); - int componentWidth = comp.getWidth(); - //上半部分高度 - int upHeight = (int) (componentHeight * TOP_HALF) + comp.getY(); - //下半部分高度 - int downHeight = (int) (componentHeight * BOTTOM_HALF) + comp.getY(); - - //布局控件要先判断是不是可编辑 - XLayoutContainer topLayout = XCreatorUtils.getHotspotContainer((XCreator) comp).getTopLayout(); - if (topLayout != null && !isMatchEdge && !topLayout.isEditable()) { - return false; - } - - if (isCrossPointArea(comp, x, y)) { - return canAcceptWhileCrossPoint(comp, x, y); - } - - if (isTrisectionArea(comp, x, y)) { - return canAcceptWhileTrisection(comp, x, y); - } - - boolean horizonValid = componentWidth >= minWidth * 2 + actualVal; - boolean verticalValid = componentHeight >= minHeight * 2 + actualVal; - return y > upHeight && y < downHeight ? horizonValid : verticalValid; - } - - // 间隔区域 - private boolean checkInterval(Component comp) { - return container.getComponentCount() > 0 && comp == container; - } - - /** - * 是否在组件边缘 - * - * @param x 横坐标 - * @param y 纵坐标 - * @return 是否在组件边缘 - */ - public boolean matchEdge(int x, int y) { - if (intersectsEdge(x, y, container)) { - //寻找最近的fit, 在边缘地段添加的控件, 将其送给该fit - XLayoutContainer parent = container.findNearestFit(); - container = parent != null ? parent : container; - return true; - } - return false; - } - - /** - * 是否在组件边缘 - * - * @param x 横坐标 - * @param y 纵坐标 - * @param container 参照组件 - * @return 是否在组件边缘 - */ - //是否包含于边缘地段, 按顺序上, 下, 左, 右检测 - public boolean intersectsEdge(int x, int y, XLayoutContainer container) { - int containerX = container.getX(); - int containerY = container.getY(); - int containerWidth = container.getWidth(); - int containerHeight = container.getHeight(); - - // 当前坐标点 - Rectangle currentXY = new Rectangle(x, y, 1, 1); - // 上边缘 - Rectangle upEdge = new Rectangle(containerX, containerY, containerWidth, BORDER_PROPORTION); - if (upEdge.intersects(currentXY)) { - return true; - } - - int bottomY = containerY + containerHeight - BORDER_PROPORTION; - // 下边缘 - Rectangle bottomEdge = new Rectangle(containerX, bottomY, containerWidth, BORDER_PROPORTION); - if (bottomEdge.intersects(currentXY)) { - return true; - } - - //左右边缘的高度 -10*2 是为了不和上下边缘重合 - int verticalHeight = containerHeight - BORDER_PROPORTION * 2; - int leftY = containerY + BORDER_PROPORTION; - // 左边缘 - Rectangle leftEdge = new Rectangle(containerX, leftY, BORDER_PROPORTION, verticalHeight); - if (leftEdge.intersects(currentXY)) { - return true; - } - - int rightY = containerY + BORDER_PROPORTION; - int rightX = containerX + containerWidth - BORDER_PROPORTION; - // 右边缘 - Rectangle rightEdge = new Rectangle(rightX, rightY, BORDER_PROPORTION, verticalHeight); - return rightEdge.intersects(currentXY); - } - - /** - * 交叉点区域时,能否对应位置放入组件 - */ - protected boolean canAcceptWhileCrossPoint(Component comp, int x, int y) { - return super.canAcceptWhileCrossPoint(comp, x, y); - } - - protected boolean canAcceptWhileTrisection(Component comp, int x, int y) { - return super.canAcceptWhileTrisection(comp, x, y); - } - - /** - * 判断是否鼠标在组件的三等分区域,如果组件在布局管理器中间,上下左右都可能会三等分 - * - * @param parentComp 鼠标所在区域的组件 - * @param x 坐标x - * @param y 坐标y - * @return 是则返回true - */ - public boolean isTrisectionArea(Component parentComp, int x, int y) { - return super.isTrisectionArea(parentComp, x, y); - } - - /** - * 是否为组件交叉点区域 或者是相邻三组建中间点 - * - * @param currentComp 当前组件 - * @param x 坐标x - * @param y 坐标y - * @return 是则返回true - */ - public boolean isCrossPointArea(Component currentComp, int x, int y) { - return super.isCrossPointArea(currentComp, x, y); - } - - + return false; + } + //如果当前处于边缘地带, 那么就把他贴到父容器上 + boolean isMatchEdge = matchEdge(x, y); + + int componentHeight = comp.getHeight(); + int componentWidth = comp.getWidth(); + //上半部分高度 + int upHeight = (int) (componentHeight * TOP_HALF) + comp.getY(); + //下半部分高度 + int downHeight = (int) (componentHeight * BOTTOM_HALF) + comp.getY(); + + //布局控件要先判断是不是可编辑 + XLayoutContainer topLayout = XCreatorUtils.getHotspotContainer((XCreator) comp).getTopLayout(); + if (topLayout != null && !isMatchEdge && !topLayout.isEditable()) { + return false; + } + + if (isCrossPointArea(comp, x, y)) { + return canAcceptWhileCrossPoint(comp, x, y); + } + + if (isTrisectionArea(comp, x, y)) { + return canAcceptWhileTrisection(comp, x, y); + } + + boolean horizonValid = componentWidth >= minWidth * 2 + actualVal; + boolean verticalValid = componentHeight >= minHeight * 2 + actualVal; + return y > upHeight && y < downHeight ? horizonValid : verticalValid; + } + + // 间隔区域 + private boolean checkInterval(Component comp) { + return container.getComponentCount() > 0 && comp == container; + } + + /** + * 是否在组件边缘 + * + * @param x 横坐标 + * @param y 纵坐标 + * @return 是否在组件边缘 + */ + public boolean matchEdge(int x, int y) { + if (intersectsEdge(x, y, container)) { + //寻找最近的fit, 在边缘地段添加的控件, 将其送给该fit + XLayoutContainer parent = container.findNearestFit(); + container = parent != null ? parent : container; + return true; + } + return false; + } + + /** + * 是否在组件边缘 + * + * @param x 横坐标 + * @param y 纵坐标 + * @param container 参照组件 + * @return 是否在组件边缘 + */ + //是否包含于边缘地段, 按顺序上, 下, 左, 右检测 + public boolean intersectsEdge(int x, int y, XLayoutContainer container) { + int containerX = container.getX(); + int containerY = container.getY(); + int containerWidth = container.getWidth(); + int containerHeight = container.getHeight(); + + // 当前坐标点 + Rectangle currentXY = new Rectangle(x, y, 1, 1); + // 上边缘 + Rectangle upEdge = new Rectangle(containerX, containerY, containerWidth, BORDER_PROPORTION); + if (upEdge.intersects(currentXY)) { + return true; + } + + int bottomY = containerY + containerHeight - BORDER_PROPORTION; + // 下边缘 + Rectangle bottomEdge = new Rectangle(containerX, bottomY, containerWidth, BORDER_PROPORTION); + if (bottomEdge.intersects(currentXY)) { + return true; + } + + //左右边缘的高度 -10*2 是为了不和上下边缘重合 + int verticalHeight = containerHeight - BORDER_PROPORTION * 2; + int leftY = containerY + BORDER_PROPORTION; + // 左边缘 + Rectangle leftEdge = new Rectangle(containerX, leftY, BORDER_PROPORTION, verticalHeight); + if (leftEdge.intersects(currentXY)) { + return true; + } + + int rightY = containerY + BORDER_PROPORTION; + int rightX = containerX + containerWidth - BORDER_PROPORTION; + // 右边缘 + Rectangle rightEdge = new Rectangle(rightX, rightY, BORDER_PROPORTION, verticalHeight); + return rightEdge.intersects(currentXY); + } + + /** + * 交叉点区域时,能否对应位置放入组件 + */ + protected boolean canAcceptWhileCrossPoint(Component comp, int x, int y) { + return super.canAcceptWhileCrossPoint(comp, x, y); + } + + protected boolean canAcceptWhileTrisection(Component comp, int x, int y) { + return super.canAcceptWhileTrisection(comp, x, y); + } + + /** + * 判断是否鼠标在组件的三等分区域,如果组件在布局管理器中间,上下左右都可能会三等分 + * + * @param parentComp 鼠标所在区域的组件 + * @param x 坐标x + * @param y 坐标y + * @return 是则返回true + */ + public boolean isTrisectionArea(Component parentComp, int x, int y) { + return super.isTrisectionArea(parentComp, x, y); + } + + /** + * 是否为组件交叉点区域 或者是相邻三组建中间点 + * + * @param currentComp 当前组件 + * @param x 坐标x + * @param y 坐标y + * @return 是则返回true + */ + public boolean isCrossPointArea(Component currentComp, int x, int y) { + return super.isCrossPointArea(currentComp, x, y); + } + + protected Rectangle getLayoutBound(XWCardMainBorderLayout mainLayout) { - return mainLayout.getBounds(); - } - - private Rectangle adjustBackupBound(Rectangle backupBound, XWCardMainBorderLayout mainLayout) { + return mainLayout.getBounds(); + } + + private Rectangle adjustBackupBound(Rectangle backupBound, XWCardMainBorderLayout mainLayout) { // zhouping: REPORT-2334 表单tab布局中图表放大缩小会明显 // 这边不需要单独处理参数面板高度了,下面的方法中获取的是XWCardMainBorderLayout相对坐标 - Rectangle rec = getLayoutBound(mainLayout); - // XWTabLayout里面的横纵坐标收到外层XWCardMainBorderLayout的横纵坐标影响 - // 减掉之后可以按照它原来的逻辑执行 - backupBound.x -= rec.x; - backupBound.y -= rec.y; - XWCardLayout cardLayout = mainLayout.getCardPart(); - LayoutBorderStyle style = cardLayout.toData().getBorderStyle(); - // 当tab布局为标题样式时,才需要处理标题栏高度产生的影响 - if (ComparatorUtils.equals(style.getType(), LayoutBorderStyle.TITLE)) { - backupBound.y -= WCardMainBorderLayout.TAB_HEIGHT; - } - return backupBound; - } - - /** - * 拖拽控件边框后,根据控件的大小尺寸,进行相关组件的调整 - * - * @param creator 组件 - */ - @Override - public void fix(XCreator creator) { - //拖拽组件原大小、位置 - Rectangle backupBound = creator.getBackupBound(); - backupBound.x -= container.getX(); - backupBound.y -= container.getY(); - //当前拖拽组件的位置 - int x = creator.getX(); - int y = creator.getY(); - - // 获取容器所有内部组件横坐标 - int[] posXs = container.getHors(); - // 获取容器所有内部组件纵坐标 - int[] posYs = container.getVeris(); - - XLayoutContainer outerLayout = container.getOuterLayout(); - if (!ComparatorUtils.equals(outerLayout, container.getBackupParent())) { - XWCardMainBorderLayout mainLayout = (XWCardMainBorderLayout) outerLayout; - backupBound = adjustBackupBound(backupBound, mainLayout); - } - - //拖拽组件拖拽以后的大小 - int w = creator.getWidth(); - int h = creator.getHeight(); - initCompsList(); - creator.setBounds(backupBound); - int difference = 0; - if (x != backupBound.x) { - dealLeft(backupBound, x, posXs, difference, creator); - } else if (w != backupBound.width) { - dealRight(backupBound, x, w, posXs, difference, creator); - } else if (y != backupBound.y) { - dealTop(backupBound, y, posYs, difference, creator); - } else if (h != backupBound.height) { - dealButtom(backupBound, y, h, posYs, difference, creator); - } - clearCompsList(); - XWFitLayout layout = (XWFitLayout) container; - layout.updateBoundsWidget(); // 更新对应的BoundsWidget - updateCreatorBackBound(); - } - - /** - * 拖拽控件边框后,根据控件的大小尺寸,进行相关组件的调整 - * - * @param backupBound 边界备份 + Rectangle rec = getLayoutBound(mainLayout); + // XWTabLayout里面的横纵坐标收到外层XWCardMainBorderLayout的横纵坐标影响 + // 减掉之后可以按照它原来的逻辑执行 + backupBound.x -= rec.x; + backupBound.y -= rec.y; + XWCardLayout cardLayout = mainLayout.getCardPart(); + LayoutBorderStyle style = cardLayout.toData().getBorderStyle(); + // 当tab布局为标题样式时,才需要处理标题栏高度产生的影响 + if (ComparatorUtils.equals(style.getType(), LayoutBorderStyle.TITLE)) { + backupBound.y -= WCardMainBorderLayout.TAB_HEIGHT; + } + return backupBound; + } + + /** + * 拖拽控件边框后,根据控件的大小尺寸,进行相关组件的调整 + * + * @param creator 组件 + */ + @Override + public void fix(XCreator creator) { + //拖拽组件原大小、位置 + Rectangle backupBound = creator.getBackupBound(); + backupBound.x -= container.getX(); + backupBound.y -= container.getY(); + //当前拖拽组件的位置 + int x = creator.getX(); + int y = creator.getY(); + + // 获取容器所有内部组件横坐标 + int[] posXs = container.getHors(); + // 获取容器所有内部组件纵坐标 + int[] posYs = container.getVeris(); + + XLayoutContainer outerLayout = container.getOuterLayout(); + if (!ComparatorUtils.equals(outerLayout, container.getBackupParent())) { + XWCardMainBorderLayout mainLayout = (XWCardMainBorderLayout) outerLayout; + backupBound = adjustBackupBound(backupBound, mainLayout); + } + + //拖拽组件拖拽以后的大小 + int w = creator.getWidth(); + int h = creator.getHeight(); + initCompsList(); + creator.setBounds(backupBound); + int difference = 0; + if (x != backupBound.x) { + dealLeft(backupBound, x, posXs, difference, creator); + } else if (w != backupBound.width) { + dealRight(backupBound, x, w, posXs, difference, creator); + } else if (y != backupBound.y) { + dealTop(backupBound, y, posYs, difference, creator); + } else if (h != backupBound.height) { + dealButtom(backupBound, y, h, posYs, difference, creator); + } + clearCompsList(); + XWFitLayout layout = (XWFitLayout) container; + layout.updateBoundsWidget(); // 更新对应的BoundsWidget + updateCreatorBackBound(); + } + + /** + * 拖拽控件边框后,根据控件的大小尺寸,进行相关组件的调整 + * + * @param backupBound 边界备份 * @param bounds 组件边界 * @param xCreator 组件 * @param row 选中的行 * @param difference 偏移量 - */ - public void calculateBounds(Rectangle backupBound, Rectangle bounds, XCreator xCreator, int row, int difference) { + */ + public void calculateBounds(Rectangle backupBound, Rectangle bounds, XCreator xCreator, int row, int difference) { Rectangle rc = new Rectangle(0, 0, 0, 0); - XLayoutContainer parent = XCreatorUtils.getParentXLayoutContainer(xCreator); - if (parent != null) { - Rectangle rec = ComponentUtils.getRelativeBounds(parent); - rc.x = rec.x; - rc.y = rec.y; - } - int x = backupBound.x - rc.x, y = backupBound.y - rc.y; - //处理左右延伸 - switch (row) { - case 0: + XLayoutContainer parent = XCreatorUtils.getParentXLayoutContainer(xCreator); + if (parent != null) { + Rectangle rec = ComponentUtils.getRelativeBounds(parent); + rc.x = rec.x; + rc.y = rec.y; + } + int x = backupBound.x - rc.x, y = backupBound.y - rc.y; + //处理左右延伸 + switch (row) { + case 0: if (backupBound.width + backupBound.x == container.getWidth() - margin.getRight() + rc.x) { - x += difference; - } - break; - case 1: + x += difference; + } + break; + case 1: if (backupBound.y + backupBound.height == container.getHeight() - margin.getBottom() + rc.y) { - y += difference; - } - break; - } + y += difference; + } + break; + } bounds.setLocation(x, y); - xCreator.setBackupBound(backupBound); - xCreator.setBounds(bounds); - this.fix(xCreator); - } - - private void dealLeft(Rectangle backupBound, int x, int[] posXs, int difference, XCreator creator) { - if (backupBound.x == margin.getLeft()) { - return; - } - x = adjustCoordinateByDependingLine(x, posXs); - difference = x - backupBound.x; - dealDirectionAtLeft(backupBound, difference, creator); - } - - private void dealRight(Rectangle backupBound, int x, int w, int[] posXs, int difference, XCreator creator) { - if (backupBound.width + backupBound.x == container.getWidth() - margin.getRight()) { - return; - } - w = adjustDiffByDependingLine(x, posXs, w); - difference = w - backupBound.width; //拖拽长度 - dealDirectionAtRight(backupBound, difference, creator); - } - - private void dealTop(Rectangle backupBound, int y, int[] posYs, int difference, XCreator creator) { - if (backupBound.y == margin.getTop()) { - return; - } - y = adjustCoordinateByDependingLine(y, posYs); - difference = y - backupBound.y; - dealDirectionAtTop(backupBound, difference, creator); - } - - private void dealButtom(Rectangle backupBound, int y, int h, int[] posYs, int difference, XCreator creator) { - if (backupBound.y + backupBound.height == container.getHeight() - margin.getBottom()) { - return; - } - h = adjustDiffByDependingLine(y, posYs, h); - difference = h - backupBound.height; - dealDirectionABottom(backupBound, difference, creator); - } - - // 根据需要依附的位置调整拖拽的坐标值 - private int adjustCoordinateByDependingLine(int coordinate, int[] coordinates) { + xCreator.setBackupBound(backupBound); + xCreator.setBounds(bounds); + this.fix(xCreator); + } + + private void dealLeft(Rectangle backupBound, int x, int[] posXs, int difference, XCreator creator) { + if (backupBound.x == margin.getLeft()) { + return; + } + x = adjustCoordinateByDependingLine(x, posXs); + difference = x - backupBound.x; + dealDirectionAtLeft(backupBound, difference, creator); + } + + private void dealRight(Rectangle backupBound, int x, int w, int[] posXs, int difference, XCreator creator) { + if (backupBound.width + backupBound.x == container.getWidth() - margin.getRight()) { + return; + } + w = adjustDiffByDependingLine(x, posXs, w); + difference = w - backupBound.width; //拖拽长度 + dealDirectionAtRight(backupBound, difference, creator); + } + + private void dealTop(Rectangle backupBound, int y, int[] posYs, int difference, XCreator creator) { + if (backupBound.y == margin.getTop()) { + return; + } + y = adjustCoordinateByDependingLine(y, posYs); + difference = y - backupBound.y; + dealDirectionAtTop(backupBound, difference, creator); + } + + private void dealButtom(Rectangle backupBound, int y, int h, int[] posYs, int difference, XCreator creator) { + if (backupBound.y + backupBound.height == container.getHeight() - margin.getBottom()) { + return; + } + h = adjustDiffByDependingLine(y, posYs, h); + difference = h - backupBound.height; + dealDirectionABottom(backupBound, difference, creator); + } + + // 根据需要依附的位置调整拖拽的坐标值 + private int adjustCoordinateByDependingLine(int coordinate, int[] coordinates) { if (!isEdit) { - for (int i = 0; i < coordinates.length; i++) { - if (coordinate == coordinates[i]) { - continue; - } - if (coordinate > coordinates[i] - DEPENDING_SCOPE && coordinate < coordinates[i] + DEPENDING_SCOPE) { - coordinate = coordinates[i]; - break; - } - } - } - return coordinate; - } - - // 根据需要依附的位置调整拖拽的距离 - private int adjustDiffByDependingLine(int coordinate, int[] coordinates, int diff) { + for (int i = 0; i < coordinates.length; i++) { + if (coordinate == coordinates[i]) { + continue; + } + if (coordinate > coordinates[i] - DEPENDING_SCOPE && coordinate < coordinates[i] + DEPENDING_SCOPE) { + coordinate = coordinates[i]; + break; + } + } + } + return coordinate; + } + + // 根据需要依附的位置调整拖拽的距离 + private int adjustDiffByDependingLine(int coordinate, int[] coordinates, int diff) { if (!isEdit) { - for (int i = 0; i < coordinates.length; i++) { - if (coordinate + diff > coordinates[i] - DEPENDING_SCOPE && coordinate + diff < coordinates[i] + DEPENDING_SCOPE) { - diff = coordinates[i] - coordinate; - break; - } - } - } - return diff; - } - - // 左侧边框拉伸,循环找出对齐的两侧控件 - private void dealDirectionAtLeft(Rectangle backupBound, int difference, Component creator) { - rightComps.add(creator); - Component rightComp = null; - int leftx = backupBound.x - DEFAULT_AREA_LENGTH - actualVal; - // 取左侧边框右面的组件x值 - int rightx = backupBound.x + DEFAULT_AREA_LENGTH; - Component leftComp = container.getLeftComp(backupBound.x, backupBound.y); - leftComps.add(leftComp); - //先找上侧对齐时(y相等)的左右两边组件 - int ry = backupBound.y; - int ly = leftComp.getY(); - int min = margin.getTop(); - int max = container.getHeight() - margin.getBottom(); - while (ry >= min && ly >= min) { - if (ry == ly) { - break; - } else { - if (ry > ly) { - rightComp = container.getTopComp(rightx, ry); - ry = rightComp.getY(); - rightComps.add(rightComp); - } else { - leftComp = container.getTopComp(leftx, ly); - ly = leftComp.getY(); - leftComps.add(leftComp); - } - } - } - // 下侧对齐时(y+h相等)两边组件 - ry = backupBound.y + backupBound.height; - ly = leftComps.get(0).getY() + leftComps.get(0).getHeight(); - while (ry <= max && ly <= max) { - if (ry == ly) { - break; - } else { - if (ry > ly) { - leftComp = container.getComponentAt(leftx, ly + DEFAULT_AREA_LENGTH + actualVal); - ly = leftComp.getY() + leftComp.getHeight(); - leftComps.add(leftComp); - } else { - rightComp = container.getComponentAt(rightx, ry + DEFAULT_AREA_LENGTH + actualVal); - ry = rightComp.getY() + rightComp.getHeight(); - rightComps.add(rightComp); - } - } - } - dealHorDirection(backupBound.x, difference); - } - - // 右侧边框拉伸,循环找出对齐的两侧控件 - private void dealDirectionAtRight(Rectangle backupBound, int difference, Component creator) { - leftComps.add(creator); - Component leftComp = null; - int leftx = backupBound.x + backupBound.width - DEFAULT_AREA_LENGTH; - // 取右侧边框右面的组件x值 - int rightx = backupBound.x + backupBound.width + DEFAULT_AREA_LENGTH + actualVal; - Component rightComp = container.getRightComp(backupBound.x, backupBound.y, backupBound.width); - rightComps.add(rightComp); - int ly = backupBound.y, ry = rightComp.getY(); - int min = margin.getTop(); - int max = container.getHeight() - margin.getBottom(); - while (ry >= min && ly >= min) { - if (ry == ly) { - break; - } else { - if (ry > ly) { - rightComp = container.getTopComp(rightx, ry); - ry = rightComp.getY(); - rightComps.add(rightComp); - } else { - leftComp = container.getTopComp(leftx, ly); - ly = leftComp.getY(); - leftComps.add(leftComp); - } - } - } - ly = backupBound.y + backupBound.height; - ry = rightComps.get(0).getY() + rightComps.get(0).getHeight(); - while (ry <= max && ly <= max) { - if (ry == ly) { - break; - } else { - if (ry > ly) { - leftComp = container.getComponentAt(leftx, ly + DEFAULT_AREA_LENGTH + actualVal); - ly = leftComp.getY() + leftComp.getHeight(); - leftComps.add(leftComp); - } else { - rightComp = container.getComponentAt(rightx, ry + DEFAULT_AREA_LENGTH + actualVal); - ry = rightComp.getY() + rightComp.getHeight(); - rightComps.add(rightComp); - } - } - } - dealHorDirection(backupBound.x + backupBound.width + actualVal, difference); - } - - /** - * 水平方向上拉伸边框的处理 - */ - private void dealHorDirection(int objx, int difference) { - if (difference > 0) { - difference = Math.min(getMinWidth(rightComps) - minWidth, difference); - } else { - difference = Math.max(difference, minWidth - getMinWidth(leftComps)); - } - //重新计算左右两侧组件size、point + for (int i = 0; i < coordinates.length; i++) { + if (coordinate + diff > coordinates[i] - DEPENDING_SCOPE && coordinate + diff < coordinates[i] + DEPENDING_SCOPE) { + diff = coordinates[i] - coordinate; + break; + } + } + } + return diff; + } + + // 左侧边框拉伸,循环找出对齐的两侧控件 + private void dealDirectionAtLeft(Rectangle backupBound, int difference, Component creator) { + rightComps.add(creator); + Component rightComp = null; + int leftx = backupBound.x - DEFAULT_AREA_LENGTH - actualVal; + // 取左侧边框右面的组件x值 + int rightx = backupBound.x + DEFAULT_AREA_LENGTH; + Component leftComp = container.getLeftComp(backupBound.x, backupBound.y); + leftComps.add(leftComp); + //先找上侧对齐时(y相等)的左右两边组件 + int ry = backupBound.y; + int ly = leftComp.getY(); + int min = margin.getTop(); + int max = container.getHeight() - margin.getBottom(); + while (ry >= min && ly >= min) { + if (ry == ly) { + break; + } else { + if (ry > ly) { + rightComp = container.getTopComp(rightx, ry); + ry = rightComp.getY(); + rightComps.add(rightComp); + } else { + leftComp = container.getTopComp(leftx, ly); + ly = leftComp.getY(); + leftComps.add(leftComp); + } + } + } + // 下侧对齐时(y+h相等)两边组件 + ry = backupBound.y + backupBound.height; + ly = leftComps.get(0).getY() + leftComps.get(0).getHeight(); + while (ry <= max && ly <= max) { + if (ry == ly) { + break; + } else { + if (ry > ly) { + leftComp = container.getComponentAt(leftx, ly + DEFAULT_AREA_LENGTH + actualVal); + ly = leftComp.getY() + leftComp.getHeight(); + leftComps.add(leftComp); + } else { + rightComp = container.getComponentAt(rightx, ry + DEFAULT_AREA_LENGTH + actualVal); + ry = rightComp.getY() + rightComp.getHeight(); + rightComps.add(rightComp); + } + } + } + dealHorDirection(backupBound.x, difference); + } + + // 右侧边框拉伸,循环找出对齐的两侧控件 + private void dealDirectionAtRight(Rectangle backupBound, int difference, Component creator) { + leftComps.add(creator); + Component leftComp = null; + int leftx = backupBound.x + backupBound.width - DEFAULT_AREA_LENGTH; + // 取右侧边框右面的组件x值 + int rightx = backupBound.x + backupBound.width + DEFAULT_AREA_LENGTH + actualVal; + Component rightComp = container.getRightComp(backupBound.x, backupBound.y, backupBound.width); + rightComps.add(rightComp); + int ly = backupBound.y, ry = rightComp.getY(); + int min = margin.getTop(); + int max = container.getHeight() - margin.getBottom(); + while (ry >= min && ly >= min) { + if (ry == ly) { + break; + } else { + if (ry > ly) { + rightComp = container.getTopComp(rightx, ry); + ry = rightComp.getY(); + rightComps.add(rightComp); + } else { + leftComp = container.getTopComp(leftx, ly); + ly = leftComp.getY(); + leftComps.add(leftComp); + } + } + } + ly = backupBound.y + backupBound.height; + ry = rightComps.get(0).getY() + rightComps.get(0).getHeight(); + while (ry <= max && ly <= max) { + if (ry == ly) { + break; + } else { + if (ry > ly) { + leftComp = container.getComponentAt(leftx, ly + DEFAULT_AREA_LENGTH + actualVal); + ly = leftComp.getY() + leftComp.getHeight(); + leftComps.add(leftComp); + } else { + rightComp = container.getComponentAt(rightx, ry + DEFAULT_AREA_LENGTH + actualVal); + ry = rightComp.getY() + rightComp.getHeight(); + rightComps.add(rightComp); + } + } + } + dealHorDirection(backupBound.x + backupBound.width + actualVal, difference); + } + + /** + * 水平方向上拉伸边框的处理 + */ + private void dealHorDirection(int objx, int difference) { + if (difference > 0) { + difference = Math.min(getMinWidth(rightComps) - minWidth, difference); + } else { + difference = Math.max(difference, minWidth - getMinWidth(leftComps)); + } + //重新计算左右两侧组件size、point if (calculateLefttRelatComponent(difference)) { calculateRightRelatComponent(objx + difference, -difference); - } - } - - // 上侧边框拉伸,循环找出对齐的两侧控件 - private void dealDirectionAtTop(Rectangle backupBound, int difference, Component creator) { - downComps.add(creator); - // 取上侧边框上面的组件用的y值 - int topy = backupBound.y - DEFAULT_AREA_LENGTH - actualVal; - // 上侧边框下面的组件y值 - int bottomy = backupBound.y + DEFAULT_AREA_LENGTH; - Component topComp = container.getTopComp(backupBound.x, backupBound.y); - upComps.add(topComp); - Component bottomComp = null; - int min = margin.getLeft(); - int max = container.getWidth() - margin.getRight(); - //先找左侧侧对齐时(x相等)的上下两边组件 - int ux = topComp.getX(); - int dx = backupBound.x; - while (ux >= min && dx >= min) { - if (ux == dx) { - break; - } else { - if (ux < dx) { - bottomComp = container.getLeftComp(dx, bottomy); - dx = bottomComp.getX(); - downComps.add(bottomComp); - } else { - topComp = container.getLeftComp(ux, topy); - ux = topComp.getX(); - upComps.add(topComp); - } - } - } - // 右侧对齐时(x+w相等)两边组件 - ux = upComps.get(0).getX() + upComps.get(0).getWidth(); - dx = backupBound.x + backupBound.width; - while (ux <= max && dx <= max) { - if (ux == dx) { - break; - } else { - if (ux < dx) { - topComp = container.getComponentAt(ux + DEFAULT_AREA_LENGTH + actualVal, topy); - ux = topComp.getX() + topComp.getWidth(); - upComps.add(topComp); - } else { - bottomComp = container.getComponentAt(dx + DEFAULT_AREA_LENGTH + actualVal, bottomy); - dx = bottomComp.getX() + bottomComp.getWidth(); - downComps.add(bottomComp); - } - } - } - - dealVertiDirection(backupBound.y, difference); - } - - // 下侧边框拉伸,循环找出对齐的两侧控件 - private void dealDirectionABottom(Rectangle backupBound, int difference, Component creator) { - upComps.add(creator); - Component topComp = null; - Component bottomComp = container.getBottomComp(backupBound.x, backupBound.y, backupBound.height); - // 下侧边框下面的组件y坐标 - int bottomy = backupBound.y + backupBound.height + DEFAULT_AREA_LENGTH + actualVal; - // 取下侧边框上面的组件用的y值 - int topy = backupBound.y + backupBound.height - DEFAULT_AREA_LENGTH; - downComps.add(bottomComp); - int dx = bottomComp.getX(); - int ux = backupBound.x; - int min = margin.getLeft(); - int max = container.getWidth() - margin.getRight(); - while (ux >= min && dx >= min) { - if (ux == dx) { - break; - } else { - if (ux < dx) { - bottomComp = container.getLeftComp(dx, bottomy); - dx = bottomComp.getX(); - downComps.add(bottomComp); - } else { - topComp = container.getLeftComp(ux, topy); - ux = topComp.getX(); - upComps.add(topComp); - } - } - } - dx = downComps.get(0).getX() + downComps.get(0).getWidth(); - ux = backupBound.x + backupBound.width; - while (ux <= max && dx <= max) { - if (ux == dx) { - break; - } else { - if (ux < dx) { - topComp = container.getComponentAt(ux + DEFAULT_AREA_LENGTH + actualVal, topy); - ux = topComp.getX() + topComp.getWidth(); - upComps.add(topComp); - } else { - bottomComp = container.getComponentAt(dx + DEFAULT_AREA_LENGTH + actualVal, bottomy); - dx = bottomComp.getX() + bottomComp.getWidth(); - downComps.add(bottomComp); - } - } - } - dealVertiDirection(backupBound.y + backupBound.height + actualVal, difference); - } - - /** - * 垂直方向上拉伸边框的处理 - */ - private void dealVertiDirection(int objY, int difference) { - if (difference > 0) { - difference = Math.min(getMinHeight(downComps) - minHeight, difference); - } else { - difference = Math.max(difference, minHeight - getMinHeight(upComps)); - } - //重新计算上下两侧组件size、point + } + } + + // 上侧边框拉伸,循环找出对齐的两侧控件 + private void dealDirectionAtTop(Rectangle backupBound, int difference, Component creator) { + downComps.add(creator); + // 取上侧边框上面的组件用的y值 + int topy = backupBound.y - DEFAULT_AREA_LENGTH - actualVal; + // 上侧边框下面的组件y值 + int bottomy = backupBound.y + DEFAULT_AREA_LENGTH; + Component topComp = container.getTopComp(backupBound.x, backupBound.y); + upComps.add(topComp); + Component bottomComp = null; + int min = margin.getLeft(); + int max = container.getWidth() - margin.getRight(); + //先找左侧侧对齐时(x相等)的上下两边组件 + int ux = topComp.getX(); + int dx = backupBound.x; + while (ux >= min && dx >= min) { + if (ux == dx) { + break; + } else { + if (ux < dx) { + bottomComp = container.getLeftComp(dx, bottomy); + dx = bottomComp.getX(); + downComps.add(bottomComp); + } else { + topComp = container.getLeftComp(ux, topy); + ux = topComp.getX(); + upComps.add(topComp); + } + } + } + // 右侧对齐时(x+w相等)两边组件 + ux = upComps.get(0).getX() + upComps.get(0).getWidth(); + dx = backupBound.x + backupBound.width; + while (ux <= max && dx <= max) { + if (ux == dx) { + break; + } else { + if (ux < dx) { + topComp = container.getComponentAt(ux + DEFAULT_AREA_LENGTH + actualVal, topy); + ux = topComp.getX() + topComp.getWidth(); + upComps.add(topComp); + } else { + bottomComp = container.getComponentAt(dx + DEFAULT_AREA_LENGTH + actualVal, bottomy); + dx = bottomComp.getX() + bottomComp.getWidth(); + downComps.add(bottomComp); + } + } + } + + dealVertiDirection(backupBound.y, difference); + } + + // 下侧边框拉伸,循环找出对齐的两侧控件 + private void dealDirectionABottom(Rectangle backupBound, int difference, Component creator) { + upComps.add(creator); + Component topComp = null; + Component bottomComp = container.getBottomComp(backupBound.x, backupBound.y, backupBound.height); + // 下侧边框下面的组件y坐标 + int bottomy = backupBound.y + backupBound.height + DEFAULT_AREA_LENGTH + actualVal; + // 取下侧边框上面的组件用的y值 + int topy = backupBound.y + backupBound.height - DEFAULT_AREA_LENGTH; + downComps.add(bottomComp); + int dx = bottomComp.getX(); + int ux = backupBound.x; + int min = margin.getLeft(); + int max = container.getWidth() - margin.getRight(); + while (ux >= min && dx >= min) { + if (ux == dx) { + break; + } else { + if (ux < dx) { + bottomComp = container.getLeftComp(dx, bottomy); + dx = bottomComp.getX(); + downComps.add(bottomComp); + } else { + topComp = container.getLeftComp(ux, topy); + ux = topComp.getX(); + upComps.add(topComp); + } + } + } + dx = downComps.get(0).getX() + downComps.get(0).getWidth(); + ux = backupBound.x + backupBound.width; + while (ux <= max && dx <= max) { + if (ux == dx) { + break; + } else { + if (ux < dx) { + topComp = container.getComponentAt(ux + DEFAULT_AREA_LENGTH + actualVal, topy); + ux = topComp.getX() + topComp.getWidth(); + upComps.add(topComp); + } else { + bottomComp = container.getComponentAt(dx + DEFAULT_AREA_LENGTH + actualVal, bottomy); + dx = bottomComp.getX() + bottomComp.getWidth(); + downComps.add(bottomComp); + } + } + } + dealVertiDirection(backupBound.y + backupBound.height + actualVal, difference); + } + + /** + * 垂直方向上拉伸边框的处理 + */ + private void dealVertiDirection(int objY, int difference) { + if (difference > 0) { + difference = Math.min(getMinHeight(downComps) - minHeight, difference); + } else { + difference = Math.max(difference, minHeight - getMinHeight(upComps)); + } + //重新计算上下两侧组件size、point if (calculateUpRelatComponent(difference)) { calculateDownRelatComponent(objY + difference, -difference); - } - } - - /** - * 新拖入组件时,计算调整其他关联组件位置大小 - * - * @param child 新拖入的组件 - * @param x 鼠标所在x坐标 - * @param y 鼠标所在y坐标 - */ - public void fix(XCreator child, int x, int y) { - Component parentComp = container.getComponentAt(x, y); - if (container.getComponentCount() == 0) { - child.setLocation(0, 0); - child.setSize(parentComp.getWidth(), parentComp.getHeight()); - } else if (isCrossPointArea(parentComp, x, y)) { - //交叉区域插入组件时,根据具体位置进行上下或者左右或者相邻三个组件的位置大小插入 - fixCrossPointArea(parentComp, child, x, y); - return; - } else if (isTrisectionArea(parentComp, x, y)) { - // 在边界三等分区域,就不再和组件二等分了 - fixTrisect(parentComp, child, x, y); - return; - } else { - fixHalve(parentComp, child, x, y); - } - } - - /** - * 平分,正常情况拖入组件时,按照上1/4区域、下1/4区域为上下平分,中左侧1/2区域、中右侧1/2区域为左右平分 - */ - protected void fixHalve(Component currentComp, XCreator child, int x, int y) { - super.fixHalve(currentComp, child, x, y); - } - - /** - * 组件交叉区域进行插入时,调整受到变动的其他组件,之前是交叉区域插入也按照三等分逻辑,后面测试中发现有bug,改为和bi一样的鼠标所在侧平分 - * 默认左上角、右下角区域是垂直方向插入组件 - * 右上角和左下角是水平方向插入组件,这样避免田字块时重复 - */ - protected void fixCrossPointArea(Component currentComp, XCreator child, int x, int y) { - super.fixCrossPointArea(currentComp, child, x, y); - } - - /** - * 三等分区域时,调整相关联的组件 - * - * @param currentComp 鼠标所在组件 - * @param child 待插入组件 - */ - protected void fixTrisect(Component currentComp, XCreator child, int x, int y) { - super.fixTrisect(currentComp, child, x, y); - } - - /** - * 删除组件或者重新拖动时,其它组件重新计算位置大小 - */ - protected void delete(XCreator creator, int creatorWidth, int creatorHeight) { - int x = creator.getX(); - int y = creator.getY(); - recalculateChildrenSize(x, y, creatorWidth, creatorHeight); - } - - /** - * 重新计算内部组件大小 - * - * @param x 坐标x - * @param y 坐标y - * @param creatorWidth 删除的组件之前所在布局的宽度 - * @param creatorHeight 删除的组件之前所在布局的高度 - */ - public void recalculateChildrenSize(int x, int y, int creatorWidth, int creatorHeight) { - if (container.getComponentCount() == 0) { - return; - } else { - initCompsList(); - int width = creatorWidth; - int height = creatorHeight; - calculateRelatedComponent(x, y, width, height); - if (!rightComps.isEmpty() && getAllHeight(rightComps) == height) { + } + } + + /** + * 新拖入组件时,计算调整其他关联组件位置大小 + * + * @param child 新拖入的组件 + * @param x 鼠标所在x坐标 + * @param y 鼠标所在y坐标 + */ + public void fix(XCreator child, int x, int y) { + Component parentComp = container.getComponentAt(x, y); + if (container.getComponentCount() == 0) { + child.setLocation(0, 0); + child.setSize(parentComp.getWidth(), parentComp.getHeight()); + } else if (isCrossPointArea(parentComp, x, y)) { + //交叉区域插入组件时,根据具体位置进行上下或者左右或者相邻三个组件的位置大小插入 + fixCrossPointArea(parentComp, child, x, y); + return; + } else if (isTrisectionArea(parentComp, x, y)) { + // 在边界三等分区域,就不再和组件二等分了 + fixTrisect(parentComp, child, x, y); + return; + } else { + fixHalve(parentComp, child, x, y); + } + } + + /** + * 平分,正常情况拖入组件时,按照上1/4区域、下1/4区域为上下平分,中左侧1/2区域、中右侧1/2区域为左右平分 + */ + protected void fixHalve(Component currentComp, XCreator child, int x, int y) { + super.fixHalve(currentComp, child, x, y); + } + + /** + * 组件交叉区域进行插入时,调整受到变动的其他组件,之前是交叉区域插入也按照三等分逻辑,后面测试中发现有bug,改为和bi一样的鼠标所在侧平分 + * 默认左上角、右下角区域是垂直方向插入组件 + * 右上角和左下角是水平方向插入组件,这样避免田字块时重复 + */ + protected void fixCrossPointArea(Component currentComp, XCreator child, int x, int y) { + super.fixCrossPointArea(currentComp, child, x, y); + } + + /** + * 三等分区域时,调整相关联的组件 + * + * @param currentComp 鼠标所在组件 + * @param child 待插入组件 + */ + protected void fixTrisect(Component currentComp, XCreator child, int x, int y) { + super.fixTrisect(currentComp, child, x, y); + } + + /** + * 删除组件或者重新拖动时,其它组件重新计算位置大小 + */ + protected void delete(XCreator creator, int creatorWidth, int creatorHeight) { + int x = creator.getX(); + int y = creator.getY(); + recalculateChildrenSize(x, y, creatorWidth, creatorHeight); + } + + /** + * 重新计算内部组件大小 + * + * @param x 坐标x + * @param y 坐标y + * @param creatorWidth 删除的组件之前所在布局的宽度 + * @param creatorHeight 删除的组件之前所在布局的高度 + */ + public void recalculateChildrenSize(int x, int y, int creatorWidth, int creatorHeight) { + if (container.getComponentCount() == 0) { + return; + } else { + initCompsList(); + int width = creatorWidth; + int height = creatorHeight; + calculateRelatedComponent(x, y, width, height); + if (!rightComps.isEmpty() && getAllHeight(rightComps) == height) { calculateRightRelatComponent(x, width + actualVal); - } else if (!leftComps.isEmpty() && getAllHeight(leftComps) == height) { + } else if (!leftComps.isEmpty() && getAllHeight(leftComps) == height) { calculateLefttRelatComponent(width + actualVal); - } else if (!downComps.isEmpty() && getAllWidth(downComps) == width) { + } else if (!downComps.isEmpty() && getAllWidth(downComps) == width) { calculateDownRelatComponent(y, height + actualVal); - } else if (!upComps.isEmpty() && getAllWidth(upComps) == width) { + } else if (!upComps.isEmpty() && getAllWidth(upComps) == width) { calculateUpRelatComponent(height + actualVal); - } else { - // 由于布局三等分的存在,可能会出现删除组件时,找不到关联的组件填充,此时特殊处理 - calculateNoRelatedComponent(x, y, width, height); - } - } - clearCompsList(); - } - - /** - * 四侧边框都没有对齐的,此时每侧有且只有一个方向不对齐 - * 比如右侧不对齐,那么必然右上或右下没对齐,不会同时不对齐,否则不会出现此情况 - * 正常删除是右左下上优先原则,这边目前只调整右侧以至填充完整, - * 右侧不对齐时的组件先上下微调,再向左侧填充。 - */ - private void calculateNoRelatedComponent(int x, int y, int width, int height) { - // 只有最后一个组件了,直接删除 - if (container.getComponentCount() <= 1) { - return; - } - // 删除当前组件时,由于没有刚好边框对齐的其他组件,这时候需要调整的组件 - Component rightComp = container.getRightComp(x, y, width); - if (rightComp == null) { - return; - } - - int ry = rightComp.getY(); - clearCompsList(); - initCompsList(); - Rectangle rec = new Rectangle(x, y, width, height); - if (ry != y) { - calculateNoRelatedWhileRightTop(rec, rightComp); - } else { - calculateNoRelatedWhileRightBott(rec, rightComp); - } - - } - - private void calculateNoRelatedWhileRightTop(Rectangle bound, Component rcomp) { - if (rcomp == null) { - return; - } - - int ry = rcomp.getY(); - int rh = rcomp.getHeight(); - int rw = rcomp.getWidth(); - int dh = bound.y - ry - actualVal; - // 没法缩小高度 - if (dh < minHeight) { - // 没法缩小时则拉伸rcomp的上边框 - dealDirectionAtTop(rcomp.getBounds(), dh + actualVal, rcomp); - //调整的时候可能有组件达到最小高度,判断下 - if (rcomp.getY() != bound.y) { - clearCompsList(); - initCompsList(); - dealDirectionAtTop(rcomp.getBounds(), bound.y - rcomp.getY() - minHeight - actualVal, rcomp); - ry = rcomp.getY(); - int rx = rcomp.getX(); - rcomp.setBounds(rx, ry, rw, minHeight); - recalculateChildrenSize(rx, bound.y, rw, rh - dh - actualVal); - recalculateChildrenSize(bound.x, bound.y, bound.width, bound.height); - return; - } - } else { - // 右侧控件底部对齐 - if (rh + ry == bound.y + bound.height) { - rcomp.setSize(rw, dh); - bound.width += rw; - bound.width += actualVal; - } else { - recalculateChildrenSize(bound.x, ry + rh + actualVal, bound.width, bound.height + bound.y - rh - ry - actualVal); - recalculateChildrenSize(bound.x, bound.y, bound.width, ry + rh - bound.y); - return; - } - } - recalculateChildrenSize(bound.x, bound.y, bound.width, bound.height); - } - - private void calculateNoRelatedWhileRightBott(Rectangle bound, Component rcomp) { - rcomp = container.getBottomRightComp(bound.x, bound.y, bound.height, bound.width); - int ry = rcomp.getY(); - int rh = rcomp.getHeight(); - int rw = rcomp.getWidth(); - int dh = ry + rh - bound.y - bound.height - actualVal; - if (dh < minHeight) { - dealDirectionABottom(rcomp.getBounds(), -dh - actualVal, rcomp); - //调整的时候可能有组件达到最小高度,判断下 - if (rcomp.getHeight() + ry != bound.y + bound.height) { - clearCompsList(); - initCompsList(); - dh = ry + rcomp.getHeight() - bound.y - bound.height - actualVal; - dealDirectionABottom(rcomp.getBounds(), minHeight - dh, rcomp); - rh = rcomp.getHeight(); - int rx = rcomp.getX(); - rcomp.setBounds(rx, bound.y + bound.height + actualVal, rw, minHeight); - recalculateChildrenSize(rx, ry, rw, rh - minHeight - actualVal); - recalculateChildrenSize(bound.x, bound.y, bound.width, bound.height); - return; - } - } else { - if (ry == bound.y) { - rcomp.setBounds(rcomp.getX(), bound.y + bound.height + actualVal, rw, dh); - bound.width += rw; - bound.width += actualVal; - } else { - recalculateChildrenSize(bound.x, bound.y, bound.width, ry - bound.y - actualVal); - recalculateChildrenSize(bound.x, ry, bound.width, bound.height - ry + bound.y); - return; - } - } - recalculateChildrenSize(bound.x, bound.y, bound.width, bound.height); - } - - private int getMinWidth(List comps) { - if (comps.isEmpty()) { - return 0; - } - int minWidth = container.getWidth() - margin.getLeft() - margin.getRight(); - for (int i = 0, size = comps.size(); i < size; i++) { - minWidth = minWidth > comps.get(i).getWidth() ? comps.get(i).getWidth() : minWidth; - } - return minWidth; - } - - private int getMinHeight(List comps) { - if (comps.isEmpty()) { - return 0; - } - int minH = container.getHeight() - margin.getTop() - margin.getBottom(); - for (int i = 0, size = comps.size(); i < size; i++) { - minH = minH > comps.get(i).getHeight() ? comps.get(i).getHeight() : minH; - } - return minH; - } - - // 删除时计算待删除组件上下侧的组件是否何其对齐 - private int getAllHeight(List comps) { - int allHeight = 0; - if (comps.isEmpty()) { - return allHeight; - } - int n = comps.size(); - for (int i = 0; i < n; i++) { - allHeight += comps.get(i).getHeight(); - } - allHeight += (n - 1) * actualVal; - return allHeight; - } - - private int getAllWidth(List comps) { - int allWidth = 0; - if (comps.isEmpty()) { - return allWidth; - } - int n = comps.size(); - for (int i = 0; i < n; i++) { - allWidth += comps.get(i).getWidth(); - } - allWidth += (n - 1) * actualVal; - return allWidth; - } - - /** - * 获取有哪些相关联的组件 - */ - protected void calculateRelatedComponent(int objX, int objY, int objWidth, int objHeight) { - int count = container.getComponentCount(); - for (int i = 0; i < count; i++) { - Component relatComp = container.getComponent(i); - int rx = relatComp.getX(); - int ry = relatComp.getY(); - int rwidth = relatComp.getWidth(); - int rheight = relatComp.getHeight(); - int verti = ry - objY; - int hori = rx - objX; - boolean isHori = verti >= 0 && objHeight >= (rheight + verti); - boolean isVerti = hori >= 0 && objWidth >= (rwidth + hori); - if (isHori && (objX + objWidth + actualVal) == rx) { - rightComps.add(relatComp); - } else if (isHori && objX == (rx + rwidth + actualVal)) { - leftComps.add(relatComp); - } else if (isVerti && (objY + objHeight + actualVal) == ry) { - downComps.add(relatComp); - } else if (isVerti && objY == (ry + rheight + actualVal)) { - upComps.add(relatComp); - } - } - } - - /** - * 拖拽组件时遍历某一侧组件得到该侧组件能够缩放的最小宽度,tab布局最小宽度 = 内部组件数 * 单个组件最小宽度 - * - * @param list 某一侧组件的集合 如:leftComps - * @return int 最小宽度 - */ - private int getCompsMinWidth(List list) { - return getMaxCompsNum(list, true) * WLayout.MIN_WIDTH; - } - - /** - * 拖拽组件遍历某一侧得到该侧组件能够缩放的最小高度,tab布局最小高度 = 内部组件数 * 单个组件最小高度 + 标题高度 - * - * @param list 某一侧组件集合 - * @return int 最小高度 - */ - private int getCompsMinHeight(List list) { - for (int i = 0; i < list.size(); i++) { - XCreator creator = (XCreator) list.get(i); - ArrayList childrenList = creator.getTargetChildrenList(); - if (!childrenList.isEmpty()) { - return getMaxCompsNum(list, false) * WLayout.MIN_HEIGHT + WCardMainBorderLayout.TAB_HEIGHT; - } - } - return WLayout.MIN_HEIGHT; - } - - /** - * 根据子组件的横(纵)坐标获取某一侧组件的最大内部组件数 - * - * @param list 某一侧组件集合 - * @param isHor 是否以横坐标为准 - * @return int 最大内部组件数 - */ - private int getMaxCompsNum(List list, boolean isHor) { - int maxCompNums = 1; - for (int i = 0, size = list.size(); i < size; i++) { - XCreator creator = (XCreator) list.get(i); - ArrayList childrenList = creator.getTargetChildrenList(); - int count = childrenList.size(); - if (count > 0) { - for (int j = 0; j < count; j++) { - XWTabFitLayout tabLayout = (XWTabFitLayout) childrenList.get(j); - int[] positions = isHor ? tabLayout.getHors(true) : tabLayout.getVeris(true); - int compNums = positions.length - 1; - maxCompNums = Math.max(compNums, maxCompNums); - } - } - } - return maxCompNums; - } - - /** - * 根据偏移量缩放内部组件大小,(tab布局用到) - * - * @param creator tab布局 - * @param offset 偏移量 - * @param isHor 是否为横向拖拽 - */ - private void adjustCompsSize(XCreator creator, int offset, boolean isHor) { - ArrayList childrenList = creator.getTargetChildrenList(); - int size = childrenList.size(); - if (size > 0) { - for (int j = 0; j < size; j++) { - XWTabFitLayout tabLayout = (XWTabFitLayout) childrenList.get(j); - tabLayout.setBackupBound(tabLayout.getBounds()); - int refSize = isHor ? tabLayout.getWidth() : tabLayout.getHeight(); - double percent = (double) offset / refSize; - if (percent < 0 && !tabLayout.canReduce(percent)) { - return; - } - setAdjustedSize(tabLayout, offset, isHor); - for (int m = 0; m < tabLayout.getComponentCount(); m++) { - XCreator childCreator = tabLayout.getXCreator(m); - BoundsWidget wgt = tabLayout.toData().getBoundsWidget(childCreator.toData()); - wgt.setBounds(tabLayout.getComponent(m).getBounds()); - } - adjustCreatorsSize(percent, tabLayout, isHor); - } - - } - } - - // 纵向拖拽,先将tab布局的高度设置为拖拽后的实际高度 - private void setAdjustedHeight(XWTabFitLayout tabLayout, int offset) { - tabLayout.setSize(tabLayout.getWidth(), tabLayout.getHeight() + offset); - } - - // 横向拖拽,先将tab布局的宽度设置为拖拽后的实际宽度 - private void setAdjustedSize(XWTabFitLayout tabLayout, int offset, boolean isHor) { - if (offset < 0) { - // 缩放时需要备份原tab布局宽高 - tabLayout.setReferDim(new Dimension(tabLayout.getWidth(), tabLayout.getHeight())); - } - if (isHor) { - tabLayout.setSize(tabLayout.getWidth() + offset, tabLayout.getHeight()); - return; - } - setAdjustedHeight(tabLayout, offset); - } - - // 按照拖拽偏移量,对tab布局进行缩放 - private void adjustCreatorsSize(double percent, XWTabFitLayout tabLayout, boolean isHor) { - if (isHor) { - tabLayout.adjustCreatorsWidth(percent); - return; - } - tabLayout.adjustCreatorsHeight(percent); - } - - - /** - * 删除或拉伸控件右边框 调整右侧组件位置大小 - * - * @param objX 调整后的坐标x - * @param objWidth 调整后的宽度 - */ + } else { + // 由于布局三等分的存在,可能会出现删除组件时,找不到关联的组件填充,此时特殊处理 + calculateNoRelatedComponent(x, y, width, height); + } + } + clearCompsList(); + } + + /** + * 四侧边框都没有对齐的,此时每侧有且只有一个方向不对齐 + * 比如右侧不对齐,那么必然右上或右下没对齐,不会同时不对齐,否则不会出现此情况 + * 正常删除是右左下上优先原则,这边目前只调整右侧以至填充完整, + * 右侧不对齐时的组件先上下微调,再向左侧填充。 + */ + private void calculateNoRelatedComponent(int x, int y, int width, int height) { + // 只有最后一个组件了,直接删除 + if (container.getComponentCount() <= 1) { + return; + } + // 删除当前组件时,由于没有刚好边框对齐的其他组件,这时候需要调整的组件 + Component rightComp = container.getRightComp(x, y, width); + if (rightComp == null) { + return; + } + + int ry = rightComp.getY(); + clearCompsList(); + initCompsList(); + Rectangle rec = new Rectangle(x, y, width, height); + if (ry != y) { + calculateNoRelatedWhileRightTop(rec, rightComp); + } else { + calculateNoRelatedWhileRightBott(rec, rightComp); + } + + } + + private void calculateNoRelatedWhileRightTop(Rectangle bound, Component rcomp) { + if (rcomp == null) { + return; + } + + int ry = rcomp.getY(); + int rh = rcomp.getHeight(); + int rw = rcomp.getWidth(); + int dh = bound.y - ry - actualVal; + // 没法缩小高度 + if (dh < minHeight) { + // 没法缩小时则拉伸rcomp的上边框 + dealDirectionAtTop(rcomp.getBounds(), dh + actualVal, rcomp); + //调整的时候可能有组件达到最小高度,判断下 + if (rcomp.getY() != bound.y) { + clearCompsList(); + initCompsList(); + dealDirectionAtTop(rcomp.getBounds(), bound.y - rcomp.getY() - minHeight - actualVal, rcomp); + ry = rcomp.getY(); + int rx = rcomp.getX(); + rcomp.setBounds(rx, ry, rw, minHeight); + recalculateChildrenSize(rx, bound.y, rw, rh - dh - actualVal); + recalculateChildrenSize(bound.x, bound.y, bound.width, bound.height); + return; + } + } else { + // 右侧控件底部对齐 + if (rh + ry == bound.y + bound.height) { + rcomp.setSize(rw, dh); + bound.width += rw; + bound.width += actualVal; + } else { + recalculateChildrenSize(bound.x, ry + rh + actualVal, bound.width, bound.height + bound.y - rh - ry - actualVal); + recalculateChildrenSize(bound.x, bound.y, bound.width, ry + rh - bound.y); + return; + } + } + recalculateChildrenSize(bound.x, bound.y, bound.width, bound.height); + } + + private void calculateNoRelatedWhileRightBott(Rectangle bound, Component rcomp) { + rcomp = container.getBottomRightComp(bound.x, bound.y, bound.height, bound.width); + int ry = rcomp.getY(); + int rh = rcomp.getHeight(); + int rw = rcomp.getWidth(); + int dh = ry + rh - bound.y - bound.height - actualVal; + if (dh < minHeight) { + dealDirectionABottom(rcomp.getBounds(), -dh - actualVal, rcomp); + //调整的时候可能有组件达到最小高度,判断下 + if (rcomp.getHeight() + ry != bound.y + bound.height) { + clearCompsList(); + initCompsList(); + dh = ry + rcomp.getHeight() - bound.y - bound.height - actualVal; + dealDirectionABottom(rcomp.getBounds(), minHeight - dh, rcomp); + rh = rcomp.getHeight(); + int rx = rcomp.getX(); + rcomp.setBounds(rx, bound.y + bound.height + actualVal, rw, minHeight); + recalculateChildrenSize(rx, ry, rw, rh - minHeight - actualVal); + recalculateChildrenSize(bound.x, bound.y, bound.width, bound.height); + return; + } + } else { + if (ry == bound.y) { + rcomp.setBounds(rcomp.getX(), bound.y + bound.height + actualVal, rw, dh); + bound.width += rw; + bound.width += actualVal; + } else { + recalculateChildrenSize(bound.x, bound.y, bound.width, ry - bound.y - actualVal); + recalculateChildrenSize(bound.x, ry, bound.width, bound.height - ry + bound.y); + return; + } + } + recalculateChildrenSize(bound.x, bound.y, bound.width, bound.height); + } + + private int getMinWidth(List comps) { + if (comps.isEmpty()) { + return 0; + } + int minWidth = container.getWidth() - margin.getLeft() - margin.getRight(); + for (int i = 0, size = comps.size(); i < size; i++) { + minWidth = minWidth > comps.get(i).getWidth() ? comps.get(i).getWidth() : minWidth; + } + return minWidth; + } + + private int getMinHeight(List comps) { + if (comps.isEmpty()) { + return 0; + } + int minH = container.getHeight() - margin.getTop() - margin.getBottom(); + for (int i = 0, size = comps.size(); i < size; i++) { + minH = minH > comps.get(i).getHeight() ? comps.get(i).getHeight() : minH; + } + return minH; + } + + // 删除时计算待删除组件上下侧的组件是否何其对齐 + private int getAllHeight(List comps) { + int allHeight = 0; + if (comps.isEmpty()) { + return allHeight; + } + int n = comps.size(); + for (int i = 0; i < n; i++) { + allHeight += comps.get(i).getHeight(); + } + allHeight += (n - 1) * actualVal; + return allHeight; + } + + private int getAllWidth(List comps) { + int allWidth = 0; + if (comps.isEmpty()) { + return allWidth; + } + int n = comps.size(); + for (int i = 0; i < n; i++) { + allWidth += comps.get(i).getWidth(); + } + allWidth += (n - 1) * actualVal; + return allWidth; + } + + /** + * 获取有哪些相关联的组件 + */ + protected void calculateRelatedComponent(int objX, int objY, int objWidth, int objHeight) { + int count = container.getComponentCount(); + for (int i = 0; i < count; i++) { + Component relatComp = container.getComponent(i); + int rx = relatComp.getX(); + int ry = relatComp.getY(); + int rwidth = relatComp.getWidth(); + int rheight = relatComp.getHeight(); + int verti = ry - objY; + int hori = rx - objX; + boolean isHori = verti >= 0 && objHeight >= (rheight + verti); + boolean isVerti = hori >= 0 && objWidth >= (rwidth + hori); + if (isHori && (objX + objWidth + actualVal) == rx) { + rightComps.add(relatComp); + } else if (isHori && objX == (rx + rwidth + actualVal)) { + leftComps.add(relatComp); + } else if (isVerti && (objY + objHeight + actualVal) == ry) { + downComps.add(relatComp); + } else if (isVerti && objY == (ry + rheight + actualVal)) { + upComps.add(relatComp); + } + } + } + + /** + * 拖拽组件时遍历某一侧组件得到该侧组件能够缩放的最小宽度,tab布局最小宽度 = 内部组件数 * 单个组件最小宽度 + * + * @param list 某一侧组件的集合 如:leftComps + * @return int 最小宽度 + */ + private int getCompsMinWidth(List list) { + return getMaxCompsNum(list, true) * WLayout.MIN_WIDTH; + } + + /** + * 拖拽组件遍历某一侧得到该侧组件能够缩放的最小高度,tab布局最小高度 = 内部组件数 * 单个组件最小高度 + 标题高度 + * + * @param list 某一侧组件集合 + * @return int 最小高度 + */ + private int getCompsMinHeight(List list) { + for (int i = 0; i < list.size(); i++) { + XCreator creator = (XCreator) list.get(i); + ArrayList childrenList = creator.getTargetChildrenList(); + if (!childrenList.isEmpty()) { + return getMaxCompsNum(list, false) * WLayout.MIN_HEIGHT + WCardMainBorderLayout.TAB_HEIGHT; + } + } + return WLayout.MIN_HEIGHT; + } + + /** + * 根据子组件的横(纵)坐标获取某一侧组件的最大内部组件数 + * + * @param list 某一侧组件集合 + * @param isHor 是否以横坐标为准 + * @return int 最大内部组件数 + */ + private int getMaxCompsNum(List list, boolean isHor) { + int maxCompNums = 1; + for (int i = 0, size = list.size(); i < size; i++) { + XCreator creator = (XCreator) list.get(i); + ArrayList childrenList = creator.getTargetChildrenList(); + int count = childrenList.size(); + if (count > 0) { + for (int j = 0; j < count; j++) { + XWTabFitLayout tabLayout = (XWTabFitLayout) childrenList.get(j); + int[] positions = isHor ? tabLayout.getHors(true) : tabLayout.getVeris(true); + int compNums = positions.length - 1; + maxCompNums = Math.max(compNums, maxCompNums); + } + } + } + return maxCompNums; + } + + /** + * 根据偏移量缩放内部组件大小,(tab布局用到) + * + * @param creator tab布局 + * @param offset 偏移量 + * @param isHor 是否为横向拖拽 + */ + private void adjustCompsSize(XCreator creator, int offset, boolean isHor) { + ArrayList childrenList = creator.getTargetChildrenList(); + int size = childrenList.size(); + if (size > 0) { + for (int j = 0; j < size; j++) { + XWTabFitLayout tabLayout = (XWTabFitLayout) childrenList.get(j); + tabLayout.setBackupBound(tabLayout.getBounds()); + int refSize = isHor ? tabLayout.getWidth() : tabLayout.getHeight(); + double percent = (double) offset / refSize; + if (percent < 0 && !tabLayout.canReduce(percent)) { + return; + } + setAdjustedSize(tabLayout, offset, isHor); + for (int m = 0; m < tabLayout.getComponentCount(); m++) { + XCreator childCreator = tabLayout.getXCreator(m); + BoundsWidget wgt = (BoundsWidget) tabLayout.toData().getBoundsWidget(childCreator.toData()); + wgt.setBounds(tabLayout.getComponent(m).getBounds()); + } + adjustCreatorsSize(percent, tabLayout, isHor); + } + + } + } + + // 纵向拖拽,先将tab布局的高度设置为拖拽后的实际高度 + private void setAdjustedHeight(XWTabFitLayout tabLayout, int offset) { + tabLayout.setSize(tabLayout.getWidth(), tabLayout.getHeight() + offset); + } + + // 横向拖拽,先将tab布局的宽度设置为拖拽后的实际宽度 + private void setAdjustedSize(XWTabFitLayout tabLayout, int offset, boolean isHor) { + if (offset < 0) { + // 缩放时需要备份原tab布局宽高 + tabLayout.setReferDim(new Dimension(tabLayout.getWidth(), tabLayout.getHeight())); + } + if (isHor) { + tabLayout.setSize(tabLayout.getWidth() + offset, tabLayout.getHeight()); + return; + } + setAdjustedHeight(tabLayout, offset); + } + + // 按照拖拽偏移量,对tab布局进行缩放 + private void adjustCreatorsSize(double percent, XWTabFitLayout tabLayout, boolean isHor) { + if (isHor) { + tabLayout.adjustCreatorsWidth(percent); + return; + } + tabLayout.adjustCreatorsHeight(percent); + } + + + /** + * 删除或拉伸控件右边框 调整右侧组件位置大小 + * + * @param objX 调整后的坐标x + * @param objWidth 调整后的宽度 + */ protected void calculateRightRelatComponent(int objX, int objWidth) { - int count = rightComps.size(); - for (int i = 0; i < count; i++) { - XCreator creator = (XCreator) rightComps.get(i); - adjustCompsSize(creator, objWidth, true); - int ry = creator.getY(); - int rwidth = creator.getWidth(); - int rheight = creator.getHeight(); - creator.setLocation(objX, ry); - creator.setSize(rwidth + objWidth, rheight); - } - } - - /** - * 实际拖拽偏移量是否超出了可调整的宽度范围 - * - * @param offset 实际偏移量 - * @return boolean 是否超出调整范围 - */ - private boolean isBeyondAdjustWidthScope(int offset) { - boolean isBeyondScope = false; - isBeyondScope = offset < 0 ? isBeyondWidthScope(offset, leftComps) : isBeyondWidthScope(offset, rightComps); - return isBeyondScope; - } - - // 实际拖拽偏移量是否超出某一侧的可调整宽度 - private boolean isBeyondWidthScope(int offset, List compsList) { - int compMinWidth = getCompsMinWidth(compsList); - for (int i = 0; i < compsList.size(); i++) { - XCreator creator = (XCreator) compsList.get(i); - if (Math.abs(offset) > (creator.getWidth() - compMinWidth)) { - return true; - } - } - return false; - } - - /** - * 删除或拉伸控件左边框时 调整左侧的组件位置大小; - */ + int count = rightComps.size(); + for (int i = 0; i < count; i++) { + XCreator creator = (XCreator) rightComps.get(i); + adjustCompsSize(creator, objWidth, true); + int ry = creator.getY(); + int rwidth = creator.getWidth(); + int rheight = creator.getHeight(); + creator.setLocation(objX, ry); + creator.setSize(rwidth + objWidth, rheight); + } + } + + /** + * 实际拖拽偏移量是否超出了可调整的宽度范围 + * + * @param offset 实际偏移量 + * @return boolean 是否超出调整范围 + */ + private boolean isBeyondAdjustWidthScope(int offset) { + boolean isBeyondScope = false; + isBeyondScope = offset < 0 ? isBeyondWidthScope(offset, leftComps) : isBeyondWidthScope(offset, rightComps); + return isBeyondScope; + } + + // 实际拖拽偏移量是否超出某一侧的可调整宽度 + private boolean isBeyondWidthScope(int offset, List compsList) { + int compMinWidth = getCompsMinWidth(compsList); + for (int i = 0; i < compsList.size(); i++) { + XCreator creator = (XCreator) compsList.get(i); + if (Math.abs(offset) > (creator.getWidth() - compMinWidth)) { + return true; + } + } + return false; + } + + /** + * 删除或拉伸控件左边框时 调整左侧的组件位置大小; + */ protected boolean calculateLefttRelatComponent(int objWidth) { - if (isBeyondAdjustWidthScope(objWidth)) { - return false; - } - int count = leftComps.size(); - for (int i = 0; i < count; i++) { - XCreator creator = (XCreator) leftComps.get(i); - adjustCompsSize(creator, objWidth, true); - int rwidth = creator.getWidth(); - int rheight = creator.getHeight(); - creator.setSize(rwidth + objWidth, rheight); - } - return true; - } - - /** - * 删除或拉伸下边框 调整下方的组件位置大小 - */ + if (isBeyondAdjustWidthScope(objWidth)) { + return false; + } + int count = leftComps.size(); + for (int i = 0; i < count; i++) { + XCreator creator = (XCreator) leftComps.get(i); + adjustCompsSize(creator, objWidth, true); + int rwidth = creator.getWidth(); + int rheight = creator.getHeight(); + creator.setSize(rwidth + objWidth, rheight); + } + return true; + } + + /** + * 删除或拉伸下边框 调整下方的组件位置大小 + */ protected void calculateDownRelatComponent(int objY, int objHeight) { - int count = downComps.size(); - for (int i = 0; i < count; i++) { - XCreator creator = (XCreator) downComps.get(i); - adjustCompsSize(creator, objHeight, false); - int rx = creator.getX(); - int rwidth = creator.getWidth(); - int rheight = creator.getHeight(); - creator.setLocation(rx, objY); - creator.setSize(rwidth, rheight + objHeight); - } - } - - /** - * 实际拖拽偏移量是否超出了可调整的高度范围 - * - * @param offset 实际偏移量 - * @return boolean 是否超出调整范围 - */ - private boolean isBeyondAdjustHeightScope(int offset) { - boolean isBeyondScope = false; - isBeyondScope = offset < 0 ? isBeyondHeightScope(offset, upComps) : isBeyondHeightScope(offset, downComps); - return isBeyondScope; - } - - // 实际拖拽偏移量是否超出某一侧的可调整高度 - private boolean isBeyondHeightScope(int offset, List compsList) { - int minHeight = getCompsMinHeight(compsList); - for (int i = 0; i < compsList.size(); i++) { - XCreator creator = (XCreator) compsList.get(i); - if (Math.abs(offset) > (creator.getHeight() - minHeight)) { - return true; - } - } - return false; - } - - /** - * 删除或拉伸上边框 调整上方的组件位置大小 - */ + int count = downComps.size(); + for (int i = 0; i < count; i++) { + XCreator creator = (XCreator) downComps.get(i); + adjustCompsSize(creator, objHeight, false); + int rx = creator.getX(); + int rwidth = creator.getWidth(); + int rheight = creator.getHeight(); + creator.setLocation(rx, objY); + creator.setSize(rwidth, rheight + objHeight); + } + } + + /** + * 实际拖拽偏移量是否超出了可调整的高度范围 + * + * @param offset 实际偏移量 + * @return boolean 是否超出调整范围 + */ + private boolean isBeyondAdjustHeightScope(int offset) { + boolean isBeyondScope = false; + isBeyondScope = offset < 0 ? isBeyondHeightScope(offset, upComps) : isBeyondHeightScope(offset, downComps); + return isBeyondScope; + } + + // 实际拖拽偏移量是否超出某一侧的可调整高度 + private boolean isBeyondHeightScope(int offset, List compsList) { + int minHeight = getCompsMinHeight(compsList); + for (int i = 0; i < compsList.size(); i++) { + XCreator creator = (XCreator) compsList.get(i); + if (Math.abs(offset) > (creator.getHeight() - minHeight)) { + return true; + } + } + return false; + } + + /** + * 删除或拉伸上边框 调整上方的组件位置大小 + */ protected boolean calculateUpRelatComponent(int objHeight) { - if (isBeyondAdjustHeightScope(objHeight)) { - return false; - } - int count = upComps.size(); - for (int i = 0; i < count; i++) { - XCreator creator = (XCreator) upComps.get(i); - adjustCompsSize(creator, objHeight, false); - int rwidth = creator.getWidth(); - int rheight = creator.getHeight(); - creator.setSize(rwidth, rheight + objHeight); - } - return true; - } - - /** - * 不调整,只计算位置 - * - * @return child的位置 - */ - public int[] getChildPosition(Component currentComp, XCreator child, int x, int y) { - return super.getChildPosition(currentComp, child, x, y); - } - - @Override - public ConstraintsGroupModel getLayoutConstraints(XCreator creator) { - return new FRFitLayoutConstraints((XWFitLayout) container, creator); - } + if (isBeyondAdjustHeightScope(objHeight)) { + return false; + } + int count = upComps.size(); + for (int i = 0; i < count; i++) { + XCreator creator = (XCreator) upComps.get(i); + adjustCompsSize(creator, objHeight, false); + int rwidth = creator.getWidth(); + int rheight = creator.getHeight(); + creator.setSize(rwidth, rheight + objHeight); + } + return true; + } + + /** + * 不调整,只计算位置 + * + * @return child的位置 + */ + public int[] getChildPosition(Component currentComp, XCreator child, int x, int y) { + return super.getChildPosition(currentComp, child, x, y); + } + + @Override + public ConstraintsGroupModel getLayoutConstraints(XCreator creator) { + return new FRFitLayoutConstraints((XWFitLayout) container, creator); + } } \ No newline at end of file diff --git a/designer_form/src/com/fr/design/designer/beans/location/Inner.java b/designer_form/src/com/fr/design/designer/beans/location/Inner.java index c909244898..b07b18b4ac 100644 --- a/designer_form/src/com/fr/design/designer/beans/location/Inner.java +++ b/designer_form/src/com/fr/design/designer/beans/location/Inner.java @@ -9,8 +9,8 @@ import com.fr.design.mainframe.FormDesigner; import com.fr.design.mainframe.FormSelection; import com.fr.design.utils.ComponentUtils; import com.fr.form.ui.container.WAbsoluteLayout; -import com.fr.form.ui.container.WAbsoluteLayout.BoundsWidget; import com.fr.stable.ArrayUtils; +import com.fr.form.ui.container.WAbsoluteLayout.BoundsWidget; import java.awt.*; import java.awt.Rectangle; diff --git a/designer_form/src/com/fr/design/designer/creator/XElementCase.java b/designer_form/src/com/fr/design/designer/creator/XElementCase.java index 56aca1c43a..7eb967a9f7 100644 --- a/designer_form/src/com/fr/design/designer/creator/XElementCase.java +++ b/designer_form/src/com/fr/design/designer/creator/XElementCase.java @@ -10,9 +10,11 @@ import com.fr.design.fun.WidgetPropertyUIProvider; import com.fr.design.fun.impl.AbstractFormElementCaseEditorProvider; import com.fr.design.gui.ilable.UILabel; import com.fr.design.mainframe.*; -import com.fr.design.mainframe.widget.editors.ElementCaseToolBarEditor; +import com.fr.design.mainframe.widget.editors.BooleanEditor; import com.fr.design.mainframe.widget.editors.PaddingMarginEditor; import com.fr.design.mainframe.widget.editors.WLayoutBorderStyleEditor; +import com.fr.design.mainframe.widget.renderer.LayoutBorderStyleRenderer; +import com.fr.design.mainframe.widget.renderer.PaddingMarginCellRenderer; import com.fr.form.FormElementCaseContainerProvider; import com.fr.form.FormElementCaseProvider; import com.fr.form.FormProvider; @@ -86,7 +88,8 @@ public class XElementCase extends XBorderStyleWidgetCreator implements FormEleme @Override public void propertyChange() { - makeVisible(toData().isVisible());} + makeVisible(toData().isVisible()); + } }), new CRPropertyDescriptor("borderStyle", this.data.getClass()).setEditorClass( WLayoutBorderStyleEditor.class).setI18NName( @@ -97,12 +100,11 @@ public class XElementCase extends XBorderStyleWidgetCreator implements FormEleme public void propertyChange() { initStyle(); } - }), new CRPropertyDescriptor("margin", this.data.getClass()).setEditorClass(PaddingMarginEditor.class) .setI18NName(Inter.getLocText("FR-Layout_Padding")) .putKeyValue(XCreatorConstants.PROPERTY_CATEGORY, "Advanced"), - new CRPropertyDescriptor("toolBars", this.data.getClass()).setEditorClass(ElementCaseToolBarEditor.class) + new CRPropertyDescriptor("showToolBar", this.data.getClass()).setEditorClass(BooleanEditor.class) .setI18NName(Inter.getLocText("Form-EC_toolbar")) .putKeyValue(XCreatorConstants.PROPERTY_CATEGORY, "Advanced") }; diff --git a/designer_form/src/com/fr/design/designer/creator/XWAbsoluteLayout.java b/designer_form/src/com/fr/design/designer/creator/XWAbsoluteLayout.java index 852cdf1220..b585383c66 100644 --- a/designer_form/src/com/fr/design/designer/creator/XWAbsoluteLayout.java +++ b/designer_form/src/com/fr/design/designer/creator/XWAbsoluteLayout.java @@ -3,6 +3,14 @@ */ package com.fr.design.designer.creator; +import java.awt.*; +import java.awt.event.ContainerEvent; +import java.awt.event.MouseEvent; +import java.awt.image.BufferedImage; +import java.beans.IntrospectionException; +import java.util.ArrayList; +import java.util.HashMap; + import com.fr.design.designer.beans.AdapterBus; import com.fr.design.designer.beans.ComponentAdapter; import com.fr.design.designer.beans.LayoutAdapter; @@ -12,369 +20,345 @@ import com.fr.design.designer.beans.models.SelectionModel; import com.fr.design.designer.creator.cardlayout.XWTabFitLayout; import com.fr.design.form.layout.FRAbsoluteLayout; import com.fr.design.icon.IconPathConstants; -import com.fr.design.mainframe.EditingMouseListener; -import com.fr.design.mainframe.FormArea; -import com.fr.design.mainframe.FormDesigner; +import com.fr.design.mainframe.*; import com.fr.form.ui.Connector; import com.fr.form.ui.Widget; import com.fr.form.ui.container.WAbsoluteLayout; -import com.fr.form.ui.container.WAbsoluteLayout.BoundsWidget; import com.fr.form.ui.container.WLayout; +import com.fr.form.ui.container.WAbsoluteLayout.BoundsWidget; import com.fr.general.FRScreen; import com.fr.general.IOUtils; import com.fr.general.Inter; -import java.awt.*; -import java.awt.event.ContainerEvent; -import java.awt.event.MouseEvent; -import java.awt.image.BufferedImage; -import java.beans.IntrospectionException; -import java.util.ArrayList; -import java.util.HashMap; - /** * @author richer * @since 6.5.3 */ public class XWAbsoluteLayout extends XLayoutContainer { - private static final int EDIT_BTN_WIDTH = 60; - private static final int EDIT_BTN_HEIGHT = 24; - private int minWidth = WLayout.MIN_WIDTH; - private int minHeight = WLayout.MIN_HEIGHT; - - //由于屏幕分辨率不同,界面上的容器大小可能不是默认的100%,此时拖入组件时,保存的大小按照100%时的计算 - protected double containerPercent = 1.0; - - private HashMap xConnectorMap; - - public XWAbsoluteLayout() { - this(new WAbsoluteLayout(), new Dimension()); - } - - public XWAbsoluteLayout(WAbsoluteLayout widget) { - this(widget, new Dimension()); - } - - public XWAbsoluteLayout(WAbsoluteLayout widget, Dimension initSize) { - super(widget, initSize); - this.xConnectorMap = new HashMap(); - Connector connector; - for (int i = 0; i < widget.connectorCount(); i++) { - connector = widget.getConnectorIndex(i); - xConnectorMap.put(connector, new XConnector(connector, this)); - } - - initPercent(widget); - } - - /** - * 初始化时默认的组件大小 - * - * @return 默认Dimension - */ - @Override - public Dimension initEditorSize() { - return new Dimension(500, 300); - } - - //根据屏幕大小来确定显示的百分比, 1440*900默认100%, 1366*768缩放90% - private void initPercent(WAbsoluteLayout widget) { - Toolkit toolkit = Toolkit.getDefaultToolkit(); - Dimension scrnsize = toolkit.getScreenSize(); - double screenValue = FRScreen.getByDimension(scrnsize).getValue(); - if (screenValue != FormArea.DEFAULT_SLIDER) { - this.setContainerPercent(screenValue / FormArea.DEFAULT_SLIDER); - } - } - - /** - * 返回容器大小的百分比 - * - * @return the containerPercent - */ - public double getContainerPercent() { - return containerPercent; - } - - /** - * 设置容器大小的百分比 - * - * @param containerPercent the containerPercent to set - */ - public void setContainerPercent(double containerPercent) { - this.containerPercent = containerPercent; - minWidth = (int) (XWAbsoluteLayout.MIN_WIDTH * containerPercent); - minHeight = (int) (XWAbsoluteLayout.MIN_HEIGHT * containerPercent); - } - - /** - * 返回界面处根据百分比调整后的最小宽度 - * - * @return 最小宽度 - */ - public int getActualMinWidth() { - return this.minWidth; - } - - /** - * 返回界面处根据百分比调整后的最小高度 - * - * @return 最小高度 - */ - public int getActualMinHeight() { - return this.minHeight; - } - - /** - * 返回界面处根据百分比调整后的间隔大小(且为偶数) - * - * @return 间隔 - */ - public int getAcualInterval() { - // adapter那边交叉三等分、删除都要判断是否对齐,所以间隔转为偶数 - int interval = (int) (toData().getCompInterval() * containerPercent); - int val = interval / 2; - return val * 2; - } - - /** - * 界面容器大小不是默认的时,处理控件的BoundsWidget,且避免出现空隙 - */ - private Rectangle dealWidgetBound(Rectangle rec) { - if (containerPercent == 1.0) { - return rec; - } - rec.x = (int) (rec.x / containerPercent); - rec.y = (int) (rec.y / containerPercent); - rec.width = (int) (rec.width / containerPercent); - rec.height = (int) (rec.height / containerPercent); - return rec; - } - - /** - * 新增删除拉伸后单个组件的BoundsWidget - */ - public void updateBoundsWidget(XCreator xCreator) { - WAbsoluteLayout layout = this.toData(); - if (xCreator.hasTitleStyle()) { - xCreator = (XLayoutContainer) xCreator.getParent(); - } - if (xCreator.acceptType(XWAbsoluteLayout.class)) { - ((XWAbsoluteLayout) xCreator).updateBoundsWidget(); - } - // 如果子组件时tab布局,则tab布局内部的组件的wiget也要更新,否则保存后重新打开大小不对 - ArrayList childrenList = xCreator.getTargetChildrenList(); - if (!childrenList.isEmpty()) { - for (int i = 0; i < childrenList.size(); i++) { - XWTabFitLayout tabLayout = (XWTabFitLayout) childrenList.get(i); - tabLayout.updateBoundsWidget(); - } - } - BoundsWidget boundsWidget = (BoundsWidget) layout.getBoundsWidget(xCreator.toData()); - Rectangle rectangle = dealWidgetBound(xCreator.getBounds()); - } - - private Rectangle calculateBound(Rectangle rec, double pw, double ph) { - Rectangle calRec = new Rectangle(0, 0, 0, 0); - calRec.x = (int) (rec.x / pw); - calRec.y = (int) (rec.y / ph); - calRec.width = (int) (rec.width / pw); - calRec.height = (int) (rec.height / ph); - return calRec; - } - - /** - * 新增删除拉伸后每个组件的BoundsWidget - */ - public void updateBoundsWidget() { - WAbsoluteLayout layout = this.toData(); - Rectangle backupBound = this.getBackupBound(); - Rectangle currentBound = this.getBounds(); - if (backupBound != null && layout.getCompState() == WAbsoluteLayout.STATE_FIT) { - double percentW = ((double) backupBound.width / (double) currentBound.width); - double percentH = ((double) backupBound.height / (double) currentBound.height); - for (int index = 0, n = this.getComponentCount(); index < n; index++) { - XCreator creator = (XCreator) this.getComponent(index); - BoundsWidget wgt = (BoundsWidget) layout.getBoundsWidget(creator.toData()); - // 用当前的显示大小计算后调正具体位置 - Rectangle wgtBound = creator.getBounds(); - Rectangle rec = calculateBound(wgtBound, percentW, percentH); - wgt.setBounds(rec); - creator.setBounds(rec); - //绝对布局嵌套,要更新内部的绝对布局 - if (creator.acceptType(XWAbsoluteLayout.class)) { - creator.setBackupBound(wgtBound); - ((XWAbsoluteLayout) creator).updateBoundsWidget(); - } - } - } - } - - /** - * 更新子组件的Bound - * 这边主要用于绝对布局子组件在适应区域选项时 - * 涉及到的不同分辨率下缩放 - * - * @param minHeight 最小高度 - */ - @Override - public void updateChildBound(int minHeight) { - double prevContainerPercent = FRScreen.getByDimension(toData().getDesigningResolution()).getValue() / FormArea.DEFAULT_SLIDER; - if (toData().getCompState() == 0 && prevContainerPercent != containerPercent) { - for (int i = 0; i < this.getComponentCount(); i++) { - XCreator creator = getXCreator(i); - Rectangle rec = new Rectangle(creator.getBounds()); - rec.x = (int) (rec.x / prevContainerPercent * containerPercent); - rec.y = (int) (rec.y / prevContainerPercent * containerPercent); - rec.height = (int) (rec.height / prevContainerPercent * containerPercent); - rec.width = (int) (rec.width / prevContainerPercent * containerPercent); - BoundsWidget wgt = (BoundsWidget) toData().getBoundsWidget(creator.toData()); - wgt.setBounds(rec); - creator.setBounds(rec); - creator.updateChildBound(minHeight); - } - } - toData().setDesigningResolution(Toolkit.getDefaultToolkit().getScreenSize()); - } - - /** - * 增加对齐线 - * - * @param connector 对齐线 - */ - public void addConnector(Connector connector) { - xConnectorMap.put(connector, new XConnector(connector, this)); - ((WAbsoluteLayout) data).addConnector(connector); - } - - public XConnector getXConnector(Connector connector) { - return xConnectorMap.get(connector); - } - - /** - * 去除对齐线 - * - * @param connector 对齐线 - */ - public void removeConnector(Connector connector) { - ((WAbsoluteLayout) data).removeConnector(connector); - xConnectorMap.remove(connector); - } - - /** - * 返回对应的widget容器 - * - * @return 返回WAbsoluteLayout - */ - @Override - public WAbsoluteLayout toData() { - return (WAbsoluteLayout) data; - } - - @Override - protected String getIconName() { - return "layout_absolute_new.png"; - } - - /** - * 返回默认的容器name - * - * @return 返回绝对布局容器名 - */ - @Override - public String createDefaultName() { - return "absolute"; - } - - @Override - protected void initLayoutManager() { - this.setLayout(new FRAbsoluteLayout()); - } - - /** - * 是否支持标题样式 - * - * @return 默认false - */ - @Override - public boolean hasTitleStyle() { - return false; - } - - @Override - public void paintComponent(Graphics g) { - super.paintComponent(g); - WAbsoluteLayout layout = (WAbsoluteLayout) data; - Connector[] connector = layout.getConnector(); - for (int i = 0, size = connector.length; i < size; i++) { - connector[i].draw(g); - } - } - - /** - * 转换保存组件信息的wlayout为对应的container - */ - @Override - public void convert() { - isRefreshing = true; - WAbsoluteLayout abs = toData(); - this.removeAll(); - for (int i = 0, count = abs.getWidgetCount(); i < count; i++) { - BoundsWidget bw = (BoundsWidget) abs.getWidget(i); - if (bw != null) { - Rectangle bounds = bw.getBounds(); - XWidgetCreator comp = (XWidgetCreator) XCreatorUtils.createXCreator(bw.getWidget()); - if (!comp.acceptType(XWParameterLayout.class)) { - comp.setDirections(Direction.ALL); - } - add(comp); - comp.setBounds(bounds); - } - } - isRefreshing = false; - } - - /** - * 当前组件zorder位置替换新的控件 - * - * @param widget 控件 - * @param oldcreator 旧组件 - * @return 组件 - */ - @Override - public XCreator replace(Widget widget, XCreator oldcreator) { - int i = this.getComponentZOrder(oldcreator); - if (i != -1) { - this.toData().replace(new BoundsWidget(widget, oldcreator.getBounds()), - new BoundsWidget(oldcreator.toData(), oldcreator.getBounds())); - this.convert(); - return (XCreator) this.getComponent(i); - } - return null; - } - - /** + private static final int EDIT_BTN_WIDTH = 60; + private static final int EDIT_BTN_HEIGHT = 24; + private int minWidth = WLayout.MIN_WIDTH; + private int minHeight = WLayout.MIN_HEIGHT; + + //由于屏幕分辨率不同,界面上的容器大小可能不是默认的100%,此时拖入组件时,保存的大小按照100%时的计算 + protected double containerPercent = 1.0; + + private HashMap xConnectorMap; + + public XWAbsoluteLayout() { + this(new WAbsoluteLayout(),new Dimension()); + } + + public XWAbsoluteLayout(WAbsoluteLayout widget) { + this(widget,new Dimension()); + } + + public XWAbsoluteLayout(WAbsoluteLayout widget, Dimension initSize) { + super(widget, initSize); + this.xConnectorMap = new HashMap(); + Connector connector; + for (int i = 0; i < widget.connectorCount(); i++) { + connector = widget.getConnectorIndex(i); + xConnectorMap.put(connector, new XConnector(connector, this)); + } + + initPercent(widget); + } + + /** + * 初始化时默认的组件大小 + * + * @return 默认Dimension + */ + @Override + public Dimension initEditorSize() { + return new Dimension(500, 300); + } + + //根据屏幕大小来确定显示的百分比, 1440*900默认100%, 1366*768缩放90% + private void initPercent(WAbsoluteLayout widget){ + Toolkit toolkit = Toolkit.getDefaultToolkit(); + Dimension scrnsize = toolkit.getScreenSize(); + double screenValue = FRScreen.getByDimension(scrnsize).getValue(); + if(screenValue != FormArea.DEFAULT_SLIDER){ + this.setContainerPercent(screenValue / FormArea.DEFAULT_SLIDER); + } + } + + /** + * 返回容器大小的百分比 + * @return the containerPercent + */ + public double getContainerPercent() { + return containerPercent; + } + + /** + * 设置容器大小的百分比 + * @param containerPercent the containerPercent to set + */ + public void setContainerPercent(double containerPercent) { + this.containerPercent = containerPercent; + minWidth = (int) (XWAbsoluteLayout.MIN_WIDTH*containerPercent); + minHeight = (int) (XWAbsoluteLayout.MIN_HEIGHT*containerPercent); + } + + /** + * 返回界面处根据百分比调整后的最小宽度 + * @return 最小宽度 + */ + public int getActualMinWidth() { + return this.minWidth; + } + + /** + * 返回界面处根据百分比调整后的最小高度 + * @return 最小高度 + */ + public int getActualMinHeight() { + return this.minHeight; + } + + /** + * 返回界面处根据百分比调整后的间隔大小(且为偶数) + * @return 间隔 + */ + public int getAcualInterval() { + // adapter那边交叉三等分、删除都要判断是否对齐,所以间隔转为偶数 + int interval = (int) (toData().getCompInterval()*containerPercent); + int val = interval/2; + return val*2; + } + + /** + * 界面容器大小不是默认的时,处理控件的BoundsWidget,且避免出现空隙 + */ + private Rectangle dealWidgetBound(Rectangle rec) { + if (containerPercent == 1.0) { + return rec; + } + rec.x = (int) (rec.x/containerPercent); + rec.y = (int) (rec.y/containerPercent); + rec.width = (int) (rec.width/containerPercent); + rec.height = (int) (rec.height/containerPercent); + return rec; + } + + /** + * 新增删除拉伸后单个组件的BoundsWidget + */ + public void updateBoundsWidget(XCreator xCreator) { + WAbsoluteLayout layout = this.toData(); + if (xCreator.hasTitleStyle()) { + xCreator = (XLayoutContainer)xCreator.getParent(); + } + if (xCreator.acceptType(XWAbsoluteLayout.class)){ + ((XWAbsoluteLayout) xCreator).updateBoundsWidget(); + } + // 如果子组件时tab布局,则tab布局内部的组件的wiget也要更新,否则保存后重新打开大小不对 + ArrayList childrenList = xCreator.getTargetChildrenList(); + if(!childrenList.isEmpty()){ + for(int i=0; i Date: Tue, 2 May 2017 14:25:48 +0800 Subject: [PATCH 56/72] ct --- .../layout/FRAbsoluteLayoutAdapter.java | 685 +++++++------ .../adapters/layout/FRFitLayoutAdapter.java | 68 +- .../beans/location/AccessDirection.java | 89 +- .../designer/beans/models/AddingModel.java | 280 +++--- .../designer/beans/models/StateModel.java | 950 +++++++++--------- .../beans/painters/AbstractPainter.java | 190 ++-- .../design/mainframe/FormSelectionUtils.java | 4 +- 7 files changed, 1128 insertions(+), 1138 deletions(-) diff --git a/designer_form/src/com/fr/design/designer/beans/adapters/layout/FRAbsoluteLayoutAdapter.java b/designer_form/src/com/fr/design/designer/beans/adapters/layout/FRAbsoluteLayoutAdapter.java index 8ca2012525..539e60450f 100644 --- a/designer_form/src/com/fr/design/designer/beans/adapters/layout/FRAbsoluteLayoutAdapter.java +++ b/designer_form/src/com/fr/design/designer/beans/adapters/layout/FRAbsoluteLayoutAdapter.java @@ -1,346 +1,341 @@ -package com.fr.design.designer.beans.adapters.layout; - -import com.fr.design.beans.GroupModel; -import com.fr.design.designer.beans.ConstraintsGroupModel; -import com.fr.design.designer.beans.HoverPainter; -import com.fr.design.designer.beans.painters.FRAbsoluteLayoutPainter; -import com.fr.design.designer.creator.*; -import com.fr.design.designer.properties.BoundsGroupModel; -import com.fr.design.designer.properties.FRAbsoluteLayoutPropertiesGroupModel; -import com.fr.design.utils.ComponentUtils; -import com.fr.design.utils.gui.LayoutUtils; -import com.fr.form.ui.container.WAbsoluteLayout; -import com.fr.general.ComparatorUtils; -import com.fr.general.FRLogger; - -import java.awt.*; - -public class FRAbsoluteLayoutAdapter extends FRBodyLayoutAdapter { - //是不是添加到父容器上 - private boolean isAdd2ParentLayout = false; - private HoverPainter painter; - - public FRAbsoluteLayoutAdapter(XLayoutContainer container) { - super(container); - painter = new FRAbsoluteLayoutPainter(container); - initMinSize(); - } - - private void initMinSize() { - XWAbsoluteLayout layout = (XWAbsoluteLayout) container; - minWidth = layout.getActualMinWidth(); - minHeight = layout.getActualMinHeight(); - actualVal = layout.getAcualInterval(); - margin = layout.toData().getMargin(); - } - - @Override - public HoverPainter getPainter() { - return painter; - } - - /** - * 是否能在指定位置添加组件 - * - * @param creator 组件 - * @param x 坐标x - * @param y 坐标y - * @return 能则返回true - */ - //这个地方的逻辑非常复杂, - // 1.当前绝对布局是不可编辑且是最外层,那么其他控件添加在它周围, - // 2.当前绝对布局是不可编辑且不是最外层,那么控件不可添加,(嵌套) - // 3.当前绝对布局可编辑,那么控件添加 - @Override - public boolean accept(XCreator creator, int x, int y) { - Component comp = container.getComponentAt(x, y); - //布局控件要先判断是不是可编辑 - //可以编辑,按原有逻辑判断 - //不可编辑,当成一整个控件处理 - if (comp == null) { - return false; - } - //参数面板内的组件不允许拖往绝对布局中 - if (creator.getParent() != null && ((XCreator) creator.getParent()).acceptType(XWParameterLayout.class)) { - Rectangle rec = creator.getBounds(); - rec.y = creator.getParent().getHeight() - rec.height; - creator.setBounds(rec); - return false; - } - //判断组件能不能拖入绝对布局 - if (!creator.canEnterIntoAbsolutePane()) { - return false; - } - XLayoutContainer topLayout = XCreatorUtils.getHotspotContainer((XCreator) comp).getTopLayout(); - if (topLayout != null) { - if (topLayout.isEditable()) { - return topLayoutAccept(creator, x, y); - } - //绝对布局嵌套,处于内层,不可编辑,不添加,topLayout只能获取到最外层可编辑的布局 - else if (((XLayoutContainer) topLayout.getParent()).acceptType(XWAbsoluteLayout.class)) { - return false; - } else { - return acceptWidget(x, y); - } - } else { - FRLogger.getLogger().error("top layout is null!"); - } - - return false; - } - - //topLayout假如可以编辑的话就往里面添加组件 - private boolean topLayoutAccept(XCreator creator, int x, int y) { - //允许组件重叠,可以不判断有没有和当前控件重叠 - //先计算当前控件的位置 - int creatorX, creatorY; - if (XCreatorUtils.getParentXLayoutContainer(creator) != null) { - Rectangle creatorRectangle = ComponentUtils.getRelativeBounds(creator); - creatorX = creatorRectangle.x; - creatorY = creatorRectangle.y; - } else { - //这边计算得到的组件其实位置是正确的, - //因为传入的x和y已经加上了宽度或者高度的一半,再减去相同的宽度和高度的一半是没区别的, - // 例如高度为21,那么就是+10-10; - // 高度为20,那么就是+10-10; 没区别 - int w = creator.getWidth() / 2; - int h = creator.getHeight() / 2; - creatorX = x - w; - creatorY = y - h; - } - if (creatorX < 0 || creatorX + creator.getWidth() > container.getWidth()) { - return false; - } - if (creatorY < 0 || creatorY + creator.getHeight() > container.getHeight()) { - return false; - } - return x >= 0 && y >= 0 && creator.getHeight() <= container.getHeight() - && creator.getWidth() <= container.getWidth(); - } - - /** - * 判断是否鼠标在组件的三等分区域,如果组件在布局管理器中间,上下左右都可能会三等分 - * - * @param parentComp 鼠标所在区域的组件 - * @param x 坐标x - * @param y 坐标y - * @return 是则返回true - */ - public boolean isTrisectionArea(Component parentComp, int x, int y) { - XCreator creator = (XCreator) parentComp; - trisectAreaDirect = 0; - if (container.getComponentCount() <= 1) { - return false; - } - int maxWidth = parentComp.getWidth(); - int maxHeight = parentComp.getHeight(); - int xL = parentComp.getX(); - int yL = parentComp.getY(); - // 组件宽高的十分之一和默认值取大 - int minRangeWidth = Math.max(maxWidth / BORDER_PROPORTION, DEFAULT_AREA_LENGTH); - int minRangeHeight = Math.max(maxHeight / BORDER_PROPORTION, DEFAULT_AREA_LENGTH); - if (y < yL + minRangeHeight) { - // 在组件上侧三等分 - trisectAreaDirect = COMP_TOP; - } else if (y > yL + maxHeight - minRangeHeight) { - // 在组件下侧三等分 - trisectAreaDirect = COMP_BOTTOM; - } else if (x < xL + minRangeWidth) { - // 在组件左侧三等分 - trisectAreaDirect = COMP_LEFT; - } else if (x > xL + maxWidth - minRangeWidth) { - // 在组件右侧三等分 - trisectAreaDirect = COMP_RIGHT; - } - // tab布局的边界特殊处理,不进行三等分 - if (!creator.getTargetChildrenList().isEmpty()) { - return false; - } - - return !ComparatorUtils.equals(trisectAreaDirect, 0); - } - - //当前绝对布局不可编辑,就当成一个控件,组件添加在周围 - private boolean acceptWidget(int x, int y) { - isFindRelatedComps = false; - //拖入组件判断时,先判断是否为交叉点区域,其次三等分区域,再次平分区域 - Component comp = container.getComponentAt(x, y); - //如果当前处于边缘地带, 那么就把他贴到父容器上 - XLayoutContainer parent = container.findNearestFit(); - container = parent != null ? parent : container; - isAdd2ParentLayout = true; - - int componentHeight = comp.getHeight(); - int componentWidth = comp.getWidth(); - //上半部分高度 - int upHeight = (int) (componentHeight * TOP_HALF) + comp.getY(); - //下半部分高度 - int downHeight = (int) (componentHeight * BOTTOM_HALF) + comp.getY(); - - if (isCrossPointArea(comp, x, y)) { - return canAcceptWhileCrossPoint(comp, x, y); - } - - if (isTrisectionArea(comp, x, y)) { - return canAcceptWhileTrisection(comp, x, y); - } - - boolean horizonValid = componentWidth >= minWidth * 2 + actualVal; - boolean verticalValid = componentHeight >= minHeight * 2 + actualVal; - return y > upHeight && y < downHeight ? horizonValid : verticalValid; - } - - /** - * 组件的ComponentAdapter在添加组件时,如果发现布局管理器不为空,会继而调用该布局管理器的 - * addComp方法来完成组件的具体添加。在该方法内,布局管理器可以提供额外的功能。 - * - * @param creator 被添加的新组件 - * @param x 添加的位置x,该位置是相对于container的 - * @param y 添加的位置y,该位置是相对于container的 - * @return 是否添加成功,成功返回true,否则false - */ - @Override - public boolean addBean(XCreator creator, int x, int y) { - Rectangle rect = ComponentUtils.getRelativeBounds(container); - - int posX = x + rect.x; - int posY = y + rect.y; - if (!accept(creator, x, y)) { - return false; - } - addComp(creator, posX, posY); - ((XWidgetCreator) creator).recalculateChildrenSize(); - return true; - } - - @Override - protected void addComp(XCreator creator, int x, int y) { - if (!isAdd2ParentLayout) { - Rectangle r = ComponentUtils.getRelativeBounds(container); - x = x - r.x; - y = y - r.y; - if (XCreatorUtils.getParentXLayoutContainer(creator) != null) { - - Rectangle creatorRectangle = ComponentUtils.getRelativeBounds(creator); - x = creatorRectangle.x - r.x; - y = creatorRectangle.y - r.y; - } else { - int w = creator.getWidth() / 2; - int h = creator.getHeight() / 2; - x = x - w; - y = y - h; - } - fix(creator, x, y); - - if (creator.hasTitleStyle()) { - addParentCreator(creator); - } else { - container.add(creator, creator.toData().getWidgetName(), 0); - } - XWAbsoluteLayout layout = (XWAbsoluteLayout) container; - layout.updateBoundsWidget(creator); - updateCreatorBackBound(); - LayoutUtils.layoutRootContainer(container); - } else { - fixAbsolute(creator, x, y); - if (creator.shouldScaleCreator() || creator.hasTitleStyle()) { - addParentCreator(creator); - } else { - container.add(creator, creator.toData().getWidgetName(), 0); - } - XWFitLayout layout = (XWFitLayout) container; - // 更新对应的BoundsWidget - layout.updateBoundsWidget(); - updateCreatorBackBound(); - } - } - - private void updateCreatorBackBound() { - for (int i = 0, size = container.getComponentCount(); i < size; i++) { - XCreator creator = (XCreator) container.getComponent(i); - creator.updateChildBound(minHeight); - creator.setBackupBound(creator.getBounds()); - } - } - - private void addParentCreator(XCreator child) { - XLayoutContainer parentPanel = child.initCreatorWrapper(child.getHeight()); - container.add(parentPanel, child.toData().getWidgetName(), 0); - } - - /** - * 新拖入组件时,计算调整其他关联组件位置大小 - * - * @param child 新拖入的组件 - * @param x 鼠标所在x坐标 - * @param y 鼠标所在y坐标 - */ - private void fixAbsolute(XCreator child, int x, int y) { - Component parentComp = container.getComponentAt(x, y); - if (container.getComponentCount() == 0) { - child.setLocation(0, 0); - child.setSize(parentComp.getWidth(), parentComp.getHeight()); - } else if (isCrossPointArea(parentComp, x, y)) { - //交叉区域插入组件时,根据具体位置进行上下或者左右或者相邻三个组件的位置大小插入 - fixCrossPointArea(parentComp, child, x, y); - return; - } else if (isTrisectionArea(parentComp, x, y)) { - // 在边界三等分区域,就不再和组件二等分了 - fixTrisect(parentComp, child, x, y); - return; - } else { - fixHalve(parentComp, child, x, y); - } - } - - /** - * 组件拖拽后调整大小 - * - * @param creator 组件 - */ - @Override - public void fix(XCreator creator) { - WAbsoluteLayout wabs = (WAbsoluteLayout) container.toData(); - fix(creator, creator.getX(), creator.getY()); - wabs.setBounds(creator.toData(), creator.getBounds()); - - XWAbsoluteLayout layout = (XWAbsoluteLayout) container; - layout.updateBoundsWidget(creator); - } - - /** - * 调整组件大小到合适尺寸位置 - * - * @param creator 组件 - * @param x 坐标x - * @param y 坐标y - */ - public void fix(XCreator creator, int x, int y) { - int height = creator.getHeight(); - int width = creator.getWidth(); - if (x < 0) { - x = container.getX(); - } else if (x + creator.getWidth() > container.getWidth()) { - x = container.getWidth() - width; - } - - if (y < 0) { - y = container.getY(); - } else if (y + creator.getHeight() > container.getHeight()) { - y = container.getHeight() - height; - } - - creator.setBounds(x, y, width, height); - } - - @Override - public ConstraintsGroupModel getLayoutConstraints(XCreator creator) { - return new BoundsGroupModel((XWAbsoluteLayout) container, creator); - } - - @Override - public GroupModel getLayoutProperties() { - XWAbsoluteLayout xwAbsoluteLayout = (XWAbsoluteLayout) container; - return new FRAbsoluteLayoutPropertiesGroupModel(xwAbsoluteLayout); - } +package com.fr.design.designer.beans.adapters.layout; + +import com.fr.design.beans.GroupModel; +import com.fr.design.designer.beans.ConstraintsGroupModel; +import com.fr.design.designer.beans.HoverPainter; +import com.fr.design.designer.beans.painters.FRAbsoluteLayoutPainter; +import com.fr.design.designer.creator.*; +import com.fr.design.designer.properties.BoundsGroupModel; +import com.fr.design.designer.properties.FRAbsoluteLayoutPropertiesGroupModel; +import com.fr.design.utils.ComponentUtils; +import com.fr.design.utils.gui.LayoutUtils; +import com.fr.form.ui.container.WAbsoluteLayout; +import com.fr.general.ComparatorUtils; +import com.fr.general.FRLogger; + +import java.awt.*; + +public class FRAbsoluteLayoutAdapter extends FRBodyLayoutAdapter { + //是不是添加到父容器上 + private boolean isAdd2ParentLayout = false; + private HoverPainter painter; + + public FRAbsoluteLayoutAdapter(XLayoutContainer container) { + super(container); + painter = new FRAbsoluteLayoutPainter(container); + initMinSize(); + } + + private void initMinSize() { + XWAbsoluteLayout layout = (XWAbsoluteLayout) container; + minWidth = layout.getActualMinWidth(); + minHeight = layout.getActualMinHeight(); + actualVal = layout.getAcualInterval(); + margin = layout.toData().getMargin(); + } + + @Override + public HoverPainter getPainter() { + return painter; + } + + /** + * 是否能在指定位置添加组件 + * @param creator 组件 + * @param x 坐标x + * @param y 坐标y + * @return 能则返回true + */ + //这个地方的逻辑非常复杂, + // 1.当前绝对布局是不可编辑且是最外层,那么其他控件添加在它周围, + // 2.当前绝对布局是不可编辑且不是最外层,那么控件不可添加,(嵌套) + // 3.当前绝对布局可编辑,那么控件添加 + @Override + public boolean accept(XCreator creator, int x, int y) { + Component comp = container.getComponentAt(x, y); + //布局控件要先判断是不是可编辑 + //可以编辑,按原有逻辑判断 + //不可编辑,当成一整个控件处理 + if (comp == null){ + return false; + } + //参数面板内的组件不允许拖往绝对布局中 + if (creator.getParent() != null && ((XCreator)creator.getParent()).acceptType(XWParameterLayout.class)){ + Rectangle rec = creator.getBounds(); + rec.y = creator.getParent().getHeight() - rec.height; + creator.setBounds(rec); + return false; + } + //判断下组件能不能拖入绝对布局 + if (!creator.canEnterIntoAbsolutePane()){ + return false; + } + XLayoutContainer topLayout = XCreatorUtils.getHotspotContainer((XCreator)comp).getTopLayout(); + if(topLayout != null){ + if (topLayout.isEditable()){ + return topLayoutAccept(creator, x, y); + } + //绝对布局嵌套,处于内层,不可编辑,不添加,topLayout只能获取到最外层可编辑的布局 + else if (((XLayoutContainer)topLayout.getParent()).acceptType(XWAbsoluteLayout.class)) { + return false; + } else { + return acceptWidget(x, y); + } + } else { + FRLogger.getLogger().error("top layout is null!"); + } + + return false; + } + + //topLayout假如可以编辑的话就往里面添加组件 + private boolean topLayoutAccept(XCreator creator, int x, int y) { + //允许组件重叠,可以不判断有没有和当前控件重叠 + //先计算当前控件的位置 + int creatorX, creatorY; + if (XCreatorUtils.getParentXLayoutContainer(creator) != null) { + Rectangle creatorRectangle = ComponentUtils.getRelativeBounds(creator); + creatorX = creatorRectangle.x; + creatorY = creatorRectangle.y; + } else { + //这边计算得到的组件其实位置是正确的, + //因为传入的x和y已经加上了宽度或者高度的一半,再减去相同的宽度和高度的一半是没区别的, + // 例如高度为21,那么就是+10-10; + // 高度为20,那么就是+10-10; 没区别 + int w = creator.getWidth() / 2; + int h = creator.getHeight() / 2; + creatorX = x - w; + creatorY = y - h; + } + if (creatorX < 0 || creatorX + creator.getWidth() > container.getWidth()) { + return false; + } + if (creatorY < 0 || creatorY + creator.getHeight() > container.getHeight()){ + return false; + } + return x >= 0 && y >= 0 && creator.getHeight() <= container.getHeight() + && creator.getWidth() <= container.getWidth(); + } + + /** + * 判断是否鼠标在组件的三等分区域,如果组件在布局管理器中间,上下左右都可能会三等分 + * @param parentComp 鼠标所在区域的组件 + * @param x 坐标x + * @param y 坐标y + * @return 是则返回true + */ + public boolean isTrisectionArea(Component parentComp, int x, int y) { + XCreator creator = (XCreator)parentComp; + trisectAreaDirect = 0; + if (container.getComponentCount()<=1) { + return false; + } + int maxWidth = parentComp.getWidth(); + int maxHeight = parentComp.getHeight(); + int xL = parentComp.getX(); + int yL = parentComp.getY(); + // 组件宽高的十分之一和默认值取大 + int minRangeWidth = Math.max(maxWidth/BORDER_PROPORTION, DEFAULT_AREA_LENGTH); + int minRangeHeight = Math.max(maxHeight/BORDER_PROPORTION, DEFAULT_AREA_LENGTH); + if(yyL+maxHeight-minRangeHeight) { + // 在组件下侧三等分 + trisectAreaDirect = COMP_BOTTOM; + } else if (xxL+maxWidth-minRangeWidth) { + // 在组件右侧三等分 + trisectAreaDirect = COMP_RIGHT; + } + // tab布局的边界特殊处理,不进行三等分 + if(!creator.getTargetChildrenList().isEmpty()){ + return false; + } + + return !ComparatorUtils.equals(trisectAreaDirect, 0); + } + + //当前绝对布局不可编辑,就当成一个控件,组件添加在周围 + private boolean acceptWidget(int x, int y) { + isFindRelatedComps = false; + //拖入组件判断时,先判断是否为交叉点区域,其次三等分区域,再次平分区域 + Component comp = container.getComponentAt(x, y); + //如果当前处于边缘地带, 那么就把他贴到父容器上 + XLayoutContainer parent = container.findNearestFit(); + container = parent != null ? parent : container; + isAdd2ParentLayout = true; + + int componentHeight = comp.getHeight(); + int componentWidth = comp.getWidth(); + //上半部分高度 + int upHeight = (int) (componentHeight * TOP_HALF) + comp.getY(); + //下半部分高度 + int downHeight = (int) (componentHeight * BOTTOM_HALF) + comp.getY(); + + if (isCrossPointArea(comp, x, y)) { + return canAcceptWhileCrossPoint(comp, x, y); + } + + if (isTrisectionArea(comp, x, y)) { + return canAcceptWhileTrisection(comp, x, y); + } + + boolean horizonValid = componentWidth >= minWidth * 2 + actualVal; + boolean verticalValid = componentHeight >= minHeight * 2 + actualVal; + return y > upHeight && y < downHeight ? horizonValid : verticalValid; + } + + /** + * 组件的ComponentAdapter在添加组件时,如果发现布局管理器不为空,会继而调用该布局管理器的 + * addComp方法来完成组件的具体添加。在该方法内,布局管理器可以提供额外的功能。 + * + * @param creator 被添加的新组件 + * @param x 添加的位置x,该位置是相对于container的 + * @param y 添加的位置y,该位置是相对于container的 + * @return 是否添加成功,成功返回true,否则false + */ + @Override + public boolean addBean(XCreator creator, int x, int y) { + Rectangle rect = ComponentUtils.getRelativeBounds(container); + + int posX = x + rect.x; + int posY = y + rect.y; + if (!accept(creator, x, y)) { + return false; + } + addComp(creator, posX, posY); + ((XWidgetCreator) creator).recalculateChildrenSize(); + return true; + } + + @Override + protected void addComp(XCreator creator, int x, int y) { + if(!isAdd2ParentLayout) { + Rectangle r = ComponentUtils.getRelativeBounds(container); + x = x - r.x; + y = y - r.y; + if (XCreatorUtils.getParentXLayoutContainer(creator) != null) { + + Rectangle creatorRectangle = ComponentUtils.getRelativeBounds(creator); + x = creatorRectangle.x - r.x; + y = creatorRectangle.y - r.y; + } else { + int w = creator.getWidth() / 2; + int h = creator.getHeight() / 2; + x = x - w; + y = y - h; + } + fix(creator, x, y); + + if (creator.hasTitleStyle()) { + addParentCreator(creator); + } else { + container.add(creator, creator.toData().getWidgetName(),0); + } + XWAbsoluteLayout layout = (XWAbsoluteLayout) container; + layout.updateBoundsWidget(creator); + updateCreatorBackBound(); + LayoutUtils.layoutRootContainer(container); + }else{ + fixAbsolute(creator, x, y); + if (creator.shouldScaleCreator() || creator.hasTitleStyle()) { + addParentCreator(creator); + } else { + container.add(creator, creator.toData().getWidgetName(),0); + } + XWFitLayout layout = (XWFitLayout) container; + // 更新对应的BoundsWidget + layout.updateBoundsWidget(); + updateCreatorBackBound(); + } + } + + private void updateCreatorBackBound() { + for (int i=0,size=container.getComponentCount(); i container.getWidth()) { + x = container.getWidth() - width; + } + + if (y < 0) { + y = container.getY(); + } else if (y + creator.getHeight() > container.getHeight()) { + y = container.getHeight() - height; + } + + creator.setBounds(x, y, width, height); + } + + @Override + public ConstraintsGroupModel getLayoutConstraints(XCreator creator) { + return new BoundsGroupModel((XWAbsoluteLayout)container, creator); + } + + @Override + public GroupModel getLayoutProperties() { + XWAbsoluteLayout xwAbsoluteLayout = (XWAbsoluteLayout) container; + return new FRAbsoluteLayoutPropertiesGroupModel(xwAbsoluteLayout); + } } \ No newline at end of file diff --git a/designer_form/src/com/fr/design/designer/beans/adapters/layout/FRFitLayoutAdapter.java b/designer_form/src/com/fr/design/designer/beans/adapters/layout/FRFitLayoutAdapter.java index 03962df487..3a030f7f2b 100644 --- a/designer_form/src/com/fr/design/designer/beans/adapters/layout/FRFitLayoutAdapter.java +++ b/designer_form/src/com/fr/design/designer/beans/adapters/layout/FRFitLayoutAdapter.java @@ -16,19 +16,17 @@ import com.fr.design.designer.creator.cardlayout.XWCardMainBorderLayout; import com.fr.design.designer.creator.cardlayout.XWTabFitLayout; import com.fr.design.designer.properties.FRFitLayoutConstraints; import com.fr.design.designer.properties.FRFitLayoutPropertiesGroupModel; -import com.fr.design.file.HistoryTemplateListPane; -import com.fr.design.mainframe.JForm; import com.fr.design.utils.ComponentUtils; import com.fr.form.ui.LayoutBorderStyle; +import com.fr.form.ui.container.WAbsoluteLayout; import com.fr.form.ui.container.WLayout; import com.fr.form.ui.container.cardlayout.WCardMainBorderLayout; import com.fr.general.ComparatorUtils; -import com.fr.form.ui.container.WAbsoluteLayout.BoundsWidget; -import java.awt.*; -import java.util.ArrayList; -import java.util.List; - +import java.awt.*; +import java.util.ArrayList; +import java.util.List; + /** * 自适应布局的容器适配器 * @@ -50,7 +48,7 @@ public class FRFitLayoutAdapter extends FRBodyLayoutAdapter { public void setEdit(boolean edit) { isEdit = edit; } - + /** * 构造函数 * @@ -133,7 +131,7 @@ public class FRFitLayoutAdapter extends FRBodyLayoutAdapter { isFindRelatedComps = false; //拖入组件判断时,先判断是否为交叉点区域,其次三等分区域,再次平分区域 Component comp = container.getComponentAt(x, y); - if (comp == null || checkInterval(comp)) { + if (comp == null || checkInterval(comp)) { return false; } //如果当前处于边缘地带, 那么就把他贴到父容器上 @@ -269,13 +267,13 @@ public class FRFitLayoutAdapter extends FRBodyLayoutAdapter { } - protected Rectangle getLayoutBound(XWCardMainBorderLayout mainLayout) { + protected Rectangle getLayoutBound(XWCardMainBorderLayout mainLayout) { return mainLayout.getBounds(); } private Rectangle adjustBackupBound(Rectangle backupBound, XWCardMainBorderLayout mainLayout) { - // zhouping: REPORT-2334 表单tab布局中图表放大缩小会明显 - // 这边不需要单独处理参数面板高度了,下面的方法中获取的是XWCardMainBorderLayout相对坐标 + // zhouping: REPORT-2334 表单tab布局中图表放大缩小会明显 + // 这边不需要单独处理参数面板高度了,下面的方法中获取的是XWCardMainBorderLayout相对坐标 Rectangle rec = getLayoutBound(mainLayout); // XWTabLayout里面的横纵坐标收到外层XWCardMainBorderLayout的横纵坐标影响 // 减掉之后可以按照它原来的逻辑执行 @@ -341,13 +339,13 @@ public class FRFitLayoutAdapter extends FRBodyLayoutAdapter { * 拖拽控件边框后,根据控件的大小尺寸,进行相关组件的调整 * * @param backupBound 边界备份 - * @param bounds 组件边界 - * @param xCreator 组件 - * @param row 选中的行 - * @param difference 偏移量 + * @param bounds 组件边界 + * @param xCreator 组件 + * @param row 选中的行 + * @param difference 偏移量 */ public void calculateBounds(Rectangle backupBound, Rectangle bounds, XCreator xCreator, int row, int difference) { - Rectangle rc = new Rectangle(0, 0, 0, 0); + Rectangle rc = new Rectangle(0, 0, 0, 0); XLayoutContainer parent = XCreatorUtils.getParentXLayoutContainer(xCreator); if (parent != null) { Rectangle rec = ComponentUtils.getRelativeBounds(parent); @@ -358,17 +356,17 @@ public class FRFitLayoutAdapter extends FRBodyLayoutAdapter { //处理左右延伸 switch (row) { case 0: - if (backupBound.width + backupBound.x == container.getWidth() - margin.getRight() + rc.x) { + if (backupBound.width + backupBound.x == container.getWidth() - margin.getRight() + rc.x) { x += difference; } break; case 1: - if (backupBound.y + backupBound.height == container.getHeight() - margin.getBottom() + rc.y) { + if (backupBound.y + backupBound.height == container.getHeight() - margin.getBottom() + rc.y) { y += difference; } break; } - bounds.setLocation(x, y); + bounds.setLocation(x, y); xCreator.setBackupBound(backupBound); xCreator.setBounds(bounds); this.fix(xCreator); @@ -412,7 +410,7 @@ public class FRFitLayoutAdapter extends FRBodyLayoutAdapter { // 根据需要依附的位置调整拖拽的坐标值 private int adjustCoordinateByDependingLine(int coordinate, int[] coordinates) { - if (!isEdit) { + if (!isEdit) { for (int i = 0; i < coordinates.length; i++) { if (coordinate == coordinates[i]) { continue; @@ -428,7 +426,7 @@ public class FRFitLayoutAdapter extends FRBodyLayoutAdapter { // 根据需要依附的位置调整拖拽的距离 private int adjustDiffByDependingLine(int coordinate, int[] coordinates, int diff) { - if (!isEdit) { + if (!isEdit) { for (int i = 0; i < coordinates.length; i++) { if (coordinate + diff > coordinates[i] - DEPENDING_SCOPE && coordinate + diff < coordinates[i] + DEPENDING_SCOPE) { diff = coordinates[i] - coordinate; @@ -546,8 +544,8 @@ public class FRFitLayoutAdapter extends FRBodyLayoutAdapter { difference = Math.max(difference, minWidth - getMinWidth(leftComps)); } //重新计算左右两侧组件size、point - if (calculateLefttRelatComponent(difference)) { - calculateRightRelatComponent(objx + difference, -difference); + if (calculateLefttRelatComponent(difference)) { + calculateRightRelatComponent(objx + difference, -difference); } } @@ -662,8 +660,8 @@ public class FRFitLayoutAdapter extends FRBodyLayoutAdapter { difference = Math.max(difference, minHeight - getMinHeight(upComps)); } //重新计算上下两侧组件size、point - if (calculateUpRelatComponent(difference)) { - calculateDownRelatComponent(objY + difference, -difference); + if (calculateUpRelatComponent(difference)) { + calculateDownRelatComponent(objY + difference, -difference); } } @@ -744,13 +742,13 @@ public class FRFitLayoutAdapter extends FRBodyLayoutAdapter { int height = creatorHeight; calculateRelatedComponent(x, y, width, height); if (!rightComps.isEmpty() && getAllHeight(rightComps) == height) { - calculateRightRelatComponent(x, width + actualVal); + calculateRightRelatComponent(x, width + actualVal); } else if (!leftComps.isEmpty() && getAllHeight(leftComps) == height) { - calculateLefttRelatComponent(width + actualVal); + calculateLefttRelatComponent(width + actualVal); } else if (!downComps.isEmpty() && getAllWidth(downComps) == width) { - calculateDownRelatComponent(y, height + actualVal); + calculateDownRelatComponent(y, height + actualVal); } else if (!upComps.isEmpty() && getAllWidth(upComps) == width) { - calculateUpRelatComponent(height + actualVal); + calculateUpRelatComponent(height + actualVal); } else { // 由于布局三等分的存在,可能会出现删除组件时,找不到关联的组件填充,此时特殊处理 calculateNoRelatedComponent(x, y, width, height); @@ -1013,7 +1011,7 @@ public class FRFitLayoutAdapter extends FRBodyLayoutAdapter { setAdjustedSize(tabLayout, offset, isHor); for (int m = 0; m < tabLayout.getComponentCount(); m++) { XCreator childCreator = tabLayout.getXCreator(m); - BoundsWidget wgt = (BoundsWidget) tabLayout.toData().getBoundsWidget(childCreator.toData()); + WAbsoluteLayout.BoundsWidget wgt = (WAbsoluteLayout.BoundsWidget) tabLayout.toData().getBoundsWidget(childCreator.toData()); wgt.setBounds(tabLayout.getComponent(m).getBounds()); } adjustCreatorsSize(percent, tabLayout, isHor); @@ -1056,7 +1054,7 @@ public class FRFitLayoutAdapter extends FRBodyLayoutAdapter { * @param objX 调整后的坐标x * @param objWidth 调整后的宽度 */ - protected void calculateRightRelatComponent(int objX, int objWidth) { + protected void calculateRightRelatComponent(int objX, int objWidth) { int count = rightComps.size(); for (int i = 0; i < count; i++) { XCreator creator = (XCreator) rightComps.get(i); @@ -1096,7 +1094,7 @@ public class FRFitLayoutAdapter extends FRBodyLayoutAdapter { /** * 删除或拉伸控件左边框时 调整左侧的组件位置大小; */ - protected boolean calculateLefttRelatComponent(int objWidth) { + protected boolean calculateLefttRelatComponent(int objWidth) { if (isBeyondAdjustWidthScope(objWidth)) { return false; } @@ -1114,7 +1112,7 @@ public class FRFitLayoutAdapter extends FRBodyLayoutAdapter { /** * 删除或拉伸下边框 调整下方的组件位置大小 */ - protected void calculateDownRelatComponent(int objY, int objHeight) { + protected void calculateDownRelatComponent(int objY, int objHeight) { int count = downComps.size(); for (int i = 0; i < count; i++) { XCreator creator = (XCreator) downComps.get(i); @@ -1154,7 +1152,7 @@ public class FRFitLayoutAdapter extends FRBodyLayoutAdapter { /** * 删除或拉伸上边框 调整上方的组件位置大小 */ - protected boolean calculateUpRelatComponent(int objHeight) { + protected boolean calculateUpRelatComponent(int objHeight) { if (isBeyondAdjustHeightScope(objHeight)) { return false; } diff --git a/designer_form/src/com/fr/design/designer/beans/location/AccessDirection.java b/designer_form/src/com/fr/design/designer/beans/location/AccessDirection.java index c39dfc4dba..3538d2fd9f 100644 --- a/designer_form/src/com/fr/design/designer/beans/location/AccessDirection.java +++ b/designer_form/src/com/fr/design/designer/beans/location/AccessDirection.java @@ -11,6 +11,7 @@ import com.fr.design.mainframe.FormSelection; import com.fr.design.utils.ComponentUtils; import com.fr.form.ui.container.WAbsoluteLayout; import com.fr.form.ui.container.WAbsoluteLayout.BoundsWidget; +import com.fr.form.ui.container.WParameterLayout; import java.awt.*; @@ -24,7 +25,7 @@ public abstract class AccessDirection implements Direction { private int ymin; private int xmin; - abstract int getCursor(); + abstract int getCursor(); protected abstract Rectangle getDraggedBounds(int dx, int dy, Rectangle currentBounds, FormDesigner designer, Rectangle oldBounds); @@ -51,14 +52,14 @@ public abstract class AccessDirection implements Direction { x = designer.getRootComponent().getWidth(); } //参数面板可以无下限拉长 - if (y < 0) { - y = 0; - } else if (y > designer.getRootComponent().getHeight() + designer.getParaHeight() && designer.getSelectionModel().hasSelectionComponent() + if (y < 0) { + y = 0; + } else if (y > designer.getRootComponent().getHeight() + designer.getParaHeight() && designer.getSelectionModel().hasSelectionComponent() && !designer.getSelectionModel().getSelection().getSelectedCreator().acceptType(XWParameterLayout.class)) { - y = designer.getRootComponent().getHeight() + designer.getParaHeight(); - } - return new Point(x, y); - } + y = designer.getRootComponent().getHeight() + designer.getParaHeight(); + } + return new Point(x, y); + } protected void sorptionPoint(Point point, Rectangle currentBounds, FormDesigner designer) { boolean findInX = currentBounds.getWidth() <= MoveUtils.SORPTION_UNIT; @@ -95,10 +96,10 @@ public abstract class AccessDirection implements Direction { findInY = true; } - } - if (findInX && findInY) { - break; - } + } + if (findInX && findInY) { + break; + } } setDesignerStateModelProperties(designer, findInX, findInY, currentBounds, point); @@ -124,7 +125,7 @@ public abstract class AccessDirection implements Direction { } - private WAbsoluteLayout getLayout(final FormDesigner designer) { + private WAbsoluteLayout getLayout(final FormDesigner designer){ XLayoutContainer formLayoutContainer = (XLayoutContainer) XCreatorUtils.createXCreator( designer.getTarget().getContainer()); WAbsoluteLayout layout; @@ -156,52 +157,50 @@ public abstract class AccessDirection implements Direction { return; } //设定控件最小高度21,因每次拖曳至少移动1,防止控件高度等于21时,拖曳导致rec.y的变化使得控件不停的向上或向下移动。 - if (rec.height == MINHEIGHT) { + if(rec.height == MINHEIGHT){ ymin = rec.y; } - if (rec.height == MINHEIGHT - 1) { + if(rec.height == MINHEIGHT - 1){ ymin = ymin == rec.y ? rec.y : rec.y - 1; } - if (rec.height < MINHEIGHT) { + if(rec.height < MINHEIGHT){ rec.height = MINHEIGHT; rec.y = ymin; } // 增加下宽度也设最小为21 if (rec.width == MINWIDTH) { - xmin = rec.x; + xmin = rec.x; } - if (rec.width == MINWIDTH - 1) { - xmin = xmin == rec.x ? rec.x : rec.x - 1; + if(rec.width == MINWIDTH - 1){ + xmin = xmin == rec.x ? rec.x : rec.x - 1; } if (rec.width < MINWIDTH) { - rec.width = MINWIDTH; - rec.x = xmin; + rec.width = MINWIDTH; + rec.x = xmin; } } - /** - * 更新鼠标指针形状 - * - * @param formEditor 设计界面组件 - */ - public void updateCursor(FormDesigner formEditor) { - - // 调用位置枚举的多态方法getCursor获取鼠标形状 - int type = getCursor(); - - if (type != formEditor.getCursor().getType()) { - // 设置当前形状 - formEditor.setCursor(Cursor.getPredefinedCursor(type)); - } - } - - /** - * 生成组件备用的bound - * - * @param formEditor 设计界面组件 - */ - public void backupBounds(FormDesigner formEditor) { - formEditor.getSelectionModel().getSelection().backupBounds(); - } + /** + * 更新鼠标指针形状 + * @param formEditor 设计界面组件 + */ + public void updateCursor(FormDesigner formEditor) { + + // 调用位置枚举的多态方法getCursor获取鼠标形状 + int type = getCursor(); + + if (type != formEditor.getCursor().getType()) { + // 设置当前形状 + formEditor.setCursor(Cursor.getPredefinedCursor(type)); + } + } + + /** + * 生成组件备用的bound + * @param formEditor 设计界面组件 + */ + public void backupBounds(FormDesigner formEditor) { + formEditor.getSelectionModel().getSelection().backupBounds(); + } } \ No newline at end of file diff --git a/designer_form/src/com/fr/design/designer/beans/models/AddingModel.java b/designer_form/src/com/fr/design/designer/beans/models/AddingModel.java index 54033694d9..9d308b9d4b 100644 --- a/designer_form/src/com/fr/design/designer/beans/models/AddingModel.java +++ b/designer_form/src/com/fr/design/designer/beans/models/AddingModel.java @@ -1,141 +1,141 @@ -package com.fr.design.designer.beans.models; - -import java.awt.Rectangle; - -import com.fr.design.designer.creator.XWAbsoluteLayout; -import com.fr.design.mainframe.FormDesigner; -import com.fr.design.designer.beans.AdapterBus; -import com.fr.design.designer.beans.ComponentAdapter; -import com.fr.design.designer.beans.adapters.component.CompositeComponentAdapter; -import com.fr.design.designer.creator.XCreator; -import com.fr.design.designer.creator.XLayoutContainer; -import com.fr.design.designer.creator.XWParameterLayout; -import com.fr.design.utils.ComponentUtils; -import com.fr.general.ComparatorUtils; - -/** - * 添加状态下的model - */ -public class AddingModel { - - // 当前要添加的组件 - private XCreator creator; - // 记录当前鼠标的位置信息 - private int currentX; - private int currentY; - private boolean added; - - public AddingModel(FormDesigner designer, XCreator xCreator) { - String creatorName = getXCreatorName(designer, xCreator); - this.creator = xCreator; - instantiateCreator(designer, creatorName); - // 初始的时候隐藏该组件的图标 - currentY = -this.creator.getWidth(); - currentX = -this.creator.getHeight(); - } - - /** - * 待说明 - * - * @param designer 设计器 - * @param creatorName 组件名 - */ - public void instantiateCreator(FormDesigner designer, String creatorName) { - creator.toData().setWidgetName(creatorName); - ComponentAdapter adapter = new CompositeComponentAdapter(designer, creator); - adapter.initialize(); - creator.addNotify(); - creator.putClientProperty(AdapterBus.CLIENT_PROPERTIES, adapter); - } - - public AddingModel(XCreator xCreator, int x, int y) { - this.creator = xCreator; - this.creator.backupCurrentSize(); - this.creator.backupParent(); - this.creator.setSize(xCreator.initEditorSize()); - currentX = x - (xCreator.getWidth() / 2); - currentY = y - (xCreator.getHeight() / 2); - } - - /** - * 隐藏当前组件的图标 - */ - public void reset() { - currentX = -this.creator.getWidth(); - currentY = -this.creator.getHeight(); - } - - public String getXCreatorName(FormDesigner designer, XCreator x) { - String def = x.createDefaultName(); - if (x.acceptType(XWParameterLayout.class)) { - return def; - } - int i = 0; - while (designer.getTarget().isNameExist(def + i)) { - i++; - } - return def + i; - } - - public int getCurrentX() { - return currentX; - } - - public int getCurrentY() { - return currentY; - } - - - /** - * 移动组件图标到鼠标事件发生的位置 - * - * @param x 坐标 - * @param y 坐标 - */ - public void moveTo(int x, int y) { - currentX = x - (this.creator.getWidth() / 2); - currentY = y - (this.creator.getHeight() / 2); - } - - public XCreator getXCreator() { - return this.creator; - } - - /** - * 当前组件是否已经添加到某个容器中 - * - * @return 是返回true - */ - public boolean isCreatorAdded() { - return added; - } - - /** - * 加入容器 - * - * @param designer 设计器 - * @param container 容器 - * @param x 坐标 - * @param y 坐标 - * @return 成功返回true - */ - public boolean add2Container(FormDesigner designer, XLayoutContainer container, int x, int y) { - //考虑不同布局嵌套的情况,获取顶层容器 - XLayoutContainer xLayoutContainer = container.getTopLayout(); - if (xLayoutContainer != null && xLayoutContainer.acceptType(XWAbsoluteLayout.class)) { - container = xLayoutContainer; - } - - Rectangle rect = ComponentUtils.getRelativeBounds(container); - if (!ComparatorUtils.equals(container.getOuterLayout(), container.getBackupParent())) { - added = container.getLayoutAdapter().addBean(creator, - x + designer.getArea().getHorizontalValue(), - y + designer.getArea().getVerticalValue()); - return added; - } - added = container.getLayoutAdapter().addBean(creator, - x + designer.getArea().getHorizontalValue() - rect.x, - y + designer.getArea().getVerticalValue() - rect.y); - return added; - } +package com.fr.design.designer.beans.models; + +import java.awt.Rectangle; + +import com.fr.design.designer.creator.XWAbsoluteLayout; +import com.fr.design.mainframe.FormDesigner; +import com.fr.design.designer.beans.AdapterBus; +import com.fr.design.designer.beans.ComponentAdapter; +import com.fr.design.designer.beans.adapters.component.CompositeComponentAdapter; +import com.fr.design.designer.creator.XCreator; +import com.fr.design.designer.creator.XLayoutContainer; +import com.fr.design.designer.creator.XWParameterLayout; +import com.fr.design.utils.ComponentUtils; +import com.fr.general.ComparatorUtils; + +/** + * 添加状态下的model + */ +public class AddingModel { + + // 当前要添加的组件 + private XCreator creator; + // 记录当前鼠标的位置信息 + private int currentX; + private int currentY; + private boolean added; + + public AddingModel(FormDesigner designer, XCreator xCreator) { + String creatorName = getXCreatorName(designer, xCreator); + this.creator = xCreator; + instantiateCreator(designer, creatorName); + // 初始的时候隐藏该组件的图标 + currentY = -this.creator.getWidth(); + currentX = -this.creator.getHeight(); + } + + /** + * 待说明 + * + * @param designer 设计器 + * @param creatorName 组件名 + */ + public void instantiateCreator(FormDesigner designer, String creatorName) { + creator.toData().setWidgetName(creatorName); + ComponentAdapter adapter = new CompositeComponentAdapter(designer, creator); + adapter.initialize(); + creator.addNotify(); + creator.putClientProperty(AdapterBus.CLIENT_PROPERTIES, adapter); + } + + public AddingModel(XCreator xCreator, int x, int y) { + this.creator = xCreator; + this.creator.backupCurrentSize(); + this.creator.backupParent(); + this.creator.setSize(xCreator.initEditorSize()); + currentX = x - (xCreator.getWidth() / 2); + currentY = y - (xCreator.getHeight() / 2); + } + + /** + * 隐藏当前组件的图标 + */ + public void reset() { + currentX = -this.creator.getWidth(); + currentY = -this.creator.getHeight(); + } + + public String getXCreatorName(FormDesigner designer, XCreator x) { + String def = x.createDefaultName(); + if (x.acceptType(XWParameterLayout.class)) { + return def; + } + int i = 0; + while (designer.getTarget().isNameExist(def + i)) { + i++; + } + return def + i; + } + + public int getCurrentX() { + return currentX; + } + + public int getCurrentY() { + return currentY; + } + + + /** + * 移动组件图标到鼠标事件发生的位置 + * + * @param x 坐标 + * @param y 坐标 + */ + public void moveTo(int x, int y) { + currentX = x - (this.creator.getWidth() / 2); + currentY = y - (this.creator.getHeight() / 2); + } + + public XCreator getXCreator() { + return this.creator; + } + + /** + * 当前组件是否已经添加到某个容器中 + * + * @return 是返回true + */ + public boolean isCreatorAdded() { + return added; + } + + /** + * 加入容器 + * + * @param designer 设计器 + * @param container 容器 + * @param x 坐标 + * @param y 坐标 + * @return 成功返回true + */ + public boolean add2Container(FormDesigner designer, XLayoutContainer container, int x, int y) { + //考虑不同布局嵌套的情况,获取顶层容器 + XLayoutContainer xLayoutContainer = container.getTopLayout(); + if (xLayoutContainer != null && xLayoutContainer.acceptType(XWAbsoluteLayout.class)) { + container = xLayoutContainer; + } + + Rectangle rect = ComponentUtils.getRelativeBounds(container); + if (!ComparatorUtils.equals(container.getOuterLayout(), container.getBackupParent())) { + added = container.getLayoutAdapter().addBean(creator, + x + designer.getArea().getHorizontalValue(), + y + designer.getArea().getVerticalValue()); + return added; + } + added = container.getLayoutAdapter().addBean(creator, + x + designer.getArea().getHorizontalValue() - rect.x, + y + designer.getArea().getVerticalValue() - rect.y); + return added; + } } \ No newline at end of file diff --git a/designer_form/src/com/fr/design/designer/beans/models/StateModel.java b/designer_form/src/com/fr/design/designer/beans/models/StateModel.java index f3aeb8f901..ff3fcbedcd 100644 --- a/designer_form/src/com/fr/design/designer/beans/models/StateModel.java +++ b/designer_form/src/com/fr/design/designer/beans/models/StateModel.java @@ -1,476 +1,476 @@ -package com.fr.design.designer.beans.models; - -import com.fr.design.beans.location.Absorptionline; -import com.fr.design.designer.beans.AdapterBus; -import com.fr.design.designer.beans.HoverPainter; -import com.fr.design.designer.beans.LayoutAdapter; -import com.fr.design.designer.beans.events.DesignerEvent; -import com.fr.design.designer.beans.location.Direction; -import com.fr.design.designer.beans.location.Location; -import com.fr.design.designer.creator.*; -import com.fr.design.mainframe.FormDesigner; -import com.fr.design.mainframe.FormSelectionUtils; -import com.fr.design.utils.ComponentUtils; - -import java.awt.*; -import java.awt.event.MouseEvent; -import java.util.ArrayList; - -/** - * 普通模式下的状态model - */ -public class StateModel { - // 对应的selection model - - private SelectionModel selectionModel; - // 当前鼠标进入拖拽区域的位置类型 - private Direction driection; - - // 当前拖拽的起始位置 - private int currentX; - private int currentY; - - //拖拽组件原始位置大小备份 - private Rectangle selectedPositionBackup; - - private Point startPoint = new Point(); - private Point currentPoint = new Point(); - - private Absorptionline lineInX; - private Absorptionline lineInY; - //等距线 - private Absorptionline lineEquidistant; - - // 当前是否处于拖拽选择状态 - private boolean selecting; - private boolean dragging; - - private boolean addable; - - private FormDesigner designer; - - public StateModel(FormDesigner designer) { - this.designer = designer; - selectionModel = designer.getSelectionModel(); - } - - /** - * 返回direction - * - * @return direction方向 - */ - public Direction getDirection() { - return driection; - } - - /** - * 是否有组件正被选中 - * - * @return true 如果至少一个组件被选中 - */ - public boolean isSelecting() { - return selecting; - } - - /** - * 是否能拖拽 - * - * @return 非outer且选中为空 - */ - public boolean dragable() { - return ((driection != Location.outer) && !selecting); - } - - /** - * 拖拽中是否可以转换为添加模式: - * 如果拖拽组件只有一个,鼠标当前所在位置的最底层表单容器与这个组件的容器不同; - * 如果拖拽组件为多个,鼠标当前所在位置的最底层表单容器除了要求要跟这些组件的容器不同外,还必须是绝对定位布局 - */ - private void checkAddable(MouseEvent e) { - addable = false; - designer.setPainter(null); - - if (driection != Location.inner) { - return; - } - - XCreator comp = designer.getComponentAt(e.getX(), e.getY(), selectionModel.getSelection().getSelectedCreators()); - XLayoutContainer container = XCreatorUtils.getHotspotContainer(comp); - XCreator creator = selectionModel.getSelection().getSelectedCreator(); - Component creatorContainer = XCreatorUtils.getParentXLayoutContainer(creator); - if (creatorContainer != null && creatorContainer != container - && (selectionModel.getSelection().size() == 1 || container instanceof XWAbsoluteLayout)) { - HoverPainter painter = AdapterBus.getContainerPainter(designer, container); - designer.setPainter(painter); - if (painter != null) { - Rectangle rect = ComponentUtils.getRelativeBounds(container); - rect.x -= designer.getArea().getHorizontalValue(); - rect.y -= designer.getArea().getVerticalValue(); - painter.setRenderingBounds(rect); - painter.setHotspot(new Point(e.getX(), e.getY())); - painter.setCreator(creator); - } - addable = true; - } - } - - /** - * @param container 容器 - * @param mouseX 鼠标释放位置X - * @param mouseY 鼠标释放位置Y - * @return 是否成功 - */ - private boolean addBean(XLayoutContainer container, int mouseX, int mouseY) { - LayoutAdapter adapter = container.getLayoutAdapter(); - Rectangle rectangleContainer = ComponentUtils.getRelativeBounds(container); - if (selectionModel.getSelection().size() == 1) { - return adapter.addBean(selectionModel.getSelection().getSelectedCreator(), - mouseX + designer.getArea().getHorizontalValue() - rectangleContainer.x, - mouseY + designer.getArea().getVerticalValue() - rectangleContainer.y); - } - for (XCreator creator : selectionModel.getSelection().getSelectedCreators()) { - adapter.addBean(creator, - mouseX + designer.getArea().getHorizontalValue() - rectangleContainer.x, - mouseY + designer.getArea().getVerticalValue() - rectangleContainer.y); - } - return true; - } - - /** - * @param mouseReleasedX 鼠标释放位置X - * @param mouseReleasedY 鼠标释放位置Y - */ - private void adding(int mouseReleasedX, int mouseReleasedY) { - // 当前鼠标所在的组件 - XCreator hoveredComponent = designer.getComponentAt(mouseReleasedX, mouseReleasedY, selectionModel.getSelection().getSelectedCreators()); - - // 获取该组件所在的焦点容器 - XLayoutContainer container = XCreatorUtils.getHotspotContainer(hoveredComponent); - - boolean success = false; - - if (container != null) { - // 如果是容器,则调用其acceptComponent接受组件 - success = addBean(container, mouseReleasedX, mouseReleasedY); - } - - if (success) { - FormSelectionUtils.rebuildSelection(designer); - designer.getEditListenerTable().fireCreatorModified( - selectionModel.getSelection().getSelectedCreator(), DesignerEvent.CREATOR_ADDED); - } else { - selectionModel.getSelection().setSelectionBounds(selectedPositionBackup, designer); - Toolkit.getDefaultToolkit().beep(); - } - // 取消提示 - designer.setPainter(null); - } - - /** - * 是否拖拽 - * - * @return dragging状态 - */ - public boolean isDragging() { - return dragging; - } - - /** - * 是否可以开始画线 - * - * @return startPoint不为空返回true - */ - public boolean prepareForDrawLining() { - return startPoint != null; - } - - /** - * 设置开始位置 - * - * @param p point位置 - */ - public void setStartPoint(Point p) { - this.startPoint = p; - } - - /** - * 返回开始位置 - * - * @return 点位置 - */ - public Point getStartPoint() { - return startPoint; - } - - /** - * 返回当前点位置 - * - * @return 点位置 - */ - public Point getEndPoint() { - return currentPoint; - } - - /** - * 当前选中组件 - * - * @param e 鼠标事件 - */ - public void startSelecting(MouseEvent e) { - selecting = true; - selectionModel.setHotspotBounds(new Rectangle()); - currentX = getMouseXY(e).x; - currentY = getMouseXY(e).y; - } - - /** - * 当前鼠标的xy - * - * @param e 鼠标事件 - */ - public void startResizing(MouseEvent e) { - if (!selectionModel.getSelection().isEmpty()) { - driection.backupBounds(designer); - } - currentX = getMouseXY(e).x; - currentY = getMouseXY(e).y; - } - - /** - * 起始点开始DrawLine - * - * @param p 点位置 - */ - public void startDrawLine(Point p) { - this.startPoint = p; - if (p != null) { - try { - designer.setCursor(XConnector.connectorCursor); - } catch (Exception e) { - } - } else { - designer.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR)); - } - } - - /** - * 鼠标释放时所在的区域及圈中的组件 - * - * @param e 鼠标事件 - */ - public void selectCreators(MouseEvent e) { - int x = getMouseXY(e).x; - int y = getMouseXY(e).y; - - Rectangle bounds = createCurrentBounds(x, y); - - if ((x != currentX) || (y != currentY)) { - selectionModel.setSelectedCreators(getHotspotCreators(bounds, designer.getRootComponent())); - } - selectionModel.setHotspotBounds(null); - } - - /** - * 画所在区域线 - * - * @param e 鼠标事件 - */ - public void drawLine(MouseEvent e) { - designer.getDrawLineHelper().setDrawLine(true); - Point p = designer.getDrawLineHelper().getNearWidgetPoint(e); - if (p != null) { - currentPoint = p; - } else { - currentPoint.x = e.getX() + designer.getArea().getHorizontalValue(); - currentPoint.y = e.getY() + designer.getArea().getVerticalValue(); - } - } - - private Rectangle createCurrentBounds(int x, int y) { - Rectangle bounds = new Rectangle(); - - bounds.x = Math.min(x, currentX); - bounds.y = Math.min(y, currentY); - bounds.width = Math.max(x, currentX) - bounds.x; - bounds.height = Math.max(y, currentY) - bounds.y; - - return bounds; - } - - private ArrayList getHotspotCreators(Rectangle selection, XCreator root) { - ArrayList creators = new ArrayList<>(); - - if (!root.isVisible() && !designer.isRoot(root)) { - return creators; - } - - if (root instanceof XLayoutContainer) { - XLayoutContainer container = (XLayoutContainer) root; - int count = container.getXCreatorCount(); - Rectangle clipped = new Rectangle(selection); - - for (int i = count - 1; i >= 0; i--) { - XCreator child = container.getXCreator(i); - - if (selection.contains(child.getBounds())) { - creators.add(child); - } else { - clipped.x = selection.x - child.getX(); - clipped.y = selection.y - child.getY(); - creators.addAll(getHotspotCreators(clipped, child)); - } - } - } - - return creators; - } - - - /** - * 重置model - */ - public void resetModel() { - dragging = false; - selecting = false; - } - - /** - * 重置 - */ - public void reset() { - driection = Location.outer; - dragging = false; - selecting = false; - } - - /** - * 取消拖拽 - */ - public void draggingCancel() { - designer.repaint(); - reset(); - } - - /** - * 设置可拉伸方向 - * - * @param dir 拉伸方向 - */ - public void setDirection(Direction dir) { - if (driection != dir) { - this.driection = dir; - driection.updateCursor(designer); - } - } - - /** - * x吸附线赋值 - * - * @param line 线 - */ - public void setXAbsorptionline(Absorptionline line) { - this.lineInX = line; - } - - /** - * y吸附线赋值 - * - * @param line 线 - */ - public void setYAbsorptionline(Absorptionline line) { - this.lineInY = line; - } - - /** - * 等距线赋值 - * - * @param line 线 - */ - public void setEquidistantLine(Absorptionline line) { - this.lineEquidistant = line; - } - - /** - * 画吸附线 - * - * @param g Graphics类 - */ - public void paintAbsorptionline(Graphics g) { - if (lineInX != null) { - lineInX.paint(g, designer.getArea()); - } - if (lineInY != null) { - lineInY.paint(g, designer.getArea()); - } - if (lineEquidistant != null) { - lineEquidistant.paint(g, designer.getArea()); - } - } - - /** - * 拖拽 - * - * @param e 鼠标事件 - */ - public void dragging(MouseEvent e) { - //进入dragging状态时备份组件大小和位置 - if (!dragging) { - selectedPositionBackup = selectionModel.getSelection().getRelativeBounds(); - } - checkAddable(e); - setDependLinePainter(e); - driection.drag(getMouseXY(e).x - currentX, getMouseXY(e).y - currentY, designer); - this.dragging = true; - } - - // 拖拽时画依附线用到的painter - private void setDependLinePainter(MouseEvent e) { - XCreator comp = designer.getComponentAt(e.getX(), e.getY(), selectionModel.getSelection().getSelectedCreators()); - XLayoutContainer container = XCreatorUtils.getHotspotContainer(comp); - XCreator creator = selectionModel.getSelection().getSelectedCreator(); - HoverPainter painter = AdapterBus.getContainerPainter(designer, container); - designer.setPainter(painter); - if (painter != null) { - painter.setHotspot(new Point(e.getX(), e.getY())); - painter.setCreator(creator); - } - } - - /** - * 释放捕获 - * - * @param e 鼠标事件 - */ - public void releaseDragging(MouseEvent e) { - this.dragging = false; - if (addable) { - adding(e.getX(), e.getY()); - } else if (!selectionModel.getSelection().isEmpty()) { - selectionModel.releaseDragging(); - } - designer.repaint(); - } - - /** - * 改变选择区域 - * - * @param e 鼠标事件 - */ - public void changeSelection(MouseEvent e) { - Rectangle bounds = createCurrentBounds(getMouseXY(e).x, getMouseXY(e).y); - selectionModel.setHotspotBounds(bounds); - } - - /** - * 返回鼠标所在的x、y 考虑滚动条的值 - * - * @param e 鼠标事件 - * @return xy值 - */ - public Point getMouseXY(MouseEvent e) { - Point p1 = new Point(e.getX() + designer.getArea().getHorizontalValue(), e.getY() - + designer.getArea().getVerticalValue()); - return p1; - } - +package com.fr.design.designer.beans.models; + +import com.fr.design.beans.location.Absorptionline; +import com.fr.design.designer.beans.AdapterBus; +import com.fr.design.designer.beans.HoverPainter; +import com.fr.design.designer.beans.LayoutAdapter; +import com.fr.design.designer.beans.events.DesignerEvent; +import com.fr.design.designer.beans.location.Direction; +import com.fr.design.designer.beans.location.Location; +import com.fr.design.designer.creator.*; +import com.fr.design.mainframe.FormDesigner; +import com.fr.design.mainframe.FormSelectionUtils; +import com.fr.design.utils.ComponentUtils; + +import java.awt.*; +import java.awt.event.MouseEvent; +import java.util.ArrayList; + +/** + * 普通模式下的状态model + */ +public class StateModel { + // 对应的selection model + + private SelectionModel selectionModel; + // 当前鼠标进入拖拽区域的位置类型 + private Direction driection; + + // 当前拖拽的起始位置 + private int currentX; + private int currentY; + + //拖拽组件原始位置大小备份 + private Rectangle selectedPositionBackup; + + private Point startPoint = new Point(); + private Point currentPoint = new Point(); + + private Absorptionline lineInX; + private Absorptionline lineInY; + //等距线 + private Absorptionline lineEquidistant; + + // 当前是否处于拖拽选择状态 + private boolean selecting; + private boolean dragging; + + private boolean addable; + + private FormDesigner designer; + + public StateModel(FormDesigner designer) { + this.designer = designer; + selectionModel = designer.getSelectionModel(); + } + + /** + * 返回direction + * + * @return direction方向 + */ + public Direction getDirection() { + return driection; + } + + /** + * 是否有组件正被选中 + * + * @return true 如果至少一个组件被选中 + */ + public boolean isSelecting() { + return selecting; + } + + /** + * 是否能拖拽 + * + * @return 非outer且选中为空 + */ + public boolean dragable() { + return ((driection != Location.outer) && !selecting); + } + + /** + * 拖拽中是否可以转换为添加模式: + * 如果拖拽组件只有一个,鼠标当前所在位置的最底层表单容器与这个组件的容器不同; + * 如果拖拽组件为多个,鼠标当前所在位置的最底层表单容器除了要求要跟这些组件的容器不同外,还必须是绝对定位布局 + */ + private void checkAddable(MouseEvent e) { + addable = false; + designer.setPainter(null); + + if (driection != Location.inner) { + return; + } + + XCreator comp = designer.getComponentAt(e.getX(), e.getY(), selectionModel.getSelection().getSelectedCreators()); + XLayoutContainer container = XCreatorUtils.getHotspotContainer(comp); + XCreator creator = selectionModel.getSelection().getSelectedCreator(); + Component creatorContainer = XCreatorUtils.getParentXLayoutContainer(creator); + if (creatorContainer != null && creatorContainer != container + && (selectionModel.getSelection().size() == 1 || container instanceof XWAbsoluteLayout)) { + HoverPainter painter = AdapterBus.getContainerPainter(designer, container); + designer.setPainter(painter); + if (painter != null) { + Rectangle rect = ComponentUtils.getRelativeBounds(container); + rect.x -= designer.getArea().getHorizontalValue(); + rect.y -= designer.getArea().getVerticalValue(); + painter.setRenderingBounds(rect); + painter.setHotspot(new Point(e.getX(), e.getY())); + painter.setCreator(creator); + } + addable = true; + } + } + + /** + * @param container 容器 + * @param mouseX 鼠标释放位置X + * @param mouseY 鼠标释放位置Y + * @return 是否成功 + */ + private boolean addBean(XLayoutContainer container, int mouseX, int mouseY) { + LayoutAdapter adapter = container.getLayoutAdapter(); + Rectangle rectangleContainer = ComponentUtils.getRelativeBounds(container); + if (selectionModel.getSelection().size() == 1) { + return adapter.addBean(selectionModel.getSelection().getSelectedCreator(), + mouseX + designer.getArea().getHorizontalValue() - rectangleContainer.x, + mouseY + designer.getArea().getVerticalValue() - rectangleContainer.y); + } + for (XCreator creator : selectionModel.getSelection().getSelectedCreators()) { + adapter.addBean(creator, + mouseX + designer.getArea().getHorizontalValue() - rectangleContainer.x, + mouseY + designer.getArea().getVerticalValue() - rectangleContainer.y); + } + return true; + } + + /** + * @param mouseReleasedX 鼠标释放位置X + * @param mouseReleasedY 鼠标释放位置Y + */ + private void adding(int mouseReleasedX, int mouseReleasedY) { + // 当前鼠标所在的组件 + XCreator hoveredComponent = designer.getComponentAt(mouseReleasedX, mouseReleasedY, selectionModel.getSelection().getSelectedCreators()); + + // 获取该组件所在的焦点容器 + XLayoutContainer container = XCreatorUtils.getHotspotContainer(hoveredComponent); + + boolean success = false; + + if (container != null) { + // 如果是容器,则调用其acceptComponent接受组件 + success = addBean(container, mouseReleasedX, mouseReleasedY); + } + + if (success) { + FormSelectionUtils.rebuildSelection(designer); + designer.getEditListenerTable().fireCreatorModified( + selectionModel.getSelection().getSelectedCreator(), DesignerEvent.CREATOR_ADDED); + } else { + selectionModel.getSelection().setSelectionBounds(selectedPositionBackup, designer); + Toolkit.getDefaultToolkit().beep(); + } + // 取消提示 + designer.setPainter(null); + } + + /** + * 是否拖拽 + * + * @return dragging状态 + */ + public boolean isDragging() { + return dragging; + } + + /** + * 是否可以开始画线 + * + * @return startPoint不为空返回true + */ + public boolean prepareForDrawLining() { + return startPoint != null; + } + + /** + * 设置开始位置 + * + * @param p point位置 + */ + public void setStartPoint(Point p) { + this.startPoint = p; + } + + /** + * 返回开始位置 + * + * @return 点位置 + */ + public Point getStartPoint() { + return startPoint; + } + + /** + * 返回当前点位置 + * + * @return 点位置 + */ + public Point getEndPoint() { + return currentPoint; + } + + /** + * 当前选中组件 + * + * @param e 鼠标事件 + */ + public void startSelecting(MouseEvent e) { + selecting = true; + selectionModel.setHotspotBounds(new Rectangle()); + currentX = getMouseXY(e).x; + currentY = getMouseXY(e).y; + } + + /** + * 当前鼠标的xy + * + * @param e 鼠标事件 + */ + public void startResizing(MouseEvent e) { + if (!selectionModel.getSelection().isEmpty()) { + driection.backupBounds(designer); + } + currentX = getMouseXY(e).x; + currentY = getMouseXY(e).y; + } + + /** + * 起始点开始DrawLine + * + * @param p 点位置 + */ + public void startDrawLine(Point p) { + this.startPoint = p; + if (p != null) { + try { + designer.setCursor(XConnector.connectorCursor); + } catch (Exception e) { + } + } else { + designer.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR)); + } + } + + /** + * 鼠标释放时所在的区域及圈中的组件 + * + * @param e 鼠标事件 + */ + public void selectCreators(MouseEvent e) { + int x = getMouseXY(e).x; + int y = getMouseXY(e).y; + + Rectangle bounds = createCurrentBounds(x, y); + + if ((x != currentX) || (y != currentY)) { + selectionModel.setSelectedCreators(getHotspotCreators(bounds, designer.getRootComponent())); + } + selectionModel.setHotspotBounds(null); + } + + /** + * 画所在区域线 + * + * @param e 鼠标事件 + */ + public void drawLine(MouseEvent e) { + designer.getDrawLineHelper().setDrawLine(true); + Point p = designer.getDrawLineHelper().getNearWidgetPoint(e); + if (p != null) { + currentPoint = p; + } else { + currentPoint.x = e.getX() + designer.getArea().getHorizontalValue(); + currentPoint.y = e.getY() + designer.getArea().getVerticalValue(); + } + } + + private Rectangle createCurrentBounds(int x, int y) { + Rectangle bounds = new Rectangle(); + + bounds.x = Math.min(x, currentX); + bounds.y = Math.min(y, currentY); + bounds.width = Math.max(x, currentX) - bounds.x; + bounds.height = Math.max(y, currentY) - bounds.y; + + return bounds; + } + + private ArrayList getHotspotCreators(Rectangle selection, XCreator root) { + ArrayList creators = new ArrayList<>(); + + if (!root.isVisible() && !designer.isRoot(root)) { + return creators; + } + + if (root instanceof XLayoutContainer) { + XLayoutContainer container = (XLayoutContainer) root; + int count = container.getXCreatorCount(); + Rectangle clipped = new Rectangle(selection); + + for (int i = count - 1; i >= 0; i--) { + XCreator child = container.getXCreator(i); + + if (selection.contains(child.getBounds())) { + creators.add(child); + } else { + clipped.x = selection.x - child.getX(); + clipped.y = selection.y - child.getY(); + creators.addAll(getHotspotCreators(clipped, child)); + } + } + } + + return creators; + } + + + /** + * 重置model + */ + public void resetModel() { + dragging = false; + selecting = false; + } + + /** + * 重置 + */ + public void reset() { + driection = Location.outer; + dragging = false; + selecting = false; + } + + /** + * 取消拖拽 + */ + public void draggingCancel() { + designer.repaint(); + reset(); + } + + /** + * 设置可拉伸方向 + * + * @param dir 拉伸方向 + */ + public void setDirection(Direction dir) { + if (driection != dir) { + this.driection = dir; + driection.updateCursor(designer); + } + } + + /** + * x吸附线赋值 + * + * @param line 线 + */ + public void setXAbsorptionline(Absorptionline line) { + this.lineInX = line; + } + + /** + * y吸附线赋值 + * + * @param line 线 + */ + public void setYAbsorptionline(Absorptionline line) { + this.lineInY = line; + } + + /** + * 等距线赋值 + * + * @param line 线 + */ + public void setEquidistantLine(Absorptionline line) { + this.lineEquidistant = line; + } + + /** + * 画吸附线 + * + * @param g Graphics类 + */ + public void paintAbsorptionline(Graphics g) { + if (lineInX != null) { + lineInX.paint(g, designer.getArea()); + } + if (lineInY != null) { + lineInY.paint(g, designer.getArea()); + } + if (lineEquidistant != null) { + lineEquidistant.paint(g, designer.getArea()); + } + } + + /** + * 拖拽 + * + * @param e 鼠标事件 + */ + public void dragging(MouseEvent e) { + //进入dragging状态时备份组件大小和位置 + if (!dragging) { + selectedPositionBackup = selectionModel.getSelection().getRelativeBounds(); + } + checkAddable(e); + setDependLinePainter(e); + driection.drag(getMouseXY(e).x - currentX, getMouseXY(e).y - currentY, designer); + this.dragging = true; + } + + // 拖拽时画依附线用到的painter + private void setDependLinePainter(MouseEvent e) { + XCreator comp = designer.getComponentAt(e.getX(), e.getY(), selectionModel.getSelection().getSelectedCreators()); + XLayoutContainer container = XCreatorUtils.getHotspotContainer(comp); + XCreator creator = selectionModel.getSelection().getSelectedCreator(); + HoverPainter painter = AdapterBus.getContainerPainter(designer, container); + designer.setPainter(painter); + if (painter != null) { + painter.setHotspot(new Point(e.getX(), e.getY())); + painter.setCreator(creator); + } + } + + /** + * 释放捕获 + * + * @param e 鼠标事件 + */ + public void releaseDragging(MouseEvent e) { + this.dragging = false; + if (addable) { + adding(e.getX(), e.getY()); + } else if (!selectionModel.getSelection().isEmpty()) { + selectionModel.releaseDragging(); + } + designer.repaint(); + } + + /** + * 改变选择区域 + * + * @param e 鼠标事件 + */ + public void changeSelection(MouseEvent e) { + Rectangle bounds = createCurrentBounds(getMouseXY(e).x, getMouseXY(e).y); + selectionModel.setHotspotBounds(bounds); + } + + /** + * 返回鼠标所在的x、y 考虑滚动条的值 + * + * @param e 鼠标事件 + * @return xy值 + */ + public Point getMouseXY(MouseEvent e) { + Point p1 = new Point(e.getX() + designer.getArea().getHorizontalValue(), e.getY() + + designer.getArea().getVerticalValue()); + return p1; + } + } \ No newline at end of file diff --git a/designer_form/src/com/fr/design/designer/beans/painters/AbstractPainter.java b/designer_form/src/com/fr/design/designer/beans/painters/AbstractPainter.java index cb5c6a4a0a..fca5197aee 100644 --- a/designer_form/src/com/fr/design/designer/beans/painters/AbstractPainter.java +++ b/designer_form/src/com/fr/design/designer/beans/painters/AbstractPainter.java @@ -1,96 +1,96 @@ -package com.fr.design.designer.beans.painters; - -import java.awt.Color; -import java.awt.Graphics; -import java.awt.Graphics2D; -import java.awt.Point; -import java.awt.Rectangle; -import java.awt.Stroke; - -import com.fr.design.designer.beans.HoverPainter; -import com.fr.design.designer.creator.XCreator; -import com.fr.design.designer.creator.XLayoutContainer; -import com.fr.design.form.util.XCreatorConstants; -import com.fr.general.Inter; - -public abstract class AbstractPainter implements HoverPainter { - - protected Point hotspot; - protected Rectangle hotspot_bounds; - protected XLayoutContainer container; - protected XCreator creator; - - /** - * 构造函数 - * - * @param container 容器 - */ - public AbstractPainter(XLayoutContainer container) { - this.container = container; - } - - @Override - public void setHotspot(Point p) { - hotspot = p; - } - - /** - * 画初始区域 - * - * @param g 画图类 - * @param startX 起始x位置 - * @param startY 起始y位置 - */ - public void paint(Graphics g, int startX, int startY) { - if (hotspot_bounds != null) { - drawHotspot(g, hotspot_bounds.x, hotspot_bounds.y, hotspot_bounds.width, hotspot_bounds.height, Color.lightGray, true, false); - } - } - - /** - * 设置边界 - * - * @param rect 位置 - */ - @Override - public void setRenderingBounds(Rectangle rect) { - hotspot_bounds = rect; - } - - @Override - public void setCreator(XCreator component) { - this.creator = component; - } - - protected void drawHotspot(Graphics g, int x, int y, int width, int height, boolean accept) { - Color bColor = accept ? XCreatorConstants.LAYOUT_HOTSPOT_COLOR : XCreatorConstants.LAYOUT_FORBIDDEN_COLOR; - drawHotspot(g, x, y, width, height, bColor, accept, false); - } - - /** - * 自适应布局那边渲染提示,要画整个背景,不是画边框 - */ - protected void drawRegionBackground(Graphics g, int x, int y, int width, int height, Color bColor, boolean accept) { - drawHotspot(g, x, y, width, height, bColor, accept, true); - } - - protected void drawHotspot(Graphics g, int x, int y, int width, int height, Color bColor, boolean accept, boolean drawBackground) { - Graphics2D g2d = (Graphics2D) g; - Color color = g2d.getColor(); - Stroke backup = g2d.getStroke(); - // 设置线条的样式 - g2d.setStroke(XCreatorConstants.STROKE); - g2d.setColor(bColor); - if (!accept) { - g2d.drawString(Inter.getLocText("Cannot-Add_To_This_Area") + "!", x + width / 3, y + height / 2); - } else if (drawBackground) { - g2d.fillRect(x, y, width, height); - } else { - g2d.drawRect(x, y, width, height); - } - g2d.setStroke(backup); - g2d.setColor(color); - } - - +package com.fr.design.designer.beans.painters; + +import java.awt.Color; +import java.awt.Graphics; +import java.awt.Graphics2D; +import java.awt.Point; +import java.awt.Rectangle; +import java.awt.Stroke; + +import com.fr.design.designer.beans.HoverPainter; +import com.fr.design.designer.creator.XCreator; +import com.fr.design.designer.creator.XLayoutContainer; +import com.fr.design.form.util.XCreatorConstants; +import com.fr.general.Inter; + +public abstract class AbstractPainter implements HoverPainter { + + protected Point hotspot; + protected Rectangle hotspot_bounds; + protected XLayoutContainer container; + protected XCreator creator; + + /** + * 构造函数 + * + * @param container 容器 + */ + public AbstractPainter(XLayoutContainer container) { + this.container = container; + } + + @Override + public void setHotspot(Point p) { + hotspot = p; + } + + /** + * 画初始区域 + * + * @param g 画图类 + * @param startX 起始x位置 + * @param startY 起始y位置 + */ + public void paint(Graphics g, int startX, int startY) { + if (hotspot_bounds != null) { + drawHotspot(g, hotspot_bounds.x, hotspot_bounds.y, hotspot_bounds.width, hotspot_bounds.height, Color.lightGray, true, false); + } + } + + /** + * 设置边界 + * + * @param rect 位置 + */ + @Override + public void setRenderingBounds(Rectangle rect) { + hotspot_bounds = rect; + } + + @Override + public void setCreator(XCreator component) { + this.creator = component; + } + + protected void drawHotspot(Graphics g, int x, int y, int width, int height, boolean accept) { + Color bColor = accept ? XCreatorConstants.LAYOUT_HOTSPOT_COLOR : XCreatorConstants.LAYOUT_FORBIDDEN_COLOR; + drawHotspot(g, x, y, width, height, bColor, accept, false); + } + + /** + * 自适应布局那边渲染提示,要画整个背景,不是画边框 + */ + protected void drawRegionBackground(Graphics g, int x, int y, int width, int height, Color bColor, boolean accept) { + drawHotspot(g, x, y, width, height, bColor, accept, true); + } + + protected void drawHotspot(Graphics g, int x, int y, int width, int height, Color bColor, boolean accept, boolean drawBackground) { + Graphics2D g2d = (Graphics2D) g; + Color color = g2d.getColor(); + Stroke backup = g2d.getStroke(); + // 设置线条的样式 + g2d.setStroke(XCreatorConstants.STROKE); + g2d.setColor(bColor); + if (!accept) { + g2d.drawString(Inter.getLocText("Cannot-Add_To_This_Area") + "!", x + width / 3, y + height / 2); + } else if (drawBackground) { + g2d.fillRect(x, y, width, height); + } else { + g2d.drawRect(x, y, width, height); + } + g2d.setStroke(backup); + g2d.setColor(color); + } + + } \ No newline at end of file diff --git a/designer_form/src/com/fr/design/mainframe/FormSelectionUtils.java b/designer_form/src/com/fr/design/mainframe/FormSelectionUtils.java index 7a03782c25..90945b1e80 100644 --- a/designer_form/src/com/fr/design/mainframe/FormSelectionUtils.java +++ b/designer_form/src/com/fr/design/mainframe/FormSelectionUtils.java @@ -133,10 +133,8 @@ public class FormSelectionUtils { boolean xOut = x < 0 || x + copiedCreator.getWidth() / 2 + xoffset > container.getWidth(); boolean yOut = y < 0 || y + copiedCreator.getHeight() / 2 + yoffset > container.getHeight(); - boolean isEdge = (x - DELAY_X_Y == container.getWidth() - copiedCreator.getWidth() / 2 - xoffset) - && (y - DELAY_X_Y == container.getHeight() - copiedCreator.getHeight() / 2 - yoffset); - y = yOut ? container.getHeight() - copiedCreator.getHeight() / 2 - yoffset : y; + boolean isEdge = (x - DELAY_X_Y == container.getWidth() - copiedCreator.getWidth() / 2 - xoffset); if (xOut) { if (isEdge) { //向左偏移 From 487e1b17c31dec3809a4581d75b439a0043c1774 Mon Sep 17 00:00:00 2001 From: neil Date: Tue, 2 May 2017 14:31:35 +0800 Subject: [PATCH 57/72] ct --- .../com/fr/design/locale/designer.properties | 20 +- .../design/locale/designer_en_US.properties | 20 +- .../design/locale/designer_ja_JP.properties | 365 ++++++++---------- .../design/locale/designer_ko_KR.properties | 49 +-- .../design/locale/designer_zh_CN.properties | 18 +- .../design/locale/designer_zh_TW.properties | 50 +-- .../com/fr/design/mainframe/JTemplate.java | 105 +++-- .../templateinfo/TemplateInfoCollector.java | 14 + .../fr/design/chart/axis/MinMaxValuePane.java | 50 +-- 9 files changed, 309 insertions(+), 382 deletions(-) diff --git a/designer_base/src/com/fr/design/locale/designer.properties b/designer_base/src/com/fr/design/locale/designer.properties index ada13b4600..cc75cee8ac 100644 --- a/designer_base/src/com/fr/design/locale/designer.properties +++ b/designer_base/src/com/fr/design/locale/designer.properties @@ -91,7 +91,6 @@ FR-Designer_DS-Dictionary= FR-Designer_Data-confusion= FR-Designer_Data_Type= FR-Designer_Double_Click_Edit_OR_Clear= -FR-Designer_Edit_Button_ToolBar= FR-Designer_Email= FR-Designer_Enabled= FR-Designer_End-Date= @@ -163,7 +162,6 @@ FR-Designer_Refresh_Parameter_In_SQL= FR-Designer_Reg_Expressions= FR-Designer_Reg_Max_Length= FR-Designer_Reg_Min_Length= -FR-Designer_Remove_Button_ToolBar= FR-Designer_ReportColumns-Columns= FR-Designer_Return-Date= FR-Designer_RichText= @@ -544,7 +542,7 @@ FR-Designer_Left_Display=Left FR-Designer_About_Version=Version FR-Designer_About_CopyRight=Copy Right FR-Designer_Service_Phone=Service Phone -FR-Designer_Allow_Null=Allow Null +FR-Designer_Allow_Null=Allow null FR-Designer_PageSetup_Page=Page FR-Designer_Custom_Job_Description=Description FR-Designer_Property=Property @@ -590,15 +588,15 @@ FR-Designer-Move_Tab_First=move to first FR-Designer-Move_Tab_End=move to end FR-Designer-Move_Tab_Next=move to next FR-Designer-Move_Tab_Prev=move to previous + +FR-Designer_Too_Large_To_Paste=too large to paste +FR-Designer_Too_Small_To_Paste=Too small to paste + FR-Designer_AxisReversed=AxisValue FR-Designer_Logarithmic=Logarithmic FR-Designer_Chart_Log_Base=Log Base FR-Designer_Chart_F_Radar_Axis=Chart_F_Radar_Axis -FR-Designer_Too_Large_To_Paste=too large to paste -FR-Designer_Too_Small_To_Paste=Too small to paste -FR-Designer_Validate= -FR-Designer_Get-CubeGetting cube= -FR-Designer_Get-CubeGetting= -FR-Designer_Fit= -FR-Designer_Properties_Mobile= -FR-Designer_Oracle= +FR-Designer_Style=Style +FR-Designer_Color=Color +FR-Designer_Border=Border +FR-Designer_Background-Pattern=Pattern diff --git a/designer_base/src/com/fr/design/locale/designer_en_US.properties b/designer_base/src/com/fr/design/locale/designer_en_US.properties index 6f7aff98f9..1c646aebeb 100644 --- a/designer_base/src/com/fr/design/locale/designer_en_US.properties +++ b/designer_base/src/com/fr/design/locale/designer_en_US.properties @@ -91,7 +91,6 @@ 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_Edit_Button_ToolBar=Edit Button ToolBar FR-Designer_Email=Mail FR-Designer_Enabled=Enabled FR-Designer_End-Date=End Date @@ -164,7 +163,6 @@ 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_Remove_Button_ToolBar=Remove Button ToolBar FR-Designer_ReportColumns-Columns=Multi-columns/lines FR-Designer_Return-Date=Return Date FR-Designer_RichText=Insert Rich Text @@ -544,7 +542,7 @@ FR-Designer_Left_Display=Left FR-Designer_About_Version=Version FR-Designer_About_CopyRight=Copy Right FR-Designer_Service_Phone=Service Phone -FR-Designer_Allow_Null=Allow Null +FR-Designer_Allow_Null=Allow null FR-Designer_PageSetup_Page=Page FR-Designer_Custom_Job_Description=Description FR-Designer_Property=Property @@ -590,14 +588,16 @@ FR-Designer-Move_Tab_First=move to first FR-Designer-Move_Tab_End=move to end FR-Designer-Move_Tab_Next=move to next FR-Designer-Move_Tab_Prev=move to previous + +FR-Designer_Too_Large_To_Paste=Too large to paste! +FR-Designer_Too_Small_To_Paste=Too small to paste! + FR-Designer_AxisReversed=Axis in reverse order FR-Designer_Logarithmic=Log scale FR-Designer_Chart_Log_Base=Log Base FR-Designer_Chart_F_Radar_Axis=Value Axis -FR-Designer_Too_Large_To_Paste=Too large to paste! -FR-Designer_Too_Small_To_Paste=Too small to paste! -FR-Designer_SimpleCross_Report= -FR-Designer_Get-Cube= -FR-Designer_DoubleLayer_Report= -FR-Designer_Get-CubeGetting= -FR-Designer_SimpleDetail_Report= +FR-Designer_Style=Style +FR-Designer_Color=Color +FR-Designer_Border=Border +FR-Designer_Background-Pattern=Pattern + diff --git a/designer_base/src/com/fr/design/locale/designer_ja_JP.properties b/designer_base/src/com/fr/design/locale/designer_ja_JP.properties index ee6cc00271..2f4affb916 100644 --- a/designer_base/src/com/fr/design/locale/designer_ja_JP.properties +++ b/designer_base/src/com/fr/design/locale/designer_ja_JP.properties @@ -1,202 +1,200 @@ # generated time: \u661F\u671F\u56DB \u5341\u4E00\u6708 24 12:02:51 CST 2016 -FR-Designer-BBSLogin_Account=\u30E6\u30FC\u30B6\u30FCID -FR-Designer-BBSLogin_Connection-Failure=\u30CD\u30C3\u30C8\u63A5\u7D9A\u5931\u6557\u3001\u30CD\u30C3\u30C8\u72B6\u614B\u3054\u78BA\u8A8D\u4E0B\u3055\u3044 +FR-Designer-BBSLogin_Account=\u30E6\u30FC\u30B6\u30FC\u540D +FR-Designer-BBSLogin_Connection-Failure=\u30CD\u30C3\u30C8\u30EF\u30FC\u30AF\u63A5\u7D9A\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u3002\u73FE\u5728\u306E\u30CD\u30C3\u30C8\u30EF\u30FC\u30AF\u72B6\u614B\u3092\u691C\u67FB\u3057\u3066\u304F\u3060\u3055\u3044 FR-Designer-BBSLogin_Connection-Failure-Tip=\u30D2\u30F3\u30C8 -FR-Designer-BBSLogin_Forgot-Password=\u30D1\u30B9\u30EF\u30FC\u30C9\u5FD8\u308C\u305F +FR-Designer-BBSLogin_Forgot-Password=\u30D1\u30B9\u30EF\u30FC\u30C9\u3092\u5FD8\u308C\u305F FR-Designer-BBSLogin_Login=\u30ED\u30B0\u30A4\u30F3 -FR-Designer-BBSLogin_Login-Failure-Tip=\u30E6\u30FC\u30B6\u30FCID\u3084\u30D1\u30B9\u30EF\u30FC\u30C9\u30A8\u30E9\u30FC\u3001\u518D\u30ED\u30B0\u30A4\u30F3\u4E0B\u3055\u3044 +FR-Designer-BBSLogin_Login-Failure-Tip=\u30E6\u30FC\u30B6\u30FC\u540D\u307E\u305F\u306F\u30D1\u30B9\u30EF\u30FC\u30C9\u30A8\u30E9\u30FC\u3067\u3059\u3002\u518D\u5EA6\u30ED\u30B0\u30A4\u30F3\u3057\u3066\u304F\u3060\u3055\u3044 FR-Designer-BBSLogin_Password=\u30D1\u30B9\u30EF\u30FC\u30C9 -FR-Designer-BBSLogin_Password-Empty-Tip=\u30D1\u30B9\u30EF\u30FC\u30C9\u306F\u7A7A\u6B04\u306B\u3067\u304D\u307E\u305B\u3093 +FR-Designer-BBSLogin_Password-Empty-Tip=\u30D1\u30B9\u30EF\u30FC\u30C9\u306F\u7A7A\u6B04\u306B\u3059\u308B\u3053\u3068\u304C\u3067\u304D\u307E\u305B\u3093 FR-Designer-BBSLogin_Register-Account=\u30A2\u30AB\u30A6\u30F3\u30C8\u767B\u9332 -FR-Designer-BBSLogin_Switch-Account=\u30A2\u30AB\u30A6\u30F3\u30C8\u3092\u5207\u308A\u66FF\u3048 -FR-Designer-BBSLogin_Privite-Message=\u500B\u4EBA\u30E1\u30C3\u30BB\u30FC\u30B8 -FR-Designer-BBSLogin_Times=\u56DE -FR-Designer-BBSLogin_Username-Empty-Tip=\u30E6\u30FC\u30B6\u30FCID\u306F\u7A7A\u306B\u3067\u304D\u307E\u305B\u3093 -FR-Designer-Basic_More_Color=\u305D\u306E\u4ED6\uFF08\u8272\uFF09 -FR-Designer-Estate_Any=\u5236\u9650\u306A\u3057 +FR-Designer-BBSLogin_Switch-Account=\u30A2\u30AB\u30A6\u30F3\u30C8\u5207\u308A\u66FF\u3048 +FR-Designer-BBSLogin_Privite-Message=\u30D7\u30E9\u30A4\u30D9\u30FC\u30C8\u30E1\u30C3\u30BB\u30FC\u30B8 +FR-Designer-BBSLogin_Times=\u6B21 +FR-Designer-BBSLogin_Username-Empty-Tip=\u30E6\u30FC\u30B6\u30FC\u540D\u306F\u7A7A\u6B04\u306B\u3059\u308B\u3053\u3068\u304C\u3067\u304D\u307E\u305B\u3093 +FR-Designer-Basic_More_Color=\u3082\u3063\u3068\u8272 +FR-Designer-Estate_Any=\u4E0D\u9650 FR-Designer-Estate_Default_Font=\u30C7\u30D5\u30A9\u30EB\u30C8\u30D5\u30A9\u30F3\u30C8 -FR-Designer-Estate_Default_Null=\u30C7\u30D5\u30A9\u30EB\u30C8\u306F\u7A7A +FR-Designer-Estate_Default_Null=\u30C7\u30D5\u30A9\u30EB\u30C8\u3092\u7A7A\u6B04\u306B\u3059\u308B FR-Designer-Estate_Default_Text=\u30C7\u30D5\u30A9\u30EB\u30C8\u5024 -FR-Designer-Estate_Parameter_Null_Text=\u30D1\u30E9\u30E1\u30FC\u30BF\u304C\u7A7A\u306B\u306A\u308B\u6642\u306E\u8868\u793A\u306F -FR-Designer-Estate_Radio-Group=\u4E0D\u52D5\u7523\u696D\u6C4E\u7528\u30E9\u30B8\u30AA\u30DC\u30BF\u30F3\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8 -FR-Designer-Estate_Selected_Font=\u30D5\u30A9\u30F3\u30C8\u3092\u9078\u629E -FR-Designer-Estate_Widget_Value=\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u5024 -FR-Designer-Layout_Adaptive_Layout=\u81EA\u5DF1\u8ABF\u6574\u30EC\u30A4\u30A2\u30A6\u30C8 +FR-Designer-Estate_Parameter_Null_Text=\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC\u3092\u7A7A\u6B04\u306B\u3057\u8868\u793A\u3059\u308B +FR-Designer-Estate_Radio-Group=\u4E0D\u52D5\u7523\u696D\u901A\u7528\u30DC\u30BF\u30F3\u30BB\u30C3\u30C8\u30B3\u30F3\u30C8\u30ED\u30FC\u30EB +FR-Designer-Estate_Selected_Font=\u9078\u629E\u3057\u305F\u30D5\u30A9\u30F3\u30C8 +FR-Designer-Estate_Widget_Value=\u30B3\u30F3\u30C8\u30ED\u30FC\u30EB\u5024 +FR-Designer-Layout_Adaptive_Layout=\u81EA\u9069\u5FDC\u914D\u7F6E FR-Designer-Output_Background_Set=\u80CC\u666F\u8A2D\u5B9A FR-Designer-Output_Default_Background=\u30C7\u30D5\u30A9\u30EB\u30C8\u80CC\u666F -FR-Designer-Output_Excel_Page=Excel\u51FA\u529B(\u30DA\u30FC\u30B8\u5225) -FR-Designer-Output_Excel_Sheet=Excel\u51FA\u529B(\u30DA\u30FC\u30B8\u5225\u30B7\u30FC\u30C8\u5225) -FR-Designer-Output_Excel_Simple=Excel\u51FA\u529B(\u5143\u306E\u307E\u307E) -FR-Designer-Plugin_PluginMarket_Coding=\u30D7\u30E9\u30B0\u30A4\u30F3\u30B9\u30C8\u30A2\u958B\u767A\u4E2D\u3001\u304A\u5F85\u3061\u4E0B\u3055\u3044 -FR-Desinger-Plugin_Updater_UpdateAndUpgrade=\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8\u30A2\u30C3\u30D7\u30B0\u30EC\u30FC\u30C8 -FR-Desinger-Plugin_Updater_Checking_Jar_Update=Jar\u30D5\u30A1\u30A4\u30EB\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8\u691C\u8A3C\u4E2D -FR-Desinger-Plugin_Updater_Checking_Version_Update=\u30D1\u30FC\u30B8\u30E7\u30F3\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8\u691C\u8A3C\u4E2D -FR-Desinger-Plugin_Updater_Update=\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8 -FR-Desinger-Plugin_Updater_Upgrade=\u30A2\u30C3\u30D7\u30B0\u30EC\u30FC\u30C9 -FR-Desinger-Plugin_Updater_Restore=\u30EA\u30AB\u30D0\u30EA -FR-Desinger-Plugin_Updater_New_Version_Available=\u65B0\u3057\u3044\u30D0\u30FC\u30B8\u30E7\u30F3\u304C\u3042\u308A\u307E\u3059 -FR-Desinger-Plugin_Updater_JarUpdate=Jar\u30D5\u30A1\u30A4\u30EB\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8 -FR-Desinger-Plugin_Updater_VersionUpgrade=\u30D0\u30FC\u30B8\u30E7\u30F3\u30A2\u30C3\u30D7\u30B0\u30EC\u30FC\u30C8 -FR-Desinger-Plugin_Updater_Previous_Version=\u4EE5\u524D\u306E\u30D0\u30FC\u30B8\u30E7\u30F3\u3078? -FR-Desinger-Plugin_Updater_Current_Version=\u73FE\u5728\u306E\u30D0\u30FC\u30B8\u30E7\u30F3\uFF1A -FR-Desinger-Plugin_Updater_Not_Install_Version=\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u7528\u30D0\u30FC\u30B8\u30E7\u30F3\u3067\u306F\u3042\u308A\u307E\u305B\u3093 +FR-Designer-Output_Excel_Page=Excel\u30A2\u30A6\u30C8\u30D7\u30C3\u30C8(\u30DA\u30FC\u30B8\u5225\u30A2\u30A6\u30C8\u30D7\u30C3\u30C8) +FR-Designer-Output_Excel_Sheet=Excel\u30A2\u30A6\u30C8\u30D7\u30C3\u30C8(\u30DA\u30FC\u30B8\u5225\u30B7\u30FC\u30C8\u5225\u30A2\u30A6\u30C8\u30D7\u30C3\u30C8) +FR-Designer-Output_Excel_Simple=Excel\u30A2\u30A6\u30C8\u30D7\u30C3\u30C8(\u5143\u306E\u307E\u307E\u30A2\u30A6\u30C8\u30D7\u30C3\u30C8) +FR-Designer-Plugin_PluginMarket_Coding=\u30D7\u30E9\u30B0\u30A4\u30F3\u30DE\u30FC\u30B1\u30C3\u30C8\u306F\u958B\u767A\u4E2D\u3067\u3059\u3002\u3054\u671F\u5F85\u304F\u3060\u3055\u3044 +FR-Desinger-Plugin_Updater_UpdateAndUpgrade=\u66F4\u65B0\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8 +FR-Desinger-Plugin_Updater_Checking_Jar_Update=Jar\u30D1\u30C3\u30B1\u30FC\u30B8\u30C1\u30A7\u30C3\u30AF\u66F4\u65B0\u4E2D +FR-Desinger-Plugin_Updater_Checking_Version_Update=\u30D0\u30FC\u30B8\u30E7\u30F3\u30C1\u30A7\u30C3\u30AF\u66F4\u65B0\u4E2D +FR-Desinger-Plugin_Updater_Update=\u66F4\u65B0 +FR-Desinger-Plugin_Updater_Upgrade=\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8 +FR-Desinger-Plugin_Updater_Restore=\u5FA9\u5143 +FR-Desinger-Plugin_Updater_New_Version_Available=\u65B0\u30D0\u30FC\u30B8\u30E7\u30F3\u6709\u308A +FR-Desinger-Plugin_Updater_JarUpdate=Jar\u30D1\u30C3\u30B1\u30FC\u30B8\u66F4\u65B0 +FR-Desinger-Plugin_Updater_VersionUpgrade=\u30D0\u30FC\u30B8\u30E7\u30F3\u30A2\u30C3\u30D7 +FR-Desinger-Plugin_Updater_Previous_Version=\u65E7\u30D0\u30FC\u30B8\u30E7\u30F3\u307E\u3067\u306B +FR-Desinger-Plugin_Updater_Current_Version=\u73FE\u30D0\u30FC\u30B8\u30E7\u30F3 +FR-Desinger-Plugin_Updater_Not_Install_Version=\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u30D0\u30FC\u30B8\u30E7\u30F3\u3067\u306F\u306A\u3044 FR-Desinger-Plugin_Updater_Latest_Version=\u6700\u65B0\u30D0\u30FC\u30B8\u30E7\u30F3 -FR-Desinger-Plugin_Updater_Jar_Downloading=Jar\u30D5\u30A1\u30A4\u30EB\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9\u7D42\u4E86\u3092\u5F85\u3063\u3066\u3044\u308B -FR-Desinger-Plugin_Updater_Version_Downloading=\u30A2\u30C3\u30D7\u30B0\u30EC\u30FC\u30C8\u30D1\u30C3\u30B1\u30FC\u30B8\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9\u3092\u5F85\u3063\u3066\u3044\u308B -FR-Desinger-Plugin_Updater_Restart_Designer=\u30C7\u30B6\u30A4\u30CA\u30FC\u3092\u518D\u8D77\u52D5 -FR-Desinger-Plugin_Updater_Connect_VersionUpdateServer_Failed=\u30D0\u30FC\u30B8\u30E7\u30F3\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8\u30B5\u30FC\u30D0\u306B\u63A5\u7D9A\u3067\u304D\u306A\u3044 -FR-Desinger-Plugin_Updater_Connect_VersionUpgradeServer_Failed=\u30D0\u30FC\u30B8\u30E7\u30F3\u30A2\u30C3\u30D7\u30B0\u30EC\u30FC\u30C8\u30B5\u30FC\u30D0\u306B\u63A5\u7D9A\u3067\u304D\u306A\u3044 -FR-Desinger-Plugin_Updater_Already_Latest_Version=\u6700\u65B0\u30D0\u30FC\u30B8\u30E7\u30F3\u306B\u306A\u308A\u307E\u3057\u305F -FR-Desinger-Plugin_Updater_Backup_OldJar_To=\u53E4\u3044Jar\u30D5\u30A1\u30A4\u30EB\u3092\u4E0B\u8A18\u306B\u30D0\u30C3\u30AF\u30A2\u30C3\u30D7\u3057\u307E\u3057\u305F\uFF1A -FR-Desinger-Plugin_Updater_Backup_OldVersion_To=\u53E4\u3044\u30D0\u30FC\u30B8\u30E7\u30F3\u3092\u4E0B\u8A18\u306B\u30D0\u30C3\u30AF\u30A2\u30C3\u30D7\u3057\u307E\u3057\u305F\uFF1A -FR-Desinger-Plugin_Updater_Please_Restart=\u3001\u30C7\u30B6\u30A4\u30CA\u30FC\u3092\u518D\u8D77\u52D5\u3057\u3066\u4E0B\u3055\u3044 -FR-Desinger-Plugin_Updater_Jar_Restore=Jar\u30D5\u30A1\u30A4\u30EB\u30EA\u30AB\u30D0\u30EA -FR-Desinger-Plugin_Updater_Version_Restore=\u30D0\u30FC\u30B8\u30E7\u30F3\u30EA\u30AB\u30D0\u30EA -FR-Desinger-Plugin_Updater_Restore_To=\u30EA\u30AB\u30D0\u30EA -FR-Desinger-Plugin_Updater_WorksAfterRestart=\u30D0\u30FC\u30B8\u30E7\u30F3\u3001\u518D\u8D77\u52D5\u5F8C\u6709\u52B9\u306B\u306A\u308A\u307E\u3059 +FR-Desinger-Plugin_Updater_Jar_Downloading=Jar\u30D1\u30C3\u30B1\u30FC\u30B8\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9\u5B8C\u6210\u5F85\u3061 +FR-Desinger-Plugin_Updater_Version_Downloading=\u30D0\u30FC\u30B8\u30E7\u30F3\u30A2\u30C3\u30D7\u30D1\u30C3\u30B1\u30FC\u30B8\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9\u5B8C\u6210\u5F85\u3061 +FR-Desinger-Plugin_Updater_Restart_Designer=\u30C7\u30B6\u30A4\u30CA\u30FC\u518D\u8D77\u52D5 +FR-Desinger-Plugin_Updater_Connect_VersionUpdateServer_Failed=\u30D0\u30FC\u30B8\u30E7\u30F3\u66F4\u65B0\u30B5\u30FC\u30D0\u30FC\u63A5\u7D9A\u3067\u304D\u306A\u3044 +FR-Desinger-Plugin_Updater_Connect_VersionUpgradeServer_Failed=\u30D0\u30FC\u30B8\u30E7\u30F3\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8\u30B5\u30FC\u30D0\u30FC\u63A5\u7D9A\u3067\u304D\u306A\u3044 +FR-Desinger-Plugin_Updater_Already_Latest_Version=\u65E2\u306B\u6700\u65B0\u30D0\u30FC\u30B8\u30E7\u30F3 +FR-Desinger-Plugin_Updater_Backup_OldJar_To=\u65E7Jar\u30D1\u30C3\u30B1\u30FC\u30B8\u306F\u65E2\u306B\u30D0\u30C3\u30AF\u30A2\u30C3\u30D7 +FR-Desinger-Plugin_Updater_Backup_OldVersion_To=\u65E7\u30D0\u30FC\u30B8\u30E7\u30F3\u30D1\u30C3\u30B1\u30FC\u30B8\u306F\u65E2\u306B\u30D0\u30C3\u30AF\u30A2\u30C3\u30D7 +FR-Desinger-Plugin_Updater_Please_Restart=\u30C7\u30B6\u30A4\u30CA\u30FC\u306F\u518D\u8D77\u52D5\u3057\u3066\u304F\u3060\u3055\u3044 +FR-Desinger-Plugin_Updater_Jar_Restore=\u65E7Jar\u30D1\u30C3\u30B1\u30FC\u30B8\u5FA9\u5143 +FR-Desinger-Plugin_Updater_Version_Restore=\u30D0\u30FC\u30B8\u30E7\u30F3\u5FA9\u5143 +FR-Desinger-Plugin_Updater_Restore_To=\u5FA9\u5143 +FR-Desinger-Plugin_Updater_WorksAfterRestart=\u30D0\u30FC\u30B8\u30E7\u30F3\u306F\u518D\u8D77\u52D5\u5F8C\u306B\u6709\u52B9\u3059\u308B FR-Designer-Submit_Condition=\u6761\u4EF6 -FR-Designer-Widget-Title_border=\u67A0 +FR-Designer-Widget-Title_border=\u30D5\u30EC\u30FC\u30E0 FR-Designer-Widget-Title_border_color=\u8272 FR-Designer_AbsoluteLayout=\u7D76\u5BFE\u30EC\u30A4\u30A2\u30A6\u30C8 -FR-Designer_Allow_Decimals=\u5C0F\u6570\u306E\u8A31\u53EF -FR-Designer_Allow_Negative=\u8CA0\u5024\u306E\u8A31\u53EF -FR-Designer_Background-Click=\u30DE\u30A6\u30B9\u30AF\u30EA\u30C3\u30AF\u6642\u80CC\u666F +FR-Designer_Allow_Decimals=\u5C0F\u6570\u3092\u8A31\u53EF +FR-Designer_Allow_Negative=\u30DE\u30A4\u30CA\u30B9\u5024\u3092\u8A31\u53EF +FR-Designer_Background-Click=\u30DE\u30A6\u30B9\u30AF\u30EA\u30C3\u30AF\u80CC\u666F FR-Designer_Background-Initial=\u521D\u671F\u80CC\u666F -FR-Designer_Background-Over=\u30DE\u30A6\u30B9\u30AA\u30FC\u30D0\u30FC\u6642\u80CC\u666F -FR-Designer_Bar-Code-Exception-Tip=\u30C7\u30FC\u30BF\u306F\u7A7A\u306B\u3067\u304D\u307E\u305B\u3093 -FR-Designer_Block-intersect=\u30D6\u30ED\u30C3\u30AF\u3068\u30D6\u30EB\u30C3\u30AF\u9593\u306E\u91CD\u306A\u308A\u7981\u6B62 +FR-Designer_Background-Over=\u30DE\u30A6\u30B9\u30D5\u30ED\u30FC\u30C8\u80CC\u666F +FR-Designer_Bar-Code-Exception-Tip=\u30C7\u30FC\u30BF\u306F\u7A7A\u6B04\u306B\u3059\u308B\u3053\u3068\u304C\u3067\u304D\u307E\u305B\u3093 +FR-Designer_Block-intersect=\u30E2\u30B8\u30E5\u30FC\u30EB\u3068\u30E2\u30B8\u30E5\u30FC\u30EB\u9593\u3092\u91CD\u306D\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093 FR-Designer_BorderLayout=\u30DC\u30FC\u30C0\u30FC\u30EC\u30A4\u30A2\u30A6\u30C8 FR-Designer_Button-Hotkeys=\u30B7\u30E7\u30FC\u30C8\u30AB\u30C3\u30C8\u30AD\u30FC FR-Designer_Button-Icon=\u30DC\u30BF\u30F3\u30A2\u30A4\u30B3\u30F3 -FR-Designer_Button-Name=\u30DC\u30BF\u30F3\u540D +FR-Designer_Button-Name=\u30DC\u30BF\u30F3\u540D\u79F0 FR-Designer_Button-Type=\u30DC\u30BF\u30F3\u30BF\u30A4\u30D7 -FR-Designer_CardLayout=Tab\u30EC\u30A4\u30A2\u30A6\u30C8 +FR-Designer_CardLayout=Tab\u914D\u7F6E FR-Designer_Cell=\u30BB\u30EB -FR-Designer_Chart_Cell=\u30B0\u30E9\u30D5\u30CF\u30A4\u30D1\u30FC\u30EA\u30F3\u30AF-\u30BB\u30EB\u9023\u52D5 -FR-Designer_Chart_Float=\u30B0\u30E9\u30D5\u30CF\u30A4\u30D1\u30FC\u30EA\u30F3\u30AF-\u30D5\u30ED\u30FC\u30C6\u30A3\u30F3\u30B0\u8981\u7D20\u9023\u52D5 -FR-Designer_Chart_Float_chart=\u30B0\u30E9\u30D5\u30CF\u30A4\u30D1\u30FC\u30EA\u30F3\u30AF-\u30D5\u30ED\u30FC\u30C6\u30A3\u30F3\u30B0\u30A6\u30A3\u30F3\u30C9\u30A6\u30B0\u30E9\u30D5 -FR-Designer_Check-for-Updates=\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8\u3092\u78BA\u8A8D -FR-Designer_Choose-Data-Confusion-Tip=\ \u6DF7\u4E71\u3055\u305B\u308B\u3079\u304D\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u9078\u629E\u3057\u3066\u30D7\u30EC\u30D3\u30E5\u30FC\u4E0B\u3055\u3044 -FR-Designer_Close=\u9589\u3058\u308B +FR-Designer_Chart_Cell=\u30B0\u30E9\u30D5\u30CF\u30A4\u30D1\u30FC\u30EA\u30F3\u30AF-\u9023\u52D5\u30BB\u30EB +FR-Designer_Chart_Float=\u30B0\u30E9\u30D5\u30CF\u30A4\u30D1\u30FC\u30EA\u30F3\u30AF-\u9023\u52D5\u30D5\u30ED\u30FC\u8981\u7D20 +FR-Designer_Chart_Float_chart=\u30B0\u30E9\u30D5\u30CF\u30A4\u30D1\u30FC\u30EA\u30F3\u30AF-\u30D5\u30ED\u30FC\u7A93\u30B0\u30E9\u30D5 +FR-Designer_Check-for-Updates=\u66F4\u65B0\u3092\u78BA\u8A8D +FR-Designer_Choose-Data-Confusion-Tip=\ \u6DF7\u4EA4\u3059\u308B\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u9078\u629E\u5F8C\u30D7\u30EC\u30D3\u30E5\u30FC\u3057\u3066\u304F\u3060\u3055\u3044 +FR-Designer_Close=\u30AF\u30ED\u30FC\u30BA FR-Designer_Column=\u5217 -FR-Designer_Column_Measure=\u5217\u8EF8/\u30E1\u30C8\u30EA\u30C3\u30AF +FR-Designer_Column_Measure=\u5217\u8EF8/\u5EA6\u91CF\u5024 FR-Designer_Condition_Attributes=\u6761\u4EF6\u5C5E\u6027 -FR-Designer_Confusion-Col-Name=\u30D5\u30A3\u30FC\u30EB\u30C9\u540D -FR-Designer_Confusion-key=\u30AD\u30FC\u30EF\u30FC\u30C9\u3092\u6DF7\u4E71\u3055\u305B\u308B -FR-Designer_Currency_Line=\u6841\u533A\u5207\u308A\u7DDA -FR-Designer_Current_tab=tab\u7DE8\u96C6\u4E2D -FR-Designer_Custom=\u30AB\u30B9\u30BF\u30E0 -FR-Designer_Custom-Angle=\u30AB\u30B9\u30BF\u30E0\u89D2\u5EA6 -FR-Designer_DS-Dictionary=\u30C7\u30FC\u30BF\u8F9E\u66F8 -FR-Designer_Data-confusion=\u30C7\u30FC\u30BF\u6DF7\u4E71 +FR-Designer_Confusion-Col-Name=\u30D5\u30A3\u30FC\u30EB\u30C9\u540D\u79F0 +FR-Designer_Confusion-key=\u6DF7\u4EA4\u3059\u308B\u30AD\u30FC\u30EF\u30FC\u30C9 +FR-Designer_Currency_Line=\u91D1\u984D\u7DDA +FR-Designer_Current_tab=\u73FE\u5728\u306E\u7DE8\u96C6tab +FR-Designer_Custom=\u30AB\u30B9\u30BF\u30DE\u30A4\u30BA +FR-Designer_Custom-Angle=\u30AB\u30B9\u30BF\u30DE\u30A4\u30BA\u89D2\u5EA6 +FR-Designer_DS-Dictionary=\u30C7\u30FC\u30BF\u5B57\u5178 +FR-Designer_Data-confusion=\u30C7\u30FC\u30BF\u6DF7\u4EA4 FR-Designer_Data_Type=\u30C7\u30FC\u30BF\u30BF\u30A4\u30D7 -FR-Designer_Double_Click_Edit_OR_Clear=\u30C0\u30D6\u30EB\u30AF\u30EA\u30C3\u30AF\u3057\u3066\u7DE8\u96C6\u3084\u30AF\u30EA\u30A2\u3092\u884C\u3046 -FR-Designer_Edit_Button_ToolBar=\u30DC\u30BF\u30F3\u306E\u30C4\u30FC\u30EB\u30D0\u30FC\u3092\u7DE8\u96C6 -FR-Designer_Email=E\u30E1\u30FC\u30EB +FR-Designer_Double_Click_Edit_OR_Clear=\u30C0\u30D6\u30EB\u30AF\u30EA\u30C3\u30AF\u3057\u3066\u7DE8\u96C6\u307E\u305F\u306F\u30AF\u30EA\u30A2\u3059\u308B +FR-Designer_Email=\u30E1\u30FC\u30EB FR-Designer_Enabled=\u4F7F\u7528\u53EF\u80FD -FR-Designer_End-Date=\u7D42\u4E86\u65E5 -FR-Designer_ExportAndOutput=\u30A8\u30AF\u30B9\u30DD\u30FC\u30C8 +FR-Designer_End-Date=\u7D42\u4E86\u65E5\u671F +FR-Designer_ExportAndOutput=\u30A2\u30A6\u30C8\u30D7\u30C3\u30C8 FR-Designer_FRFont=\u30D5\u30A9\u30F3\u30C8 -FR-Designer_FS_Close_Other_Templates=\u4ED6\u306E\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u3092\u9589\u3058\u308B +FR-Designer_FS_Close_Other_Templates=\u305D\u306E\u4ED6\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u3092\u9589\u3058\u308B FR-Designer_File=\u30D5\u30A1\u30A4\u30EB -FR-Designer_Filter_Conditions=\u30D5\u30A3\u30EB\u30BF\u6761\u4EF6 -FR-Designer_Finish-Modify-Share=\u4FEE\u6B63\u3092\u7D42\u4E86\u3055\u305B\u3066\u5171\u6709 -FR-Designer_Fit-App=\u30A2\u30D7\u30EA\u81EA\u5DF1\u8ABF\u6574 -FR-Designer_Fit=\u81EA\u5DF1\u8ABF\u6574 -FR-Designer_Font-Family=\u30D5\u30A9\u30F3\u30C8\u540D -FR-Designer_Font-Size=\u30D5\u30A9\u30F3\u30C8\u30B5\u30A4\u30BA -FR-Designer_Forbid_Drag_into_Adapt_Pane=\u5F53\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u3092\u30C0\u30C3\u30B7\u30E5\u30DC\u30FC\u30C9\u4E3B\u4F53\u306B\u30C9\u30E9\u30C3\u30B0\u3057\u3066\u306F\u306A\u3089\u306A\u3044 -FR-Designer_Forbid_Drag_into_Para_Pane=\u5F53\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u3092\u30D1\u30E9\u30E1\u30FC\u30BF\u30D1\u30CD\u30EB\u306B\u30C9\u30E9\u30C3\u30B0\u3067\u304D\u307E\u305B\u3093 +FR-Designer_Filter_Conditions=\u9078\u5225\u6761\u4EF6 +FR-Designer_Finish-Modify-Share=\u4FEE\u6B63\u3092\u5B8C\u4E86\u3057\u3066\u30B7\u30A7\u30A2 +FR-Designer_Fit-App=App\u81EA\u9069\u5FDC +FR-Designer_Fit=\u81EA\u9069\u5FDC +FR-Designer_Font-Family=\u30D5\u30A9\u30F3\u30C8\u540D\u79F0 +FR-Designer_Font-Size=\u30D5\u30A9\u30F3\u30C8\u5927\u5C0F +FR-Designer_Forbid_Drag_into_Adapt_Pane=\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u306F\u30D5\u30A9\u30FC\u30E0\u672C\u6587\u3092\u30C9\u30E9\u30C3\u30B0\u3059\u308B\u3053\u3068\u306F\u8A31\u3055\u308C\u306A\u3044 +FR-Designer_Forbid_Drag_into_Para_Pane=\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u306F\u3001\u30D1\u30E9\u30E1\u30FC\u30BF\u30D1\u30CD\u30EB\u306B\u30C9\u30E9\u30C3\u30B0\u3059\u308B\u3053\u3068\u304C\u3067\u304D\u307E\u305B\u3093 FR-Designer_Foreground=\u8272 -FR-Designer_Form-AuthorityEdited_Cannot_be_Supported=\u30C0\u30C3\u30B7\u30E5\u30DC\u30FC\u30C9\u6A29\u9650\u7DE8\u96C6\u306F\u73FE\u6642\u70B9\u3067\u306F\u30B5\u30DD\u30FC\u30C8\u3057\u3066\u3044\u307E\u305B\u3093 -FR-Designer_Form-Report=\u5E33\u7968\u30D6\u30ED\u30C3\u30AF -FR-Designer_Form_EmbeddedTD=\u30C0\u30C3\u30B7\u30E5\u30DC\u30FC\u30C9(\u7D44\u307F\u8FBC\u307F\u30C7\u30FC\u30BF) -FR-Designer_Form_Module=\u30C0\u30C3\u30B7\u30E5\u30DC\u30FC\u30C9\u30E2\u30B8\u30E5\u30FC\u30EB +FR-Designer_Form-AuthorityEdited_Cannot_be_Supported=\u8868\u306E\u6A29\u9650\u7DE8\u96C6\u306B\u30B5\u30DD\u30FC\u30C8\u3057\u3066\u3044\u307E\u305B\u3093 +FR-Designer_Form-Report=\u5E33\u7968\u30E2\u30B8\u30E5\u30FC\u30EB +FR-Designer_Form_EmbeddedTD=\u8868(\u5185\u8535\u30C7\u30FC\u30BF) +FR-Designer_Form_Module=\u8868\u30E2\u30B8\u30E5\u30FC\u30EB FR-Designer_Format_explan=\u66F8\u5F0F\u8AAC\u660E -FR-Designer_Formula=\u6570\u5F0F -FR-Designer_Forum=\u30D5\u30A9\u30FC\u30E9\u30E0 +FR-Designer_Formula=\u516C\u5F0F +FR-Designer_Forum=BBS FR-Designer_Get-Cube=cube\u53D6\u5F97\u4E2D FR-Designer_Help=\u30D8\u30EB\u30D7 -FR-Designer_Hide=\u975E\u8868\u793A -FR-Designer_Hyperlink=\u30CF\u30A4\u30D1\u30FC\u30EA\u30F3\u30AF -FR-Designer_Hyperlink-Form_link=\u73FE\u5728\u306E\u30C0\u30C3\u30B7\u30E5\u30DC\u30FC\u30C9\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8 +FR-Designer_Hide=\u96A0\u3059 +FR-Designer_Hyperlink=\u30B9\u30FC\u30D1\u30FC\u30EA\u30F3\u30AF +FR-Designer_Hyperlink-Form_link=\u73FE\u5728\u306E\u8868\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8 FR-Designer_IDCard=\u8EAB\u5206\u8A3C\u660E\u66F8 FR-Designer_Icon=\u30A2\u30A4\u30B3\u30F3 FR-Designer_Index=\u5217\u8EF8/\u6307\u6A19 -FR-Designer_Input_Rule=\u5165\u529B\u898F\u5247 +FR-Designer_Input_Rule=\u30EB\u30FC\u30EB\u8A18\u5165 FR-Designer_Language_Default=\u30C7\u30D5\u30A9\u30EB\u30C8 -FR-Designer_Layout=\u30EC\u30A4\u30A2\u30A6\u30C8 -FR-Designer_Layout-HBox=\u6C34\u5E73\u30DC\u30C3\u30AF\u30B9\u306E\u30EC\u30A4\u30A2\u30A6\u30C8 -FR-Designer_Layout-Index=\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9 -FR-Designer_Layout_Constraints=\u4F4D\u7F6E\u3068\u30B5\u30A4\u30BA +FR-Designer_Layout=\u914D\u7F6E +FR-Designer_Layout-HBox=\u6C34\u5E73\u30B1\u30FC\u30B9\u914D\u7F6E +FR-Designer_Layout-Index=\u7D22\u5F15 +FR-Designer_Layout_Constraints=\u4F4D\u7F6E\u3068\u5927\u5C0F FR-Designer_Length=\u9577\u3055 -FR-Designer_Loading_Data=\u30C7\u30FC\u30BF\u30ED\u30FC\u30C9\u4E2D -FR-Designer_M-Exit=\u7D42\u4E86 +FR-Designer_Loading_Data=\u30C7\u30FC\u30BF\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9\u3057\u3066\u3044\u307E\u3059 +FR-Designer_M-Exit=\u9000\u51FA FR-Designer_M-Help=\u30D8\u30EB\u30D7 FR-Designer_M-Insert=\u633F\u5165 -FR-Designer_M-Repeat-Freeze=\u7E70\u308A\u8FD4\u3057\u3068\u56FA\u5B9A\u306E\u8A2D\u5B9A -FR-Designer_M-Server=\u30B5\u30FC\u30D0 -FR-Designer_M-SwitchWorkspace=\u4F5C\u696D\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u5207\u308A\u66FF\u3048 +FR-Designer_M-Repeat-Freeze=\u91CD\u8907\u3068\u30D5\u30EA\u30FC\u30BA\u8A2D\u5B9A +FR-Designer_M-Server=\u30B5\u30FC\u30D0\u30FC +FR-Designer_M-SwitchWorkspace=\u4F5C\u696D\u76EE\u6B21\u5207\u308A\u66FF\u3048 FR-Designer_M-Template=\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8 -FR-Designer_MDX_Explain=\u6587\u6CD5\u66F8\u5F0F\u306FMDX\u6587\u6CD5\u3092\u53C2\u7167\u3057\u3066\u304F\u3060\u3055\u3044\u3002\n\u4F8B\:\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\u6CE8\uFF1ACOLUMNS\u3001ROWS\u30011\u3067\u53D6\u308A\u63DB\u3048\u308B\u3053\u3068\u304C\u3067\u304D\u3001\u691C\u7D22\u8EF8\u306F2\u8EF8\u306E\u623B\u308A\u3057\u304B\u30B5\u30DD\u30FC\u30C8\u3057\u3066\u3044\u307E\u305B\u3093\u3002 +FR-Designer_MDX_Explain=\u6587\u6CD5\u66F8\u5F0F\u306FMDX\u6587\u6CD5\u3092\u53C2\u8003\u3002\n\u4F8B\u3048\u3070\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\u6CE8\uFF1ACOLUMNS\u3001ROWS\u306F0\u30011\u3092\u4F7F\u7528\u3057\u3066\u4EE3\u66FF\u53EF\u80FD\u3067\u3059\u3002\u30AF\u30A8\u30EA\u8EF8\u306F\u4E8C\u3064\u306E\u8EF8\u623B\u3057\u306B\u306E\u307F\u30B5\u30DD\u30FC\u30C8\u3057\u307E\u3059\u3002 FR-Designer_M_Help-About_Software=\u30BD\u30D5\u30C8\u30A6\u30A7\u30A2\u306B\u3064\u3044\u3066 FR-Designer_M_Help-Tutorial=\u30D8\u30EB\u30D7\u30C1\u30E5\u30FC\u30C8\u30EA\u30A2\u30EB FR-Designer_Max_Value=\u6700\u5927\u5024 FR-Designer_Min_Value=\u6700\u5C0F\u5024 -FR-Designer_MobilePhone=\u30B9\u30DE\u30FC\u30C8\u30D5\u30A9\u30F3 -FR-Designer_New_Value=\u65B0\u3057\u3044\u5024 +FR-Designer_MobilePhone=\u643A\u5E2F\u96FB\u8A71 +FR-Designer_New_Value=\u65B0\u5024 FR-Designer_None=\u7121\u3057 -FR-Designer_PaperSize-Mobile=\u30B9\u30DE\u30FC\u30C8\u30D5\u30A9\u30F3 -FR-Designer_PaperSize-Mobile-Large=\u643A\u5E2F\u5927\u753B\u9762 -FR-Designer_PaperSize-Mobile-Small=\u643A\u5E2F\u5C0F\u753B\u9762 -FR-Designer_Para-Body=\u30D1\u30E9\u30E1\u30FC\u30BF\u30D1\u30CD\u30EB -FR-Designer_Parameters=\u30D1\u30E9\u30E1\u30FC\u30BF +FR-Designer_PaperSize-Mobile=\u643A\u5E2F\u96FB\u8A71 +FR-Designer_PaperSize-Mobile-Large=\u643A\u5E2F\u96FB\u8A71\u5927\u30B9\u30AF\u30EA\u30FC\u30F3 +FR-Designer_PaperSize-Mobile-Small=\u643A\u5E2F\u96FB\u8A71\u5C0F\u30B9\u30AF\u30EA\u30FC\u30F3 +FR-Designer_Para-Body=\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC\u753B\u9762 +FR-Designer_Parameters=\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC FR-Designer_Phone=\u96FB\u8A71 FR-Designer_PostCode=\u90F5\u4FBF\u756A\u53F7 -FR-Designer_Present=\u5F62\u614B +FR-Designer_Present=\u30D5\u30A9\u30EB\u30E0 FR-Designer_Preview=\u30D7\u30EC\u30D3\u30E5\u30FC -FR-Designer_Preview-Data-Confusion=\u6DF7\u4E71\u3055\u308C\u305F\u30C7\u30FC\u30BF\u3092\u30D7\u30EC\u30D3\u30E5\u30FC +FR-Designer_Preview-Data-Confusion=\u6DF7\u4EA4\u5F8C\u306E\u30C7\u30FC\u30BF\u3092\u30D7\u30EC\u30D3\u30E5\u30FC FR-Designer_Product_Demo=\u88FD\u54C1\u30C7\u30E2 -FR-Designer_Query_Type=\u30AF\u30A8\u30EA\u30BF\u30A4\u30D7 +FR-Designer_Query_Type=\u30AF\u30A8\u30EA\u65B9\u6CD5 FR-Designer_Refresh=\u66F4\u65B0 -FR-Designer_Refresh_Parameter_In_SQL=SQL\u306E\u30D1\u30E9\u30E1\u30FC\u30BF\u3092\u66F4\u65B0\u3057\u307E\u3059\u304B -FR-Designer_Reg_Expressions=\u6B63\u898F\u8868\u73FE -FR-Designer_Reg_Max_Length=\u6700\u5927 -FR-Designer_Reg_Min_Length=\u6700\u5C0F -FR-Designer_Remove_Button_ToolBar=\u30DC\u30BF\u30F3\u306E\u30C4\u30FC\u30EB\u30D0\u30FC\u3092\u524A\u9664 -FR-Designer_ReportColumns-Columns=\u30B5\u30D6\u30D5\u30A3\u30FC\u30EB\u30C9 -FR-Designer_Return-Date=\u65E5\u4ED8\u578B\u3092\u623B\u3059 -FR-Designer_RichText=\u30EA\u30C3\u30C1\u30C6\u30AD\u30B9\u30C8 -FR-Designer_RichTextEditor=\u30EA\u30C3\u30C1\u30C6\u30AD\u30B9\u30C8\u30A8\u30C7\u30A3\u30BF +FR-Designer_Refresh_Parameter_In_SQL=SQL\u4E2D\u306E\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC\u3092\u66F4\u65B0\u3057\u307E\u3059\u304B +FR-Designer_Reg_Expressions=\u6B63\u5247\u8868\u73FE\u5F0F +FR-Designer_Reg_Max_Length=\u6700\u5927\u9577\u3055 +FR-Designer_Reg_Min_Length=\u6700\u5C0F\u9577\u3055 +FR-Designer_ReportColumns-Columns=\u6BB5\u7D44\u307F +FR-Designer_Return-Date=\u65E5\u671F\u306B\u623B\u308B +FR-Designer_RichText=\u30EA\u30C3\u30C1\u6587\u66F8\u633F\u5165 +FR-Designer_RichTextEditor=\u30EA\u30C3\u30C1\u6587\u66F8\u30A8\u30C7\u30A3\u30BF FR-Designer_Row=\u884C -FR-Designer_Row_Dimension=\u884C\u8EF8/\u30C7\u30A3\u30E1\u30F3\u30B7\u30E7\u30F3 +FR-Designer_Row_Dimension=\u884C\u8EF8/\u7DEF\u5EA6 FR-Designer_Save=\u4FDD\u5B58 FR-Designer_Search=\u691C\u7D22 FR-Designer_Set=\u8A2D\u5B9A -FR-Designer_Share-Template=\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u5171\u6709 -FR-Designer_Simple_general=\u7C21\u6613\u4E00\u822C\u691C\u7D22 +FR-Designer_Share-Template=\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u30B7\u30A7\u30A2 +FR-Designer_Simple_general=\u30B7\u30F3\u30D7\u30EB\u901A\u7528\u30AF\u30A8\u30EA FR-Designer_Song_TypeFace=\u5B8B\u4F53 -FR-Designer_Start-Date=\u958B\u59CB\u65E5 +FR-Designer_Start-Date=\u958B\u59CB\u65E5\u671F FR-Designer_Subscript=\u4E0B\u4ED8\u304D FR-Designer_Superscript=\u4E0A\u4ED8\u304D -FR-Designer_Support_QQ=\u6280\u8853\u30B5\u30DD\u30FC\u30C8QQ +FR-Designer_Support_QQ=\u6280\u8853QQ FR-Designer_Swatch=\u30B5\u30F3\u30D7\u30EB -FR-Designer_Tab_title=\u30BF\u30D6\u30BF\u30A4\u30C8\u30EB +FR-Designer_Tab_title=tab\u30BF\u30A4\u30C8\u30EB FR-Designer_TableData=\u30C7\u30FC\u30BF\u30BB\u30C3\u30C8 -FR-Designer_Thank_guest=\u7279\u306B\u4EE5\u4E0B\u306E\u30D5\u30A9\u30FC\u30E9\u30E0\u5E06\u85AF\u304C\u5F53\u30D0\u30FC\u30B8\u30E7\u30F3\u306E\u30C7\u30B6\u30A4\u30CA\u30FC\u306E\u4F7F\u3044\u3084\u3059\u3055\u306B\u9855\u8457\u306A\u8CA2\u732E\u306B\u611F\u8B1D +FR-Designer_Thank_guest=\u7279\u306B\u5F53\u8A72\u30D0\u30FC\u30B8\u30E7\u30F3\u30C7\u30B6\u30A4\u30CA\u30FC\u306E\u4F7F\u3044\u3084\u3059\u3055\u306B\u3064\u3044\u3066\u8CA2\u732E\u3057\u3066\u304F\u308C\u305F\u4EE5\u4E0B\u306EBBS\u306E\u5E06\u30BD\u30D5\u30C8\u30D5\u30A1\u30F3\u306B\u611F\u8B1D\u3057\u307E\u3059 FR-Designer_Thanks-To=\u611F\u8B1D FR-Designer_Title=\u30BF\u30A4\u30C8\u30EB -FR-Designer_Total=\u5408\u8A08 +FR-Designer_Total=\u5168\u90E8\u3067 FR-Designer_UnSignIn=\u672A\u30ED\u30B0\u30A4\u30F3 -FR-Designer_Underline=\u4E0B\u7DDA -FR-Designer_Used=\u6700\u8FD1\u4F7F\u7528 -FR-Designer_User-defined-MDX=\u30AB\u30B9\u30BF\u30E0MDX\u691C\u7D22 -FR-Designer_SampleText=\u30B5\u30F3\u30D7\u30EB\u30C6\u30AD\u30B9\u30C8 \u30B5\u30F3\u30D7\u30EB\u30C6\u30AD\u30B9\u30C8 -FR-Designer_Vertical-LeftToRight=\u6587\u5B57\u7E26\u66F8\u304D(\u5DE6\u304B\u3089\u53F3\u3078) +FR-Designer_Underline=\u30A2\u30F3\u30C0\u30FC\u30E9\u30A4\u30F3 +FR-Designer_Used=\u6700\u8FD1\u4F7F\u7528\u3057\u305F +FR-Designer_User-defined-MDX=\u30AB\u30B9\u30BF\u30DE\u30A4\u30BAMDX\u30AF\u30A8\u30EA +FR-Designer_SampleText=\u30C6\u30AD\u30B9\u30C8\u4F8B +FR-Designer_Vertical-LeftToRight=\u6587\u5B57\u7E26\u66F8(\u5DE6\u304B\u3089\u53F3\u3078\uFF09 FR-Designer_Vertical-RightToLeft=\u6587\u5B57\u7E26\u66F8(\u53F3\u304B\u3089\u5DE6\u3078) -FR-Designer_VerticalBoxLayout=\u5782\u76F4\u30DC\u30C3\u30AF\u30B9\u30EC\u30A4\u30A2\u30A6\u30C8 -FR-Designer_Visible=\u8868\u793A -FR-Designer_WLayout-Border-ToolTips=\u5B8C\u5168\u306A\u30DC\u30FC\u30C0\u30FC\u30EC\u30A4\u30A2\u30A6\u30C8\u30B3\u30F3\u30C6\u30CA\u306F\u3001\u6771\u3001\u5357\u3001\u897F\u3001\u5317\u3001\u4E2D\u592E\u306E5\u30D6\u30ED\u30C3\u30AF\u3088\u308A\u69CB\u6210\u3055\u308C\u307E\u3059\u3002\n\u5317\u90E8\u3068\u5357\u90E8\u3067\u306F\u9AD8\u3055\u3092\u3001\u6771\u90E8\u3068\u897F\u90E8\u3068\u3067\u306F\u5E45\u3092\u8ABF\u6574\u3067\u304D\u307E\u3059\u3002 +FR-Designer_VerticalBoxLayout=\u5782\u76F4\u30B1\u30FC\u30B9\u914D\u7F6E +FR-Designer_Visible=\u53EF\u8996 +FR-Designer_WLayout-Border-ToolTips=\u5B8C\u74A7\u306A\u30DC\u30FC\u30C0\u30FC\u30EC\u30A4\u30A2\u30A6\u30C8\u5BB9\u5668\u306F\u6771\u897F\u5357\u5317\u4E2D\u306E\u4E94\u3064\u306E\u30E2\u30B8\u30E5\u30FC\u30EB\u304B\u3089\u69CB\u6210\u3055\u308C\u307E\u3059\u3002\\uff4e\u305D\u306E\u3046\u3061\u3001\u5357\u5317\u30E2\u30B8\u30E5\u30FC\u30EB\u306F\u5FC5\u8981\u306B\u5FDC\u3058\u3066\u9AD8\u3055\u3092\u8ABF\u6574\u3067\u304D\u3001\u6771\u897F\u30E2\u30B8\u30E5\u30FC\u30EB\u306F\u5FC5\u8981\u306B\u5FDC\u3058\u3066\u5E45\u3092\u8ABF\u6574\u3067\u304D\u307E\u3059\u3002 FR-Designer_WaterMark=\u900F\u304B\u3057 FR-Designer_Widget=\u30B3\u30F3\u30C8\u30ED\u30FC\u30EB FR-Designer_Widget-Settings=\u30B3\u30F3\u30C8\u30ED\u30FC\u30EB\u8A2D\u5B9A @@ -366,30 +364,24 @@ FR-Designer_XMLA_Get_Catalog=\u30AB\u30BF\u30ED\u30B0\u3092\u691C\u7D22\u3059\u3 FR-Designer_XMLA_Not_NULL=\u3053\u3053\u306F\u7A7A\u6B04\u306B\u3059\u308B\u3053\u3068\u304C\u3067\u304D\u307E\u305B\u3093 FR-Designer_Column-Axis=\u5217\u8EF8 FR-Designer_LiteCondition_Common=\u4E00\u822C -FR-Designer_LiteCondition_Formula=\u6570\u5F0F +FR-Designer_LiteCondition_Formula=\u516C\u5F0F FR-Designer_LiteCondition_ConditionB-AND=\u30A2\u30F3\u30C9(AND) FR-Designer_LiteCondition_ConditionB-OR=\u30AA\u30A2(OR) FR-Designer_LiteCondition_Common_Condition=\u666E\u901A\u6761\u4EF6 -FR-Designer_LiteCondition_Formula_Condition=\u6570\u5F0F\u6761\u4EF6 +FR-Designer_LiteCondition_Formula_Condition=\u516C\u5F0F\u6761\u4EF6 FR-Designer_LiteCondition_Define=\u5B9A\u7FA9 -FR-Designer_Normal=\u6B63\u5E38 -FR-Designer_Alert=\u30A2\u30E9\u30FC\u30C8 FR-Designer_Select_All=\u5168\u9078\u629E -FR-Designer_Clear_All=\u5168\u3066\u3092\u30AF\u30EA\u30A2 -FR-Designer_Copy=\u30B3\u30D4\u30FC -FR-Designer_Log=\u30ED\u30B0 -FR-Designer-Plugin_Expire_Dialog_Title=\u30D7\u30E9\u30B0\u30A4\u30F3\u306F\u671F\u9650\u5207\u308C -FR-Designer-Plugin_Expire_Dialog_Text=\u30D7\u30E9\u30B0\u30A4\u30F3\u306F\u6709\u52B9\u671F\u9650\u304C\u5207\u308C\u3066\u3044\u307E\u3059\u3001\u30D5\u30A1\u30F3\u30E9\u30F3\u30A2\u30D7\u30EA\u30BB\u30F3\u30BF\u30FC\u3078\u8CFC\u5165\u3057\u3066\u304F\u3060\u3055\u3044\u3002 -FR-Designer-Plugin_Finerest_Addon=\u30D5\u30A1\u30F3\u30E9\u30F3\u30A2\u30D7\u30EA\u30BB\u30F3\u30BF\u30FC +FR-Designer-Plugin_Expire_Dialog_Title=\u671F\u9650\u5207\u308C\u306E\u30D7\u30E9\u30B0\u30A4\u30F3 +FR-Designer-Plugin_Expire_Dialog_Text=\u30D7\u30E9\u30B0\u30A4\u30F3\u306F\u3001\u8CFC\u5165\u3092\u3059\u308B\u305F\u3081\u306B\u5E06\u30BD\u30D5\u30C8\u30A2\u30D7\u30EA\u30B1\u30FC\u30B7\u30E7\u30F3\u30BB\u30F3\u30BF\u30FC\u3092\u884C\u304F\u3001\u6709\u52B9\u671F\u9650\u304C\u5207\u308C\u3066\u3044\u307E\u3059\u3002 +FR-Designer-Plugin_Finerest_Addon=\u5E06\u8EDF\u5FDC\u7528\u30BB\u30F3\u30BF\u30FC FR-Designer_Performance_First=\u6027\u80FD\u512A\u5148 FR-Designer_Total_N_Grade=\u5168\u90E8\u3067\:${N}\u5C64 FR-Designer_time(s)=\u56DE -FR-Designer_General=\u901A\u5E38 -FR-Designer_Advanced=\u8A73\u7D30 -FR-Designer_Validate=\u691C\u8A3C +FR-Designer_General=\u5E38\u7528 +FR-Designer_Advanced=\u9AD8\u7D1A FR-Designer_Oracle=\u3059\u3079\u3066\u306E\u30C6\u30FC\u30D6\u30EB FR-Designer_Product_improve=\u88FD\u54C1\u6539\u5584 -FR-Designer_Join_Product_improve=\u88FD\u54C1\u6539\u5584\u30D7\u30E9\u30F3\u306B\u5165\u308B +FR-Designer_Join_Product_improve=\u88FD\u54C1\u6539\u5584\u30D7\u30E9\u30F3\u306B\u52A0\u3048\u308B FR-Designer_Preference-Function=\u30D5\u30A1\u30F3\u30AF\u30B7\u30E7\u30F3\u8A2D\u5B9A FR-Designer_max_undo_limit=\u6700\u5927\u53D6\u308A\u6D88\u3057\u56DE\u6570 FR-Designer_Surport_String_To_Formula=\u30AD\u30E3\u30E9\u30AF\u30BF\u30FC\u6587\u5B57\u5217\u7DE8\u96C6\u3092\u516C\u5F0F\u3068\u3059\u308B\u3053\u3068\u306B\u30B5\u30DD\u30FC\u30C8 @@ -545,52 +537,31 @@ FR-Designer_Show_As_Download=\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9\u30EA\u30F3\u3 FR-Designer_File_Name_For_Download=\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9\u30D5\u30A1\u30A4\u30EB\u540D FR-Designer_No=\u3044\u3044\u3048 FR-Designer_Pagination=\u30DA\u30FC\u30B8\u30F3\u30B0 -FR-Designer_DS_TableData=\u30C7\u30FC\u30BF\u30BB\u30C3\u30C8 +FR-Designer-Move_Tab_First= +FR-Designer-Move_Tab_End= +FR-Designer-Move_Tab_Next= +FR-Designer-Move_Tab_Prev= +FR-Designer_DS_TableData=\u30C7\u30FC\u30BF\u30BD\u30FC\u30B9 FR-Designer_Parameter-Formula=\u6570\u5F0F -FR-Designer_Background_Null=\u80CC\u666F\u306A\u3057 -FR-Designer_Background_Color=\u8272 -FR-Designer_Background_Texture=\u30C6\u30AF\u30B9\u30C1\u30E3 -FR-Designer_Background_Pattern=\u30D1\u30BF\u30FC\u30F3 -FR-Designer_Background_Gradient_Color=\u30B0\u30E9\u30C7\u30FC\u30B7\u30E7\u30F3 -FR-Designer_Background_Image=\u753B\u50CF -FR-Designer_Background_Clear=\u30AF\u30EA\u30A2 -FR-Designer_Background_Image_Select=\u753B\u50CF\u9078\u629E -FR-Designer_Initial_Background_Tips=\u30DC\u30BF\u30F3\u306E\u521D\u671F\u80CC\u666F -FR-Designer_Mouse_Move_Tips=\u30DE\u30A6\u30B9\u304C\u30DC\u30BF\u30F3\u306B\u79FB\u3059\u6642\u5909\u5316\u3059\u308B\u80CC\u666F -FR-Designer_Mouse_Click_Tips=\u30DC\u30BF\u30F3\u3092\u30AF\u30EA\u30C3\u30AF\u3059\u308B\u6642\u5909\u5316\u3059\u308B\u80CC\u666F -FR-Designer-Move_Tab_First=\u30C8\u30C3\u30D7\u306B\u79FB\u3059 -FR-Designer-Move_Tab_End=\u6700\u5F8C\u306B\u79FB\u3059 -FR-Designer-Move_Tab_Next=\u5F8C\u308D\u306B\u79FB\u3059 -FR-Designer-Move_Tab_Prev=\u524D\u306B\u79FB\u3059 +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_Initial_Background_Tips= +FR-Designer_Mouse_Move_Tips= +FR-Designer_Too_Large_To_Paste=\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u306E\u30B5\u30A4\u30BA\u306F\u30DC\u30FC\u30C0\u30FC\u306B\u8D85\u3048\u305F\u306E\u3067\u3001\u8CBC\u308A\u4ED8\u3051\u3067\u304D\u307E\u305B\u3093\uFF01 +FR-Designer_Too_Small_To_Paste=\u8A72\u5F53\u51E6\u306B\u8CBC\u308A\u4ED8\u3051\u3067\u304D\u307E\u305B\u3093\u3001\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u306E\u30B5\u30A4\u30BA\u306F\u9AD8\u3059\u304E\uFF01 +FR-Designer_Mouse_Click_Tips= +FR-Designer_Plugin_Should_Update_Please_Contact_Developer= FR-Designer_AxisReversed=\u8EF8\u9006\u9806 FR-Designer_Logarithmic=\u5BFE\u6570\u76EE\u76DB\u308A FR-Designer_Chart_Log_Base=\u5E95\u6570 FR-Designer_Chart_F_Radar_Axis=\u5782\u76F4\u8EF8 -FR-Designer_Too_Large_To_Paste=\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u306E\u30B5\u30A4\u30BA\u306F\u30DC\u30FC\u30C0\u30FC\u306B\u8D85\u3048\u305F\u306E\u3067\u3001\u8CBC\u308A\u4ED8\u3051\u3067\u304D\u307E\u305B\u3093\uFF01 -FR-Designer_Too_Small_To_Paste=\u8A72\u5F53\u51E6\u306B\u8CBC\u308A\u4ED8\u3051\u3067\u304D\u307E\u305B\u3093\u3001\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u306E\u30B5\u30A4\u30BA\u306F\u9AD8\u3059\u304E\uFF01 -FR-Designer_DoubleLayer_Report=\u4E8C\u968E\u30BF\u30A4\u30C8\u30EB -FR-Designer_Printer_Native_Button=\u30ED\u30FC\u30AB\u30EB\u5370\u5237 -FR-Designer_Mobile-Warning=\u6700\u5927\u306E\u9AD8\u3055\u306F\u8868\u793A\u30A8\u30EA\u30A2\u306E80\uFF05\u4EE5\u4E0A\u306B\u306A\u308A\u307E\u305B\u3093 -FR-Designer_Form-Fit-Tip=\u81EA\u5DF1\u9069\u5FDC\u30D7\u30E9\u30B0\u30A4\u30F3 -FR-Designer_Form-Forzen-Speed=\u3001\u305D\u3057\u3066\u6A2A\u65B9\u5411\u81EA\u5DF1\u9069\u5FDC\u307E\u305F\u306F2\u65B9\u5411\u81EA\u52D5\u9069\u5FDC\u3092\u5229\u7528\u3057\u3001\u5E33\u7968\u8868\u793A\u306E\u30B9\u30D4\u30FC\u30C9\u3092\u4E0A\u3052\u3067\u304D\u307E\u3059\u3002 -FR-Designer_Mobile_Form_Analysis_Annotation=\u8AAC\u660E\:\u8A72\u5F53\u8A2D\u5B9A\u3088\u308A\u3001\u30C0\u30C3\u30B7\u30E5\u30DC\u30FC\u30C9\u306E\u30A2\u30D7\u30EA\u3067\u306E\u89E3\u6790\u30E2\u30FC\u30C9\u3092\u8A2D\u5B9A\u3067\u304D\u307E\u3059\u3002 -FR-Designer_TableData-Default-Para=\u30C7\u30FC\u30BF\u30BB\u30C3\u30C8\u306E\u30C7\u30D5\u30A9\u30EB\u30C8\u30D1\u30E9\u30E1\u30FC\u30BF -FR-Designer-Selected_Widget=\u5F53\u306E\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8 -FR-Designer_Plugin_Should_Update_Please_Contact_Developer=\u30D7\u30E9\u30B0\u30A4\u30F3\u306E\u30D0\u30FC\u30B8\u30E7\u30F3\u306F\u4F4E\u3044\u3067\u3059\u304C\u3001\u4E0D\u5177\u5408\u304C\u3067\u3063\u305F\u3001\u958B\u767A\u8005\u3068\u9023\u7D61\u3057\u3066\u304F\u3060\u3055\u3044\u3002 -FR-Designer_SimpleCross_Report=\u7C21\u5358\u30AF\u30ED\u30FC\u30B9\u8868 -FR-Designer_Button-Cancel=\u53D6\u308A\u6D88\u3057 -FR-Designer_Delete_Template=\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u3092\u524A\u9664 -FR-Designer_Install_Template=\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u3092\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB -FR-Designer_SimpleDetail_Report=\u7C21\u5358\u660E\u7D30\u8868 -FR-Designer_LocalWidget=\u30ED\u30FC\u30AB\u30EB\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u30E9\u30A4\u30D6\u30E9\u30EA -FR-Designer_WidgetOrder=\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u306E\u9806\u756A -FR-Designer_Form-Frozen-Tip=\u30D5\u30EA\u30FC\u30BA\u3092\u4F7F\u3046\u6642\u3001\u5F8C\u8A18\u306E\u30D7\u30E9\u30B0\u30A4\u30F3\u3092\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u3057\u3066\u304F\u3060\u3055\u3044\uFF1A -FR-Designer-Invalid_Page_Number=\u7121\u52B9\u306A\u30DA\u30FC\u30B8\u756A\u53F7 -FR-Designer_Reset=\u30EA\u30BB\u30C3\u30C8 -FR-Designer-Plugin_Please_Update_Jar=jar\u30D1\u30C3\u30AF\u3092\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8\u3057\u3066\u304F\u3060\u3055\u3044 -FR-Designer_Get-CubeGetting cube= -FR-Designer_Mobile_Report_Analysis_Annotation=\u8AAC\u660E\:\u8A72\u5F53\u5C5E\u6027\u3088\u308A\u3001\u30C0\u30C3\u30B7\u30E5\u30DC\u30FC\u30C9\u306E\u30A2\u30D7\u30EA\u3067\u306E\u89E3\u6790\u30E2\u30FC\u30C9\u3092\u8A2D\u5B9A\u3067\u304D\u307E\u3059\u3001\u9801\u5206\u3051\u30D7\u30EC\u30D3\u30E5\u30FC\u3060\u3051\u3092\u652F\u6301\u3001\u66F8\u304D\u8FBC\u307F\u306B\u8A2D\u5B9A\u3059\u308B\u6642\u7121\u52B9\u306B\u306A\u308A\u307E\u3059\u3002 -FR-Designer_Properties_Mobile=\u30B9\u30DE\u30FC\u30C8\u30D5\u30A9\u30F3\u5C5E\u6027 -FR-Designer_Button-OK=\u5206\u304B\u308A\u307E\u3057\u305F -FR-Designer_Allow-Blank=\u7A7A\u306B\u8A31\u3059 -FR-Designer_AllCategories=\u5168\u3066\u306E\u7A2E\u985E +FR-Designer_Style=\u30B9\u30BF\u30A4\u30EB +FR-Designer_Color=\u8272 +FR-Designer_Border=\u67A0 +FR-Designer_Background-Pattern=\u30D1\u30BF\u30FC\u30F3 \ No newline at end of file diff --git a/designer_base/src/com/fr/design/locale/designer_ko_KR.properties b/designer_base/src/com/fr/design/locale/designer_ko_KR.properties index c0c8e9e71d..075b017ab1 100644 --- a/designer_base/src/com/fr/design/locale/designer_ko_KR.properties +++ b/designer_base/src/com/fr/design/locale/designer_ko_KR.properties @@ -91,7 +91,6 @@ FR-Designer_DS-Dictionary=\uB370\uC774\uD130\uC0AC\uC804 FR-Designer_Data-confusion=\uB370\uC774\uD130\uD63C\uD569 FR-Designer_Data_Type=\uB370\uC774\uD130\uC720\uD615 FR-Designer_Double_Click_Edit_OR_Clear=\uB354\uBE14\uD074\uB9AD\uD558\uC5EC\uD3B8\uC9D1\uB610\uB294\uD074\uB9AC\uC5B4\uC2E4\uD589 -FR-Designer_Edit_Button_ToolBar=\uD0A4\uAC00\uC788\uB294\uD234\uBC14\uD3B8\uC9D1 FR-Designer_Email=\uBA54\uC77C FR-Designer_Enabled=\uC0AC\uC6A9\uAC00\uB2A5 FR-Designer_End-Date=\uC885\uB8CC\uB0A0\uC9DC @@ -163,7 +162,6 @@ 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_Remove_Button_ToolBar=\uD0A4\uAC00\uC788\uB294\uD234\uBC14\uC81C\uAC70 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 @@ -553,49 +551,12 @@ FR-Designer_Background_Image_Select= FR-Designer_Initial_Background_Tips= FR-Designer_Mouse_Move_Tips= FR-Designer_Mouse_Click_Tips= -FR-Designer-Move_Tab_First= -FR-Designer-Move_Tab_End= -FR-Designer-Move_Tab_Next= -FR-Designer-Move_Tab_Prev= +FR-Designer_Plugin_Should_Update_Please_Contact_Developer= FR-Designer_AxisReversed=\uCD95\uC5ED\uC21C FR-Designer_Logarithmic=\uB85C\uADF8\uB208\uAE08 FR-Designer_Chart_Log_Base=\uAE30\uC218 FR-Designer_Chart_F_Radar_Axis=\uAC12\uCD95 -FR-Designer_COMMUNITY_VIDEO= -FR-Designer_DoubleLayer_Report= -FR-Designer_Too_Small_To_Paste= -FR-Designer_formDesignerModule= -FR-Designer_Mobile-Warning= -FR-Designer_Mobile-Open= -FR-Designer_Form-Fit-Tip= -FR-Designer_Form-Forzen-Speed= -FR-Designer_Mobile_Form_Analysis_Annotation= -FR-Designer_Too_Large_To_Paste= -FR-Designer_COMMUNITY_HELP= -FR-Designer_Validate= -FR-Designer_Button-Cancel= -FR-Designer_Plugin_Should_Update_Please_Contact_Developer= -FR-Designer_COMMUNITY_QUESTIONS= -FR-Designer_SimpleCross_Report= -FR-Designer_COMMUNITY_NEED= -FR-Designer_Delete_Template= -FR-Designer_TableData-Default-Para= -FR-Designer_Allow-Blank= -FR-Designer_LocalWidget= -FR-Designer_WidgetOrder= -FR-Designer_Form-Frozen-Tip= -FR-Designer_Mobile-Horizontal= -FR-Designer-Invalid_Page_Number= -FR-Designer_COMMUNITY_BBS= -FR-Designer_COMMUNITY_SIGN= -FR-Designer_COMMUNITY_UPDATE= -FR-Designer_Mobile-Vertical= -FR-Designer_Get-CubeGetting cube= -FR-Designer_COMMUNITY= -FR-Designer_Mobile_Report_Analysis_Annotation= -FR-Designer_Properties_Mobile= -FR-Designer_Button-OK= -FR-Designer_COMMUNITY_BUG= -FR-Designer_AllCategories= -FR-Designer_Mobile-Attr= -FR-Designer_Mobile-Zoom= +FR-Designer_Style=\uC591\uC2DD +FR-Designer_Color=\uC0C9 +FR-Designer_Border=\uD14C\uB450\uB9AC +FR-Designer_Background-Pattern=\uC774\uBBF8\uC9C0 \ No newline at end of file diff --git a/designer_base/src/com/fr/design/locale/designer_zh_CN.properties b/designer_base/src/com/fr/design/locale/designer_zh_CN.properties index f4fbdd11ad..d0a2b05203 100644 --- a/designer_base/src/com/fr/design/locale/designer_zh_CN.properties +++ b/designer_base/src/com/fr/design/locale/designer_zh_CN.properties @@ -91,7 +91,6 @@ FR-Designer_DS-Dictionary=\u6570\u636E\u5B57\u5178 FR-Designer_Data-confusion=\u6570\u636E\u6DF7\u6DC6 FR-Designer_Data_Type=\u6570\u636E\u7C7B\u578B FR-Designer_Double_Click_Edit_OR_Clear=\u53CC\u51FB\u8FDB\u884C\u7F16\u8F91\u6216\u6E05\u9664 -FR-Designer_Edit_Button_ToolBar=\u7F16\u8F91\u6309\u94AE\u6240\u5728\u5DE5\u5177\u680F FR-Designer_Email=\u90AE\u4EF6 FR-Designer_Enabled=\u53EF\u7528 FR-Designer_End-Date=\u7ED3\u675F\u65E5\u671F @@ -164,7 +163,6 @@ 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_Remove_Button_ToolBar=\u79FB\u9664\u6309\u94AE\u6240\u5728\u5DE5\u5177\u680F FR-Designer_ReportColumns-Columns=\u5206\u680F FR-Designer_Return-Date=\u8FD4\u56DE\u65E5\u671F FR-Designer_RichText=\u63D2\u5165\u5BCC\u6587\u672C @@ -590,15 +588,15 @@ FR-Designer_Background_Image_Select=\u9009\u62E9\u56FE\u7247 FR-Designer_Initial_Background_Tips=\u6309\u94AE\u7684\u521D\u59CB\u80CC\u666F FR-Designer_Mouse_Move_Tips=\u9F20\u6807\u79FB\u52A8\u5230\u6309\u94AE\u4E0A\u7684\u80CC\u666F\uFF0C\u82E5\u65E0\u5219\u4E0D\u6539\u53D8\u80CC\u666F FR-Designer_Mouse_Click_Tips=\u9F20\u6807\u70B9\u51FB\u6309\u94AE\u65F6\u80CC\u666F\uFF0C\u82E5\u65E0\u5219\u4E0D\u6539\u53D8\u80CC\u666F -FR-Designer-Move_Tab_First=\u79FB\u52A8\u5230\u9996\u4F4D -FR-Designer-Move_Tab_End=\u79FB\u52A8\u5230\u672B\u5C3E -FR-Designer-Move_Tab_Next=\u5F80\u540E\u79FB\u52A8 -FR-Designer-Move_Tab_Prev=\u5F80\u524D\u79FB\u52A8 + +FR-Designer_Too_Large_To_Paste=\u7EC4\u4EF6\u5927\u5C0F\u8D85\u51FA\u8FB9\u754C\uFF0C\u65E0\u6CD5\u7C98\u8D34\uFF01 +FR-Designer_Too_Small_To_Paste=\u6B64\u5904\u65E0\u6CD5\u7C98\u8D34\uFF0C\u5C0F\u4E8E\u7EC4\u4EF6\u6700\u5C0F\u9AD8\u5EA6\uFF01 + FR-Designer_AxisReversed=\u8F74\u9006\u5E8F FR-Designer_Logarithmic=\u5BF9\u6570\u523B\u5EA6 FR-Designer_Chart_Log_Base=\u5E95\u6570 FR-Designer_Chart_F_Radar_Axis=\u503C\u8F74 -FR-Designer_Too_Large_To_Paste=\u7EC4\u4EF6\u5927\u5C0F\u8D85\u51FA\u8FB9\u754C\uFF0C\u65E0\u6CD5\u7C98\u8D34\uFF01 -FR-Designer_Too_Small_To_Paste=\u6B64\u5904\u65E0\u6CD5\u7C98\u8D34\uFF0C\u5C0F\u4E8E\u7EC4\u4EF6\u6700\u5C0F\u9AD8\u5EA6\uFF01 - -FR-Designer_Get-CubeGetting cube= +FR-Designer_Style=\u6837\u5F0F +FR-Designer_Color=\u989C\u8272 +FR-Designer_Border=\u8FB9\u6846 +FR-Designer_Background-Pattern=\u56FE\u6848 \ No newline at end of file diff --git a/designer_base/src/com/fr/design/locale/designer_zh_TW.properties b/designer_base/src/com/fr/design/locale/designer_zh_TW.properties index 58c4e13fa6..bbaf3db36d 100644 --- a/designer_base/src/com/fr/design/locale/designer_zh_TW.properties +++ b/designer_base/src/com/fr/design/locale/designer_zh_TW.properties @@ -91,7 +91,6 @@ FR-Designer_DS-Dictionary=\u8CC7\u6599\u5B57\u5178 FR-Designer_Data-confusion=\u8CC7\u6599\u6DF7\u6DC6 FR-Designer_Data_Type=\u8CC7\u6599\u985E\u578B FR-Designer_Double_Click_Edit_OR_Clear=\u96D9\u64CA\u9032\u884C\u7DE8\u8F2F\u6216\u6E05\u9664 -FR-Designer_Edit_Button_ToolBar=\u7DE8\u8F2F\u6309\u9215\u6240\u5728\u5DE5\u5177\u6B04 FR-Designer_Email=\u90F5\u4EF6 FR-Designer_Enabled=\u53EF\u7528 FR-Designer_End-Date=\u7D50\u675F\u65E5\u671F @@ -163,7 +162,6 @@ 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_Remove_Button_ToolBar=\u79FB\u9664\u6309\u9215\u6240\u5728\u5DE5\u5177\u6B04 FR-Designer_ReportColumns-Columns=\u5831\u8868\u6B04\u4F4D FR-Designer_Return-Date=\u8FD4\u56DE\u65E5\u671F FR-Designer_RichText= RTF @@ -567,38 +565,24 @@ FR-Designer_Plugin_Should_Update_Please_Contact_Developer=\u633F\u4EF6\u7248\u67 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\u6301\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_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-Move_Tab_First=\u79FB\u52D5\u5230\u9996\u4F4D -FR-Designer-Move_Tab_End=\u79FB\u52D5\u5230\u672B\u5C3E -FR-Designer-Move_Tab_Next=\u5F80\u5F8C\u79FB\u52D5 -FR-Designer-Move_Tab_Prev=\u5F80\u524D\u79FB\u52D5 +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= +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 FR-Designer_Chart_F_Radar_Axis=\u503C\u8EF8 -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_Download_Template= -FR-Designer-Selected_Widget= -FR-Designer_LocalWidget= -FR-Designer_Get-CubeGetting cube= -FR-Designer_Install_Template= -FR-Designer_Reset= -FR-Designer_SimpleCross_Report= -FR-Designer_Allow-Blank= -FR-Designer_AllCategories= -FR-Designer_SimpleDetail_Report= -FR-Designer_DoubleLayer_Report= -FR-Designer_Delete_Template= -FR-Designer_Validate= +FR-Designer_Style=\u6A23\u5F0F +FR-Designer_Color=\u984F\u8272 +FR-Designer_Border=\u6846\u7DDA +FR-Designer_Background-Pattern=\u5716\u6848 \ No newline at end of file diff --git a/designer_base/src/com/fr/design/mainframe/JTemplate.java b/designer_base/src/com/fr/design/mainframe/JTemplate.java index e28090299e..48371c7871 100644 --- a/designer_base/src/com/fr/design/mainframe/JTemplate.java +++ b/designer_base/src/com/fr/design/mainframe/JTemplate.java @@ -372,7 +372,7 @@ public abstract class JTemplate> ex } protected boolean accept(Object o){ - return true; + return true; } private void fireSuperTargetModified() { @@ -488,15 +488,15 @@ public abstract class JTemplate> ex collectInfo(); return this.saveFile(); } - + private boolean isCancelOperation(int operation){ - return operation == FILEChooserPane.CANCEL_OPTION || - operation == FILEChooserPane.JOPTIONPANE_CANCEL_OPTION; + return operation == FILEChooserPane.CANCEL_OPTION || + operation == FILEChooserPane.JOPTIONPANE_CANCEL_OPTION; } - + private boolean isOkOperation(int operation){ - return operation == FILEChooserPane.JOPTIONPANE_OK_OPTION || - operation == FILEChooserPane.OK_OPTION; + return operation == FILEChooserPane.JOPTIONPANE_OK_OPTION || + operation == FILEChooserPane.OK_OPTION; } private boolean saveAsTemplate(boolean isShowLoc) { @@ -513,8 +513,8 @@ public abstract class JTemplate> ex if (isCancelOperation(chooseResult)) { fileChooser = null; return false; - } - + } + if (isOkOperation(chooseResult)) { if (!FRContext.getCurrentEnv().hasFileFolderAllow(fileChooser.getSelectedFILE().getPath()) ) { JOptionPane.showMessageDialog(DesignerContext.getDesignerFrame(), Inter.getLocText("FR-Designer_No-Privilege") + "!", Inter.getLocText("FR-Designer_Message"), JOptionPane.WARNING_MESSAGE); @@ -524,41 +524,40 @@ public abstract class JTemplate> ex mkNewFile(editingFILE); fileChooser = null; } - + return saveNewFile(editingFILE, oldName); } - - protected boolean saveNewFile(FILE editingFILE, String oldName){ - // 在保存之前,初始化 templateID - initForCollect(); // 如果保存新模板(新建模板直接保存,或者另存为),则添加 templateID + protected boolean saveNewFile(FILE editingFILE, String oldName){ this.editingFILE = editingFILE; + boolean result = this.saveFile(); if (result) { DesignerFrameFileDealerPane.getInstance().refresh(); + initForCollect(); // 如果保存新模板(新建模板直接保存,或者另存为),则添加 templateID collectInfo(); } //更换最近打开 DesignerEnvManager.getEnvManager().replaceRecentOpenedFilePath(oldName, this.getFullPathName()); return result; } - + protected void mkNewFile(FILE file){ try { - file.mkfile(); + file.mkfile(); } catch (Exception e) { FRContext.getLogger().error(e.getMessage(), e); } } - + /** - * 将模板另存为可以分享出去的混淆后内置数据集模板 - * - * @return 是否另存成功 - * - */ + * 将模板另存为可以分享出去的混淆后内置数据集模板 + * + * @return 是否另存成功 + * + */ public boolean saveShareFile(){ - return true; + return true; } public Widget getSelectElementCase(){ return new NoneWidget(); @@ -763,7 +762,7 @@ public abstract class JTemplate> ex public void revert() { } - + private int getVersionCompare(String versionString){ if (StringUtils.isBlank(versionString)) { return 0; @@ -773,7 +772,7 @@ public abstract class JTemplate> ex return ComparatorUtils.compare(versionString.substring(0, len), ProductConstants.DESIGNER_VERSION.substring(0, len)); } - + private int getVersionCompareHBB(String versionString){ if (StringUtils.isBlank(versionString)) { return 0; @@ -781,17 +780,17 @@ public abstract class JTemplate> ex return ComparatorUtils.compare(versionString, "HBB"); } - + private boolean isHigherThanCurrent(String versionString) { return getVersionCompare(versionString) > 0; } - + private boolean isLowerThanCurrent(String versionString) { - return getVersionCompare(versionString) < 0; + return getVersionCompare(versionString) < 0; } - + private boolean isLowerThanHBB(String versionString) { - return getVersionCompareHBB(versionString) < 0; + return getVersionCompareHBB(versionString) < 0; } /** @@ -801,7 +800,7 @@ public abstract class JTemplate> ex public boolean isNewDesigner() { String xmlDesignerVersion = getTarget().getXMLDesignerVersion(); if (isLowerThanHBB(xmlDesignerVersion)) { - String info = Inter.getLocText("FR-Designer_open-new-form-tip"); + String info = Inter.getLocText("FR-Designer_open-new-form-tip"); String moreInfo = Inter.getLocText("FR-Designer_Server-version-tip-moreInfo"); new InformationWarnPane(info, moreInfo, Inter.getLocText("FR-Designer_Tooltips")).show(); return true; @@ -855,13 +854,13 @@ public abstract class JTemplate> ex * @return 是则返回true */ public abstract boolean isJWorkBook(); - + /** * 返回当前支持的超链界面pane * @return 超链连接界面 */ public HyperlinkGroupPane getHyperLinkPane() { - return new HyperlinkGroupPane(); + return new HyperlinkGroupPane(); } /** @@ -916,29 +915,29 @@ public abstract class JTemplate> ex public void requestGridFocus() { } - + /** - * 创建内置sql提交的pane - * - * @return 内置sql提交的pane - * - * - * @date 2014-10-14-下午7:39:27 - */ + * 创建内置sql提交的pane + * + * @return 内置sql提交的pane + * + * + * @date 2014-10-14-下午7:39:27 + */ public DBManipulationPane createDBManipulationPane(){ - return new DBManipulationPane(); + return new DBManipulationPane(); } - + /** * 创建控件事件里内置sql提交的pane - * + * * @return 内置sql提交的pane - * + * * * @date 2014-10-14-下午7:39:27 */ public DBManipulationPane createDBManipulationPaneInWidget(){ - return new DBManipulationInWidgetEventPane(); + return new DBManipulationInWidgetEventPane(); } /** @@ -966,15 +965,15 @@ public abstract class JTemplate> ex public void styleChange(){ } - + /** - * 创建分享模板的按钮, 目前只有jworkbook实现了 - * - * @return 分享模板按钮 - * - */ + * 创建分享模板的按钮, 目前只有jworkbook实现了 + * + * @return 分享模板按钮 + * + */ public UIButton[] createShareButton(){ - return new UIButton[0]; + return new UIButton[0]; } /** diff --git a/designer_base/src/com/fr/design/mainframe/templateinfo/TemplateInfoCollector.java b/designer_base/src/com/fr/design/mainframe/templateinfo/TemplateInfoCollector.java index e5c6688ec9..b9b7aa194e 100644 --- a/designer_base/src/com/fr/design/mainframe/templateinfo/TemplateInfoCollector.java +++ b/designer_base/src/com/fr/design/mainframe/templateinfo/TemplateInfoCollector.java @@ -73,6 +73,8 @@ public class TemplateInfoCollector implements Serializable { } catch (InvalidClassException ex) { // 如果 TemplateInfoCollecor 类结构有改动,则放弃之前收集的数据(下次保存时覆盖) // 这种情况主要在开发、测试过程中遇到,正式上线后不应该出现 + FRLogger.getLogger().info(ex.getMessage()); + FRLogger.getLogger().info("use a new instance"); instance = new TemplateInfoCollector(); } catch (Exception ex) { @@ -121,6 +123,14 @@ public class TemplateInfoCollector implements Serializable { private void saveInfo() { try { ObjectOutputStream os = new ObjectOutputStream(new FileOutputStream(getInfoFile())); + String log = ""; + int count = 1; + for (String key : templateInfoList.keySet()) { + String createTime = ((HashMap)templateInfoList.get(key).get("consumingMap")).get("create_time").toString(); + log += (count + ". id: " + key + " " + createTime + "\n" + templateInfoList.get(key).toString() + "\n"); + count ++; + } + FRLogger.getLogger().info("writing tplInfo: \n" + log); os.writeObject(instance); os.close(); } catch (Exception ex) { @@ -231,7 +241,10 @@ public class TemplateInfoCollector implements Serializable { String jsonProcessMap = templateInfo.get("jsonProcessMap"); if (sendSingleTemplateInfo(consumingUrl, jsonConsumingMap) && sendSingleTemplateInfo(processUrl, jsonProcessMap)) { // 清空记录 + FRLogger.getLogger().info("successfully send " + templateInfo.get("templateID")); removeFromTemplateInfoList(templateInfo.get("templateID")); + } else { + FRLogger.getLogger().info("send template info failed, will try next time, " + templateInfo.get("templateID")); } } saveInfo(); @@ -290,6 +303,7 @@ public class TemplateInfoCollector implements Serializable { private void removeFromTemplateInfoList(String key) { templateInfoList.remove(key); + FRLogger.getLogger().info(key + " is removed..."); } @SuppressWarnings("unchecked") diff --git a/designer_chart/src/com/fr/design/chart/axis/MinMaxValuePane.java b/designer_chart/src/com/fr/design/chart/axis/MinMaxValuePane.java index 88a6b528ec..8a157f0843 100644 --- a/designer_chart/src/com/fr/design/chart/axis/MinMaxValuePane.java +++ b/designer_chart/src/com/fr/design/chart/axis/MinMaxValuePane.java @@ -31,17 +31,18 @@ public class MinMaxValuePane extends JPanel { protected UITextField secUnitField; public MinMaxValuePane() { - minCheckBox = new UICheckBox(Inter.getLocText(new String[]{"Custom", "Min_Value"})); - minValueField = new UITextField(6); - maxCheckBox = new UICheckBox(Inter.getLocText(new String[]{"Custom", "Max_Value"})); - maxValueField = new UITextField(6); - isCustomMainUnitBox = new UICheckBox(Inter.getLocText("FR-Chart_MainGraduationUnit")); - mainUnitField = new UITextField(6); - isCustomSecUnitBox = new UICheckBox(Inter.getLocText("FR-Chart_SecondGraduationUnit")); - secUnitField = new UITextField(6); + minCheckBox = new UICheckBox(Inter.getLocText(new String[]{"Custom", "Min_Value"})); + minValueField = new UITextField(6); + maxCheckBox = new UICheckBox(Inter.getLocText(new String[]{"Custom", "Max_Value"})); + maxValueField = new UITextField(6); + isCustomMainUnitBox = new UICheckBox(Inter.getLocText("FR-Chart_MainGraduationUnit")); + mainUnitField = new UITextField(6); + isCustomSecUnitBox = new UICheckBox(Inter.getLocText("FR-Chart_SecondGraduationUnit")); + secUnitField = new UITextField(6); + double p = TableLayout.PREFERRED; double f = TableLayout.FILL; - double[] columnSize = { p, f }; + double[] columnSize = {p, f}; Component[][] components = getPanelComponents(); JPanel panel = TableLayoutHelper.createTableLayoutPane(components, getRowSize(p), columnSize); @@ -53,25 +54,26 @@ public class MinMaxValuePane extends JPanel { protected double[] getRowSize(double p) { return new double[]{p, p, p, p}; } - protected void addComponentListener(Component[][] components) { - for (int i = 0; i < components.length; i++) { - addListener((UICheckBox) components[i][0]); - ChartSwingUtils.addListener((UICheckBox) components[i][0], (UITextField) components[i][1]); - } - } - protected void addListener(UICheckBox checkBox) { - checkBox.addActionListener(new ActionListener() { + protected void addComponentListener(Component[][] components) { + for (int i = 0; i < components.length; i++) { + addListener((UICheckBox) components[i][0]); + ChartSwingUtils.addListener((UICheckBox) components[i][0], (UITextField) components[i][1]); + } + } + + protected void addListener(UICheckBox checkBox) { + checkBox.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - checkBoxUse(); - } - }); - } + @Override + public void actionPerformed(ActionEvent e) { + checkBoxUse(); + } + }); + } protected Component[][] getPanelComponents() { - return new Component[][]{ + return new Component[][]{ new Component[]{minCheckBox, minValueField}, new Component[]{maxCheckBox, maxValueField}, new Component[]{isCustomMainUnitBox, mainUnitField}, From ee26840e533eb0e8298df11bf72f208e1a0d8a9e Mon Sep 17 00:00:00 2001 From: plough Date: Tue, 2 May 2017 17:15:51 +0800 Subject: [PATCH 58/72] =?UTF-8?q?=E6=97=A0JIRA=E4=BB=BB=E5=8A=A1=EF=BC=8C?= =?UTF-8?q?=E8=A7=A3=E5=86=B3=E5=86=B2=E7=AA=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- designer_base/src/com/fr/design/mainframe/JTemplate.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/designer_base/src/com/fr/design/mainframe/JTemplate.java b/designer_base/src/com/fr/design/mainframe/JTemplate.java index 48371c7871..a275d3d5df 100644 --- a/designer_base/src/com/fr/design/mainframe/JTemplate.java +++ b/designer_base/src/com/fr/design/mainframe/JTemplate.java @@ -529,12 +529,13 @@ public abstract class JTemplate> ex } protected boolean saveNewFile(FILE editingFILE, String oldName){ - this.editingFILE = editingFILE; + // 在保存之前,初始化 templateID + initForCollect(); // 如果保存新模板(新建模板直接保存,或者另存为),则添加 templateID + this.editingFILE = editingFILE; boolean result = this.saveFile(); if (result) { DesignerFrameFileDealerPane.getInstance().refresh(); - initForCollect(); // 如果保存新模板(新建模板直接保存,或者另存为),则添加 templateID collectInfo(); } //更换最近打开 @@ -1028,4 +1029,4 @@ public abstract class JTemplate> ex return uiButtons; } -} \ No newline at end of file +} From 53f18866a267b3a97979306dc3dc73948089792d Mon Sep 17 00:00:00 2001 From: plough Date: Tue, 2 May 2017 17:35:07 +0800 Subject: [PATCH 59/72] =?UTF-8?q?=E6=97=A0JIRA=E4=BB=BB=E5=8A=A1=EF=BC=8C?= =?UTF-8?q?=E5=9B=BD=E9=99=85=E5=8C=96=EF=BC=8C=E6=8A=8Arelease=E3=80=81ma?= =?UTF-8?q?ster=E4=B8=AD=E7=9A=84key=E5=90=88=E5=B9=B6=E5=88=B0dev?= =?UTF-8?q?=E4=B8=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/fr/design/locale/designer.properties | 7 ++++ .../design/locale/designer_en_US.properties | 8 ++++ .../design/locale/designer_ja_JP.properties | 34 +++++++++++++++- .../design/locale/designer_ko_KR.properties | 40 ++++++++++++++++++- .../design/locale/designer_zh_CN.properties | 4 +- .../design/locale/designer_zh_TW.properties | 16 +++++++- 6 files changed, 105 insertions(+), 4 deletions(-) diff --git a/designer_base/src/com/fr/design/locale/designer.properties b/designer_base/src/com/fr/design/locale/designer.properties index cc75cee8ac..0ec6015c8f 100644 --- a/designer_base/src/com/fr/design/locale/designer.properties +++ b/designer_base/src/com/fr/design/locale/designer.properties @@ -600,3 +600,10 @@ FR-Designer_Style=Style FR-Designer_Color=Color FR-Designer_Border=Border FR-Designer_Background-Pattern=Pattern + +FR-Designer_Properties_Mobile= +FR-Designer_Edit_Button_ToolBar= +FR-Designer_Remove_Button_ToolBar= +FR-Designer_Get-CubeGetting= +FR-Designer_Oracle= +FR-Designer_Validate= diff --git a/designer_base/src/com/fr/design/locale/designer_en_US.properties b/designer_base/src/com/fr/design/locale/designer_en_US.properties index 1c646aebeb..b7c7fe3260 100644 --- a/designer_base/src/com/fr/design/locale/designer_en_US.properties +++ b/designer_base/src/com/fr/design/locale/designer_en_US.properties @@ -601,3 +601,11 @@ FR-Designer_Color=Color FR-Designer_Border=Border FR-Designer_Background-Pattern=Pattern + +FR-Designer_SimpleDetail_Report= +FR-Designer_SimpleCross_Report= +FR-Designer_Edit_Button_ToolBar=Edit Button ToolBar +FR-Designer_Remove_Button_ToolBar=Remove Button ToolBar +FR-Designer_Get-CubeGetting= +FR-Designer_DoubleLayer_Report= +FR-Designer_Get-Cube= diff --git a/designer_base/src/com/fr/design/locale/designer_ja_JP.properties b/designer_base/src/com/fr/design/locale/designer_ja_JP.properties index 2f4affb916..99070465e4 100644 --- a/designer_base/src/com/fr/design/locale/designer_ja_JP.properties +++ b/designer_base/src/com/fr/design/locale/designer_ja_JP.properties @@ -564,4 +564,36 @@ FR-Designer_Chart_F_Radar_Axis=\u5782\u76F4\u8EF8 FR-Designer_Style=\u30B9\u30BF\u30A4\u30EB FR-Designer_Color=\u8272 FR-Designer_Border=\u67A0 -FR-Designer_Background-Pattern=\u30D1\u30BF\u30FC\u30F3 \ No newline at end of file +FR-Designer_Background-Pattern=\u30D1\u30BF\u30FC\u30F3 +FR-Designer_Printer_Native_Button=\u30ED\u30FC\u30AB\u30EB\u5370\u5237 +FR-Designer_SimpleDetail_Report=\u7C21\u5358\u660E\u7D30\u8868 +FR-Designer_Reset=\u30EA\u30BB\u30C3\u30C8 +FR-Designer_WidgetOrder=\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u306E\u9806\u756A +FR-Designer_Button-OK=\u5206\u304B\u308A\u307E\u3057\u305F +FR-Designer_Mobile-Warning=\u6700\u5927\u306E\u9AD8\u3055\u306F\u8868\u793A\u30A8\u30EA\u30A2\u306E80\uFF05\u4EE5\u4E0A\u306B\u306A\u308A\u307E\u305B\u3093 +FR-Designer_Mobile_Form_Analysis_Annotation=\u8AAC\u660E\:\u8A72\u5F53\u8A2D\u5B9A\u3088\u308A\u3001\u30C0\u30C3\u30B7\u30E5\u30DC\u30FC\u30C9\u306E\u30A2\u30D7\u30EA\u3067\u306E\u89E3\u6790\u30E2\u30FC\u30C9\u3092\u8A2D\u5B9A\u3067\u304D\u307E\u3059\u3002 +FR-Designer-Invalid_Page_Number=\u7121\u52B9\u306A\u30DA\u30FC\u30B8\u756A\u53F7 +FR-Designer_Form-Forzen-Speed=\u3001\u305D\u3057\u3066\u6A2A\u65B9\u5411\u81EA\u5DF1\u9069\u5FDC\u307E\u305F\u306F2\u65B9\u5411\u81EA\u52D5\u9069\u5FDC\u3092\u5229\u7528\u3057\u3001\u5E33\u7968\u8868\u793A\u306E\u30B9\u30D4\u30FC\u30C9\u3092\u4E0A\u3052\u3067\u304D\u307E\u3059\u3002 +FR-Designer_Properties_Mobile=\u30B9\u30DE\u30FC\u30C8\u30D5\u30A9\u30F3\u5C5E\u6027 +FR-Designer_AllCategories=\u5168\u3066\u306E\u7A2E\u985E +FR-Designer-Selected_Widget=\u5F53\u306E\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8 +FR-Designer_SimpleCross_Report=\u7C21\u5358\u30AF\u30ED\u30FC\u30B9\u8868 +FR-Designer_Log=\u30ED\u30B0 +FR-Designer_Form-Fit-Tip=\u81EA\u5DF1\u9069\u5FDC\u30D7\u30E9\u30B0\u30A4\u30F3 +FR-Designer_Button-Cancel=\u53D6\u308A\u6D88\u3057 +FR-Designer_LocalWidget=\u30ED\u30FC\u30AB\u30EB\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u30E9\u30A4\u30D6\u30E9\u30EA +FR-Designer_Alert=\u30A2\u30E9\u30FC\u30C8 +FR-Designer_TableData-Default-Para=\u30C7\u30FC\u30BF\u30BB\u30C3\u30C8\u306E\u30C7\u30D5\u30A9\u30EB\u30C8\u30D1\u30E9\u30E1\u30FC\u30BF +FR-Designer_Edit_Button_ToolBar=\u30DC\u30BF\u30F3\u306E\u30C4\u30FC\u30EB\u30D0\u30FC\u3092\u7DE8\u96C6 +FR-Designer-Plugin_Please_Update_Jar=jar\u30D1\u30C3\u30AF\u3092\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8\u3057\u3066\u304F\u3060\u3055\u3044 +FR-Designer_Form-Frozen-Tip=\u30D5\u30EA\u30FC\u30BA\u3092\u4F7F\u3046\u6642\u3001\u5F8C\u8A18\u306E\u30D7\u30E9\u30B0\u30A4\u30F3\u3092\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u3057\u3066\u304F\u3060\u3055\u3044\uFF1A +FR-Designer_Remove_Button_ToolBar=\u30DC\u30BF\u30F3\u306E\u30C4\u30FC\u30EB\u30D0\u30FC\u3092\u524A\u9664 +FR-Designer_Normal=\u6B63\u5E38 +FR-Designer_Install_Template=\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u3092\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB +FR-Designer_Copy=\u30B3\u30D4\u30FC +FR-Designer_Allow-Blank=\u7A7A\u306B\u8A31\u3059 +FR-Designer_Clear_All=\u5168\u3066\u3092\u30AF\u30EA\u30A2 +FR-Designer_Delete_Template=\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u3092\u524A\u9664 +FR-Designer_Mobile_Report_Analysis_Annotation=\u8AAC\u660E\:\u8A72\u5F53\u5C5E\u6027\u3088\u308A\u3001\u30C0\u30C3\u30B7\u30E5\u30DC\u30FC\u30C9\u306E\u30A2\u30D7\u30EA\u3067\u306E\u89E3\u6790\u30E2\u30FC\u30C9\u3092\u8A2D\u5B9A\u3067\u304D\u307E\u3059\u3001\u9801\u5206\u3051\u30D7\u30EC\u30D3\u30E5\u30FC\u3060\u3051\u3092\u652F\u6301\u3001\u66F8\u304D\u8FBC\u307F\u306B\u8A2D\u5B9A\u3059\u308B\u6642\u7121\u52B9\u306B\u306A\u308A\u307E\u3059\u3002 +FR-Designer_DoubleLayer_Report=\u4E8C\u968E\u30BF\u30A4\u30C8\u30EB +FR-Designer_Validate=\u691C\u8A3C diff --git a/designer_base/src/com/fr/design/locale/designer_ko_KR.properties b/designer_base/src/com/fr/design/locale/designer_ko_KR.properties index 075b017ab1..8753946187 100644 --- a/designer_base/src/com/fr/design/locale/designer_ko_KR.properties +++ b/designer_base/src/com/fr/design/locale/designer_ko_KR.properties @@ -559,4 +559,42 @@ FR-Designer_Chart_F_Radar_Axis=\uAC12\uCD95 FR-Designer_Style=\uC591\uC2DD FR-Designer_Color=\uC0C9 FR-Designer_Border=\uD14C\uB450\uB9AC -FR-Designer_Background-Pattern=\uC774\uBBF8\uC9C0 \ No newline at end of file +FR-Designer_Background-Pattern=\uC774\uBBF8\uC9C0 +FR-Designer_COMMUNITY_BUG= +FR-Designer_Mobile-Attr= +FR-Designer_Too_Large_To_Paste= +FR-Designer_COMMUNITY_QUESTIONS= +FR-Designer_COMMUNITY_NEED= +FR-Designer_WidgetOrder= +FR-Designer_Button-OK= +FR-Designer_Mobile-Warning= +FR-Designer_COMMUNITY= +FR-Designer_Mobile_Form_Analysis_Annotation= +FR-Designer-Invalid_Page_Number= +FR-Designer_Form-Forzen-Speed= +FR-Designer_Properties_Mobile= +FR-Designer_AllCategories= +FR-Designer_COMMUNITY_VIDEO= +FR-Designer_Too_Small_To_Paste= +FR-Designer_COMMUNITY_HELP= +FR-Designer_Mobile-Zoom= +FR-Designer_SimpleCross_Report= +FR-Designer_Mobile-Horizontal= +FR-Designer_Form-Fit-Tip= +FR-Designer_Mobile-Vertical= +FR-Designer_Button-Cancel= +FR-Designer_LocalWidget= +FR-Designer_COMMUNITY_SIGN= +FR-Designer_TableData-Default-Para= +FR-Designer_Edit_Button_ToolBar=\uD0A4\uAC00\uC788\uB294\uD234\uBC14\uD3B8\uC9D1 +FR-Designer_Mobile-Open= +FR-Designer_Form-Frozen-Tip= +FR-Designer_Remove_Button_ToolBar=\uD0A4\uAC00\uC788\uB294\uD234\uBC14\uC81C\uAC70 +FR-Designer_Allow-Blank= +FR-Designer_COMMUNITY_BBS= +FR-Designer_formDesignerModule= +FR-Designer_COMMUNITY_UPDATE= +FR-Designer_Delete_Template= +FR-Designer_Mobile_Report_Analysis_Annotation= +FR-Designer_DoubleLayer_Report= +FR-Designer_Validate= diff --git a/designer_base/src/com/fr/design/locale/designer_zh_CN.properties b/designer_base/src/com/fr/design/locale/designer_zh_CN.properties index d0a2b05203..2740e54d22 100644 --- a/designer_base/src/com/fr/design/locale/designer_zh_CN.properties +++ b/designer_base/src/com/fr/design/locale/designer_zh_CN.properties @@ -599,4 +599,6 @@ FR-Designer_Chart_F_Radar_Axis=\u503C\u8F74 FR-Designer_Style=\u6837\u5F0F FR-Designer_Color=\u989C\u8272 FR-Designer_Border=\u8FB9\u6846 -FR-Designer_Background-Pattern=\u56FE\u6848 \ No newline at end of file +FR-Designer_Background-Pattern=\u56FE\u6848 +FR-Designer_Edit_Button_ToolBar=\u7F16\u8F91\u6309\u94AE\u6240\u5728\u5DE5\u5177\u680F +FR-Designer_Remove_Button_ToolBar=\u79FB\u9664\u6309\u94AE\u6240\u5728\u5DE5\u5177\u680F diff --git a/designer_base/src/com/fr/design/locale/designer_zh_TW.properties b/designer_base/src/com/fr/design/locale/designer_zh_TW.properties index bbaf3db36d..92897929ae 100644 --- a/designer_base/src/com/fr/design/locale/designer_zh_TW.properties +++ b/designer_base/src/com/fr/design/locale/designer_zh_TW.properties @@ -585,4 +585,18 @@ FR-Designer_Chart_F_Radar_Axis=\u503C\u8EF8 FR-Designer_Style=\u6A23\u5F0F FR-Designer_Color=\u984F\u8272 FR-Designer_Border=\u6846\u7DDA -FR-Designer_Background-Pattern=\u5716\u6848 \ No newline at end of file +FR-Designer_Background-Pattern=\u5716\u6848 +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= +FR-Designer_Allow-Blank= +FR-Designer_Delete_Template= +FR-Designer_Download_Template= +FR-Designer_DoubleLayer_Report= +FR-Designer_Validate= From 329d11029ab8c9dff04a09364255e03b692d6df0 Mon Sep 17 00:00:00 2001 From: "yaoh.wu" Date: Tue, 2 May 2017 19:23:25 +0800 Subject: [PATCH 60/72] =?UTF-8?q?=E6=97=A0=E4=BB=BB=E5=8A=A1=EF=BC=8C?= =?UTF-8?q?=E5=86=B2=E7=AA=81=E8=B0=83=E6=95=B4=EF=BC=8Crelease=E5=88=B0de?= =?UTF-8?q?v?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../designer/creator/XWAbsoluteLayout.java | 924 +++++++++--------- .../design/mainframe/FormSelectionUtils.java | 4 +- 2 files changed, 474 insertions(+), 454 deletions(-) diff --git a/designer_form/src/com/fr/design/designer/creator/XWAbsoluteLayout.java b/designer_form/src/com/fr/design/designer/creator/XWAbsoluteLayout.java index b585383c66..852cdf1220 100644 --- a/designer_form/src/com/fr/design/designer/creator/XWAbsoluteLayout.java +++ b/designer_form/src/com/fr/design/designer/creator/XWAbsoluteLayout.java @@ -3,14 +3,6 @@ */ package com.fr.design.designer.creator; -import java.awt.*; -import java.awt.event.ContainerEvent; -import java.awt.event.MouseEvent; -import java.awt.image.BufferedImage; -import java.beans.IntrospectionException; -import java.util.ArrayList; -import java.util.HashMap; - import com.fr.design.designer.beans.AdapterBus; import com.fr.design.designer.beans.ComponentAdapter; import com.fr.design.designer.beans.LayoutAdapter; @@ -20,345 +12,369 @@ import com.fr.design.designer.beans.models.SelectionModel; import com.fr.design.designer.creator.cardlayout.XWTabFitLayout; import com.fr.design.form.layout.FRAbsoluteLayout; import com.fr.design.icon.IconPathConstants; -import com.fr.design.mainframe.*; +import com.fr.design.mainframe.EditingMouseListener; +import com.fr.design.mainframe.FormArea; +import com.fr.design.mainframe.FormDesigner; import com.fr.form.ui.Connector; import com.fr.form.ui.Widget; import com.fr.form.ui.container.WAbsoluteLayout; -import com.fr.form.ui.container.WLayout; import com.fr.form.ui.container.WAbsoluteLayout.BoundsWidget; +import com.fr.form.ui.container.WLayout; import com.fr.general.FRScreen; import com.fr.general.IOUtils; import com.fr.general.Inter; +import java.awt.*; +import java.awt.event.ContainerEvent; +import java.awt.event.MouseEvent; +import java.awt.image.BufferedImage; +import java.beans.IntrospectionException; +import java.util.ArrayList; +import java.util.HashMap; + /** * @author richer * @since 6.5.3 */ public class XWAbsoluteLayout extends XLayoutContainer { - private static final int EDIT_BTN_WIDTH = 60; - private static final int EDIT_BTN_HEIGHT = 24; - private int minWidth = WLayout.MIN_WIDTH; - private int minHeight = WLayout.MIN_HEIGHT; - - //由于屏幕分辨率不同,界面上的容器大小可能不是默认的100%,此时拖入组件时,保存的大小按照100%时的计算 - protected double containerPercent = 1.0; - - private HashMap xConnectorMap; - - public XWAbsoluteLayout() { - this(new WAbsoluteLayout(),new Dimension()); - } - - public XWAbsoluteLayout(WAbsoluteLayout widget) { - this(widget,new Dimension()); - } - - public XWAbsoluteLayout(WAbsoluteLayout widget, Dimension initSize) { - super(widget, initSize); - this.xConnectorMap = new HashMap(); - Connector connector; - for (int i = 0; i < widget.connectorCount(); i++) { - connector = widget.getConnectorIndex(i); - xConnectorMap.put(connector, new XConnector(connector, this)); - } - - initPercent(widget); - } - - /** - * 初始化时默认的组件大小 - * - * @return 默认Dimension - */ - @Override - public Dimension initEditorSize() { - return new Dimension(500, 300); - } - - //根据屏幕大小来确定显示的百分比, 1440*900默认100%, 1366*768缩放90% - private void initPercent(WAbsoluteLayout widget){ - Toolkit toolkit = Toolkit.getDefaultToolkit(); - Dimension scrnsize = toolkit.getScreenSize(); - double screenValue = FRScreen.getByDimension(scrnsize).getValue(); - if(screenValue != FormArea.DEFAULT_SLIDER){ - this.setContainerPercent(screenValue / FormArea.DEFAULT_SLIDER); - } - } - - /** - * 返回容器大小的百分比 - * @return the containerPercent - */ - public double getContainerPercent() { - return containerPercent; - } - - /** - * 设置容器大小的百分比 - * @param containerPercent the containerPercent to set - */ - public void setContainerPercent(double containerPercent) { - this.containerPercent = containerPercent; - minWidth = (int) (XWAbsoluteLayout.MIN_WIDTH*containerPercent); - minHeight = (int) (XWAbsoluteLayout.MIN_HEIGHT*containerPercent); - } - - /** - * 返回界面处根据百分比调整后的最小宽度 - * @return 最小宽度 - */ - public int getActualMinWidth() { - return this.minWidth; - } - - /** - * 返回界面处根据百分比调整后的最小高度 - * @return 最小高度 - */ - public int getActualMinHeight() { - return this.minHeight; - } - - /** - * 返回界面处根据百分比调整后的间隔大小(且为偶数) - * @return 间隔 - */ - public int getAcualInterval() { - // adapter那边交叉三等分、删除都要判断是否对齐,所以间隔转为偶数 - int interval = (int) (toData().getCompInterval()*containerPercent); - int val = interval/2; - return val*2; - } - - /** - * 界面容器大小不是默认的时,处理控件的BoundsWidget,且避免出现空隙 - */ - private Rectangle dealWidgetBound(Rectangle rec) { - if (containerPercent == 1.0) { - return rec; - } - rec.x = (int) (rec.x/containerPercent); - rec.y = (int) (rec.y/containerPercent); - rec.width = (int) (rec.width/containerPercent); - rec.height = (int) (rec.height/containerPercent); - return rec; - } - - /** - * 新增删除拉伸后单个组件的BoundsWidget - */ - public void updateBoundsWidget(XCreator xCreator) { - WAbsoluteLayout layout = this.toData(); - if (xCreator.hasTitleStyle()) { - xCreator = (XLayoutContainer)xCreator.getParent(); - } - if (xCreator.acceptType(XWAbsoluteLayout.class)){ - ((XWAbsoluteLayout) xCreator).updateBoundsWidget(); - } - // 如果子组件时tab布局,则tab布局内部的组件的wiget也要更新,否则保存后重新打开大小不对 - ArrayList childrenList = xCreator.getTargetChildrenList(); - if(!childrenList.isEmpty()){ - for(int i=0; i xConnectorMap; + + public XWAbsoluteLayout() { + this(new WAbsoluteLayout(), new Dimension()); + } + + public XWAbsoluteLayout(WAbsoluteLayout widget) { + this(widget, new Dimension()); + } + + public XWAbsoluteLayout(WAbsoluteLayout widget, Dimension initSize) { + super(widget, initSize); + this.xConnectorMap = new HashMap(); + Connector connector; + for (int i = 0; i < widget.connectorCount(); i++) { + connector = widget.getConnectorIndex(i); + xConnectorMap.put(connector, new XConnector(connector, this)); + } + + initPercent(widget); + } + + /** + * 初始化时默认的组件大小 + * + * @return 默认Dimension + */ + @Override + public Dimension initEditorSize() { + return new Dimension(500, 300); + } + + //根据屏幕大小来确定显示的百分比, 1440*900默认100%, 1366*768缩放90% + private void initPercent(WAbsoluteLayout widget) { + Toolkit toolkit = Toolkit.getDefaultToolkit(); + Dimension scrnsize = toolkit.getScreenSize(); + double screenValue = FRScreen.getByDimension(scrnsize).getValue(); + if (screenValue != FormArea.DEFAULT_SLIDER) { + this.setContainerPercent(screenValue / FormArea.DEFAULT_SLIDER); + } + } + + /** + * 返回容器大小的百分比 + * + * @return the containerPercent + */ + public double getContainerPercent() { + return containerPercent; + } + + /** + * 设置容器大小的百分比 + * + * @param containerPercent the containerPercent to set + */ + public void setContainerPercent(double containerPercent) { + this.containerPercent = containerPercent; + minWidth = (int) (XWAbsoluteLayout.MIN_WIDTH * containerPercent); + minHeight = (int) (XWAbsoluteLayout.MIN_HEIGHT * containerPercent); + } + + /** + * 返回界面处根据百分比调整后的最小宽度 + * + * @return 最小宽度 + */ + public int getActualMinWidth() { + return this.minWidth; + } + + /** + * 返回界面处根据百分比调整后的最小高度 + * + * @return 最小高度 + */ + public int getActualMinHeight() { + return this.minHeight; + } + + /** + * 返回界面处根据百分比调整后的间隔大小(且为偶数) + * + * @return 间隔 + */ + public int getAcualInterval() { + // adapter那边交叉三等分、删除都要判断是否对齐,所以间隔转为偶数 + int interval = (int) (toData().getCompInterval() * containerPercent); + int val = interval / 2; + return val * 2; + } + + /** + * 界面容器大小不是默认的时,处理控件的BoundsWidget,且避免出现空隙 + */ + private Rectangle dealWidgetBound(Rectangle rec) { + if (containerPercent == 1.0) { + return rec; + } + rec.x = (int) (rec.x / containerPercent); + rec.y = (int) (rec.y / containerPercent); + rec.width = (int) (rec.width / containerPercent); + rec.height = (int) (rec.height / containerPercent); + return rec; + } + + /** + * 新增删除拉伸后单个组件的BoundsWidget + */ + public void updateBoundsWidget(XCreator xCreator) { + WAbsoluteLayout layout = this.toData(); + if (xCreator.hasTitleStyle()) { + xCreator = (XLayoutContainer) xCreator.getParent(); + } + if (xCreator.acceptType(XWAbsoluteLayout.class)) { + ((XWAbsoluteLayout) xCreator).updateBoundsWidget(); + } + // 如果子组件时tab布局,则tab布局内部的组件的wiget也要更新,否则保存后重新打开大小不对 + ArrayList childrenList = xCreator.getTargetChildrenList(); + if (!childrenList.isEmpty()) { + for (int i = 0; i < childrenList.size(); i++) { + XWTabFitLayout tabLayout = (XWTabFitLayout) childrenList.get(i); + tabLayout.updateBoundsWidget(); + } + } + BoundsWidget boundsWidget = (BoundsWidget) layout.getBoundsWidget(xCreator.toData()); + Rectangle rectangle = dealWidgetBound(xCreator.getBounds()); + } + + private Rectangle calculateBound(Rectangle rec, double pw, double ph) { + Rectangle calRec = new Rectangle(0, 0, 0, 0); + calRec.x = (int) (rec.x / pw); + calRec.y = (int) (rec.y / ph); + calRec.width = (int) (rec.width / pw); + calRec.height = (int) (rec.height / ph); + return calRec; + } + + /** + * 新增删除拉伸后每个组件的BoundsWidget + */ + public void updateBoundsWidget() { + WAbsoluteLayout layout = this.toData(); + Rectangle backupBound = this.getBackupBound(); + Rectangle currentBound = this.getBounds(); + if (backupBound != null && layout.getCompState() == WAbsoluteLayout.STATE_FIT) { + double percentW = ((double) backupBound.width / (double) currentBound.width); + double percentH = ((double) backupBound.height / (double) currentBound.height); + for (int index = 0, n = this.getComponentCount(); index < n; index++) { + XCreator creator = (XCreator) this.getComponent(index); + BoundsWidget wgt = (BoundsWidget) layout.getBoundsWidget(creator.toData()); + // 用当前的显示大小计算后调正具体位置 + Rectangle wgtBound = creator.getBounds(); + Rectangle rec = calculateBound(wgtBound, percentW, percentH); + wgt.setBounds(rec); + creator.setBounds(rec); + //绝对布局嵌套,要更新内部的绝对布局 + if (creator.acceptType(XWAbsoluteLayout.class)) { + creator.setBackupBound(wgtBound); + ((XWAbsoluteLayout) creator).updateBoundsWidget(); + } + } + } + } + + /** + * 更新子组件的Bound + * 这边主要用于绝对布局子组件在适应区域选项时 + * 涉及到的不同分辨率下缩放 + * + * @param minHeight 最小高度 + */ + @Override + public void updateChildBound(int minHeight) { + double prevContainerPercent = FRScreen.getByDimension(toData().getDesigningResolution()).getValue() / FormArea.DEFAULT_SLIDER; + if (toData().getCompState() == 0 && prevContainerPercent != containerPercent) { + for (int i = 0; i < this.getComponentCount(); i++) { + XCreator creator = getXCreator(i); + Rectangle rec = new Rectangle(creator.getBounds()); + rec.x = (int) (rec.x / prevContainerPercent * containerPercent); + rec.y = (int) (rec.y / prevContainerPercent * containerPercent); + rec.height = (int) (rec.height / prevContainerPercent * containerPercent); + rec.width = (int) (rec.width / prevContainerPercent * containerPercent); + BoundsWidget wgt = (BoundsWidget) toData().getBoundsWidget(creator.toData()); + wgt.setBounds(rec); + creator.setBounds(rec); + creator.updateChildBound(minHeight); + } + } + toData().setDesigningResolution(Toolkit.getDefaultToolkit().getScreenSize()); + } + + /** + * 增加对齐线 + * + * @param connector 对齐线 + */ + public void addConnector(Connector connector) { + xConnectorMap.put(connector, new XConnector(connector, this)); + ((WAbsoluteLayout) data).addConnector(connector); + } + + public XConnector getXConnector(Connector connector) { + return xConnectorMap.get(connector); + } + + /** + * 去除对齐线 + * + * @param connector 对齐线 + */ + public void removeConnector(Connector connector) { + ((WAbsoluteLayout) data).removeConnector(connector); + xConnectorMap.remove(connector); + } + + /** + * 返回对应的widget容器 + * + * @return 返回WAbsoluteLayout + */ + @Override + public WAbsoluteLayout toData() { + return (WAbsoluteLayout) data; + } + + @Override + protected String getIconName() { + return "layout_absolute_new.png"; + } + + /** + * 返回默认的容器name + * + * @return 返回绝对布局容器名 + */ + @Override + public String createDefaultName() { + return "absolute"; + } + + @Override + protected void initLayoutManager() { + this.setLayout(new FRAbsoluteLayout()); + } + + /** + * 是否支持标题样式 + * + * @return 默认false + */ + @Override + public boolean hasTitleStyle() { + return false; + } + + @Override + public void paintComponent(Graphics g) { + super.paintComponent(g); + WAbsoluteLayout layout = (WAbsoluteLayout) data; + Connector[] connector = layout.getConnector(); + for (int i = 0, size = connector.length; i < size; i++) { + connector[i].draw(g); + } + } + + /** + * 转换保存组件信息的wlayout为对应的container + */ + @Override + public void convert() { + isRefreshing = true; + WAbsoluteLayout abs = toData(); + this.removeAll(); + for (int i = 0, count = abs.getWidgetCount(); i < count; i++) { + BoundsWidget bw = (BoundsWidget) abs.getWidget(i); + if (bw != null) { + Rectangle bounds = bw.getBounds(); + XWidgetCreator comp = (XWidgetCreator) XCreatorUtils.createXCreator(bw.getWidget()); + if (!comp.acceptType(XWParameterLayout.class)) { + comp.setDirections(Direction.ALL); + } + add(comp); + comp.setBounds(bounds); + } + } + isRefreshing = false; + } + + /** + * 当前组件zorder位置替换新的控件 + * + * @param widget 控件 + * @param oldcreator 旧组件 + * @return 组件 + */ + @Override + public XCreator replace(Widget widget, XCreator oldcreator) { + int i = this.getComponentZOrder(oldcreator); + if (i != -1) { + this.toData().replace(new BoundsWidget(widget, oldcreator.getBounds()), + new BoundsWidget(oldcreator.toData(), oldcreator.getBounds())); + this.convert(); + return (XCreator) this.getComponent(i); + } + return null; + } + + /** * 组件增加 + * * @param e 容器事件 */ - @Override - public void componentAdded(ContainerEvent e) { - if (isRefreshing) { - return; - } - XWidgetCreator creator = (XWidgetCreator) e.getChild(); - WAbsoluteLayout wabs = this.toData(); - if (!creator.acceptType(XWFitLayout.class)) { - creator.setDirections(Direction.ALL); - } - wabs.addWidget(new BoundsWidget(creator.toData(), creator.getBounds())); - } - - /** + @Override + public void componentAdded(ContainerEvent e) { + if (isRefreshing) { + return; + } + XWidgetCreator creator = (XWidgetCreator) e.getChild(); + WAbsoluteLayout wabs = this.toData(); + if (!creator.acceptType(XWFitLayout.class)) { + creator.setDirections(Direction.ALL); + } + wabs.addWidget(new BoundsWidget(creator.toData(), creator.getBounds())); + } + + /** * 在设计界面中有组件移除的时候,需要通知WLayout容器重新paint + * * @param e 容器事件 */ @Override @@ -372,128 +388,130 @@ public class XWAbsoluteLayout extends XLayoutContainer { BoundsWidget bw = new BoundsWidget(wgt, xwc.getBounds()); wlayout.removeWidget(bw); } - - @Override - public Dimension getMinimumSize() { - return toData().getMinDesignSize(); - } - - @Override - public LayoutAdapter getLayoutAdapter() { - return new FRAbsoluteLayoutAdapter(this); - } - - @Override - public XLayoutContainer getTopLayout() { - XLayoutContainer xTopLayout = XCreatorUtils.getParentXLayoutContainer(this).getTopLayout(); - if (xTopLayout != null && !xTopLayout.isEditable()){ - return xTopLayout; - } - else{ - return this; - } - } - - /** - * 得到属性名 - * @return 属性名 - * @throws java.beans.IntrospectionException - */ - public CRPropertyDescriptor[] supportedDescriptor() throws IntrospectionException { - return new CRPropertyDescriptor[] { - new CRPropertyDescriptor("widgetName", this.data.getClass()).setI18NName( - Inter.getLocText("FR-Designer_Form-Widget_Name")) - }; - } - - public void paint(Graphics g) { - super.paint(g); - //如果鼠标移动到布局内且布局不可编辑,画出编辑蒙层 - if (isMouseEnter && !this.editable) { - int x = 0; - int y = 0; - int w = getWidth(); - int h = getHeight(); - - Graphics2D g2d = (Graphics2D) g; - Composite oldComposite = g2d.getComposite(); - //画白色的编辑层 - g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 60 / 100.0F)); - g2d.setColor(Color.WHITE); - g2d.fillRect(x, y, w, h); - //画编辑按钮所在框 - g2d.setComposite(oldComposite); - g2d.setColor(new Color(176, 196, 222)); - g2d.fillRect((x + w / 2 - EDIT_BTN_WIDTH / 2), (y + h / 2 - EDIT_BTN_HEIGHT / 2), EDIT_BTN_WIDTH, EDIT_BTN_HEIGHT); - //画编辑按钮图标 - BufferedImage image = IOUtils.readImage(IconPathConstants.TD_EDIT_ICON_PATH); - g2d.drawImage( - image, - (x + w / 2 - 23), - (y + h / 2 - image.getHeight() / 2), - image.getWidth(), - image.getHeight(), - null, - this - ); - g2d.setColor(Color.BLACK); - //画编辑文字 - g2d.drawString(Inter.getLocText("FR-Designer_Edit"), x + w / 2 - 2, y + h / 2 + 5); - } - } - - /** - * 响应点击事件 - * - * @param editingMouseListener 鼠标点击,位置处理器 - * @param e 鼠标点击事件 - */ - public void respondClick(EditingMouseListener editingMouseListener,MouseEvent e){ - FormDesigner designer = editingMouseListener.getDesigner(); - SelectionModel selectionModel = editingMouseListener.getSelectionModel(); - boolean isEditing = isEditable() || designer.getCursor().getType() == Cursor.HAND_CURSOR || e.getClickCount() == 2; - setEditable(isEditing); - - selectionModel.selectACreatorAtMouseEvent(e); - designer.repaint(); - - if (editingMouseListener.stopEditing()) { - if (this != designer.getRootComponent()) { - ComponentAdapter adapter = AdapterBus.getComponentAdapter(designer, this); - editingMouseListener.startEditing(this, isEditing ? adapter.getDesignerEditor() : null, adapter); - } - } - } - - /** - * body大小手动调整的时候 - * 按照比例调整组件的宽度 - * @param percent 比例 - */ - @Override - public void adjustCompWidth(double percent) { - for (int i = 0; i < getComponentCount(); i++) { - XCreator xCreator = (XCreator) getComponent(i); - Rectangle rectangle = xCreator.getBounds(); - xCreator.setBounds((int) (rectangle.x * percent), rectangle.y, (int) (rectangle.width * percent), rectangle.height); - BoundsWidget widget = (BoundsWidget) toData().getBoundsWidget(xCreator.toData()); - widget.setBounds(xCreator.getBounds()); - } - } - - /** - * body大小手动调整的时候 - * 按照比例调整组件的高度 - * @param percent 比例 - */ - @Override - public void adjustCompHeight(double percent) { - for (int i = 0; i < getComponentCount(); i++) { - XCreator xCreator = (XCreator) getComponent(i); - Rectangle rectangle = xCreator.getBounds(); - xCreator.setBounds(rectangle.x, (int) (rectangle.y * percent), rectangle.width, (int) (rectangle.height * percent)); - BoundsWidget widget = (BoundsWidget) toData().getBoundsWidget(xCreator.toData()); - widget.setBounds(xCreator.getBounds()); - } - } + + @Override + public Dimension getMinimumSize() { + return toData().getMinDesignSize(); + } + + @Override + public LayoutAdapter getLayoutAdapter() { + return new FRAbsoluteLayoutAdapter(this); + } + + @Override + public XLayoutContainer getTopLayout() { + XLayoutContainer xTopLayout = XCreatorUtils.getParentXLayoutContainer(this).getTopLayout(); + if (xTopLayout != null && !xTopLayout.isEditable()) { + return xTopLayout; + } else { + return this; + } + } + + /** + * 得到属性名 + * + * @return 属性名 + * @throws java.beans.IntrospectionException + */ + public CRPropertyDescriptor[] supportedDescriptor() throws IntrospectionException { + return new CRPropertyDescriptor[]{ + new CRPropertyDescriptor("widgetName", this.data.getClass()).setI18NName( + Inter.getLocText("FR-Designer_Form-Widget_Name")) + }; + } + + public void paint(Graphics g) { + super.paint(g); + //如果鼠标移动到布局内且布局不可编辑,画出编辑蒙层 + if (isMouseEnter && !this.editable) { + int x = 0; + int y = 0; + int w = getWidth(); + int h = getHeight(); + + Graphics2D g2d = (Graphics2D) g; + Composite oldComposite = g2d.getComposite(); + //画白色的编辑层 + g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 60 / 100.0F)); + g2d.setColor(Color.WHITE); + g2d.fillRect(x, y, w, h); + //画编辑按钮所在框 + g2d.setComposite(oldComposite); + g2d.setColor(new Color(176, 196, 222)); + g2d.fillRect((x + w / 2 - EDIT_BTN_WIDTH / 2), (y + h / 2 - EDIT_BTN_HEIGHT / 2), EDIT_BTN_WIDTH, EDIT_BTN_HEIGHT); + //画编辑按钮图标 + BufferedImage image = IOUtils.readImage(IconPathConstants.TD_EDIT_ICON_PATH); + g2d.drawImage( + image, + (x + w / 2 - 23), + (y + h / 2 - image.getHeight() / 2), + image.getWidth(), + image.getHeight(), + null, + this + ); + g2d.setColor(Color.BLACK); + //画编辑文字 + g2d.drawString(Inter.getLocText("FR-Designer_Edit"), x + w / 2 - 2, y + h / 2 + 5); + } + } + + /** + * 响应点击事件 + * + * @param editingMouseListener 鼠标点击,位置处理器 + * @param e 鼠标点击事件 + */ + public void respondClick(EditingMouseListener editingMouseListener, MouseEvent e) { + FormDesigner designer = editingMouseListener.getDesigner(); + SelectionModel selectionModel = editingMouseListener.getSelectionModel(); + boolean isEditing = isEditable() || designer.getCursor().getType() == Cursor.HAND_CURSOR || e.getClickCount() == 2; + setEditable(isEditing); + + selectionModel.selectACreatorAtMouseEvent(e); + designer.repaint(); + + if (editingMouseListener.stopEditing()) { + if (this != designer.getRootComponent()) { + ComponentAdapter adapter = AdapterBus.getComponentAdapter(designer, this); + editingMouseListener.startEditing(this, isEditing ? adapter.getDesignerEditor() : null, adapter); + } + } + } + + /** + * body大小手动调整的时候 + * 按照比例调整组件的宽度 + * + * @param percent 比例 + */ + @Override + public void adjustCompWidth(double percent) { + for (int i = 0; i < getComponentCount(); i++) { + XCreator xCreator = (XCreator) getComponent(i); + Rectangle rectangle = xCreator.getBounds(); + xCreator.setBounds((int) (rectangle.x * percent), rectangle.y, (int) (rectangle.width * percent), rectangle.height); + BoundsWidget widget = (BoundsWidget) toData().getBoundsWidget(xCreator.toData()); + widget.setBounds(xCreator.getBounds()); + } + } + + /** + * body大小手动调整的时候 + * 按照比例调整组件的高度 + * + * @param percent 比例 + */ + @Override + public void adjustCompHeight(double percent) { + for (int i = 0; i < getComponentCount(); i++) { + XCreator xCreator = (XCreator) getComponent(i); + Rectangle rectangle = xCreator.getBounds(); + xCreator.setBounds(rectangle.x, (int) (rectangle.y * percent), rectangle.width, (int) (rectangle.height * percent)); + BoundsWidget widget = (BoundsWidget) toData().getBoundsWidget(xCreator.toData()); + widget.setBounds(xCreator.getBounds()); + } + } } \ No newline at end of file diff --git a/designer_form/src/com/fr/design/mainframe/FormSelectionUtils.java b/designer_form/src/com/fr/design/mainframe/FormSelectionUtils.java index 90945b1e80..7a03782c25 100644 --- a/designer_form/src/com/fr/design/mainframe/FormSelectionUtils.java +++ b/designer_form/src/com/fr/design/mainframe/FormSelectionUtils.java @@ -133,8 +133,10 @@ public class FormSelectionUtils { boolean xOut = x < 0 || x + copiedCreator.getWidth() / 2 + xoffset > container.getWidth(); boolean yOut = y < 0 || y + copiedCreator.getHeight() / 2 + yoffset > container.getHeight(); + boolean isEdge = (x - DELAY_X_Y == container.getWidth() - copiedCreator.getWidth() / 2 - xoffset) + && (y - DELAY_X_Y == container.getHeight() - copiedCreator.getHeight() / 2 - yoffset); + y = yOut ? container.getHeight() - copiedCreator.getHeight() / 2 - yoffset : y; - boolean isEdge = (x - DELAY_X_Y == container.getWidth() - copiedCreator.getWidth() / 2 - xoffset); if (xOut) { if (isEdge) { //向左偏移 From d618c242acadec52ef0898cb3c1abbe51760e336 Mon Sep 17 00:00:00 2001 From: "yaoh.wu" Date: Wed, 3 May 2017 15:44:35 +0800 Subject: [PATCH 61/72] REPORT-2537 --- .../src/com/fr/design/mainframe/AuthorityEditToolBarPane.java | 2 +- .../fr/design/mainframe/ElementCasePaneAuthorityEditPane.java | 2 +- designer_base/src/com/fr/design/locale/designer.properties | 4 ++++ .../src/com/fr/design/locale/designer_en_US.properties | 4 ++++ .../src/com/fr/design/locale/designer_zh_CN.properties | 4 ++++ .../src/com/fr/design/locale/designer_zh_TW.properties | 4 ++++ 6 files changed, 18 insertions(+), 2 deletions(-) diff --git a/designer/src/com/fr/design/mainframe/AuthorityEditToolBarPane.java b/designer/src/com/fr/design/mainframe/AuthorityEditToolBarPane.java index d464d8f487..809de3c843 100644 --- a/designer/src/com/fr/design/mainframe/AuthorityEditToolBarPane.java +++ b/designer/src/com/fr/design/mainframe/AuthorityEditToolBarPane.java @@ -1 +1 @@ -package com.fr.design.mainframe; import com.fr.design.constants.LayoutConstants; import com.fr.design.constants.UIConstants; import com.fr.design.file.HistoryTemplateListPane; import com.fr.design.gui.icheckbox.UICheckBox; import com.fr.design.gui.ilable.UILabel; import com.fr.design.gui.itree.refreshabletree.ExpandMutableTreeNode; import com.fr.design.layout.FRGUIPaneFactory; import com.fr.design.layout.TableLayout; import com.fr.design.layout.TableLayoutHelper; import com.fr.design.roleAuthority.ReportAndFSManagePane; import com.fr.design.roleAuthority.RolesAlreadyEditedPane; import com.fr.design.webattr.ToolBarButton; import com.fr.general.ComparatorUtils; import com.fr.general.Inter; import com.fr.stable.StringUtils; import javax.swing.*; import javax.swing.tree.TreePath; import java.awt.*; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; import java.util.List; /** * 用于在权限编辑状态对工具栏的元素进行权限编辑的面板 * Author : daisy * Date: 13-9-18 * Time: 下午2:15 */ public class AuthorityEditToolBarPane extends AuthorityPropertyPane { private static final int TITLE_HEIGHT = 19; private AuthorityEditPane authorityEditPane = null; private AuthorityToolBarPane authorityToolBarPane; private String[] selectedPathArray; public AuthorityEditToolBarPane(List buttonlists) { super(HistoryTemplateListPane.getInstance().getCurrentEditingTemplate()); this.setLayout(new BorderLayout()); this.setBorder(null); UILabel authorityTitle = new UILabel(Inter.getLocText(new String[]{"DashBoard-Potence", "Edit"})) { @Override public Dimension getPreferredSize() { return new Dimension(super.getPreferredSize().width, TITLE_HEIGHT); } }; authorityTitle.setHorizontalAlignment(SwingConstants.CENTER); authorityTitle.setVerticalAlignment(SwingConstants.CENTER); JPanel northPane = FRGUIPaneFactory.createBorderLayout_S_Pane(); northPane.add(authorityTitle, BorderLayout.CENTER); northPane.setBorder(BorderFactory.createMatteBorder(0, 0, 1, 0, UIConstants.LINE_COLOR)); this.add(northPane, BorderLayout.NORTH); authorityEditPane = new AuthorityEditPane(buttonlists); this.add(authorityEditPane, BorderLayout.CENTER); } public void setAuthorityToolBarPane(AuthorityToolBarPane authorityToolBarPane) { this.authorityToolBarPane = authorityToolBarPane; } public void populate() { authorityToolBarPane.populateAuthority(); signelSelection(); authorityEditPane.populateDetials(); } private void signelSelection() { JTemplate jTemplate = HistoryTemplateListPane.getInstance().getCurrentEditingTemplate(); if (jTemplate.isJWorkBook()) { //清参数面板 jTemplate.removeParameterPaneSelection(); //清报表主体 jTemplate.removeTemplateSelection(); } } private class AuthorityEditPane extends JPanel { private static final int TOP_GAP = 11; private static final int LEFT_GAP = 8; private static final int ALIGNMENT_GAP = -3; private UILabel type = null; private UILabel name = null; private JPanel checkPane = null; private List buttonlists; private UICheckBox buttonVisible = new UICheckBox(Inter.getLocText("Widget-Visible")); private ItemListener itemListener = new ItemListener() { public void itemStateChanged(ItemEvent e) { String selectedRole = ReportAndFSManagePane.getInstance().getRoleTree().getSelectedRoleName(); initSelectedselectedPathArray(); if (ComparatorUtils.equals(selectedRole, Inter.getLocText("Role"))) { return; } if (selectedRole == null) { return; } if (selectedPathArray == null) { return; } for (int t = 0; t _buttonlists = AuthorityEditPane.this.buttonlists; for (int j = 0; j < _buttonlists.size(); j++) { if (_buttonlists.get(j).isSelected()) { //由引擎实现保存进模板报表 authorityToolBarPane.setAuthorityWebAttr(_buttonlists.get(j).getWidget(), checkbox.isSelected(), selectedPathArray[t]); } } } } }; private void initSelectedselectedPathArray () { TreePath[] selectionPaths = ReportAndFSManagePane.getInstance().getRoleTree().getCheckBoxTreeSelectionModel().getSelectionPaths(); if (selectionPaths.length == 1){ if(((ExpandMutableTreeNode)(selectionPaths[0].getLastPathComponent())).getChildCount() > 0){ ExpandMutableTreeNode node = (ExpandMutableTreeNode) ((ExpandMutableTreeNode)(selectionPaths[0].getLastPathComponent())).getLastChild(); selectedPathArray = new String[node.getChildCount()]; for (int i = 0 ; i < node.getChildCount(); i++) { ExpandMutableTreeNode n = (ExpandMutableTreeNode) node.getChildAt(i); String nodeName = n.getUserObject().toString(); selectedPathArray[i] = nodeName; } } else { selectedPathArray = pathToString(selectionPaths); } } else { selectedPathArray = pathToString(selectionPaths); } } protected String[] pathToString(TreePath[] path) { String roles = StringUtils.EMPTY; if(path == null || path.length == 0){ return null; } for(TreePath tempPath:path){ String temp = tempPath.toString(); boolean isTrue = temp.length() > 0 && temp.charAt(0) == '[' && temp.endsWith("]"); if (isTrue) { temp = temp.substring(1, temp.length() - 1); String[] selectedRoles = temp.split(","); String role = selectedRoles[2].trim(); if(roles.isEmpty()){ roles = role; }else{ roles = roles + "," + role; } } } String[] selectedRole = roles.split(","); return selectedRole; } public AuthorityEditPane(List buttonlists) { setLayout(new BorderLayout()); type = new UILabel(); name = new UILabel(); checkPane = new JPanel(); checkPane.setLayout(new BorderLayout()); this.add(layoutText(), BorderLayout.WEST); this.add(layoutPane(), BorderLayout.CENTER); this.setBorder(BorderFactory.createEmptyBorder(TOP_GAP, LEFT_GAP, 0, 0)); this.buttonlists = buttonlists; buttonVisible.addItemListener(itemListener); } private JPanel layoutText() { double p = TableLayout.PREFERRED; Component[][] components = new Component[][]{ new Component[]{new UILabel(Inter.getLocText("Type") + ":", SwingConstants.RIGHT)}, new Component[]{new UILabel(Inter.getLocText("WF-Name") + ":", SwingConstants.RIGHT)}, new Component[]{new UILabel(Inter.getLocText("DashBoard-Potence") + ":", SwingConstants.RIGHT)}, }; double[] rowSize = {p, p, p}; double[] columnSize = {p}; int[][] rowCount = {{1}, {1}, {1}}; return TableLayoutHelper.createGapTableLayoutPane(components, rowSize, columnSize, rowCount, LayoutConstants.VGAP_MEDIUM, LayoutConstants.VGAP_MEDIUM); } private JPanel layoutPane() { double f = TableLayout.FILL; double p = TableLayout.PREFERRED; Component[][] components = new Component[][]{ new Component[]{type}, new Component[]{name}, new Component[]{checkPane}, }; double[] rowSize = {p, p, p}; double[] columnSize = {f}; int[][] rowCount = {{1}, {1}, {1}}; return TableLayoutHelper.createGapTableLayoutPane(components, rowSize, columnSize, rowCount, LayoutConstants.VGAP_MEDIUM, LayoutConstants.VGAP_MEDIUM); } /** * 更新权限编辑面板的具体内容:类型、名称、权限面板 */ public void populateDetials() { populateName(); populateType(); populateCheckPane(); checkVisibleCheckBoxes(); } private void checkVisibleCheckBoxes() { buttonVisible.removeItemListener(itemListener); String selected = ReportAndFSManagePane.getInstance().getRoleTree().getSelectedRoleName(); if (selected == null) { buttonVisible.setSelected(true); } for (int i = 0; i < buttonlists.size(); i++) { if (buttonlists.get(i).isSelected()) { buttonVisible.setSelected(!buttonlists.get(i).isDoneAuthorityEdited(selected)); break; } } buttonVisible.addItemListener(itemListener); } public void populateType() { if (name.getText() == "") { type.setText(""); } else { type.setText(Inter.getLocText(new String[]{"ReportServerP-Toolbar", "Form-Button"})); } } public void populateName() { String names = ""; for (int i = 0; i < buttonlists.size(); i++) { if (buttonlists.get(i).isSelected()) { names += "," + buttonlists.get(i).getNameOption().optionName(); } } if (names != "") { names = names.substring(1); } name.setText(names); } public void populateCheckPane() { checkPane.removeAll(); if (name.getText() == "") { return; } double f = TableLayout.FILL; double p = TableLayout.PREFERRED; Component[][] components = new Component[][]{ new Component[]{new UILabel(Inter.getLocText("Form-Button"), SwingConstants.LEFT), buttonVisible}, }; double[] rowSize = {p, p}; double[] columnSize = {p, p, f}; int[][] rowCount = {{1, 1, 1}, {1, 1, 1}}; JPanel check = TableLayoutHelper.createGapTableLayoutPane(components, rowSize, columnSize, rowCount, LayoutConstants.VGAP_MEDIUM, LayoutConstants.VGAP_MEDIUM); checkPane.add(check, BorderLayout.CENTER); checkPane.setBorder(BorderFactory.createEmptyBorder(ALIGNMENT_GAP, 0, 0, 0)); } } } \ No newline at end of file +package com.fr.design.mainframe; import com.fr.design.constants.LayoutConstants; import com.fr.design.constants.UIConstants; import com.fr.design.file.HistoryTemplateListPane; import com.fr.design.gui.icheckbox.UICheckBox; import com.fr.design.gui.ilable.UILabel; import com.fr.design.gui.itree.refreshabletree.ExpandMutableTreeNode; import com.fr.design.layout.FRGUIPaneFactory; import com.fr.design.layout.TableLayout; import com.fr.design.layout.TableLayoutHelper; import com.fr.design.roleAuthority.ReportAndFSManagePane; import com.fr.design.roleAuthority.RolesAlreadyEditedPane; import com.fr.design.webattr.ToolBarButton; import com.fr.general.ComparatorUtils; import com.fr.general.Inter; import javax.swing.*; import javax.swing.tree.TreePath; import java.awt.*; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; import java.util.List; /** * 用于在权限编辑状态对工具栏的元素进行权限编辑的面板 * Author : daisy * Date: 13-9-18 * Time: 下午2:15 */ public class AuthorityEditToolBarPane extends AuthorityPropertyPane { private static final int TITLE_HEIGHT = 19; private AuthorityEditPane authorityEditPane = null; private AuthorityToolBarPane authorityToolBarPane; private String[] selectedPathArray; public AuthorityEditToolBarPane(List buttonlists) { super(HistoryTemplateListPane.getInstance().getCurrentEditingTemplate()); this.setLayout(new BorderLayout()); this.setBorder(null); UILabel authorityTitle = new UILabel(Inter.getLocText(new String[]{"FR-Designer_Permissions", "FR-Designer_Edit"})) { @Override public Dimension getPreferredSize() { return new Dimension(super.getPreferredSize().width, TITLE_HEIGHT); } }; authorityTitle.setHorizontalAlignment(SwingConstants.CENTER); authorityTitle.setVerticalAlignment(SwingConstants.CENTER); JPanel northPane = FRGUIPaneFactory.createBorderLayout_S_Pane(); northPane.add(authorityTitle, BorderLayout.CENTER); northPane.setBorder(BorderFactory.createMatteBorder(0, 0, 1, 0, UIConstants.LINE_COLOR)); this.add(northPane, BorderLayout.NORTH); authorityEditPane = new AuthorityEditPane(buttonlists); this.add(authorityEditPane, BorderLayout.CENTER); } public void setAuthorityToolBarPane(AuthorityToolBarPane authorityToolBarPane) { this.authorityToolBarPane = authorityToolBarPane; } public void populate() { authorityToolBarPane.populateAuthority(); signelSelection(); authorityEditPane.populateDetials(); } private void signelSelection() { JTemplate jTemplate = HistoryTemplateListPane.getInstance().getCurrentEditingTemplate(); if (jTemplate.isJWorkBook()) { //清参数面板 jTemplate.removeParameterPaneSelection(); //清报表主体 jTemplate.removeTemplateSelection(); } } private class AuthorityEditPane extends JPanel { private static final int TOP_GAP = 11; private static final int LEFT_GAP = 8; private static final int ALIGNMENT_GAP = -3; private UILabel type = null; private UILabel name = null; private JPanel checkPane = null; private List buttonlists; private UICheckBox buttonVisible = new UICheckBox(Inter.getLocText("FR-Designer_Visible")); private ItemListener itemListener = new ItemListener() { public void itemStateChanged(ItemEvent e) { String selectedRole = ReportAndFSManagePane.getInstance().getRoleTree().getSelectedRoleName(); initSelectedPathArray(); if (ComparatorUtils.equals(selectedRole, Inter.getLocText("FR-Designer_Role")) || selectedRole == null || selectedPathArray == null) { return; } for (int t = 0; t < selectedPathArray.length; t++) { for (int i = 0; i < buttonlists.size(); i++) { if (buttonlists.get(i).isSelected()) { buttonlists.get(i).changeAuthorityState(selectedPathArray[t], buttonVisible.isSelected()); authorityToolBarPane.repaint(); } } HistoryTemplateListPane.getInstance().getCurrentEditingTemplate().fireTargetModified(); RolesAlreadyEditedPane.getInstance().refreshDockingView(); UICheckBox checkbox = (UICheckBox) e.getSource(); List btns = AuthorityEditPane.this.buttonlists; for (int j = 0; j < btns.size(); j++) { if (btns.get(j).isSelected()) { //由引擎实现保存进模板报表 authorityToolBarPane.setAuthorityWebAttr(btns.get(j).getWidget(), checkbox.isSelected(), selectedPathArray[t]); } } } } }; /** * @see ElementCasePaneAuthorityEditPane initSelectedPathArray() */ private void initSelectedPathArray() { TreePath[] selectionPaths = ReportAndFSManagePane.getInstance().getRoleTree().getCheckBoxTreeSelectionModel().getSelectionPaths(); if (selectionPaths.length == 1) { if (((ExpandMutableTreeNode) (selectionPaths[0].getLastPathComponent())).getChildCount() > 0) { ExpandMutableTreeNode node = (ExpandMutableTreeNode) ((ExpandMutableTreeNode) (selectionPaths[0].getLastPathComponent())).getLastChild(); selectedPathArray = new String[node.getChildCount()]; for (int i = 0; i < node.getChildCount(); i++) { ExpandMutableTreeNode n = (ExpandMutableTreeNode) node.getChildAt(i); String nodeName = n.getUserObject().toString(); selectedPathArray[i] = nodeName; } } else { selectedPathArray = ElementCasePaneAuthorityEditPane.pathToString(selectionPaths); } } else { selectedPathArray = ElementCasePaneAuthorityEditPane.pathToString(selectionPaths); } } public AuthorityEditPane(List buttonlists) { setLayout(new BorderLayout()); type = new UILabel(); name = new UILabel(); checkPane = new JPanel(); checkPane.setLayout(new BorderLayout()); this.add(layoutText(), BorderLayout.WEST); this.add(layoutPane(), BorderLayout.CENTER); this.setBorder(BorderFactory.createEmptyBorder(TOP_GAP, LEFT_GAP, 0, 0)); this.buttonlists = buttonlists; buttonVisible.addItemListener(itemListener); } private JPanel layoutText() { double p = TableLayout.PREFERRED; Component[][] components = new Component[][]{ new Component[]{new UILabel(Inter.getLocText("FR-Designer_Type") + ":", SwingConstants.RIGHT)}, new Component[]{new UILabel(Inter.getLocText("FR-Designer_WF_Name") + ":", SwingConstants.RIGHT)}, new Component[]{new UILabel(Inter.getLocText("FR-Designer_Permissions") + ":", SwingConstants .RIGHT)}, }; double[] rowSize = {p, p, p}; double[] columnSize = {p}; int[][] rowCount = {{1}, {1}, {1}}; return TableLayoutHelper.createGapTableLayoutPane(components, rowSize, columnSize, rowCount, LayoutConstants.VGAP_MEDIUM, LayoutConstants.VGAP_MEDIUM); } private JPanel layoutPane() { double f = TableLayout.FILL; double p = TableLayout.PREFERRED; Component[][] components = new Component[][]{ new Component[]{type}, new Component[]{name}, new Component[]{checkPane}, }; double[] rowSize = {p, p, p}; double[] columnSize = {f}; int[][] rowCount = {{1}, {1}, {1}}; return TableLayoutHelper.createGapTableLayoutPane(components, rowSize, columnSize, rowCount, LayoutConstants.VGAP_MEDIUM, LayoutConstants.VGAP_MEDIUM); } /** * 更新权限编辑面板的具体内容:类型、名称、权限面板 */ public void populateDetials() { populateName(); populateType(); populateCheckPane(); checkVisibleCheckBoxes(); } private void checkVisibleCheckBoxes() { buttonVisible.removeItemListener(itemListener); String selected = ReportAndFSManagePane.getInstance().getRoleTree().getSelectedRoleName(); if (selected == null) { buttonVisible.setSelected(true); } for (int i = 0; i < buttonlists.size(); i++) { if (buttonlists.get(i).isSelected()) { buttonVisible.setSelected(!buttonlists.get(i).isDoneAuthorityEdited(selected)); break; } } buttonVisible.addItemListener(itemListener); } public void populateType() { if (name.getText() == "") { type.setText(""); } else { type.setText(Inter.getLocText(new String[]{"ReportServerP-Toolbar", "FR-Designer_Form_Button"})); } } public void populateName() { String names = ""; for (int i = 0; i < buttonlists.size(); i++) { if (buttonlists.get(i).isSelected()) { names += "," + buttonlists.get(i).getNameOption().optionName(); } } if (names != "") { names = names.substring(1); } name.setText(names); } public void populateCheckPane() { checkPane.removeAll(); if (name.getText() == "") { return; } double f = TableLayout.FILL; double p = TableLayout.PREFERRED; Component[][] components = new Component[][]{ new Component[]{new UILabel(Inter.getLocText("FR-Designer_Form_Button"), SwingConstants.LEFT), buttonVisible}, }; double[] rowSize = {p, p}; double[] columnSize = {p, p, f}; int[][] rowCount = {{1, 1, 1}, {1, 1, 1}}; JPanel check = TableLayoutHelper.createGapTableLayoutPane(components, rowSize, columnSize, rowCount, LayoutConstants.VGAP_MEDIUM, LayoutConstants.VGAP_MEDIUM); checkPane.add(check, BorderLayout.CENTER); checkPane.setBorder(BorderFactory.createEmptyBorder(ALIGNMENT_GAP, 0, 0, 0)); } } } \ No newline at end of file diff --git a/designer/src/com/fr/design/mainframe/ElementCasePaneAuthorityEditPane.java b/designer/src/com/fr/design/mainframe/ElementCasePaneAuthorityEditPane.java index 3f9a717dd4..2fa8535671 100644 --- a/designer/src/com/fr/design/mainframe/ElementCasePaneAuthorityEditPane.java +++ b/designer/src/com/fr/design/mainframe/ElementCasePaneAuthorityEditPane.java @@ -1 +1 @@ -package com.fr.design.mainframe; import com.fr.design.constants.LayoutConstants; import com.fr.design.editor.ValueEditorPane; import com.fr.design.editor.ValueEditorPaneFactory; import com.fr.design.event.UIObserverListener; import com.fr.design.file.HistoryTemplateListPane; import com.fr.design.gui.icheckbox.UICheckBox; import com.fr.design.gui.ilable.UILabel; import com.fr.design.gui.itree.refreshabletree.ExpandMutableTreeNode; import com.fr.design.layout.TableLayout; import com.fr.design.layout.TableLayoutHelper; import com.fr.design.mainframe.toolbar.AuthorityEditToolBarComponent; import com.fr.design.roleAuthority.ReportAndFSManagePane; import com.fr.design.roleAuthority.RolesAlreadyEditedPane; import com.fr.form.ui.Widget; import com.fr.general.ComparatorUtils; import com.fr.general.Inter; import com.fr.grid.selection.CellSelection; import com.fr.grid.selection.FloatSelection; import com.fr.grid.selection.Selection; import com.fr.js.NameJavaScriptGroup; import com.fr.report.cell.AbstractCellElement; import com.fr.report.cell.DefaultTemplateCellElement; import com.fr.report.cell.FloatElement; import com.fr.report.cell.TemplateCellElement; import com.fr.report.elementcase.TemplateElementCase; import com.fr.report.worksheet.WorkSheet; import com.fr.stable.ColumnRow; import com.fr.stable.StringUtils; import javax.swing.*; import javax.swing.tree.TreePath; import java.awt.*; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; /** * Author : daisy * Date: 13-9-4 * Time: 下午4:01 */ public class ElementCasePaneAuthorityEditPane extends AuthorityEditPane { private static final int WIDGET_VISIBLE = 0; private static final int WIDGET_USABLE = 1; private static final int CELL = 2; private static final int HYPER_LINK = 3; private static final int FLOAT_SELECTION = 3; private static final int NEW_VALUE = 4; //新值下面的编辑器的宽度 private static final int NEW_PANE_WIDTH = 120; private UICheckBox floatElementVisibleCheckBoxes = new UICheckBox(Inter.getLocText("FR-Designer_Visible")); private UICheckBox cellElementVisibleCheckBoxes = new UICheckBox(Inter.getLocText("FR-Designer_Visible")); private UICheckBox widgetVisible = new UICheckBox(Inter.getLocText("FR-Designer_Visible")); private UICheckBox widgetAvailable = new UICheckBox(Inter.getLocText("FR-Designer_Enabled")); private UICheckBox gridColumnRowVisible = new UICheckBox(Inter.getLocText("FR-Designer_Hide")); private UICheckBox newValue = new UICheckBox(Inter.getLocText("FR-Designer_New_Value")); private ValueEditorPane valueEditor = ValueEditorPaneFactory.createBasicValueEditorPane(NEW_PANE_WIDTH); private UICheckBox[] hyperlinkCheckBoxes = null; private ElementCasePane elementCasePane = null; private int selectionType = CellSelection.NORMAL; private CellSelection cellSelection; private FloatSelection floatSelection; private boolean isAllHasWidget; private boolean isAllHasHyperlink; private String[] selectedPathArray; private UIObserverListener observerListener = new UIObserverListener() { @Override public void doChange() { if (elementCasePane == null || cellSelection == null) { return; } if (setAuthorityStyle(NEW_VALUE)) { elementCasePane.fireTargetModified(); } } }; private ItemListener newValuelistener = new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (elementCasePane == null || cellSelection == null) { return; } if (setAuthorityStyle(NEW_VALUE)) { valueEditor.setEnabled(newValue.isSelected()); doAfterAuthority(); } } }; private ItemListener columnRowAuthorityListener = new ItemListener() { public void itemStateChanged(ItemEvent e) { if (elementCasePane == null) { return; } boolean isDone = false; if (selectionType == CellSelection.CHOOSE_COLUMN) { isDone = setAuthorityColumn(); } else { isDone = setAuthorityRow(); } if (isDone) { doAfterAuthority(); } } }; private ItemListener floatElementAuthorityListener = new ItemListener() { public void itemStateChanged(ItemEvent e) { if (elementCasePane == null || floatSelection == null) { return; } if (setLFloatAuthorityStyle()) { doAfterAuthority(); } } }; private ItemListener cellRolesAuthorityListener = new ItemListener() { public void itemStateChanged(ItemEvent e) { if (elementCasePane == null || cellSelection == null) { return; } if (setAuthorityStyle(CELL)) { doAfterAuthority(); } } }; private ItemListener widgetVisibleRoleAuthorityListener = new ItemListener() { public void itemStateChanged(ItemEvent e) { if (elementCasePane == null || cellSelection == null) { return; } if (setAuthorityStyle(WIDGET_VISIBLE)) { doAfterAuthority(); } } }; private ItemListener widgetUsableAuthorityListener = new ItemListener() { public void itemStateChanged(ItemEvent e) { if (elementCasePane == null || cellSelection == null) { return; } if (setAuthorityStyle(WIDGET_USABLE)) { doAfterAuthority(); } } }; public ElementCasePaneAuthorityEditPane(ElementCasePane elementCasePane) { super(elementCasePane); this.elementCasePane = elementCasePane; initCheckBoxesState(); initListener(); } private void doAfterAuthority() { elementCasePane.repaint(); elementCasePane.fireTargetModified(); RolesAlreadyEditedPane.getInstance().refreshDockingView(); RolesAlreadyEditedPane.getInstance().setReportAndFSSelectedRoles(); RolesAlreadyEditedPane.getInstance().repaint(); checkCheckBoxes(); } private boolean setAuthorityColumn() { initSelectedselectedPathArray(); String selectedRoles = ReportAndFSManagePane.getInstance().getRoleTree().getSelectedRoleName(); if (ComparatorUtils.equals(selectedRoles, Inter.getLocText("FR-Designer_Role"))) { return false; } if (selectedRoles == null) { return false; } if (selectedPathArray == null) { return false; } final TemplateElementCase elementCase = elementCasePane.getEditingElementCase(); boolean isVisible = !gridColumnRowVisible.isSelected(); for (int t = 0; t= 0; j--) { for (int i = cellRectangle.width - 1; i >= 0; i--) { int column = i + cellRectangle.x; int row = j + cellRectangle.y; TemplateCellElement editCellElement = elementCase.getTemplateCellElement(column, row); if (editCellElement == null) { editCellElement = new DefaultTemplateCellElement(column, row); elementCase.addCellElement(editCellElement); } else { // 对于合并的格子,我们不多次计算的权限. if (editCellElement.getColumn() != column || editCellElement.getRow() != row) { continue; } } if (type == CELL) { editCellElement.changeAuthorityState(selectedPathArray[t], cellElementVisibleCheckBoxes.isSelected()); } else if (type == NEW_VALUE) { editCellElement.changeNewValueAuthorityState(selectedPathArray[t], newValue.isSelected(), valueEditor.update()); } else if (type == WIDGET_VISIBLE) { Widget widget = editCellElement.getWidget(); widget.changeVisibleAuthorityState(selectedPathArray[t], widgetVisible.isSelected()); } else { Widget widget = editCellElement.getWidget(); widget.changeUsableAuthorityState(selectedPathArray[t], widgetAvailable.isSelected()); } } } } } return true; } private void initSelectedselectedPathArray () { TreePath[] selectionPaths = ReportAndFSManagePane.getInstance().getRoleTree().getCheckBoxTreeSelectionModel().getSelectionPaths(); if (selectionPaths.length == 1){ if(((ExpandMutableTreeNode)(selectionPaths[0].getLastPathComponent())).getChildCount() > 0){ ExpandMutableTreeNode node = (ExpandMutableTreeNode) ((ExpandMutableTreeNode)(selectionPaths[0].getLastPathComponent())).getLastChild(); System.out.printf(node.getUserObject().toString()); selectedPathArray = new String[node.getChildCount()]; for (int i = 0; i < node.getChildCount(); i++) { ExpandMutableTreeNode n = (ExpandMutableTreeNode) node.getChildAt(i); String nodeName = n.getUserObject().toString(); selectedPathArray[i] = nodeName; } } else { selectedPathArray = pathToString(selectionPaths); } } else { selectedPathArray = pathToString(selectionPaths); } } protected String[] pathToString(TreePath[] path) { String roles = StringUtils.EMPTY; if(path == null || path.length == 0){ return null; } for(TreePath tempPath:path){ String temp = tempPath.toString(); boolean isTrue = temp.length() > 0 && temp.charAt(0) == '[' && temp.endsWith("]"); if (isTrue) { temp = temp.substring(1, temp.length() - 1); String[] selectedRoles = temp.split(","); String role = selectedRoles[2].trim(); if(roles.isEmpty()){ roles = role; }else{ roles = roles + "," + role; } } } String[] selectedRole = roles.split(","); return selectedRole; } /** * 选中的单元格的乐见状态以第一个单元格为齐 */ public void initCheckBoxesState() { final TemplateElementCase elementCase = elementCasePane.getEditingElementCase(); if (cellSelection == null) { cellElementVisibleCheckBoxes.setSelected(true); } else { Rectangle cellRectangle = cellSelection.getCellRectangle(0); DefaultTemplateCellElement cellElement = (DefaultTemplateCellElement) elementCase.getCellElement(cellRectangle.x, cellRectangle.y); if (cellElement == null) { cellElement = new DefaultTemplateCellElement(cellRectangle.x, cellRectangle.y); } boolean firstCellDoneaAuthority = cellElement.isDoneAuthority( ReportAndFSManagePane.getInstance().getRoleTree().getSelectedRoleName()); cellElementVisibleCheckBoxes.setSelected(!firstCellDoneaAuthority); } widgetAvailable.setEnabled(cellElementVisibleCheckBoxes.isSelected()); widgetVisible.setEnabled(cellElementVisibleCheckBoxes.isSelected()); } private void initListener() { cellElementVisibleCheckBoxes.addItemListener(cellRolesAuthorityListener); widgetVisible.addItemListener(widgetVisibleRoleAuthorityListener); widgetAvailable.addItemListener(widgetUsableAuthorityListener); floatElementVisibleCheckBoxes.addItemListener(floatElementAuthorityListener); gridColumnRowVisible.addItemListener(columnRowAuthorityListener); newValue.addItemListener(newValuelistener); valueEditor.registerChangeListener(observerListener); } private void removeListener() { cellElementVisibleCheckBoxes.removeItemListener(cellRolesAuthorityListener); widgetVisible.removeItemListener(widgetVisibleRoleAuthorityListener); widgetAvailable.removeItemListener(widgetUsableAuthorityListener); floatElementVisibleCheckBoxes.removeItemListener(floatElementAuthorityListener); gridColumnRowVisible.removeItemListener(columnRowAuthorityListener); newValue.removeItemListener(newValuelistener); valueEditor.registerChangeListener(null); } private void addHyperlinkListener() { cellElementVisibleCheckBoxes.addItemListener(new ItemListener() { public void itemStateChanged(ItemEvent e) { if (hyperlinkCheckBoxes != null) { for (int i = 0; i < hyperlinkCheckBoxes.length; i++) { hyperlinkCheckBoxes[i].setEnabled(cellElementVisibleCheckBoxes.isSelected()); if (!cellElementVisibleCheckBoxes.isSelected()) { hyperlinkCheckBoxes[i].setSelected(false); } } } } }); for (int i = 0; i < hyperlinkCheckBoxes.length; i++) { hyperlinkCheckBoxes[i].addItemListener(cellRolesAuthorityListener); } } /** * 更新适合的类型 */ public void populateType() { if (selectionType == CellSelection.NORMAL) { type.setText(Inter.getLocText("FR-Designer_Cell")); } else if (selectionType == CellSelection.CHOOSE_ROW) { type.setText(Inter.getLocText("FR-Designer_Row")); } else if (selectionType == CellSelection.CHOOSE_COLUMN) { type.setText(Inter.getLocText("FR-Designer_Column")); } else { type.setText(Inter.getLocText("M_Insert-Float")); } } /** * 名字 */ public void populateName() { if (selectionType == CellSelection.NORMAL) { name.setText(getCellSelectionName()); } else if (selectionType == CellSelection.CHOOSE_ROW || selectionType == CellSelection.CHOOSE_COLUMN) { name.setText(getCellColumnRowName()); } else { name.setText(getFloatSelectionName()); } } private String getCellSelectionName() { String nameText = ""; int count = cellSelection.getCellRectangleCount(); for (int rect = 0; rect < count; rect++) { nameText += ","; Rectangle cellRectangle = cellSelection.getCellRectangle(rect); ColumnRow beginCR = ColumnRow.valueOf(cellRectangle.x, cellRectangle.y); nameText += beginCR.toString(); if (cellRectangle.width * cellRectangle.height != 1) { ColumnRow endCR = ColumnRow.valueOf(cellRectangle.width + cellRectangle.x - 1, cellRectangle.height + cellRectangle.y - 1); nameText += ":" + endCR.toString(); } } return nameText.substring(1); } private String getCellColumnRowName() { int count = cellSelection.getCellRectangleCount(); String nameText = ""; ColumnRow cr = ColumnRow.valueOf(cellSelection.getColumn(), cellSelection.getRow()); if (cellSelection.getSelectedType() == CellSelection.CHOOSE_COLUMN && count == 1) { if (cellSelection.getColumnSpan() == 1) { nameText = cr.toString().substring(0, 1); } else { ColumnRow endCr = ColumnRow.valueOf(cellSelection.getColumn() + cellSelection.getColumnSpan() - 1, cellSelection.getRow() + cellSelection.getRowSpan() - 1); nameText = cr.toString().substring(0, 1) + "-" + endCr.toString().substring(0, 1); } } else if (cellSelection.getSelectedType() == CellSelection.CHOOSE_ROW && count == 1) { if (cellSelection.getRowSpan() == 1) { nameText = cr.toString().substring(1); } else { ColumnRow endCr = ColumnRow.valueOf(cellSelection.getColumn() + cellSelection.getColumnSpan() - 1, cellSelection.getRow() + cellSelection.getRowSpan() - 1); nameText = cr.toString().substring(1) + "-" + endCr.toString().substring(1); } } return nameText; } private String getFloatSelectionName() { return floatSelection.getSelectedFloatName(); } private void mutilRect(CellSelection cellSelection) { isAllHasWidget = true; isAllHasHyperlink = true; int count = cellSelection.getCellRectangleCount(); final TemplateElementCase elementCase = elementCasePane.getEditingElementCase(); for (int rect = 0; rect < count; rect++) { Rectangle cellRectangle = cellSelection.getCellRectangle(rect); for (int j = 0; j < cellRectangle.height; j++) { for (int i = 0; i < cellRectangle.width; i++) { int column = i + cellRectangle.x; int row = j + cellRectangle.y; DefaultTemplateCellElement cellElement = (DefaultTemplateCellElement) elementCase.getCellElement(column, row); if (cellElement == null) { cellElement = new DefaultTemplateCellElement(cellSelection.getColumn(), cellSelection.getRow()); } if (cellElement.getCellWidgetAttr() == null) { isAllHasWidget = false; } if (cellElement.getNameHyperlinkGroup() == null) { isAllHasHyperlink = false; } } } } } /** * 更新适合的pane * * @return 返回Pane */ public JPanel populateCheckPane() { checkPane.removeAll(); if (selectionType == CellSelection.NORMAL) { populateCellSelectionCheckPane(checkPane); } else if (selectionType == CellSelection.CHOOSE_COLUMN || selectionType == CellSelection.CHOOSE_ROW) { populateColumnRowCheckPane(checkPane); } else if (selectionType == FLOAT_SELECTION) { populateFloatSelectionCheckPane(checkPane); } checkPane.setBorder(BorderFactory.createEmptyBorder(ALIGNMENT_GAP, 0, 0, 0)); return checkPane; } private void populateColumnRowCheckPane(JPanel checkPane) { double f = TableLayout.FILL; double p = TableLayout.PREFERRED; Component[][] components = new Component[][]{ new Component[]{gridColumnRowVisible} }; double[] rowSize = {p}; double[] columnSize = {f}; int[][] rowCount = {{1}}; checkPane.add( TableLayoutHelper.createGapTableLayoutPane(components, rowSize, columnSize, rowCount, LayoutConstants.VGAP_MEDIUM, LayoutConstants.VGAP_MEDIUM) , BorderLayout.WEST); } private void populateFloatSelectionCheckPane(JPanel checkPane) { checkPane.add(populateFloatElementCheckPane(), BorderLayout.WEST); } private void populateCellSelectionCheckPane(JPanel checkPane) { if (elementCasePane.isSelectedOneCell()) { //只选中了一个单元格 final TemplateElementCase elementCase = elementCasePane.getEditingElementCase(); DefaultTemplateCellElement cellElement = (DefaultTemplateCellElement) elementCase.getCellElement(cellSelection.getColumn(), cellSelection.getRow()); if (cellElement == null) { cellElement = new DefaultTemplateCellElement(cellSelection.getColumn(), cellSelection.getRow()); } //单元格带控件 if (cellElement.getCellWidgetAttr() != null) { checkPane.add(populateWidgetCheckPane(), BorderLayout.WEST); } else { checkPane.add(populatCellCheckPane(), BorderLayout.WEST); } } else { //批量选中单元格 mutilRect(cellSelection); if (!isAllHasWidget && !isAllHasHyperlink) { checkPane.add(populateMutilCellCheckPane(), BorderLayout.WEST); } else if (isAllHasWidget) { checkPane.add(populateMutilWidgetCheckPane(), BorderLayout.WEST); } } } /** * 对单元格区域进行操作时的权限编辑页面 ,对应的角色的populate */ public void populateDetials() { //做模式标记,此时鼠标焦点是在报表主体,为下一次退出权限编辑时做准备 HistoryTemplateListPane.getInstance().getCurrentEditingTemplate().setAuthorityMode(false); TemplateElementCase templateElementCase = elementCasePane.getEditingElementCase(); if (templateElementCase instanceof WorkSheet) { ((WorkSheet) templateElementCase).setPaintSelection(true); } signelSelection(); Selection selection = elementCasePane.getSelection(); if (selection instanceof CellSelection) { selectionType = CellSelection.NORMAL; this.cellSelection = ((CellSelection) selection).clone(); this.floatSelection = null; judgeChooseCR(); } else if (selection instanceof FloatSelection) { selectionType = FLOAT_SELECTION; cellSelection = null; floatSelection = new FloatSelection(((FloatSelection) selection).getSelectedFloatName()); } populateType(); populateName(); populateCheckPane(); checkCheckBoxes(); } //判断是否选择的行列 private void judgeChooseCR() { if (cellSelection.getSelectedType() == CellSelection.CHOOSE_COLUMN && cellSelection.getCellRectangleCount() == 1) { selectionType = CellSelection.CHOOSE_COLUMN; } if (cellSelection.getSelectedType() == CellSelection.CHOOSE_ROW && cellSelection.getCellRectangleCount() == 1) { selectionType = CellSelection.CHOOSE_ROW; } } //实现单选 private void signelSelection() { JTemplate jTemplate = HistoryTemplateListPane.getInstance().getCurrentEditingTemplate(); if (jTemplate.isJWorkBook()) { //清工具栏 JComponent component = DesignerContext.getDesignerFrame().getToolbarComponent(); if (component instanceof AuthorityEditToolBarComponent) { ((AuthorityEditToolBarComponent) component).removeSelection(); } //清参数面板 jTemplate.removeParameterPaneSelection(); } } private JPanel populateFloatElementCheckPane() { double f = TableLayout.FILL; double p = TableLayout.PREFERRED; Component[][] components = new Component[][]{ new Component[]{new UILabel(Inter.getLocText("M_Insert-Float"), SwingConstants.LEFT), floatElementVisibleCheckBoxes} }; double[] rowSize = {p}; double[] columnSize = {p, f}; int[][] rowCount = {{1, 1}}; return TableLayoutHelper.createGapTableLayoutPane(components, rowSize, columnSize, rowCount, LayoutConstants.VGAP_MEDIUM, LayoutConstants.VGAP_MEDIUM); } private JPanel populateWidgetCheckPane() { double f = TableLayout.FILL; double p = TableLayout.PREFERRED; Component[][] components = new Component[][]{ new Component[]{new UILabel(Inter.getLocText("FR-Designer_Cell"), SwingConstants.LEFT), cellElementVisibleCheckBoxes}, new Component[]{null, newValue}, new Component[]{null, valueEditor}, new Component[]{new UILabel(Inter.getLocText("FR-Designer_Widget"), SwingConstants.LEFT), widgetVisible}, new Component[]{null, widgetAvailable} }; double[] rowSize = {p, p, p, p, p}; double[] columnSize = {p, f}; int[][] rowCount = {{1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}}; return TableLayoutHelper.createGapTableLayoutPane(components, rowSize, columnSize, rowCount, LayoutConstants.VGAP_MEDIUM, LayoutConstants.VGAP_MEDIUM); } private JPanel populateMutilWidgetCheckPane() { double f = TableLayout.FILL; double p = TableLayout.PREFERRED; Component[][] components = new Component[][]{ new Component[]{new UILabel(Inter.getLocText("FR-Designer_Cell"), SwingConstants.LEFT), cellElementVisibleCheckBoxes}, new Component[]{new UILabel(Inter.getLocText("FR-Designer_Widget"), SwingConstants.LEFT), widgetVisible}, new Component[]{null, widgetAvailable} }; double[] rowSize = {p, p, p}; double[] columnSize = {p, f}; int[][] rowCount = {{1, 1}, {1, 1}, {1, 1}}; return TableLayoutHelper.createGapTableLayoutPane(components, rowSize, columnSize, rowCount, LayoutConstants.VGAP_MEDIUM, LayoutConstants.VGAP_MEDIUM); } private JPanel populateMutilCellCheckPane() { double f = TableLayout.FILL; double p = TableLayout.PREFERRED; Component[][] components = new Component[][]{ new Component[]{cellElementVisibleCheckBoxes}, }; double[] rowSize = {p}; double[] columnSize = {f}; int[][] rowCount = {{1}}; return TableLayoutHelper.createGapTableLayoutPane(components, rowSize, columnSize, rowCount, LayoutConstants.VGAP_MEDIUM, LayoutConstants.VGAP_MEDIUM); } private JPanel populatCellCheckPane() { double f = TableLayout.FILL; double p = TableLayout.PREFERRED; Component[][] components = new Component[][]{ new Component[]{cellElementVisibleCheckBoxes}, new Component[]{newValue}, new Component[]{valueEditor} }; double[] rowSize = {p, p, p}; double[] columnSize = {f}; int[][] rowCount = {{1}, {1}, {1}}; return TableLayoutHelper.createGapTableLayoutPane(components, rowSize, columnSize, rowCount, LayoutConstants.VGAP_MEDIUM, LayoutConstants.VGAP_MEDIUM); } public TemplateCellElement getFirstCell() { final TemplateElementCase elementCase = elementCasePane.getEditingElementCase(); Rectangle cellRectangle = cellSelection.getCellRectangle(0); // 从最后循环起以保证最后一个修改标准单元格(originalStyle)。 TemplateCellElement firstCell = null; for (int j = cellRectangle.height - 1; j >= 0; j--) { for (int i = cellRectangle.width - 1; i >= 0; i--) { int column = i + cellRectangle.x; int row = j + cellRectangle.y; TemplateCellElement editCellElement = elementCase.getTemplateCellElement(column, row); if (editCellElement != null) { // 对于合并的格子,我们不多次计算的权限. if (editCellElement.getColumn() != column || editCellElement.getRow() != row) { continue; } firstCell = editCellElement; } } } return firstCell; } private void checkCheckBoxes() { String selected = ReportAndFSManagePane.getInstance().getRoleTree().getSelectedRoleName(); removeListener(); if (selectionType == CellSelection.NORMAL) { checkCellSelectionCkeckboxes(selected); } else if (selectionType == CellSelection.CHOOSE_COLUMN || selectionType == CellSelection.CHOOSE_ROW) { checkColumnRowCheckBoxes(selected); } else if (selectionType == FLOAT_SELECTION) { checkFloatSelectionCkeckboxes(selected); } initListener(); } private void checkCellSelectionCkeckboxes(String selected) { TemplateCellElement firstCell = getFirstCell(); if (firstCell == null) { resetCellElementCheckBoxes(); return; } cellElementVisibleCheckBoxes.setSelected(!firstCell.isDoneAuthority(selected)); newValue.setEnabled(!firstCell.isDoneAuthority(selected)); if (!firstCell.isDoneAuthority(selected)) { newValue.setSelected(firstCell.isDoneNewValueAuthority(selected)); if (newValue.isSelected()) { valueEditor.setEnabled(true); valueEditor.populate(firstCell.getCellPrivilegeControl().getNewValueMap().get(selected)); } else { valueEditor.setEnabled(false); } } else { newValue.setSelected(false); valueEditor.setEnabled(false); } populateWidgetButton(firstCell.getWidget(), selected, firstCell); } private void populateWidgetButton(Widget widget, String selected, TemplateCellElement firstCell){ if(widget == null){ return; } if(widget.isVisible()){ widgetVisible.setSelected(!widget.isDoneVisibleAuthority(selected)); widgetVisible.setEnabled(!firstCell.isDoneAuthority(selected)); }else{ widgetVisible.setSelected(widget.isVisibleAuthority(selected)); } if(widget.isEnabled()){ widgetAvailable.setSelected(!widget.isDoneUsableAuthority(selected)); widgetAvailable.setEnabled(!widget.isDoneVisibleAuthority(selected)); }else{ widgetAvailable.setSelected(widget.isUsableAuthority(selected)); } } private void resetCellElementCheckBoxes() { cellElementVisibleCheckBoxes.setSelected(true); widgetVisible.setSelected(true); widgetVisible.setEnabled(true); widgetAvailable.setSelected(true); widgetAvailable.setEnabled(true); newValue.setSelected(false); valueEditor.setEnabled(false); } private void checkColumnRowCheckBoxes(String selected) { if (cellSelection == null) { gridColumnRowVisible.setSelected(false); return; } TemplateElementCase elementCase = elementCasePane.getEditingElementCase(); boolean isInside = selectionType == CellSelection.CHOOSE_COLUMN ? elementCase.getColumnPrivilegeControl(cellSelection.getColumn()).checkInvisible(selected) : elementCase.getRowPrivilegeControl(cellSelection.getRow()).checkInvisible(selected); gridColumnRowVisible.setSelected(isInside); } private void checkFloatSelectionCkeckboxes(String selected) { String name = floatSelection.getSelectedFloatName(); TemplateElementCase ec = elementCasePane.getEditingElementCase(); FloatElement fe = ec.getFloatElement(name); floatElementVisibleCheckBoxes.setSelected(!fe.isDoneAuthority(selected)); } private JPanel populateHyperlinkCheckPane(AbstractCellElement cellElement) { NameJavaScriptGroup linkGroup = cellElement.getNameHyperlinkGroup(); //超链接的个数+单元格可见的操作 hyperlinkCheckBoxes = new UICheckBox[linkGroup.size()]; double f = TableLayout.FILL; double p = TableLayout.PREFERRED; Component[][] components = new Component[hyperlinkCheckBoxes.length + 1][]; if (linkGroup.size() == 1) { components[0] = new Component[]{new UILabel(Inter.getLocText("FR-Designer_Cell"), SwingConstants.LEFT), cellElementVisibleCheckBoxes}; components[1] = new Component[]{new UILabel(Inter.getLocText("FR-Designer_Hyperlink"), SwingConstants.LEFT), hyperlinkCheckBoxes[0] = new UICheckBox(Inter.getLocText("FR-Designer_Visible"))}; } else { components[0] = new Component[]{new UILabel(Inter.getLocText("FR-Designer_Cell"), SwingConstants.LEFT), cellElementVisibleCheckBoxes = new UICheckBox(Inter.getLocText("FR-Designer_Visible"))}; components[1] = new Component[]{new UILabel(Inter.getLocText("FR-Designer_Hyperlink"), SwingConstants.LEFT), hyperlinkCheckBoxes[0] = new UICheckBox(linkGroup.getNameHyperlink(0).getName() + Inter.getLocText("FR-Designer_Visible"))}; for (int i = 1; i < hyperlinkCheckBoxes.length; i++) { components[i + 1] = new Component[]{null, hyperlinkCheckBoxes[i] = new UICheckBox(linkGroup.getNameHyperlink(i).getName() + Inter.getLocText("FR-Designer_Visible"))}; } } for (int i = 0; i < hyperlinkCheckBoxes.length; i++) { hyperlinkCheckBoxes[i].setEnabled(cellElementVisibleCheckBoxes.isSelected()); } addHyperlinkListener(); double[] rowSize = new double[hyperlinkCheckBoxes.length + 1]; int[][] rowCount = new int[hyperlinkCheckBoxes.length + 1][]; for (int i = 0; i < hyperlinkCheckBoxes.length + 1; i++) { rowSize[i] = p; rowCount[i] = new int[]{1, 1}; } double[] columnSize = {p, f}; return TableLayoutHelper.createGapTableLayoutPane(components, rowSize, columnSize, rowCount, LayoutConstants.VGAP_MEDIUM, LayoutConstants.VGAP_MEDIUM); } private JPanel populateMutilHyperlinkCheckPane() { //超链接的个数+单元格可见的操作 hyperlinkCheckBoxes = new UICheckBox[1]; double f = TableLayout.FILL; double p = TableLayout.PREFERRED; Component[][] components = new Component[2][]; components[0] = new Component[]{new UILabel(Inter.getLocText("FR-Designer_Cell"), SwingConstants.LEFT), cellElementVisibleCheckBoxes}; components[1] = new Component[]{new UILabel(Inter.getLocText("FR-Designer_Hyperlink"), SwingConstants.LEFT), hyperlinkCheckBoxes[0] = new UICheckBox(Inter.getLocText("FR-Designer_Visible"))}; hyperlinkCheckBoxes[0].setEnabled(cellElementVisibleCheckBoxes.isSelected()); addHyperlinkListener(); double[] rowSize = {p, p}; double[] columnSize = {p, f}; int[][] rowCount = {{1, 1}, {1, 1}}; return TableLayoutHelper.createGapTableLayoutPane(components, rowSize, columnSize, rowCount, LayoutConstants.VGAP_MEDIUM, LayoutConstants.VGAP_MEDIUM); } } \ No newline at end of file +package com.fr.design.mainframe; import com.fr.design.constants.LayoutConstants; import com.fr.design.editor.ValueEditorPane; import com.fr.design.editor.ValueEditorPaneFactory; import com.fr.design.event.UIObserverListener; import com.fr.design.file.HistoryTemplateListPane; import com.fr.design.gui.icheckbox.UICheckBox; import com.fr.design.gui.ilable.UILabel; import com.fr.design.gui.itree.refreshabletree.ExpandMutableTreeNode; import com.fr.design.layout.TableLayout; import com.fr.design.layout.TableLayoutHelper; import com.fr.design.mainframe.toolbar.AuthorityEditToolBarComponent; import com.fr.design.roleAuthority.ReportAndFSManagePane; import com.fr.design.roleAuthority.RolesAlreadyEditedPane; import com.fr.form.ui.Widget; import com.fr.general.ComparatorUtils; import com.fr.general.Inter; import com.fr.grid.selection.CellSelection; import com.fr.grid.selection.FloatSelection; import com.fr.grid.selection.Selection; import com.fr.js.NameJavaScriptGroup; import com.fr.report.cell.AbstractCellElement; import com.fr.report.cell.DefaultTemplateCellElement; import com.fr.report.cell.FloatElement; import com.fr.report.cell.TemplateCellElement; import com.fr.report.elementcase.TemplateElementCase; import com.fr.report.worksheet.WorkSheet; import com.fr.stable.ColumnRow; import com.fr.stable.StringUtils; import javax.swing.*; import javax.swing.tree.TreePath; import java.awt.*; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; import java.util.ArrayList; /** * Author : daisy * Date: 13-9-4 * Time: 下午4:01 */ public class ElementCasePaneAuthorityEditPane extends AuthorityEditPane { private static final int WIDGET_VISIBLE = 0; private static final int WIDGET_USABLE = 1; private static final int CELL = 2; private static final int HYPER_LINK = 3; private static final int FLOAT_SELECTION = 3; private static final int NEW_VALUE = 4; //新值下面的编辑器的宽度 private static final int NEW_PANE_WIDTH = 120; private UICheckBox floatElementVisibleCheckBoxes = new UICheckBox(Inter.getLocText("FR-Designer_Visible")); private UICheckBox cellElementVisibleCheckBoxes = new UICheckBox(Inter.getLocText("FR-Designer_Visible")); private UICheckBox widgetVisible = new UICheckBox(Inter.getLocText("FR-Designer_Visible")); private UICheckBox widgetAvailable = new UICheckBox(Inter.getLocText("FR-Designer_Enabled")); private UICheckBox gridColumnRowVisible = new UICheckBox(Inter.getLocText("FR-Designer_Hide")); private UICheckBox newValue = new UICheckBox(Inter.getLocText("FR-Designer_New_Value")); private ValueEditorPane valueEditor = ValueEditorPaneFactory.createBasicValueEditorPane(NEW_PANE_WIDTH); private UICheckBox[] hyperlinkCheckBoxes = null; private ElementCasePane elementCasePane = null; private int selectionType = CellSelection.NORMAL; private CellSelection cellSelection; private FloatSelection floatSelection; private boolean isAllHasWidget; private boolean isAllHasHyperlink; private String[] selectedPathArray; private UIObserverListener observerListener = new UIObserverListener() { @Override public void doChange() { if (elementCasePane == null || cellSelection == null) { return; } if (setAuthorityStyle(NEW_VALUE)) { elementCasePane.fireTargetModified(); } } }; private ItemListener newValuelistener = new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (elementCasePane == null || cellSelection == null) { return; } if (setAuthorityStyle(NEW_VALUE)) { valueEditor.setEnabled(newValue.isSelected()); doAfterAuthority(); } } }; private ItemListener columnRowAuthorityListener = new ItemListener() { public void itemStateChanged(ItemEvent e) { if (elementCasePane == null) { return; } boolean isDone = false; if (selectionType == CellSelection.CHOOSE_COLUMN) { isDone = setAuthorityColumn(); } else { isDone = setAuthorityRow(); } if (isDone) { doAfterAuthority(); } } }; private ItemListener floatElementAuthorityListener = new ItemListener() { public void itemStateChanged(ItemEvent e) { if (elementCasePane == null || floatSelection == null) { return; } if (setLFloatAuthorityStyle()) { doAfterAuthority(); } } }; private ItemListener cellRolesAuthorityListener = new ItemListener() { public void itemStateChanged(ItemEvent e) { if (elementCasePane == null || cellSelection == null) { return; } if (setAuthorityStyle(CELL)) { doAfterAuthority(); } } }; private ItemListener widgetVisibleRoleAuthorityListener = new ItemListener() { public void itemStateChanged(ItemEvent e) { if (elementCasePane == null || cellSelection == null) { return; } if (setAuthorityStyle(WIDGET_VISIBLE)) { doAfterAuthority(); } } }; private ItemListener widgetUsableAuthorityListener = new ItemListener() { public void itemStateChanged(ItemEvent e) { if (elementCasePane == null || cellSelection == null) { return; } if (setAuthorityStyle(WIDGET_USABLE)) { doAfterAuthority(); } } }; public ElementCasePaneAuthorityEditPane(ElementCasePane elementCasePane) { super(elementCasePane); this.elementCasePane = elementCasePane; initCheckBoxesState(); initListener(); } private void doAfterAuthority() { elementCasePane.repaint(); elementCasePane.fireTargetModified(); RolesAlreadyEditedPane.getInstance().refreshDockingView(); RolesAlreadyEditedPane.getInstance().setReportAndFSSelectedRoles(); RolesAlreadyEditedPane.getInstance().repaint(); checkCheckBoxes(); } private boolean setAuthorityColumn() { initSelectedPathArray(); String selectedRoles = ReportAndFSManagePane.getInstance().getRoleTree().getSelectedRoleName(); if (ComparatorUtils.equals(selectedRoles, Inter.getLocText("FR-Designer_Role"))) { return false; } if (selectedRoles == null) { return false; } if (selectedPathArray == null) { return false; } final TemplateElementCase elementCase = elementCasePane.getEditingElementCase(); boolean isVisible = !gridColumnRowVisible.isSelected(); for (int t = 0; t < selectedPathArray.length; t++) { if (!isVisible) { for (int col = cellSelection.getColumn(); col < cellSelection.getColumn() + cellSelection.getColumnSpan(); col++) { elementCase.addColumnPrivilegeControl(col, selectedPathArray[t]); } } else { for (int col = cellSelection.getColumn(); col < cellSelection.getColumn() + cellSelection.getColumnSpan(); col++) { elementCase.removeColumnPrivilegeControl(col, selectedPathArray[t]); } } } return true; } private boolean setAuthorityRow() { initSelectedPathArray(); String selectedRoles = ReportAndFSManagePane.getInstance().getRoleTree().getSelectedRoleName(); if (ComparatorUtils.equals(selectedRoles, Inter.getLocText("FR-Designer_Role"))) { return false; } if (selectedRoles == null) { return false; } if (selectedPathArray == null) { return false; } final TemplateElementCase elementCase = elementCasePane.getEditingElementCase(); boolean isVisible = !gridColumnRowVisible.isSelected(); for (int t = 0; t < selectedPathArray.length; t++) { if (!isVisible) { for (int row = cellSelection.getRow(); row < cellSelection.getRow() + cellSelection.getRowSpan(); row++) { elementCase.addRowPrivilegeControl(row, selectedPathArray[t]); } } else { for (int row = cellSelection.getRow(); row < cellSelection.getRow() + cellSelection.getRowSpan(); row++) { elementCase.removeRowPrivilegeControl(row, selectedPathArray[t]); } } } return true; } private boolean setLFloatAuthorityStyle() { initSelectedPathArray(); String selectedRoles = ReportAndFSManagePane.getInstance().getRoleTree().getSelectedRoleName(); if (ComparatorUtils.equals(selectedRoles, Inter.getLocText("FR-Designer_Role"))) { return false; } if (selectedRoles == null) { return false; } if (selectedPathArray == null) { return false; } String name = floatSelection.getSelectedFloatName(); TemplateElementCase ec = elementCasePane.getEditingElementCase(); FloatElement fe = ec.getFloatElement(name); for (int t = 0; t < selectedPathArray.length; t++) { fe.changeAuthorityState(selectedPathArray[t], floatElementVisibleCheckBoxes.isSelected()); } return true; } private boolean setAuthorityStyle(int type) { initSelectedPathArray(); String selectedRoles = ReportAndFSManagePane.getInstance().getRoleTree().getSelectedRoleName(); if (ComparatorUtils.equals(selectedRoles, Inter.getLocText("FR-Designer_Role")) || selectedRoles == null || selectedPathArray == null) { return false; } final TemplateElementCase elementCase = elementCasePane.getEditingElementCase(); int cellRectangleCount = cellSelection.getCellRectangleCount(); for (int t = 0; t < selectedPathArray.length; t++) { for (int rec = 0; rec < cellRectangleCount; rec++) { Rectangle cellRectangle = cellSelection.getCellRectangle(rec); // 从最后循环起以保证最后一个修改标准单元格(originalStyle)。 for (int j = cellRectangle.height - 1; j >= 0; j--) { for (int i = cellRectangle.width - 1; i >= 0; i--) { int column = i + cellRectangle.x; int row = j + cellRectangle.y; TemplateCellElement editCellElement = elementCase.getTemplateCellElement(column, row); if (editCellElement == null) { editCellElement = new DefaultTemplateCellElement(column, row); elementCase.addCellElement(editCellElement); } else { // 对于合并的格子,我们不多次计算的权限. if (editCellElement.getColumn() != column || editCellElement.getRow() != row) { continue; } } if (type == CELL) { editCellElement.changeAuthorityState(selectedPathArray[t], cellElementVisibleCheckBoxes.isSelected()); } else if (type == NEW_VALUE) { editCellElement.changeNewValueAuthorityState(selectedPathArray[t], newValue.isSelected(), valueEditor.update()); } else if (type == WIDGET_VISIBLE) { Widget widget = editCellElement.getWidget(); widget.changeVisibleAuthorityState(selectedPathArray[t], widgetVisible.isSelected()); } else { Widget widget = editCellElement.getWidget(); widget.changeUsableAuthorityState(selectedPathArray[t], widgetAvailable.isSelected()); } } } } } return true; } /** * @see AuthorityEditToolBarPane initSelectedPathArray */ private void initSelectedPathArray() { TreePath[] selectionPaths = ReportAndFSManagePane.getInstance().getRoleTree().getCheckBoxTreeSelectionModel().getSelectionPaths(); if (selectionPaths.length == 1) { if (((ExpandMutableTreeNode) (selectionPaths[0].getLastPathComponent())).getChildCount() > 0) { ExpandMutableTreeNode node = (ExpandMutableTreeNode) ((ExpandMutableTreeNode) (selectionPaths[0].getLastPathComponent())).getLastChild(); selectedPathArray = new String[node.getChildCount()]; for (int i = 0; i < node.getChildCount(); i++) { ExpandMutableTreeNode n = (ExpandMutableTreeNode) node.getChildAt(i); String nodeName = n.getUserObject().toString(); selectedPathArray[i] = nodeName; } } else { selectedPathArray = pathToString(selectionPaths); } } else { selectedPathArray = pathToString(selectionPaths); } } public static String[] pathToString(TreePath[] path) { java.util.List roles = new ArrayList(); if (path != null && path.length > 0) { for (TreePath tempPath : path) { String temp = tempPath.toString(); boolean isTrue = temp.length() > 0 && temp.charAt(0) == '[' && temp.endsWith("]"); if (isTrue) { temp = temp.substring(1, temp.length() - 1); String[] selectedRoles = temp.split("," + StringUtils.BLANK); String role = selectedRoles[2].trim(); roles.add(role); } } } return roles.toArray(new String[0]); } /** * 选中的单元格的乐见状态以第一个单元格为齐 */ public void initCheckBoxesState() { final TemplateElementCase elementCase = elementCasePane.getEditingElementCase(); if (cellSelection == null) { cellElementVisibleCheckBoxes.setSelected(true); } else { Rectangle cellRectangle = cellSelection.getCellRectangle(0); DefaultTemplateCellElement cellElement = (DefaultTemplateCellElement) elementCase.getCellElement(cellRectangle.x, cellRectangle.y); if (cellElement == null) { cellElement = new DefaultTemplateCellElement(cellRectangle.x, cellRectangle.y); } boolean firstCellDoneaAuthority = cellElement.isDoneAuthority( ReportAndFSManagePane.getInstance().getRoleTree().getSelectedRoleName()); cellElementVisibleCheckBoxes.setSelected(!firstCellDoneaAuthority); } widgetAvailable.setEnabled(cellElementVisibleCheckBoxes.isSelected()); widgetVisible.setEnabled(cellElementVisibleCheckBoxes.isSelected()); } private void initListener() { cellElementVisibleCheckBoxes.addItemListener(cellRolesAuthorityListener); widgetVisible.addItemListener(widgetVisibleRoleAuthorityListener); widgetAvailable.addItemListener(widgetUsableAuthorityListener); floatElementVisibleCheckBoxes.addItemListener(floatElementAuthorityListener); gridColumnRowVisible.addItemListener(columnRowAuthorityListener); newValue.addItemListener(newValuelistener); valueEditor.registerChangeListener(observerListener); } private void removeListener() { cellElementVisibleCheckBoxes.removeItemListener(cellRolesAuthorityListener); widgetVisible.removeItemListener(widgetVisibleRoleAuthorityListener); widgetAvailable.removeItemListener(widgetUsableAuthorityListener); floatElementVisibleCheckBoxes.removeItemListener(floatElementAuthorityListener); gridColumnRowVisible.removeItemListener(columnRowAuthorityListener); newValue.removeItemListener(newValuelistener); valueEditor.registerChangeListener(null); } private void addHyperlinkListener() { cellElementVisibleCheckBoxes.addItemListener(new ItemListener() { public void itemStateChanged(ItemEvent e) { if (hyperlinkCheckBoxes != null) { for (int i = 0; i < hyperlinkCheckBoxes.length; i++) { hyperlinkCheckBoxes[i].setEnabled(cellElementVisibleCheckBoxes.isSelected()); if (!cellElementVisibleCheckBoxes.isSelected()) { hyperlinkCheckBoxes[i].setSelected(false); } } } } }); for (int i = 0; i < hyperlinkCheckBoxes.length; i++) { hyperlinkCheckBoxes[i].addItemListener(cellRolesAuthorityListener); } } /** * 更新适合的类型 */ public void populateType() { if (selectionType == CellSelection.NORMAL) { type.setText(Inter.getLocText("FR-Designer_Cell")); } else if (selectionType == CellSelection.CHOOSE_ROW) { type.setText(Inter.getLocText("FR-Designer_Row")); } else if (selectionType == CellSelection.CHOOSE_COLUMN) { type.setText(Inter.getLocText("FR-Designer_Column")); } else { type.setText(Inter.getLocText("M_Insert-Float")); } } /** * 名字 */ public void populateName() { if (selectionType == CellSelection.NORMAL) { name.setText(getCellSelectionName()); } else if (selectionType == CellSelection.CHOOSE_ROW || selectionType == CellSelection.CHOOSE_COLUMN) { name.setText(getCellColumnRowName()); } else { name.setText(getFloatSelectionName()); } } private String getCellSelectionName() { String nameText = ""; int count = cellSelection.getCellRectangleCount(); for (int rect = 0; rect < count; rect++) { nameText += ","; Rectangle cellRectangle = cellSelection.getCellRectangle(rect); ColumnRow beginCR = ColumnRow.valueOf(cellRectangle.x, cellRectangle.y); nameText += beginCR.toString(); if (cellRectangle.width * cellRectangle.height != 1) { ColumnRow endCR = ColumnRow.valueOf(cellRectangle.width + cellRectangle.x - 1, cellRectangle.height + cellRectangle.y - 1); nameText += ":" + endCR.toString(); } } return nameText.substring(1); } private String getCellColumnRowName() { int count = cellSelection.getCellRectangleCount(); String nameText = ""; ColumnRow cr = ColumnRow.valueOf(cellSelection.getColumn(), cellSelection.getRow()); if (cellSelection.getSelectedType() == CellSelection.CHOOSE_COLUMN && count == 1) { if (cellSelection.getColumnSpan() == 1) { nameText = cr.toString().substring(0, 1); } else { ColumnRow endCr = ColumnRow.valueOf(cellSelection.getColumn() + cellSelection.getColumnSpan() - 1, cellSelection.getRow() + cellSelection.getRowSpan() - 1); nameText = cr.toString().substring(0, 1) + "-" + endCr.toString().substring(0, 1); } } else if (cellSelection.getSelectedType() == CellSelection.CHOOSE_ROW && count == 1) { if (cellSelection.getRowSpan() == 1) { nameText = cr.toString().substring(1); } else { ColumnRow endCr = ColumnRow.valueOf(cellSelection.getColumn() + cellSelection.getColumnSpan() - 1, cellSelection.getRow() + cellSelection.getRowSpan() - 1); nameText = cr.toString().substring(1) + "-" + endCr.toString().substring(1); } } return nameText; } private String getFloatSelectionName() { return floatSelection.getSelectedFloatName(); } private void mutilRect(CellSelection cellSelection) { isAllHasWidget = true; isAllHasHyperlink = true; int count = cellSelection.getCellRectangleCount(); final TemplateElementCase elementCase = elementCasePane.getEditingElementCase(); for (int rect = 0; rect < count; rect++) { Rectangle cellRectangle = cellSelection.getCellRectangle(rect); for (int j = 0; j < cellRectangle.height; j++) { for (int i = 0; i < cellRectangle.width; i++) { int column = i + cellRectangle.x; int row = j + cellRectangle.y; DefaultTemplateCellElement cellElement = (DefaultTemplateCellElement) elementCase.getCellElement(column, row); if (cellElement == null) { cellElement = new DefaultTemplateCellElement(cellSelection.getColumn(), cellSelection.getRow()); } if (cellElement.getCellWidgetAttr() == null) { isAllHasWidget = false; } if (cellElement.getNameHyperlinkGroup() == null) { isAllHasHyperlink = false; } } } } } /** * 更新适合的pane * * @return 返回Pane */ public JPanel populateCheckPane() { checkPane.removeAll(); if (selectionType == CellSelection.NORMAL) { populateCellSelectionCheckPane(checkPane); } else if (selectionType == CellSelection.CHOOSE_COLUMN || selectionType == CellSelection.CHOOSE_ROW) { populateColumnRowCheckPane(checkPane); } else if (selectionType == FLOAT_SELECTION) { populateFloatSelectionCheckPane(checkPane); } checkPane.setBorder(BorderFactory.createEmptyBorder(ALIGNMENT_GAP, 0, 0, 0)); return checkPane; } private void populateColumnRowCheckPane(JPanel checkPane) { double f = TableLayout.FILL; double p = TableLayout.PREFERRED; Component[][] components = new Component[][]{ new Component[]{gridColumnRowVisible} }; double[] rowSize = {p}; double[] columnSize = {f}; int[][] rowCount = {{1}}; checkPane.add( TableLayoutHelper.createGapTableLayoutPane(components, rowSize, columnSize, rowCount, LayoutConstants.VGAP_MEDIUM, LayoutConstants.VGAP_MEDIUM) , BorderLayout.WEST); } private void populateFloatSelectionCheckPane(JPanel checkPane) { checkPane.add(populateFloatElementCheckPane(), BorderLayout.WEST); } private void populateCellSelectionCheckPane(JPanel checkPane) { if (elementCasePane.isSelectedOneCell()) { //只选中了一个单元格 final TemplateElementCase elementCase = elementCasePane.getEditingElementCase(); DefaultTemplateCellElement cellElement = (DefaultTemplateCellElement) elementCase.getCellElement(cellSelection.getColumn(), cellSelection.getRow()); if (cellElement == null) { cellElement = new DefaultTemplateCellElement(cellSelection.getColumn(), cellSelection.getRow()); } //单元格带控件 if (cellElement.getCellWidgetAttr() != null) { checkPane.add(populateWidgetCheckPane(), BorderLayout.WEST); } else { checkPane.add(populatCellCheckPane(), BorderLayout.WEST); } } else { //批量选中单元格 mutilRect(cellSelection); if (!isAllHasWidget && !isAllHasHyperlink) { checkPane.add(populateMutilCellCheckPane(), BorderLayout.WEST); } else if (isAllHasWidget) { checkPane.add(populateMutilWidgetCheckPane(), BorderLayout.WEST); } } } /** * 对单元格区域进行操作时的权限编辑页面 ,对应的角色的populate */ public void populateDetials() { //做模式标记,此时鼠标焦点是在报表主体,为下一次退出权限编辑时做准备 HistoryTemplateListPane.getInstance().getCurrentEditingTemplate().setAuthorityMode(false); TemplateElementCase templateElementCase = elementCasePane.getEditingElementCase(); if (templateElementCase instanceof WorkSheet) { ((WorkSheet) templateElementCase).setPaintSelection(true); } signelSelection(); Selection selection = elementCasePane.getSelection(); if (selection instanceof CellSelection) { selectionType = CellSelection.NORMAL; this.cellSelection = ((CellSelection) selection).clone(); this.floatSelection = null; judgeChooseCR(); } else if (selection instanceof FloatSelection) { selectionType = FLOAT_SELECTION; cellSelection = null; floatSelection = new FloatSelection(((FloatSelection) selection).getSelectedFloatName()); } populateType(); populateName(); populateCheckPane(); checkCheckBoxes(); } //判断是否选择的行列 private void judgeChooseCR() { if (cellSelection.getSelectedType() == CellSelection.CHOOSE_COLUMN && cellSelection.getCellRectangleCount() == 1) { selectionType = CellSelection.CHOOSE_COLUMN; } if (cellSelection.getSelectedType() == CellSelection.CHOOSE_ROW && cellSelection.getCellRectangleCount() == 1) { selectionType = CellSelection.CHOOSE_ROW; } } //实现单选 private void signelSelection() { JTemplate jTemplate = HistoryTemplateListPane.getInstance().getCurrentEditingTemplate(); if (jTemplate.isJWorkBook()) { //清工具栏 JComponent component = DesignerContext.getDesignerFrame().getToolbarComponent(); if (component instanceof AuthorityEditToolBarComponent) { ((AuthorityEditToolBarComponent) component).removeSelection(); } //清参数面板 jTemplate.removeParameterPaneSelection(); } } private JPanel populateFloatElementCheckPane() { double f = TableLayout.FILL; double p = TableLayout.PREFERRED; Component[][] components = new Component[][]{ new Component[]{new UILabel(Inter.getLocText("M_Insert-Float"), SwingConstants.LEFT), floatElementVisibleCheckBoxes} }; double[] rowSize = {p}; double[] columnSize = {p, f}; int[][] rowCount = {{1, 1}}; return TableLayoutHelper.createGapTableLayoutPane(components, rowSize, columnSize, rowCount, LayoutConstants.VGAP_MEDIUM, LayoutConstants.VGAP_MEDIUM); } private JPanel populateWidgetCheckPane() { double f = TableLayout.FILL; double p = TableLayout.PREFERRED; Component[][] components = new Component[][]{ new Component[]{new UILabel(Inter.getLocText("FR-Designer_Cell"), SwingConstants.LEFT), cellElementVisibleCheckBoxes}, new Component[]{null, newValue}, new Component[]{null, valueEditor}, new Component[]{new UILabel(Inter.getLocText("FR-Designer_Widget"), SwingConstants.LEFT), widgetVisible}, new Component[]{null, widgetAvailable} }; double[] rowSize = {p, p, p, p, p}; double[] columnSize = {p, f}; int[][] rowCount = {{1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}}; return TableLayoutHelper.createGapTableLayoutPane(components, rowSize, columnSize, rowCount, LayoutConstants.VGAP_MEDIUM, LayoutConstants.VGAP_MEDIUM); } private JPanel populateMutilWidgetCheckPane() { double f = TableLayout.FILL; double p = TableLayout.PREFERRED; Component[][] components = new Component[][]{ new Component[]{new UILabel(Inter.getLocText("FR-Designer_Cell"), SwingConstants.LEFT), cellElementVisibleCheckBoxes}, new Component[]{new UILabel(Inter.getLocText("FR-Designer_Widget"), SwingConstants.LEFT), widgetVisible}, new Component[]{null, widgetAvailable} }; double[] rowSize = {p, p, p}; double[] columnSize = {p, f}; int[][] rowCount = {{1, 1}, {1, 1}, {1, 1}}; return TableLayoutHelper.createGapTableLayoutPane(components, rowSize, columnSize, rowCount, LayoutConstants.VGAP_MEDIUM, LayoutConstants.VGAP_MEDIUM); } private JPanel populateMutilCellCheckPane() { double f = TableLayout.FILL; double p = TableLayout.PREFERRED; Component[][] components = new Component[][]{ new Component[]{cellElementVisibleCheckBoxes}, }; double[] rowSize = {p}; double[] columnSize = {f}; int[][] rowCount = {{1}}; return TableLayoutHelper.createGapTableLayoutPane(components, rowSize, columnSize, rowCount, LayoutConstants.VGAP_MEDIUM, LayoutConstants.VGAP_MEDIUM); } private JPanel populatCellCheckPane() { double f = TableLayout.FILL; double p = TableLayout.PREFERRED; Component[][] components = new Component[][]{ new Component[]{cellElementVisibleCheckBoxes}, new Component[]{newValue}, new Component[]{valueEditor} }; double[] rowSize = {p, p, p}; double[] columnSize = {f}; int[][] rowCount = {{1}, {1}, {1}}; return TableLayoutHelper.createGapTableLayoutPane(components, rowSize, columnSize, rowCount, LayoutConstants.VGAP_MEDIUM, LayoutConstants.VGAP_MEDIUM); } public TemplateCellElement getFirstCell() { final TemplateElementCase elementCase = elementCasePane.getEditingElementCase(); Rectangle cellRectangle = cellSelection.getCellRectangle(0); // 从最后循环起以保证最后一个修改标准单元格(originalStyle)。 TemplateCellElement firstCell = null; for (int j = cellRectangle.height - 1; j >= 0; j--) { for (int i = cellRectangle.width - 1; i >= 0; i--) { int column = i + cellRectangle.x; int row = j + cellRectangle.y; TemplateCellElement editCellElement = elementCase.getTemplateCellElement(column, row); if (editCellElement != null) { // 对于合并的格子,我们不多次计算的权限. if (editCellElement.getColumn() != column || editCellElement.getRow() != row) { continue; } firstCell = editCellElement; } } } return firstCell; } private void checkCheckBoxes() { String selected = ReportAndFSManagePane.getInstance().getRoleTree().getSelectedRoleName(); removeListener(); if (selectionType == CellSelection.NORMAL) { checkCellSelectionCkeckboxes(selected); } else if (selectionType == CellSelection.CHOOSE_COLUMN || selectionType == CellSelection.CHOOSE_ROW) { checkColumnRowCheckBoxes(selected); } else if (selectionType == FLOAT_SELECTION) { checkFloatSelectionCkeckboxes(selected); } initListener(); } private void checkCellSelectionCkeckboxes(String selected) { TemplateCellElement firstCell = getFirstCell(); if (firstCell == null) { resetCellElementCheckBoxes(); return; } cellElementVisibleCheckBoxes.setSelected(!firstCell.isDoneAuthority(selected)); newValue.setEnabled(!firstCell.isDoneAuthority(selected)); if (!firstCell.isDoneAuthority(selected)) { newValue.setSelected(firstCell.isDoneNewValueAuthority(selected)); if (newValue.isSelected()) { valueEditor.setEnabled(true); valueEditor.populate(firstCell.getCellPrivilegeControl().getNewValueMap().get(selected)); } else { valueEditor.setEnabled(false); } } else { newValue.setSelected(false); valueEditor.setEnabled(false); } populateWidgetButton(firstCell.getWidget(), selected, firstCell); } private void populateWidgetButton(Widget widget, String selected, TemplateCellElement firstCell) { if (widget != null) { if (widget.isVisible()) { widgetVisible.setSelected(!widget.isDoneVisibleAuthority(selected)); widgetVisible.setEnabled(!firstCell.isDoneAuthority(selected)); } else { widgetVisible.setSelected(widget.isVisibleAuthority(selected)); } if (widget.isEnabled()) { widgetAvailable.setSelected(!widget.isDoneUsableAuthority(selected)); widgetAvailable.setEnabled(!widget.isDoneVisibleAuthority(selected)); } else { widgetAvailable.setSelected(widget.isUsableAuthority(selected)); } } } private void resetCellElementCheckBoxes() { cellElementVisibleCheckBoxes.setSelected(true); widgetVisible.setSelected(true); widgetVisible.setEnabled(true); widgetAvailable.setSelected(true); widgetAvailable.setEnabled(true); newValue.setSelected(false); valueEditor.setEnabled(false); } private void checkColumnRowCheckBoxes(String selected) { if (cellSelection == null) { gridColumnRowVisible.setSelected(false); return; } TemplateElementCase elementCase = elementCasePane.getEditingElementCase(); boolean isInside = selectionType == CellSelection.CHOOSE_COLUMN ? elementCase.getColumnPrivilegeControl(cellSelection.getColumn()).checkInvisible(selected) : elementCase.getRowPrivilegeControl(cellSelection.getRow()).checkInvisible(selected); gridColumnRowVisible.setSelected(isInside); } private void checkFloatSelectionCkeckboxes(String selected) { String name = floatSelection.getSelectedFloatName(); TemplateElementCase ec = elementCasePane.getEditingElementCase(); FloatElement fe = ec.getFloatElement(name); floatElementVisibleCheckBoxes.setSelected(!fe.isDoneAuthority(selected)); } private JPanel populateHyperlinkCheckPane(AbstractCellElement cellElement) { NameJavaScriptGroup linkGroup = cellElement.getNameHyperlinkGroup(); //超链接的个数+单元格可见的操作 hyperlinkCheckBoxes = new UICheckBox[linkGroup.size()]; double f = TableLayout.FILL; double p = TableLayout.PREFERRED; Component[][] components = new Component[hyperlinkCheckBoxes.length + 1][]; if (linkGroup.size() == 1) { components[0] = new Component[]{new UILabel(Inter.getLocText("FR-Designer_Cell"), SwingConstants.LEFT), cellElementVisibleCheckBoxes}; components[1] = new Component[]{new UILabel(Inter.getLocText("FR-Designer_Hyperlink"), SwingConstants.LEFT), hyperlinkCheckBoxes[0] = new UICheckBox(Inter.getLocText("FR-Designer_Visible"))}; } else { components[0] = new Component[]{new UILabel(Inter.getLocText("FR-Designer_Cell"), SwingConstants.LEFT), cellElementVisibleCheckBoxes = new UICheckBox(Inter.getLocText("FR-Designer_Visible"))}; components[1] = new Component[]{new UILabel(Inter.getLocText("FR-Designer_Hyperlink"), SwingConstants.LEFT), hyperlinkCheckBoxes[0] = new UICheckBox(linkGroup.getNameHyperlink(0).getName() + Inter.getLocText("FR-Designer_Visible"))}; for (int i = 1; i < hyperlinkCheckBoxes.length; i++) { components[i + 1] = new Component[]{null, hyperlinkCheckBoxes[i] = new UICheckBox(linkGroup.getNameHyperlink(i).getName() + Inter.getLocText("FR-Designer_Visible"))}; } } for (int i = 0; i < hyperlinkCheckBoxes.length; i++) { hyperlinkCheckBoxes[i].setEnabled(cellElementVisibleCheckBoxes.isSelected()); } addHyperlinkListener(); double[] rowSize = new double[hyperlinkCheckBoxes.length + 1]; int[][] rowCount = new int[hyperlinkCheckBoxes.length + 1][]; for (int i = 0; i < hyperlinkCheckBoxes.length + 1; i++) { rowSize[i] = p; rowCount[i] = new int[]{1, 1}; } double[] columnSize = {p, f}; return TableLayoutHelper.createGapTableLayoutPane(components, rowSize, columnSize, rowCount, LayoutConstants.VGAP_MEDIUM, LayoutConstants.VGAP_MEDIUM); } private JPanel populateMutilHyperlinkCheckPane() { //超链接的个数+单元格可见的操作 hyperlinkCheckBoxes = new UICheckBox[1]; double f = TableLayout.FILL; double p = TableLayout.PREFERRED; Component[][] components = new Component[2][]; components[0] = new Component[]{new UILabel(Inter.getLocText("FR-Designer_Cell"), SwingConstants.LEFT), cellElementVisibleCheckBoxes}; components[1] = new Component[]{new UILabel(Inter.getLocText("FR-Designer_Hyperlink"), SwingConstants.LEFT), hyperlinkCheckBoxes[0] = new UICheckBox(Inter.getLocText("FR-Designer_Visible"))}; hyperlinkCheckBoxes[0].setEnabled(cellElementVisibleCheckBoxes.isSelected()); addHyperlinkListener(); double[] rowSize = {p, p}; double[] columnSize = {p, f}; int[][] rowCount = {{1, 1}, {1, 1}}; return TableLayoutHelper.createGapTableLayoutPane(components, rowSize, columnSize, rowCount, LayoutConstants.VGAP_MEDIUM, LayoutConstants.VGAP_MEDIUM); } } \ No newline at end of file diff --git a/designer_base/src/com/fr/design/locale/designer.properties b/designer_base/src/com/fr/design/locale/designer.properties index 0ec6015c8f..8bd0fbe4b9 100644 --- a/designer_base/src/com/fr/design/locale/designer.properties +++ b/designer_base/src/com/fr/design/locale/designer.properties @@ -607,3 +607,7 @@ FR-Designer_Remove_Button_ToolBar= FR-Designer_Get-CubeGetting= FR-Designer_Oracle= FR-Designer_Validate= +FR-Designer_Role=Role +FR-Designer_Permissions=Permissions +FR-Designer_Form_Button=Button +FR-Designer_WF_Name=Name \ No newline at end of file diff --git a/designer_base/src/com/fr/design/locale/designer_en_US.properties b/designer_base/src/com/fr/design/locale/designer_en_US.properties index b7c7fe3260..3bf25ff171 100644 --- a/designer_base/src/com/fr/design/locale/designer_en_US.properties +++ b/designer_base/src/com/fr/design/locale/designer_en_US.properties @@ -609,3 +609,7 @@ FR-Designer_Remove_Button_ToolBar=Remove Button ToolBar FR-Designer_Get-CubeGetting= FR-Designer_DoubleLayer_Report= FR-Designer_Get-Cube= +FR-Designer_Role=Role +FR-Designer_Permissions=Permissions +FR-Designer_Form_Button=Button +FR-Designer_WF_Name=Name \ No newline at end of file diff --git a/designer_base/src/com/fr/design/locale/designer_zh_CN.properties b/designer_base/src/com/fr/design/locale/designer_zh_CN.properties index 2740e54d22..3ddde1d8cd 100644 --- a/designer_base/src/com/fr/design/locale/designer_zh_CN.properties +++ b/designer_base/src/com/fr/design/locale/designer_zh_CN.properties @@ -602,3 +602,7 @@ FR-Designer_Border=\u8FB9\u6846 FR-Designer_Background-Pattern=\u56FE\u6848 FR-Designer_Edit_Button_ToolBar=\u7F16\u8F91\u6309\u94AE\u6240\u5728\u5DE5\u5177\u680F FR-Designer_Remove_Button_ToolBar=\u79FB\u9664\u6309\u94AE\u6240\u5728\u5DE5\u5177\u680F +FR-Designer_Role=\u89D2\u8272 +FR-Designer_Permissions=\u6743\u9650 +FR-Designer_Form_Button=\u6309\u94AE +FR-Designer_WF_Name=\u540D\u79F0 \ No newline at end of file diff --git a/designer_base/src/com/fr/design/locale/designer_zh_TW.properties b/designer_base/src/com/fr/design/locale/designer_zh_TW.properties index 92897929ae..d4ab849468 100644 --- a/designer_base/src/com/fr/design/locale/designer_zh_TW.properties +++ b/designer_base/src/com/fr/design/locale/designer_zh_TW.properties @@ -600,3 +600,7 @@ FR-Designer_Delete_Template= FR-Designer_Download_Template= FR-Designer_DoubleLayer_Report= FR-Designer_Validate= +FR-Designer_Role=\u89D2\u8272 +FR-Designer_Permissions=\u6B0A\u9650 +FR-Designer_Form_Button=\u6309\u9215 +FR-Designer_WF_Name=\u540D\u7A31 \ No newline at end of file From 1f9e12a5e6f8c58eb2fd1e0cf0c551a78cf51d4e Mon Sep 17 00:00:00 2001 From: "yaoh.wu" Date: Wed, 3 May 2017 15:47:21 +0800 Subject: [PATCH 62/72] =?UTF-8?q?=E6=97=A0=E4=BB=BB=E5=8A=A1=EF=BC=8Cline?= =?UTF-8?q?=20separator?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mainframe/AuthorityEditToolBarPane.java | 252 +++++- .../ElementCasePaneAuthorityEditPane.java | 831 +++++++++++++++++- 2 files changed, 1081 insertions(+), 2 deletions(-) diff --git a/designer/src/com/fr/design/mainframe/AuthorityEditToolBarPane.java b/designer/src/com/fr/design/mainframe/AuthorityEditToolBarPane.java index 809de3c843..a760e0043b 100644 --- a/designer/src/com/fr/design/mainframe/AuthorityEditToolBarPane.java +++ b/designer/src/com/fr/design/mainframe/AuthorityEditToolBarPane.java @@ -1 +1,251 @@ -package com.fr.design.mainframe; import com.fr.design.constants.LayoutConstants; import com.fr.design.constants.UIConstants; import com.fr.design.file.HistoryTemplateListPane; import com.fr.design.gui.icheckbox.UICheckBox; import com.fr.design.gui.ilable.UILabel; import com.fr.design.gui.itree.refreshabletree.ExpandMutableTreeNode; import com.fr.design.layout.FRGUIPaneFactory; import com.fr.design.layout.TableLayout; import com.fr.design.layout.TableLayoutHelper; import com.fr.design.roleAuthority.ReportAndFSManagePane; import com.fr.design.roleAuthority.RolesAlreadyEditedPane; import com.fr.design.webattr.ToolBarButton; import com.fr.general.ComparatorUtils; import com.fr.general.Inter; import javax.swing.*; import javax.swing.tree.TreePath; import java.awt.*; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; import java.util.List; /** * 用于在权限编辑状态对工具栏的元素进行权限编辑的面板 * Author : daisy * Date: 13-9-18 * Time: 下午2:15 */ public class AuthorityEditToolBarPane extends AuthorityPropertyPane { private static final int TITLE_HEIGHT = 19; private AuthorityEditPane authorityEditPane = null; private AuthorityToolBarPane authorityToolBarPane; private String[] selectedPathArray; public AuthorityEditToolBarPane(List buttonlists) { super(HistoryTemplateListPane.getInstance().getCurrentEditingTemplate()); this.setLayout(new BorderLayout()); this.setBorder(null); UILabel authorityTitle = new UILabel(Inter.getLocText(new String[]{"FR-Designer_Permissions", "FR-Designer_Edit"})) { @Override public Dimension getPreferredSize() { return new Dimension(super.getPreferredSize().width, TITLE_HEIGHT); } }; authorityTitle.setHorizontalAlignment(SwingConstants.CENTER); authorityTitle.setVerticalAlignment(SwingConstants.CENTER); JPanel northPane = FRGUIPaneFactory.createBorderLayout_S_Pane(); northPane.add(authorityTitle, BorderLayout.CENTER); northPane.setBorder(BorderFactory.createMatteBorder(0, 0, 1, 0, UIConstants.LINE_COLOR)); this.add(northPane, BorderLayout.NORTH); authorityEditPane = new AuthorityEditPane(buttonlists); this.add(authorityEditPane, BorderLayout.CENTER); } public void setAuthorityToolBarPane(AuthorityToolBarPane authorityToolBarPane) { this.authorityToolBarPane = authorityToolBarPane; } public void populate() { authorityToolBarPane.populateAuthority(); signelSelection(); authorityEditPane.populateDetials(); } private void signelSelection() { JTemplate jTemplate = HistoryTemplateListPane.getInstance().getCurrentEditingTemplate(); if (jTemplate.isJWorkBook()) { //清参数面板 jTemplate.removeParameterPaneSelection(); //清报表主体 jTemplate.removeTemplateSelection(); } } private class AuthorityEditPane extends JPanel { private static final int TOP_GAP = 11; private static final int LEFT_GAP = 8; private static final int ALIGNMENT_GAP = -3; private UILabel type = null; private UILabel name = null; private JPanel checkPane = null; private List buttonlists; private UICheckBox buttonVisible = new UICheckBox(Inter.getLocText("FR-Designer_Visible")); private ItemListener itemListener = new ItemListener() { public void itemStateChanged(ItemEvent e) { String selectedRole = ReportAndFSManagePane.getInstance().getRoleTree().getSelectedRoleName(); initSelectedPathArray(); if (ComparatorUtils.equals(selectedRole, Inter.getLocText("FR-Designer_Role")) || selectedRole == null || selectedPathArray == null) { return; } for (int t = 0; t < selectedPathArray.length; t++) { for (int i = 0; i < buttonlists.size(); i++) { if (buttonlists.get(i).isSelected()) { buttonlists.get(i).changeAuthorityState(selectedPathArray[t], buttonVisible.isSelected()); authorityToolBarPane.repaint(); } } HistoryTemplateListPane.getInstance().getCurrentEditingTemplate().fireTargetModified(); RolesAlreadyEditedPane.getInstance().refreshDockingView(); UICheckBox checkbox = (UICheckBox) e.getSource(); List btns = AuthorityEditPane.this.buttonlists; for (int j = 0; j < btns.size(); j++) { if (btns.get(j).isSelected()) { //由引擎实现保存进模板报表 authorityToolBarPane.setAuthorityWebAttr(btns.get(j).getWidget(), checkbox.isSelected(), selectedPathArray[t]); } } } } }; /** * @see ElementCasePaneAuthorityEditPane initSelectedPathArray() */ private void initSelectedPathArray() { TreePath[] selectionPaths = ReportAndFSManagePane.getInstance().getRoleTree().getCheckBoxTreeSelectionModel().getSelectionPaths(); if (selectionPaths.length == 1) { if (((ExpandMutableTreeNode) (selectionPaths[0].getLastPathComponent())).getChildCount() > 0) { ExpandMutableTreeNode node = (ExpandMutableTreeNode) ((ExpandMutableTreeNode) (selectionPaths[0].getLastPathComponent())).getLastChild(); selectedPathArray = new String[node.getChildCount()]; for (int i = 0; i < node.getChildCount(); i++) { ExpandMutableTreeNode n = (ExpandMutableTreeNode) node.getChildAt(i); String nodeName = n.getUserObject().toString(); selectedPathArray[i] = nodeName; } } else { selectedPathArray = ElementCasePaneAuthorityEditPane.pathToString(selectionPaths); } } else { selectedPathArray = ElementCasePaneAuthorityEditPane.pathToString(selectionPaths); } } public AuthorityEditPane(List buttonlists) { setLayout(new BorderLayout()); type = new UILabel(); name = new UILabel(); checkPane = new JPanel(); checkPane.setLayout(new BorderLayout()); this.add(layoutText(), BorderLayout.WEST); this.add(layoutPane(), BorderLayout.CENTER); this.setBorder(BorderFactory.createEmptyBorder(TOP_GAP, LEFT_GAP, 0, 0)); this.buttonlists = buttonlists; buttonVisible.addItemListener(itemListener); } private JPanel layoutText() { double p = TableLayout.PREFERRED; Component[][] components = new Component[][]{ new Component[]{new UILabel(Inter.getLocText("FR-Designer_Type") + ":", SwingConstants.RIGHT)}, new Component[]{new UILabel(Inter.getLocText("FR-Designer_WF_Name") + ":", SwingConstants.RIGHT)}, new Component[]{new UILabel(Inter.getLocText("FR-Designer_Permissions") + ":", SwingConstants .RIGHT)}, }; double[] rowSize = {p, p, p}; double[] columnSize = {p}; int[][] rowCount = {{1}, {1}, {1}}; return TableLayoutHelper.createGapTableLayoutPane(components, rowSize, columnSize, rowCount, LayoutConstants.VGAP_MEDIUM, LayoutConstants.VGAP_MEDIUM); } private JPanel layoutPane() { double f = TableLayout.FILL; double p = TableLayout.PREFERRED; Component[][] components = new Component[][]{ new Component[]{type}, new Component[]{name}, new Component[]{checkPane}, }; double[] rowSize = {p, p, p}; double[] columnSize = {f}; int[][] rowCount = {{1}, {1}, {1}}; return TableLayoutHelper.createGapTableLayoutPane(components, rowSize, columnSize, rowCount, LayoutConstants.VGAP_MEDIUM, LayoutConstants.VGAP_MEDIUM); } /** * 更新权限编辑面板的具体内容:类型、名称、权限面板 */ public void populateDetials() { populateName(); populateType(); populateCheckPane(); checkVisibleCheckBoxes(); } private void checkVisibleCheckBoxes() { buttonVisible.removeItemListener(itemListener); String selected = ReportAndFSManagePane.getInstance().getRoleTree().getSelectedRoleName(); if (selected == null) { buttonVisible.setSelected(true); } for (int i = 0; i < buttonlists.size(); i++) { if (buttonlists.get(i).isSelected()) { buttonVisible.setSelected(!buttonlists.get(i).isDoneAuthorityEdited(selected)); break; } } buttonVisible.addItemListener(itemListener); } public void populateType() { if (name.getText() == "") { type.setText(""); } else { type.setText(Inter.getLocText(new String[]{"ReportServerP-Toolbar", "FR-Designer_Form_Button"})); } } public void populateName() { String names = ""; for (int i = 0; i < buttonlists.size(); i++) { if (buttonlists.get(i).isSelected()) { names += "," + buttonlists.get(i).getNameOption().optionName(); } } if (names != "") { names = names.substring(1); } name.setText(names); } public void populateCheckPane() { checkPane.removeAll(); if (name.getText() == "") { return; } double f = TableLayout.FILL; double p = TableLayout.PREFERRED; Component[][] components = new Component[][]{ new Component[]{new UILabel(Inter.getLocText("FR-Designer_Form_Button"), SwingConstants.LEFT), buttonVisible}, }; double[] rowSize = {p, p}; double[] columnSize = {p, p, f}; int[][] rowCount = {{1, 1, 1}, {1, 1, 1}}; JPanel check = TableLayoutHelper.createGapTableLayoutPane(components, rowSize, columnSize, rowCount, LayoutConstants.VGAP_MEDIUM, LayoutConstants.VGAP_MEDIUM); checkPane.add(check, BorderLayout.CENTER); checkPane.setBorder(BorderFactory.createEmptyBorder(ALIGNMENT_GAP, 0, 0, 0)); } } } \ No newline at end of file +package com.fr.design.mainframe; + +import com.fr.design.constants.LayoutConstants; +import com.fr.design.constants.UIConstants; +import com.fr.design.file.HistoryTemplateListPane; +import com.fr.design.gui.icheckbox.UICheckBox; +import com.fr.design.gui.ilable.UILabel; +import com.fr.design.gui.itree.refreshabletree.ExpandMutableTreeNode; +import com.fr.design.layout.FRGUIPaneFactory; +import com.fr.design.layout.TableLayout; +import com.fr.design.layout.TableLayoutHelper; +import com.fr.design.roleAuthority.ReportAndFSManagePane; +import com.fr.design.roleAuthority.RolesAlreadyEditedPane; +import com.fr.design.webattr.ToolBarButton; +import com.fr.general.ComparatorUtils; +import com.fr.general.Inter; + +import javax.swing.*; +import javax.swing.tree.TreePath; +import java.awt.*; +import java.awt.event.ItemEvent; +import java.awt.event.ItemListener; +import java.util.List; + +/** + * 用于在权限编辑状态对工具栏的元素进行权限编辑的面板 + * Author : daisy + * Date: 13-9-18 + * Time: 下午2:15 + */ +public class AuthorityEditToolBarPane extends AuthorityPropertyPane { + + private static final int TITLE_HEIGHT = 19; + private AuthorityEditPane authorityEditPane = null; + private AuthorityToolBarPane authorityToolBarPane; + private String[] selectedPathArray; + + public AuthorityEditToolBarPane(List buttonlists) { + super(HistoryTemplateListPane.getInstance().getCurrentEditingTemplate()); + this.setLayout(new BorderLayout()); + this.setBorder(null); + UILabel authorityTitle = new UILabel(Inter.getLocText(new String[]{"FR-Designer_Permissions", + "FR-Designer_Edit"})) { + @Override + public Dimension getPreferredSize() { + return new Dimension(super.getPreferredSize().width, TITLE_HEIGHT); + } + }; + authorityTitle.setHorizontalAlignment(SwingConstants.CENTER); + authorityTitle.setVerticalAlignment(SwingConstants.CENTER); + JPanel northPane = FRGUIPaneFactory.createBorderLayout_S_Pane(); + northPane.add(authorityTitle, BorderLayout.CENTER); + northPane.setBorder(BorderFactory.createMatteBorder(0, 0, 1, 0, UIConstants.LINE_COLOR)); + this.add(northPane, BorderLayout.NORTH); + authorityEditPane = new AuthorityEditPane(buttonlists); + this.add(authorityEditPane, BorderLayout.CENTER); + } + + public void setAuthorityToolBarPane(AuthorityToolBarPane authorityToolBarPane) { + this.authorityToolBarPane = authorityToolBarPane; + } + + + public void populate() { + authorityToolBarPane.populateAuthority(); + signelSelection(); + authorityEditPane.populateDetials(); + } + + + private void signelSelection() { + JTemplate jTemplate = HistoryTemplateListPane.getInstance().getCurrentEditingTemplate(); + if (jTemplate.isJWorkBook()) { + //清参数面板 + jTemplate.removeParameterPaneSelection(); + //清报表主体 + jTemplate.removeTemplateSelection(); + } + } + + + private class AuthorityEditPane extends JPanel { + private static final int TOP_GAP = 11; + private static final int LEFT_GAP = 8; + private static final int ALIGNMENT_GAP = -3; + private UILabel type = null; + private UILabel name = null; + private JPanel checkPane = null; + private List buttonlists; + private UICheckBox buttonVisible = new UICheckBox(Inter.getLocText("FR-Designer_Visible")); + private ItemListener itemListener = new ItemListener() { + public void itemStateChanged(ItemEvent e) { + String selectedRole = ReportAndFSManagePane.getInstance().getRoleTree().getSelectedRoleName(); + initSelectedPathArray(); + if (ComparatorUtils.equals(selectedRole, Inter.getLocText("FR-Designer_Role")) || selectedRole == + null || selectedPathArray == null) { + return; + } + for (int t = 0; t < selectedPathArray.length; t++) { + for (int i = 0; i < buttonlists.size(); i++) { + if (buttonlists.get(i).isSelected()) { + buttonlists.get(i).changeAuthorityState(selectedPathArray[t], buttonVisible.isSelected()); + authorityToolBarPane.repaint(); + } + } + HistoryTemplateListPane.getInstance().getCurrentEditingTemplate().fireTargetModified(); + RolesAlreadyEditedPane.getInstance().refreshDockingView(); + UICheckBox checkbox = (UICheckBox) e.getSource(); + List btns = AuthorityEditPane.this.buttonlists; + for (int j = 0; j < btns.size(); j++) { + if (btns.get(j).isSelected()) { + //由引擎实现保存进模板报表 + authorityToolBarPane.setAuthorityWebAttr(btns.get(j).getWidget(), checkbox.isSelected(), selectedPathArray[t]); + } + } + } + } + }; + + /** + * @see ElementCasePaneAuthorityEditPane initSelectedPathArray() + */ + private void initSelectedPathArray() { + TreePath[] selectionPaths = ReportAndFSManagePane.getInstance().getRoleTree().getCheckBoxTreeSelectionModel().getSelectionPaths(); + if (selectionPaths.length == 1) { + if (((ExpandMutableTreeNode) (selectionPaths[0].getLastPathComponent())).getChildCount() > 0) { + ExpandMutableTreeNode node = (ExpandMutableTreeNode) ((ExpandMutableTreeNode) (selectionPaths[0].getLastPathComponent())).getLastChild(); + selectedPathArray = new String[node.getChildCount()]; + for (int i = 0; i < node.getChildCount(); i++) { + ExpandMutableTreeNode n = (ExpandMutableTreeNode) node.getChildAt(i); + String nodeName = n.getUserObject().toString(); + selectedPathArray[i] = nodeName; + } + } else { + selectedPathArray = ElementCasePaneAuthorityEditPane.pathToString(selectionPaths); + } + } else { + selectedPathArray = ElementCasePaneAuthorityEditPane.pathToString(selectionPaths); + } + + } + + public AuthorityEditPane(List buttonlists) { + setLayout(new BorderLayout()); + type = new UILabel(); + name = new UILabel(); + checkPane = new JPanel(); + checkPane.setLayout(new BorderLayout()); + this.add(layoutText(), BorderLayout.WEST); + this.add(layoutPane(), BorderLayout.CENTER); + this.setBorder(BorderFactory.createEmptyBorder(TOP_GAP, LEFT_GAP, 0, 0)); + this.buttonlists = buttonlists; + buttonVisible.addItemListener(itemListener); + } + + private JPanel layoutText() { + double p = TableLayout.PREFERRED; + Component[][] components = new Component[][]{ + new Component[]{new UILabel(Inter.getLocText("FR-Designer_Type") + ":", SwingConstants.RIGHT)}, + new Component[]{new UILabel(Inter.getLocText("FR-Designer_WF_Name") + ":", SwingConstants.RIGHT)}, + new Component[]{new UILabel(Inter.getLocText("FR-Designer_Permissions") + ":", SwingConstants + .RIGHT)}, + }; + double[] rowSize = {p, p, p}; + double[] columnSize = {p}; + int[][] rowCount = {{1}, {1}, {1}}; + return TableLayoutHelper.createGapTableLayoutPane(components, rowSize, columnSize, rowCount, LayoutConstants.VGAP_MEDIUM, LayoutConstants.VGAP_MEDIUM); + } + + + private JPanel layoutPane() { + double f = TableLayout.FILL; + double p = TableLayout.PREFERRED; + Component[][] components = new Component[][]{ + new Component[]{type}, + new Component[]{name}, + new Component[]{checkPane}, + }; + double[] rowSize = {p, p, p}; + double[] columnSize = {f}; + int[][] rowCount = {{1}, {1}, {1}}; + return TableLayoutHelper.createGapTableLayoutPane(components, rowSize, columnSize, rowCount, LayoutConstants.VGAP_MEDIUM, LayoutConstants.VGAP_MEDIUM); + } + + /** + * 更新权限编辑面板的具体内容:类型、名称、权限面板 + */ + public void populateDetials() { + populateName(); + populateType(); + populateCheckPane(); + checkVisibleCheckBoxes(); + } + + private void checkVisibleCheckBoxes() { + buttonVisible.removeItemListener(itemListener); + String selected = ReportAndFSManagePane.getInstance().getRoleTree().getSelectedRoleName(); + if (selected == null) { + buttonVisible.setSelected(true); + } + for (int i = 0; i < buttonlists.size(); i++) { + if (buttonlists.get(i).isSelected()) { + buttonVisible.setSelected(!buttonlists.get(i).isDoneAuthorityEdited(selected)); + break; + } + } + buttonVisible.addItemListener(itemListener); + } + + + public void populateType() { + if (name.getText() == "") { + type.setText(""); + } else { + type.setText(Inter.getLocText(new String[]{"ReportServerP-Toolbar", "FR-Designer_Form_Button"})); + } + } + + public void populateName() { + String names = ""; + for (int i = 0; i < buttonlists.size(); i++) { + if (buttonlists.get(i).isSelected()) { + names += "," + buttonlists.get(i).getNameOption().optionName(); + } + } + if (names != "") { + names = names.substring(1); + } + name.setText(names); + } + + public void populateCheckPane() { + checkPane.removeAll(); + if (name.getText() == "") { + return; + } + double f = TableLayout.FILL; + double p = TableLayout.PREFERRED; + Component[][] components = new Component[][]{ + new Component[]{new UILabel(Inter.getLocText("FR-Designer_Form_Button"), SwingConstants.LEFT), + buttonVisible}, + }; + double[] rowSize = {p, p}; + double[] columnSize = {p, p, f}; + int[][] rowCount = {{1, 1, 1}, {1, 1, 1}}; + JPanel check = TableLayoutHelper.createGapTableLayoutPane(components, rowSize, columnSize, rowCount, LayoutConstants.VGAP_MEDIUM, LayoutConstants.VGAP_MEDIUM); + checkPane.add(check, BorderLayout.CENTER); + checkPane.setBorder(BorderFactory.createEmptyBorder(ALIGNMENT_GAP, 0, 0, 0)); + } + } +} \ No newline at end of file diff --git a/designer/src/com/fr/design/mainframe/ElementCasePaneAuthorityEditPane.java b/designer/src/com/fr/design/mainframe/ElementCasePaneAuthorityEditPane.java index 2fa8535671..22c88049ec 100644 --- a/designer/src/com/fr/design/mainframe/ElementCasePaneAuthorityEditPane.java +++ b/designer/src/com/fr/design/mainframe/ElementCasePaneAuthorityEditPane.java @@ -1 +1,830 @@ -package com.fr.design.mainframe; import com.fr.design.constants.LayoutConstants; import com.fr.design.editor.ValueEditorPane; import com.fr.design.editor.ValueEditorPaneFactory; import com.fr.design.event.UIObserverListener; import com.fr.design.file.HistoryTemplateListPane; import com.fr.design.gui.icheckbox.UICheckBox; import com.fr.design.gui.ilable.UILabel; import com.fr.design.gui.itree.refreshabletree.ExpandMutableTreeNode; import com.fr.design.layout.TableLayout; import com.fr.design.layout.TableLayoutHelper; import com.fr.design.mainframe.toolbar.AuthorityEditToolBarComponent; import com.fr.design.roleAuthority.ReportAndFSManagePane; import com.fr.design.roleAuthority.RolesAlreadyEditedPane; import com.fr.form.ui.Widget; import com.fr.general.ComparatorUtils; import com.fr.general.Inter; import com.fr.grid.selection.CellSelection; import com.fr.grid.selection.FloatSelection; import com.fr.grid.selection.Selection; import com.fr.js.NameJavaScriptGroup; import com.fr.report.cell.AbstractCellElement; import com.fr.report.cell.DefaultTemplateCellElement; import com.fr.report.cell.FloatElement; import com.fr.report.cell.TemplateCellElement; import com.fr.report.elementcase.TemplateElementCase; import com.fr.report.worksheet.WorkSheet; import com.fr.stable.ColumnRow; import com.fr.stable.StringUtils; import javax.swing.*; import javax.swing.tree.TreePath; import java.awt.*; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; import java.util.ArrayList; /** * Author : daisy * Date: 13-9-4 * Time: 下午4:01 */ public class ElementCasePaneAuthorityEditPane extends AuthorityEditPane { private static final int WIDGET_VISIBLE = 0; private static final int WIDGET_USABLE = 1; private static final int CELL = 2; private static final int HYPER_LINK = 3; private static final int FLOAT_SELECTION = 3; private static final int NEW_VALUE = 4; //新值下面的编辑器的宽度 private static final int NEW_PANE_WIDTH = 120; private UICheckBox floatElementVisibleCheckBoxes = new UICheckBox(Inter.getLocText("FR-Designer_Visible")); private UICheckBox cellElementVisibleCheckBoxes = new UICheckBox(Inter.getLocText("FR-Designer_Visible")); private UICheckBox widgetVisible = new UICheckBox(Inter.getLocText("FR-Designer_Visible")); private UICheckBox widgetAvailable = new UICheckBox(Inter.getLocText("FR-Designer_Enabled")); private UICheckBox gridColumnRowVisible = new UICheckBox(Inter.getLocText("FR-Designer_Hide")); private UICheckBox newValue = new UICheckBox(Inter.getLocText("FR-Designer_New_Value")); private ValueEditorPane valueEditor = ValueEditorPaneFactory.createBasicValueEditorPane(NEW_PANE_WIDTH); private UICheckBox[] hyperlinkCheckBoxes = null; private ElementCasePane elementCasePane = null; private int selectionType = CellSelection.NORMAL; private CellSelection cellSelection; private FloatSelection floatSelection; private boolean isAllHasWidget; private boolean isAllHasHyperlink; private String[] selectedPathArray; private UIObserverListener observerListener = new UIObserverListener() { @Override public void doChange() { if (elementCasePane == null || cellSelection == null) { return; } if (setAuthorityStyle(NEW_VALUE)) { elementCasePane.fireTargetModified(); } } }; private ItemListener newValuelistener = new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (elementCasePane == null || cellSelection == null) { return; } if (setAuthorityStyle(NEW_VALUE)) { valueEditor.setEnabled(newValue.isSelected()); doAfterAuthority(); } } }; private ItemListener columnRowAuthorityListener = new ItemListener() { public void itemStateChanged(ItemEvent e) { if (elementCasePane == null) { return; } boolean isDone = false; if (selectionType == CellSelection.CHOOSE_COLUMN) { isDone = setAuthorityColumn(); } else { isDone = setAuthorityRow(); } if (isDone) { doAfterAuthority(); } } }; private ItemListener floatElementAuthorityListener = new ItemListener() { public void itemStateChanged(ItemEvent e) { if (elementCasePane == null || floatSelection == null) { return; } if (setLFloatAuthorityStyle()) { doAfterAuthority(); } } }; private ItemListener cellRolesAuthorityListener = new ItemListener() { public void itemStateChanged(ItemEvent e) { if (elementCasePane == null || cellSelection == null) { return; } if (setAuthorityStyle(CELL)) { doAfterAuthority(); } } }; private ItemListener widgetVisibleRoleAuthorityListener = new ItemListener() { public void itemStateChanged(ItemEvent e) { if (elementCasePane == null || cellSelection == null) { return; } if (setAuthorityStyle(WIDGET_VISIBLE)) { doAfterAuthority(); } } }; private ItemListener widgetUsableAuthorityListener = new ItemListener() { public void itemStateChanged(ItemEvent e) { if (elementCasePane == null || cellSelection == null) { return; } if (setAuthorityStyle(WIDGET_USABLE)) { doAfterAuthority(); } } }; public ElementCasePaneAuthorityEditPane(ElementCasePane elementCasePane) { super(elementCasePane); this.elementCasePane = elementCasePane; initCheckBoxesState(); initListener(); } private void doAfterAuthority() { elementCasePane.repaint(); elementCasePane.fireTargetModified(); RolesAlreadyEditedPane.getInstance().refreshDockingView(); RolesAlreadyEditedPane.getInstance().setReportAndFSSelectedRoles(); RolesAlreadyEditedPane.getInstance().repaint(); checkCheckBoxes(); } private boolean setAuthorityColumn() { initSelectedPathArray(); String selectedRoles = ReportAndFSManagePane.getInstance().getRoleTree().getSelectedRoleName(); if (ComparatorUtils.equals(selectedRoles, Inter.getLocText("FR-Designer_Role"))) { return false; } if (selectedRoles == null) { return false; } if (selectedPathArray == null) { return false; } final TemplateElementCase elementCase = elementCasePane.getEditingElementCase(); boolean isVisible = !gridColumnRowVisible.isSelected(); for (int t = 0; t < selectedPathArray.length; t++) { if (!isVisible) { for (int col = cellSelection.getColumn(); col < cellSelection.getColumn() + cellSelection.getColumnSpan(); col++) { elementCase.addColumnPrivilegeControl(col, selectedPathArray[t]); } } else { for (int col = cellSelection.getColumn(); col < cellSelection.getColumn() + cellSelection.getColumnSpan(); col++) { elementCase.removeColumnPrivilegeControl(col, selectedPathArray[t]); } } } return true; } private boolean setAuthorityRow() { initSelectedPathArray(); String selectedRoles = ReportAndFSManagePane.getInstance().getRoleTree().getSelectedRoleName(); if (ComparatorUtils.equals(selectedRoles, Inter.getLocText("FR-Designer_Role"))) { return false; } if (selectedRoles == null) { return false; } if (selectedPathArray == null) { return false; } final TemplateElementCase elementCase = elementCasePane.getEditingElementCase(); boolean isVisible = !gridColumnRowVisible.isSelected(); for (int t = 0; t < selectedPathArray.length; t++) { if (!isVisible) { for (int row = cellSelection.getRow(); row < cellSelection.getRow() + cellSelection.getRowSpan(); row++) { elementCase.addRowPrivilegeControl(row, selectedPathArray[t]); } } else { for (int row = cellSelection.getRow(); row < cellSelection.getRow() + cellSelection.getRowSpan(); row++) { elementCase.removeRowPrivilegeControl(row, selectedPathArray[t]); } } } return true; } private boolean setLFloatAuthorityStyle() { initSelectedPathArray(); String selectedRoles = ReportAndFSManagePane.getInstance().getRoleTree().getSelectedRoleName(); if (ComparatorUtils.equals(selectedRoles, Inter.getLocText("FR-Designer_Role"))) { return false; } if (selectedRoles == null) { return false; } if (selectedPathArray == null) { return false; } String name = floatSelection.getSelectedFloatName(); TemplateElementCase ec = elementCasePane.getEditingElementCase(); FloatElement fe = ec.getFloatElement(name); for (int t = 0; t < selectedPathArray.length; t++) { fe.changeAuthorityState(selectedPathArray[t], floatElementVisibleCheckBoxes.isSelected()); } return true; } private boolean setAuthorityStyle(int type) { initSelectedPathArray(); String selectedRoles = ReportAndFSManagePane.getInstance().getRoleTree().getSelectedRoleName(); if (ComparatorUtils.equals(selectedRoles, Inter.getLocText("FR-Designer_Role")) || selectedRoles == null || selectedPathArray == null) { return false; } final TemplateElementCase elementCase = elementCasePane.getEditingElementCase(); int cellRectangleCount = cellSelection.getCellRectangleCount(); for (int t = 0; t < selectedPathArray.length; t++) { for (int rec = 0; rec < cellRectangleCount; rec++) { Rectangle cellRectangle = cellSelection.getCellRectangle(rec); // 从最后循环起以保证最后一个修改标准单元格(originalStyle)。 for (int j = cellRectangle.height - 1; j >= 0; j--) { for (int i = cellRectangle.width - 1; i >= 0; i--) { int column = i + cellRectangle.x; int row = j + cellRectangle.y; TemplateCellElement editCellElement = elementCase.getTemplateCellElement(column, row); if (editCellElement == null) { editCellElement = new DefaultTemplateCellElement(column, row); elementCase.addCellElement(editCellElement); } else { // 对于合并的格子,我们不多次计算的权限. if (editCellElement.getColumn() != column || editCellElement.getRow() != row) { continue; } } if (type == CELL) { editCellElement.changeAuthorityState(selectedPathArray[t], cellElementVisibleCheckBoxes.isSelected()); } else if (type == NEW_VALUE) { editCellElement.changeNewValueAuthorityState(selectedPathArray[t], newValue.isSelected(), valueEditor.update()); } else if (type == WIDGET_VISIBLE) { Widget widget = editCellElement.getWidget(); widget.changeVisibleAuthorityState(selectedPathArray[t], widgetVisible.isSelected()); } else { Widget widget = editCellElement.getWidget(); widget.changeUsableAuthorityState(selectedPathArray[t], widgetAvailable.isSelected()); } } } } } return true; } /** * @see AuthorityEditToolBarPane initSelectedPathArray */ private void initSelectedPathArray() { TreePath[] selectionPaths = ReportAndFSManagePane.getInstance().getRoleTree().getCheckBoxTreeSelectionModel().getSelectionPaths(); if (selectionPaths.length == 1) { if (((ExpandMutableTreeNode) (selectionPaths[0].getLastPathComponent())).getChildCount() > 0) { ExpandMutableTreeNode node = (ExpandMutableTreeNode) ((ExpandMutableTreeNode) (selectionPaths[0].getLastPathComponent())).getLastChild(); selectedPathArray = new String[node.getChildCount()]; for (int i = 0; i < node.getChildCount(); i++) { ExpandMutableTreeNode n = (ExpandMutableTreeNode) node.getChildAt(i); String nodeName = n.getUserObject().toString(); selectedPathArray[i] = nodeName; } } else { selectedPathArray = pathToString(selectionPaths); } } else { selectedPathArray = pathToString(selectionPaths); } } public static String[] pathToString(TreePath[] path) { java.util.List roles = new ArrayList(); if (path != null && path.length > 0) { for (TreePath tempPath : path) { String temp = tempPath.toString(); boolean isTrue = temp.length() > 0 && temp.charAt(0) == '[' && temp.endsWith("]"); if (isTrue) { temp = temp.substring(1, temp.length() - 1); String[] selectedRoles = temp.split("," + StringUtils.BLANK); String role = selectedRoles[2].trim(); roles.add(role); } } } return roles.toArray(new String[0]); } /** * 选中的单元格的乐见状态以第一个单元格为齐 */ public void initCheckBoxesState() { final TemplateElementCase elementCase = elementCasePane.getEditingElementCase(); if (cellSelection == null) { cellElementVisibleCheckBoxes.setSelected(true); } else { Rectangle cellRectangle = cellSelection.getCellRectangle(0); DefaultTemplateCellElement cellElement = (DefaultTemplateCellElement) elementCase.getCellElement(cellRectangle.x, cellRectangle.y); if (cellElement == null) { cellElement = new DefaultTemplateCellElement(cellRectangle.x, cellRectangle.y); } boolean firstCellDoneaAuthority = cellElement.isDoneAuthority( ReportAndFSManagePane.getInstance().getRoleTree().getSelectedRoleName()); cellElementVisibleCheckBoxes.setSelected(!firstCellDoneaAuthority); } widgetAvailable.setEnabled(cellElementVisibleCheckBoxes.isSelected()); widgetVisible.setEnabled(cellElementVisibleCheckBoxes.isSelected()); } private void initListener() { cellElementVisibleCheckBoxes.addItemListener(cellRolesAuthorityListener); widgetVisible.addItemListener(widgetVisibleRoleAuthorityListener); widgetAvailable.addItemListener(widgetUsableAuthorityListener); floatElementVisibleCheckBoxes.addItemListener(floatElementAuthorityListener); gridColumnRowVisible.addItemListener(columnRowAuthorityListener); newValue.addItemListener(newValuelistener); valueEditor.registerChangeListener(observerListener); } private void removeListener() { cellElementVisibleCheckBoxes.removeItemListener(cellRolesAuthorityListener); widgetVisible.removeItemListener(widgetVisibleRoleAuthorityListener); widgetAvailable.removeItemListener(widgetUsableAuthorityListener); floatElementVisibleCheckBoxes.removeItemListener(floatElementAuthorityListener); gridColumnRowVisible.removeItemListener(columnRowAuthorityListener); newValue.removeItemListener(newValuelistener); valueEditor.registerChangeListener(null); } private void addHyperlinkListener() { cellElementVisibleCheckBoxes.addItemListener(new ItemListener() { public void itemStateChanged(ItemEvent e) { if (hyperlinkCheckBoxes != null) { for (int i = 0; i < hyperlinkCheckBoxes.length; i++) { hyperlinkCheckBoxes[i].setEnabled(cellElementVisibleCheckBoxes.isSelected()); if (!cellElementVisibleCheckBoxes.isSelected()) { hyperlinkCheckBoxes[i].setSelected(false); } } } } }); for (int i = 0; i < hyperlinkCheckBoxes.length; i++) { hyperlinkCheckBoxes[i].addItemListener(cellRolesAuthorityListener); } } /** * 更新适合的类型 */ public void populateType() { if (selectionType == CellSelection.NORMAL) { type.setText(Inter.getLocText("FR-Designer_Cell")); } else if (selectionType == CellSelection.CHOOSE_ROW) { type.setText(Inter.getLocText("FR-Designer_Row")); } else if (selectionType == CellSelection.CHOOSE_COLUMN) { type.setText(Inter.getLocText("FR-Designer_Column")); } else { type.setText(Inter.getLocText("M_Insert-Float")); } } /** * 名字 */ public void populateName() { if (selectionType == CellSelection.NORMAL) { name.setText(getCellSelectionName()); } else if (selectionType == CellSelection.CHOOSE_ROW || selectionType == CellSelection.CHOOSE_COLUMN) { name.setText(getCellColumnRowName()); } else { name.setText(getFloatSelectionName()); } } private String getCellSelectionName() { String nameText = ""; int count = cellSelection.getCellRectangleCount(); for (int rect = 0; rect < count; rect++) { nameText += ","; Rectangle cellRectangle = cellSelection.getCellRectangle(rect); ColumnRow beginCR = ColumnRow.valueOf(cellRectangle.x, cellRectangle.y); nameText += beginCR.toString(); if (cellRectangle.width * cellRectangle.height != 1) { ColumnRow endCR = ColumnRow.valueOf(cellRectangle.width + cellRectangle.x - 1, cellRectangle.height + cellRectangle.y - 1); nameText += ":" + endCR.toString(); } } return nameText.substring(1); } private String getCellColumnRowName() { int count = cellSelection.getCellRectangleCount(); String nameText = ""; ColumnRow cr = ColumnRow.valueOf(cellSelection.getColumn(), cellSelection.getRow()); if (cellSelection.getSelectedType() == CellSelection.CHOOSE_COLUMN && count == 1) { if (cellSelection.getColumnSpan() == 1) { nameText = cr.toString().substring(0, 1); } else { ColumnRow endCr = ColumnRow.valueOf(cellSelection.getColumn() + cellSelection.getColumnSpan() - 1, cellSelection.getRow() + cellSelection.getRowSpan() - 1); nameText = cr.toString().substring(0, 1) + "-" + endCr.toString().substring(0, 1); } } else if (cellSelection.getSelectedType() == CellSelection.CHOOSE_ROW && count == 1) { if (cellSelection.getRowSpan() == 1) { nameText = cr.toString().substring(1); } else { ColumnRow endCr = ColumnRow.valueOf(cellSelection.getColumn() + cellSelection.getColumnSpan() - 1, cellSelection.getRow() + cellSelection.getRowSpan() - 1); nameText = cr.toString().substring(1) + "-" + endCr.toString().substring(1); } } return nameText; } private String getFloatSelectionName() { return floatSelection.getSelectedFloatName(); } private void mutilRect(CellSelection cellSelection) { isAllHasWidget = true; isAllHasHyperlink = true; int count = cellSelection.getCellRectangleCount(); final TemplateElementCase elementCase = elementCasePane.getEditingElementCase(); for (int rect = 0; rect < count; rect++) { Rectangle cellRectangle = cellSelection.getCellRectangle(rect); for (int j = 0; j < cellRectangle.height; j++) { for (int i = 0; i < cellRectangle.width; i++) { int column = i + cellRectangle.x; int row = j + cellRectangle.y; DefaultTemplateCellElement cellElement = (DefaultTemplateCellElement) elementCase.getCellElement(column, row); if (cellElement == null) { cellElement = new DefaultTemplateCellElement(cellSelection.getColumn(), cellSelection.getRow()); } if (cellElement.getCellWidgetAttr() == null) { isAllHasWidget = false; } if (cellElement.getNameHyperlinkGroup() == null) { isAllHasHyperlink = false; } } } } } /** * 更新适合的pane * * @return 返回Pane */ public JPanel populateCheckPane() { checkPane.removeAll(); if (selectionType == CellSelection.NORMAL) { populateCellSelectionCheckPane(checkPane); } else if (selectionType == CellSelection.CHOOSE_COLUMN || selectionType == CellSelection.CHOOSE_ROW) { populateColumnRowCheckPane(checkPane); } else if (selectionType == FLOAT_SELECTION) { populateFloatSelectionCheckPane(checkPane); } checkPane.setBorder(BorderFactory.createEmptyBorder(ALIGNMENT_GAP, 0, 0, 0)); return checkPane; } private void populateColumnRowCheckPane(JPanel checkPane) { double f = TableLayout.FILL; double p = TableLayout.PREFERRED; Component[][] components = new Component[][]{ new Component[]{gridColumnRowVisible} }; double[] rowSize = {p}; double[] columnSize = {f}; int[][] rowCount = {{1}}; checkPane.add( TableLayoutHelper.createGapTableLayoutPane(components, rowSize, columnSize, rowCount, LayoutConstants.VGAP_MEDIUM, LayoutConstants.VGAP_MEDIUM) , BorderLayout.WEST); } private void populateFloatSelectionCheckPane(JPanel checkPane) { checkPane.add(populateFloatElementCheckPane(), BorderLayout.WEST); } private void populateCellSelectionCheckPane(JPanel checkPane) { if (elementCasePane.isSelectedOneCell()) { //只选中了一个单元格 final TemplateElementCase elementCase = elementCasePane.getEditingElementCase(); DefaultTemplateCellElement cellElement = (DefaultTemplateCellElement) elementCase.getCellElement(cellSelection.getColumn(), cellSelection.getRow()); if (cellElement == null) { cellElement = new DefaultTemplateCellElement(cellSelection.getColumn(), cellSelection.getRow()); } //单元格带控件 if (cellElement.getCellWidgetAttr() != null) { checkPane.add(populateWidgetCheckPane(), BorderLayout.WEST); } else { checkPane.add(populatCellCheckPane(), BorderLayout.WEST); } } else { //批量选中单元格 mutilRect(cellSelection); if (!isAllHasWidget && !isAllHasHyperlink) { checkPane.add(populateMutilCellCheckPane(), BorderLayout.WEST); } else if (isAllHasWidget) { checkPane.add(populateMutilWidgetCheckPane(), BorderLayout.WEST); } } } /** * 对单元格区域进行操作时的权限编辑页面 ,对应的角色的populate */ public void populateDetials() { //做模式标记,此时鼠标焦点是在报表主体,为下一次退出权限编辑时做准备 HistoryTemplateListPane.getInstance().getCurrentEditingTemplate().setAuthorityMode(false); TemplateElementCase templateElementCase = elementCasePane.getEditingElementCase(); if (templateElementCase instanceof WorkSheet) { ((WorkSheet) templateElementCase).setPaintSelection(true); } signelSelection(); Selection selection = elementCasePane.getSelection(); if (selection instanceof CellSelection) { selectionType = CellSelection.NORMAL; this.cellSelection = ((CellSelection) selection).clone(); this.floatSelection = null; judgeChooseCR(); } else if (selection instanceof FloatSelection) { selectionType = FLOAT_SELECTION; cellSelection = null; floatSelection = new FloatSelection(((FloatSelection) selection).getSelectedFloatName()); } populateType(); populateName(); populateCheckPane(); checkCheckBoxes(); } //判断是否选择的行列 private void judgeChooseCR() { if (cellSelection.getSelectedType() == CellSelection.CHOOSE_COLUMN && cellSelection.getCellRectangleCount() == 1) { selectionType = CellSelection.CHOOSE_COLUMN; } if (cellSelection.getSelectedType() == CellSelection.CHOOSE_ROW && cellSelection.getCellRectangleCount() == 1) { selectionType = CellSelection.CHOOSE_ROW; } } //实现单选 private void signelSelection() { JTemplate jTemplate = HistoryTemplateListPane.getInstance().getCurrentEditingTemplate(); if (jTemplate.isJWorkBook()) { //清工具栏 JComponent component = DesignerContext.getDesignerFrame().getToolbarComponent(); if (component instanceof AuthorityEditToolBarComponent) { ((AuthorityEditToolBarComponent) component).removeSelection(); } //清参数面板 jTemplate.removeParameterPaneSelection(); } } private JPanel populateFloatElementCheckPane() { double f = TableLayout.FILL; double p = TableLayout.PREFERRED; Component[][] components = new Component[][]{ new Component[]{new UILabel(Inter.getLocText("M_Insert-Float"), SwingConstants.LEFT), floatElementVisibleCheckBoxes} }; double[] rowSize = {p}; double[] columnSize = {p, f}; int[][] rowCount = {{1, 1}}; return TableLayoutHelper.createGapTableLayoutPane(components, rowSize, columnSize, rowCount, LayoutConstants.VGAP_MEDIUM, LayoutConstants.VGAP_MEDIUM); } private JPanel populateWidgetCheckPane() { double f = TableLayout.FILL; double p = TableLayout.PREFERRED; Component[][] components = new Component[][]{ new Component[]{new UILabel(Inter.getLocText("FR-Designer_Cell"), SwingConstants.LEFT), cellElementVisibleCheckBoxes}, new Component[]{null, newValue}, new Component[]{null, valueEditor}, new Component[]{new UILabel(Inter.getLocText("FR-Designer_Widget"), SwingConstants.LEFT), widgetVisible}, new Component[]{null, widgetAvailable} }; double[] rowSize = {p, p, p, p, p}; double[] columnSize = {p, f}; int[][] rowCount = {{1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}}; return TableLayoutHelper.createGapTableLayoutPane(components, rowSize, columnSize, rowCount, LayoutConstants.VGAP_MEDIUM, LayoutConstants.VGAP_MEDIUM); } private JPanel populateMutilWidgetCheckPane() { double f = TableLayout.FILL; double p = TableLayout.PREFERRED; Component[][] components = new Component[][]{ new Component[]{new UILabel(Inter.getLocText("FR-Designer_Cell"), SwingConstants.LEFT), cellElementVisibleCheckBoxes}, new Component[]{new UILabel(Inter.getLocText("FR-Designer_Widget"), SwingConstants.LEFT), widgetVisible}, new Component[]{null, widgetAvailable} }; double[] rowSize = {p, p, p}; double[] columnSize = {p, f}; int[][] rowCount = {{1, 1}, {1, 1}, {1, 1}}; return TableLayoutHelper.createGapTableLayoutPane(components, rowSize, columnSize, rowCount, LayoutConstants.VGAP_MEDIUM, LayoutConstants.VGAP_MEDIUM); } private JPanel populateMutilCellCheckPane() { double f = TableLayout.FILL; double p = TableLayout.PREFERRED; Component[][] components = new Component[][]{ new Component[]{cellElementVisibleCheckBoxes}, }; double[] rowSize = {p}; double[] columnSize = {f}; int[][] rowCount = {{1}}; return TableLayoutHelper.createGapTableLayoutPane(components, rowSize, columnSize, rowCount, LayoutConstants.VGAP_MEDIUM, LayoutConstants.VGAP_MEDIUM); } private JPanel populatCellCheckPane() { double f = TableLayout.FILL; double p = TableLayout.PREFERRED; Component[][] components = new Component[][]{ new Component[]{cellElementVisibleCheckBoxes}, new Component[]{newValue}, new Component[]{valueEditor} }; double[] rowSize = {p, p, p}; double[] columnSize = {f}; int[][] rowCount = {{1}, {1}, {1}}; return TableLayoutHelper.createGapTableLayoutPane(components, rowSize, columnSize, rowCount, LayoutConstants.VGAP_MEDIUM, LayoutConstants.VGAP_MEDIUM); } public TemplateCellElement getFirstCell() { final TemplateElementCase elementCase = elementCasePane.getEditingElementCase(); Rectangle cellRectangle = cellSelection.getCellRectangle(0); // 从最后循环起以保证最后一个修改标准单元格(originalStyle)。 TemplateCellElement firstCell = null; for (int j = cellRectangle.height - 1; j >= 0; j--) { for (int i = cellRectangle.width - 1; i >= 0; i--) { int column = i + cellRectangle.x; int row = j + cellRectangle.y; TemplateCellElement editCellElement = elementCase.getTemplateCellElement(column, row); if (editCellElement != null) { // 对于合并的格子,我们不多次计算的权限. if (editCellElement.getColumn() != column || editCellElement.getRow() != row) { continue; } firstCell = editCellElement; } } } return firstCell; } private void checkCheckBoxes() { String selected = ReportAndFSManagePane.getInstance().getRoleTree().getSelectedRoleName(); removeListener(); if (selectionType == CellSelection.NORMAL) { checkCellSelectionCkeckboxes(selected); } else if (selectionType == CellSelection.CHOOSE_COLUMN || selectionType == CellSelection.CHOOSE_ROW) { checkColumnRowCheckBoxes(selected); } else if (selectionType == FLOAT_SELECTION) { checkFloatSelectionCkeckboxes(selected); } initListener(); } private void checkCellSelectionCkeckboxes(String selected) { TemplateCellElement firstCell = getFirstCell(); if (firstCell == null) { resetCellElementCheckBoxes(); return; } cellElementVisibleCheckBoxes.setSelected(!firstCell.isDoneAuthority(selected)); newValue.setEnabled(!firstCell.isDoneAuthority(selected)); if (!firstCell.isDoneAuthority(selected)) { newValue.setSelected(firstCell.isDoneNewValueAuthority(selected)); if (newValue.isSelected()) { valueEditor.setEnabled(true); valueEditor.populate(firstCell.getCellPrivilegeControl().getNewValueMap().get(selected)); } else { valueEditor.setEnabled(false); } } else { newValue.setSelected(false); valueEditor.setEnabled(false); } populateWidgetButton(firstCell.getWidget(), selected, firstCell); } private void populateWidgetButton(Widget widget, String selected, TemplateCellElement firstCell) { if (widget != null) { if (widget.isVisible()) { widgetVisible.setSelected(!widget.isDoneVisibleAuthority(selected)); widgetVisible.setEnabled(!firstCell.isDoneAuthority(selected)); } else { widgetVisible.setSelected(widget.isVisibleAuthority(selected)); } if (widget.isEnabled()) { widgetAvailable.setSelected(!widget.isDoneUsableAuthority(selected)); widgetAvailable.setEnabled(!widget.isDoneVisibleAuthority(selected)); } else { widgetAvailable.setSelected(widget.isUsableAuthority(selected)); } } } private void resetCellElementCheckBoxes() { cellElementVisibleCheckBoxes.setSelected(true); widgetVisible.setSelected(true); widgetVisible.setEnabled(true); widgetAvailable.setSelected(true); widgetAvailable.setEnabled(true); newValue.setSelected(false); valueEditor.setEnabled(false); } private void checkColumnRowCheckBoxes(String selected) { if (cellSelection == null) { gridColumnRowVisible.setSelected(false); return; } TemplateElementCase elementCase = elementCasePane.getEditingElementCase(); boolean isInside = selectionType == CellSelection.CHOOSE_COLUMN ? elementCase.getColumnPrivilegeControl(cellSelection.getColumn()).checkInvisible(selected) : elementCase.getRowPrivilegeControl(cellSelection.getRow()).checkInvisible(selected); gridColumnRowVisible.setSelected(isInside); } private void checkFloatSelectionCkeckboxes(String selected) { String name = floatSelection.getSelectedFloatName(); TemplateElementCase ec = elementCasePane.getEditingElementCase(); FloatElement fe = ec.getFloatElement(name); floatElementVisibleCheckBoxes.setSelected(!fe.isDoneAuthority(selected)); } private JPanel populateHyperlinkCheckPane(AbstractCellElement cellElement) { NameJavaScriptGroup linkGroup = cellElement.getNameHyperlinkGroup(); //超链接的个数+单元格可见的操作 hyperlinkCheckBoxes = new UICheckBox[linkGroup.size()]; double f = TableLayout.FILL; double p = TableLayout.PREFERRED; Component[][] components = new Component[hyperlinkCheckBoxes.length + 1][]; if (linkGroup.size() == 1) { components[0] = new Component[]{new UILabel(Inter.getLocText("FR-Designer_Cell"), SwingConstants.LEFT), cellElementVisibleCheckBoxes}; components[1] = new Component[]{new UILabel(Inter.getLocText("FR-Designer_Hyperlink"), SwingConstants.LEFT), hyperlinkCheckBoxes[0] = new UICheckBox(Inter.getLocText("FR-Designer_Visible"))}; } else { components[0] = new Component[]{new UILabel(Inter.getLocText("FR-Designer_Cell"), SwingConstants.LEFT), cellElementVisibleCheckBoxes = new UICheckBox(Inter.getLocText("FR-Designer_Visible"))}; components[1] = new Component[]{new UILabel(Inter.getLocText("FR-Designer_Hyperlink"), SwingConstants.LEFT), hyperlinkCheckBoxes[0] = new UICheckBox(linkGroup.getNameHyperlink(0).getName() + Inter.getLocText("FR-Designer_Visible"))}; for (int i = 1; i < hyperlinkCheckBoxes.length; i++) { components[i + 1] = new Component[]{null, hyperlinkCheckBoxes[i] = new UICheckBox(linkGroup.getNameHyperlink(i).getName() + Inter.getLocText("FR-Designer_Visible"))}; } } for (int i = 0; i < hyperlinkCheckBoxes.length; i++) { hyperlinkCheckBoxes[i].setEnabled(cellElementVisibleCheckBoxes.isSelected()); } addHyperlinkListener(); double[] rowSize = new double[hyperlinkCheckBoxes.length + 1]; int[][] rowCount = new int[hyperlinkCheckBoxes.length + 1][]; for (int i = 0; i < hyperlinkCheckBoxes.length + 1; i++) { rowSize[i] = p; rowCount[i] = new int[]{1, 1}; } double[] columnSize = {p, f}; return TableLayoutHelper.createGapTableLayoutPane(components, rowSize, columnSize, rowCount, LayoutConstants.VGAP_MEDIUM, LayoutConstants.VGAP_MEDIUM); } private JPanel populateMutilHyperlinkCheckPane() { //超链接的个数+单元格可见的操作 hyperlinkCheckBoxes = new UICheckBox[1]; double f = TableLayout.FILL; double p = TableLayout.PREFERRED; Component[][] components = new Component[2][]; components[0] = new Component[]{new UILabel(Inter.getLocText("FR-Designer_Cell"), SwingConstants.LEFT), cellElementVisibleCheckBoxes}; components[1] = new Component[]{new UILabel(Inter.getLocText("FR-Designer_Hyperlink"), SwingConstants.LEFT), hyperlinkCheckBoxes[0] = new UICheckBox(Inter.getLocText("FR-Designer_Visible"))}; hyperlinkCheckBoxes[0].setEnabled(cellElementVisibleCheckBoxes.isSelected()); addHyperlinkListener(); double[] rowSize = {p, p}; double[] columnSize = {p, f}; int[][] rowCount = {{1, 1}, {1, 1}}; return TableLayoutHelper.createGapTableLayoutPane(components, rowSize, columnSize, rowCount, LayoutConstants.VGAP_MEDIUM, LayoutConstants.VGAP_MEDIUM); } } \ No newline at end of file +package com.fr.design.mainframe; + +import com.fr.design.constants.LayoutConstants; +import com.fr.design.editor.ValueEditorPane; +import com.fr.design.editor.ValueEditorPaneFactory; +import com.fr.design.event.UIObserverListener; +import com.fr.design.file.HistoryTemplateListPane; +import com.fr.design.gui.icheckbox.UICheckBox; +import com.fr.design.gui.ilable.UILabel; +import com.fr.design.gui.itree.refreshabletree.ExpandMutableTreeNode; +import com.fr.design.layout.TableLayout; +import com.fr.design.layout.TableLayoutHelper; +import com.fr.design.mainframe.toolbar.AuthorityEditToolBarComponent; +import com.fr.design.roleAuthority.ReportAndFSManagePane; +import com.fr.design.roleAuthority.RolesAlreadyEditedPane; +import com.fr.form.ui.Widget; +import com.fr.general.ComparatorUtils; +import com.fr.general.Inter; +import com.fr.grid.selection.CellSelection; +import com.fr.grid.selection.FloatSelection; +import com.fr.grid.selection.Selection; +import com.fr.js.NameJavaScriptGroup; +import com.fr.report.cell.AbstractCellElement; +import com.fr.report.cell.DefaultTemplateCellElement; +import com.fr.report.cell.FloatElement; +import com.fr.report.cell.TemplateCellElement; +import com.fr.report.elementcase.TemplateElementCase; +import com.fr.report.worksheet.WorkSheet; +import com.fr.stable.ColumnRow; +import com.fr.stable.StringUtils; + +import javax.swing.*; +import javax.swing.tree.TreePath; +import java.awt.*; +import java.awt.event.ItemEvent; +import java.awt.event.ItemListener; +import java.util.ArrayList; + +/** + * Author : daisy + * Date: 13-9-4 + * Time: 下午4:01 + */ +public class ElementCasePaneAuthorityEditPane extends AuthorityEditPane { + private static final int WIDGET_VISIBLE = 0; + private static final int WIDGET_USABLE = 1; + private static final int CELL = 2; + private static final int HYPER_LINK = 3; + private static final int FLOAT_SELECTION = 3; + private static final int NEW_VALUE = 4; + //新值下面的编辑器的宽度 + private static final int NEW_PANE_WIDTH = 120; + + + private UICheckBox floatElementVisibleCheckBoxes = new UICheckBox(Inter.getLocText("FR-Designer_Visible")); + private UICheckBox cellElementVisibleCheckBoxes = new UICheckBox(Inter.getLocText("FR-Designer_Visible")); + private UICheckBox widgetVisible = new UICheckBox(Inter.getLocText("FR-Designer_Visible")); + private UICheckBox widgetAvailable = new UICheckBox(Inter.getLocText("FR-Designer_Enabled")); + private UICheckBox gridColumnRowVisible = new UICheckBox(Inter.getLocText("FR-Designer_Hide")); + private UICheckBox newValue = new UICheckBox(Inter.getLocText("FR-Designer_New_Value")); + private ValueEditorPane valueEditor = ValueEditorPaneFactory.createBasicValueEditorPane(NEW_PANE_WIDTH); + private UICheckBox[] hyperlinkCheckBoxes = null; + private ElementCasePane elementCasePane = null; + private int selectionType = CellSelection.NORMAL; + private CellSelection cellSelection; + private FloatSelection floatSelection; + private boolean isAllHasWidget; + private boolean isAllHasHyperlink; + private String[] selectedPathArray; + private UIObserverListener observerListener = new UIObserverListener() { + @Override + public void doChange() { + if (elementCasePane == null || cellSelection == null) { + return; + } + if (setAuthorityStyle(NEW_VALUE)) { + elementCasePane.fireTargetModified(); + } + + } + }; + private ItemListener newValuelistener = new ItemListener() { + @Override + public void itemStateChanged(ItemEvent e) { + if (elementCasePane == null || cellSelection == null) { + return; + } + if (setAuthorityStyle(NEW_VALUE)) { + valueEditor.setEnabled(newValue.isSelected()); + doAfterAuthority(); + } + } + }; + private ItemListener columnRowAuthorityListener = new ItemListener() { + public void itemStateChanged(ItemEvent e) { + if (elementCasePane == null) { + return; + } + boolean isDone = false; + if (selectionType == CellSelection.CHOOSE_COLUMN) { + isDone = setAuthorityColumn(); + } else { + isDone = setAuthorityRow(); + } + if (isDone) { + doAfterAuthority(); + } + } + }; + private ItemListener floatElementAuthorityListener = new ItemListener() { + public void itemStateChanged(ItemEvent e) { + if (elementCasePane == null || floatSelection == null) { + return; + } + if (setLFloatAuthorityStyle()) { + doAfterAuthority(); + } + } + }; + private ItemListener cellRolesAuthorityListener = new ItemListener() { + public void itemStateChanged(ItemEvent e) { + if (elementCasePane == null || cellSelection == null) { + return; + } + if (setAuthorityStyle(CELL)) { + doAfterAuthority(); + } + } + }; + private ItemListener widgetVisibleRoleAuthorityListener = new ItemListener() { + public void itemStateChanged(ItemEvent e) { + if (elementCasePane == null || cellSelection == null) { + return; + } + if (setAuthorityStyle(WIDGET_VISIBLE)) { + doAfterAuthority(); + } + } + }; + private ItemListener widgetUsableAuthorityListener = new ItemListener() { + public void itemStateChanged(ItemEvent e) { + if (elementCasePane == null || cellSelection == null) { + return; + } + + if (setAuthorityStyle(WIDGET_USABLE)) { + doAfterAuthority(); + } + } + }; + + public ElementCasePaneAuthorityEditPane(ElementCasePane elementCasePane) { + super(elementCasePane); + this.elementCasePane = elementCasePane; + initCheckBoxesState(); + initListener(); + } + + private void doAfterAuthority() { + elementCasePane.repaint(); + elementCasePane.fireTargetModified(); + RolesAlreadyEditedPane.getInstance().refreshDockingView(); + RolesAlreadyEditedPane.getInstance().setReportAndFSSelectedRoles(); + RolesAlreadyEditedPane.getInstance().repaint(); + checkCheckBoxes(); + } + + private boolean setAuthorityColumn() { + initSelectedPathArray(); + String selectedRoles = ReportAndFSManagePane.getInstance().getRoleTree().getSelectedRoleName(); + if (ComparatorUtils.equals(selectedRoles, Inter.getLocText("FR-Designer_Role"))) { + return false; + } + if (selectedRoles == null) { + return false; + } + if (selectedPathArray == null) { + return false; + } + final TemplateElementCase elementCase = elementCasePane.getEditingElementCase(); + boolean isVisible = !gridColumnRowVisible.isSelected(); + for (int t = 0; t < selectedPathArray.length; t++) { + if (!isVisible) { + for (int col = cellSelection.getColumn(); col < cellSelection.getColumn() + cellSelection.getColumnSpan(); col++) { + elementCase.addColumnPrivilegeControl(col, selectedPathArray[t]); + } + } else { + for (int col = cellSelection.getColumn(); col < cellSelection.getColumn() + cellSelection.getColumnSpan(); col++) { + elementCase.removeColumnPrivilegeControl(col, selectedPathArray[t]); + } + } + } + + return true; + } + + private boolean setAuthorityRow() { + initSelectedPathArray(); + String selectedRoles = ReportAndFSManagePane.getInstance().getRoleTree().getSelectedRoleName(); + if (ComparatorUtils.equals(selectedRoles, Inter.getLocText("FR-Designer_Role"))) { + return false; + } + if (selectedRoles == null) { + return false; + } + if (selectedPathArray == null) { + return false; + } + final TemplateElementCase elementCase = elementCasePane.getEditingElementCase(); + boolean isVisible = !gridColumnRowVisible.isSelected(); + for (int t = 0; t < selectedPathArray.length; t++) { + if (!isVisible) { + for (int row = cellSelection.getRow(); row < cellSelection.getRow() + cellSelection.getRowSpan(); row++) { + elementCase.addRowPrivilegeControl(row, selectedPathArray[t]); + } + } else { + for (int row = cellSelection.getRow(); row < cellSelection.getRow() + cellSelection.getRowSpan(); row++) { + elementCase.removeRowPrivilegeControl(row, selectedPathArray[t]); + } + } + } + + + return true; + } + + private boolean setLFloatAuthorityStyle() { + initSelectedPathArray(); + String selectedRoles = ReportAndFSManagePane.getInstance().getRoleTree().getSelectedRoleName(); + if (ComparatorUtils.equals(selectedRoles, Inter.getLocText("FR-Designer_Role"))) { + return false; + } + if (selectedRoles == null) { + return false; + } + if (selectedPathArray == null) { + return false; + } + String name = floatSelection.getSelectedFloatName(); + TemplateElementCase ec = elementCasePane.getEditingElementCase(); + FloatElement fe = ec.getFloatElement(name); + for (int t = 0; t < selectedPathArray.length; t++) { + fe.changeAuthorityState(selectedPathArray[t], floatElementVisibleCheckBoxes.isSelected()); + } + + return true; + } + + private boolean setAuthorityStyle(int type) { + initSelectedPathArray(); + String selectedRoles = ReportAndFSManagePane.getInstance().getRoleTree().getSelectedRoleName(); + if (ComparatorUtils.equals(selectedRoles, Inter.getLocText("FR-Designer_Role")) || + selectedRoles == null || selectedPathArray == null) { + return false; + } + final TemplateElementCase elementCase = elementCasePane.getEditingElementCase(); + int cellRectangleCount = cellSelection.getCellRectangleCount(); + for (int t = 0; t < selectedPathArray.length; t++) { + + for (int rec = 0; rec < cellRectangleCount; rec++) { + Rectangle cellRectangle = cellSelection.getCellRectangle(rec); + // 从最后循环起以保证最后一个修改标准单元格(originalStyle)。 + for (int j = cellRectangle.height - 1; j >= 0; j--) { + for (int i = cellRectangle.width - 1; i >= 0; i--) { + int column = i + cellRectangle.x; + int row = j + cellRectangle.y; + TemplateCellElement editCellElement = elementCase.getTemplateCellElement(column, row); + if (editCellElement == null) { + editCellElement = new DefaultTemplateCellElement(column, row); + elementCase.addCellElement(editCellElement); + } else { + // 对于合并的格子,我们不多次计算的权限. + if (editCellElement.getColumn() != column + || editCellElement.getRow() != row) { + continue; + } + } + if (type == CELL) { + editCellElement.changeAuthorityState(selectedPathArray[t], cellElementVisibleCheckBoxes.isSelected()); + } else if (type == NEW_VALUE) { + editCellElement.changeNewValueAuthorityState(selectedPathArray[t], newValue.isSelected(), valueEditor.update()); + } else if (type == WIDGET_VISIBLE) { + Widget widget = editCellElement.getWidget(); + widget.changeVisibleAuthorityState(selectedPathArray[t], widgetVisible.isSelected()); + } else { + Widget widget = editCellElement.getWidget(); + widget.changeUsableAuthorityState(selectedPathArray[t], widgetAvailable.isSelected()); + } + + } + } + } + } + return true; + } + + /** + * @see AuthorityEditToolBarPane initSelectedPathArray + */ + private void initSelectedPathArray() { + TreePath[] selectionPaths = ReportAndFSManagePane.getInstance().getRoleTree().getCheckBoxTreeSelectionModel().getSelectionPaths(); + if (selectionPaths.length == 1) { + if (((ExpandMutableTreeNode) (selectionPaths[0].getLastPathComponent())).getChildCount() > 0) { + ExpandMutableTreeNode node = (ExpandMutableTreeNode) ((ExpandMutableTreeNode) (selectionPaths[0].getLastPathComponent())).getLastChild(); + selectedPathArray = new String[node.getChildCount()]; + for (int i = 0; i < node.getChildCount(); i++) { + ExpandMutableTreeNode n = (ExpandMutableTreeNode) node.getChildAt(i); + String nodeName = n.getUserObject().toString(); + selectedPathArray[i] = nodeName; + } + } else { + selectedPathArray = pathToString(selectionPaths); + } + } else { + selectedPathArray = pathToString(selectionPaths); + } + + } + + public static String[] pathToString(TreePath[] path) { + java.util.List roles = new ArrayList(); + if (path != null && path.length > 0) { + for (TreePath tempPath : path) { + String temp = tempPath.toString(); + boolean isTrue = temp.length() > 0 && temp.charAt(0) == '[' && temp.endsWith("]"); + if (isTrue) { + temp = temp.substring(1, temp.length() - 1); + String[] selectedRoles = temp.split("," + StringUtils.BLANK); + String role = selectedRoles[2].trim(); + roles.add(role); + } + + } + } + return roles.toArray(new String[0]); + } + + /** + * 选中的单元格的乐见状态以第一个单元格为齐 + */ + public void initCheckBoxesState() { + final TemplateElementCase elementCase = elementCasePane.getEditingElementCase(); + if (cellSelection == null) { + cellElementVisibleCheckBoxes.setSelected(true); + } else { + Rectangle cellRectangle = cellSelection.getCellRectangle(0); + DefaultTemplateCellElement cellElement = (DefaultTemplateCellElement) elementCase.getCellElement(cellRectangle.x, cellRectangle.y); + if (cellElement == null) { + cellElement = new DefaultTemplateCellElement(cellRectangle.x, cellRectangle.y); + } + boolean firstCellDoneaAuthority = cellElement.isDoneAuthority( + ReportAndFSManagePane.getInstance().getRoleTree().getSelectedRoleName()); + cellElementVisibleCheckBoxes.setSelected(!firstCellDoneaAuthority); + } + widgetAvailable.setEnabled(cellElementVisibleCheckBoxes.isSelected()); + widgetVisible.setEnabled(cellElementVisibleCheckBoxes.isSelected()); + } + + private void initListener() { + cellElementVisibleCheckBoxes.addItemListener(cellRolesAuthorityListener); + widgetVisible.addItemListener(widgetVisibleRoleAuthorityListener); + widgetAvailable.addItemListener(widgetUsableAuthorityListener); + floatElementVisibleCheckBoxes.addItemListener(floatElementAuthorityListener); + gridColumnRowVisible.addItemListener(columnRowAuthorityListener); + newValue.addItemListener(newValuelistener); + valueEditor.registerChangeListener(observerListener); + } + + private void removeListener() { + cellElementVisibleCheckBoxes.removeItemListener(cellRolesAuthorityListener); + widgetVisible.removeItemListener(widgetVisibleRoleAuthorityListener); + widgetAvailable.removeItemListener(widgetUsableAuthorityListener); + floatElementVisibleCheckBoxes.removeItemListener(floatElementAuthorityListener); + gridColumnRowVisible.removeItemListener(columnRowAuthorityListener); + newValue.removeItemListener(newValuelistener); + valueEditor.registerChangeListener(null); + } + + private void addHyperlinkListener() { + cellElementVisibleCheckBoxes.addItemListener(new ItemListener() { + public void itemStateChanged(ItemEvent e) { + if (hyperlinkCheckBoxes != null) { + for (int i = 0; i < hyperlinkCheckBoxes.length; i++) { + hyperlinkCheckBoxes[i].setEnabled(cellElementVisibleCheckBoxes.isSelected()); + if (!cellElementVisibleCheckBoxes.isSelected()) { + hyperlinkCheckBoxes[i].setSelected(false); + } + } + } + } + }); + for (int i = 0; i < hyperlinkCheckBoxes.length; i++) { + hyperlinkCheckBoxes[i].addItemListener(cellRolesAuthorityListener); + } + } + + /** + * 更新适合的类型 + */ + public void populateType() { + if (selectionType == CellSelection.NORMAL) { + type.setText(Inter.getLocText("FR-Designer_Cell")); + } else if (selectionType == CellSelection.CHOOSE_ROW) { + type.setText(Inter.getLocText("FR-Designer_Row")); + } else if (selectionType == CellSelection.CHOOSE_COLUMN) { + type.setText(Inter.getLocText("FR-Designer_Column")); + } else { + type.setText(Inter.getLocText("M_Insert-Float")); + } + } + + /** + * 名字 + */ + public void populateName() { + if (selectionType == CellSelection.NORMAL) { + name.setText(getCellSelectionName()); + } else if (selectionType == CellSelection.CHOOSE_ROW || selectionType == CellSelection.CHOOSE_COLUMN) { + name.setText(getCellColumnRowName()); + } else { + name.setText(getFloatSelectionName()); + } + } + + private String getCellSelectionName() { + String nameText = ""; + int count = cellSelection.getCellRectangleCount(); + for (int rect = 0; rect < count; rect++) { + nameText += ","; + Rectangle cellRectangle = cellSelection.getCellRectangle(rect); + ColumnRow beginCR = ColumnRow.valueOf(cellRectangle.x, cellRectangle.y); + nameText += beginCR.toString(); + if (cellRectangle.width * cellRectangle.height != 1) { + ColumnRow endCR = ColumnRow.valueOf(cellRectangle.width + cellRectangle.x - 1, cellRectangle.height + cellRectangle.y - 1); + nameText += ":" + endCR.toString(); + } + } + return nameText.substring(1); + } + + private String getCellColumnRowName() { + int count = cellSelection.getCellRectangleCount(); + String nameText = ""; + ColumnRow cr = ColumnRow.valueOf(cellSelection.getColumn(), cellSelection.getRow()); + if (cellSelection.getSelectedType() == CellSelection.CHOOSE_COLUMN && count == 1) { + if (cellSelection.getColumnSpan() == 1) { + nameText = cr.toString().substring(0, 1); + } else { + ColumnRow endCr = ColumnRow.valueOf(cellSelection.getColumn() + cellSelection.getColumnSpan() - 1, + cellSelection.getRow() + cellSelection.getRowSpan() - 1); + nameText = cr.toString().substring(0, 1) + "-" + endCr.toString().substring(0, 1); + } + } else if (cellSelection.getSelectedType() == CellSelection.CHOOSE_ROW && count == 1) { + if (cellSelection.getRowSpan() == 1) { + nameText = cr.toString().substring(1); + } else { + ColumnRow endCr = ColumnRow.valueOf(cellSelection.getColumn() + cellSelection.getColumnSpan() - 1, + cellSelection.getRow() + cellSelection.getRowSpan() - 1); + nameText = cr.toString().substring(1) + "-" + endCr.toString().substring(1); + } + } + return nameText; + } + + private String getFloatSelectionName() { + return floatSelection.getSelectedFloatName(); + } + + private void mutilRect(CellSelection cellSelection) { + isAllHasWidget = true; + isAllHasHyperlink = true; + int count = cellSelection.getCellRectangleCount(); + final TemplateElementCase elementCase = elementCasePane.getEditingElementCase(); + for (int rect = 0; rect < count; rect++) { + Rectangle cellRectangle = cellSelection.getCellRectangle(rect); + for (int j = 0; j < cellRectangle.height; j++) { + for (int i = 0; i < cellRectangle.width; i++) { + int column = i + cellRectangle.x; + int row = j + cellRectangle.y; + DefaultTemplateCellElement cellElement = (DefaultTemplateCellElement) elementCase.getCellElement(column, row); + if (cellElement == null) { + cellElement = new DefaultTemplateCellElement(cellSelection.getColumn(), cellSelection.getRow()); + } + if (cellElement.getCellWidgetAttr() == null) { + isAllHasWidget = false; + } + if (cellElement.getNameHyperlinkGroup() == null) { + isAllHasHyperlink = false; + } + } + } + } + } + + /** + * 更新适合的pane + * + * @return 返回Pane + */ + public JPanel populateCheckPane() { + checkPane.removeAll(); + if (selectionType == CellSelection.NORMAL) { + populateCellSelectionCheckPane(checkPane); + } else if (selectionType == CellSelection.CHOOSE_COLUMN || selectionType == CellSelection.CHOOSE_ROW) { + populateColumnRowCheckPane(checkPane); + } else if (selectionType == FLOAT_SELECTION) { + populateFloatSelectionCheckPane(checkPane); + } + checkPane.setBorder(BorderFactory.createEmptyBorder(ALIGNMENT_GAP, 0, 0, 0)); + return checkPane; + } + + private void populateColumnRowCheckPane(JPanel checkPane) { + double f = TableLayout.FILL; + double p = TableLayout.PREFERRED; + Component[][] components = new Component[][]{ + new Component[]{gridColumnRowVisible} + }; + double[] rowSize = {p}; + double[] columnSize = {f}; + int[][] rowCount = {{1}}; + checkPane.add( + TableLayoutHelper.createGapTableLayoutPane(components, rowSize, columnSize, rowCount, LayoutConstants.VGAP_MEDIUM, LayoutConstants.VGAP_MEDIUM) + , BorderLayout.WEST); + } + + private void populateFloatSelectionCheckPane(JPanel checkPane) { + checkPane.add(populateFloatElementCheckPane(), BorderLayout.WEST); + } + + private void populateCellSelectionCheckPane(JPanel checkPane) { + if (elementCasePane.isSelectedOneCell()) { + //只选中了一个单元格 + final TemplateElementCase elementCase = elementCasePane.getEditingElementCase(); + DefaultTemplateCellElement cellElement = (DefaultTemplateCellElement) elementCase.getCellElement(cellSelection.getColumn(), cellSelection.getRow()); + if (cellElement == null) { + cellElement = new DefaultTemplateCellElement(cellSelection.getColumn(), cellSelection.getRow()); + } + //单元格带控件 + if (cellElement.getCellWidgetAttr() != null) { + checkPane.add(populateWidgetCheckPane(), BorderLayout.WEST); + } else { + checkPane.add(populatCellCheckPane(), BorderLayout.WEST); + } + } else { + //批量选中单元格 + mutilRect(cellSelection); + if (!isAllHasWidget && !isAllHasHyperlink) { + checkPane.add(populateMutilCellCheckPane(), BorderLayout.WEST); + } else if (isAllHasWidget) { + checkPane.add(populateMutilWidgetCheckPane(), BorderLayout.WEST); + } + } + } + + /** + * 对单元格区域进行操作时的权限编辑页面 ,对应的角色的populate + */ + public void populateDetials() { + //做模式标记,此时鼠标焦点是在报表主体,为下一次退出权限编辑时做准备 + HistoryTemplateListPane.getInstance().getCurrentEditingTemplate().setAuthorityMode(false); + TemplateElementCase templateElementCase = elementCasePane.getEditingElementCase(); + if (templateElementCase instanceof WorkSheet) { + ((WorkSheet) templateElementCase).setPaintSelection(true); + } + signelSelection(); + Selection selection = elementCasePane.getSelection(); + if (selection instanceof CellSelection) { + selectionType = CellSelection.NORMAL; + this.cellSelection = ((CellSelection) selection).clone(); + this.floatSelection = null; + judgeChooseCR(); + } else if (selection instanceof FloatSelection) { + selectionType = FLOAT_SELECTION; + cellSelection = null; + floatSelection = new FloatSelection(((FloatSelection) selection).getSelectedFloatName()); + } + populateType(); + populateName(); + populateCheckPane(); + checkCheckBoxes(); + } + + //判断是否选择的行列 + private void judgeChooseCR() { + if (cellSelection.getSelectedType() == CellSelection.CHOOSE_COLUMN && cellSelection.getCellRectangleCount() == 1) { + selectionType = CellSelection.CHOOSE_COLUMN; + } + if (cellSelection.getSelectedType() == CellSelection.CHOOSE_ROW && cellSelection.getCellRectangleCount() == 1) { + selectionType = CellSelection.CHOOSE_ROW; + } + } + + //实现单选 + private void signelSelection() { + JTemplate jTemplate = HistoryTemplateListPane.getInstance().getCurrentEditingTemplate(); + if (jTemplate.isJWorkBook()) { + //清工具栏 + JComponent component = DesignerContext.getDesignerFrame().getToolbarComponent(); + if (component instanceof AuthorityEditToolBarComponent) { + ((AuthorityEditToolBarComponent) component).removeSelection(); + } + //清参数面板 + jTemplate.removeParameterPaneSelection(); + } + } + + private JPanel populateFloatElementCheckPane() { + double f = TableLayout.FILL; + double p = TableLayout.PREFERRED; + Component[][] components = new Component[][]{ + new Component[]{new UILabel(Inter.getLocText("M_Insert-Float"), SwingConstants.LEFT), floatElementVisibleCheckBoxes} + }; + double[] rowSize = {p}; + double[] columnSize = {p, f}; + int[][] rowCount = {{1, 1}}; + return TableLayoutHelper.createGapTableLayoutPane(components, rowSize, columnSize, rowCount, LayoutConstants.VGAP_MEDIUM, LayoutConstants.VGAP_MEDIUM); + } + + private JPanel populateWidgetCheckPane() { + double f = TableLayout.FILL; + double p = TableLayout.PREFERRED; + Component[][] components = new Component[][]{ + new Component[]{new UILabel(Inter.getLocText("FR-Designer_Cell"), SwingConstants.LEFT), cellElementVisibleCheckBoxes}, + new Component[]{null, newValue}, + new Component[]{null, valueEditor}, + new Component[]{new UILabel(Inter.getLocText("FR-Designer_Widget"), SwingConstants.LEFT), widgetVisible}, + new Component[]{null, widgetAvailable} + }; + double[] rowSize = {p, p, p, p, p}; + double[] columnSize = {p, f}; + int[][] rowCount = {{1, 1}, {1, 1}, {1, 1}, {1, 1}, {1, 1}}; + return TableLayoutHelper.createGapTableLayoutPane(components, rowSize, columnSize, rowCount, LayoutConstants.VGAP_MEDIUM, LayoutConstants.VGAP_MEDIUM); + } + + private JPanel populateMutilWidgetCheckPane() { + double f = TableLayout.FILL; + double p = TableLayout.PREFERRED; + Component[][] components = new Component[][]{ + new Component[]{new UILabel(Inter.getLocText("FR-Designer_Cell"), SwingConstants.LEFT), cellElementVisibleCheckBoxes}, + new Component[]{new UILabel(Inter.getLocText("FR-Designer_Widget"), SwingConstants.LEFT), widgetVisible}, + new Component[]{null, widgetAvailable} + }; + double[] rowSize = {p, p, p}; + double[] columnSize = {p, f}; + int[][] rowCount = {{1, 1}, {1, 1}, {1, 1}}; + return TableLayoutHelper.createGapTableLayoutPane(components, rowSize, columnSize, rowCount, LayoutConstants.VGAP_MEDIUM, LayoutConstants.VGAP_MEDIUM); + } + + private JPanel populateMutilCellCheckPane() { + double f = TableLayout.FILL; + double p = TableLayout.PREFERRED; + Component[][] components = new Component[][]{ + new Component[]{cellElementVisibleCheckBoxes}, + }; + double[] rowSize = {p}; + double[] columnSize = {f}; + int[][] rowCount = {{1}}; + return TableLayoutHelper.createGapTableLayoutPane(components, rowSize, columnSize, rowCount, LayoutConstants.VGAP_MEDIUM, LayoutConstants.VGAP_MEDIUM); + } + + private JPanel populatCellCheckPane() { + double f = TableLayout.FILL; + double p = TableLayout.PREFERRED; + Component[][] components = new Component[][]{ + new Component[]{cellElementVisibleCheckBoxes}, + new Component[]{newValue}, + new Component[]{valueEditor} + }; + double[] rowSize = {p, p, p}; + double[] columnSize = {f}; + int[][] rowCount = {{1}, {1}, {1}}; + return TableLayoutHelper.createGapTableLayoutPane(components, rowSize, columnSize, rowCount, LayoutConstants.VGAP_MEDIUM, LayoutConstants.VGAP_MEDIUM); + } + + public TemplateCellElement getFirstCell() { + final TemplateElementCase elementCase = elementCasePane.getEditingElementCase(); + Rectangle cellRectangle = cellSelection.getCellRectangle(0); + // 从最后循环起以保证最后一个修改标准单元格(originalStyle)。 + TemplateCellElement firstCell = null; + for (int j = cellRectangle.height - 1; j >= 0; j--) { + for (int i = cellRectangle.width - 1; i >= 0; i--) { + int column = i + cellRectangle.x; + int row = j + cellRectangle.y; + TemplateCellElement editCellElement = elementCase.getTemplateCellElement(column, row); + if (editCellElement != null) { + // 对于合并的格子,我们不多次计算的权限. + if (editCellElement.getColumn() != column || editCellElement.getRow() != row) { + continue; + } + firstCell = editCellElement; + } + } + } + return firstCell; + } + + private void checkCheckBoxes() { + String selected = ReportAndFSManagePane.getInstance().getRoleTree().getSelectedRoleName(); + removeListener(); + if (selectionType == CellSelection.NORMAL) { + checkCellSelectionCkeckboxes(selected); + } else if (selectionType == CellSelection.CHOOSE_COLUMN || selectionType == CellSelection.CHOOSE_ROW) { + checkColumnRowCheckBoxes(selected); + } else if (selectionType == FLOAT_SELECTION) { + checkFloatSelectionCkeckboxes(selected); + } + initListener(); + } + + private void checkCellSelectionCkeckboxes(String selected) { + TemplateCellElement firstCell = getFirstCell(); + if (firstCell == null) { + resetCellElementCheckBoxes(); + return; + } + cellElementVisibleCheckBoxes.setSelected(!firstCell.isDoneAuthority(selected)); + newValue.setEnabled(!firstCell.isDoneAuthority(selected)); + if (!firstCell.isDoneAuthority(selected)) { + newValue.setSelected(firstCell.isDoneNewValueAuthority(selected)); + if (newValue.isSelected()) { + valueEditor.setEnabled(true); + valueEditor.populate(firstCell.getCellPrivilegeControl().getNewValueMap().get(selected)); + } else { + valueEditor.setEnabled(false); + } + } else { + newValue.setSelected(false); + valueEditor.setEnabled(false); + } + populateWidgetButton(firstCell.getWidget(), selected, firstCell); + } + + private void populateWidgetButton(Widget widget, String selected, TemplateCellElement firstCell) { + if (widget != null) { + if (widget.isVisible()) { + widgetVisible.setSelected(!widget.isDoneVisibleAuthority(selected)); + widgetVisible.setEnabled(!firstCell.isDoneAuthority(selected)); + } else { + widgetVisible.setSelected(widget.isVisibleAuthority(selected)); + } + if (widget.isEnabled()) { + widgetAvailable.setSelected(!widget.isDoneUsableAuthority(selected)); + widgetAvailable.setEnabled(!widget.isDoneVisibleAuthority(selected)); + } else { + widgetAvailable.setSelected(widget.isUsableAuthority(selected)); + } + } + } + + private void resetCellElementCheckBoxes() { + cellElementVisibleCheckBoxes.setSelected(true); + widgetVisible.setSelected(true); + widgetVisible.setEnabled(true); + widgetAvailable.setSelected(true); + widgetAvailable.setEnabled(true); + newValue.setSelected(false); + valueEditor.setEnabled(false); + } + + private void checkColumnRowCheckBoxes(String selected) { + if (cellSelection == null) { + gridColumnRowVisible.setSelected(false); + return; + } + TemplateElementCase elementCase = elementCasePane.getEditingElementCase(); + boolean isInside = selectionType == CellSelection.CHOOSE_COLUMN ? + elementCase.getColumnPrivilegeControl(cellSelection.getColumn()).checkInvisible(selected) : + elementCase.getRowPrivilegeControl(cellSelection.getRow()).checkInvisible(selected); + + gridColumnRowVisible.setSelected(isInside); + } + + private void checkFloatSelectionCkeckboxes(String selected) { + String name = floatSelection.getSelectedFloatName(); + TemplateElementCase ec = elementCasePane.getEditingElementCase(); + FloatElement fe = ec.getFloatElement(name); + floatElementVisibleCheckBoxes.setSelected(!fe.isDoneAuthority(selected)); + } + + private JPanel populateHyperlinkCheckPane(AbstractCellElement cellElement) { + NameJavaScriptGroup linkGroup = cellElement.getNameHyperlinkGroup(); + //超链接的个数+单元格可见的操作 + hyperlinkCheckBoxes = new UICheckBox[linkGroup.size()]; + + double f = TableLayout.FILL; + double p = TableLayout.PREFERRED; + Component[][] components = new Component[hyperlinkCheckBoxes.length + 1][]; + if (linkGroup.size() == 1) { + components[0] = new Component[]{new UILabel(Inter.getLocText("FR-Designer_Cell"), SwingConstants.LEFT), cellElementVisibleCheckBoxes}; + components[1] = new Component[]{new UILabel(Inter.getLocText("FR-Designer_Hyperlink"), SwingConstants.LEFT), hyperlinkCheckBoxes[0] = new UICheckBox(Inter.getLocText("FR-Designer_Visible"))}; + + } else { + components[0] = new Component[]{new UILabel(Inter.getLocText("FR-Designer_Cell"), SwingConstants.LEFT), cellElementVisibleCheckBoxes = new UICheckBox(Inter.getLocText("FR-Designer_Visible"))}; + components[1] = new Component[]{new UILabel(Inter.getLocText("FR-Designer_Hyperlink"), SwingConstants.LEFT), hyperlinkCheckBoxes[0] = new UICheckBox(linkGroup.getNameHyperlink(0).getName() + Inter.getLocText("FR-Designer_Visible"))}; + for (int i = 1; i < hyperlinkCheckBoxes.length; i++) { + components[i + 1] = new Component[]{null, hyperlinkCheckBoxes[i] = new UICheckBox(linkGroup.getNameHyperlink(i).getName() + Inter.getLocText("FR-Designer_Visible"))}; + } + } + for (int i = 0; i < hyperlinkCheckBoxes.length; i++) { + hyperlinkCheckBoxes[i].setEnabled(cellElementVisibleCheckBoxes.isSelected()); + } + addHyperlinkListener(); + double[] rowSize = new double[hyperlinkCheckBoxes.length + 1]; + int[][] rowCount = new int[hyperlinkCheckBoxes.length + 1][]; + for (int i = 0; i < hyperlinkCheckBoxes.length + 1; i++) { + rowSize[i] = p; + rowCount[i] = new int[]{1, 1}; + } + double[] columnSize = {p, f}; + return TableLayoutHelper.createGapTableLayoutPane(components, rowSize, columnSize, rowCount, LayoutConstants.VGAP_MEDIUM, LayoutConstants.VGAP_MEDIUM); + + } + + private JPanel populateMutilHyperlinkCheckPane() { + //超链接的个数+单元格可见的操作 + hyperlinkCheckBoxes = new UICheckBox[1]; + double f = TableLayout.FILL; + double p = TableLayout.PREFERRED; + Component[][] components = new Component[2][]; + components[0] = new Component[]{new UILabel(Inter.getLocText("FR-Designer_Cell"), SwingConstants.LEFT), cellElementVisibleCheckBoxes}; + components[1] = new Component[]{new UILabel(Inter.getLocText("FR-Designer_Hyperlink"), SwingConstants.LEFT), hyperlinkCheckBoxes[0] = new UICheckBox(Inter.getLocText("FR-Designer_Visible"))}; + hyperlinkCheckBoxes[0].setEnabled(cellElementVisibleCheckBoxes.isSelected()); + addHyperlinkListener(); + double[] rowSize = {p, p}; + double[] columnSize = {p, f}; + int[][] rowCount = {{1, 1}, {1, 1}}; + return TableLayoutHelper.createGapTableLayoutPane(components, rowSize, columnSize, rowCount, LayoutConstants.VGAP_MEDIUM, LayoutConstants.VGAP_MEDIUM); + } +} \ No newline at end of file From 123a421b435cb713900bd8bebfabcbdcd58aea49 Mon Sep 17 00:00:00 2001 From: zack Date: Wed, 3 May 2017 15:52:39 +0800 Subject: [PATCH 63/72] =?UTF-8?q?=E6=97=A0JIRA=E4=BB=BB=E5=8A=A1=20=20?= =?UTF-8?q?=E6=96=B0release=E5=90=88=E5=B9=B6=E9=81=97=E6=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/com/fr/design/designer/creator/XElementCase.java | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/designer_form/src/com/fr/design/designer/creator/XElementCase.java b/designer_form/src/com/fr/design/designer/creator/XElementCase.java index 7eb967a9f7..c22c6acf54 100644 --- a/designer_form/src/com/fr/design/designer/creator/XElementCase.java +++ b/designer_form/src/com/fr/design/designer/creator/XElementCase.java @@ -10,11 +10,9 @@ import com.fr.design.fun.WidgetPropertyUIProvider; import com.fr.design.fun.impl.AbstractFormElementCaseEditorProvider; import com.fr.design.gui.ilable.UILabel; import com.fr.design.mainframe.*; -import com.fr.design.mainframe.widget.editors.BooleanEditor; +import com.fr.design.mainframe.widget.editors.ElementCaseToolBarEditor; import com.fr.design.mainframe.widget.editors.PaddingMarginEditor; import com.fr.design.mainframe.widget.editors.WLayoutBorderStyleEditor; -import com.fr.design.mainframe.widget.renderer.LayoutBorderStyleRenderer; -import com.fr.design.mainframe.widget.renderer.PaddingMarginCellRenderer; import com.fr.form.FormElementCaseContainerProvider; import com.fr.form.FormElementCaseProvider; import com.fr.form.FormProvider; @@ -104,7 +102,7 @@ public class XElementCase extends XBorderStyleWidgetCreator implements FormEleme new CRPropertyDescriptor("margin", this.data.getClass()).setEditorClass(PaddingMarginEditor.class) .setI18NName(Inter.getLocText("FR-Layout_Padding")) .putKeyValue(XCreatorConstants.PROPERTY_CATEGORY, "Advanced"), - new CRPropertyDescriptor("showToolBar", this.data.getClass()).setEditorClass(BooleanEditor.class) + new CRPropertyDescriptor("toolBars", this.data.getClass()).setEditorClass(ElementCaseToolBarEditor.class) .setI18NName(Inter.getLocText("Form-EC_toolbar")) .putKeyValue(XCreatorConstants.PROPERTY_CATEGORY, "Advanced") }; From 1bf142a0f61136fe01b8cffb1bf801c5b8b46b9e Mon Sep 17 00:00:00 2001 From: plough Date: Thu, 4 May 2017 17:18:59 +0800 Subject: [PATCH 64/72] =?UTF-8?q?REPORT-2483=20&=20REPORT-2484=20=E5=9B=BD?= =?UTF-8?q?=E9=99=85=E5=8C=96key=E8=BD=AC=E7=A7=BB=EF=BC=9B=E5=A4=96?= =?UTF-8?q?=E6=96=87=E7=89=88=E7=9A=84=E5=9B=BD=E9=99=85=E5=8C=96=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E5=92=8C=E4=B8=AD=E6=96=87=E7=89=88=E4=B8=8D=E4=B8=80?= =?UTF-8?q?=E8=87=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/fr/design/locale/designer.properties | 1396 +++++++++++++++- .../design/locale/designer_en_US.properties | 1397 ++++++++++++++++- .../design/locale/designer_ja_JP.properties | 1392 +++++++++++++++- .../design/locale/designer_ko_KR.properties | 1392 +++++++++++++++- .../design/locale/designer_zh_CN.properties | 1395 +++++++++++++++- .../design/locale/designer_zh_TW.properties | 1393 +++++++++++++++- 6 files changed, 8334 insertions(+), 31 deletions(-) diff --git a/designer_base/src/com/fr/design/locale/designer.properties b/designer_base/src/com/fr/design/locale/designer.properties index 8bd0fbe4b9..8014582968 100644 --- a/designer_base/src/com/fr/design/locale/designer.properties +++ b/designer_base/src/com/fr/design/locale/designer.properties @@ -516,7 +516,6 @@ FR-Designer_Create_Tree= FR-Designer_Set_Callback_Function= FR-Designer_ConfirmDialog_Content= FR-Designer_ConfirmDialog_Title= - FR-Designer_FormulaPane_Tips=Tips\:You_Can_Input_B1_To_Input_The_Data_Of_The_First_Row_Second_Column FR-Designer_FormulaPane_Variables=Variables FR-Designer_FormulaPane_Formula_Description=Formula_Description @@ -525,13 +524,11 @@ FR-Designer_FormulaPane_Search=Search FR-Designer_Tab_carousel= FR-Designer_setCarousel= FR-Designer_carouselInterval= - FR-Designer_ClassName_panel=ClassName FR-Designer_Description_panel=Description FR-Designer_Edit_panel=Edit FR-Designer_Property_panel=Property FR-Designer_Select_panel=Select - FR-Designer_LayoutTable_Column_Width=160 FR-Designer_Set_BG_Of_Current_Row=Set BG of the row being edited FR-Designer_Unload_Check=Prompt users when leave without submitting @@ -547,7 +544,6 @@ 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 @@ -588,10 +584,8 @@ FR-Designer-Move_Tab_First=move to first FR-Designer-Move_Tab_End=move to end FR-Designer-Move_Tab_Next=move to next FR-Designer-Move_Tab_Prev=move to previous - FR-Designer_Too_Large_To_Paste=too large to paste FR-Designer_Too_Small_To_Paste=Too small to paste - FR-Designer_AxisReversed=AxisValue FR-Designer_Logarithmic=Logarithmic FR-Designer_Chart_Log_Base=Log Base @@ -600,14 +594,1400 @@ FR-Designer_Style=Style FR-Designer_Color=Color FR-Designer_Border=Border FR-Designer_Background-Pattern=Pattern - FR-Designer_Properties_Mobile= FR-Designer_Edit_Button_ToolBar= FR-Designer_Remove_Button_ToolBar= FR-Designer_Get-CubeGetting= FR-Designer_Oracle= FR-Designer_Validate= +CellWrite-InsertRow_NULL=Null +DashBoard-ChartFloat=Chart +contact_info=Contact information (optional) +Page_Setup=Page_Setup +CellWrite-Print_Export= +Cannot_Get_Date=Can not get date +FR-Designer_Modify=Modify +M-Write_Preview=Write Preview +FR-Base_RWA-Key= +China=China +Set_Legend_Sytle=Set_Legend_Sytle +FR-Designer_Number=Number +FR-Designer-Widget-Style_Common= +M-Save_As=Save As +Following_parameters_are_not_generated=The following parameters are not generated +FR-Designer-Basic_Activation_Key_Copy_OK=Key has been copy to clipboard +Utils-Current_Sheet=Current Sheet +ConditionB-is_less_than=Is less than +BorderLayout-West=West +AnalysisLine=Analysis Line +Layer_Report_Warnning_info=Warnning info for LayerReport +Tree-Width=Tree Width +alert_word= +PageSetup-Paper_Size=Paper Size +M-Page_Setup=Page Setup +DashBoard-FormBook=Form +X-Coordinate=X Coordinate +Style-Line_Spacing=Line Spacing +FR-Designer_Plugin_Should_Update_Title=Warning +Server-Define_Data_Connection=Define Data Connection +BarInside=Bar Inside +Border-Color=Border-Color +NotAllow= +Utils-File_type=File type +FR-Designer-Plugin_Install_From_Local=Install plugin from local file +Summary_Method=Summary Method +Select_Specified_Grouping=Select Specified Grouping +HF-Number_of_Page=Total Number of Page +FR-Designer-Tree_Height=Tree Height +Owner=Owner +Home=Home +FR-Server_Embedded_Server_Stop=Server in Design-Stop +FR-Designer-Plugin_Detecting_Update=Detecting update +HF-Whether_to_define_the_selected_type=Whether to define the selected type +StyleAlignment-Right=Right +FR-Designer_Alignment-Style=Alignment-Style +PageSetup-Title_Start_Column=Title Columns +Tree-Mutiple_Selection_Or_Not=Mutiple Selection +FR-Designer-Plugin_Search=Search +Choose_Role=Choose Role +Append_Delete_Row_Message=WarningThe specify cell should set the expand-attribute,otherwise it won't work. +Form-ComboBox=ComboBox +PageSetup-Footer=Footer +Sorting=Sorting +DBCP_TEST_WHILE_IDLE=TestWhileIdle +DS-Embedded_TableData=Embedded Table Data +FR-Designer_No-Privilege=No Privilege +FRFont-Subscript=Subscript +Background_Settings=Background Setting +FormulaD-Invalid_Formula=Invalid Formula +FR-Base_Margin= +FR-Designer-Plugin_Shop_Installed= +M_Edit-Send_to_Back=Send to Back +Email-Can_Preview_Report_Content=Preview the report contents +FR-Designer-FRFont_Italic= +CellWrite-Print_Background=Print Background +Wizard=Wizard +Preference-Is_Drag_Permited=Is Drag Permitted +FR-Designer_Release_Lock= +Form-Delimiter=Delimiter +wrong=wrong +FR-Menu-Server_Chart_PreStyle=Chart PreStyle +Form-Button=Button +FormulaD-Valid_Formula=Valid Formula +ParameterD-Parameter_Interface=Parameter Interface +At_least_one_visual_worksheet=Workbook to have at least one visual worksheet, if you want to delete, please insert a new worksheet +Need_Min_Value=Need Min Value +Allow_Blank=All Blank +CellWrite-InsertRow_DEFAULT=Default value +Widget-Load_By_Complete=Load By Complete +FR-Designer-Basic_Only_Submit_Current_Sheet= +Sort-Sort_Order=Order +File-File_Size_Limit=File Size Limit +PrintP-Print=Print (T) +FR-Designer-StyleAlignment_Center= +Preference-Setting_Colors=Setting Colors +Judge=Judge +Image-Adjust= +Collect-User_Information_DES= +FR-Designer_Plugin_Normal_Update_From_Local=Update from local file +BackgroundTexture-Canvas=Canvas +BarOutSide=Bar Out Side +Preview_ToolTips=Preview ToolTips +FRFont-Family=Family +FR-Lic_does_not_Support_Remote= +InterfaceStyle=InterfaceStyle +RWA-Key=Primary Key +WF-Name=Name +RWA-Click_Cell_To_Edit_Value=Click Cell to Edit Value +Utils-Row_Height=Row Height +ReportD-Excel_Export=ReportD Excel Export +Form-Please_Select_A_Kind_Of_Form_Container=Select Form Container +Column_Does_Not_Exsit=Column Does Not Exsit +M_Insert-Hyperlink=Hyperlink +can_not_include_underline=can not contain "_" +FR-Designer-Plugin_Jar_Expired= +FR-Background_Image_Extend=Extend Image +TopDownShade=Top Down Shade +FR-Base_Right= +DataBinding=Data Binding +ConnectionPool_Attr=Connection Pool Attributes +Connect_SQL_Cannot_Null=Connect SQL Cannot be Null +DBCP_MAX_ACTIVE=MaxActive +M_Window-Preference=Preference +ToolBar_Top=Top ToolBar +FR-Designer_Indent-Pixel=Pixel +FR-Designer_Unit_MM=MM +IDLE= +FRFont-Underline=Underline +FR-Designer-Plugin_Read_Plugin_List_Error=Error to read plugin list +Type_Set=Type Set +M_Format_A-Cell_Attributes=Other Attributes +CellWrite-Show_As_Image=Show As Image +ShowAsDownload= +Form-ComboCheckBox=ComboCheckBox +BackgroundTexture-WovenMat=Woven Mat +BindColumn-Custom_Data_Appearance=Customize Data Appearance +Actived=Actived +Env-Local_Directory=Local Directory +Form-Colon=Colon +Preference-Vertical_Scroll_Bar_Visible=Vertical Scroll Bar Visible +Utils-Show_Cell_Value=Show Cell Value +FR-Designer_ReportColumns-Repeat_Row= +SpecifiedG-Specified_Group=Specified Group +RWA-Smart_Add_Cells=Smart Add Cells +HF-Left_Section=Left Section +M_Report-Report_Background=Report Background +Image-Extend=Extend +FS_BI= +ToolBar_Bottom=Bottom ToolBar +Hgap=Hgap +FR-Designer_Enter-New-FileName= +Verify_Fail=Verify Fail +CellWrite-InsertRow_Policy=Policy of Insert Row +FR-Designer-Plugin_Illegal_Plugin_Zip=Illegal plugin zip +RCodeVersion=VER +Convert=Convert +Please_Drag=Please Drag +FR-Designer-Widget-Style_Preview= +mobile_number=Mobile Number +FR-Designer_Form-ComboCheckBox=ComboCheckBox +CacheValidateTime=Cache Validate Time +Hyperlink-Extends_Report_Parameters=Extends Report Parameters +FR-Designer_Values-Editor= +Export-Excel=Excel +Utils-Left_to_Right=Left to Right +ExpandD-Vertical_Extendable=Enable to Insert Cell to Display Field Data Vertically +Utils-Report_Runtime_Env=Report Workspace +Utils-Right_to_Left=Right to Left +Utils-Beyond_the_top_side_of_Border=Beyond the top side of border +Exception_StackTrace=Exception_StackTrace +Corresponding_Fields=Corresponding_Fields +Form-CheckBox=CheckBox +Utils-Current_Row=Current Row +BuildIn=Build-in +BindColumn-Results_Filter=Result Filter +FR-Designer-Plugin_Manager=Plugin Manager +M_File-Export-CSV=CSV +Data_Filter=Data Filter +ReportServerP-Edit_Printer=Edit Printer +FR-Designer_Datasource-Stored_Procedure=Stored Procedure +RESTART=RESTART +FormulaD-Function_name=Function Name +ChooseOneButton=chose one toolbutton +Priority=Priority +Datasource-Datasource=Data Source +FR-Designer_Width= +Cannot-Add_To_This_Area=Cannot Add To This Area +Run= +Set_Submit_Condition=Set Submit Condition +FR-Base_Value= +fileLocked_undeleted=Template is locked, you can not delete\! Click OK to refresh the list of templates +Web_Apply=Web Application +Refresh_Database=Refresh database +Set_Row_Title_End=Set_Column_Title_End +FR-Utils-New_Folder=New Folder +BiasD-From-upper_left_to_lower_right=Upper left to lower right +CapsLock= +StyleFormat-Sample=Sample +RWA-Smart_Add_Cell_Group=Smart Add Cell Group +MConfig-CancelButton=Cancel +Function-Choose_Function_Class=Choose Function Class +LatLng=Lat and Lng +DS-Server_TableData=Server Table Data +BackgroundTexture-GreenMarble=Green Marble +read_time_out=Load Timeout +JavaScript-Commit_to_Database=Commit to Database +DS-Relation_TableData=Relation Table Data +CellWrite-Page_Before_Row=Page Break Before Row +FR-Designer-Plugin_Load_Plugins_From_Server=Loading plugins from store +D-Dispaly_Divide_Result_Set_into_Groups=Divide result set into groups +Closed=Closed +RWA-Help=helpdetail +FR-Designer-Widget-Style_Custom= +FR-Designer-Widget-Style_Render_Style= +Highlight-Barcode=BarCode +FR-Designer_Connect_SQL_Cannot_Null=Connect SQL Cannot be Null +trigger= +M-Data_Analysis=Data Analysis +Function-The_selected_file_cannot_be_null=The select file cannot be empty +No-Privilege=No Privilege +ReportColumns-Repeat_Column=Repeat Column +SecondGraduationUnit=SecondGraduationUnit +Form-Widget_Property_Value=Widget Property Value +GIVE-NAME=Give_Name +FR-Designer_Rename= +Utils-Merge_Cell=Merge Cells +Style-Spacing_After=Spacing After +Enlarge_Or_Reduce=Enlarge Or Reduce +Tree-Height=Tree Height +RCodeErrorCorrect=ERC +Enter-New-FileName=Enter New File Name +try_resending=Please try resending +M-Open_Report=Open... +Please_Select=Please Select +InRow=InRow +Form-TextArea=TextArea +FR-Designer_Https_Enable= +Widget-Custom_Widget_Config=Custom Widget +already_exists=already exists +Original_Marked_Filed=Original Marked Filed +BackgroundTexture-Sand=Beach +Values=Values +Not_use_a_cell_attribute_table_editing=You may not use a cell attribute table editing +Root=Root +cycle=cycle +open-new-form-tip=open new form tip +Support-Current_Auto_Complete_Shortcut=Current Shortcut +GROUPING_MODE=Grouping +DBCP_MAX_IDLE=MaxIdle +BackgroundTexture-BlueTissuePaper=Blue Tissue Paper +ReportD-Export_Hided_Row=ReportD Export Hided Row +FR-Custom_styles_lost= +Env-Des2=Position should be a Servlet like "http\://localhost\:8080/WebReport/ReportServer" +Env-Des1=Please select the WEB-INF directory of Report Server +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 +Classifier-Ge= +MSBold=MSBold +Form-Design_Size=Form Design Size +FR-App-Template_Save= +ExpandD-Horizontal_Extendable=Display Field Data Horizontal +RP_Authority_Edit=Authority +Warnning=Warning +RoleName_Can_Not_Be_Null=RoleName_Can_Not_Be_Null +Application=Applications +Formula_Dictionary_Display_Examples_Html=the real value is \ +ECP-error_pwd= +FR-Hyperlink_ChartHyperlink= +M_Edit-FormatBrush=Format Painter +Indent-Pixel=Pixel +FR-Designer-Widget-Style_Border_Line= +Widget-Default_Widget_Config=Default Widget +Version-does-not-support= +StyleAlignment-Right_To_Left=Right To Left +Style-Spacing_Before=Spacing Before +Has_Existed=Has Existed +FR-Designer_DisplayNothingBeforeQuery=Display Nothing Before Query +Still=Still +JS_WARNING2=information +JS_WARNING1=information +Connectionline=Connectionline +Utils-Insert_Record=Insert Record +Set-Parameter-Name= +More-information=More information +Parameter-Boolean=Boolean +FRFont-Strikethrough=Strikethrough +Server-version-tip=You are currently connected to the server version is less than the designer version number you are using to continue to connect you to edit some of the properties may not be able to effectively save. If the need to connect, please send your designer version and the server version is consistent +Form-All_Files=All Files +DBCP_NUM_TEST_PER_EVCTION_RUN=NumTestsPerEvictionRun +FR-Designer-FRFont_Family= +Device= +M_Insert-Cell=Cell Element +Present-Formula_Present=Formula Present +FRFont-Superscript=Superscript +CellWrite-Page_Before_Column=Page Break Before Column +Golden=Golden +Preference-Support_Cell_Editor_Definition=Support Cell Editor Definition +M-Page_Preview=Page Preview +HJS-CC_to=Copied to +Tree-Select_Leaf_Only=Select Leaf Only +Pointer-A-Tick-Order=pointer and tick value +Pink=Pink +StyleAlignment-Distibuted=Distributed +Odd=Odd +already-saved=already saved +FR-Hyperlink_Chart_Cell= +Style-Left_Indent=Left Indent +Offline=Offline +Form-Hierarchy_Tree_Next=Next +Needle=Needle +GoogleMap=Google Map +Running=Running +M_Edit-Unmerge_Cell=Unmerge Cell +Out_Border_Line=Out Border Line +Style-Spacing=Spacing +FR-Utils_Submit= +ReportServerP-Previous=Previous +StyleAlignment-Text_Style=Text Style +RelatedChart=RelatedChart +ProcessManager=ProcessManager +Cancel_Repeat_Attributes=Cancel_Repeat_Attributes +FR-App-File_Message= +Datasource-Stored_Procedure=Stored Procedure +RWA-Row_Offset=Row Offset +M_Format-Style=Style +detail_description=Detailed description +FR-Designer-Widget-Style_Title_Content= +ParameterD-Report_Parameter=Report Parameter +HF-Edit_Header=Edit Page Header +Sytle-FRFont=Font +FR-Designer_Finish_Export=Finish_Export +MultiFileUpload=MultiFile Upload +HF-Page_Number=Page Number +Style-Right_Indent=Right Indent +Desktop=Desktop +FR-Server-All_Error= +ConditionB-Operator=Operator +Today=Today +Form-Widget_Name=Widget Name +Covered_All=Covered All +Day=Day +External=External +Black_Font=Black Font +LOG-Report_Server_IS_Started=Report Server is Started +Tips\:You_Can_Input_B1_To_Input_The_Data_Of_The_First_Row_Second_Column=Tips\:You_Can_Input_B1_To_Input_The_Data_Of_The_First_Row_Second_Column +FR-Designer_ChooseOneButton=chose one toolbutton +Widget-Sizing=Sizing +NO_Border_Line=NO Border Line +Cell_Data=cell data +StyleAlignment-Vertical_Text=Vertical Text +Label=Label +Orange=Orange +zeroMarginWarn=The printer exist the physical margins
report page margin settings the small can
can print content insufficiency.
  +Widget-Date_Selector_Return_Type=Return Type +Utils-Switch_To_Template_Reportlet=Switch To Template Reportlet +satisfy= +FR-Designer_WidgetDisplyPosition=Widget DisplyPosition +FR-Base_Top= +FR-Designer_Form-CheckBox=CheckBox +Reportlet-Parameter_Type=Parameter Type +sending=sending... +FR-Designer-FRFont_Foreground= +FR-Import-Export_SVG= +M_Edit-Clear_Contents=Contents +Session=Session +Widget-Load_Type=Load Type +template_unsaved=template can not be saved +check_communication=please check the network communication is normal and that the server is running +List-Need_Head=Need Head +FR-Designer-Plugin_Has_Been_Installed=Plugin has been installed +FR-Widget_Tree_And_Table= +FR-Base_Help= +FR-Designer-Plugin_Update_Successful=Update successfully +August=August +LOG-Is_Being_Openned=Is Being Openned +BackgroundTexture-Oak=Oak +Multi_nam_formula= +TurnOn=TurnOn +HJS-Send_Successfully=Send Successfully +Mon=Mon +Inner_Parameter=Inner Parameter +Required=Required +Summary=Summary +template_unopened=unable to open template +FR-Base_Bottom= +DataFunction-Min=Minimum +StyleFormat-Percent=Percent +FR-App-All_Custom= +M_Insert-Data_Column=Insert Data Column +PLEASE=PLEASE +Numbers=Numbers +Release_Lock=Release Lock +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 \ +Schedule-Template_Parameter=Template Parameter +JSShow=Show In Action +Level_coordinates=Level coordinates +MainGraduationLine=Main Graduation Line +Hyperlink-Web_link=Web link +StyleAlignment-between_-90_and_90=between -90 and 90 +FormulaD-Custom_Function=Custom Function +FR-Designer_Integer=Integer +PageSetup-Finis_Start_Row=Finis Rows +RWA-Remove_Field=Remove Field +Form-Desin_Width=Form Design Width +No-tableData=No tableData +Page_Total=Page_Total +FR-Designer-Plugin_Connect_Server_Error=Error to connect plugin store +Import-Excel_Source=Excel Source +Utils-Left_to_Right_a=Left to Right +ExpandD-Expand_Attribute=Attribute to Insert Cell to Display Field Data +Report-Write_Attributes=Write Attribute +Utils-Current_Column=Current Column +Need_Max_Value=Need Max Value +Report_Not_Exist=Report_Not_Exist +HF-Insert_Content=Insert Content +UpParent=Up Parent +PageSetup-Page=Page +Utils-Move_Up=Move Up +BackgroundTexture-PurpleMesh=Purple Mesh +Export-Word=Word +ServerM-Widget_Manager=Widget Manager +FR-Designer-Basic_Activation_Key=Activation Key\: +FR-App-Template_Report_Not_Exist= +Protected=Protected +Skip=skip +FR-Designer_PageSetup-Vertically=Vertically +revert= +PageSetup-Predefined= +Border-Style-Radius=RoundBorder +IntPart= +ExpandD-Data_Column=Data Column +Sort-Ascending=Ascending +FR-Designer-Widget_Style= +parameter_name_exist=The parameter name already exists +FR-Designer_Layer-Build=Layer-Build +Please_Rename=Please_Rename +Form-Editing_Listeners=Editing Listener +RWA-Smart_Add_Fields=Smart Add Fields +FR-Designer-Tree_Width=Tree Width +Record=Record +Poly-Report_Component=Poly Report Component +Options=Options +NS-war-remote= +Sche-Minute=Minute +Three_Rows_Of_Three_Grid=Three rows of three grid +WorkSheet=Worksheet +FR-Designer-Widget_Size= +BindColumn-Select=Select +FR-Widget_Mobile_Terminal= +FR-Background_Image_Titled=Titled Image +SetPrinterOffset=SetPrinterOffset +FR-Designer-Plugin_Installed=Installed +FR-Designer-Hyperlink_Name= +FR-Designer_Form-Button=Button +Black=Black +FR-Designer-Widget-Style_Border_Color= +Set_Submit_Event=Set Submit Event +PDF-Print_isPopup=Is Popup +LayerPageReport_CountPerPage=Data count per page +Display_Modes=Display Modes +RowSpan=RowSpan +Datasource-Test_Connection=Test Connection +Function-Function_Manager=Function Manager +Host_Name=Host Name +CellWrite-Show_As_HTML=Show As HTML +FR-Designer-Widget-Style_Shadow= +FR-Designer_Parameter_String=String +Form-SupportTag=SupportTag +ReportD-Report_Write_Attributes=Report Write Attributes +DataFunction-Count=Count +Top_And_Thick_Bottom_Border_Line=Top And Thick Bottom Border Line +Client=Client +BindColumn-Result_Serial_Number_Start_From_1=Serial Number Starts From One +History=History +Already_exists= +Datasource-Original_Charset=Original Char Set +FR-Base_Left= +ReportServerP-Next=Next +BindColumn-Top_N=Top N +Animation_Special=Specially good effect +Widget-Chart_Widget_Config=Chart Widget +FR-Designer-Plugin_Cannot_Update_Not_Install=FR-Designer-Plugin_Cannot_Update_Not_Install +After_Changed_Some_Attributes_Are_Different=After_Changed_Some_Attributes_Are_Different +PieStyle=Pie Style +HF-Are_you_sure_to_delete_it=Are you sure to delete it +Utils-Design-File_Open= +FR-Utils_Label= +Data-Label=Data Label +M_Insert-Text=Insert Text +Form-View_Tree=Tree View +M_Insert-Chart=Insert Chart +HF-Even_Page=Even Page +ReportServerP-Report_server_parameter=Report Server Parameter +JavaScript-Form_Submit=Form Submit +Horizontal-Split_Layout=Horizontal Split Layout +BorderLayout-Center=Center +INFO-Reset_Webapp=Reset Webapp +FR-Designer_Text=Text +IN_and_INOUT_type_not_as_cursor=IN and INOUT type not as cursor +Main_Axis=Main Axis +M_Edit-Cut=Cut +Utils-The_Name_has_been_existed=The Name has been existed +FR-Background_Image=Image +Character=character +Unit_Thousand=Thousand +Test=Test +Utils-Would_you_like_to_save= +HF-Header_and_Footer=Header and Footer +LIST_MODE=List Mode +HF-Insert_Image=Insert Image +FR-Designer-Widget-Style_Standard= +FR-Designer_Form-List=List +BackgroundTexture-Denim=Denim +Execute_Report_by_Layer_Engine=Execute Report by Layer Engine +M_Edit-Bring_Forward=Bring to Forward +Choose_All=Choose All +Form-RadioGroup=Radio Group +FR-Base_Remove= +FR-Remote_Connect2Server_Again= +Semicolon=semicolon +StyleFormat-Category=Category +Report_Template=Report Template +Utils-Beyond_the_right_side_of_Border=Beyond The Right Side Of The Border +BackgroundTexture-Papyrus=Papyrus +LayerPageReport_PageEngine=Execute for page +Schedule-The_selected_file_must_be_end_with_filter=The selected file must end with '.cpt' or '.class' or '.frm' +Provide=Provide +FormulaD-Math_&_Trig=Math and Trig Function +FR-Designer-StyleAlignment_Right= +Error_TableDataNameRepeat=\ already exsits in ServerTableData or the name is repeated. +Choose_None=Choose None +File-tree=File tree +FRFont-bold=bold +FR-Designer_Set_Submit_Condition= +Form-Change_Widget_Name=Change Widget Name +ReportColumns-Report_Columns=Report Columns +Can_not_use_FormatBursh= +CellElement-Property_Table=CellElement Property Table +Dictionary-Dynamic_SQL=Dynamic SQL +FR-Designer_Form-CheckBoxGroup=CheckBoxGroup +DBCP_TIME_BETWEEN_EVICTIONRUNSMILLIS=TimeBetweenEvictionRunsMillis +ReportD-Export_Hided_Column=Export hided column +Preference-Support_Undo=Support Undo +FR-mobile_report_analysis= +Month=Month +Utils-Column_Width=Column Width +Collect-Use_Designer=Use Designer +Widget-User_Defined_Editor=User Defined Editor +Unit_Ten_Thousand=Unit_Ten_Thousand +Data_Setting=Data Setting +ECP_input_pwd= +period= +Note=Note +Multiline=Multiline +Datasource-Convert_Charset=Convert Char Set +DashBoard-ConnectionList=ConnectionList +Utils-Submit_Forcibly=Submit Forcibly +Parent_Marked_Field=Parent Marked Field +Logout=Logout +FR-Designer_Show_Blank_Row= +FR-Base_Format= +FR-App-Export_png= +Delete_Column=Delete Column +SecondGraduationLine=Second Graduation Line +SpecifiedG-Groups=Groups +CONTINUUM_MODE=Continuum Grouing +Datasource-Connection_failed=Connection Failed +CategoryName=CategoryName +DBCP_INITIAL_SIZE=InitialSize +Colors=Colors +FR-Import-Export_CSV= +FR-Designer-StyleAlignment_Left= +BackgroundTexture-PaperBag=Paper Bag +RWA-BuildIn_SQL=BuildIn SQL +SingleLayer=SingleLayer +Or-you=or you +FR-Designer_Certificate_Path= +Utils-Last_Page=Last Page +BarCodeD-Drawing_Text=Drawing Barcode Text +Warning-Template_Do_Not_Exsit=Template Do Not Exsit +BindColumn-Group=Group +Export-SVG=SVG +Plane3D=Plane 3D +SessionID= +FR-Designer_Height= +HF-Odd_Page=Odd Page +About-All_Rights_Reserved=All Rights Reserved +Utils-Current_Cell=Current Cell +Web_Preview_Message=Please save the template in the current Runtime Environment folder +FR-Hyperlink_Chart_Float= +Dic-Data_Query=Data Query +CellWrite-Print_Content=Print Content of Cell +Privilege-Selected_None_Of_Any_Items=Selected None Of Any Items +FRFont-Size=Size +Function-J2EE_server=J2EE server +FR-Designer_Allow_Blank=All Blank +Build_Tree_Accord_Parent_Marked_Filed=Build Tree according parent's marked filed +Preference-Horizontal_Scroll_Bar_Visible=Horizontal Scroll Bar Visible +Scope=Scope +Save_All_Records_In_Memory=Save All Records in Memory +FreezeWarning1=FreezeWarning +FlowLayout=FlowLayout +M_Report-Report_Footer=Report Footer +FR-Action_Add= +BorderLayout-East=East +feedback_tip=Please enter a description of the problem of not more than 400 words +FS_Start_Date=Start Date +FR-ConditionB_Operator= +Printer-Alias=Alias +DS-Class_Name=Class Name +FR-Designer-Plugin_Has_Been_Disabled=Plugin has been disabled +Sort-Original=Original +Utils-Top_to_Bottom_a=Top to Bottom +Parameter-String=String +InnerRadis=InnerRadis +Want_To_Cover_It=Want To Cover It +Divided_stage=Divided stage +Seriously=Seriously +ReportServerP-PDF=PDF +Utils-Switch_To_Class_Reportlet=Switch To Class Reportlet +FR-Designer_Show_Blank_Column= +M_Edit-Redo=Redo +Visibility=Visibility +Series_Use_Default=Series_Use_Default +Has_Selected=Has Selected +BackgroundTexture-Walnut=Walnut +FormulaD-Function_category=Function Category +Interface=Interface +FR-Designer-Beyond_Bounds= +seconds=seconds +Auto-Build=Auto-Build +FR-Designer-Plugin_Install_Successful=Install successful +Template_Path=Template_Path +FR-Designer-FRFont_Bold= +Poly_Name=Poly Name +WorkBook=WorkBook +Hyperlink-Self_Window=Self Window +FR-Designer-Widget-Style_Title= +FR-Designer-FRFont_Size= +M_File-Export-SVG=SVG +Capacity=Capacity +Rose_Red=Rose Red +StyleAlignment-The_value_of_rotation_must_between_-90_and_90_degrees=The value of rotation must between -90 and 90 degrees +HF-Move_Left=To the left +Cell_Group=Cell Group +Week=Week +PageSetup-Orientation=Orientation +M-Open_Recent=Open Recent +NNormal=Noraml +Integer=Integer +Select_The_Source_To_Save=Select Source to Save +Transition=Transition +FR-Designer_Get_Lock= +one_record_exists_in_many_groups=One record exists in many groups +FR-Designer_Cover_None= +DeciPart= +ExpandD-Up_Father_Cell=Upper Parent Cell +Deep=Deep +FRFont-Shadow=Shadow +Reportlet=Reportlet +Calendar=Calendar +DateFormat-Custom_Warning=Note\: Custom date format does not support the format checking +Unit_MM=MM +Server-Start=Start +CellPage-Can_Break_On_Paginate=Can Break On Paginate +Build_Tree_Accord_Marked_Filed_Length=Build Tree according marked filed's length +ComboCheckBox-Start_Symbol=Start Symbol +Real=Real +RWA-Batch_Modify_Cells=Batch Modify Cells +FR-Designer_Build-Way=Build-Way +Read=Read +StyleAlignment-Degrees=Degrees +M_Format_A-Border=Border +Utils-Delete_Record=Delete Record +Reload=Reload +Image-Select_Picture=Select Picture +RWA-Submit=Submit +the_template=this template +FR-Designer_Component_Scale=Component Scale +FRFont-italic=italic +Year=Year +HF-Move_Right=To the right +Data-Check= +Unknown=Unknown +Submit_Style=Submit Style +Left_Border_Line=Left Border Line +Brown=Brown +Select_A_Tree_DataSource_To_Build=Select a tree data source to build +Overlapping=Overlapping +DS-Class_TableData=Class Table Data +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=Most Recently Used +FormulaD-Input_formula_in_the_text_area_below=Input formula in the text area below +Build-Way=Build-Way +M_Edit-Undo=Undo +Line-Style=Line-Style +Datasource-Other_Attributes=Other Attributes +M_Server-Global_Parameters=Global Parameters +Suffix=Suffix +Image-Image_Files=Image Files +EditRC-Entire_row=Entire row(R) +HF-First_Page=First Page +BackgroundTexture-Granite=Granite +DataList=DataList +Recursion=Recursion +BarStyle=Bar Style +FR-Designer-Min_Width=Min-Width +Utils-Report-Env_Directory=Report Workspace +D-ChartArea=Chart Area +Only= +FR-Base_No= +SpecifiedG-Put_all_others_together=Put all others together +HF-NewLine_Des=Click on the move or delete button to operate newline +WLayout-Border-ThreeContainer=With north, west, and in the three border layout containerIncluding the northern block may need to adjust the height of the western block may need to adjust the width. +Parameter_Name=Parameter Name +FR-Base_Table= +Des-Remove_WorkSheet=The report to be deleted may contain data. If you want to delete report, please click on Yes button. +Rotation=Rotation +Undefined=Undefined +Support-Auto_Complete_Shortcut=Auto Complete Shortcut +Set_Column_Title_End=Set_Row_Title_End +Submit_Url=Submit Url +ReportServerP-Are_you_sure_to_delete_the_selected_printer=Are you sure to delete the selected printer +long_data_can_not_show_fully=Long data can not be fully demonstrated +Utils-Beyond_the_bottom_side_of_Border=Beyond The Bottom Side Of The Border +FR-Import-Export_PDF= +Form-CheckBoxGroup=CheckBoxGroup +Click-Me=Click-Me +Hyperlink-Self=Self Frame(S) +Tree-Select_Leaf_Only_Tips=Tree-Select_Leaf_Only_Tips +StyleAlignment-Text_Rotation=Text Rotation +Format-Error=Format Error +Server-Stop=Stop +Preference-Setting_Grid=Setting Grid +ReportServerP-Add_Printer=Add printer +FR-Designer-Plugin_Active=Active +Utils-File_name=File name +NOT_NULL_Des=Can not be null +Right_Border_Line=Right Border Line +EditRC-Entire_column=Entire column(C) +PageSetup-Top_to_bottom=Top to bottom +Click-Get_Default_URL=Click To Get Default URL +StyleAlignment-Wrap_Text=Wrap Text +Remove_All_Button=Remove_All_Button +FR-Designer_Component_Interval=Components Interval +ReportColumns-Columns_vertically=Columns vertically +ReportGUI-Print_Background=Print Background +Export-CSV=CSV +M_Edit-Paste=Paste +FR-Designer-Basic_Restart_Designer=Restart designer +ReportServerP-PDF2-INFO=The PDF Button Info +FormulaD-Check_Valid=Check Valid +server_disconnected=server disconnected +ParameterD-Parameter_name_cannot_be_null=Parameter name cannot be empty +FR-Designer-Plugin_Version_Is_Lower_Than_Current=The version of plugin is lower than current +RWA-NotChange_Unmodified=NotChangeUnmodified +User_Information=User_Information +Custom_styles_lost= +PageSetup-Margin=Margin +M-New_FormBook=FormBook +Widget-TreeNode=TreeNode +Form-Url=URL +Utils-Beyond_the_left_side_of_Border=Beyond the left side of border +Float_Element_Name=Float Element Name +Purple=Purple +DashBoard-Potence=Permissions +M-Close_Template=Close Template(C) +paper= +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 "\ +FR-Action_Copy= +Compile_Success=Compile Success +BackgroundTexture-RecycledPaper=Recycled Paper +StyleAlignment-Single_Line=Single Line +Utils-Move_Down=Move Down +Please_Set_Repeat_First=please set repeat Columns and Rows first +Writer-ShortCuts_Setting= +Verify-Data_Verify=Verify Data +FR-mobile_analysis_style= +Confirm-Delete-File= +PageSetup-Header=Header +JavaScrit-Asynch=Asyn +ReportServerP-Toolbar=Toolbar +Utils-Top_to_Bottom=Top to Bottom +Platform=Platform +FR-Designer-FRFont_Underline= +Show_in_Containing_Folder=Show in Containing Folder +BackgroundTexture-WaterDroplets=Water Drip +FR-Designer-Dependence_Install_Failed=install failed +Layout-Padding=Padding +roles_already_authority_edited=Configured role +WidgetDisplyPosition=Widget DisplyPosition +SpecifiedG-Force_Group=Force Group +FormulaD-Formula_Definition=Formula Definition +I-xyScatterStyle_Marker= +Hour= +ColorMatch=ColorMatch +M_Edit-Order=Order +BackgroundTexture-Bouquet=Bouquet +Verify-Error_Information=Error Information +LayerData=LayerData +Rename=Rename +Widget-Load_By_Async=Load By Async +Shape=Shape +BindColumn-This_Condition_has_been_existed=The Condition Already Exists +NS-exception_readError= +Set_Column_Title_Start=Set_Row_Title_Start +Fri=Fri +M_Report-Report_Parameter=Report Parameter +REPORTLETS= +WLayout-Card-ToolTip=Card layout, you can add a number of other components in the layout container. +M-Popup_ChartType=Chart Type +Please-Wait=Please Wait +FR-Designer-Form-ToolBar_Widget= +Widget-Array=Array +FieldBinding=Field Binding +Top_Bottom_Border_Line=Top bottom border line +M-Others=Others... +Hyperlink-Link_Opened_in=Link Opened in +FR-Utils_WorkBook= +M_Insert-Float=Float Element +Out_Thick_Border_Line=Out Thick Border Line +FR-App-File_Lookup_range= +ReportColumns-Columns_to=Columns to +Transparent=Transparent +Parameter-Integer=Integer +PDF-Print_Setting=PDF Print Setting +Server-Embedded_Server=Embedded Server +M_Server-Server_Config_Manager=Server Configuration Manager +FR-Utils-Would_you_like_to_cover_the_current_file=Would you like to cover the current file +CellWrite-InsertRow_COPY=The Original Value +Edit_String_To_Formula=Edit String To Formula +Edit-Column_Count=Column Count +Father=Father +ReportColumns-Columns_after=Columns after +FR-Designer_Undo= +DBCP_MIN_IDLE=MinIdle +M-Data_Analysis_Settings=Data Analysis Settings +M-Form_Preview=Form Preview +Form-Basic_Properties=Basic Properties +quote= +Thu=Thu +Collect-Collect_User_Information=Collect User information +Layer-Build=Layer-Build +FR-Designer-FRFont_Line_Style= +BackgroundTexture-BrownMarble=Brown Marble +PageSetup-Page_Setup=Page Setup +Form-Semicolon=Semicolon +ECP_re_input= +ExpandD-Sort_After_Expand=Sort After Expand +FR-Designer-Dependence_Install_Succeed=install succeed +Env-Configure_Workspace=Configure Workspace +feedback_info=We welcome your comments and suggestions, please fill out the information too much detail, we will contact you as soon as possible +Ratio=Ratio +DBCP_TEST_ON_BORROW=TestOnBorrow +FR-Designer_layerIndex= +WEB-Write_Setting=Write Setting +M-New_WorkBook=New WorkBook +FR-Designer-Plugin_Has_Been_Actived=Plugin is now active +Datasource-Maximum_Number_of_Preview_Rows=Maximum Number of Preview Rows +ExpandD-Cell_Expand_Attributes=Attribute to Insert Cell to Display Data +Select_the_repeated_row_and_column=Select the repeated rows and columns +FormulaD-Date_&_Time=Date and Time Function +Max-Mem-Row-Count=Use disk cache when records more than +BorderLayout-South=South +Export-Text=Text +JavaScript-Synch=Synch +FR-App-All_Warning= +M_Edit-Send_Backward=Send to Backward +Form-Layout=Layout +FR-Designer-Plugin_Shop_Need_Update= +FR-Designer_WorkBook=WorkBook +UpBarBorderStyleAndColor=UpBarBorderStyleAndColor +GridLayout=GridLayout +Utils-Default_Value=Default Value +Widget-Comb_Widget_Config=Comb Widget +Import-Excel2007_Source=Excel2007 Source +Y-Coordinate=Y Coordinate +FR-Base_SimSun_Not_Found= +FR-Designer_Seriously= +Upload=Upload +Form-Widget_Property_Table=Widget Property Table +Des-Merger_Cell=The Selected Area Contains multiple values, if you merge them, only the data at the upper left corner will be reserved. +FR-Designer-Basic_Copy_Build_NO=Double click to copy build NO. +FR-Base_TurnOn= +FR-Base_Rows= +Form-Remove_Repeat=Remove Repeat +Yes=Yes +Datasource-JNDI_Name=JNDI Name +Utils-Delete_Column=Delete Column +HF-Delete_it=Delete it +JavaScript-Dynamic_Parameters=Dynamic Parameters +px=px +FR-App-Report_Template= +Verify-Message=Message +Plan=Plan +Vertical-Split_Layout=Vertical Split Layout +ParameterD-Delay_Playing=Delay Playing +TurnOff=TurnOff +FR-Please_Rename= +Select_Data_Set=Select Data Set +Name_has_Colon= +ReportColumns-Columns_horizontally=Columns horizontally +FR-Base_Yes= +ReportColumns-Repeat_Row=Repeat Row +Print_Setting=Print Setting +Registration-User_Name=User Name +Datasource-User_Defined=User Defined +FR-Designer-Plugin_DownLoadMessage=Plugin need dependence support,need to install ({R1} m)? +Delay=Delay +FR-Designer-All_MSBold= +Utils-Now_create_connection=Connecting to database +FR-Template-Path_chooseRightPath= +FR-Remote_Re_Connect_to_Server= +Nation=Nation +DBCP_MAX_WAIT=MaxWait +FR-App-Template_Form= +Address= +Sub_Report=Sub Report +FR-Import-Export_Word= +FR-Server_Version_Tip= +StyleAlignment-Left_To_Right=Left To Right +Verify-ToolTips=Not meet formula,Error message prompt +BackgroundTexture-Stationery=Letter Paper +FR-Designer_RWA-Help= +M_Insert-Barcode=Barcode +Bounds=Bounds +FR-Designer-Undo_All_Authority_Operations= +Datasource-Context=Context +CellWrite-Page_After_Column=Page Break After Column +FR-Designer_Cancel= +Button-Group-Display-Columns=Display Column Count +Widget-Height=Height +Examples=Examples +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 +Include=Include +Export-Excel-Page=Page +FR-Designer-Min_Height=Min-Height +Filed=filed +ReportServerP-Import_Css=Import Css +M_Insert-Formula=Insert Formula +FR-Designer_Auto-Build= +FRFont-Foreground=Foreground +Bubble-Width=Bubble Width +Form-Hierarchy_Tree=Hierarchy Tree +WLayout-Border-LayoutContainer=With central and northern two border layout container.Including the northern block may need to adjust the height +Preference-JDK_Home=JDK Home +Utils-Insert_Column=Insert Column +FR-Designer_ToolBar_Top= +BindColumn-The_Conditions_of_FatherCell=The Conditions of Parent Cell +Links=Links +M_Report-Report_Header=Report Header +Sub_Report_Description=The sub-report should exist in the runtime environment of its parent, and the two can not be the same +T_Insert-Float=Insert Float Element +BackgroundTexture-FishFossil=Fish Fossil +My_Computer=My Computer +FORMLET= +HF-Undefined=Undefined +Widget-User_Defined_Widget_Config=User Defined Widget +Report-Write_Attributes_Group_Warning=Group is set to the cell number of cells in each field must be the same +Form-Single_quote=Single Quote +Compile_Success_And_Then_Save=Compile Success And Then Save +FR-Designer_Layout-Padding=Padding +Layout_Container=Layout Container +Admin=Admin +Form-EC_toolbar= +FR-App-All_Auto= +Utils-Available_Columns=Available Columns +Form-Change_Widget_Name_Discription=Change Widget Name Discription +FR-Module_Designer= +FR-Import-Export_Text= +Values-Editor=Values ??Editor +FR-Designer_Yes= +ExpandD-Expandable=Ability to Insert Cell to Display Data +Tree-Return_Full_Path=Tree-Return_Full_Path +FRFont-bolditalic=bolditalic +FR-Base_StyleFormat_Sample=Sample +Area_Value=Area Value +FR-Designer-Plugin_Disable=Disable +Utils-Are_you_sure_to_remove_the_selected_item=Are you sure to remove the selected item +Face_Write=Write +Poly-Report_Block=Poly Report Block +Vgap=Vgap +FR-Designer_HyperLink_Must_Alone_Reset=HyperLink_Must_Alone_Reset +DS-Class=Class +FR-Hyperlink_Please_Select_Reportlet= +FS_Report_Type=Report Type +HF-New_Line=New Line +Privilege=Privilege +Export-Offline-Html=Export Offline HTML +FR-Designer_open-new-form-tip=open new form tip +FR-Designer-Widget-Style_Frame_Style= +Present-No_Present=No Present +FR-Designer_Form-Password=Password +X_Axis=X Axis +FR-mobile_html_analysis= +M_Edit-Bring_to_Front=Bring to Front +Null_Value_Show=Null_Value_Show +Datasource-JNDI_DES=Note\: .jar files containing INITIAL_CONTEXT_FACTORY class need to be copied into the Directory of $installed/lib. +PrintP-Print_Preview=Print Preview +Form-Hierarchy_Tree_Last=Last +Has_been_gone= +RWA-Add_Field=Add Field +newNode=add Node +PageSetup-Shrink_to_fit_content=Shrink to fit content +FR-Designer_Date=Date +Column_Multiple=Column Multiple +FR-App-All_File= +Sort-Descending=Descending +FR-Designer-Plugin_Delete=Delete +Above=Above +Utils-The-Chart= +FRFont-plain=plain +Calculating=Calculating +Form-Object=Form Object +May=May +FR-Designer_Plugin_Normal_Update=Update +FR-Hyperlink_Reportlet= +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 currect path +Form-Allow_CustomData=Allow Custom Data +FR-Server_Version_Tip_MoreInfo= +FR-Designer_Server-version-tip-moreInfo=Your own team of our FineReport Designer version number of the product as well as the deployment server version number is consistent, in order to avoid the problems caused by inconsistent versions of risk.If you open a template produced higher Designer version, may open the error may be missing the original template properties. If you create the template used Designer Version higher than your final deployment with the server version, the server may not be able to properly load the template you create. +Get_Lock=Get Lock +HF-Edit_Footer=Edit page Footer +Datasource-New_Charset=New Char Set +Preference-Custom=Custom +BackgroundTexture-Newsprint=Newsprint +ConditionB-Add_bracket=Add bracket +Datasource-Connection_successfully=Connection successfully +Function-The_class_must_implement_the_interface=The class must be interface +FR-Designer_ChartF-Transparency=Transparency +Crimson=Crimson +FR-Hyperlink_Dialog= +FR-Designer_Covered_All= +Hyperlink-New_Window=New Window +Style_Name=Style Name +CSS_warning=CSS_warning +FR-Base_Column= +Three_Rows_Of_Two_Grid=Three rows of two grid +DBCP_VALIDATION_QUERY=ValidationQuery +M_Edit-Clear_Formats=Formats +Parameter_Setting=Parameter Setting +Related=Related +BorderLayout-Constraints=Constraints +Write_Preview=Write Preview +PageSetup-Page_Order=Page Order on print +Verify-Verify_Formula=Verify Formula +State=State +FR-Designer-Widget-Style_Body_Background= +FR-App-Privilege_No= +Please_Drag_ParaPane= +Come_True=Come_True +ISEMPTY=IS_EMPTY +Background-Texture=Texture +FR-Designer_Verify-Message=Message +Locked= +Utils-Design-Action_Cancel= +Image-Titled=Titled +Gradient-Direction=Gradient Direction +Green=Green +Report_Engine=Report Engine +Return-String=Return String +Margin=Margin +Pitch_Percentage=Pitch percentage +FR-Base_TurnOff= +Utils-has_been_existed=has been existed +HF-Insert_Formula=Insert Formula +Utils-Exit_Designer=Exit Designer +Formula_Dictionary_Display=For every value($$$) in the actual values above, it's display value is +PageSetup-Left_to_right=Left to right +Utils-Import_Excel_Data=Import Excel Data +M-Save=Save +redo=redo +Status=Status +Draw= +FR-Designer_Message= +Records=Records +FR-Designer_ComboBox=ComboBox +Driver=Driver +Template_Parameters=Template_Parameters +Form-Remove_Repeat_Data=Remove Repeated Data +ECP_decode= +Area_Name=Area Name +Others=Others +Merge=Merge +BackgroundTexture-Parchment=Parchment +BindColumn-Bottom_N=Last N +Frame= +Bottom_Border_Line=Bottom Border Line +Muiti_In= +FR-Designer-Dependence_Install_Online=install online +Use_Default_ToolBar=Use_Default_ToolBar +M_Server-Platform_Manager=Platform_Manager +PageSetup-inches=inches +Form-Widget_Property=Widget Property +FR-Layout_Padding= +Schema=Schema +Server_Path=Servlet Path +Condition_Display=Condition Display +FR-Server-Design_template_unopened= +Function-Function_Class_Name=Function Class Name +Schedule-Template=Template +Tree_Data_Field=Tree Data Field +Border-Style-Normal=Rectangular +Top_And_Double_Bottom_Border_Line=Top And Double Bottom Border Line +FR-Server_Embedded_Server_Start=Server in Design-Start +FR-Designer-Basic_Restart_Designer_Later=Restart later +StyleAlignment-Top=Top +ReportServerP-First=First +Not_Exist=Not Exist +FR-Remote_File_is_Locked= +Apply=Apply +Sytle-Indentation=Indentation +Parameter-Float=Float +HF-Center_Section=Center Section +Form-Double_quotes=Double Quotes +M_File-Export-Word=Word +M_File-Export-Text=Text File +PageSetup-First_Page_Number=The Number of First Page +Execute= +Task=Task +Custom_Button_Type_Submit=Submit +FR-Designer-Widget_Settings= +IS_Need_Password=IS Need Password +PageSetup-Horizontally=Horizontally +No_Editor_Property_Definition=No Editor Property Definition +Env-Remote_Server=Remote Server +FR-Utils_Background= +FR-Designer-Plugin_Warning=Warning +Server-version-info=You open the template file is open there will be an error made ??by the later design or the risk of losing the original template attribute. Please upgrade to your designer if need to open this template +CellWrite-Page_After_Row=Page Break After Row +HF-Right_Section=Right Section +PageSetup-Title_Start_Row=Title Rows +From= +Preference-Grid_Line_Color=GridLine Color +RowTo=RowTo +FR-Designer_ReportColumns-Repeat_Column= +M_Server-Function_Manager=Function Manager +KeyWord= +DS-Multi_Dimensional_Database= +BiasD-Slope_Line=Slope Line +Tue=Tue +ReportServerP-Last=Last +FR-Base_Columns= +SpecifiedG-Leave_in_their_own_groups=Leave in their own groups +LOG-Please_Wait=Please Waiting +Form-ToolBar=Form ToolBar +FR-Base_sure_remove_item= +Component_Scale=Component Scale +Hyperlink-Use_CJK_to_encode_parameter=Use CJK to encode parameter +LOG-Has_Been_Openned=Report Has Been Openned +FR-Designer-Dependence= +ECP_error_pwd= +REPORTLET= +RWA-Column_Offset=Column Offset +Forecast=forecast +Light_Orange=Light orange +StyleAlignment-Vertical=Vertical +Form-List=List +ParameterD-Show_Parameter_Window=Show Parameter Window +FR-Designer_Set_Submit_Event= +Value_Percent=Value In Percent +DBCP_MIN_EVICTABLE_IDLE_TIMEMILLIS=MinEvictableIdleTimeMillis +Function-The_class_must_be_located_in=The class must be located in +FR-Action_Sort= +DataFunction-Average=Average +FR-Designer_Show_in_Containing_Folder= +M_File-Export-Excel=Excel +DataFunction-Max=Maximum +FR-Designer_Form-Widget_Name=Widget Name +FS_End_Date=End Date +Export-Excel-Simple=Simple +ColumnTo=ColumnTo +SpecifiedG-Discard_all_others=Discard all others +DS-TableData=TableData +Form-DataTable=DataTable +Sub_Report_ToolTips=ToolTips of Sub Report +Right_Top=Right_Top +M_Edit-Merge_Cell=Merge Cell +FR-Designer_Restore_Default=Restore Default +Component_Interval=Components Interval +Cover_None=Cover None +Datasource-From_Database=From Database +Folder=Folder +Form-Allow_Edit=Allow Edit +M_Edit-Clear=Clear +ParentCell_Setting=Parent Cell Setting +Only_selected_cell_can_paste_only=Only selected cell can paste only +M_Report-Report_Columns=Report Columns +Unit_Hundred=Hundred +FR-Designer_DataTable-Build= +Widget-Form_Widget_Config=Form Widget +Server-version-tip-moreInfo=Your own team of our FineReport Designer version number of the product as well as the deployment server version number is consistent, in order to avoid the problems caused by inconsistent versions of risk.If you open a template produced higher Designer version, may open the error may be missing the original template properties. If you create the template used Designer Version higher than your final deployment with the server version, the server may not be able to properly load the template you create. +Actions=Actions +FR-Designer-Dependence_Connect_Server_Error=connect error +High=High +HJS-Send_Failed=Send Failed +HJS-Message=Message +File-Allow_Upload_Files=Allow Upload Files +FR-Designer-Form-ToolBar_Chart= +Thick_Bottom_Border_Line=Thick Bottom Border Line +FR-Action_Remove= +FRFont-Style=Style +Select_DataColumn=Select Data Column +StartValue= +SINGLE_FILE_UPLOAD= +BackgroundTexture-Cork=Cork +M_Format-Data_Map=Data Map +FR-mobile_native_analysis= +HighLight=HighLight +FR-Designer_Dropdown-More-Preview=Drop-down for more preview +local=local +FR-Designer_Gradation=Gradation +PageSetup-Finis_Start_Column=Finis Columns +Env-Invalid_User_and_Password=Invalid User Or Password +FR-Designer-Plugin_All_Plugins=All plugins +FR-Designer_Prepare_Export=Prepare_Export +DBCP_TEST_ON_RETURN=TestOnReturn +no-alternatives=no alternatives +FR-Designer_Submmit_WClass= +M_Insert-Slope_Line=Insert Slope Line +FR-Designer-Plugin_Plugin_Description=Description +ExpandD-Not_Expand=Not to Insert Cell to Display Data +Utils-Bottom_to_Top=Bottom to Top +Collect-Click\!_Get_user_information_code=Click\! Get user information code +FR-Already_exist= +Send=Send +M_Edit-Clear_All=All +Brown_Orange=Brown Orange +PageSetup-Portrait=Portrait +FR-Designer_Form-RadioGroup=Radio Group +FR-Utils-App_AllFiles=All Files +Popup=Popup +Server_Charset=Server_Charset +CellWrite-Repeat_Content_When_Paging=Repeat Content in New Page +Utils-No_Pagination=No Pagination +Form-NullLayout=NullLayout +ConditionB-Remove_bracket=Remove bracket +email=email +Minute= +FR-Designer-Plugin_Update=Plugins to update +alraedy_close=already closed +ComboCheckBox-End_Symbol=End Symbol +DataColumn=Data Column +Form-Password=Password +FR-Background_Image_Adjust=Adjust Image +Export-Excel-PageToSheet=Page To Sheet +Edit-Row_Count=Row Count +DS-Report_TableData=Report Table Data +Sche-Hour=Hour +Group_Count=Group Count +EndValue=End Value +FR-Designer_Sytle-Indentation=Indentation +DownBarBorderStyleAndColor=DownBarBorderStyleAndColor +World=World +FR-Designer-Basic_Cancel=Cancel +Finally=Finally +Low=Low +Please_Input_The_Key=Please Input the key the map use +Smart=Smart +Preference-Predefined=Predefined +Current_custom_global= +FR-Designer-Plugin_Shop_Need_Install= +WEB-Pagination_Setting=Pagination Setting +RCodeDrawPix=PIX +FR-Designer-Widget-Style_Alpha= +BorderLayout-North=North +HJS-Current_Page=Current Page +Compile=Compile +Show_Blank_Row=Show Blank Row +TableData_Dynamic_Parameter_Setting=Dynamic Parameter-Setting +FR-Background_Image_Default=Default Image +BackgroundTexture-WhiteMarble=White Marble +DataFunction-Sum=Sum +Collect-The_user_information_code_is_invalid=The user information code is invalid +Preference-Locale=Locale +M_File-Export-PDF=PDF +BiasD-From-lower_left_to_upper_right=Lower left to upper right +Border-Style=Border-Style +Sort=Sort +Image-Image_Layout=Image Layout +Panel=Panel +FR-Designer-Basic_Copy_Build_NO_OK=Build No. has been copyed +All_Border_Line=All Border Line +FR-Utils-Please_Input_a_New_Name=Please Input a New Name +FR-Base_Formula_Plugin=Plugin Function +Two_Rows_Of_Three_Grid=Two rows of three grid +FR-Designer_Certificate_Pass= +Bubble-Series_Name=Series Name +M-New_Multi_Report=Multi Report +BackgroundTexture-PinkTissuePaper=Pink Tissue Paper +Preference-Support_Default_Parent_Calculate=Support Default Parent Calculate +Show_Blank_Column=Show Blank Column +BaiduMap=Baidu Map +Report-Web_Attributes=Web Attributes +FR-Designer_StyleAlignment-Wrap_Text=Wrap Text +Need=Need +Parameter-Double=Double +Config_Servlet=Config Servlet +Form-Comma=Comma +Verify=Verify +PageSetup-Landscape=Landscape +Weeks=Weeks +FR-Designer-Widget-Style_Title_Background= +Preference-Pagination_Line_Color=Pagination Line Color +Test_URL=Test URL +Fill_blank_Data=Fill blank Data +ReportServerP-The_name_of_printer_cannot_be_null=The name of printer cannot be empty +FR-Designer-Basic_Copy_Activation_Key=Double click to copy key to clipboard +Continuum=Continuum +BackgroundTexture-MediumWood=Medium Wood +Datasource-Column_Index=Column Index +Function-Function_File=Function File +Form-Component_Bounds=Component Bounds +Utils-Submit=Submit +Conditions_formula= +M_Insert-Image=Insert Image +FR-Designer-Plugin_Will_Be_Delete=Delete plugin +FormulaD-Functions=Functions +Mobile_Terminal=The mobile terminal +CheckBox=CheckBox +FR-Designer-Plugin_Install=Install +Sun=Sun +FR-Designer_ToolBar_Bottom=Bottom ToolBar +Widget-Width=Width +Series_Name=S_N +Set_Row_Title_Start=Set_Column_Title_Start +HF-Default_Page=Default Page +Env_Des=Env_Des +Widget-User_Defined=User Defined +Url_location=url +Disk_File=Disk File +Inside=Inside +FR-Designer_filedChosen= +ServerM-Predefined_Styles=Predefined Styles +is_need_word_adjust= +Background-Null=No Background +PageSetup-Vertically=Vertically +FR-Designer_Root=Root +FR-Designer_Form-TextArea=TextArea +ReportServerP-Import_JavaScript=Import JavaScript +Form-TableTree=Table Tree +Opened=Opened +M_Edit-Delete=Delete +Widget-Form_Widget_Container=Form Container +BindColumn-Summary=Summary +Sche-Second=Second +Server-Open_Service_Manager=Open Service Manager +FRFont-Effects=Effects +OtherGroup_Name=The name of other group +Specify=Specify +Highlight-Click_to_Choose_Property_To_Modify=Click to Choose Property to Modify +triggered= +Double_Bottom_BorderLine=Double Bottom BorderLine +M_Insert-Sub_Report=Insert Sub Report +Unit_Ten=Ten +Polybolck=Polybolck +Select_sort_order=Select sort order +HJS-Mail_to=To +StyleAlignment-Left=Left +Two_Rows_Of_Two_Grid=Two rows of two grid +FR-Designer-Form-Please_Drag_ParaPane= +Milliseconds=Milliseconds +DataFunction-None=None +Delivery=Delivery +ColumnSpan=ColumnSpan +StyleAlignment-Bottom=Bottom +Read_failure=The read failure may source file is corrupted +Verify-Verify=Verify +FR-Designer-Widget-Style_Title_Format= +FR-Designer_Edit_String_To_Formula= +FR-Base_UnSignIn= +Every= +CellWrite-Preview_Cell_Content=Preview Content of Cell +FormulaD-Data_Fields=Data Fields FR-Designer_Role=Role FR-Designer_Permissions=Permissions FR-Designer_Form_Button=Button -FR-Designer_WF_Name=Name \ No newline at end of file +FR-Designer_WF_Name=Name diff --git a/designer_base/src/com/fr/design/locale/designer_en_US.properties b/designer_base/src/com/fr/design/locale/designer_en_US.properties index 3bf25ff171..c3531ae7be 100644 --- a/designer_base/src/com/fr/design/locale/designer_en_US.properties +++ b/designer_base/src/com/fr/design/locale/designer_en_US.properties @@ -516,7 +516,6 @@ FR-Designer_Create_Tree=Build Tree FR-Designer_Set_Callback_Function=Set Callback Function FR-Designer_ConfirmDialog_Content=Confirm to delete Tab Control FR-Designer_ConfirmDialog_Title=FineReport 8.0 - FR-Designer_FormulaPane_Tips=Tips\:You can input B1 to get the data in the second cell of the first row FR-Designer_FormulaPane_Variables=Variables FR-Designer_FormulaPane_Formula_Description=Formula Description @@ -525,13 +524,11 @@ FR-Designer_FormulaPane_Search=Search FR-Designer_Tab_carousel=Tab carousel FR-Designer_setCarousel=Start FR-Designer_carouselInterval=Interval - FR-Designer_ClassName_panel=Class Name FR-Designer_Description_panel=Description FR-Designer_Edit_panel=Edit FR-Designer_Property_panel=Property 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 @@ -547,7 +544,6 @@ FR-Designer_PageSetup_Page=Page FR-Designer_Custom_Job_Description=Description FR-Designer_Property=Property FR-Designer_ClassName=Class Name - FR-Designer_Polyblock_Edit=Aggregation block edition 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 @@ -588,10 +584,8 @@ FR-Designer-Move_Tab_First=move to first FR-Designer-Move_Tab_End=move to end FR-Designer-Move_Tab_Next=move to next FR-Designer-Move_Tab_Prev=move to previous - FR-Designer_Too_Large_To_Paste=Too large to paste! FR-Designer_Too_Small_To_Paste=Too small to paste! - FR-Designer_AxisReversed=Axis in reverse order FR-Designer_Logarithmic=Log scale FR-Designer_Chart_Log_Base=Log Base @@ -600,8 +594,6 @@ FR-Designer_Style=Style FR-Designer_Color=Color FR-Designer_Border=Border FR-Designer_Background-Pattern=Pattern - - FR-Designer_SimpleDetail_Report= FR-Designer_SimpleCross_Report= FR-Designer_Edit_Button_ToolBar=Edit Button ToolBar @@ -609,7 +601,1394 @@ FR-Designer_Remove_Button_ToolBar=Remove Button ToolBar FR-Designer_Get-CubeGetting= FR-Designer_DoubleLayer_Report= FR-Designer_Get-Cube= +CellWrite-InsertRow_NULL=Null +DashBoard-ChartFloat=Chart +contact_info=Contact information (optional) +Page_Setup=Page Setup +CellWrite-Print_Export=Print/Export +Cannot_Get_Date=Can not get date +FR-Designer_Modify=Modify +M-Write_Preview=Filling Preview +FR-Base_RWA-Key=Key +China=China +Set_Legend_Sytle=Set Legend Format +FR-Designer_Number=Number +FR-Designer-Widget-Style_Common=Common +M-Save_As=Save As +Following_parameters_are_not_generated=The following parameters are not generated +FR-Designer-Basic_Activation_Key_Copy_OK=Key has been copy to clipboard +Utils-Current_Sheet=Current Sheet +ConditionB-is_less_than=less than +BorderLayout-West=West +AnalysisLine=Line +Layer_Report_Warnning_info=Line report engine is suitable for large data.
Many report features will no longer support if use it,
more information in helpdocument. +Tree-Width=Tree Width +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 +X-Coordinate=Horizontal axis +Style-Line_Spacing=Line Spacing +FR-Designer_Plugin_Should_Update_Title=Warning +Server-Define_Data_Connection=Define Data Connection +BarInside=Bar Inside +Border-Color=Border Color +NotAllow=Invalid +Utils-File_type=File type +FR-Designer-Plugin_Install_From_Local=Install plugin from local file +Summary_Method=Summary Method +Select_Specified_Grouping=Select custom group +HF-Number_of_Page=Total Number of Page +FR-Designer-Tree_Height=Tree Height +Owner=Owner +Home=Home +FR-Server_Embedded_Server_Stop=Built-in server-Stop +FR-Designer-Plugin_Detecting_Update=Checking for updates +HF-Whether_to_define_the_selected_type=Whether to define the selected type +StyleAlignment-Right=Right +FR-Designer_Alignment-Style=Alignment Style +PageSetup-Title_Start_Column=Duplicate Title Columns +Tree-Mutiple_Selection_Or_Not=MultiSelect +FR-Designer-Plugin_Search=Search +Choose_Role=Access Control +Append_Delete_Row_Message=Warning! Please set extended properties of the specified cell. +Form-ComboBox=Drop-down Boxes +PageSetup-Footer=Footer +Sorting=Sorting +DBCP_TEST_WHILE_IDLE=Open Idle Connections Recyclers Test +DS-Embedded_TableData=Built-in Data Set +FR-Designer_No-Privilege=No Privilege +FRFont-Subscript=Subscript +Background_Settings=Background Settings +FormulaD-Invalid_Formula=Invalid Formula +FR-Base_Margin=Margin +FR-Designer-Plugin_Shop_Installed=Plug-shop installed, whether to start immediately? +M_Edit-Send_to_Back=Send to Bottom +Email-Can_Preview_Report_Content=Preview Report Content in the Body +FR-Designer-FRFont_Italic=Italic +CellWrite-Print_Background=Cell Background +Wizard=Wizard +Preference-Is_Drag_Permited=Support drag-and-drop +FR-Designer_Release_Lock=Unlock +Form-Delimiter=Separator +wrong=wrong +FR-Menu-Server_Chart_PreStyle=Chart Predefined colors +Form-Button=Button +FormulaD-Valid_Formula=Valid Formula +ParameterD-Parameter_Interface=Parameter Interface +At_least_one_visual_worksheet=A workbook must contain at least one visible worksheet. If you want to delete, please insert a new worksheet. +Need_Min_Value=Need Min Value +Allow_Blank=Allow Null +CellWrite-InsertRow_DEFAULT=Default +Widget-Load_By_Complete=Full load +FR-Designer-Basic_Only_Submit_Current_Sheet=Submit Current Sheet Only +Sort-Sort_Order=Sort +File-File_Size_Limit=File Size Limit +PrintP-Print=Print (T) +FR-Designer-StyleAlignment_Center=Center +Preference-Setting_Colors=Colors Setting +Judge=Judge +Image-Adjust=Adaptive +Collect-User_Information_DES=Simply click on the "get activation code" button above, a new browser window will pop up. Then visit the product's official website to obtain an completely free activation code, the entire process takes only 3 minutes +FR-Designer_Plugin_Normal_Update_From_Local=Update from local file +BackgroundTexture-Canvas=Canvas +BarOutSide=Bar Outside +Preview_ToolTips=Preview ToolTips +FRFont-Family=Name +FR-Lic_does_not_Support_Remote=Current lic does not support remote design, please update the lic +InterfaceStyle=Style +RWA-Key=Key +WF-Name=Name +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 Exsit +M_Insert-Hyperlink=Hyperlink +can_not_include_underline=Can not contain "_" +FR-Designer-Plugin_Jar_Expired=Jar Expired +FR-Background_Image_Extend=Extend Image +TopDownShade=Gradient(vertical) +FR-Base_Right=Right +DataBinding=Data Binding +ConnectionPool_Attr=Connection Pool Attributes +Connect_SQL_Cannot_Null=Data Connection and SQL Cannot be Null +DBCP_MAX_ACTIVE=Max Active Connections +M_Window-Preference=Options +ToolBar_Top=Top ToolBar +FR-Designer_Indent-Pixel=Pixel +FR-Designer_Unit_MM=MM +IDLE=Idle +FRFont-Underline=Underline +FR-Designer-Plugin_Read_Plugin_List_Error=Error when reading plugin list +Type_Set=Type Setting +M_Format_A-Cell_Attributes=Other Attributes +CellWrite-Show_As_Image=Show As Image +ShowAsDownload=Display the binary content using download link +Form-ComboCheckBox=Drop-down CheckBox +BackgroundTexture-WovenMat=Woven Mat +BindColumn-Custom_Data_Appearance=Custom displays +Actived=Active +Env-Local_Directory=Local Directory +Form-Colon=Colon +Preference-Vertical_Scroll_Bar_Visible=Vertical Scroll Bar Visible +Utils-Show_Cell_Value=Show Cell Value +FR-Designer_ReportColumns-Repeat_Row=Copy row sequence +SpecifiedG-Specified_Group=Custom Group +RWA-Smart_Add_Cells=Smart Add Cells +HF-Left_Section=Left Section +M_Report-Report_Background=Report Background +Image-Extend=Stretch +FS_BI=Decision-making platform +ToolBar_Bottom=Bottom ToolBar +Hgap=Horizontal gap +FR-Designer_Enter-New-FileName=Enter New File Name +Verify_Fail=Validate Failed +CellWrite-InsertRow_Policy=Policy of Insert Row +FR-Designer-Plugin_Illegal_Plugin_Zip=Illegal plugin zip +RCodeVersion=Version +Convert=Convert +Please_Drag=Please drag in row fields, column fields and rollup fields +FR-Designer-Widget-Style_Preview=Preview +mobile_number=Mobile Number +FR-Designer_Form-ComboCheckBox=Dropdown CheckBox +CacheValidateTime=Cache valid time +Hyperlink-Extends_Report_Parameters=Inherit Report Parameters +FR-Designer_Values-Editor=Values Editor +Export-Excel=Excel +Utils-Left_to_Right=Landscape +ExpandD-Vertical_Extendable=Vertically +Utils-Report_Runtime_Env=Report working directory +Utils-Right_to_Left=From right to left +Utils-Beyond_the_top_side_of_Border=Beyond top border +Exception_StackTrace=Exception StackTrace +Corresponding_Fields=Corresponding Fields +Form-CheckBox=CheckBox +Utils-Current_Row=Current Row +BuildIn=Built-in +BindColumn-Results_Filter=Result Filter +FR-Designer-Plugin_Manager=Plugin Management +M_File-Export-CSV=CSV(comma delimited) +Data_Filter=Data Filter +ReportServerP-Edit_Printer=Edit Printer +FR-Designer_Datasource-Stored_Procedure=Stored Procedure +RESTART=Restart +FormulaD-Function_name=Function Name +ChooseOneButton=Please chose one control +Priority=Priority +Datasource-Datasource=Data Source +FR-Designer_Width=W +Cannot-Add_To_This_Area=Cannot Add To This Area +Run=Run +Set_Submit_Condition=Submit Condition +FR-Base_Value=Value +fileLocked_undeleted=Template is locked, you can not delete\! Click OK to refresh the templates list +Web_Apply=Web Application +Refresh_Database=Refresh database +Set_Row_Title_End=Set Duplicate End Rows +FR-Utils-New_Folder=New Folder +BiasD-From-upper_left_to_lower_right=upper left-lower right +CapsLock=CapsLock +StyleFormat-Sample=Sample +RWA-Smart_Add_Cell_Group=Smart Add Cell Group +MConfig-CancelButton=Cancel +Function-Choose_Function_Class=Choose Function Class +LatLng=Lat and Lng +DS-Server_TableData=Server Data Set +BackgroundTexture-GreenMarble=Green Marble +read_time_out=Load Timeout +JavaScript-Commit_to_Database=Commit to DB +DS-Relation_TableData=Linked Data Set +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 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 +FR-Designer_Connect_SQL_Cannot_Null=Data connection and SQL panel cannot be Null +trigger=trigger +M-Data_Analysis=Data Analysis +Function-The_selected_file_cannot_be_null=The select file cannot be null +No-Privilege=No Privilege +ReportColumns-Repeat_Column=Copy column sequence +SecondGraduationUnit=Minor Graduation Unit +Form-Widget_Property_Value=Attribute Value +GIVE-NAME=Give Name +FR-Designer_Rename=Rename +Utils-Merge_Cell=Merge Cells +Style-Spacing_After=After Paragraph +Enlarge_Or_Reduce=Zoom +Tree-Height=Tree Height +RCodeErrorCorrect=Error-correction +Enter-New-FileName=Enter New File Name +try_resending=Please try resending +M-Open_Report=Open... +Please_Select=Please Select +InRow=InRow +Form-TextArea=Text Fields +FR-Designer_Https_Enable=Start https +Widget-Custom_Widget_Config=Custom control +already_exists=Already exists +Original_Marked_Filed=Original Tag Field +BackgroundTexture-Sand=Beach +Values=Values +Not_use_a_cell_attribute_table_editing=You may not use a cell attribute table editing +Root=Root node +cycle=Cycle +open-new-form-tip=open new form tip +Support-Current_Auto_Complete_Shortcut=Current Shortcut key +GROUPING_MODE=Ordinary Grouping +DBCP_MAX_IDLE=Max Idle Connections +BackgroundTexture-BlueTissuePaper=Blue Sandpaper +ReportD-Export_Hided_Row=Export hidden Row +FR-Custom_styles_lost=Custom style lost +Env-Des2=Servlet position should like "http\://localhost\:8080/WebReport/ReportServer",contains host name, port, web application and servlet. Input the upper items and the system will automatically generate a servlet position for you. +Env-Des1=Please select the WEB-INF directory where the Report Server is in +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 +Classifier-Ge=Piece +MSBold=MS YaHei +Form-Design_Size=Form Design Size +FR-App-Template_Save=Save +ExpandD-Horizontal_Extendable=Horizontally +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=Real value range is \ +ECP-error_pwd=Password Error +FR-Hyperlink_ChartHyperlink=Chart Hyperlink +M_Edit-FormatBrush=Format Painter +Indent-Pixel=Pixel +FR-Designer-Widget-Style_Border_Line=Border weight +Widget-Default_Widget_Config=Basic control +Version-does-not-support=Current lic does not support remote design, please update the lic +StyleAlignment-Right_To_Left=Right To Left +Style-Spacing_Before=Above Paragraph +Has_Existed=Already Exist +FR-Designer_DisplayNothingBeforeQuery=Display Nothing Before Query +Still=Still +JS_WARNING2=\ Ex: http\://localhost\:8075/WebReport/demo.js +JS_WARNING1= \ WebReport is a relative report project directory, there is a test.js in WebReport\\js,
 the relative path is js/test.js +Connectionline=Connection Modes +Utils-Insert_Record=Insert Record +Set-Parameter-Name=Set parameter name first +More-information=More information +Parameter-Boolean=Boolean +FRFont-Strikethrough=Strikethrough +Server-version-tip=The version of the server you are connecting is older than the Designer, continue to connect, some attributes you are editing may not be saved. Please conform the versions of FineReport Designer and the deployment server are consistent. +Form-All_Files=All Files +DBCP_NUM_TEST_PER_EVCTION_RUN=Recycled and Tested Idle Connections +FR-Designer-FRFont_Family=Name +Device=Device +M_Insert-Cell=Cell Element +Present-Formula_Present=Formula Present +FRFont-Superscript=Superscript +CellWrite-Page_Before_Column=Before Column +Golden=Golden +Preference-Support_Cell_Editor_Definition=Support Cell Editor +M-Page_Preview=Page Break Preview +HJS-CC_to=CC +Tree-Select_Leaf_Only=Only return leaf node +Pointer-A-Tick-Order=Pointer value and unit value' s order of magnitude +Pink=Pink +StyleAlignment-Distibuted=Justify +Odd=Odd +already-saved=Already saved +FR-Hyperlink_Chart_Cell=Chart Hyperlink-Link Cell +Style-Left_Indent=Left Indent +Offline=Offline +Form-Hierarchy_Tree_Next=Next +Needle=Pointer +GoogleMap=Google Map +Running=Running +M_Edit-Unmerge_Cell=Un-merge Cell +Out_Border_Line=Outside Border +Style-Spacing=Spacing +FR-Utils_Submit=Submit +ReportServerP-Previous=Previous +StyleAlignment-Text_Style=Text control +RelatedChart=Linkage between charts and tables +ProcessManager=Process Management +Cancel_Repeat_Attributes=Cancel duplicate rows and columns +FR-App-File_Message=Message +Datasource-Stored_Procedure=Stored Procedure +RWA-Row_Offset=Row Offset +M_Format-Style=Style +detail_description=Detailed description +FR-Designer-Widget-Style_Title_Content=Title Content +ParameterD-Report_Parameter=Report Parameter +HF-Edit_Header=Edit Page header +Sytle-FRFont=Font +FR-Designer_Finish_Export=Export Finished +MultiFileUpload=MultiFile Upload +HF-Page_Number=Page Number +Style-Right_Indent=Right Indent +Desktop=Desktop +FR-Server-All_Error=Error +ConditionB-Operator=Operator +Today=Today +Form-Widget_Name=Control Name +Covered_All=Override All +Day=Day +External=External +Black_Font=Black Font +LOG-Report_Server_IS_Started=Report Server is Started +Tips\:You_Can_Input_B1_To_Input_The_Data_Of_The_First_Row_Second_Column=Tips\:You can input B1 to get the data in the second cell of the first row +FR-Designer_ChooseOneButton=Please chose one control +Widget-Sizing=Sizing +NO_Border_Line=NO Border +Cell_Data=Cell data +StyleAlignment-Vertical_Text=Vertical Text +Label=Label +Orange=Orange +zeroMarginWarn=The printer exist the physical margins
report page margin settings the small can
can print content insufficiency.
  +Widget-Date_Selector_Return_Type=Return value type +Utils-Switch_To_Template_Reportlet=Switch to template web report +satisfy=satisfy +FR-Designer_WidgetDisplyPosition=Control DisplyPosition +FR-Base_Top=Top +FR-Designer_Form-CheckBox=CheckBox +Reportlet-Parameter_Type=Parameter passing mode +sending=sending... +FR-Designer-FRFont_Foreground=Foreground +FR-Import-Export_SVG=SVG +M_Edit-Clear_Contents=Content +Session=Session +Widget-Load_Type=Load +template_unsaved=template can not be saved +check_communication=Please check the network communication is normal and the server is running +List-Need_Head=Need List Head +FR-Designer-Plugin_Has_Been_Installed=Plugin has been installed,switch to plugin updates to update it. +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 Openned +BackgroundTexture-Oak=Oak +Multi_nam_formula=\ data set name\: +TurnOn=TurnOn +HJS-Send_Successfully=Send Successfully +Mon=Mon +Inner_Parameter=Built-in Parameter +Required=Required +Summary=Summary +template_unopened=unable to open template +FR-Base_Bottom=Bottom +DataFunction-Min=Minimum +StyleFormat-Percent=Percentage +FR-App-All_Custom=Custom +M_Insert-Data_Column=Insert Data Column +PLEASE=Please +Numbers=Numbers +Release_Lock=Unlock +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 \ +Schedule-Template_Parameter=Template Parameter +JSShow=Dynamic display +Level_coordinates=Hierarchy coordinate +MainGraduationLine=Major Graduation Line +Hyperlink-Web_link=Web link +StyleAlignment-between_-90_and_90=between -90 and 90 +FormulaD-Custom_Function=Custom Function +FR-Designer_Integer=Integer +PageSetup-Finis_Start_Row=Duplicate Last Row +RWA-Remove_Field=Remove Field +Form-Desin_Width=Form Design Width +No-tableData=Return no dataset +Page_Total=Total +FR-Designer-Plugin_Connect_Server_Error=Error to connect plugin store, try again later +Import-Excel_Source=Excel Source Files +Utils-Left_to_Right_a=From left to right +ExpandD-Expand_Attribute=Extension Attributes +Report-Write_Attributes=Filling Attribute +Utils-Current_Column=Current Column +Need_Max_Value=Need Max Value +Report_Not_Exist=Report Not Exist +HF-Insert_Content=Insert +UpParent=Upper parent cell +PageSetup-Page=Page +Utils-Move_Up=Move Up +BackgroundTexture-PurpleMesh=Purple Grid +Export-Word=Word +ServerM-Widget_Manager=Control management +FR-Designer-Basic_Activation_Key=Activation Key\: +FR-App-Template_Report_Not_Exist=Report Not Exist\! +Protected=Protect +Skip=skip +FR-Designer_PageSetup-Vertically=Vertically +revert=revert +PageSetup-Predefined=Predefine +Border-Style-Radius=Border-radius +IntPart=Integer part +ExpandD-Data_Column=Data Column +Sort-Ascending=Ascending +FR-Designer-Widget_Style=Style +parameter_name_exist=The parameter name already exists +FR-Designer_Layer-Build=Layered Build +Please_Rename=Please Rename +Form-Editing_Listeners=Event editing +RWA-Smart_Add_Fields=Smart Add Fields +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 +Sche-Minute=Minute +Three_Rows_Of_Three_Grid=A grid with 3 rows and 3 columns +WorkSheet=Free Report +FR-Designer-Widget_Size=Control Size +BindColumn-Select=List +FR-Widget_Mobile_Terminal=Mobile Terminal +FR-Background_Image_Titled=Titled Image +SetPrinterOffset=Printer Offset +FR-Designer-Plugin_Installed=Installed +FR-Designer-Hyperlink_Name=Name +FR-Designer_Form-Button=Button +Black=Black +FR-Designer-Widget-Style_Border_Color=Border Color +Set_Submit_Event=Set Submit Event +PDF-Print_isPopup=Whether display a popup settings box +LayerPageReport_CountPerPage=Number of records per page +Display_Modes=Display Modes +RowSpan=Row Span +Datasource-Test_Connection=Test Connection +Function-Function_Manager=Function Manager +Host_Name=Host Name +CellWrite-Show_As_HTML=Show As HTML +FR-Designer-Widget-Style_Shadow=Shade +FR-Designer_Parameter_String=String +Form-SupportTag=Displayed as label +ReportD-Report_Write_Attributes=Report filling attributes +DataFunction-Count=Count +Top_And_Thick_Bottom_Border_Line=Top and thick bottom border +Client=Client +BindColumn-Result_Serial_Number_Start_From_1=Serial Number Starts From 1 +History=History +Already_exists=Already exist, please input again +Datasource-Original_Charset=Original Code +FR-Base_Left=Left +ReportServerP-Next=Next +BindColumn-Top_N=Top N +Animation_Special=Special Effect +Widget-Chart_Widget_Config=Chart control +FR-Designer-Plugin_Cannot_Update_Not_Install=Cannot update, please confirm it is installed correctly +After_Changed_Some_Attributes_Are_Different=Some attributes will be changed after conversion, whether to continue? +PieStyle=Pie Style +HF-Are_you_sure_to_delete_it=Are you sure to delete it +Utils-Design-File_Open=Open +FR-Utils_Label=Label +Data-Label=Label +M_Insert-Text=Insert Text +Form-View_Tree=View Tree +M_Insert-Chart=Insert Chart +HF-Even_Page=Even Page +ReportServerP-Report_server_parameter=Report Server Parameter +JavaScript-Form_Submit=Form Submit +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 canot be cursor +Main_Axis=Primary axis +M_Edit-Cut=Cut +Utils-The_Name_has_been_existed=The name already exists +FR-Background_Image=Image +Character=character +Unit_Thousand=Thousand +Test=Test +Utils-Would_you_like_to_save=Would you like to save +HF-Header_and_Footer=Header and Footer +LIST_MODE=List Mode +HF-Insert_Image=Insert Image +FR-Designer-Widget-Style_Standard=Standard +FR-Designer_Form-List=List +BackgroundTexture-Denim=Denim +Execute_Report_by_Layer_Engine=Execute report by line report engine +M_Edit-Bring_Forward=Bring to Forward +Choose_All=Select All +Form-RadioGroup=Radio Button Group +FR-Base_Remove=Delete +FR-Remote_Connect2Server_Again=Connection break, whether to reconnect the sever +Semicolon=Semicolon +StyleFormat-Category=Category +Report_Template=Report Template +Utils-Beyond_the_right_side_of_Border=Beyond right border +BackgroundTexture-Papyrus=Papyrus +LayerPageReport_PageEngine=Use page-based computations and separately execute report +Schedule-The_selected_file_must_be_end_with_filter=The selected file must end with '.cpt' or '.class' or '.frm' +Provide=Provide +FormulaD-Math_&_Trig=Math and Trig +FR-Designer-StyleAlignment_Right=Right +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 +CellElement-Property_Table=Cell Attribute Table +Dictionary-Dynamic_SQL=Dynamic SQL +FR-Designer_Form-CheckBoxGroup=CheckBoxGroup +DBCP_TIME_BETWEEN_EVICTIONRUNSMILLIS=Sleep Time of Idle Connections Recyclers +ReportD-Export_Hided_Column=Export hidden column +Preference-Support_Undo=Support Undo +FR-mobile_report_analysis=report analysis +Month=Month +Utils-Column_Width=Column-W +Collect-Use_Designer=Use Designer +Widget-User_Defined_Editor=Predefine editor, you can only change its properties in control mangement menu. +Unit_Ten_Thousand=Ten Thousand +Data_Setting=Data Setting +ECP_input_pwd=Enter your password\: +period=period +Note=Note +Multiline=Multi-line edit +Datasource-Convert_Charset=Encoding Conversion +DashBoard-ConnectionList=Data Connection +Utils-Submit_Forcibly=Submit forcibly +Parent_Marked_Field=Parent Tag Field +Logout=Logout +FR-Designer_Show_Blank_Row=Supplement blank line +FR-Base_Format=Format +FR-App-Export_png=png +Delete_Column=Delete Column +SecondGraduationLine=Minor Graduation Line +SpecifiedG-Groups=Groups +CONTINUUM_MODE=Continous grouping +Datasource-Connection_failed=Connection Failed +CategoryName=Category Name +DBCP_INITIAL_SIZE=Initialize Connections +Colors=Colors +FR-Import-Export_CSV=CSV(comma delimited) +FR-Designer-StyleAlignment_Left=Left +BackgroundTexture-PaperBag=Paper Bag +RWA-BuildIn_SQL=Built-in SQL +SingleLayer=Single Layer +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 exsit +BindColumn-Group=Group +Export-SVG=SVG +Plane3D=Plane 3D +SessionID=sessionID is session ID parameter in current template +FR-Designer_Height=H +HF-Odd_Page=Odd Page +About-All_Rights_Reserved=All Rights Reserved +Utils-Current_Cell=Current Cell +Web_Preview_Message=Please save the template in the current runtime environment directory +FR-Hyperlink_Chart_Float=Chart Hyperlink-Floating Elements +Dic-Data_Query=Data Query +CellWrite-Print_Content=Content of Cell +Privilege-Selected_None_Of_Any_Items=Selected None +FRFont-Size=Size +Function-J2EE_server=J2EE server +FR-Designer_Allow_Blank=Allow NULLs +Build_Tree_Accord_Parent_Marked_Filed=Build Tree according to the parent tag field of the selected data set +Preference-Horizontal_Scroll_Bar_Visible=Horizontal Scroll Bar Visible +Scope=Scope +Save_All_Records_In_Memory=Save All Records in Memory +FreezeWarning1=Initial value can't greater than end value +FlowLayout=Fluid Layout +M_Report-Report_Footer=Report Footer +FR-Action_Add=Add +BorderLayout-East=East +feedback_tip=Please enter a description of the problem, not more than 400 words +FS_Start_Date=Start Date +FR-ConditionB_Operator=Operator +Printer-Alias=Alias +DS-Class_Name=Class Name +FR-Designer-Plugin_Has_Been_Disabled=Plugin has been disabled, restart the designer and sever to enable it and the sever need to be manually restarted +Sort-Original=Unsort +Utils-Top_to_Bottom_a=From top to bottom +Parameter-String=String +InnerRadis=Inner radius size +Want_To_Cover_It=Whether to override it +Divided_stage=Divided Stage +Seriously=Seriously +ReportServerP-PDF=PDF +Utils-Switch_To_Class_Reportlet=Switch to class web report +FR-Designer_Show_Blank_Column=Supplement blank column +M_Edit-Redo=Redo +Visibility=Visibility +Series_Use_Default=Series Default Use +Has_Selected=Already Selected +BackgroundTexture-Walnut=Walnut +FormulaD-Function_category=Function Type +Interface=Interface +FR-Designer-Beyond_Bounds=Can't go beyond the border +seconds=s +Auto-Build=Automated Build +FR-Designer-Plugin_Install_Successful=Plugin will takes effect when designer and sever are restarted and the sever need to be manually restarted +Template_Path=Template Path +FR-Designer-FRFont_Bold=Bold +Poly_Name=Aggregation block name +WorkBook=WorkBook +Hyperlink-Self_Window=Current Window +FR-Designer-Widget-Style_Title=Title +FR-Designer-FRFont_Size=Size +M_File-Export-SVG=SVG +Capacity=Capacity +Rose_Red=Rose Red +StyleAlignment-The_value_of_rotation_must_between_-90_and_90_degrees=Rotation value must between -90 and 90 degrees +HF-Move_Left=Left shift +Cell_Group=Cell Group +Week=Week +PageSetup-Orientation=Orientation +M-Open_Recent=Open Recent +NNormal= +Integer=Integer +Select_The_Source_To_Save=Select Source to Save +Transition=Branch +FR-Designer_Get_Lock=Lock +one_record_exists_in_many_groups=One record exists in many groups +FR-Designer_Cover_None=Override None +DeciPart=Decimal part +ExpandD-Up_Father_Cell=Upper Parent Cell +Deep=Deep +FRFont-Shadow=Shade +Reportlet=Web Report +Calendar=Calendar +DateFormat-Custom_Warning=Note\: Custom date format does not support the format checking +Unit_MM=MM +Server-Start=Start +CellPage-Can_Break_On_Paginate=Can break when paging +Build_Tree_Accord_Marked_Filed_Length=Build tree according to tag field's length +ComboCheckBox-Start_Symbol=Initializer +Real=Real +RWA-Batch_Modify_Cells=Batch Modify Cells +FR-Designer_Build-Way=Build Way +Read=Read +StyleAlignment-Degrees=Degrees +M_Format_A-Border=Border +Utils-Delete_Record=Delete Record +Reload=Reload +Image-Select_Picture=SelectImage +RWA-Submit=Submit +the_template=this template +FR-Designer_Component_Scale=Component Scale +FRFont-italic=Italic +Year=Year +HF-Move_Right=Right shift +Data-Check=Data Monitor +Unknown=Unknown +Submit_Style=Submit way +Left_Border_Line=Left Border +Brown=Brown +Select_A_Tree_DataSource_To_Build=Select a tree data set to build +Overlapping=Overlapping +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=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 +Line-Style=Line-Style +Datasource-Other_Attributes=Other Attributes +M_Server-Global_Parameters=Global Parameters +Suffix=Suffix +Image-Image_Files=Image Files +EditRC-Entire_row=Entire row(R) +HF-First_Page=Home Page +BackgroundTexture-Granite=Granite +DataList=Data Link +Recursion=Recursion +BarStyle=Bar +FR-Designer-Min_Width=Min-Width +Utils-Report-Env_Directory=Report working directory +D-ChartArea=Chart Area +Only=Only +FR-Base_No=No +SpecifiedG-Put_all_others_together=Merger all others +HF-NewLine_Des=Click on the move or delete button to operate line breaks +WLayout-Border-ThreeContainer=You have the central, northern and western border layout containers.You can adjust the height of the northern one and the width of the western one. +Parameter_Name=Parameter Name +FR-Base_Table=Table +Des-Remove_WorkSheet=The report to be deleted may contain data. If you want to delete report, please click on Yes button. +Rotation=Rotation +Undefined=Undefined +Support-Auto_Complete_Shortcut=Auto complete shortcut key +Set_Column_Title_End=Set Duplicate End Column +Submit_Url=Submit Url +ReportServerP-Are_you_sure_to_delete_the_selected_printer=Are you sure to delete the selected printer +long_data_can_not_show_fully=Long data can not be fully demonstrated +Utils-Beyond_the_bottom_side_of_Border=Beyond bottom border +FR-Import-Export_PDF=PDF +Form-CheckBoxGroup=CheckBoxGroup +Click-Me=Click Me +Hyperlink-Self=Open link in original page(S) +Tree-Select_Leaf_Only_Tips=If unchecked, only return current node, not contain its child nodes +StyleAlignment-Text_Rotation=Text orientation +Format-Error=Entered value is not in the correct format +Server-Stop=Stop +Preference-Setting_Grid=Grid Setting +ReportServerP-Add_Printer=Add printer +FR-Designer-Plugin_Active=Enable +Utils-File_name=File name +NOT_NULL_Des=NOT NULL +Right_Border_Line=Right Border +EditRC-Entire_column=Entire column(C) +PageSetup-Top_to_bottom=Down, then over +Click-Get_Default_URL=Click To Get Default URL +StyleAlignment-Wrap_Text=Word wrap +Remove_All_Button=Remove all buttons +FR-Designer_Component_Interval=Component Interval +ReportColumns-Columns_vertically=Fixed columns per line +ReportGUI-Print_Background=Print/export background +Export-CSV=CSV +M_Edit-Paste=Paste +FR-Designer-Basic_Restart_Designer=Restart designer +ReportServerP-PDF2-INFO=Only used in LINUX/UNIX when Chinese font is not installed +FormulaD-Check_Valid=Validity Checks +server_disconnected=server disconnected +ParameterD-Parameter_name_cannot_be_null=Parameter name cannot be empty +FR-Designer-Plugin_Version_Is_Lower_Than_Current=The version of plugin update package is lower than the current +RWA-NotChange_Unmodified=No modify, no update +User_Information=User Information +Custom_styles_lost=Custom Style is Missing +PageSetup-Margin=Margin +M-New_FormBook=New Form +Widget-TreeNode=Tree node button +Form-Url=URL +Utils-Beyond_the_left_side_of_Border=Beyond left border +Float_Element_Name=Float Element Name +Purple=Purple +DashBoard-Potence=Permissions +M-Close_Template=Close Template(C) +paper=Page +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 "\ +FR-Action_Copy=Copy +Compile_Success=Compile Successfully +BackgroundTexture-RecycledPaper=Recycled Paper +StyleAlignment-Single_Line=Single Line +Utils-Move_Down=Move Down +Please_Set_Repeat_First=Please set duplicate title row and column first +Writer-ShortCuts_Setting=Filling Shortcut key setting +Verify-Data_Verify=Data validation +FR-mobile_analysis_style=analysis style +Confirm-Delete-File=Whether to delete the selected file +PageSetup-Header=Header +JavaScrit-Asynch=Asyn +ReportServerP-Toolbar=Toolbar +Utils-Top_to_Bottom=Portrait +Platform=Platform +FR-Designer-FRFont_Underline=Underline +Show_in_Containing_Folder=Open the folders where it stored in +BackgroundTexture-WaterDroplets=Water Drop +FR-Designer-Dependence_Install_Failed=install failed +Layout-Padding=Padding +roles_already_authority_edited=Configured role +WidgetDisplyPosition=Control disply position +SpecifiedG-Force_Group=Mandatory Group +FormulaD-Formula_Definition=Formula Definition +I-xyScatterStyle_Marker=Scatter +Hour=Hour +ColorMatch=Color +M_Edit-Order=Re-order +BackgroundTexture-Bouquet=Bouquet +Verify-Error_Information=Validate Error Information +LayerData=Underlying Data +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 +Set_Column_Title_Start=Set Duplicate Title Columns +Fri=Fri +M_Report-Report_Parameter=Report Parameter +REPORTLETS=Parameter of access path to multi-templates +WLayout-Card-ToolTip=Card layout, you can add multiple components in it. +M-Popup_ChartType=Chart Type +Please-Wait=Please Wait +FR-Designer-Form-ToolBar_Widget=Control +Widget-Array=Array +FieldBinding=Bound Field +Top_Bottom_Border_Line=Top and bottom border +M-Others=Others... +Hyperlink-Link_Opened_in=Link Opened in +FR-Utils_WorkBook=WorkBook +M_Insert-Float=Float Element +Out_Thick_Border_Line=Thick Border +FR-App-File_Lookup_range=Search range +ReportColumns-Columns_to=Split To +Transparent=Transparent +Parameter-Integer=Integer +PDF-Print_Setting=PDF Print Setting +Server-Embedded_Server=Built-in server +M_Server-Server_Config_Manager=Server Configuration Manager +FR-Utils-Would_you_like_to_cover_the_current_file=Would you like to override the current file +CellWrite-InsertRow_COPY=Original +Edit_String_To_Formula=Edit String To Formula +Edit-Column_Count=Number of columns +Father=Father +ReportColumns-Columns_after=Over +FR-Designer_Undo=Undo +DBCP_MIN_IDLE=Min Idle Connections +M-Data_Analysis_Settings=Data Analysis Settings +M-Form_Preview=Form Preview +Form-Basic_Properties=Basic Property +quote=quote +Thu=Thu +Collect-Collect_User_Information=Collect User information +Layer-Build=Layered Build +FR-Designer-FRFont_Line_Style=LineType +BackgroundTexture-BrownMarble=Brown Marble +PageSetup-Page_Setup=Page Setting +Form-Semicolon=Semicolon +ECP_re_input=Password Error, please re-enter +ExpandD-Sort_After_Expand=After Extension +FR-Designer-Dependence_Install_Succeed=install succeed +Env-Configure_Workspace=Configure working directory +feedback_info=We welcome your comments and suggestions, please fill out the information as detailed as possible, we will contact you soon +Ratio=Ratio +DBCP_TEST_ON_BORROW=Test before Getting Connections +FR-Designer_layerIndex= +WEB-Write_Setting=Filling Settings +M-New_WorkBook=New WorkBook +FR-Designer-Plugin_Has_Been_Actived=Plugin is now active, restart the designer and sever to enable it and the sever need to be manually restarted +Datasource-Maximum_Number_of_Preview_Rows=Maximum Number of Preview Rows +ExpandD-Cell_Expand_Attributes=Extension Attributes +Select_the_repeated_row_and_column=Select rows and columns need to duplicate +FormulaD-Date_&_Time=Date and Time Function +Max-Mem-Row-Count=Cache to disk when records more than +BorderLayout-South=South +Export-Text=Text(tab delimited) +JavaScript-Synch=Synch +FR-App-All_Warning=Alert +M_Edit-Send_Backward=Send to Backward +Form-Layout=Layout +FR-Designer-Plugin_Shop_Need_Update=Plugin store a new version, whether to update? +FR-Designer_WorkBook=WorkBook +UpBarBorderStyleAndColor=UpBar Border Style And Color +GridLayout=Grid Layout +Utils-Default_Value=Default Value +Widget-Comb_Widget_Config=Combination control +Import-Excel2007_Source=Excel2007 Source Files +Y-Coordinate=Vertical Coordinate +FR-Base_SimSun_Not_Found=Cannot find the song typeface, please set the system default language as the designer typeface +FR-Designer_Seriously=Seriously +Upload=Upload +Form-Widget_Property_Table=Attribute Table +Des-Merger_Cell=The selected area contains multiple data, if you merge them, only the data at the upper left corner will be reserved. +FR-Designer-Basic_Copy_Build_NO=Double click to copy build NO. +FR-Base_TurnOn=Turn On +FR-Base_Rows=Row +Form-Remove_Repeat=Remove duplicates +Yes=Yes +Datasource-JNDI_Name=JNDI Name +Utils-Delete_Column=Delete Column +HF-Delete_it=Delete it +JavaScript-Dynamic_Parameters=Dynamic Parameters +px=px +FR-App-Report_Template=Report Template +Verify-Message=Error Message +Plan=Plan +Vertical-Split_Layout=Vertical Split Layout +ParameterD-Delay_Playing=Display Nothing Before Query +TurnOff=TurnOff +FR-Please_Rename=Please Rename +Select_Data_Set=Select Data Set +Name_has_Colon=Name\: +ReportColumns-Columns_horizontally=Fixed lines per column +FR-Base_Yes=Yes +ReportColumns-Repeat_Row=Copy row sequence +Print_Setting=Print Setting +Registration-User_Name=User Name +Datasource-User_Defined=Custom +FR-Designer-Plugin_DownLoadMessage=Plugin need dependence support,need to install ({R1} m)? +Delay=Delay +FR-Designer-All_MSBold=MS YaHei +Utils-Now_create_connection=Creating data connection +FR-Template-Path_chooseRightPath=Please choose a right path +FR-Remote_Re_Connect_to_Server=The server is down, whether to reconnect it +Nation=Country +DBCP_MAX_WAIT=Max wait time +FR-App-Template_Form=Form +Address=Address +Sub_Report=Sub Report +FR-Import-Export_Word=Word +FR-Server_Version_Tip=The version of the server you are connecting is older than the Designer, continue to connect, some attributes you are editing may not be saved. Please conform the versions of FineReport Designer and the deployment server are consistent. +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 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 +Datasource-Context=Context +CellWrite-Page_After_Column=After Column +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 \ +StyleAlignment-Horizontal=Horizontal +HyperLink_Must_Alone_Reset=Multiple hyperlink +ExpandD-Expand_Direction=Extension Direction +Include=Include +Export-Excel-Page=Page Break +FR-Designer-Min_Height=Min-Height +Filed=Field +ReportServerP-Import_Css=Reference Css +M_Insert-Formula=Insert Formula +FR-Designer_Auto-Build=Automated Build +FRFont-Foreground=Foreground +Bubble-Width=Bubble Width +Form-Hierarchy_Tree=Hierarchy Tree +WLayout-Border-LayoutContainer=You have the central and northern border layout containers.You can adjust the height of the northern one +Preference-JDK_Home=JDK Home +Utils-Insert_Column=Insert Column +FR-Designer_ToolBar_Top=Top ToolBar +BindColumn-The_Conditions_of_FatherCell=The Conditions of Parent Cell +Links=Links +M_Report-Report_Header=Report Header +Sub_Report_Description=The sub-report should exist in the runtime environment of its parent, and they can not be the same template +T_Insert-Float=Insert Float Element +BackgroundTexture-FishFossil=Fish Fossil +My_Computer=My Computer +FORMLET=Path parameter when accessing different forms +HF-Undefined=Undefined +Widget-User_Defined_Widget_Config=Predefined control +Report-Write_Attributes_Group_Warning=Number of cells in each field in all cell group must be the same +Form-Single_quote=Single Quote +Compile_Success_And_Then_Save=Compile Successfully And Then Save +FR-Designer_Layout-Padding=Padding +Layout_Container=Layout Container +Admin=Admin +Form-EC_toolbar=Report toolbar +FR-App-All_Auto=Automatic +Utils-Available_Columns=Available Columns +Form-Change_Widget_Name_Discription=Input New Control Name +FR-Module_Designer=Designer module +FR-Import-Export_Text=Text(tab delimited) +Values-Editor=Values Editor +FR-Designer_Yes=Yes +ExpandD-Expandable=Extensibility +Tree-Return_Full_Path=Return full hierarchical path +FRFont-bolditalic=BoldItalic +FR-Base_StyleFormat_Sample=Sample +Area_Value=Area Value +FR-Designer-Plugin_Disable=Disable +Utils-Are_you_sure_to_remove_the_selected_item=Are you sure to remove the selected item +Face_Write=Filling +Poly-Report_Block=Report type aggregation block +Vgap=Vertical gap +FR-Designer_HyperLink_Must_Alone_Reset=HyperLink_Must_Alone_Reset +DS-Class=Class +FR-Hyperlink_Please_Select_Reportlet=Please select webreport +FS_Report_Type=Report Type +HF-New_Line=Line breaks +Privilege=Permission +Export-Offline-Html=Output offline HTML report +FR-Designer_open-new-form-tip=The form is created by the designer older than 711 vision, it cannot be opened. Please use the corresponding designer. +FR-Designer-Widget-Style_Frame_Style=Frame Style +Present-No_Present=Cancel Present Settings +FR-Designer_Form-Password=Password +X_Axis=X Axis +FR-mobile_html_analysis=Html5 analysis +M_Edit-Bring_to_Front=Bring to Top +Null_Value_Show=Show if null +Datasource-JNDI_DES=Note\: .jar files containing INITIAL_CONTEXT_FACTORY need to be copied into the installation directory in the /lib directory +PrintP-Print_Preview=Print Preview +Form-Hierarchy_Tree_Last=Last +Has_been_gone=\ Has been lost,whether to add the style +RWA-Add_Field=Add Field +newNode=add Node +PageSetup-Shrink_to_fit_content=Automatically adjust according to cell content +FR-Designer_Date=Date +Column_Multiple=Line Numbers +FR-App-All_File=File +Sort-Descending=Descending +FR-Designer-Plugin_Delete=Delete +Above=Above Version +Utils-The-Chart=Chart +FRFont-plain=General +Calculating=Calculating +Form-Object=Form Object\: +May=May +FR-Designer_Plugin_Normal_Update=Update +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 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. +Get_Lock=Lock +HF-Edit_Footer=Edit page footer +Datasource-New_Charset=New Code +Preference-Custom=Custom +BackgroundTexture-Newsprint=Newsprint +ConditionB-Add_bracket=Add Parentheses +Datasource-Connection_successfully=Connection successfully +Function-The_class_must_implement_the_interface=The class must implement the interface +FR-Designer_ChartF-Transparency=Transparent +Crimson=Crimson +FR-Hyperlink_Dialog=Dialog +FR-Designer_Covered_All=Override All +Hyperlink-New_Window=New Window +Style_Name=Format Name +CSS_warning= \ Relative report project directory like WebReport, if reference a css files named test.css
 in WebReport\\css, then the relative path is css/test.css +FR-Base_Column=Column +Three_Rows_Of_Two_Grid=A grid with 3 rows and 2 columns +DBCP_VALIDATION_QUERY=SQL Validation Query +M_Edit-Clear_Formats=Format +Parameter_Setting=Parameter Setting +Related=Linkage +BorderLayout-Constraints=Placement +Write_Preview=Filling Preview +PageSetup-Page_Order=Print Order +Verify-Verify_Formula=Validation formula +State=State +FR-Designer-Widget-Style_Body_Background=Body Background +FR-App-Privilege_No=No Permission +Please_Drag_ParaPane= +Come_True=Implement +ISEMPTY=Is null +Background-Texture=Texture +FR-Designer_Verify-Message=Wrong Message +Locked=(Locked) +Utils-Design-Action_Cancel=Cancel +Image-Titled=Tile +Gradient-Direction=Gradient Direction +Green=Green +Report_Engine=Report Engine +Return-String=Return String +Margin=Margin +Pitch_Percentage=Space percentage +FR-Base_TurnOff=Turn Off +Utils-has_been_existed=Already exists +HF-Insert_Formula=Insert Formula +Utils-Exit_Designer=Exit Designer +Formula_Dictionary_Display=Every value($$$) in the actual values above, it's display value is +PageSetup-Left_to_right=Over, then down +Utils-Import_Excel_Data=Import Excel Data +M-Save=Save +redo=redo +Status=Status +Draw=Draw +FR-Designer_Message=Message +Records=Records +FR-Designer_ComboBox=Drop-down Boxes +Driver=Driver +Template_Parameters=Template Parameters +Form-Remove_Repeat_Data=Remove Repeated Data +ECP_decode=Report Decryption +Area_Name=Area Name +Others=Others +Merge=Merge +BackgroundTexture-Parchment=Parchment +BindColumn-Bottom_N=Last N +Frame=Frame +Bottom_Border_Line=Bottom Border +Muiti_In=Multi-level Drill-down +FR-Designer-Dependence_Install_Online=install online +Use_Default_ToolBar=Use default toolbar +M_Server-Platform_Manager=Platform Management +PageSetup-inches=inches +Form-Widget_Property=Attribute name +FR-Layout_Padding=Padding +Schema=Theme +Server_Path=Host location +Condition_Display=Condition Display +FR-Server-Design_template_unopened=Can't open the template +Function-Function_Class_Name=Function Class Name +Schedule-Template=Template name +Tree_Data_Field=Tree Data Field +Border-Style-Normal=Rectangular Border +Top_And_Double_Bottom_Border_Line=Top and bottom double border +FR-Server_Embedded_Server_Start=Built-in server-Open +FR-Designer-Basic_Restart_Designer_Later=Restart later +StyleAlignment-Top=Top +ReportServerP-First=First +Not_Exist=Not Exist +FR-Remote_File_is_Locked=Someone else is editing the report, please try later +Apply=Apply +Sytle-Indentation=Indentation +Parameter-Float=Single-precision +HF-Center_Section=Center Section +Form-Double_quotes=Double Quote +M_File-Export-Word=Word +M_File-Export-Text=Text File(tab delimited) +PageSetup-First_Page_Number=Starting page number +Execute=Execute +Task=Task +Custom_Button_Type_Submit=Submit +FR-Designer-Widget_Settings=Control Setting +IS_Need_Password=Need Password +PageSetup-Horizontally=Horizontally +No_Editor_Property_Definition=No Editor Property Definition +Env-Remote_Server=Remote Server +FR-Utils_Background=BG +FR-Designer-Plugin_Warning=Alert +Server-version-info=The current template file is designed by higher vision designer. Open it may result in losing original attributes or error. Please upgrade your designer. +CellWrite-Page_After_Row=After Row +HF-Right_Section=Right Section +PageSetup-Title_Start_Row=Duplicate Title Rows +From=From +Preference-Grid_Line_Color=GridLine Color +RowTo=Row To +FR-Designer_ReportColumns-Repeat_Column=Copy column sequence +M_Server-Function_Manager=Function Manager +KeyWord=KeyWord +DS-Multi_Dimensional_Database=Multi-dimensional Database +BiasD-Slope_Line=Slope Line +Tue=Tue +ReportServerP-Last=Last +FR-Base_Columns=Columns +SpecifiedG-Leave_in_their_own_groups=Leave in their own groups +LOG-Please_Wait=Please Waiting +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 Openned +FR-Designer-Dependence= +ECP_error_pwd=Password Error +REPORTLET=Parameter of access path to template +RWA-Column_Offset=Column Offset +Forecast=Forecast +Light_Orange=Light orange +StyleAlignment-Vertical=Vert +Form-List=List +ParameterD-Show_Parameter_Window=Show Parameter Panel +FR-Designer_Set_Submit_Event=Set Submit Event +Value_Percent=Value Percentage +DBCP_MIN_EVICTABLE_IDLE_TIMEMILLIS=Keep Min Idle Time Value +Function-The_class_must_be_located_in=The class must be located in +FR-Action_Sort=Sort +DataFunction-Average=Average +FR-Designer_Show_in_Containing_Folder=Open the folders where it stored in +M_File-Export-Excel=Excel +DataFunction-Max=Maximum +FR-Designer_Form-Widget_Name=Control Name +FS_End_Date=End Date +Export-Excel-Simple=Original +ColumnTo=Column TO +SpecifiedG-Discard_all_others=Discard all others +DS-TableData=Data Set +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\ +Component_Interval=Components Interval +Cover_None=Override None +Datasource-From_Database=DB table +Folder=Directory +Form-Allow_Edit=Allow Edit +M_Edit-Clear=Clear +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= +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 +FR-Designer-Dependence_Connect_Server_Error=connect error +High=High +HJS-Send_Failed=Send Failed +HJS-Message=Message +File-Allow_Upload_Files=Uploaded files +FR-Designer-Form-ToolBar_Chart=Chart +Thick_Bottom_Border_Line=Thick Bottom Border +FR-Action_Remove=Delete +FRFont-Style=Style +Select_DataColumn=Select Data Column +StartValue=Start Value +SINGLE_FILE_UPLOAD=Only support single file upload +BackgroundTexture-Cork=Cork +M_Format-Data_Map=Data Dictionary +FR-mobile_native_analysis=native analysis +HighLight=High Light +FR-Designer_Dropdown-More-Preview= +local=local +FR-Designer_Gradation=Gradation +PageSetup-Finis_Start_Column=Duplicate Last Column +Env-Invalid_User_and_Password=Invalid User Or Password +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=Submmit By Custom Class +M_Insert-Slope_Line=Insert Slope Line +FR-Designer-Plugin_Plugin_Description=Description +ExpandD-Not_Expand=No extend +Utils-Bottom_to_Top=From the bottom up +Collect-Click\!_Get_user_information_code=Get Activation Code +FR-Already_exist=Current environment is already exist\: +Send=Send +M_Edit-Clear_All=All +Brown_Orange=Brown Orange +PageSetup-Portrait=Portrait +FR-Designer_Form-RadioGroup=Radio Button Group +FR-Utils-App_AllFiles=All Files +Popup=Popup +Server_Charset=Server code +CellWrite-Repeat_Content_When_Paging=Repeat Content in New Page +Utils-No_Pagination=No Page Break +Form-NullLayout=Absolute positioning +ConditionB-Remove_bracket=Remove Parentheses +email=Email +Minute=Minute +FR-Designer-Plugin_Update=Plugins update +alraedy_close=Already closed +ComboCheckBox-End_Symbol=Terminator +DataColumn=Data Column +Form-Password=Password +FR-Background_Image_Adjust=Adjust Image +Export-Excel-PageToSheet=One Page Per Sheet +Edit-Row_Count=Number of rows +DS-Report_TableData=Report Data Set +Sche-Hour=Hour +Group_Count=Group Count +EndValue=End Value +FR-Designer_Sytle-Indentation=Indentation +DownBarBorderStyleAndColor=Downcolumn Border Style And Color +World=World +FR-Designer-Basic_Cancel=Cancel +Finally=Finally +Low=Low +Please_Input_The_Key=Please Input the key the map use +Smart=Smart +Preference-Predefined=Predefined +Current_custom_global=Custom Global Styles of Current Report +FR-Designer-Plugin_Shop_Need_Install=You are not add-ons store of resources, whether to download? +WEB-Pagination_Setting=Page Break Preview +RCodeDrawPix=PIX +FR-Designer-Widget-Style_Alpha=Opacity +BorderLayout-North=North +HJS-Current_Page=Current Page +Compile=Compile +Show_Blank_Row=Supplement blank line +TableData_Dynamic_Parameter_Setting=Dynamic parameter injections +FR-Background_Image_Default=Default Image +BackgroundTexture-WhiteMarble=White Marble +DataFunction-Sum=Sum +Collect-The_user_information_code_is_invalid=The activation code is invalid, please visit the website to get a new one +Preference-Locale=Internationalization +M_File-Export-PDF=PDF +BiasD-From-lower_left_to_upper_right=lower left-upper right +Border-Style=Border Style +Sort=Sort +Image-Image_Layout=Image Layout +Panel=Panel +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\ +Bubble-Series_Name=Series Name +M-New_Multi_Report=New Aggregate Report +BackgroundTexture-PinkTissuePaper=Pink Sandpaper +Preference-Support_Default_Parent_Calculate=Default Parent Grid Calculate +Show_Blank_Column=Supplement blank column +BaiduMap=Baidu Map +Report-Web_Attributes=Web Attributes +FR-Designer_StyleAlignment-Wrap_Text=Word wrap +Need=Need +Parameter-Double=Double-precision +Config_Servlet=Config Remote Server +Form-Comma=Comma +Verify=Validation +PageSetup-Landscape=Landscape +Weeks=Weeks +FR-Designer-Widget-Style_Title_Background=Title Background +Preference-Pagination_Line_Color=Pagination Line Color +Test_URL=Test URL +Fill_blank_Data=Supplement blank data +ReportServerP-The_name_of_printer_cannot_be_null=Printer name cannot be empty +FR-Designer-Basic_Copy_Activation_Key=Double click to copy key to clipboard +Continuum=Proximal continuum +BackgroundTexture-MediumWood=Dark Wood +Datasource-Column_Index=Column Ordinal +Function-Function_File=Function File +Form-Component_Bounds=Component Bounds +Utils-Submit=Submit +Conditions_formula=Condition Formula +M_Insert-Image=Insert Image +FR-Designer-Plugin_Will_Be_Delete=Plugin will be deleted, restart the designer and sever to enable it and the sever need to be manually restarted +FormulaD-Functions=Functions +Mobile_Terminal=Mobile terminal +CheckBox=CheckBox +FR-Designer-Plugin_Install=Install +Sun=Sun +FR-Designer_ToolBar_Bottom=Bottom ToolBar +Widget-Width=Control width +Series_Name=Series name +Set_Row_Title_Start=Set Duplicate Title Rows +HF-Default_Page=Default Page +Env_Des=Username and password must be correspond with sign-on environment, if permissions are enabled +Widget-User_Defined=Predefine +Url_location=Absolute path +Disk_File=Disk File +Inside=Inside +FR-Designer_filedChosen= +ServerM-Predefined_Styles=Predefined Styles +is_need_word_adjust=Word Auto Adjust +Background-Null=No Background +PageSetup-Vertically=Vertically center +FR-Designer_Root=Root node +FR-Designer_Form-TextArea=Text field +ReportServerP-Import_JavaScript=Reference JavaScript +Form-TableTree=Table Tree +Opened=Opened +M_Edit-Delete=Delete +Widget-Form_Widget_Container=Form Container +BindColumn-Summary=Summary +Sche-Second=Second +Server-Open_Service_Manager=Open Service Manager +FRFont-Effects=Special Effects +OtherGroup_Name=The name of other group +Specify=Specify +Highlight-Click_to_Choose_Property_To_Modify=Click to Choose Property to Modify +triggered=triggered +Double_Bottom_BorderLine=Bottom Double Border +M_Insert-Sub_Report=Insert SubReport +Unit_Ten=Ten +Polybolck=Aggregation block +Select_sort_order=Select sort order +HJS-Mail_to=To +StyleAlignment-Left=Left +Two_Rows_Of_Two_Grid=A grid with 2 rows and 2 columns +FR-Designer-Form-Please_Drag_ParaPane=Drag to parameter panel +Milliseconds=Milliseconds +DataFunction-None=None +Delivery=Delivery +ColumnSpan=Column Span +StyleAlignment-Bottom=Bottom +Read_failure=Load failed. Source file may be corrupted +Verify-Verify=Data validation +FR-Designer-Widget-Style_Title_Format=Title Format +FR-Designer_Edit_String_To_Formula=Edit String To Formula +FR-Base_UnSignIn=\ Not Logged In +Every=Every +CellWrite-Preview_Cell_Content=Content of Cell +FormulaD-Data_Fields=Data Items FR-Designer_Role=Role FR-Designer_Permissions=Permissions FR-Designer_Form_Button=Button -FR-Designer_WF_Name=Name \ No newline at end of file +FR-Designer_WF_Name=Name diff --git a/designer_base/src/com/fr/design/locale/designer_ja_JP.properties b/designer_base/src/com/fr/design/locale/designer_ja_JP.properties index 99070465e4..910ad8ae5e 100644 --- a/designer_base/src/com/fr/design/locale/designer_ja_JP.properties +++ b/designer_base/src/com/fr/design/locale/designer_ja_JP.properties @@ -521,7 +521,6 @@ FR-Designer_PageSetup_Page=\u30DA\u30FC\u30B8 FR-Designer_Custom_Job_Description=\u8A18\u8FF0 FR-Designer_Property=\u5C5E\u6027 FR-Designer_ClassName=\u985E\u540D - FR-Designer_Polyblock_Edit=\u30A2\u30B0\u30EA\u30B2\u30FC\u30B7\u30E7\u30F3\u30D6\u30ED\u30C3\u30AF\u7DE8\u96C6 FR-Designer_Function_Description_Area_Text=\u3053\u306E\u30AF\u30E9\u30B9\u306F\u7D99\u627F\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059"com.fr.script.AbstractFunction"\u3002\u3092\u7D99\u627F\u3059\u3079\u304D\u3067\u3059\u3002\u30B3\u30F3\u30D1\u30A4\u30EB\u5F8C\u306E\u985E\u30D5\u30A1\u30A4\u30EB\u3092\nJ2EE\u30B5\u30FC\u30D0\u30FC "{R1}" \u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u3002\u306B\u30B3\u30D4\u30FC\u3057\u3066\u3001class\u306B\u5BFE\u5FDC\u3059\u308Bjava\u30D5\u30A1\u30A4\u30EB\u3082\u5F53\u76EE\u6B21\u306B\u7F6E\u3044\u3066\u304F\u3060\u3055\u3044\u3002\n\u4F8B\u3048\u3070\uFF1A{R2} FR-Designer_PageSetup_Horizontal=\u6A2A\u65B9\u5411 @@ -597,3 +596,1394 @@ FR-Designer_Delete_Template=\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u3092\u52 FR-Designer_Mobile_Report_Analysis_Annotation=\u8AAC\u660E\:\u8A72\u5F53\u5C5E\u6027\u3088\u308A\u3001\u30C0\u30C3\u30B7\u30E5\u30DC\u30FC\u30C9\u306E\u30A2\u30D7\u30EA\u3067\u306E\u89E3\u6790\u30E2\u30FC\u30C9\u3092\u8A2D\u5B9A\u3067\u304D\u307E\u3059\u3001\u9801\u5206\u3051\u30D7\u30EC\u30D3\u30E5\u30FC\u3060\u3051\u3092\u652F\u6301\u3001\u66F8\u304D\u8FBC\u307F\u306B\u8A2D\u5B9A\u3059\u308B\u6642\u7121\u52B9\u306B\u306A\u308A\u307E\u3059\u3002 FR-Designer_DoubleLayer_Report=\u4E8C\u968E\u30BF\u30A4\u30C8\u30EB FR-Designer_Validate=\u691C\u8A3C +CellWrite-InsertRow_NULL=Null\u5024 +DashBoard-ChartFloat=\u30B0\u30E9\u30D5 +contact_info=\u304A\u554F\u3044\u5408\u308F\u305B\u60C5\u5831\uFF08\u4EFB\u610F\uFF09 +Page_Setup=\u30DA\u30FC\u30B8\u8A2D\u5B9A +CellWrite-Print_Export=\u30A8\u30AF\u30B9\u30DD\u30FC\u30C8\u3092\u5370\u5237 +Cannot_Get_Date=\u65E5\u6642\u3092\u53D6\u5F97\u3067\u304D\u307E\u305B\u3093 +FR-Designer_Modify=\u6539\u6B63 +M-Write_Preview=\u5831\u544A\u30D7\u30EC\u30D3\u30E5\u30FC +FR-Base_RWA-Key=\u30E1\u30A4\u30F3\u30AD\u30FC +China=\u4E2D\u56FD +Set_Legend_Sytle=\u51E1\u4F8B\u66F8\u5F0F\u3092\u8A2D\u5B9A +FR-Designer_Number=\u6570\u5B57 +FR-Designer-Widget-Style_Common=\u666E\u901A +M-Save_As=\u540D\u524D\u3092\u3064\u3051\u3066\u4FDD\u5B58 +Following_parameters_are_not_generated=\u4EE5\u4E0B\u306E\u30D1\u30E9\u30E1\u30FC\u30BF\u306F\u751F\u6210\u3055\u308C\u307E\u305B\u3093 +FR-Designer-Basic_Activation_Key_Copy_OK=\u30AF\u30EA\u30C3\u30D7\u30DC\u30FC\u30C9\u306B\u30B3\u30D4\u30FC\u3057\u307E\u3057\u305F +Utils-Current_Sheet=\u30AB\u30EC\u30F3\u30C8\u30B7\u30FC\u30C8 +ConditionB-is_less_than=\u3088\u308A\u5C0F\u3055\u3044 +BorderLayout-West=\u897F\u90E8\u306E +AnalysisLine=\u5206\u6790\u30E9\u30A4\u30F3 +Layer_Report_Warnning_info=\u30E9\u30A4\u30F3\u30A8\u30F3\u30B8\u30F3\u306F\u5927\u30C7\u30FC\u30BF\u91CF\u306E\u72B6\u6CC1\u4E0B\u3067\u9069\u7528\u3055\u308C\u307E\u3059\u3002
+Tree-Width=\u5E45 +alert_word=\u884C\u306E\u9AD8\u3055\u3092\u56FA\u5B9A\u305B\u305A\u5C0E\u51FA\u3092\u9078\u629E\u3057\u305F\u6B73\u3001\u5C0E\u51FA\u3057\u305Fword\u306E\u7DE8\u96C6\u306F\u3001\u30BB +PageSetup-Paper_Size=\u7D19\u30B5\u30A4\u30BA +M-Page_Setup=\u30DA\u30FC\u30B8\u306E\u8A2D\u5B9A +DashBoard-FormBook=\u8868 +X-Coordinate=\u6A2A\u5EA7\u6A19 +Style-Line_Spacing=\u884C\u9593\u9694\u8DDD\u96E2 +FR-Designer_Plugin_Should_Update_Title=Warning +Server-Define_Data_Connection=\u30C7\u30FC\u30BF\u63A5\u7D9A\u5B9A\u7FA9 +BarInside=\u67F1\u5B50\u5185\u4FA7 +Border-Color=\u67A0\u7DDA\u8272 +NotAllow=\u975E\u5408\u6CD5 +Utils-File_type=\u30D5\u30A1\u30A4\u30EB\u30BF\u30A4\u30D7 +FR-Designer-Plugin_Install_From_Local=\u30ED\u30FC\u30AB\u30EB\u30D5\u30A1\u30A4\u30EB\u304B\u3089\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u3059\u308B +Summary_Method=\u53D6\u308A\u307E\u3068\u3081\u65B9\u6CD5 +Select_Specified_Grouping=\u30AB\u30B9\u30BF\u30DE\u30A4\u30BA\u30B0\u30EB\u30FC\u30D7\u5206\u3051\u3092\u9078\u629E +HF-Number_of_Page=\u7DCF\u30DA\u30FC\u30B8\u6570 +FR-Designer-Tree_Height=\u9AD8\u3055 +Owner=\u30AA\u30FC\u30CA\u30FC +Home=\u30E1\u30A4\u30F3\u30DA\u30FC\u30B8 +FR-Server_Embedded_Server_Stop=\u5185\u8535\u30B5\u30FC\u30D0\u30FC-\u4E00\u6642\u505C\u6B62 +FR-Designer-Plugin_Detecting_Update=\u66F4\u65B0\u3092\u30C1\u30A7\u30C3\u30AF\u3057\u3066\u3044\u307E\u3059 +HF-Whether_to_define_the_selected_type=\u9078\u629E\u3055\u308C\u305F\u30BF\u30A4\u30D7\u3092\u5B9A\u7FA9\u3057\u307E\u3059\u304B +StyleAlignment-Right=\u53F3\u8A70\u3081 +FR-Designer_Alignment-Style=\u30A2\u30E9\u30A4\u30F3\u30E1\u30F3\u30C8 +PageSetup-Title_Start_Column=\u91CD\u8907\u3059\u308B\u6A19\u984C\u5217 +Tree-Mutiple_Selection_Or_Not=\u8907\u6570\u9078\u629E +FR-Designer-Plugin_Search=\u691C\u7D22 +Choose_Role=\u6A29\u9650\u30B3\u30F3\u30C8\u30ED\u30FC\u30EB +Append_Delete_Row_Message=\u6CE8\u610F\uFF01\u6307\u5B9A\u3055\u308C\u305F\u30BB\u30EB\u306F\u3001\u62E1\u5F35\u5C5E\u6027\u3092\u8A2D\u5B9A\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059 +Form-ComboBox=\u30B3\u30F3\u30DC\u30DC\u30C3\u30AF\u30B9 +PageSetup-Footer=\u30DA\u30FC\u30B8\u30D5\u30C3\u30BF\u30FC +Sorting=\u30BD\u30FC\u30C6\u30A3\u30F3\u30B0 +DBCP_TEST_WHILE_IDLE=\u30A2\u30A4\u30C9\u30EB\u30EA\u30B5\u30A4\u30AF\u30EB\u30E6\u30CB\u30C3\u30C8\u691C\u67FB +DS-Embedded_TableData=\u5185\u8535\u30C7\u30FC\u30BF\u30BB\u30C3\u30C8 +FR-Designer_No-Privilege=\u30A2\u30AF\u30BB\u30B9\u304C\u62D2\u5426\u3055\u308C\u307E\u3057\u305F +FRFont-Subscript=\u4E0B\u4ED8\u304D +Background_Settings=\u80CC\u666F\u8A2D\u5B9A +FormulaD-Invalid_Formula=\u7121\u52B9\u306A\u516C\u5F0F +FR-Base_Margin=\u30DE\u30FC\u30B8\u30F3 +FR-Designer-Plugin_Shop_Installed=\u30D7\u30E9\u30B0\u30A4\u30F3\u30B7\u30E7\u30C3\u30D7\u304C\u3059\u3050\u306B\u958B\u59CB\u3059\u308B\u304B\u3069\u3046\u304B\u3001\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u3055\u308C\u3066\u3044\u307E\u3059\u304B\uFF1F +M_Edit-Send_to_Back=\u6700\u80CC\u9762\u3078\u79FB\u52D5(K) +Email-Can_Preview_Report_Content=\u30C6\u30AD\u30B9\u30C8\u30D7\u30EC\u30D3\u30E5\u30FC\u30EC\u30DD\u30FC\u30C8\u306E\u5185\u5BB9 +FR-Designer-FRFont_Italic=\u50BE\u659C +CellWrite-Print_Background=\u30BB\u30EB\u80CC\u666F\u3092\u5370\u5237\u3059\u308B +Wizard=\u30A6\u30A3\u30B6\u30FC\u30C9 +Preference-Is_Drag_Permited=\u30C9\u30E9\u30C3\u30B0\u3092\u30B5\u30DD\u30FC\u30C8\u3059\u308B +FR-Designer_Release_Lock=\u30A2\u30F3\u30ED\u30C3\u30AF +Form-Delimiter=\u533A\u5207\u308A\u7B26 +wrong=\u9593\u9055\u3063\u305F +FR-Menu-Server_Chart_PreStyle=\u30B0\u30E9\u30D5\u30D7\u30EC\u5B9A\u7FA9\u914D\u8272 +Form-Button=\u30DC\u30BF\u30F3 +FormulaD-Valid_Formula=\u6709\u52B9\u306A\u516C\u5F0F +ParameterD-Parameter_Interface=\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC\u30A4\u30F3\u30BF\u30FC\u30D5\u30A7\u30FC\u30B9 +At_least_one_visual_worksheet=\u5C11\u306A\u304F\u3068\u3082\u4E00\u3064\u306E\u30D3\u30B8\u30E5\u30A2\u30EB\u30EF\u30FC\u30AF\u3092\u6301\u3063\u3066\u3044\u308B\u30EF\u30FC\u30AF\u30D6\u30C3\u30AF\u306B\u306F\u3001\u524A\u9664\u3057\u305F\u3044\u5834\u5408\u306F\u3001\u65B0\u3057\u3044\u30EF\u30FC\u30AF\u30B7\u30FC\u30C8\u3092\u633F\u5165\u3057\u3066\u304F\u3060\u3055\u3044 +Need_Min_Value=\u6700\u5C0F\u5024\u304C\u5FC5\u8981 +Allow_Blank=\u7A7A\u6B04\u3042\u308A +CellWrite-InsertRow_DEFAULT=\u30C7\u30D5\u30A9\u30EB\u30C8\u5024\u306F +Widget-Load_By_Complete=\u5B8C\u5168\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9 +FR-Designer-Basic_Only_Submit_Current_Sheet= +Sort-Sort_Order=\u30BD\u30FC\u30C8\u9806 +File-File_Size_Limit=\u30D5\u30A1\u30A4\u30EB\u30B5\u30A4\u30BA\u3092\u5236\u9650\u3059\u308B +PrintP-Print=\u5370\u5237(T) +FR-Designer-StyleAlignment_Center=\u4E2D\u592E\u63C3\u3048 +Preference-Setting_Colors=\u8272\u306E\u8A2D\u5B9A +Judge=\u88C1\u5224\u5B98 +Image-Adjust=\u9069\u5FDC +Collect-User_Information_DES=\u30A2\u30AF\u30C6\u30A3\u30D9\u30FC\u30C8\u30B3\u30FC\u30C9\u306F\u4F7F\u7528\u8005\u60C5\u5831\u306E\u53CE\u96C6\u306E\u305F\u3081\u3060\u3051\u306B\u7528\u3044\u3089\u308C\u307E\u3059\u3002\u4E0A\u306E\u300C\u30A2\u30AF\u30C6\u30A3\u30D9\u30FC\u30C8\u30B3\u30FC\u30C9\u53D6\u5F97\u300D\u3092\u30AF\u30EA\u30C3\u30AF\u3059\u308B\u3068\u3001\u65B0\u305F\u306A\u30A6\u30A3\u30F3\u30C9\u30A6\u304C\u73FE\u308C\u307E\u3059\u3002\u88FD\u54C1 +FR-Designer_Plugin_Normal_Update_From_Local=\u30ED\u30FC\u30AB\u30EB\u30D5\u30A1\u30A4\u30EB\u304B\u3089\u66F4\u65B0 +BackgroundTexture-Canvas=\u30AD\u30E3\u30F3\u30D0\u30B9 +BarOutSide=\u5916\u306E\u67F1 +Preview_ToolTips=\u30D7\u30EC\u30D3\u30E5\u30FC\u63D0\u793A +FRFont-Family=\u540D\u79F0 +FR-Lic_does_not_Support_Remote=\u73FE\u5728\u4F7F\u7528\u3057\u3066\u3044\u308Blic\u306F\u9060\u9694\u30C7\u30B6\u30A4\u30F3\u6A5F\u80FD\u306B\u30B5\u30DD\u30FC\u30C8\u3057\u3066\u3044\u307E\u305B +InterfaceStyle=\u30B9\u30BF\u30A4\u30EB +RWA-Key=\u4E3B\u30AD\u30FC +WF-Name=\u540D\u79F0 +RWA-Click_Cell_To_Edit_Value=\u30AF\u30EA\u30C3\u30AF\u3057\u3066\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u30BB\u30EB\u4FEE\u6B63\u5024 +Utils-Row_Height=\u884C\u306E\u9AD8\u3055 +ReportD-Excel_Export=\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u5C0E\u51FA\u5C5E\u6027 +Form-Please_Select_A_Kind_Of_Form_Container=\u4E00\u7A2E\u306E\u8868\u30B3\u30F3\u30C6\u30CA\u3092\u9078\u629E\u3057\u3066\u304F\u3060\u3055\u3044 +Column_Does_Not_Exsit=\u5217\u304C\u5B58\u5728\u3057\u307E\u305B\u3093 +M_Insert-Hyperlink=\u30CF\u30A4\u30D1\u30FC\u30EA\u30F3\u30AF +can_not_include_underline=_\u3092\u542B\u3081\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093 +FR-Designer-Plugin_Jar_Expired=\u65E7Jar\u30D1\u30C3\u30AF +FR-Background_Image_Extend=\u62E1\u5F35 +TopDownShade=\u30B0\u30E9\u30C7\u30FC\u30B7\u30E7\u30F3\u30C0\u30A6\u30F3 +FR-Base_Right=\u53F3 +DataBinding=\u30C7\u30FC\u30BF\u30D0\u30F3\u30C7\u30A3\u30F3\u30B0 +ConnectionPool_Attr=\u63A5\u7D9A\u30D7\u30FC\u30EB\u5C5E\u6027 +Connect_SQL_Cannot_Null=\u30C7\u30FC\u30BF\u63A5\u7D9A\u3068SQL\u30D1\u30CD\u30EB\u306F\u7A7A\u306B\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093 +DBCP_MAX_ACTIVE=\u6700\u5927\u30A2\u30AF\u30C6\u30A3\u30D6\u63A5\u7D9A\u6570 +M_Window-Preference=\u30AA\u30D7\u30B7\u30E7\u30F3 +ToolBar_Top=\u30D8\u30C3\u30C0\u30FC\u30C4\u30FC\u30EB\u30D0\u30FC +FR-Designer_Indent-Pixel=\u753B\u7D20 +FR-Designer_Unit_MM=\u30DF\u30EA\u30E1\u30FC\u30C8\u30EB +IDLE=\u30A2\u30A4\u30C9\u30EB +FRFont-Underline=\u4E0B\u7DDA +FR-Designer-Plugin_Read_Plugin_List_Error=\u30D7\u30E9\u30B0\u30A4\u30F3\u30EA\u30B9\u30C8\u306E\u8AAD\u307F\u53D6\u308A\u6642\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E +Type_Set=\u30BF\u30A4\u30D7\u8A2D\u5B9A +M_Format_A-Cell_Attributes=\u305D\u306E\u4ED6\u5C5E\u6027 +CellWrite-Show_As_Image=\u753B\u50CF\u3067\u5185\u5BB9\u3092\u8868\u793A +ShowAsDownload=\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9\u30EA\u30F3\u30AF\u3067\uFF12\u9032\u6CD5\u306E\u5185\u5BB9\u3092\u8868\u793A +Form-ComboCheckBox=\u30C1\u30A7\u30C3\u30AF\u30DC\u30C3\u30AF\u30B9 +BackgroundTexture-WovenMat=\u7E54\u7269 +BindColumn-Custom_Data_Appearance=\u30E6\u30FC\u30B6\u30FC\u5B9A\u7FA9\u306F\u8868\u793A\u3059\u308A\u307E\u3059 +Actived=\u6D3B\u52D5\u7684 +Env-Local_Directory=\u30ED\u30FC\u30AB\u30EB\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA +Form-Colon=\u30B3\u30ED\u30F3 +Preference-Vertical_Scroll_Bar_Visible=\u7E26\u30B9\u30AF\u30ED\u30FC\u30EB\u30D0\u30FC\u306F\u53EF\u8996 +Utils-Show_Cell_Value=\u30BB\u30EB\u5024\u3092\u8868\u793A +FR-Designer_ReportColumns-Repeat_Row=\u884C\u9806\u5E8F\u3092\u30B3\u30D4\u30FC +SpecifiedG-Specified_Group=\u30B0\u30EB\u30FC\u30D4\u30F3\u30B0\u306E\u30E6\u30FC\u30B6\u5B9A\u7FA9 +RWA-Smart_Add_Cells=\u30A4\u30F3\u30C6\u30EA\u30B8\u30A7\u30F3\u30C8\u8FFD\u52A0\u30BB\u30EB +HF-Left_Section=\u5DE6\u5074\u30BB\u30AF\u30B7\u30E7\u30F3 +M_Report-Report_Background=\u5E33\u7968\u80CC\u666F +Image-Extend=\u62E1\u5F35 +FS_BI=\u51B3\u7B56\u30D7\u30E9\u30C3\u30C8\u30D5\u30A9\u30FC\u30E0 +ToolBar_Bottom=\u30D5\u30C3\u30BF\u30FC\u30C4\u30FC\u30EB\u30D0\u30FC +Hgap=\u6C34\u5E73\u9593\u9699 +FR-Designer_Enter-New-FileName=\u65B0\u3057\u3044\u30D5\u30A1\u30A4\u30EB\u540D\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044 +Verify_Fail=\u70B9\u691C\u306B\u5931\u6557\u3057\u307E\u3057\u305F +CellWrite-InsertRow_Policy=\u884C\u6226\u7565\u3092\u633F\u5165 +FR-Designer-Plugin_Illegal_Plugin_Zip=\u5408\u6CD5\u7684\u306A\u30D7\u30E9\u30B0\u30A4\u30F3\u30D1\u30C3\u30AF\u3067\u306F\u3042\u308A\u307E\u305B\u3093 +RCodeVersion=\u30D0\u30FC\u30B8\u30E7\u30F3 +Convert=\u5909\u63DB +Please_Drag=\u884C\u5217\u30D5\u30A3\u30FC\u30EB\u30C9\u3001\u53D6\u308A\u307E\u3068\u3081\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u5F15\u3063\u8FBC\u3081\u3066\u304F\u3060\u3055\u3044 +FR-Designer-Widget-Style_Preview=\u30D7\u30EC\u30D3\u30E5\u30FC +mobile_number=\u643A\u5E2F\u96FB\u8A71\u756A\u53F7 +FR-Designer_Form-ComboCheckBox=\u30C1\u30A7\u30C3\u30AF\u30DC\u30C3\u30AF\u30B9 +CacheValidateTime=\u5E33\u7968\u30AD\u30E3\u30C3\u30B7\u30F3\u30B0\u6709\u52B9\u6642\u9593 +Hyperlink-Extends_Report_Parameters=\u5E33\u7968\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC\u3092\u7D99\u627F\u3059\u308B +FR-Designer_Values-Editor=\u5024\u30A8\u30C7\u30A3\u30BF +Export-Excel=Excel +Utils-Left_to_Right=\u5DE6\u304B\u3089\u53F3\u3078 +ExpandD-Vertical_Extendable=\u7E26\u5E83\u304C\u308B +Utils-Report_Runtime_Env=\u5E33\u7968\u4F5C\u696D\u76EE\u6B21 +Utils-Right_to_Left=\u53F3\u304B\u3089\u5DE6\u3078 +Utils-Beyond_the_top_side_of_Border=\u4E0A\u30DC\u30FC\u30C0\u30FC\u8D85\u3048 +Exception_StackTrace=\u30A8\u30E9\u30FC\u7570\u5E38\u30B9\u30BF\u30C3\u30AF\u60C5\u5831 +Corresponding_Fields=\u5BFE\u5FDC\u3059\u308B\u30D5\u30A3\u30FC\u30EB\u30C9 +Form-CheckBox=\u30D5\u30EC\u30FC\u30E0\u3092\u8907\u6570\u9078\u629E +Utils-Current_Row=\u30AB\u30EC\u30F3\u30C8\u884C +BuildIn=\u5185\u8535 +BindColumn-Results_Filter=\u7D50\u679C\u30BB\u30C3\u30C8\u306E\u30D5\u30A3\u30EB\u30BF +FR-Designer-Plugin_Manager=\u30D7\u30E9\u30B0\u30A4\u30F3\u7BA1\u7406 +M_File-Export-CSV=CSV\u66F8\u5F0F(\u30B3\u30F3\u30DE\u3067\u5206\u5272) +Data_Filter=\u30C7\u30FC\u30BF\u9078\u5225 +ReportServerP-Edit_Printer=\u30D7\u30EA\u30F3\u30BF\u30FC\u7DE8\u96C6 +FR-Designer_Datasource-Stored_Procedure=\u30B9\u30C8\u30A2\u30C9 \u30D7\u30ED\u30B7\u30FC\u30B8\u30E3 +RESTART=\u518D\u8D77\u52D5 +FormulaD-Function_name=\u95A2\u6570\u540D +ChooseOneButton=\u30B3\u30F3\u30C8\u30ED\u30FC\u30EB\u3092\u4E00\u3064\u9078\u629E\u3057\u3066\u304B\u3089\u8FFD\u52A0\u3057\u3066\u304F\u3060\u3055\u3044 +Priority=\u512A\u5148\u30E9\u30F3\u30AF +Datasource-Datasource=\u30C7\u30FC\u30BF\u30BD\u30FC\u30B9 +FR-Designer_Width=\u5E83\u3055 +Cannot-Add_To_This_Area=\u5730\u57DF\u306B\u306F\u8FFD\u52A0\u3067\u304D\u307E\u305B\u3093 +Run=\u904B\u884C +Set_Submit_Condition=\u6761\u4EF6\u3092\u8A2D\u7F6E\u306B\u63D0\u51FA\u3059\u308B\u3053\u3068\u306B\u3057\u305F +FR-Base_Value=\u5024 +fileLocked_undeleted=\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u304C\u30ED\u30C3\u30AF\u3055\u308C\u3066\u3044\u308B\u3001\u3042\u306A\u305F\u304C\u524A\u9664\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093\uFF01 +Web_Apply=WEB\u30A2\u30D7\u30EA\u30B1\u30FC\u30B7\u30E7\u30F3 +Refresh_Database=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u5237\u65B0 +Set_Row_Title_End=\u91CD\u8907\u3059\u308B\u7D42\u4E86\u884C\u3092\u8A2D\u5B9A +FR-Utils-New_Folder=\u30D5\u30A1\u30A4\u30EB\u65B0\u898F\u4F5C\u6210 +BiasD-From-upper_left_to_lower_right=\u5DE6\u4E0A\u5074\u304B\u3089\u53F3\u4E0B\u5074\u3078\u5E83\u304C\u308B +CapsLock=Caps Lock\u30AD\u30FC\u304C\u30AA\u30F3\u306B\u306A\u3063\u3066\u3044\u308B +StyleFormat-Sample=\u4F8B +RWA-Smart_Add_Cell_Group=\u30A4\u30F3\u30C6\u30EA\u30B8\u30A7\u30F3\u30C8\u6DFB\u52A0\u30EC\u30A4\u30E4\u30FC\u7D44 +MConfig-CancelButton=\u30AD\u30E3\u30F3\u30BB\u30EB +Function-Choose_Function_Class=\u95A2\u6570\u30AF\u30E9\u30B9\u3092\u9078\u629E\u3059\u308B +LatLng=\u5EA7\u6A19 +DS-Server_TableData=\u30B5\u30FC\u30D0\u30FC\u30C7\u30FC\u30BF\u30BB\u30C3\u30C8 +BackgroundTexture-GreenMarble=\u7DD1\u8272\u306E\u5927\u7406\u77F3 +read_time_out=\u30ED\u30FC\u30C9\u306E\u30BF\u30A4\u30E0\u30A2\u30A6\u30C8 +JavaScript-Commit_to_Database=\u5165\u5EAB\u63D0\u51FA +DS-Relation_TableData=\u30C7\u30FC\u30BF\u30BB\u30C3\u30C8\u95A2\u9023\u4ED8\u3051 +CellWrite-Page_Before_Row=\u884C\u524D\u306E\u6539\u9801 +FR-Designer-Plugin_Load_Plugins_From_Server=\u30D7\u30E9\u30B0\u30A4\u30F3\u30DE\u30FC\u30B1\u30C3\u30C8\u304B\u3089\u30C7\u30FC\u30BF\u53D6\u5F97\u4E2D +D-Dispaly_Divide_Result_Set_into_Groups=resultset\u306E\u30B0\u30EB\u30FC\u30D7\u5206\u3051 +Closed=\u9589\u9396\u6E08\u307F +RWA-Help=\u8A2D\u7F6E\u5F8C\u306E\u6539\u6B63\u3092\u66F4\u65B0\u3057\u306A\u3044\u3068\u3001\u7533\u544A\u30D7\u30EC\u30D3\u30E5\u30FC\u30EC\u30DD\u30FC\u30C8\u306B\u8A18\u9332\u3055\u308C\u3066\u3044\u306A\u3044\u6240\u5728\u30EC\u30A4\u30E4 +FR-Designer-Widget-Style_Custom= +FR-Designer-Widget-Style_Render_Style=\u307C\u304B\u3057\u30B9\u30BF\u30A4\u30EB +Highlight-Barcode=\u30D0\u30FC\u30B3\u30FC\u30C9 +FR-Designer_Connect_SQL_Cannot_Null=\u30C7\u30FC\u30BF\u63A5\u7D9A\u3068SQL\u30D1\u30CD\u30EB\u306F\u7A7A\u306B\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093 +trigger=\u6A19\u984C +M-Data_Analysis=\u30C7\u30FC\u30BF\u5206\u6790 +Function-The_selected_file_cannot_be_null=\u9078\u629E\u3055\u308C\u305F\u30D5\u30A1\u30A4\u30EB\u306F\u7A7A\u5024\u306B\u306A\u3063\u3066\u306F\u3044\u3051\u307E\u305B\u3093 +No-Privilege=\u30A2\u30AF\u30BB\u30B9\u304C\u62D2\u5426\u3055\u308C\u307E\u3057\u305F +ReportColumns-Repeat_Column=\u5217\u756A\u53F7\u306E\u7E70\u308A\u8FD4\u3057 +SecondGraduationUnit=\u4E8C\u6B21\u7684\u76EE\u76DB\u308A\u5358\u4F4D +Form-Widget_Property_Value=\u5C5E\u6027\u5024 +GIVE-NAME=\u547D\u540D +FR-Designer_Rename=\u540D\u79F0\u306E\u5909\u66F4 +Utils-Merge_Cell=\u30BB\u30EB\u3092\u7D50\u5408\u3059\u308B +Style-Spacing_After=\u6BB5\u5F8C +Enlarge_Or_Reduce=\u30BA\u30FC\u30E0 +Tree-Height=\u9AD8\u3055 +RCodeErrorCorrect=\u30A8\u30E9\u30FC\u8A02\u6B63 +Enter-New-FileName=\u65B0\u3057\u3044\u30D5\u30A1\u30A4\u30EB\u540D\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044 +try_resending=\u30C8\u30EA\u30AC\u30FC\u3055\u308C\u308B +M-Open_Report=\u3092\u958B\u304F... +Please_Select=\u9078\u629E\u3057\u3066\u304F\u3060\u3055\u3044 +InRow=\u884C(R) +Form-TextArea=\u6587\u66F8\u57DF +FR-Designer_Https_Enable=https\u4F7F\u7528\u958B\u59CB +Widget-Custom_Widget_Config=\u30AB\u30B9\u30BF\u30DE\u30A4\u30BA\u30B3\u30F3\u30C8\u30ED\u30FC\u30EB +already_exists=\u3053\u3053\u306F\u3059\u3067\u306B\u5B58\u5728\u3057\u3066\u3044\u307E\u3059 +Original_Marked_Filed=\u521D\u671F\u30BF\u30B0\u30D5\u30A3\u30FC\u30EB\u30C9 +BackgroundTexture-Sand=\u7802\u6D5C +Values=\u5024 +Not_use_a_cell_attribute_table_editing=\u3042\u306A\u305F\u304C\u7DE8\u96C6\u3059\u308B\u30BB\u30EB\u306E\u5C5E\u6027\u30C6\u30FC\u30D6\u30EB\u3092\u4F7F\u7528\u3059\u308B\u3053\u3068 +Root=\u30EB\u30FC\u30C8\u30CE\u30FC\u30C9 +cycle=\u5468\u671F +open-new-form-tip=711\u4EE5\u4E0B\u306E\u751F\u7523\u306E\u305F\u3081\u306E\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u306E\u73FE\u5728\u306E\u30D0\u30FC\u30B8\u30E7\u30F3\u306F\u3001\u4E92\u63DB\u6027\u304C\u306A\u3044\u3068 +Support-Current_Auto_Complete_Shortcut=\u73FE\u5728\u306E\u30B7\u30E7\u30FC\u30C8\u30AB\u30C3\u30C8\u30AD\u30FC +GROUPING_MODE=\u666E\u901A\u30B0\u30EB\u30FC\u30D7\u5206\u3051 +DBCP_MAX_IDLE=\u6700\u5927\u30A2\u30A4\u30C9\u30EB\u63A5\u7D9A\u6570 +BackgroundTexture-BlueTissuePaper=\u9752\u3044\u30B5\u30F3\u30C9\u30DA\u30FC\u30D1\u30FC +ReportD-Export_Hided_Row=\u96A0\u3057\u305F\u884C\u3092\u5C0E\u51FA +FR-Custom_styles_lost=\u30AB\u30B9\u30BF\u30DE\u30A4\u30BA\u30B9\u30BF\u30A4\u30EB\u306F\u5931\u308F\u308C\u307E\u3057\u305F +Env-Des2=Servlet\u306E\u4F4D\u7F6E\u306F\u30DB\u30B9\u30C8\u30B3\u30F3\u30D4\u30E5\u30FC\u30BF\u540D\u3001\u30A4\u30F3\u30BF\u30FC\u30D5\u30A7\u30A4\u30B9\u3001WEB\u30A2\u30D7\u30EA\u30B1\u30FC\u30B7\u30E7\u30F3\u3001 +Env-Des1=\u5E33\u7968\u30B5\u30FC\u30D0\u30FC\u304C\u3042\u308BWEB-INF\u76EE\u6B21\u3092\u9078\u629E\u3057\u3066\u304F\u3060\u3055\u3044 +PageSetup-Placement_Center_on_Page=\u4E2D\u592E\u63C3\u3048 +sure_to_delete=\u524A\u9664\u3092\u78BA\u8A8D\u3057\u307E\u3059 +Already_exists_not_add_repeat=\u3059\u3067\u306B\u5B58\u5728\u3057\u3066\u3044\u308B\u3001\u30EA\u30D4\u30FC\u30C8\u3092\u8FFD\u52A0\u3057\u306A\u3044\u3067\u304F\u3060\u3055\u3044 +Axis_Title=\u8EF8\u306E\u8868\u984C +FR-Designer-Plugin_Install_Failed=\u30D7\u30E9\u30B0\u30A4\u30F3\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u306B\u5931\u6557\u3057\u307E\u3057\u305F +FR-Designer-Widget-Style_Frame=\u30D5\u30EC\u30FC\u30E0 +MainGraduationUnit=\u4E3B\u306A\u76EE\u76DB\u308A\u5358\u4F4D +Second_Axis=\u6B21\u5EA7\u6A19\u8EF8 +Classifier-Ge=\u500B +MSBold=\u5FAE\u8EDF\u96C5\u9ED2 +Form-Design_Size=\u30C7\u30B6\u30A4\u30F3\u30B5\u30A4\u30BA +FR-App-Template_Save=\u4FDD\u5B58 +ExpandD-Horizontal_Extendable=\u6A2A\u5E83\u304C\u308B +RP_Authority_Edit=\u6A29\u9650\u7DE8\u96C6 +Warnning=\u30EA\u30DE\u30A4\u30F3\u30C9 +RoleName_Can_Not_Be_Null=\u5F79\u5272\u540D\u306F\u7A7A\u6B04\u306B\u3059\u308B\u3053\u3068\u304C\u3067\u304D\u305A\u3001\u91CD\u8907\u3059\u308B\u3053\u3068\u3082\u3067\u304D\u307E\u305B\u3093 +Application=\u30A2\u30D7\u30EA\u30B1\u30FC\u30B7\u30E7\u30F3 +Formula_Dictionary_Display_Examples_Html=\u5B9F\u969B\u5024\u7BC4\u56F2\u306F\ +ECP-error_pwd=\u30D1\u30B9\u30EF\u30FC\u30C9\u30A8\u30E9\u30FC +FR-Hyperlink_ChartHyperlink=\u30B0\u30E9\u30D5\u30CF\u30A4\u30D1\u30FC\u30EA\u30F3\u30AF +M_Edit-FormatBrush=\u66F8\u5F0F\u30D6\u30E9\u30B7(B) +Indent-Pixel=\u753B\u7D20 +FR-Designer-Widget-Style_Border_Line=\u30D5\u30EC\u30FC\u30E0\u592A\u3055 +Widget-Default_Widget_Config=\u57FA\u672C\u30B3\u30F3\u30C8\u30ED\u30FC\u30EB +Version-does-not-support=\u73FE\u5728\u4F7F\u7528\u3057\u3066\u3044\u308Blic\u306F\u9060\u9694\u30C7\u30B6\u30A4\u30F3\u6A5F\u80FD\u306B\u30B5\u30DD\u30FC\u30C8\u3057\u3066\u3044\u307E\u305B\u3093\u3002 +StyleAlignment-Right_To_Left=\u53F3\u304B\u3089\u5DE6\u3078 +Style-Spacing_Before=\u6BB5\u524D +Has_Existed=\u3059\u3067\u306B\u5B58\u5728\u3057\u3066\u3044\u307E\u3059 +FR-Designer_DisplayNothingBeforeQuery=\u30EC\u30DD\u30FC\u30C8\u304C\u8868\u793A\u3055\u308C\u307E\u305B\u3093\u524D\u306B\u5185\u5BB9\u3092\u78BA\u8A8D\u3059\u308B]\u3092\u30AF\u30EA +Still=\u4F9D\u7136\u3068\u3057\u3066 +JS_WARNING2=\ \u4F8B\uFF1Ahttp\://localhost\:8075/WebReport/demo.js +JS_WARNING1= \u76F8\u5BFE\u7684\u5E33\u7968\u5DE5\u7A0B\u306EWebReport\u306E\u76EE\u6B21\u304C\u3001WebReport\\js\u4E0B\u306B\u5F15\u7528\u3059\u308Bjs +Connectionline=\u63A5\u7D9A\u30EF\u30A4\u30E4\u30E2\u30C7\u30EB +Utils-Insert_Record=\u8A18\u9332\u633F\u5165 +Set-Parameter-Name=\u307E\u305A\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC\u540D\u3092\u8A2D\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044 +More-information=\u8A73\u7D30\u60C5\u5831 +Parameter-Boolean=\u8AD6\u7406\u578B +FRFont-Strikethrough=\u53D6\u308A\u6D88\u3057\u7DDA +Server-version-tip=\u3042\u306A\u305F\u306F\u3001\u73FE\u5728\u3001\u3042\u306A\u305F\u306F\u3044\u304F\u3064\u304B\u306E\u30D7\u30ED\u30D1\u30C6\u30A3\u304C\u52B9\u679C\u7684\u306B\u4FDD\u5B58\u3059\u308B\u3053\u3068\u304C +Form-All_Files=\u5168\u3066\u306E\u30D5\u30A1\u30A4\u30EB +DBCP_NUM_TEST_PER_EVCTION_RUN=\u30A2\u30A4\u30C9\u30EB\u63A5\u7D9A\u30EA\u30B5\u30A4\u30AF\u30EB\u691C\u67FB\u6570 +FR-Designer-FRFont_Family=\u540D\u524D +Device=\u8A2D\u5099 +M_Insert-Cell=\u30BB\u30EB\u8981\u7D20 +Present-Formula_Present=\u516C\u5F0F\u30D5\u30A9\u30EB\u30E0 +FRFont-Superscript=\u4E0A\u4ED8\u304D +CellWrite-Page_Before_Column=\u5217\u524D\u306E\u6539\u9801 +Golden=\u30B4\u30FC\u30EB\u30C7\u30F3 +Preference-Support_Cell_Editor_Definition=\u30BB\u30EB\u30A8\u30C7\u30A3\u30BF\u30FC\u3092\u30B5\u30DD\u30FC\u30C8\u3059\u308B +M-Page_Preview=\u30DA\u30FC\u30B8\u5225\u30D7\u30EC\u30D3\u30E5\u30FC +HJS-CC_to=CC +Tree-Select_Leaf_Only=\u8449\u30CE\u30FC\u30C9\u306B\u623B\u308B +Pointer-A-Tick-Order=\u30DD\u30A4\u30F3\u30BF\u5024\u3068\u76EE\u76DB\u308A\u5024\u306E\u6570\u91CF\u30E9\u30F3\u30AF +Pink=\u30D4\u30F3\u30AF +StyleAlignment-Distibuted=\u5747\u7B49\u5272\u308A\u4ED8\u3051 +Odd=\u5947\u6570 +already-saved=\u4FDD\u5B58\u3055\u308C\u3066\u3044\u308B +FR-Hyperlink_Chart_Cell=\u30B0\u30E9\u30D5\u30CF\u30A4\u30D1\u30FC\u30EA\u30F3\u30AF-\u9023\u52D5\u30BB\u30EB +Style-Left_Indent=\u5DE6\u30A4\u30F3\u30C7\u30F3\u30C8 +Offline=\u79BB\u7EBF +Form-Hierarchy_Tree_Next=\u6B21 +Needle=\u30DD\u30A4\u30F3\u30BF +GoogleMap=Google\u30DE\u30C3\u30D7 +Running=\u904B\u884C\u4E2D +M_Edit-Unmerge_Cell=\u30BB\u30EB\u3092\u5206\u5272\u3059\u308B +Out_Border_Line=\u5916\u5074\u30D5\u30EC\u30FC\u30E0\u30E9\u30A4\u30F3 +Style-Spacing=\u9593\u9694\u8DDD\u96E2 +FR-Utils_Submit=\u63D0\u51FA +ReportServerP-Previous=\u524D\u30DA\u30FC\u30B8 +StyleAlignment-Text_Style=\u30C6\u30AD\u30B9\u30C8\u30B9\u30BF\u30A4\u30EB +RelatedChart=\u30B0\u30E9\u30D5\u9023\u52D5 +ProcessManager=\u30D7\u30ED\u30BB\u30B9\u7BA1\u7406 +Cancel_Repeat_Attributes=\u30EA\u30D4\u30FC\u30C8\u30E9\u30F3\u30AF\u3092\u30AD\u30E3\u30F3\u30BB\u30EB\u3059\u308B\u306B\u306F +FR-App-File_Message=\u60C5\u5831 +Datasource-Stored_Procedure=\u30B9\u30C8\u30A2\u30C9 \u30D7\u30ED\u30B7\u30FC\u30B8\u30E3 +RWA-Row_Offset=\u884C\u30AA\u30D5\u30BB\u30C3\u30C8 +M_Format-Style=\u30B9\u30BF\u30A4\u30EB +detail_description=\u8A73\u7D30\u306A\u8AAC\u660E +FR-Designer-Widget-Style_Title_Content=\u6A19\u984C\u5185\u5BB9 +ParameterD-Report_Parameter=\u5E33\u7968\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC +HF-Edit_Header=\u30D8\u30C3\u30C0\u7DE8\u96C6 +Sytle-FRFont=\u30D5\u30A9\u30F3\u30C8 +FR-Designer_Finish_Export=\u5C0E\u51FA\u5B8C\u4E86 +MultiFileUpload=\u8907\u6570\u30D5\u30A1\u30A4\u30EB\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9 +HF-Page_Number=\u30DA\u30FC\u30B8\u756A\u53F7 +Style-Right_Indent=\u53F3\u30A4\u30F3\u30C7\u30F3\u30C8 +Desktop=\u30C7\u30B9\u30AF\u30C8\u30C3\u30D7 +FR-Server-All_Error=\u30A8\u30E9\u30FC +ConditionB-Operator=\u64CD\u4F5C +Today=\u4ECA\u65E5 +Form-Widget_Name=\u30B3\u30F3\u30C8\u30ED\u30FC\u30EB\u540D +Covered_All=\u5168\u3066\u8986\u3046 +Day=\u65E5 +External=\u5916\u90E8 +Black_Font=\u592A\u5B57 +LOG-Report_Server_IS_Started=\u5E33\u7968\u30B5\u30FC\u30D0\u30FC\u3082\u3046\u8D77\u52D5\u3055\u308C\u3066\u3044\u307E\u3059 +Tips\:You_Can_Input_B1_To_Input_The_Data_Of_The_First_Row_Second_Column=\u30D2\u30F3\u30C8\:B1\u3092\u5165\u529B +FR-Designer_ChooseOneButton=\u30B3\u30F3\u30C8\u30ED\u30FC\u30EB\u3092\u4E00\u3064\u9078\u629E\u3057\u3066\u304B\u3089\u8FFD\u52A0\u3057\u3066\u304F\u3060\u3055\u3044 +Widget-Sizing=\u5927\u304D\u3055\u8ABF\u6574 +NO_Border_Line=\u30D5\u30EC\u30FC\u30E0\u30E9\u30A4\u30F3\u7121\u3057 +Cell_Data=\u30BB\u30EB\u30C7\u30FC\u30BF +StyleAlignment-Vertical_Text=\u6587\u5B57\u3092\u7E26\u306B\u3059\u308B +Label=\u30BF\u30B0 +Orange=\u30AA\u30EC\u30F3\u30B8 +zeroMarginWarn=\u30D7\u30EA\u30F3\u30BF\u306F\u5C0F\u3055\u306A\u7F36
\u30B3\u30F3\u30C6\u30F3\u30C4\u4E0D\u8DB3\u3092\u5370\u5237\u3059\u308B\u3053\u3068\u304C\u3067\u304D\u3001\u7269\u7406\u30DE\u30FC\u30B8\u30F3 +Widget-Date_Selector_Return_Type=\u623B\u308A\u5024\u30BF\u30A4\u30D7 +Utils-Switch_To_Template_Reportlet=\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u30CD\u30C3\u30C8\u30EF\u30FC\u30AF\u5E33\u7968\u306B\u5207\u308A\u66FF\u3048 +satisfy=\u6761\u4EF6\u3092\u6E80\u305F\u3059 +FR-Designer_WidgetDisplyPosition=\u30B3\u30F3\u30C8\u30ED\u30FC\u30EB\u8868\u793A\u4F4D\u7F6E +FR-Base_Top=\u4E0A +FR-Designer_Form-CheckBox=\u30D5\u30EC\u30FC\u30E0\u3092\u8907\u6570\u9078\u629E +Reportlet-Parameter_Type=\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC\u4F1D\u9054\u65B9\u6CD5 +sending=\u9001\u4FE1\u4E2D... +FR-Designer-FRFont_Foreground=\u8272 +FR-Import-Export_SVG=SVG\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8 +M_Edit-Clear_Contents=\u5185\u5BB9(C) +Session=\u30BB\u30C3\u30B7\u30E7\u30F3 +Widget-Load_Type=\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9 +template_unsaved=\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u304C\u4FDD\u5B58\u3067\u304D\u306A\u3044 +check_communication=\u30CD\u30C3\u30C8\u30EF\u30FC\u30AF\u901A\u4FE1\u304C\u6B63\u5E38\u3067\u3042\u308A\u3001\u30B5\u30FC\u30D0\u304C\u52D5\u4F5C\u3057\u3066\u3044\u308B\u3053\u3068\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060 +List-Need_Head=\u30EA\u30B9\u30C8\u30D8\u30C3\u30C9\u304C\u5FC5\u8981\u3067\u3059 +FR-Designer-Plugin_Has_Been_Installed=\u30D7\u30E9\u30B0\u30A4\u30F3\u306F\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u3055\u308C\u3066\u3044\u307E\u3059\u3002\u30D7\u30E9\u30B0\u30A4\u30F3\u3092 +FR-Widget_Tree_And_Table=\u30B3\u30F3\u30C8\u30ED\u30FC\u30EB\u30C4\u30EA\u30FC\u3068\u30B3\u30F3\u30C8\u30ED\u30FC\u30EB\u8868 +FR-Base_Help=\u30D8\u30EB\u30D7 +FR-Designer-Plugin_Update_Successful=\u30D7\u30E9\u30B0\u30A4\u30F3\u30A2\u30C3\u30D7\u30B0\u30EC\u30FC\u30C9\u306B\u6210\u529F\u3057\u307E\u3057\u305F\u3002\u30B5\u30FC\u30D0\u30FC\u3092 +August=\u516B\u6708 +LOG-Is_Being_Openned=\u958B\u3044\u3066\u3044\u307E\u3059 +BackgroundTexture-Oak=\u30AA\u30FC\u30AF +Multi_nam_formula=\ \u30C7\u30FC\u30BF\u30BB\u30C3\u30C8\u540D\: \u30C7\u30FC\u30BF\u30BB\u30C3\u30C8\u6761\u4EF6\: +TurnOn=\u8D77\u52D5 +HJS-Send_Successfully=\u9001\u4FE1\u6210\u529F +Mon=\u6708 +Inner_Parameter=\u5185\u8535\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC +Required=\u8A18\u5165\u5FC5\u9808 +Summary=\u6982\u8981 +template_unopened=\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u3092\u958B\u304F\u3053\u3068\u304C\u3067\u304D\u307E\u305B\u3093 +FR-Base_Bottom=\u4E0B +DataFunction-Min=\u6700\u5C0F\u5024 +StyleFormat-Percent=\u30D1\u30FC\u30BB\u30F3\u30C6\u30FC\u30B8 +FR-App-All_Custom=\u30AB\u30B9\u30BF\u30DE\u30A4\u30BA +M_Insert-Data_Column=\u30C7\u30FC\u30BF\u5217 +PLEASE=\u3057\u3066\u304F\u3060\u3055\u3044 +Numbers=\u6841\u6570 +Release_Lock=\u30A2\u30F3\u30ED\u30C3\u30AF +Background-Background_is_NULL=\u80CC\u666F\u306A\u3057 +FR-Designer_Sytle-FRFont=\u30D5\u30A9\u30F3\u30C8 +Gradation=\u69CB\u6210 +The_current_list_is_empty=\u73FE\u5728\u306E\u30EA\u30B9\u30C8\u306F\u7A7A\u3067\u3059 +Formula_Dictionary_Display_Examples=\ \u5B9F\u969B\u5024\u7BC4\u56F2\u306F\ +Schedule-Template_Parameter=\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC +JSShow=\u52D5\u614B\u8868\u793A +Level_coordinates=\u30EC\u30D9\u30EB\u306E\u5EA7\u6A19 +MainGraduationLine=\u30E1\u30A4\u30F3\u30B9\u30B1\u30FC\u30EB\u30E9\u30A4\u30F3 +Hyperlink-Web_link=\u30A6\u30A7\u30D6\u30EA\u30F3\u30AF +StyleAlignment-between_-90_and_90=-90\u304B\u308990\u307E\u3067\u306E\u7BC4\u56F2\u3067 +FormulaD-Custom_Function=\u30E6\u30FC\u30B6\u5B9A\u7FA9\u95A2\u6570 +FR-Designer_Integer=\u6574\u6570 +PageSetup-Finis_Start_Row=\u91CD\u8907\u3059\u308B\u7D42\u4E86\u884C +RWA-Remove_Field=\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u30EA\u30E0\u30FC\u30D6 +Form-Desin_Width=\u30C7\u30B6\u30A4\u30F3\u5E45 +No-tableData=\u623B\u3057\u30C7\u30FC\u30BF\u30BB\u30C3\u30C8\u304C\u3042\u308A\u307E\u305B\u3093 +Page_Total=\u5408\u8A08 +FR-Designer-Plugin_Connect_Server_Error=\u30D7\u30E9\u30B0\u30A4\u30F3\u30DE\u30FC\u30B1\u30C3\u30C8\u306B\u63A5\u7D9A\u3067\u304D\u307E\u305B\u3093\u3002\uFF0C\u5F8C\u3067\u518D\u5EA6 +Import-Excel_Source=Excel\u30BD\u30FC\u30B9 +Utils-Left_to_Right_a=\u5DE6\u304B\u3089\u53F3\u3078 +ExpandD-Expand_Attribute=\u5C5E\u6027\u3092\u62E1\u5F35\u3059\u308B +Report-Write_Attributes=\u5E33\u7968\u8A18\u5165\u5C5E\u6027 +Utils-Current_Column=\u30AB\u30EC\u30F3\u30C8\u5217 +Need_Max_Value=\u6700\u5927\u5024\u304C\u5FC5\u8981 +Report_Not_Exist=\u9078\u629E\u3057\u305F\u5E33\u7968\u306F\u5B58\u5728\u3057\u307E\u305B\u3093\uFF01 +HF-Insert_Content=\u30B3\u30F3\u30C6\u30F3\u30C4\u3092\u633F\u5165 +UpParent=\u4E0A\u89AA\u30BB\u30EB +PageSetup-Page=\u30DA\u30FC\u30B8 +Utils-Move_Up=\u4E0A\u3078\u79FB\u52D5 +BackgroundTexture-PurpleMesh=\u7D2B\u8272\u306E\u30E1\u30C3\u30B7\u30E5 +Export-Word=Word\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8 +ServerM-Widget_Manager=\u30B3\u30F3\u30C8\u30ED\u30FC\u30EB\u7BA1\u7406 +FR-Designer-Basic_Activation_Key=\u30C7\u30B6\u30A4\u30CA\u30FC\u6574\u7406\u756A\u53F7\uFF1A +FR-App-Template_Report_Not_Exist=\u9078\u629E\u3057\u305F\u5E33\u7968\u306F\u5B58\u5728\u3057\u307E\u305B\u3093\! +Protected=\u4FDD\u8B77 +Skip=\u30B9\u30AD\u30C3\u30D7 +FR-Designer_PageSetup-Vertically=\u5782\u76F4\u4E2D\u592E\u63C3\u3048 +revert=\u3084\u308A\u76F4\u3059 +PageSetup-Predefined=\u30D7\u30EC\u5B9A\u7FA9 +Border-Style-Radius=\u89D2\u4E38 +IntPart=\u6574\u6570\u90E8\u5206 +ExpandD-Data_Column=\u30C7\u30FC\u30BF\u30B3\u30E9\u30E0 +Sort-Ascending=\u6607\u9806 +FR-Designer-Widget_Style=\u30B9\u30BF\u30A4\u30EB +parameter_name_exist=\u30D1\u30E9\u30E1\u30FC\u30BF\u540D\u306F\u65E2\u306B\u5B58\u5728\u3057\u3066\u3044\u307E\u3059 +FR-Designer_Layer-Build=\u30D5\u30A1\u30BB\u30C3\u30C8\u7D44\u307F\u7ACB\u3066 +Please_Rename=\u518D\u5EA6\u547D\u540D\u3057\u3066\u304F\u3060\u3055\u3044 +Form-Editing_Listeners=\u4E8B\u4EF6\u7DE8\u96C6 +RWA-Smart_Add_Fields=\u30A4\u30F3\u30C6\u30EA\u30B8\u30A7\u30F3\u30C8\u8FFD\u52A0\u30D5\u30A3\u30FC\u30EB\u30C9 +FR-Designer-Tree_Width=\u5E45 +Record=\u8A18\u9332 +Poly-Report_Component=\u805A\u5408\u5E33\u7968\u30A2\u30BB\u30F3\u30D6\u30EA +Options=\u30AA\u30D7\u30B7\u30E7\u30F3 +NS-war-remote=\u30A8\u30E9\u30FC\u30B3\u30FC\u30C9\:1117 \u5727\u7E2E\u914D\u7F6E\u306F\u9060\u9694\u30C7\u30B6\u30A4\u30F3\u306B\u30B5\u30DD\u30FC\u30C8\u3057\u3066\u3044\u307E\u305B\u3093 +Sche-Minute=\u5206 +Three_Rows_Of_Three_Grid=3\u4E57\u306E3\u3064\u306E\u884C +WorkSheet=\u30EF\u30FC\u30AF\u30B7\u30FC\u30C8 +FR-Designer-Widget_Size=\u5927\u304D\u3055\u30B3\u30F3\u30C8\u30ED\u30FC\u30EB +BindColumn-Select=\u30EA\u30B9\u30C8 +FR-Widget_Mobile_Terminal=\u30E2\u30D0\u30A4\u30EB\u7AEF\u672B +FR-Background_Image_Titled=\u5C55\u958B +SetPrinterOffset=\u5B89\u3044\u30D7\u30EA\u30F3\u30BF +FR-Designer-Plugin_Installed=\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u6E08\u307F +FR-Designer-Hyperlink_Name=\u540D\u524D +FR-Designer_Form-Button=\u30DC\u30BF\u30F3 +Black=\u30D6\u30E9\u30C3\u30AF +FR-Designer-Widget-Style_Border_Color=\u30D5\u30EC\u30FC\u30E0\u8272 +Set_Submit_Event=\u63D0\u51FA\u4E8B\u4EF6\u3092\u8A2D\u5B9A +PDF-Print_isPopup=\u8A2D\u5B9A\u30A6\u30A3\u30F3\u30C9\u30A6\u3092\u30DD\u30C3\u30D7\u30A2\u30C3\u30D7\u3059\u308B\u304B\u5426\u304B +LayerPageReport_CountPerPage=\u6BCE\u30DA\u30FC\u30B8\u8A18\u9332\u6570 +Display_Modes=\u30E2\u30C7\u30EB\u3092\u8868\u793A +RowSpan=\u884C\u7BC4\u56F2 +Datasource-Test_Connection=\u63A5\u7D9A\u30C6\u30B9\u30C8 +Function-Function_Manager=\u95A2\u6570\u30DE\u30CD\u30FC\u30B8\u30E3\u30FC +Host_Name=\u30DB\u30B9\u30C8\u30B3\u30F3\u30D4\u30E5\u30FC\u30BF\u540D +CellWrite-Show_As_HTML=HTML\u3067\u5185\u5BB9\u3092\u8868\u793A +FR-Designer-Widget-Style_Shadow=\u9670\u5F71 +FR-Designer_Parameter_String=\u6587\u5B57\u5217 +Form-SupportTag=\u30BF\u30B0\u306B\u8868\u793A +ReportD-Report_Write_Attributes=\u5E33\u7968\u66F8\u5F0F\u5C5E\u6027 +DataFunction-Count=\u4EF6\u6570 +Top_And_Thick_Bottom_Border_Line=\u4E0A\u30D5\u30EC\u30FC\u30E0\u30E9\u30A4\u30F3\u3068\u7C97\u4E0B\u30D5\u30EC\u30FC\u30E0\u30E9\u30A4\u30F3 +Client=\u9867\u5BA2\u5074 +BindColumn-Result_Serial_Number_Start_From_1=\u30C7\u30FC\u30BF\u30BB\u30C3\u30C8\u306E\u756A\u53F7\u306F1\u304B\u3089 +History=\u6B74\u53F2 +Already_exists=\u3059\u3067\u306B\u5B58\u5728\u3057\u3066\u3044\u308B\u5834\u5408\u3001\u518D\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044\uFF01 +Datasource-Original_Charset=\u30AA\u30EA\u30B8\u30CA\u30EB\u6587\u5B57\u30B3\u30FC\u30C9 +FR-Base_Left=\u5DE6 +ReportServerP-Next=\u6B21\u30DA\u30FC\u30B8 +BindColumn-Top_N=\u524D\u306EN\u500B +Animation_Special=\u7279\u5225\u306B\u826F\u3044\u52B9\u679C +Widget-Chart_Widget_Config=\u30B0\u30E9\u30D5\u30B3\u30F3\u30C8\u30ED\u30FC\u30EB +FR-Designer-Plugin_Cannot_Update_Not_Install=\u30D7\u30E9\u30B0\u30A4\u30F3\u66F4\u65B0\u3092\u3059\u308B\u3053\u3068\u304C\u3067\u304D\u307E\u305B\u3093\u3002\u5F53\u8A72 +After_Changed_Some_Attributes_Are_Different=\u30D7\u30ED\u30D1\u30C6\u30A3\u306E\u3044\u304F\u3064\u304B\u306E\u30B9\u30C6\u30FC\u30C8\u30E1\u30F3\u30C8\u306E\u5F8C\u306B\u5909\u63DB\u304C\u7D99\u7D9A\u3059\u308B\u304B\u3069\u3046\u304B\u3001\u5909\u66F4\u3055\u308C\u307E\u3059 +PieStyle=\u30D1\u30A4 +HF-Are_you_sure_to_delete_it=\u5F53\u8A72\u9805\u76EE\u3092\u524A\u9664\u3057\u3066\u3082\u3088\u308D\u3057\u3044\u3067\u3059\u304B +Utils-Design-File_Open=\u958B\u304F +FR-Utils_Label=\u30BF\u30B0 +Data-Label=\u30BF\u30B0 +M_Insert-Text=\u30C6\u30AD\u30B9\u30C8 +Form-View_Tree=\u30D3\u30E5\u30FC\u30C4\u30EA\u30FC +M_Insert-Chart=\u56F3 +HF-Even_Page=\u5076\u6570\u30DA\u30FC\u30B8 +ReportServerP-Report_server_parameter=\u5E33\u7968\u30B5\u30FC\u30D0\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC +JavaScript-Form_Submit=\u8868\u63D0\u51FA +Horizontal-Split_Layout=\u6C34\u5E73\u5206\u5272\u914D\u7F6E +BorderLayout-Center=\u4E2D +INFO-Reset_Webapp=\u30A2\u30D7\u30EA\u30B1\u30FC\u30B7\u30E7\u30F3\u30B5\u30FC\u30D0\u30FC\u306E\u518D\u8A2D\u5B9A +FR-Designer_Text=\u30C6\u30AD\u30B9\u30C8 +IN_and_INOUT_type_not_as_cursor=IN\u304A\u3088\u3073INOUT\u30BF\u30A4\u30D7\u3067\u306F\u306A\u3044\u30AB\u30FC\u30BD\u30EB\u3068 +Main_Axis=\u30E1\u30A4\u30F3\u5EA7\u6A19\u8EF8 +M_Edit-Cut=\u5207\u308A\u53D6\u308A(T) +Utils-The_Name_has_been_existed=\u5F53\u8A72\u540D\u79F0\u306F\u65E2\u306B\u5B58\u5728\u3057\u3066\u3044\u307E\u3059 +FR-Background_Image=\u753B\u50CF +Character=\u6587\u5B57 +Unit_Thousand=\u5343 +Test=\u30C6\u30B9\u30C8 +Utils-Would_you_like_to_save=\u4FDD\u5B58\u3057\u307E\u3059\u304B +HF-Header_and_Footer=\u30D8\u30C3\u30C0\u30FC\u3068\u30D5\u30C3\u30BF\u30FC +LIST_MODE=\u30EA\u30B9\u30C8 +HF-Insert_Image=\u753B\u50CF\u3092\u633F\u5165 +FR-Designer-Widget-Style_Standard=\u6A19\u6E96 +FR-Designer_Form-List=\u30EA\u30B9\u30C8 +BackgroundTexture-Denim=\u30C7\u30CB\u30E0 +Execute_Report_by_Layer_Engine=\u30E9\u30A4\u30F3\u306E\u30A8\u30F3\u30B8\u30F3\u3067\u5E33\u7968\u3092\u5B9F\u884C\u3059\u308B +M_Edit-Bring_Forward=\u524D\u9762\u3078\u79FB\u52D5(F) +Choose_All=\u5168\u9078\u629E +Form-RadioGroup=\u30E9\u30B8\u30AA\u30DC\u30BF\u30F3\u30B0\u30EB\u30FC\u30D7 +FR-Base_Remove=\u524A\u9664 +FR-Remote_Connect2Server_Again=\u63A5\u7D9A\u304C\u4E2D\u65AD\u3057\u307E\u3057\u305F\u3002\u518D\u5EA6\u30B5\u30FC\u30D0\u30FC\u306B\u63A5\u7D9A\u3057\u307E\u3059\u304B\u3002 +Semicolon=\u5206\u53F7 +StyleFormat-Category=\u5206\u985E +Report_Template=\u5E33\u7968\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8 +Utils-Beyond_the_right_side_of_Border=\u53F3\u9818\u57DF\u3092\u30AA\u30FC\u30D0\u30FC +BackgroundTexture-Papyrus=\u7D19 +LayerPageReport_PageEngine=\u30DA\u30FC\u30B8\u5225\u306E\u6F14\u7B97\u3092\u4F7F\u7528\u3057\u3066\u5E33\u7968\u3092\u57F7\u884C +Schedule-The_selected_file_must_be_end_with_filter=\u9078\u629E\u30D5\u30A1\u30A4\u30EB\u306F.cpt\u53C8\u306F.class\u53C8\u306F.frm +Provide=\u63D0\u4F9B +FormulaD-Math_&_Trig=\u6570\u5B66\u95A2\u6570\u3068\u4E09\u89D2\u95A2\u6570 +FR-Designer-StyleAlignment_Right=\u53F3\u5BC4\u305B +Error_TableDataNameRepeat=\u3059\u3067\u306B\u30B5\u30FC\u30D0\u30FC\u30C7\u30FC\u30BF\u30BB\u30C3\u30C8\u306B\u5B58\u5728\u3059\u308B\u304B\u8907\u6570\u306E\u30C7\u30FC\u30BF\u30BB\u30C3\u30C8\u540D\u304C\u91CD +Choose_None=\u9078\u629E\u3057\u306A\u3044 +File-tree=\u30D5\u30A1\u30A4\u30EB\u30C4\u30EA\u30FC +FRFont-bold=\u592A\u5B57 +FR-Designer_Set_Submit_Condition=\u63D0\u51FA\u6761\u4EF6\u3092\u8A2D\u5B9A +Form-Change_Widget_Name=\u30B3\u30F3\u30C8\u30ED\u30FC\u30EB\u540D\u5909\u66F4 +ReportColumns-Report_Columns=\u5E33\u7968\u30B3\u30E9\u30E0 +Can_not_use_FormatBursh=\u8907\u6570\u9078\u629E\u3057\u305F\u30A8\u30EA\u30A2\u3067\u306F\u66F8\u5F0F\u30D6\u30E9\u30B7\u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\! +CellElement-Property_Table=\u30BB\u30EB\u306E\u30D7\u30ED\u30D1\u30C6\u30A3\u00B7\u30B7\u30FC\u30C8 +Dictionary-Dynamic_SQL=\u52D5\u614BSQL +FR-Designer_Form-CheckBoxGroup=\u30D5\u30EC\u30FC\u30E0\u30BB\u30C3\u30C8\u3092\u8907\u6570\u9078\u629E +DBCP_TIME_BETWEEN_EVICTIONRUNSMILLIS=\u30A2\u30A4\u30C9\u30EB\u63A5\u7D9A\u30EA\u30B5\u30A4\u30AF\u30EB\u30E6\u30CB\u30C3\u30C8\u4F11\u7720\u6642\u9593 +ReportD-Export_Hided_Column=\u96A0\u3057\u305F\u5217\u3092\u5C0E\u51FA +Preference-Support_Undo=\u5143\u306B\u623B\u3057\u3092\u30B5\u30DD\u30FC\u30C8\u3059\u308B +FR-mobile_report_analysis=\u5831\u544A\u66F8\u306E\u89E3\u6790 +Month=\u6708 +Utils-Column_Width=\u5217\u5E45 +Collect-Use_Designer=\u30C7\u30B6\u30A4\u30CA\u30FC\u3092\u4F7F\u7528 +Widget-User_Defined_Editor=\u30D7\u30EC\u5B9A\u7FA9\u30A8\u30C7\u30A3\u30BF\u3067\u3059\u3002\u5F53\u8A72\u30A8\u30C7\u30A3\u30BF\u306F\u30B3\u30F3\u30C8\u30ED\u30FC\u30EB\u7BA1\u7406\u30E1\u30CB\u30E5\u30FC +Unit_Ten_Thousand=\u4E07 +Data_Setting=\u30C7\u30FC\u30BF\u8A2D\u5B9A +ECP_input_pwd=\u30D1\u30B9\u30EF\u30FC\u30C9\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044\: +period=\u3002 +Note=\u6CE8 +Multiline=\u8907\u6570\u884C\u7DE8\u96C6 +Datasource-Convert_Charset=\u6587\u5B57\u30B3\u30FC\u30C9\u5909\u63DB +DashBoard-ConnectionList=\u30C7\u30FC\u30BF\u63A5\u7D9A +Utils-Submit_Forcibly=\u5F37\u884C\u63D0\u51FA +Parent_Marked_Field=\u89AA\u30BF\u30B0\u30D5\u30A3\u30FC\u30EB\u30C9 +Logout=\u9000\u51FA +FR-Designer_Show_Blank_Row=\u7A7A\u767D\u884C\u3092\u88DC\u5145 +FR-Base_Format=\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8 +FR-App-Export_png=PNG\u66F8\u5F0F +Delete_Column=\u5217\u524A\u9664 +SecondGraduationLine=\u5C0F\u3055\u306A\u76EE\u76DB\u308A +SpecifiedG-Groups=\u30B0\u30EB\u30FC\u30D7 +CONTINUUM_MODE=\u96A3\u63A5\u3057\u305F\u9023\u7D9A\u3057\u305F\u30D1\u30B1\u30C3\u30C8 +Datasource-Connection_failed=\u63A5\u7D9A\u5931\u6557 +CategoryName=\u30AB\u30C6\u30B4\u30EA\u30FC\u540D +DBCP_INITIAL_SIZE=\u63A5\u7D9A\u6570\u306E\u521D\u671F\u5316 +Colors=\u8272 +FR-Import-Export_CSV=CSV\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8(\u30B3\u30F3\u30DE\u3067\u5206\u5272) +FR-Designer-StyleAlignment_Left=\u5DE6\u5BC4\u305B +BackgroundTexture-PaperBag=\u7D19\u888B +RWA-BuildIn_SQL=\u5185\u8535SQL +SingleLayer=\u5358\u5C64 +Or-you=\u307E\u305F\u306F +FR-Designer_Certificate_Path=\u8A3C\u66F8\u30EB\u30FC\u30C8 +Utils-Last_Page=\u7D42\u4E86\u9801 +BarCodeD-Drawing_Text=\u30D0\u30FC\u30B3\u30FC\u30C9\u30C6\u30AD\u30B9\u30C8\u3092\u8868\u793A\u3059\u308B +Warning-Template_Do_Not_Exsit=\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u306F\u5B58\u5728\u3057\u307E\u305B\u3093 +BindColumn-Group=\u30B0\u30EB\u30FC\u30D7\u5206\u3051 +Export-SVG=SVG\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8 +Plane3D=\u5E73\u97623D +SessionID=sessionID\u306F\u73FE\u5728\u306E\u30A2\u30AF\u30BB\u30B9\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u306E\u4F1A\u8A71\u30BF\u30B0\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC\u3067\u3059\u3002 +FR-Designer_Height=\u9AD8\u3055 +HF-Odd_Page=\u5947\u6570\u30DA\u30FC\u30B8 +About-All_Rights_Reserved=\u5168\u3066\u306E\u6A29\u5229\u3092\u6240\u6709\u3057\u3066\u3044\u308B +Utils-Current_Cell=\u30AB\u30EC\u30F3\u30C8\u30BB\u30EB +Web_Preview_Message=\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u30D5\u30A1\u30A4\u30EB\u3092\u73FE\u5728\u306E\u904B\u884C\u74B0\u5883\u306E\u76EE\u6B21\u4E0B\u306B\u4FDD\u5B58\u3057\u3066\u304F\u3060\u3055\u3044 +FR-Hyperlink_Chart_Float=\u30B0\u30E9\u30D5\u30CF\u30A4\u30D1\u30FC\u30EA\u30F3\u30AF-\u9023\u52D5\u30D5\u30ED\u30FC\u8981\u7D20 +Dic-Data_Query=\u30C7\u30FC\u30BF\u30AF\u30A8\u30EA\u30FC +CellWrite-Print_Content=\u30BB\u30EB\u306E\u4E2D\u8EAB\u3092\u5370\u5237\u3059\u308B +Privilege-Selected_None_Of_Any_Items=\u9805\u76EE\u3092\u3072\u3068\u3064\u3082\u9078\u629E\u3057\u3066\u3044\u307E\u305B\u3093 +FRFont-Size=\u30B5\u30A4\u30BA +Function-J2EE_server=J2EE_server +FR-Designer_Allow_Blank=\u7A7A\u6B04\u3042\u308A +Build_Tree_Accord_Parent_Marked_Filed=\u89AA\u30BF\u30B0\u30D5\u30A3\u30FC\u30EB\u30C9\u306F\u3001\u69CB\u7BC9\u3055\u308C\u305F\u30C4\u30EA\u30FC\u3092\u8A2D\u5B9A\u3057\u3001\u9078\u629E\u3057\u305F\u30C7\u30FC\u30BF\u306B\u4F9D\u5B58 +Preference-Horizontal_Scroll_Bar_Visible=\u6C34\u5E73\u30B9\u30AF\u30ED\u30FC\u30EB\u30D0\u30FC\u306F\u53EF\u8996 +Scope=\u30B9\u30B3\u30FC\u30D7 +Save_All_Records_In_Memory=\u5168\u3066\u306E\u8A18\u9332\u306F\u30E1\u30E2\u30EA\u306B\u4FDD\u5B58\u3055\u308C\u3066\u3044\u307E\u3059 +FreezeWarning1=\u521D\u671F\u5024\u306F\u6700\u7D42\u5024\u3088\u308A\u5927\u304D\u304F\u3042\u308A\u307E\u305B\u3093 +FlowLayout=\u30D5\u30ED\u30FC\u914D\u7F6E +M_Report-Report_Footer=\u5E33\u7968\u30D5\u30C3\u30BF\u30FC +FR-Action_Add=\u5897\u52A0 +BorderLayout-East=\u6771 +feedback_tip=\u4EE5\u4E0B400\u306E\u5358\u8A9E\u306E\u554F\u984C\u306E\u8AAC\u660E\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044 +FS_Start_Date=\u958B\u59CB\u65E5\u671F +FR-ConditionB_Operator=\u6F14\u7B97\u5B50 +Printer-Alias=\u5225\u540D +DS-Class_Name=\u30AF\u30E9\u30B9\u540D +FR-Designer-Plugin_Has_Been_Disabled=\u30D7\u30E9\u30B0\u30A4\u30F3\u306F\u4F7F\u7528\u304C\u7981\u6B62\u3055\u308C\u3066\u3044\u307E\u3059\u3002\u30C7\u30B6\u30A4\u30CA\u30FC\u3068\u30B5 +Sort-Original=\u30BD\u30FC\u30C8\u3057\u306A\u3044 +Utils-Top_to_Bottom_a=\u4E0A\u304B\u3089\u4E0B\u3078 +Parameter-String=\u6587\u5B57\u5217 +InnerRadis=\u5185\u5F84\u306E\u5927\u304D\u3055 +Want_To_Cover_It=\u3053\u308C\u3092\u8986\u3044\u307E\u3059\u304B +Divided_stage=\u5206\u5272\u3055\u308C\u305F\u30B9\u30C6\u30FC\u30B8 +Seriously=\u53B3\u91CD +ReportServerP-PDF=PDF +Utils-Switch_To_Class_Reportlet=\u30D7\u30ED\u30B0\u30E9\u30E0\u30CD\u30C3\u30C8\u30EF\u30FC\u30AF\u5E33\u7968\u306B\u5207\u308A\u66FF\u3048 +FR-Designer_Show_Blank_Column=\u7A7A\u767D\u5217\u3092\u88DC\u5145 +M_Edit-Redo=\u518D\u5B9F\u884C +Visibility=\u53EF\u8996\u6027 +Series_Use_Default=\u7CFB\u5217\u30C7\u30D5\u30A9\u30EB\u30C8\u4F7F\u7528 +Has_Selected=\u3082\u3046\u9078\u629E +BackgroundTexture-Walnut=\u30AF\u30EB\u30DF +FormulaD-Function_category=\u95A2\u6570\u30BF\u30A4\u30D7 +Interface=\u30A4\u30F3\u30BF\u30FC\u30D5\u30A7\u30A4\u30B9 +FR-Designer-Beyond_Bounds= +seconds=\u79D2 +Auto-Build=\u81EA\u52D5\u7684\u306B\u30D3\u30EB\u30C9 +FR-Designer-Plugin_Install_Successful=\u5F53\u8A72\u30D7\u30E9\u30B0\u30A4\u30F3\u30C7\u30B6\u30A4\u30CA\u30FC\u3068\u30B5\u30FC\u30D0\u30FC\u3092\u518D\u8D77\u52D5\u3059\u308B\u969B\u306B +Template_Path=\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u30EB\u30FC\u30C8 +FR-Designer-FRFont_Bold=\u592A\u304F\u3059\u308B +Poly_Name=\u805A\u5408\u30E2\u30B8\u30E5\u30FC\u30EB\u540D +WorkBook=\u30EF\u30FC\u30AF\u30D6\u30C3\u30AF +Hyperlink-Self_Window=\u73FE\u5728\u306E\u30A6\u30A3\u30F3\u30C9\u30A6 +FR-Designer-Widget-Style_Title=\u6A19\u984C +FR-Designer-FRFont_Size=\u5927\u304D\u3055 +M_File-Export-SVG=SVG +Capacity=\u5BB9\u91CF +Rose_Red=\u30ED\u30FC\u30BA\u30EC\u30C3\u30C9 +StyleAlignment-The_value_of_rotation_must_between_-90_and_90_degrees=\u56DE\u8EE2\u5024\u306F-90\u304B\u308990\u5EA6 +HF-Move_Left=\u5DE6\u3078\u79FB\u52D5\u3059\u308B +Cell_Group=\u30BB\u30EB\u7D44 +Week=\u5468 +PageSetup-Orientation=\u65B9\u5411 +M-Open_Recent=\u6700\u8FD1\u958B\u3044\u305F\u3082\u306E +NNormal=\u6B63\u5E38 +Integer=\u6574\u6570 +Select_The_Source_To_Save=\u8A18\u61B6\u3059\u308B\u9805\u76EE\u3092\u9078\u629E +Transition=\u5206\u679D +FR-Designer_Get_Lock=\u30ED\u30C3\u30AF +one_record_exists_in_many_groups=\u4E00\u3064\u306E\u8A18\u9332\u306F\u8907\u6570\u30B0\u30EB\u30FC\u30D7\u5185\u306B\u5B58\u5728\u53EF\u80FD +FR-Designer_Cover_None=\u5168\u3066\u8986\u308F\u306A\u3044 +DeciPart=\u5C0F\u6570\u90E8\u5206 +ExpandD-Up_Father_Cell=\u4E0A\u89AA\u30BB\u30EB +Deep=\u6DF1\u3055 +FRFont-Shadow=\u5F71 +Reportlet=\u30CD\u30C3\u30C8\u5E33\u7968 +Calendar=\u30AB\u30EC\u30F3\u30C0\u30FC +DateFormat-Custom_Warning=\u6CE8\uFF1A\u30AB\u30B9\u30BF\u30E0\u65E5\u6642\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8\u30B5\u30DD\u30FC\u30C8\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8\u691C\u67FB +Unit_MM=\u30DF\u30EA\u30E1\u30FC\u30C8\u30EB +Server-Start=\u8D77\u52D5 +CellPage-Can_Break_On_Paginate=\u30DA\u30FC\u30B8\u30F3\u30B0\u304C\u5207\u65AD\u3059\u308B\u3053\u3068\u304C\u3067\u304D\u305F\u3068\u304D +Build_Tree_Accord_Marked_Filed_Length=\u69CB\u7BC9\u30C4\u30EA\u30FC\u3092\u8A2D\u5B9A\u3057\u3001\u9078\u629E\u3057\u305F\u30C7\u30FC\u30BF\u306B\u4F9D\u5B58\u3057\u305F\u30D5\u30A3\u30FC\u30EB\u30C9\u306E\u9577\u3055\u3092\u30DE\u30FC\u30AF +ComboCheckBox-Start_Symbol=\u958B\u59CB\u6587\u5B57 +Real=\u5B9F\u969B +RWA-Batch_Modify_Cells=\u6279\u91CF\u4FEE\u6B63\u30BB\u30EB +FR-Designer_Build-Way=\u69CB\u7BC9\u65B9\u6CD5 +Read=\u8AAD\u307F\u53D6\u308A +StyleAlignment-Degrees=\u5EA6 +M_Format_A-Border=\u67A0(B) +Utils-Delete_Record=\u8A18\u9332\u524A\u9664 +Reload=\u518D\u30ED\u30FC\u30C9 +Image-Select_Picture=\u753B\u50CF\u3092\u9078\u629E +RWA-Submit=\u63D0\u51FA\u3059\u308B +the_template=\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8 +FR-Designer_Component_Scale=\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u30B9\u30B1\u30FC\u30EB +FRFont-italic=\u659C\u4F53 +Year=\u5E74 +HF-Move_Right=\u53F3\u3078\u79FB\u52D5\u3059\u308B +Data-Check=\u30C7\u30FC\u30BF\u7BA1\u7406\u30B3\u30F3\u30C8\u30ED\u30FC\u30EB +Unknown=\u672A\u77E5 +Submit_Style=\u63D0\u51FA\u65B9\u6CD5 +Left_Border_Line=\u5DE6\u30D5\u30EC\u30FC\u30E0\u30E9\u30A4\u30F3 +Brown=\u30D6\u30E9\u30A6\u30F3 +Select_A_Tree_DataSource_To_Build=\u30C4\u30EA\u30FC\u30C7\u30FC\u30BF\u30BB\u30C3\u30C8\u3092\u9078\u629E\u3057\u3066\u7D44\u307F\u7ACB\u3066\u3066\u304F\u3060\u3055\u3044 +Overlapping=\u91CD\u306D\u578B +DS-Class_TableData=\u30AF\u30E9\u30B9\u30C7\u30FC\u30BF\u30BD\u30FC\u30B9 +FR-Designer-Plugin_Illegal_Plugin_Zip_Cannot_Be_Install=\u8B58\u5225\u4E0D\u80FD\u306A\u30D7\u30E9\u30B0\u30A4\u30F3\u3067\u3059\u3002\u30A4\u30F3\u30B9 +DisplayNothingBeforeQuery=\u81EA\u52D5\u691C\u7D22\u7121\u3057 +Y_Axis=Y\u8EF8 +FormulaD-Most_Recently_Used=\u5E38\u7528\u95A2\u6570 +FormulaD-Input_formula_in_the_text_area_below=\u30C6\u30AD\u30B9\u30C8\u30DC\u30C3\u30AF\u30B9\u306B\u516C\u5F0F\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044 +Build-Way=\u69CB\u7BC9\u65B9\u6CD5 +M_Edit-Undo=\u5143\u306B\u623B\u3059 +Line-Style=\u7DDA\u5F62 +Datasource-Other_Attributes=\u305D\u306E\u4ED6\u5C5E\u6027 +M_Server-Global_Parameters=\u30B0\u30ED\u30FC\u30D0\u30EB\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC +Suffix=\u5F8C\u7F00 +Image-Image_Files=\u30A4\u30E1\u30FC\u30B8\u30D5\u30A1\u30A4\u30EB +EditRC-Entire_row=\u884C(R) +HF-First_Page=\u30C8\u30C3\u30D7\u30DA\u30FC\u30B8 +BackgroundTexture-Granite=\u307F\u304B\u3052\u77F3 +DataList=\u30C7\u30FC\u30BF\u30C1\u30A7\u30FC\u30F3 +Recursion=\u5E30\u7D0D +BarStyle=\u30B9\u30C8\u30EA\u30C3\u30D7 +FR-Designer-Min_Width= +Utils-Report-Env_Directory=\u5E33\u7968\u4F5C\u696D\u76EE\u6B21 +D-ChartArea=\u30B0\u30E9\u30D5\u30A8\u30EA\u30A2 +Only=\u305F\u3060 +FR-Base_No=\u3044\u3044\u3048 +SpecifiedG-Put_all_others_together=\u4ED6\u306E\u3059\u3079\u3066\u3092\u7D50\u5408\u3059\u308B +HF-NewLine_Des=\u4E0A\u306E\u79FB\u52D5\u3068\u524A\u9664\u30DC\u30BF\u30F3\u3092\u30AF\u30EA\u30C3\u30AF\u3057\u3066\u6539\u884C\u30B3\u30FC\u30C9\u3092\u64CD\u4F5C\u3059\u308B +WLayout-Border-ThreeContainer=\u5317\u3001\u897F\u3001\u4E09\u56FD\u5883\u306E\u30EC\u30A4\u30A2\u30A6\u30C8\u30B3\u30F3\u30C6\u30CA\u30FC\u3068\u5E45\u3092\u8ABF\u6574\u3059\u308B\u5FC5\u8981\u304C\u3042 +Parameter_Name=\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC\u540D +FR-Base_Table=\u8868 +Des-Remove_WorkSheet=\u9078\u629E\u3059\u308B\u5E33\u7968\u306B\u306F\u30C7\u30FC\u30BF\u304C\u3042\u308B\u304B\u3082\u3057\u308C\u307E\u305B\u3093\u304C\u3001\u5B8C\u5168\u306B\u524A\u9664\u3059\u308B\u5834\u5408\u3001 +Rotation=\u56DE\u8EE2 +Undefined=\u672A\u5B9A\u7FA9 +Support-Auto_Complete_Shortcut=\u81EA\u52D5\u3067\u30B7\u30E7\u30FC\u30C8\u30AB\u30C3\u30C8\u30AD\u30FC\u3092\u88DC\u3046 +Set_Column_Title_End=\u91CD\u8907\u3059\u308B\u7D42\u4E86\u5217\u3092\u8A2D\u5B9A +Submit_Url=\u30A2\u30C9\u30EC\u30B9\u63D0\u51FA +ReportServerP-Are_you_sure_to_delete_the_selected_printer=\u9078\u629E\u3055\u308C\u305F\u30D7\u30EA\u30F3\u30BF\u30FC\u3092\u524A\u9664\u3057\u3066 +long_data_can_not_show_fully=\u9577\u3044\u30C7\u30FC\u30BF\u304C\u5341\u5206\u306B\u767A\u63EE\u3059\u308B\u3053\u3068\u304C\u3067\u304D\u307E\u305B\u3093 +Utils-Beyond_the_bottom_side_of_Border=\u4E0B\u9818\u57DF\u3092\u30AA\u30FC\u30D0\u30FC +FR-Import-Export_PDF=PDF\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8 +Form-CheckBoxGroup=\u30D5\u30EC\u30FC\u30E0\u30BB\u30C3\u30C8\u3092\u8907\u6570\u9078\u629E +Click-Me=\u30AF\u30EA\u30C3\u30AF\u3059\u308B\u3068\u30B5\u30D7\u30E9\u30A4\u30BA\u304C\u3042\u308A\u307E\u3059\u3088\uFF01 +Hyperlink-Self=\u540C\u3058Frame(S) +Tree-Select_Leaf_Only_Tips=\u30C1\u30A7\u30C3\u30AF\u3057\u306A\u3044\u5834\u5408\u3001\u623B\u308A\u5024\u306F\u5F53\u30CE\u30FC\u30C9\u3060\u3051\u3002 +StyleAlignment-Text_Rotation=\u30C6\u30AD\u30B9\u30C8\u65B9\u5411 +Format-Error=\u5165\u529B\u3057\u305F\u5024\u306E\u66F8\u5F0F\u304C\u4E0D\u6B63\u78BA\u3067\u3059 +Server-Stop=\u4E00\u6642\u505C\u6B62 +Preference-Setting_Grid=\u30B0\u30EA\u30C3\u30C9\u8A2D\u5B9A +ReportServerP-Add_Printer=\u30D7\u30EA\u30F3\u30BF\u30FC\u8FFD\u52A0 +FR-Designer-Plugin_Active=\u4F7F\u7528\u958B\u59CB +Utils-File_name=\u30D5\u30A1\u30A4\u30EB\u540D +NOT_NULL_Des=\u3053\u3053\u306F\u7A7A\u6B04\u306B\u3059\u308B\u3053\u3068\u304C\u3067\u304D\u307E\u305B\u3093 +Right_Border_Line=\u53F3\u30D5\u30EC\u30FC\u30E0\u30E9\u30A4\u30F3 +EditRC-Entire_column=\u5217(C) +PageSetup-Top_to_bottom=\u4E0A\u304B\u3089\u4E0B\u3078 +Click-Get_Default_URL=\u30AF\u30EA\u30C3\u30AF\u3057\u3066\u30C7\u30D5\u30A9\u30EB\u30C8\u306EURL\u3092\u53D6\u5F97 +StyleAlignment-Wrap_Text=\u81EA\u52D5\u6298\u308A\u8FD4\u3057 +Remove_All_Button=\u5168\u3066\u306E\u30DC\u30BF\u30F3\u3092\u30AF\u30EA\u30A2 +FR-Designer_Component_Interval=\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u306E\u9593\u9694 +ReportColumns-Columns_vertically=\u5782\u76F4\u65B9\u5411\u5217 +ReportGUI-Print_Background=\u5370\u5237\u80CC\u666F +Export-CSV=CSV (\u30AB\u30F3\u30DE\u533A\u5207\u308A) +M_Edit-Paste=\u8CBC\u308A\u4ED8\u3051(P) +FR-Designer-Basic_Restart_Designer=\u30C7\u30B6\u30A4\u30CA\u30FC\u3092\u518D\u8D77\u52D5\u3059\u308B +ReportServerP-PDF2-INFO=LINUX/UNIX\u306B\u4E2D\u56FD\u8A9E\u30D5\u30A9\u30F3\u30C8\u304C\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u3055\u308C\u305F\u6642\u306E\u307F\u4F7F\u7528 +FormulaD-Check_Valid=\u6709\u52B9\u6027\u30C1\u30A7\u30C3\u30AF +server_disconnected=\u5207\u65AD\u3055\u308C\u305F +ParameterD-Parameter_name_cannot_be_null=\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC\u540D\u306F\u7A7A\u5024\u306B\u306A\u3063\u3066\u306F\u3044\u3051\u307E\u305B\u3093 +FR-Designer-Plugin_Version_Is_Lower_Than_Current=\u30A2\u30C3\u30D7\u30B0\u30EC\u30FC\u30C9\u30D1\u30C3\u30AF\u306E\u30D7\u30E9\u30B0\u30A4\u30F3\u30D0\u30FC\u30B8 +RWA-NotChange_Unmodified=\u306E\u6539\u6B63\u3092\u66F4\u65B0\u3057\u306A\u3044 +User_Information=\u30E6\u30FC\u30B6\u30FC\u60C5\u5831 +Custom_styles_lost=\u30AB\u30B9\u30BF\u30DE\u30A4\u30BA\u30B9\u30BF\u30A4\u30EB\u306F\u5931\u308F\u308C\u307E\u3057\u305F +PageSetup-Margin=\u4F59\u767D +M-New_FormBook=\u8868\u3092\u65B0\u898F\u4F5C\u6210 +Widget-TreeNode=\u30C4\u30EA\u30FC\u30CE\u30FC\u30C9\u30DC\u30BF\u30F3 +Form-Url=\u30A2\u30C9\u30EC\u30B9 +Utils-Beyond_the_left_side_of_Border=\u5DE6\u30DC\u30FC\u30C0\u30FC\u8D85\u3048 +Float_Element_Name=\u30D5\u30ED\u30FC\u3068\u8981\u7D20\u540D\u79F0 +Purple=\u8584\u7D2B +DashBoard-Potence=\u6A29\u9650 +M-Close_Template=\u5E33\u7968\u3092\u9589\u3058\u308B(C) +paper=\u7D19 +Not_Exsit=\u5E33\u7968\u306B\u5B58\u5728\u3057\u307E\u305B\u3093 +Utils-Insert_Row=\u884C\u633F\u5165 +Utils-Delete_Row=\u884C\u524A\u9664 +not_support_authority_edit=\u8BE5\u5143\u7D20\u4E0D\u652F\u6301\u6743\u9650\u63A7\u5236 +Formula_Tips=\u5F0F\u306F "\ +FR-Action_Copy=\u30B3\u30D4\u30FC +Compile_Success=\u7DE8\u96C6\u7FFB\u8A33\u306B\u6210\u529F\u3057\u307E\u3057\u305F +BackgroundTexture-RecycledPaper=\u518D\u751F\u7D19 +StyleAlignment-Single_Line=\u4E00\u884C\u3067\u8868\u793A +Utils-Move_Down=\u4E0B\u3078\u79FB\u52D5 +Please_Set_Repeat_First=\u307E\u305A\u91CD\u8907\u3059\u308B\u6A19\u984C\u884C\u3068\u5217\u3092\u8A2D\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044 +Writer-ShortCuts_Setting=\u5831\u544A\u30B7\u30E7\u30FC\u30C8\u30AB\u30C3\u30C8\u30AD\u30FC\u8A2D\u5B9A +Verify-Data_Verify=\u30C7\u30FC\u30BF\u691C\u8A3C +FR-mobile_analysis_style=\u89E3\u6790\u65B9\u5F0F +Confirm-Delete-File=\u9078\u629E\u3057\u305F\u30D5\u30A1\u30A4\u30EB\u3092\u524A\u9664\u3057\u3066\u3082\u3088\u308D\u3057\u3044\u3067\u3059\u304B\uFF1F +PageSetup-Header=\u30DA\u30FC\u30B8\u30D8\u30C3\u30C0 +JavaScrit-Asynch=\u975E\u540C\u671F +ReportServerP-Toolbar=\u30C4\u30FC\u30EB\u30D0\u30FC +Utils-Top_to_Bottom=\u7E26\u65B9\u5411 +Platform=\u30D7\u30E9\u30C3\u30C8\u30D5\u30A9\u30FC\u30E0 +FR-Designer-FRFont_Underline=\u30A2\u30F3\u30C0\u30FC\u30E9\u30A4\u30F3 +Show_in_Containing_Folder=\u6240\u5728\u3059\u308B\u30D5\u30A1\u30A4\u30EB\u3092\u958B\u304F +BackgroundTexture-WaterDroplets=\u3057\u305A\u304F +FR-Designer-Dependence_Install_Failed=install failed +Layout-Padding=\u30D1\u30C7\u30A3\u30F3\u30B0 +roles_already_authority_edited=\u69CB\u6210\u3055\u308C\u305F\u5F79\u5272 +WidgetDisplyPosition=\u30B3\u30F3\u30C8\u30ED\u30FC\u30EB\u8868\u793A\u4F4D\u7F6E +SpecifiedG-Force_Group=\u5F37\u5236\u7684\u306B\u30B0\u30EB\u30FC\u30D4\u30F3\u30B0\u3059\u308B +FormulaD-Formula_Definition=\u516C\u5F0F\u5B9A\u7FA9 +I-xyScatterStyle_Marker=\u6563\u5E03\u56F3 +Hour=\u6642\u9593 +ColorMatch=\u914D\u8272 +M_Edit-Order=\u9806\u5E8F(O) +BackgroundTexture-Bouquet=\u82B1\u675F +Verify-Error_Information=\u30A8\u30E9\u30FC\u60C5\u5831 +LayerData=\u5E95\u5C42\u6570\u636E +Rename=\u540D\u79F0\u306E\u5909\u66F4 +Widget-Load_By_Async=\u975E\u540C\u671F\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9 +Shape=\u56F3\u5F62 +BindColumn-This_Condition_has_been_existed=\u5F53\u8A72\u6761\u4EF6\u306F\u5B58\u5728\u3057\u3066\u3044\u307E\u3059 +NS-exception_readError=\u30A8\u30E9\u30FC\u30B3\u30FC\u30C9\:1305 \u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u30D5\u30A1\u30A4\u30EB\u89E3\u6790\u306B\u30A8\u30E9\u30FC\u304C\u3042\u308A\u307E\u3057\u305F +Set_Column_Title_Start=\u91CD\u8907\u3059\u308B\u6A19\u984C\u5217\u3092\u8A2D\u5B9A +Fri=\u91D1 +M_Report-Report_Parameter=\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC +REPORTLETS=\u8907\u6570\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u306E\u30EB\u30FC\u30C8\u306E\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC\u306B\u30A2\u30AF\u30BB\u30B9 +WLayout-Card-ToolTip=\u30AB\u30FC\u30C9\u306E\u30EC\u30A4\u30A2\u30A6\u30C8\u306F\u3001\u30EC\u30A4\u30A2\u30A6\u30C8\u30B3\u30F3\u30C6\u30CA\u5185\u306E\u4ED6\u306E\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u306E\u6570 +M-Popup_ChartType=\u30B0\u30E9\u30D5\u30BF\u30A4\u30D7 +Please-Wait=\u5C11\u3005\u304A\u5F85\u3061\u304F\u3060\u3055\u3044 +FR-Designer-Form-ToolBar_Widget=\u30B3\u30F3\u30C8\u30ED\u30FC\u30EB +Widget-Array=\u914D\u5217 +FieldBinding=\u30D0\u30F3\u30C7\u30A3\u30F3\u30B0\u30D5\u30A3\u30FC\u30EB\u30C9 +Top_Bottom_Border_Line=\u4E0A\u4E0B\u30D5\u30EC\u30FC\u30E0\u30E9\u30A4\u30F3 +M-Others=\u305D\u306E\u4ED6... +Hyperlink-Link_Opened_in=\u30EA\u30F3\u30AF\u306E\u958B\u3051\u65B9 +FR-Utils_WorkBook=\u4F5C\u696D\u7C3F +M_Insert-Float=\u30D5\u30ED\u30FC\u30C8\u8981\u7D20 +Out_Thick_Border_Line=\u30DC\u30C3\u30AF\u30B9\u30D5\u30EC\u30FC\u30E0\u30E9\u30A4\u30F3 +FR-App-File_Lookup_range=\u691C\u7D22\u7BC4\u56F2 +ReportColumns-Columns_to=\u306E\u3088\u3046\u306B\u6539\u5217\u3059\u308B +Transparent=\u900F\u660E +Parameter-Integer=\u6574\u6570\u578B +PDF-Print_Setting=PDF\u5370\u5237\u8A2D\u5B9A +Server-Embedded_Server=\u5185\u8535\u30B5\u30FC\u30D0\u30FC +M_Server-Server_Config_Manager=\u30B5\u30FC\u30D0\u30FC\u914D\u7F6E(S) +FR-Utils-Would_you_like_to_cover_the_current_file=\u30AB\u30EC\u30F3\u30C8\u30D5\u30A1\u30A4\u30EB\u3092\u4E0A\u66F8\u304D\u3057\u307E\u3059\u304B\uFF1F +CellWrite-InsertRow_COPY=\u5143\u306E\u5024 +Edit_String_To_Formula=\u30AD\u30E3\u30E9\u30AF\u30BF\u30FC\u6587\u5B57\u5217\u3092\u7DE8\u96C6\u3057\u3066\u516C\u5F0F\u3068\u3059\u308B\u304B\u5426\u304B +Edit-Column_Count=\u5217\u6570 +Father=\u89AA +ReportColumns-Columns_after=\u8D85\u3048\u308B +FR-Designer_Undo=\u3084\u308A\u76F4\u3059 +DBCP_MIN_IDLE=\u6700\u5C0F\u30A2\u30A4\u30C9\u30EB\u63A5\u7D9A\u6570 +M-Data_Analysis_Settings=\u30C7\u30FC\u30BF\u5206\u6790\u8A2D\u5B9A +M-Form_Preview=\u8868\u30D7\u30EC\u30D3\u30E5\u30FC +Form-Basic_Properties=\u57FA\u672C\u5C5E\u6027 +quote=\u5F15\u7528 +Thu=\u6728 +Collect-Collect_User_Information=\u30E6\u30FC\u30B6\u30FC\u60C5\u5831\u3092\u53CE\u96C6\u3059\u308B +Layer-Build=\u30D5\u30A1\u30BB\u30C3\u30C8\u7D44\u307F\u7ACB\u3066 +FR-Designer-FRFont_Line_Style=\u7DDA\u5F62 +BackgroundTexture-BrownMarble=\u8336\u8272\u306E\u5927\u7406\u77F3 +PageSetup-Page_Setup=\u30DA\u30FC\u30B8\u8A2D\u5B9A +Form-Semicolon=\u5206\u53F7 +ECP_re_input=\u30D1\u30B9\u30EF\u30FC\u30C9\u304C\u9593\u9055\u3063\u3066\u3044\u307E\u3059\u3002\u518D\u5EA6\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044 +ExpandD-Sort_After_Expand=\u62E1\u5927\u5F8C +FR-Designer-Dependence_Install_Succeed=install succeed +Env-Configure_Workspace=\u4F5C\u696D\u76EE\u6B21\u8A2D\u5B9A +feedback_info=\u8CB4\u91CD\u306A\u610F\u898B\u3042\u308A\u304C\u3068\u3046\u3054\u3056\u3044\u307E\u3059\u3002\u79C1\u9054\u306F\u3067\u304D\u308B\u3060\u3051\u65E9\u304F\u3042\u306A\u305F\u3068\u9023\u7D61\u3057\u307E\u3059\u3002 +Ratio=\u6BD4\u7387 +DBCP_TEST_ON_BORROW=\u63A5\u7D9A\u524D\u691C\u67FB\u3092\u53D6\u5F97 +FR-Designer_layerIndex= +WEB-Write_Setting=\u5831\u544A\u30DA\u30FC\u30B8\u8A2D\u5B9A +M-New_WorkBook=\u30D6\u30C3\u30AF\u3092\u65B0\u898F\u4F5C\u6210 +FR-Designer-Plugin_Has_Been_Actived=\u30D7\u30E9\u30B0\u30A4\u30F3\u306F\u3059\u3067\u306B\u8D77\u52D5\u3055\u308C\u3066\u3044\u307E\u3059\u3002\u30C7\u30B6\u30A4\u30CA\u30FC\u3068\u30B5\u30FC +Datasource-Maximum_Number_of_Preview_Rows=\u30D7\u30EC\u30D3\u30E5\u30FC\u884C\u6570\u6700\u5927\u5024 +ExpandD-Cell_Expand_Attributes=\u62E1\u5F35\u5C5E\u6027 +Select_the_repeated_row_and_column=\u91CD\u8907\u3059\u308B\u5FC5\u8981\u304C\u3042\u308B\u884C\u5217\u3092\u9078\u629E\u3057\u3066\u304F\u3060\u3055\u3044 +FormulaD-Date_&_Time=\u65E5\u4ED8\u3068\u6642\u523B\u95A2\u6570 +Max-Mem-Row-Count=\u30AD\u30E3\u30C3\u30B7\u30E5\u306E\u78C1\u6C17\u30C7\u30A3\u30B9\u30AF\u8A18\u9332\u6570\u306F\u3000\u4EE5\u4E0A +BorderLayout-South=\u5357 +Export-Text=\u30C6\u30AD\u30B9\u30C8\u30D5\u30A1\u30A4\u30EB(\u30BF\u30D6\u533A\u5207\u308A) +JavaScript-Synch=\u540C\u671F +FR-App-All_Warning=\u8B66\u544A +M_Edit-Send_Backward=\u80CC\u9762\u3078\u79FB\u52D5(B) +Form-Layout=\u914D\u7F6E +FR-Designer-Plugin_Shop_Need_Update=\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u306F\u3001\u66F4\u65B0\u3059\u308B\u304B\u3069\u3046\u304B\u3001\u65B0\u3057\u3044\u30D0\u30FC\u30B8\u30E7\u30F3\u3092\u4FDD\u5B58\u3057\u307E\u3059\u304B\uFF1F +FR-Designer_WorkBook=\u30EF\u30FC\u30AF\u30D6\u30C3\u30AF +UpBarBorderStyleAndColor=\u30B9\u30B1\u30FC\u30EB\u30A2\u30C3\u30D7\u30AB\u30E9\u30E0\u30B9\u30BF\u30A4\u30EB +GridLayout=\u683C\u5B50\u914D\u7F6E +Utils-Default_Value=\u30C7\u30D5\u30A9\u30EB\u30C8\u5024 +Widget-Comb_Widget_Config=\u7D44\u307F\u5408\u308F\u305B\u30B3\u30F3\u30C8\u30ED\u30FC\u30EB +Import-Excel2007_Source=Excel2007\u30EA\u30BD\u30FC\u30B9\u30D5\u30A1\u30A4\u30EB +Y-Coordinate=\u7E26\u5EA7\u6A19 +FR-Base_SimSun_Not_Found=\u5B8B\u4F53\u3092\u898B\u3064\u3051\u308B\u3053\u3068\u304C\u3067\u304D\u306A\u3044\u3001\u73FE\u5728\u306E\u30B7\u30B9\u30C6\u30E0\u306E\u4E0B\u3067\u30C7\u30D5\u30A9\u30EB\u30C8\u8A00\u8A9E\u3092\u9078\u629E\u3057\u3066\u304F\u3060\u3055\u3044\u8BBE\u8BA1\u5668\u30D5\u30A9\u30F3\u30C8\u3068\u3057\u3066 +FR-Designer_Seriously=\u53B3\u91CD +Upload=\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9 +Form-Widget_Property_Table=\u5C5E\u6027\u8868 +Des-Merger_Cell=\u9078\u629E\u3055\u308C\u305F\u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u306F\u8907\u6570\u306E\u30C7\u30FC\u30BF\u304C\u542B\u307F\u3001\u30BB\u30EB\u3092\u7D50\u5408\u3057\u305F\u3089\u3001\u5DE6\u4E0A\u5074\u306E\u30C7 +FR-Designer-Basic_Copy_Build_NO=\u30C0\u30D6\u30EB\u30AF\u30EA\u30C3\u30AF\u3057\u3066\u7D44\u307F\u7ACB\u3066\u30D0\u30FC\u30B8\u30E7\u30F3\u756A\u53F7\u3092\u30AF\u30EA\u30C3\u30D7\u30DC\u30FC\u30C9 +FR-Base_TurnOn=\u8D77\u52D5 +FR-Base_Rows=\u884C +Form-Remove_Repeat=\u91CD\u8907\u3059\u308B\u9805\u76EE\u3092\u524A\u9664 +Yes=\u306F\u3044 +Datasource-JNDI_Name=JNDI\u540D +Utils-Delete_Column=\u5217\u524A\u9664 +HF-Delete_it=\u524A\u9664 +JavaScript-Dynamic_Parameters=\u52D5\u614B\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC +px=\u753B\u7D20 +FR-App-Report_Template=\u5E33\u7968\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8 +Verify-Message=\u30A8\u30E9\u30FC\u30E1\u30C3\u30BB\u30FC\u30B8 +Plan=\u30D7\u30E9\u30F3 +Vertical-Split_Layout=\u5782\u76F4\u5206\u5272\u914D\u7F6E +ParameterD-Delay_Playing=\u5831\u544A\u8868\u306E\u5C55\u793A\u3092\u5EF6\u671F\u3057\u307E\u3059 +TurnOff=\u9589\u3058\u308B +FR-Please_Rename=\u518D\u5EA6\u547D\u540D\u3057\u3066\u304F\u3060\u3055\u3044 +Select_Data_Set=\u30C7\u30FC\u30BF\u30BB\u30C3\u30C8\u3092\u9078\u629E +Name_has_Colon=\u540D\u524D\: +ReportColumns-Columns_horizontally=\u6C34\u5E73\u65B9\u5411\u5217 +FR-Base_Yes=\u306F\u3044 +ReportColumns-Repeat_Row=\u884C\u756A\u53F7\u306E\u7E70\u308A\u8FD4\u3057 +Print_Setting=\u5370\u5237\u8A2D\u5B9A +Registration-User_Name=\u30E6\u30FC\u30B6\u540D +Datasource-User_Defined=\u30E6\u30FC\u30B6\u5B9A\u7FA9 +FR-Designer-Plugin_DownLoadMessage= +Delay=\u9045\u5EF6 +FR-Designer-All_MSBold=\u5FAE\u8EDF\u96C5\u9ED2 +Utils-Now_create_connection=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u3078\u306E\u63A5\u7D9A +FR-Template-Path_chooseRightPath=\u6B63\u78BA\u306A\u30EB\u30FC\u30C8\u3092\u9078\u629E\u3057\u3066\u304F\u3060\u3055\u3044 +FR-Remote_Re_Connect_to_Server=\u30B5\u30FC\u30D0\u30FC\u306F\u9589\u3058\u3089\u308C\u307E\u3057\u305F\u3002\u518D\u5EA6\u30B5\u30FC\u30D0\u30FC\u306B\u63A5\u7D9A\u3057\u307E\u3059\u304B? +Nation=\u56FD\u5BB6 +DBCP_MAX_WAIT=\u6700\u5927\u5F85\u3061\u6642\u9593 +FR-App-Template_Form=\u8868 +Address=\u30A2\u30C9\u30EC\u30B9 +Sub_Report=\u5B50\u5E33\u7968 +FR-Import-Export_Word=Word\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8 +FR-Server_Version_Tip=\u73FE\u5728\u306E\u63A5\u7D9A\u3057\u3066\u3044\u308B\u30B5\u30FC\u30D0\u30FC\u306E\u30D0\u30FC\u30B8\u30E7\u30F3\u306F\u4F7F\u7528\u3057\u3066\u3044\u308B\u30C7\u30B6\u30A4\u30CA\u30FC\u306E\u30D0 +StyleAlignment-Left_To_Right=\u5DE6\u304B\u3089\u53F3\u3078 +Verify-ToolTips=\u516C\u5F0F\u304C\u63D0\u793A\u6821\u9A8C\u3082\u6E80\u8DB3\u3057\u3066\u3044\u306A\u3044\u8BEF\u308A\u304C\u60C5\u5831\u3092\u624B\u306B\u5165\u308C\u305F +BackgroundTexture-Stationery=\u4FBF\u7B8B +FR-Designer_RWA-Help=\u8A2D\u5B9A\u3092\u672A\u4FEE\u6B63\u3067\u66F4\u65B0\u305B\u305A\u3001\u30D7\u30EC\u30D3\u30E5\u30FC\u3057\u305F\u5E33\u7968\u3092\u5831\u544A\u3057\u3001\u30BB\u30EB\u306B\u8A18\u9332\u3055\u308C +M_Insert-Barcode=\u30D0\u30FC\u30B3\u30FC\u30C9 +Bounds=\u30DC\u30FC\u30C0\u30FC +FR-Designer-Undo_All_Authority_Operations=\u524D\u56DE\u306E\u6A29\u9650\u7DE8\u96C6\u6642\u306E\u5168\u3066\u306E\u30AA\u30DA\u30EC\u30FC\u30B7\u30E7\u30F3\u3092\u64A4\u56DE\u3059 +Datasource-Context=\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8 +CellWrite-Page_After_Column=\u5217\u5F8C\u306E\u6539\u9801 +FR-Designer_Cancel=\u30AD\u30E3\u30F3\u30BB\u30EB +Button-Group-Display-Columns=\u5217\u306E\u6570\u3092\u8868\u793A\u3059\u308B +Widget-Height=\u30B3\u30F3\u30C8\u30ED\u30FC\u30EB\u9AD8\u3055 +Examples=\u4F8B +Formula_Dictionary_Display_Example=\u5B9F\u969B\u5024\u7BC4\u56F2\u306F\ +StyleAlignment-Horizontal=\u6C34\u5E73\u63C3\u3048 +HyperLink_Must_Alone_Reset=\u8907\u6570\u306E\u30CF\u30A4\u30D1\u30FC\u30EA\u30F3\u30AF +ExpandD-Expand_Direction=\u62E1\u5F35\u65B9\u5411 +Include=\u542B\u3080 +Export-Excel-Page=\u30DA\u30FC\u30B8 +FR-Designer-Min_Height=\u6700\u5C0F\u9AD8\u3055 +Filed=\u30A8\u30EA\u30A2 +ReportServerP-Import_Css=Css\u5F15\u7528 +M_Insert-Formula=\u516C\u5F0F +FR-Designer_Auto-Build=\u81EA\u52D5\u7684\u306B\u30D3\u30EB\u30C9 +FRFont-Foreground=\u8272 +Bubble-Width=\u30D0\u30D6\u30EB\u306E\u5E45 +Form-Hierarchy_Tree=\u69CB\u9020\u30C4\u30EA\u30FC +WLayout-Border-LayoutContainer=\u4E2D\u90E8\u3068\u5317\u90E82\u30DC\u30FC\u30C0\u30FC\u30EC\u30A4\u30A2\u30A6\u30C8\u30B3\u30F3\u30C6\u30CA\u3068\u5317\u90E8\u30D6\u30ED\u30C3\u30AF\u3092\u542B\u3081 +Preference-JDK_Home=JDK\u30D1\u30B9 +Utils-Insert_Column=\u5217\u633F\u5165 +FR-Designer_ToolBar_Top=\u30D8\u30C3\u30C0\u30FC\u30C4\u30FC\u30EB\u30D0\u30FC +BindColumn-The_Conditions_of_FatherCell=\u89AA\u30BB\u30EB\u6761\u4EF6 +Links=\u30EA\u30F3\u30AF +M_Report-Report_Header=\u5E33\u7968\u30D8\u30C3\u30C0\u30FC +Sub_Report_Description=\u5B50\u5E33\u7968\u306F\u89AA\u8868\u904B\u884C\u74B0\u5883\u4E0B\u306B\u5B58\u5728\u3057\u306A\u3051\u308C\u3070\u306A\u3089\u305A\u3001\u4E21\u8005\u306F\u540C\u4E00\u30C6\u30F3\u30D7\u30EC +T_Insert-Float=\u30D5\u30ED\u30FC\u8981\u7D20\u3092\u633F\u5165 +BackgroundTexture-FishFossil=\u9B5A\u5316\u77F3 +My_Computer=\u30DE\u30A4 \u30B3\u30F3\u30D4\u30E5\u30FC\u30BF +FORMLET=\u7570\u306A\u308B\u8868\u306E\u30EB\u30FC\u30C8\u306E\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC\u306B\u30A2\u30AF\u30BB\u30B9 +HF-Undefined=\u672A\u5B9A\u7FA9 +Widget-User_Defined_Widget_Config=\u30D7\u30EC\u5B9A\u7FA9\u30B3\u30F3\u30C8\u30ED\u30FC\u30EB +Report-Write_Attributes_Group_Warning=\u8A2D\u5B9A\u3092\u30AD\u30FC?\u30C1\u30FC\u30E0\u306E\u5404\u30B3\u30E9\u30E0\u306E\u4E2D\u306E\u30AD\u30FC\u4E2A\u6570\u306F\u540C\u3058\u3067 +Form-Single_quote=\u30B7\u30F3\u30B0\u30EB\u30AF\u30A9\u30FC\u30C6\u30FC\u30B7\u30E7\u30F3\u30DE\u30FC\u30AF +Compile_Success_And_Then_Save=\u7DE8\u96C6\u7FFB\u8A33\u6210\u529F\u5F8C\u306B\u4FDD\u5B58\u3067\u304D\u307E\u3059 +FR-Designer_Layout-Padding=\u30D1\u30C7\u30A3\u30F3\u30B0 +Layout_Container=\u30EC\u30A4\u30A2\u30A6\u30C8\u30B3\u30F3\u30C6\u30CA +Admin=\u7BA1\u7406\u8005 +Form-EC_toolbar=\u5E33\u7968\u30E2\u30B8\u30E5\u30FC\u30EB\u30C4\u30FC\u30EB\u30D0\u30FC +FR-App-All_Auto=\u81EA\u52D5 +Utils-Available_Columns=\u9078\u629E\u53EF\u80FD\u306E\u5217 +Form-Change_Widget_Name_Discription=\u65B0\u3057\u3044\u30B3\u30F3\u30C8\u30ED\u30FC\u30EB\u540D\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044 +FR-Module_Designer=\u30C7\u30B6\u30A4\u30CA\u30FC\u30E2\u30B8\u30E5\u30FC\u30EB +FR-Import-Export_Text=\u6587\u66F8\u30D5\u30A1\u30A4\u30EB(\u30BF\u30D6\u6587\u5B57\u5206\u9694) +Values-Editor=\u5024\u30A8\u30C7\u30A3\u30BF +FR-Designer_Yes=\u306F\u3044 +ExpandD-Expandable=\u62E1\u5F35\u6027 +Tree-Return_Full_Path=\u7D50\u679C\u306F\u5B8C\u5168\u306A\u30D1\u30B9\u3092\u623B\u308A\u307E\u3059 +FRFont-bolditalic=\u592A\u5B57\u659C\u4F53 +FR-Base_StyleFormat_Sample=\u4F8B +Area_Value=\u5730\u57DF\u5024 +FR-Designer-Plugin_Disable=\u4F7F\u7528\u7981\u6B62 +Utils-Are_you_sure_to_remove_the_selected_item=\u9078\u629E\u3055\u308C\u305F\u9805\u76EE\u3092\u524A\u9664\u3057\u3066\u3082\u3088\u308D\u3057\u3044\u3067\u3059\u304B +Face_Write=\u5831\u544A +Poly-Report_Block=\u5E33\u7968\u30BF\u30A4\u30D7\u805A\u5408\u30E2\u30B8\u30E5\u30FC\u30EB +Vgap=\u5782\u76F4\u9593\u9699 +FR-Designer_HyperLink_Must_Alone_Reset=\u8907\u6570\u306E\u30CF\u30A4\u30D1\u30FC\u30EA\u30F3\u30AF +DS-Class=\u30D7\u30ED\u30B0\u30E9\u30E0 +FR-Hyperlink_Please_Select_Reportlet=\u30CD\u30C3\u30C8\u30EF\u30FC\u30AF\u5E33\u7968\u3092\u9078\u629E\u3057\u3066\u304F\u3060\u3055\u3044 +FS_Report_Type=\u30BF\u30A4\u30D7 +HF-New_Line=\u6539\u884C\u30B3\u30FC\u30C9 +Privilege=\u6A29\u9650 +Export-Offline-Html=\u30AA\u30D5\u30E9\u30A4\u30F3html\u5E33\u7968\u51FA\u529B +FR-Designer_open-new-form-tip=711\u4EE5\u4E0B\u306E\u751F\u7523\u306E\u305F\u3081\u306E\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u306E\u73FE\u5728\u306E\u30D0\u30FC\u30B8\u30E7\u30F3\u306F\u3001\u4E92 +FR-Designer-Widget-Style_Frame_Style=\u30D5\u30EC\u30FC\u30E0\u30B9\u30BF\u30A4\u30EB +Present-No_Present=\u30D5\u30A9\u30EB\u30E0\u8A2D\u5B9A\u3092\u30AD\u30E3\u30F3\u30BB\u30EB +FR-Designer_Form-Password=\u30D1\u30B9\u30EF\u30FC\u30C9 +X_Axis=X\u8EF8 +FR-mobile_html_analysis=HTML5\u89E3\u6790 +M_Edit-Bring_to_Front=\u6700\u524D\u9762\u3078\u79FB\u52D5(T) +Null_Value_Show=\u7A7A\u5024\u8868\u793A +Datasource-JNDI_DES=\u6CE8\: INITIAL_CONTEXT_FACTORY\u304C\u542B\u3080\u30AF\u30E9\u30B9\u306E.jar\u30D5\u30A1\u30A4\u30EB\u3092lib\u306B\u30B3\u30D4\u30FC +PrintP-Print_Preview=\u5370\u5237\u30D7\u30EC\u30D3\u30E5\u30FC +Form-Hierarchy_Tree_Last=\u524D +Has_been_gone=\ \u5931\u308F\u308C\u307E\u3057\u305F\u3002\u5F53\u8A72\u30B9\u30BF\u30A4\u30EB\u3092\u5897\u52A0\u3057\u307E\u3059\u304B\uFF1F +RWA-Add_Field=\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u8FFD\u52A0 +newNode=\u30CE\u30FC\u30C9\u306E\u8FFD\u52A0 +PageSetup-Shrink_to_fit_content=\u30BB\u30EB\u5185\u5BB9\u306B\u3082\u3068\u3065\u3044\u3066\u81EA\u52D5\u8C03\u6574 +FR-Designer_Date=\u65E5\u4ED8 +Column_Multiple=\u30C7\u30FC\u30BF\u500D\u6570 +FR-App-All_File=\u30D5\u30A1\u30A4\u30EB +Sort-Descending=\u964D\u9806 +FR-Designer-Plugin_Delete=\u524A\u9664 +Above=\u4E0A\u8A18\u306E +Utils-The-Chart=\u30B0\u30E9\u30D5 +FRFont-plain=\u6A19\u6E96 +Calculating=\u51E6\u7406\u4E2D +Form-Object=\u30D5\u30A9\u30FC\u30E0\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8 +May=\u4E94\u6708 +FR-Designer_Plugin_Normal_Update=\u66F4\u65B0 +FR-Hyperlink_Reportlet=\u30CD\u30C3\u30C8\u30EF\u30FC\u30AF\u5E33\u7968 +M_Edit-Copy=\u30B3\u30D4\u30FC(C) +Sub_Report_Message2=\u89AA\u5E33\u7968\u306F\u73FE\u5728\u306E\u904B\u884C\u74B0\u5883\u4E0B\u306B\u5B58\u5728\u3057\u307E\u305B\u3093 +Sub_Report_Message3=\u81EA\u8EAB\u3092\u9078\u629E\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093 +Sub_Report_Message1=\u6B63\u78BA\u306A\u30EB\u30FC\u30C8\u3092\u9078\u629E\u3057\u3066\u304F\u3060\u3055\u3044 +Form-Allow_CustomData=\u30AB\u30B9\u30BF\u30DE\u3042\u308A +FR-Server_Version_Tip_MoreInfo=\u6240\u5C5E\u3059\u308B\u30B0\u30EB\u30FC\u30D7\u304C\u4F7F\u7528\u3059\u308BFineReport\u306E\u30C7\u30B6\u30A4\u30CA\u30FC\u306E\u30D0\u30FC\u30B8 +FR-Designer_Server-version-tip-moreInfo=\u79C1\u305F\u3061\u306E\u88FD\u54C1\u306EFineReport Designer\u30D0\u30FC\u30B8\u30E7\u30F3\u756A\u53F7 +Get_Lock=\u30ED\u30C3\u30AF +HF-Edit_Footer=\u30D5\u30C3\u30BF\u30FC\u7DE8\u96C6 +Datasource-New_Charset=\u65B0\u6587\u5B57\u30B3\u30FC\u30C9 +Preference-Custom=\u30AB\u30B9\u30BF\u30DE\u30A4\u30BA +BackgroundTexture-Newsprint=\u65B0\u805E\u7528\u7D19 +ConditionB-Add_bracket=\u62EC\u5F27\u3092\u8FFD\u52A0\u3059\u308B +Datasource-Connection_successfully=\u63A5\u7D9A\u6210\u529F +Function-The_class_must_implement_the_interface=\u5F53\u8A72\u30AF\u30E9\u30B9\u306F\u30A4\u30F3\u30BF\u30FC\u30D5\u30A7\u30FC\u30B9\u304B\u3089\u30A4\u30F3\u30D7\u30EC +FR-Designer_ChartF-Transparency=\u900F\u660E +Crimson=\u771F\u7D05 +FR-Hyperlink_Dialog=\u5BFE\u8A71\u30A6\u30A3\u30F3\u30C9\u30A6 +FR-Designer_Covered_All=\u5168\u3066\u8986\u3046 +Hyperlink-New_Window=\u65B0\u30A6\u30A3\u30F3\u30C9\u30A6 +Style_Name=\u66F8\u5F0F\u540D +CSS_warning= \u305D\u306E\u3088\u3046\u306AWebReport\\ CSS\u30EA\u30D5\u30A1\u30EC\u30F3\u30B9CSS\u30D5\u30A1\u30A4\u30EB\u304C\u5B58\u5728test.css\u306F\u3001css / test.css\u306E\u76F8\u5BFE\u30D1\u30B9\u3068\u3057\u3066
 \u6BD4\u8F03\u7684\u6587\u5DE5\u5B66\u30C7\u30A3\u30EC\u30AF\u30C8\u30EAWebReport\u3001 +FR-Base_Column=\u5217 +Three_Rows_Of_Two_Grid=2\u683C\u5B50\u306E3\u3064\u306E\u884C +DBCP_VALIDATION_QUERY=SQL\u8A8D\u8A3C\u30AF\u30A8\u30EA +M_Edit-Clear_Formats=\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8(F) +Parameter_Setting=\u30D1\u30E9\u30E1\u30FC\u30BF\u8A2D\u5B9A +Related=\u9023\u52D5 +BorderLayout-Constraints=\u5834\u6240 +Write_Preview=\u5831\u544A\u30D7\u30EC\u30D3\u30E5\u30FC +PageSetup-Page_Order=\u5370\u5237\u9806 +Verify-Verify_Formula=\u691C\u8A3C\u5F0F +State=\u7701\u5E02 +FR-Designer-Widget-Style_Body_Background=\u30E1\u30A4\u30F3\u80CC\u666F +FR-App-Privilege_No=\u6A29\u9650\u304C\u3042\u308A\u307E\u305B\u3093 +Please_Drag_ParaPane= +Come_True=\u5B9F\u73FE +ISEMPTY=\u7A7A\u6B04 +Background-Texture=\u30C6\u30AF\u30B9\u30C1\u30E3 +FR-Designer_Verify-Message=\u30A8\u30E9\u30FC\u30E1\u30C3\u30BB\u30FC\u30B8 +Locked=\uFF08\u30ED\u30C3\u30AF\u6E08\u307F\uFF09 +Utils-Design-Action_Cancel=\u30AD\u30E3\u30F3\u30BB\u30EB +Image-Titled=\u5C55\u958B +Gradient-Direction=\u65B9\u5411\u3092\u5F90\u3005\u306B\u5909\u5316 +Green=\u6DF1\u7DD1 +Report_Engine=\u5E33\u7968\u30A8\u30F3\u30B8\u30F3 +Return-String=\u30AD\u30E3\u30E9\u30AF\u30BF\u30FC\u6587\u5B57\u5217\u306B\u623B\u308B +Margin=\u30DE\u30FC\u30B8\u30F3 +Pitch_Percentage=\u30D4\u30C3\u30C1\u306E\u5272\u5408 +FR-Base_TurnOff=\u9589\u3058\u308B +Utils-has_been_existed=\u65E2\u5B58 +HF-Insert_Formula=\u516C\u5F0F\u3092\u633F\u5165 +Utils-Exit_Designer=\u30C7\u30B6\u30A4\u30CA\u30FC\u3092\u7D42\u4E86\u3059\u308B +Formula_Dictionary_Display=\u4E0A\u306E\u5B9F\u969B\u5024\u7BC4\u56F2\u5185\u306E\u3044\u305A\u308C\u306E\u5024($$$)\u306F\u3001\u305D\u306E\u8868\u793A\u5024\u306F +PageSetup-Left_to_right=\u5DE6\u304B\u3089\u53F3\u3078 +Utils-Import_Excel_Data=\u300CExcel]\u30A4\u30F3\u30D7\u30C3\u30C8 +M-Save=\u4FDD\u5B58 +redo=\u3082\u3046\u4E00\u5EA6\u3059\u308B +Status=\u72B6\u614B +Draw=\u5236\u4F5C +FR-Designer_Message=\u30E1\u30C3\u30BB\u30FC\u30B8 +Records=\u3064\u306E\u8A18\u9332 +FR-Designer_ComboBox=\u30B3\u30F3\u30DC\u30DC\u30C3\u30AF\u30B9 +Driver=\u30C9\u30E9\u30A4\u30D0\u30FC +Template_Parameters=\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC +Form-Remove_Repeat_Data=\u91CD\u8907\u3059\u308B\u30C7\u30FC\u30BF\u3092\u524A\u9664 +ECP_decode=\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u30A2\u30F3\u30ED\u30C3\u30AF +Area_Name=\u5730\u57DF\u540D +Others=\u305D\u306E\u4ED6 +Merge=\u5408\u4F75\u3059\u308B +BackgroundTexture-Parchment=\u7F8A\u76AE\u7D19 +BindColumn-Bottom_N=\u5F8C\u306EN\u500B +Frame=\u30D5\u30EC\u30FC\u30E0 +Bottom_Border_Line=\u30DC\u30C8\u30E0\u30DC\u30FC\u30C0\u30FC +Muiti_In=\u591A\u5C64\u53D6\u308A\u30EA\u30F3\u30B0 +FR-Designer-Dependence_Install_Online=install online +Use_Default_ToolBar=\u30C7\u30D5\u30A9\u30EB\u30C8\u30C4\u30FC\u30EB\u30D0\u30FC\u4F7F\u7528 +M_Server-Platform_Manager=\u5E33\u7968\u30D7\u30E9\u30C3\u30C8\u30D5\u30A9\u30FC\u30E0\u7BA1\u7406 +PageSetup-inches=\u30A4\u30F3\u30C1 +Form-Widget_Property=\u5C5E\u6027\u540D +FR-Layout_Padding=\u5185\u30DE\u30FC\u30B8\u30F3 +Schema=\u30B9\u30AD\u30FC\u30DE +Server_Path=\u30DB\u30B9\u30C8\u30B3\u30F3\u30D4\u30E5\u30FC\u30BF\u4F4D\u7F6E +Condition_Display=\u6761\u4EF6\u8868\u793A +FR-Server-Design_template_unopened=\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u3092\u958B\u304F\u3053\u3068\u304C\u3067\u304D\u307E\u305B\u3093 +Function-Function_Class_Name=\u95A2\u6570\u30AF\u30E9\u30B9\u540D +Schedule-Template=\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u540D +Tree_Data_Field=\u30C4\u30EA\u30FC\u30C7\u30FC\u30BF\u30D5\u30A3\u30FC\u30EB\u30C9 +Border-Style-Normal=\u76F4\u89D2\u306E\u56FD\u5883\u306B +Top_And_Double_Bottom_Border_Line=\u4E0A\u30D5\u30EC\u30FC\u30E0\u30E9\u30A4\u30F3\u3068\u53CC\u4E0B\u30D5\u30EC\u30FC\u30E0\u30E9\u30A4\u30F3 +FR-Server_Embedded_Server_Start=\u5185\u8535\u30B5\u30FC\u30D0\u30FC-\u958B\u304F +FR-Designer-Basic_Restart_Designer_Later=\u5F8C\u3067\u518D\u8D77\u52D5\u3059\u308B +StyleAlignment-Top=\u4E0A\u8A70\u3081 +ReportServerP-First=\u30C8\u30C3\u30D7\u30DA\u30FC\u30B8 +Not_Exist=\u5B58\u5728\u3057\u306A\u3044 +FR-Remote_File_is_Locked=\u958B\u3053\u3046\u3068\u3057\u3066\u3044\u308B\u5E33\u7968\u306F\u73FE\u5728\u4ED6\u306E\u4EBA\u304C\u7DE8\u96C6\u3057\u3066\u3044\u307E\u3059\u3002\u5C11\u3057\u5F85\u3063\u3066\u304B +Apply=\u30A2\u30D7\u30EA +Sytle-Indentation=\u30A4\u30F3\u30C7\u30F3\u30C8 +Parameter-Float=\u5358\u7CBE\u5EA6\u6D6E\u52D5\u5C0F\u6570\u70B9\u6570\u578B +HF-Center_Section=\u4E2D\u592E\u30BB\u30AF\u30B7\u30E7\u30F3 +Form-Double_quotes=\u30C0\u30D6\u30EB\u30AF\u30AA\u30FC\u30C6\u30FC\u30B7\u30E7\u30F3\u30DE\u30FC\u30AF +M_File-Export-Word=Word +M_File-Export-Text=\u30C6\u30AD\u30B9\u30C8\u30D5\u30A1\u30A4\u30EB(\u30BF\u30D6\u533A\u5207\u308A)(T) +PageSetup-First_Page_Number=\u30B9\u30BF\u30FC\u30C8\u306E\u30DA\u30FC\u30B8\u756A\u53F7 +Execute=\u5B9F\u884C +Task=\u30BF\u30B9\u30AF +Custom_Button_Type_Submit=\u63D0\u51FA +FR-Designer-Widget_Settings=\u30B3\u30F3\u30C8\u30ED\u30FC\u30EB\u8A2D\u5B9A +IS_Need_Password=\u30D1\u30B9\u30EF\u30FC\u30C9\u304C\u5FC5\u8981\u3067\u3059 +PageSetup-Horizontally=\u6C34\u5E73\u4E2D\u592E\u63C3\u3048 +No_Editor_Property_Definition=\u5F53\u8A72\u30A8\u30C7\u30A3\u30BF\u306F\u5C5E\u6027\u5B9A\u7FA9\u304C\u3042\u308A\u307E\u305B\u3093 +Env-Remote_Server=\u30EA\u30E2\u30FC\u30C8\u30B5\u30FC\u30D0\u30FC +FR-Utils_Background=\u80CC\u666F +FR-Designer-Plugin_Warning=\u8B66\u544A +Server-version-info=\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u30D5\u30A1\u30A4\u30EB\u306F\u3001\u5F8C\u3067\u8A2D\u8A08\u3084\u5143\u306E\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u5C5E\u6027\u3092\u5931\u3046\u30EA\u30B9\u30AF\u306B +CellWrite-Page_After_Row=\u884C\u5F8C\u306E\u6539\u9801 +HF-Right_Section=\u53F3\u5074\u30BB\u30AF\u30B7\u30E7\u30F3 +PageSetup-Title_Start_Row=\u91CD\u8907\u3059\u308B\u6A19\u984C\u884C +From=\u7B2C\u3000\u304B\u3089 +Preference-Grid_Line_Color=\u30B0\u30EA\u30C3\u30C9\u7DDA\u306E\u8272 +RowTo=\u884C\u304B\u3089\u7B2C\u307E\u3067 +FR-Designer_ReportColumns-Repeat_Column=\u5217\u9806\u5E8F\u3092\u30B3\u30D4\u30FC +M_Server-Function_Manager=\u95A2\u6570\u30DE\u30CD\u30FC\u30B8\u30E3\u30FC +KeyWord=\u30AD\u30FC\u30EF\u30FC\u30C9 +DS-Multi_Dimensional_Database=\u591A\u6B21\u5143\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9 +BiasD-Slope_Line=\u659C\u7DDA +Tue=\u706B +ReportServerP-Last=\u7D42\u4E86\u9801 +FR-Base_Columns=\u5217 +SpecifiedG-Leave_in_their_own_groups=\u5404\u30B0\u30EB\u30FC\u30D7\u5185\u306B\u4FDD\u7559\u3059\u308B +LOG-Please_Wait=\u5C11\u3005\u304A\u5F85\u3061\u304F\u3060\u3055\u3044 +Form-ToolBar=\u8868\u30C4\u30FC\u30EB\u30D0\u30FC +FR-Base_sure_remove_item=\u672C\u5F53\u306B\u9078\u629E\u3057\u305F\u9805\u76EE\u3092\u524A\u9664\u3057\u307E\u3059\u304B +Component_Scale=\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u30B9\u30B1\u30FC\u30EB +Hyperlink-Use_CJK_to_encode_parameter=CJK\u51E6\u7406\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC\u4F7F\u7528 +LOG-Has_Been_Openned=\u958B\u304D\u307E\u3057\u305F +FR-Designer-Dependence= +ECP_error_pwd=\u30D1\u30B9\u30EF\u30FC\u30C9\u30A8\u30E9\u30FC +REPORTLET=\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u306E\u30EB\u30FC\u30C8\u306E\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC\u306B\u30A2\u30AF\u30BB\u30B9 +RWA-Column_Offset=\u5217\u30AA\u30D5\u30BB\u30C3\u30C8 +Forecast=\u4E88\u6E2C +Light_Orange=\u660E\u308B\u3044\u30AA\u30EC\u30F3\u30B8 +StyleAlignment-Vertical=\u5782\u76F4\u63C3\u3048 +Form-List=\u30EA\u30B9\u30C8 +ParameterD-Show_Parameter_Window=\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC\u30A6\u30A4\u30F3\u30C9\u30A6\u3092\u8868\u793A\u3059\u308B +FR-Designer_Set_Submit_Event=\u63D0\u51FA\u4E8B\u4EF6\u3092\u8A2D\u5B9A +Value_Percent=\u5024\u5272\u5408\u4F8B +DBCP_MIN_EVICTABLE_IDLE_TIMEMILLIS=\u30A2\u30A4\u30C9\u30EB\u6700\u5C0F\u6642\u9593\u5024\u4FDD\u6301 +Function-The_class_must_be_located_in=\u5F53\u8A72\u30AF\u30E9\u30B9\u306F\u5B58\u5728\u3057\u306A\u3051\u308C\u3070\u306A\u308A\u307E\u305B\u3093 +FR-Action_Sort=\u30BD\u30FC\u30C8 +DataFunction-Average=\u5E73\u5747 +FR-Designer_Show_in_Containing_Folder=\u6240\u5728\u3059\u308B\u30D5\u30A1\u30A4\u30EB\u3092\u958B\u304F +M_File-Export-Excel=Excel +DataFunction-Max=\u6700\u5927\u5024 +FR-Designer_Form-Widget_Name=\u30B3\u30F3\u30C8\u30ED\u30FC\u30EB\u540D +FS_End_Date=\u7D42\u4E86\u65E5\u671F +Export-Excel-Simple=\u5143 +ColumnTo=\u5217\u306F\u7B2C\u3000\u307E\u3067 +SpecifiedG-Discard_all_others=\u4ED6\u306E\u3059\u3079\u3066\u3092\u7834\u68C4\u3059\u308B +DS-TableData=\u30C7\u30FC\u30BF\u30BD\u30FC\u30B9 +Form-DataTable=\u30C7\u30FC\u30BF\u8868 +Sub_Report_ToolTips=\u5B50\u5E33\u7968\u63D0\u793A +Right_Top=\u53F3\u4E0A +M_Edit-Merge_Cell=\u30BB\u30EB\u3092\u7D50\u5408\u3059\u308B +FR-Designer_Restore_Default=\u30C7\u30D5\u30A9\u30EB\u30C8\u5FA9\u5143 +Component_Interval=\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u306E\u9593\u9694 +Cover_None=\u5168\u3066\u8986\u308F\u306A\u3044 +Datasource-From_Database=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u304B\u3089 +Folder=\u76EE\u6B21 +Form-Allow_Edit=\u76F4\u63A5\u7DE8\u96C6\u3042\u308A +M_Edit-Clear=\u30AF\u30EA\u30A2(A) +ParentCell_Setting=\u89AA\u30BB\u30EB\u8A2D\u5B9A +Only_selected_cell_can_paste_only=\u30BB\u30EB\u306F\u8CBC\u308A\u4ED8\u3051\u308B\u3053\u3068\u304C\u3067\u304D\u307E\u3059\u9078\u629E\u3055\u308C\u3066\u3044\u308B\u5834\u5408\u306B\u306E\u307F +M_Report-Report_Columns=\u5E33\u7968\u30B3\u30E9\u30E0 +Unit_Hundred=\u767E +FR-Designer_DataTable-Build= +Widget-Form_Widget_Config=\u8868\u30B3\u30F3\u30C8\u30ED\u30FC\u30EB +Server-version-tip-moreInfo=\u79C1\u305F\u3061\u306E\u88FD\u54C1\u306EFineReport Designer\u30D0\u30FC\u30B8\u30E7\u30F3\u756A\u53F7\u3060\u3051\u3067\u306A\u304F\u3001 +Actions=\u30A2\u30AF\u30B7\u30E7\u30F3 +FR-Designer-Dependence_Connect_Server_Error=connect error +High=\u9AD8 +HJS-Send_Failed=\u9001\u4FE1\u5931\u6557 +HJS-Message=\u30E1\u30C3\u30BB\u30FC\u30B8\u5185\u5BB9 +File-Allow_Upload_Files=\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9\u304C\u8A31\u53EF\u3055\u308C\u305F\u30D5\u30A1\u30A4\u30EB\u30BF\u30A4\u30D7 +FR-Designer-Form-ToolBar_Chart=\u30B0\u30E9\u30D5 +Thick_Bottom_Border_Line=\u7C97\u5E95\u30D5\u30EC\u30FC\u30E0\u30E9\u30A4\u30F3 +FR-Action_Remove=\u524A\u9664 +FRFont-Style=\u30B9\u30BF\u30A4\u30EB +Select_DataColumn=\u30C7\u30FC\u30BF\u5217\u3092\u9078\u629E +StartValue=\u958B\u59CB\u5024 +SINGLE_FILE_UPLOAD=\u5358\u72EC\u30D5\u30A1\u30A4\u30EB\u306E\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9\u306E\u307F\u30B5\u30DD\u30FC\u30C8 +BackgroundTexture-Cork=\u30B3\u30EB\u30AF\u6813 +M_Format-Data_Map=\u30C7\u30FC\u30BF\u30DE\u30C3\u30D7 +FR-mobile_native_analysis=\u4E00\u6B21\u89E3\u6790 +HighLight=\u30CF\u30A4\u30E9\u30A4\u30C8 +FR-Designer_Dropdown-More-Preview=\u4E0B\u62C9\u83B7\u53D6\u66F4\u591A\u9884\u89C8\u65B9\u5F0F +local=\u30ED\u30FC\u30AB\u30EB +FR-Designer_Gradation=\u69CB\u6210 +PageSetup-Finis_Start_Column=\u91CD\u8907\u3059\u308B\u7D42\u4E86\u5217 +Env-Invalid_User_and_Password=\u7121\u52B9\u306A\u30E6\u30FC\u30B6\u30FC\u540D\u307E\u305F\u306F\u30D1\u30B9\u30EF\u30FC\u30C9\u3067\u3059 +FR-Designer-Plugin_All_Plugins=\u5168\u3066\u306E\u30D7\u30E9\u30B0\u30A4\u30F3 +FR-Designer_Prepare_Export=\u5C0E\u51FA\u3092\u958B\u59CB\u3057\u3066\u3044\u307E\u3059\u3002\u304A\u5F85\u3061\u304F\u3060\u3055\u3044 +DBCP_TEST_ON_RETURN=\u63A5\u7D9A\u524D\u691C\u67FB\u306B\u623B\u308B +no-alternatives=\u5168\u304F\u9078\u629E\u80A2\u304C\u3042\u308A\u307E\u305B\u3093 +FR-Designer_Submmit_WClass=\u30AB\u30B9\u30BF\u30E0\u9001\u4FE1 +M_Insert-Slope_Line=\u659C\u7DDA +FR-Designer-Plugin_Plugin_Description=\u30D7\u30E9\u30B0\u30A4\u30F3\u8AAC\u660E +ExpandD-Not_Expand=\u62E1\u5F35\u3057\u306A\u3044 +Utils-Bottom_to_Top=\u4E0B\u304B\u3089\u4E0A\u3078 +Collect-Click\!_Get_user_information_code=\u30AF\u30EA\u30C3\u30AF\u3057\u3066\!\u30A2\u30AF\u30C6\u30A3\u30D9\u30FC\u30C8\u30B3\u30FC\u30C9\u3092\u53D6\u5F97 +FR-Already_exist=\u73FE\u5728\u306E\u74B0\u5883\u306B\u306F\u5B58\u5728\u3057\u3066\u3044\u307E\u3059\: +Send=\u767A\u9001 +M_Edit-Clear_All=\u5168\u3066\u30AF\u30EA\u30A2(A) +Brown_Orange=\u30D6\u30E9\u30A6\u30F3 +PageSetup-Portrait=\u7E26\u65B9\u5411 +FR-Designer_Form-RadioGroup=\u30E9\u30B8\u30AA\u30DC\u30BF\u30F3\u30B0\u30EB\u30FC\u30D7 +FR-Utils-App_AllFiles=\u5168\u3066\u306E\u30D5\u30A1\u30A4\u30EB +Popup=\u30DD\u30C3\u30D7\u30A2\u30C3\u30D7 +Server_Charset=\u30B5\u30FC\u30D0\u30FC\u30B3\u30FC\u30C7\u30A3\u30F3\u30B0 +CellWrite-Repeat_Content_When_Paging=\u6539\u9801\u3059\u308B\u6642\u7E70\u308A\u8FD4\u3057\u624B\u8868\u793A\u3059\u308B +Utils-No_Pagination=\u6539\u30DA\u30FC\u30B8\u3057\u306A\u3044 +Form-NullLayout=\u7D76\u5BFE\u5B9A\u4F4D +ConditionB-Remove_bracket=\u62EC\u5F27\u3092\u524A\u9664\u3059\u308B +email=\u30E1\u30FC\u30EB\u30DC\u30C3\u30AF\u30B9 +Minute=\u5206\u9593 +FR-Designer-Plugin_Update=\u30D7\u30E9\u30B0\u30A4\u30F3\u66F4\u65B0 +alraedy_close=\u3059\u3067\u306B\u30AA\u30D5 +ComboCheckBox-End_Symbol=\u7D42\u7D50\u6587\u5B57 +DataColumn=\u30C7\u30FC\u30BF\u5217 +Form-Password=\u30D1\u30B9\u30EF\u30FC\u30C9 +FR-Background_Image_Adjust=\u9069\u5FDC +Export-Excel-PageToSheet=\u30B7\u30FC\u30C8 +Edit-Row_Count=\u884C\u6570 +DS-Report_TableData=\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u30C7\u30FC\u30BF\u30BB\u30C3\u30C8 +Sche-Hour=\u6642 +Group_Count=\u7DCF\u6570\u8868\u793A +EndValue=\u7D42\u4E86\u5024 +FR-Designer_Sytle-Indentation=\u30A4\u30F3\u30C7\u30F3\u30C8 +DownBarBorderStyleAndColor=\u30D5\u30A9\u30FC\u30EB\u30AB\u30E9\u30E0\u30B9\u30BF\u30A4\u30EB +World=\u4E16\u754C +FR-Designer-Basic_Cancel=\u30AD\u30E3\u30F3\u30BB\u30EB +Finally=\u6700\u5F8C +Low=\u4F4E +Please_Input_The_Key=\u5BFE\u5FDC\u3059\u308B\u30DE\u30C3\u30D7\u306B\u4F7F\u7528\u3059\u308Bkey\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044 +Smart=\u30A4\u30F3\u30C6\u30EA\u30B8\u30A7\u30F3\u30C8 +Preference-Predefined=\u30D7\u30EC\u5B9A\u7FA9 +Current_custom_global=\u73FE\u5728\u306E\u5E33\u7968\u304C\u7528\u3044\u308B\u30AB\u30B9\u30BF\u30DE\u30A4\u30BA\u5168\u5C40\u30B9\u30BF\u30A4\u30EB +FR-Designer-Plugin_Shop_Need_Install=\u3042\u306A\u305F\u304C\u30A2\u30C9\u30AA\u30F3\u3055\u308C\u3066\u3044\u306A\u3044\u30EA\u30BD\u30FC\u30B9\u306E\u5E97\u8217\u3092\u3001\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9\u3059\u308B\u304B\u3069\u3046\u304B\uFF1F +WEB-Pagination_Setting=\u30DA\u30FC\u30B8\u5225\u30D7\u30EC\u30D3\u30E5\u30FC\u8A2D\u5B9A +RCodeDrawPix=\u753B\u7D20 +FR-Designer-Widget-Style_Alpha=\u4E0D\u900F\u660E\u5EA6 +BorderLayout-North=\u5317 +HJS-Current_Page=\u30AB\u30EC\u30F3\u30C8\u30DA\u30FC\u30B8 +Compile=\u7DE8\u96C6\u7FFB\u8A33 +Show_Blank_Row=\u7A7A\u767D\u884C\u3092\u88DC\u5145 +TableData_Dynamic_Parameter_Setting=\u30C0\u30A4\u30CA\u30DF\u30C3\u30AF\u30D1\u30E9\u30E1\u30FC\u30BF +FR-Background_Image_Default=\u30C7\u30D5\u30A9\u30EB\u30C8 +BackgroundTexture-WhiteMarble=\u767D\u3044\u5927\u7406\u77F3 +DataFunction-Sum=\u5408\u8A08 +Collect-The_user_information_code_is_invalid=\u3053\u306E\u30A2\u30AF\u30C6\u30A3\u30D9\u30FC\u30C8\u30B3\u30FC\u30C9\u306F\u7121\u52B9\u3067\u3059\u3002\u516C\u5F0F\u30DB\u30FC\u30E0\u30DA\u30FC\u30B8\u3067\u7533\u8ACB\u3057\u306A\u304A\u3057\u3066\u304F\u3060\u3055\u3044 +Preference-Locale=\u56FD\u969B\u5316 +M_File-Export-PDF=PDF +BiasD-From-lower_left_to_upper_right=\u5DE6\u4E0B\u5074\u304B\u3089\u53F3\u4E0A\u5074\u3078\u5E83\u304C\u308B +Border-Style=\u67A0\u7DDA\u306E\u30B9\u30BF\u30A4\u30EB +Sort=\u30BD\u30FC\u30C8 +Image-Image_Layout=\u30A4\u30E1\u30FC\u30B8\u30EC\u30A4\u30A2\u30A6\u30C8 +Panel=\u30D1\u30CD\u30EB +FR-Designer-Basic_Copy_Build_NO_OK=\u7D44\u307F\u7ACB\u3066\u30D0\u30FC\u30B8\u30E7\u30F3\u756A\u53F7\u306B\u30B3\u30D4\u30FC\u3057\u307E\u3057\u305F +All_Border_Line=\u3059\u3079\u3066\u306E\u5883\u754C +FR-Utils-Please_Input_a_New_Name=\u65B0\u3057\u3044\u540D\u79F0\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044 +FR-Base_Formula_Plugin=\u30D7\u30E9\u30B0\u30A4\u30F3\u95A2\u6570 +Two_Rows_Of_Three_Grid=3\u683C\u5B50\u306E\u4E8C\u5217 +FR-Designer_Certificate_Pass=https\u30B7\u30FC\u30AF\u30EC\u30C3\u30C8\u30AD\u30FC +Bubble-Series_Name=\u7CFB\u5217\u540D +M-New_Multi_Report=\u7D71\u8A08\u5E33\u7968\u3092\u65B0\u898F\u4F5C\u6210(M) +BackgroundTexture-PinkTissuePaper=\u30D4\u30F3\u30AF\u8272\u306E\u30B5\u30F3\u30C9\u30DA\u30FC\u30D1\u30FC +Preference-Support_Default_Parent_Calculate=\u30C7\u30D5\u30A9\u30EB\u30C8\u89AA\u30BB\u30EB\u306E\u8A08\u7B97 +Show_Blank_Column=\u7A7A\u767D\u5217\u3092\u88DC\u5145 +BaiduMap=\u767E\u5EA6\u30DE\u30C3\u30D7 +Report-Web_Attributes=\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8Web\u5C5E\u6027 +FR-Designer_StyleAlignment-Wrap_Text=\u81EA\u52D5\u6298\u308A\u8FD4\u3057 +Need=\u5FC5\u8981 +Parameter-Double=\u500D\u7CBE\u5EA6\u6D6E\u52D5\u5C0F\u6570\u70B9\u6570\u578B +Config_Servlet=\u9060\u9694\u30B5\u30FC\u30D0\u30FC\u914D\u7F6E +Form-Comma=\u30B3\u30F3\u30DE +Verify=\u691C\u8A3C +PageSetup-Landscape=\u6A2A\u65B9\u5411 +Weeks=\u9031\u9593 +FR-Designer-Widget-Style_Title_Background=\u6A19\u984C\u80CC\u666F +Preference-Pagination_Line_Color=\u6539\u30DA\u30FC\u30B8\u7DDA\u306E\u8272 +Test_URL=\u30C6\u30B9\u30C8\u63A5\u7D9A +Fill_blank_Data=\u7A7A\u767D\u30C7\u30FC\u30BF\u306E\u88DC\u5145 +ReportServerP-The_name_of_printer_cannot_be_null=\u30D7\u30EA\u30F3\u30BF\u30FC\u306E\u540D\u524D\u306F\u7A7A\u5024\u306B\u306A\u306F\u3044\u3051\u307E\u305B\u3093 +FR-Designer-Basic_Copy_Activation_Key=\u30C0\u30D6\u30EB\u30AF\u30EA\u30C3\u30AF\u3057\u3066\u30C7\u30B6\u30A4\u30CA\u30FC\u6574\u7406\u756A\u53F7\u3092\u30AF\u30EA\u30C3\u30D7\u30DC\u30FC +Continuum=\u96A3\u63A5\u9023\u7D9A +BackgroundTexture-MediumWood=\u6FC3\u3044\u8272\u306E\u6728\u76EE +Datasource-Column_Index=\u30B3\u30E9\u30E0\u756A\u53F7 +Function-Function_File=\u95A2\u6570\u30D5\u30A1\u30A4\u30EB +Form-Component_Bounds=\u30B3\u30F3\u30C8\u30ED\u30FC\u30EB\u9818\u57DF +Utils-Submit=\u63D0\u51FA +Conditions_formula=\u6761\u4EF6\u516C\u5F0F +M_Insert-Image=\u30A4\u30E1\u30FC\u30B8 +FR-Designer-Plugin_Will_Be_Delete=\u30D7\u30E9\u30B0\u30A4\u30F3\u306F\u524A\u9664\u3055\u308C\u307E\u3057\u305F\u3002\u30C7\u30B6\u30A4\u30CA\u30FC\u3068\u30B5\u30FC\u30D0\u30FC\u3092\u518D\u8D77 +FormulaD-Functions=\u95A2\u6570 +Mobile_Terminal=\u79FB\u52D5\u7AEF +CheckBox=\u30C1\u30A7\u30C3\u30AF\u30DC\u30C3\u30AF\u30B9 +FR-Designer-Plugin_Install=\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB +Sun=\u65E5 +FR-Designer_ToolBar_Bottom=\u30D5\u30C3\u30BF\u30FC\u30C4\u30FC\u30EB\u30D0\u30FC +Widget-Width=\u30B3\u30F3\u30C8\u30ED\u30FC\u30EB\u5E45 +Series_Name=\u7CFB\u5217\u540D +Set_Row_Title_Start=\u91CD\u8907\u3059\u308B\u6A19\u984C\u884C\u3092\u8A2D\u5B9A +HF-Default_Page=\u30C7\u30D5\u30A9\u30EB\u30C8\u30DA\u30FC\u30B8 +Env_Des=\u30ED\u30B0\u30A4\u30F3\u74B0\u5883\u4E2D\u306E\u5E33\u7968\u5DE5\u7A0B\u306B\u6A29\u9650\u3092\u4ED8\u4E0E\u3059\u308B\u5834\u5408\u3001\u30E6\u30FC\u30B6\u30FC\u540D\u3068\u30D1\u30B9\u30EF\u30FC\u30C9\u306E\u8A18\u5165\u306F\u5FC5\u305A +Widget-User_Defined=\u30D7\u30EC\u5B9A\u7FA9 +Url_location=\u7D76\u5BFE\u30EB\u30FC\u30C8 +Disk_File=\u30CF\u30FC\u30C9\u30C7\u30A3\u30B9\u30AF\u30D5\u30A1\u30A4\u30EB +Inside=\u5185\u90E8 +FR-Designer_filedChosen= +ServerM-Predefined_Styles=\u30D7\u30EC\u5B9A\u7FA9\u30B9\u30BF\u30A4\u30EB +is_need_word_adjust=\u884C\u306E\u9AD8\u3055\u3092\u56FA\u5B9A\u305B\u305A\u5C0E\u51FA +Background-Null=\u80CC\u666F\u306A\u3057 +PageSetup-Vertically=\u5782\u76F4\u4E2D\u592E\u63C3\u3048 +FR-Designer_Root=\u30EB\u30FC\u30C8\u30CE\u30FC\u30C9 +FR-Designer_Form-TextArea=\u6587\u66F8\u57DF +ReportServerP-Import_JavaScript=JavaScript\u5F15\u7528 +Form-TableTree=\u8868\u30C4\u30EA\u30FC +Opened=\u8D77\u52D5\u6E08\u307F +M_Edit-Delete=\u524A\u9664(D) +Widget-Form_Widget_Container=\u8868\u5BB9\u5668 +BindColumn-Summary=\u96C6\u8A08 +Sche-Second=\u79D2 +Server-Open_Service_Manager=\u30B5\u30FC\u30D3\u30B9\u7BA1\u7406\u5668\u3092\u958B\u304F +FRFont-Effects=\u7279\u5225\u52B9\u679C +OtherGroup_Name=\u305D\u306E\u4ED6\u30B0\u30EB\u30FC\u30D7\u306E\u540D\u524D +Specify=\u6307\u5B9A\u3059\u308B +Highlight-Click_to_Choose_Property_To_Modify=\u30AF\u30EA\u30C3\u30AF\u3057\u3066\u5909\u66F4\u3059\u308B\u5C5E\u6027\u3092\u9078\u629E\u3057\u3066\u304F\u3060\u3055\u3044 +triggered=\u30C8\u30EA\u30AC\u30FC +Double_Bottom_BorderLine=\u4E8C\u91CD\u5E95\u30D5\u30EC\u30FC\u30E0\u30E9\u30A4\u30F3 +M_Insert-Sub_Report=\u30B5\u30D6\u5E33\u7968 +Unit_Ten=\u5341 +Polybolck=\u30A2\u30B0\u30EA\u30B2\u30FC\u30B7\u30E7\u30F3\u30D6\u30ED\u30C3\u30AF +Select_sort_order=\u6392\u5217\u9806\u5E8F\u3092\u9078\u629E +HJS-Mail_to=\u53D7\u4FE1\u8005 +StyleAlignment-Left=\u5DE6\u8A70\u3081 +Two_Rows_Of_Two_Grid=2\u884C2\u5217\u306E\u683C\u5B50 +FR-Designer-Form-Please_Drag_ParaPane=\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC\u30D1\u30CD\u30EB\u3092\u3057\u307E\u3063\u3066\u304F\u3060\u3055\u3044 +Milliseconds=\u30DF\u30EA\u79D2 +DataFunction-None=\u306A\u3057 +Delivery=\u4F1D\u9054 +ColumnSpan=\u5217\u7BC4\u56F2 +StyleAlignment-Bottom=\u4E0B\u8A70\u3081 +Read_failure=\u8AAD\u307F\u306B\u969C\u5BB3\u304C\u767A\u751F\u3059\u308B\u3068\u3001\u30BD\u30FC\u30B9\u00B7\u30D5\u30A1\u30A4\u30EB\u304C\u7834\u640D\u3057\u3066\u3044\u308B +Verify-Verify=\u30C7\u30FC\u30BF\u691C\u8A3C +FR-Designer-Widget-Style_Title_Format=\u6A19\u984C\u66F8\u5F0F +FR-Designer_Edit_String_To_Formula=\u30AD\u30E3\u30E9\u30AF\u30BF\u30FC\u6587\u5B57\u5217\u3092\u7DE8\u96C6\u3057\u3066\u516C\u5F0F\u3068\u3059\u308B\u304B\u5426\u304B +FR-Base_UnSignIn=\ \u672A\u30ED\u30B0\u30A4\u30F3 +Every=\u6BCF +CellWrite-Preview_Cell_Content=\u30BB\u30EB\u306E\u5185\u5BB9\u3092\u30D7\u30EC\u30D3\u30E5\u30FC\u3059\u308B +FormulaD-Data_Fields=\u30C7\u30FC\u30BF\u30D5\u30A3\u30FC\u30EB\u30C9 +FR-Designer_Permissions= +FR-Designer_Form_Button= +FR-Designer_WF_Name= +FR-Designer_Role= diff --git a/designer_base/src/com/fr/design/locale/designer_ko_KR.properties b/designer_base/src/com/fr/design/locale/designer_ko_KR.properties index 8753946187..492870eaf5 100644 --- a/designer_base/src/com/fr/design/locale/designer_ko_KR.properties +++ b/designer_base/src/com/fr/design/locale/designer_ko_KR.properties @@ -518,7 +518,6 @@ FR-Designer_Custom_Job_Description=\uC124\uBA85 FR-Designer_Property=\uC18D\uC131 FR-Designer_ClassName=\uD074\uB798\uC2A4\uB124\uC784 FR-Designer_Template_Web_Attributes=\uD15C\uD50C\uB9BF \uC6F9 \uC18D\uC131 - FR-Designer_Polyblock_Edit=\uCDE8\uD569\uBE14\uB7ED\uD3B8\uC9D1 FR-Designer_Function_Description_Area_Text=\uD574\uB2F9\uD074\uB798\uC2A4\uB294\uACC4\uC2B9\uD574\uC57C\uD55C\uB2E4."com.fr.script.AbstractFunction".\uCEF4\uD30C\uC77C\uD6C4\uC758\uD074\uB798\uC2A4\uD30C\uC77C\uC744~\uB85C\uBCF5\uC0AC\nJ2EE\uC11C\uBC84 "{R1}" \uB514\uB809\uD130\uB9AC, \uD544\uC694\uC2DC class \uC0C1\uC751\uD558\uB294 java\uC18C\uC2A4\uD30C\uC77C\uB3C4\uD574\uB2F9\uB514\uB809\uD130\uB9AC\uD558\uB2E8\uC5D0\uB450\uC5B4\uD3B8\uC9D1\uBC0F\uCC3E\uC544\uBCF4\uAE30\uB97C\uD560\uC218\uC788\uC2B5\uB2C8\uB2E4.\n\uC608: {R2} FR-Designer_PageSetup_Horizontal=\uAC00\uB85C @@ -598,3 +597,1394 @@ FR-Designer_Delete_Template= FR-Designer_Mobile_Report_Analysis_Annotation= FR-Designer_DoubleLayer_Report= FR-Designer_Validate= +CellWrite-InsertRow_NULL=\uB110\uAC12 +DashBoard-ChartFloat=\uCC28\uD2B8 +contact_info=\uC5F0\uB77D\uC815\uBCF4(\uC120\uD0DD) +Page_Setup=\uC6F9\uD398\uC774\uC9C0\uC124\uC815 +CellWrite-Print_Export=\uC778\uC1C4\uB098\uAC00\uAE30 +Cannot_Get_Date=\uB0A0\uC9DC\uB97C\uBD88\uB7EC\uC62C\uC218\uC5C6\uC2B5\uB2C8\uB2E4. +FR-Designer_Modify=\uC218\uC815 +M-Write_Preview=\uAE30\uC785\uBBF8\uB9AC\uBCF4\uAE30 +FR-Base_RWA-Key=\uB9C8\uC2A4\uD130\uD0A4 +China=\uC911\uAD6D +Set_Legend_Sytle=\uB3C4\uD45C\uBC94\uB840\uC11C\uC2DD\uC124\uC815 +FR-Designer_Number=\uC22B\uC790 +FR-Designer-Widget-Style_Common=\uC77C\uBC18 +M-Save_As=\uB2E4\uB978\uC774\uB984\uC73C\uB85C\uC800\uC7A5 +Following_parameters_are_not_generated=\uB2E4\uC74C\uB9E4\uAC1C\uBCC0\uC218\uAC00\uC0DD\uC131\uB418\uC9C0\uC54A\uC558\uC2B5\uB2C8\uB2E4. +FR-Designer-Basic_Activation_Key_Copy_OK=\uD074\uB9BD\uBCF4\uB4DC\uC5D0\uBCF5\uC0AC\uB418\uC5C8\uC2B5\uB2C8\uB2E4. +Utils-Current_Sheet=\uD604\uC7AC Sheet +ConditionB-is_less_than=< +BorderLayout-West=\uC11C +AnalysisLine=\uBD84\uC11D\uC120 +Layer_Report_Warnning_info=\uD589\uD0C0\uC785\uC5D4\uC9C4\uC740\uB300\uC6A9\uB7C9\uB370\uC774\uD130\uC5D0\uC11C\uB9CC\uC801\uC6A9\uB429\uB2C8\uB2E4.
\uC774\uC5D4\uC9C4\uC744\uC0AC\uC6A9\uD558\uBA74\uC9C0\uC6D0\uB418\uC9C0\uC54A\uB294\uBB38\uC11C\uD2B9\uC131\uC774\uB9CE\uC544\uC9D1\uB2C8\uB2E4.
\uC0C1\uC138\uB0B4\uC6A9\uC740\uBB38\uC11C\uC758\uAD00\uB828\uC7A5\uC808\uC744\uCC38\uC870\uD574\uC8FC\uC138\uC694. +Tree-Width=\uB108\uBE44 +alert_word=\uBE44\uACE0\uC815\uD589\uB192\uC774\uB0B4\uBCF4\uB0B4\uAE30\uB97C\uC120\uD0DD\uD558\uBA74\uD3B8\uC9D1\uB0B4\uBCF4\uB0B4\uAE30\uC758 word, \uC140\uD589\uB192\uC774\uAC00\uB0B4\uC6A9\uC5D0\uB530\uB77C\uC790\uB3D9\uC73C\uB85C\uB298\uC5B4\uB098\uBA70,\uC774\uC0C1\uD669\uC5D0\uC11C\uB0B4\uBCF4\uB0B4\uAE30\uACB0\uACFC\uD398\uC774\uC9C0\uB098\uB204\uAE30\uC704\uCE58\uB294\uBBF8\uB9AC\uBCF4\uAE30\uACB0\uACFC\uC640\uC77C\uCE58\uD558\uC9C0\uC54A\uC744\uC218\uC788\uC2B5\uB2C8\uB2E4. +PageSetup-Paper_Size=\uC885\uC774\uD06C\uAE30 +M-Page_Setup=\uC6F9\uD398\uC774\uC9C0\uC124\uC815 +DashBoard-FormBook=\uD3FC +X-Coordinate=\uAC00\uB85C\uC88C\uD45C +Style-Line_Spacing=\uD589\uAC04\uACA9 +FR-Designer_Plugin_Should_Update_Title= +Server-Define_Data_Connection=\uB370\uC774\uD130\uB9C1\uD06C\uC815\uC758 +BarInside=\uCEEC\uB7FC\uC548\uCABD +Border-Color=\uD14C\uB450\uB9AC\uC0C9 +NotAllow=\uD569\uBC95\uC801\uC774\uC9C0\uC54A\uC2B5\uB2C8\uB2E4. +Utils-File_type=\uD30C\uC77C\uC720\uD615 +FR-Designer-Plugin_Install_From_Local=\uB85C\uCEEC\uD30C\uC77C\uC5D0\uC11C\uC124\uCE58 +Summary_Method=\uCDE8\uD569\uBC29\uC2DD +Select_Specified_Grouping=\uC0AC\uC6A9\uC790\uC815\uC758\uADF8\uB8F9\uC120\uD0DD +HF-Number_of_Page=\uCD1D\uD398\uC774\uC9C0\uC218 +FR-Designer-Tree_Height=\uB192\uC774 +Owner=\uB9C8\uC2A4\uD130 +Home=\uD648\uD398\uC774\uC9C0 +FR-Server_Embedded_Server_Stop=\uB0B4\uC7A5\uB41C\uC11C\uBC84-\uC815\uC9C0 +FR-Designer-Plugin_Detecting_Update=\uC5C5\uB370\uC774\uD2B8\uAC80\uC0AC\uC911 +HF-Whether_to_define_the_selected_type=\uC120\uD0DD\uD55C\uC720\uD615\uC744\uC815\uC758\uD558\uC2DC\uACA0\uC2B5\uB2C8\uAE4C? +StyleAlignment-Right=\uC624\uB978\uCABD\uC5D0\uB9DE\uCDA4 +FR-Designer_Alignment-Style=\uC815\uB82C\uBC29\uC2DD +PageSetup-Title_Start_Column=\uC911\uBCF5\uC81C\uBAA9\uC5F4 +Tree-Mutiple_Selection_Or_Not=\uB2E4\uC911\uC120\uD0DD +FR-Designer-Plugin_Search=\uAC80\uC0C9 +Choose_Role=\uAD8C\uD55C\uCEE8\uD2B8\uB864 +Append_Delete_Row_Message=\uC8FC\uC758\uFF01 \uC9C0\uC815\uB41C\uC140\uC740\uD655\uC7A5\uC18D\uC131\uC744\uC124\uC815\uD574\uC57C\uD569\uB2C8\uB2E4. +Form-ComboBox=\uBC15\uC2A4\uD480\uB2E4\uC6B4 +PageSetup-Footer=\uD398\uC774\uC9C0\uBC14\uB2E5\uAE00 +Sorting=\uC21C\uC11C\uC911 +DBCP_TEST_WHILE_IDLE=\uC720\uD734\uD68C\uC218\uAE30\uAC80\uC0AC\uC5F4\uAE30 +DS-Embedded_TableData=\uB0B4\uC7A5 \uB370\uC774\uD130 \uC138\uD2B8 +FR-Designer_No-Privilege=\uAD8C\uD55C\uC5C6\uC74C +FRFont-Subscript=\uBC11\uC904 +Background_Settings=\uBC30\uACBD\uC124\uC815 +FormulaD-Invalid_Formula=\uC62C\uBC14\uB974\uC9C0\uC54A\uC740\uC218\uC2DD +FR-Base_Margin=\uC5EC\uBC31 +FR-Designer-Plugin_Shop_Installed=\uD50C\uB7EC\uADF8\uC778 \uC0C1\uC810 \uC989\uC2DC \uC2DC\uC791\uD560\uC9C0 \uC5EC\uBD80\uB97C \uC124\uCE58? +M_Edit-Send_to_Back=\uC81C\uC77C\uBC11\uC5D0\uB450\uAE30(K) +Email-Can_Preview_Report_Content=\uBCF8\uBB38\uBBF8\uB9AC\uBCF4\uAE30\uBB38\uC11C\uB0B4\uC6A9 +FR-Designer-FRFont_Italic=\uAE30\uC6B8\uC784\uAF34 +CellWrite-Print_Background=\uC778\uC1C4/\uBD88\uB7EC\uC624\uAE30 \uC140 \uBC30\uACBD +Wizard=\uC548\uB0B4 +Preference-Is_Drag_Permited=\uB4DC\uB798\uADF8\uC9C0\uC6D0 +FR-Designer_Release_Lock=\uBE44\uBC00\uBC88\uD638\uD574\uC81C +Form-Delimiter=\uAD6C\uBD84\uBB38\uC790 +wrong=\uC624\uB958\uAC00\uBC1C\uC0DD\uD588\uC2B5\uB2C8\uB2E4. +FR-Menu-Server_Chart_PreStyle=\uCC28\uD2B8\uC0AC\uC804\uC815\uC758\uB41C\uC0C9\uBC30\uD569 +Form-Button=\uD0A4 +FormulaD-Valid_Formula=\uB9DE\uB294\uC218\uC2DD +ParameterD-Parameter_Interface=\uB9E4\uAC1C\uBCC0\uC218\uC0AC\uC6A9\uC790\uC778\uD130\uD398\uC774\uC2A4 +At_least_one_visual_worksheet=\uC6CC\uD06C\uBD81\uC5D0\uCD5C\uC18C\uD55C\uAC1C\uC758\uBCF4\uC774\uB294\uC6CC\uD06C\uC2DC\uD2B8\uAC00\uC788\uC5B4\uC57C\uD558\uBA70,\uC0AD\uC81C\uB97C\uC6D0\uD560\uACBD\uC6B0\uC0C8\uC6CC\uD06C\uC2DC\uD2B8\uB97C\uC0BD\uC785\uD574\uC8FC\uC2ED\uC2DC\uC624. +Need_Min_Value=\uD544\uC694\uCD5C\uC18C\uAC12 +Allow_Blank=\uBE48\uCE78\uD5C8\uC6A9 +CellWrite-InsertRow_DEFAULT=\uAE30\uBCF8\uAC12 +Widget-Load_By_Complete=\uC644\uC804\uB85C\uB529 +FR-Designer-Basic_Only_Submit_Current_Sheet= +Sort-Sort_Order=\uC815\uB82C\uC21C\uC11C +File-File_Size_Limit=\uD30C\uC77C\uD06C\uAE30\uC81C\uD55C +PrintP-Print=\uC778\uC1C4(T) +FR-Designer-StyleAlignment_Center=\uAC00\uC6B4\uB370\uC815\uB82C +Preference-Setting_Colors=\uC0C9\uC124\uC815 +Judge=\uD310\uB2E8 +Image-Adjust=\uC801\uC6A9 +Collect-User_Information_DES=\uD65C\uC131\uCF54\uB4DC\uB294\uC0AC\uC6A9\uC790\uC815\uBCF4\uC218\uC9D1\uC5D0\uB9CC\uC774\uC6A9\uB418\uBA70, \uC0C1\uB2E8\uC758 "\uD65C\uC131\uCF54\uB4DC"\uD0A4\uC218\uB839\uC744\uD074\uB9AD\uD558\uBA74\uC0C8\uB85C\uC6B4\uC6F9\uBE0C\uB77C\uC6B0\uC800\uD31D\uC5C5\uC774\uB098\uD0C0\uB0A9\uB2C8\uB2E4.\uC81C\uD488\uD648\uD398\uC774\uC9C0\uC5D0\uB85C\uADF8\uC778\uD558\uC5EC\uBB34\uB8CC\uB85C\uC774\uD65C\uC131\uCF54\uB4DC\uB97C\uBC1B\uB294\uB3703\uBD84\uC774\uC18C\uC6A9\uB418\uBA70\uD55C\uBC88\uB9CC\uC2E4\uC2DC\uD558\uBA74\uB429\uB2C8\uB2E4. +FR-Designer_Plugin_Normal_Update_From_Local=\uB85C\uCEEC\uC5D0\uC11C\uD30C\uC77C\uC5C5\uB370\uC774\uD2B8 +BackgroundTexture-Canvas=\uCE94\uBC84\uC2A4 +BarOutSide=\uCEEC\uB7FC\uBC14\uAE65\uCABD +Preview_ToolTips=\uBBF8\uB9AC\uBCF4\uAE30\uC54C\uB9BC +FRFont-Family=\uC774\uB984 +FR-Lic_does_not_Support_Remote=\uD604\uC7AC \uC0AC\uC6A9\uD558\uACE0 \uC788\uB294 lic\uC740 \uC6D0\uACA9 \uB514\uC790\uC778 \uAE30\uB2A5\uC744 \uC9C0\uC6D0\uD558\uC9C0 \uC54A\uC73C\uBBC0\uB85C lic\uC744 \uC5C5\uADF8\uB808\uC774\uB4DC \uD574 \uC8FC\uC2ED\uC2DC\uC624. +InterfaceStyle=\uC2A4\uD0C0\uC77C +RWA-Key=\uB9C8\uC2A4\uD130\uD0A4 +WF-Name=\uBA85\uCE6D +RWA-Click_Cell_To_Edit_Value=\uD15C\uD50C\uB9BF\uC140\uC218\uC815\uAC12\uD074\uB9AD +Utils-Row_Height=\uD589\uB192\uC774 +ReportD-Excel_Export=\uD15C\uD50C\uB9BF\uB0B4\uBCF4\uB0B4\uAE30\uC18D\uC131 +Form-Please_Select_A_Kind_Of_Form_Container=\uD3FC\uCEE8\uD14C\uC774\uB108\uB97C\uC120\uD0DD\uD574\uC8FC\uC2ED\uC2DC\uC694 +Column_Does_Not_Exsit=\uC5F4\uC774\uC874\uC7AC\uD558\uC9C0\uC54A\uC2B5\uB2C8\uB2E4. +M_Insert-Hyperlink=\uD558\uC774\uD37C\uB9C1\uD06C +can_not_include_underline="_"\uB294\uD3EC\uD568\uD560\uC218\uC5C6\uC2B5\uB2C8\uB2E4. +FR-Designer-Plugin_Jar_Expired=Jar\uD329\uC774\uB108\uBB34\uC624\uB798\uB418\uC5C8\uC2B5\uB2C8\uB2E4. +FR-Background_Image_Extend=\uC7A1\uC544\uB2F9\uAE40 +TopDownShade=\uC0C1\uD558 \uADF8\uB77C\uB370\uC774\uC158 +FR-Base_Right=\uC624\uB298\uCABD +DataBinding=\uB370\uC774\uD130\uBC14\uC778\uB529 +ConnectionPool_Attr=\uCEE4\uB125\uC158\uD480\uC18D\uC131 +Connect_SQL_Cannot_Null=\uB370\uC774\uD130\uB9C1\uD06C\uC640SQL\uD328\uB110\uC740\uBE48\uCE78\uC73C\uB85C\uB458\uC218\uC5C6\uC2B5\uB2C8\uB2E4. +DBCP_MAX_ACTIVE=\uCD5C\uB300 \uC561\uD2F0\uBE0C \uC5F0\uACB0 \uC218 +M_Window-Preference=\uC635\uC158 +ToolBar_Top=\uC0C1\uB2E8\uD234\uBC14 +FR-Designer_Indent-Pixel=\uD654\uC18C +FR-Designer_Unit_MM=\uBC00\uB9AC\uBBF8\uD130 +IDLE=\uC720\uD734 +FRFont-Underline=\uBC11\uC904 +FR-Designer-Plugin_Read_Plugin_List_Error=\uD50C\uB7EC\uADF8\uC778\uB9AC\uC2A4\uD2B8\uB97C\uC77D\uC744\uB54C\uC624\uB958\uBC1C\uC0DD +Type_Set=\uC720\uD615\uC124\uC815 +M_Format_A-Cell_Attributes=\uAE30\uD0C0\uC18D\uC131 +CellWrite-Show_As_Image=\uC774\uBBF8\uC9C0\uB85C\uB0B4\uC6A9\uBCF4\uC774\uAE30 +ShowAsDownload=\uB2E4\uC6B4\uB85C\uB4DC\uB9C1\uD06C\uB85C2\uC9C4\uBC95\uB0B4\uC6A9\uBCF4\uC774\uAE30 +Form-ComboCheckBox=\uCCB4\uD06C\uBC15\uC2A4\uD480\uB2E4\uC6B4 +BackgroundTexture-WovenMat=\uD3B8\uC9C1\uBB3C +BindColumn-Custom_Data_Appearance=\uC0AC\uC6A9\uC790\uC815\uC758\uBCF4\uC774\uAE30 +Actived=\uD65C\uC131\uD654\uB41C +Env-Local_Directory=\uB85C\uCEEC\uB514\uB809\uD130\uB9AC +Form-Colon=\uCF5C\uB860 +Preference-Vertical_Scroll_Bar_Visible=\uC218\uC9C1\uC2A4\uD06C\uB864\uBC14\uB97C\uBCFC\uC218\uC788\uC2B5\uB2C8\uB2E4. +Utils-Show_Cell_Value=\uC140\uAC12\uBCF4\uC774\uAE30 +FR-Designer_ReportColumns-Repeat_Row=\uD589\uBCF5\uC0AC\uC21C\uC11C +SpecifiedG-Specified_Group=\uC0AC\uC6A9\uC790\uC815\uC758\uADF8\uB8F9 +RWA-Smart_Add_Cells=\uC140\uC2A4\uB9C8\uD2B8\uCD94\uAC00 +HF-Left_Section=\uC67C\uCABD\uC601\uC5ED +M_Report-Report_Background=\uC885\uC774\uBC30\uACBD +Image-Extend=\uC7A1\uC544\uB2F9\uAE40 +FS_BI=\uC815\uCC45\uD50C\uB7AB\uD3FC +ToolBar_Bottom=\uD558\uB2E8\uD234\uBC14 +Hgap=\uC218\uD3C9\uD2C8 +FR-Designer_Enter-New-FileName=\uC0C8\uB85C\uC6B4\uD30C\uC77C\uBA85\uC744\uC785\uB825\uD574\uC8FC\uC2ED\uC2DC\uC624. +Verify_Fail=\uAC80\uC0AC\uC2E4\uD328 +CellWrite-InsertRow_Policy=\uD589\uC0BD\uC785\uC815\uCC45 +FR-Designer-Plugin_Illegal_Plugin_Zip=\uB9DE\uB294\uD50C\uB7EC\uADF8\uC778\uD328\uD0A4\uC9C0\uAC00\uC544\uB2D9\uB2C8\uB2E4. +RCodeVersion=\uBC84\uC804 +Convert=\uC804\uD658 +Please_Drag=\uD589\uACFC\uC5F4\uD544\uB4DC\u3001\uCDE8\uD569\uD544\uB4DC\uB97C\uB4DC\uB798\uADF8\uD574\uC8FC\uC2ED\uC2DC\uC624 +FR-Designer-Widget-Style_Preview=\uBBF8\uB9AC\uBCF4\uAE30 +mobile_number=\uD734\uB300\uD3F0\uBC88\uD638 +FR-Designer_Form-ComboCheckBox=\uCCB4\uD06C\uBC15\uC2A4\uD480\uB2E4\uC6B4 +CacheValidateTime=\uBB38\uC11C\uCE90\uC2DC\uC720\uD6A8\uAE30\uAC04 +Hyperlink-Extends_Report_Parameters=\uBB38\uC11C\uC758\uB9E4\uAC1C\uBCC0\uC218\uACC4\uC2B9 +FR-Designer_Values-Editor=\uAC12\uD3B8\uC9D1\uAE30 +Export-Excel=Excel\uC11C\uC2DD +Utils-Left_to_Right=\uAC00\uB85C +ExpandD-Vertical_Extendable=\uC138\uB85C\uB85C\uD655\uC7A5\uAC00\uB2A5 +Utils-Report_Runtime_Env=\uBB38\uC11C\uC791\uC5C5\uB514\uB809\uD130\uB9AC +Utils-Right_to_Left=\uC624\uB978\uCABD\uC5D0\uC11C\uC67C\uCABD\uAE4C\uC9C0 +Utils-Beyond_the_top_side_of_Border=\uC704\uACBD\uACC4\uC120\uBC97\uC5B4\uB0A8 +Exception_StackTrace=\uC2A4\uD0DD\uC815\uBCF4\uC624\uB958 +Corresponding_Fields=\uC0C1\uC751\uD558\uB294\uD544\uB4DC +Form-CheckBox=\uCCB4\uD06C\uBC15\uC2A4 +Utils-Current_Row=\uD604\uC7AC\uD589 +BuildIn=\uB0B4\uC7A5 +BindColumn-Results_Filter=\uACB0\uACFC\uC9D1\uC120\uBCC4 +FR-Designer-Plugin_Manager=\uD50C\uB7EC\uADF8\uC778\uAD00\uB9AC +M_File-Export-CSV=CSV\uC11C\uC2DD(\uC27C\uD45C\uAD6C\uBD84) +Data_Filter=\uB370\uC774\uD130\uC120\uBCC4 +ReportServerP-Edit_Printer=\uD504\uB9B0\uD130\uD3B8\uC9D1 +FR-Designer_Datasource-Stored_Procedure=\uC800\uC7A5\uACFC\uC815 +RESTART=\uC7AC\uBD80\uD305 +FormulaD-Function_name=\uD568\uC218\uC774\uB984 +ChooseOneButton=\uC18C\uD504\uD2B8\uC6E8\uC5B4\uC81C\uC5B4\uC120\uD0DD\uD6C4\uCD94\uAC00\uD574\uC8FC\uC2ED\uC2DC\uC624 +Priority=\uC6B0\uC120\uC21C\uC704 +Datasource-Datasource=\uB370\uC774\uD130\uC18C\uC2A4 +FR-Designer_Width=\uB108\uBE44 +Cannot-Add_To_This_Area=\uD574\uB2F9\uC601\uC5ED\uC5D0\uCD94\uAC00\uD560\uC218\uC5C6\uC2B5\uB2C8\uB2E4. +Run=\uC2E4\uD589 +Set_Submit_Condition=\uC81C\uCD9C\uC870\uAC74\uC124\uC815 +FR-Base_Value=\uAC12 +fileLocked_undeleted=\uD15C\uD50C\uB9BF\uC774\uC7A0\uACA8\uC788\uC5B4\uC0AD\uC81C\uD560\uC218\uC5C6\uC2B5\uB2C8\uB2E4\uFF01 \uD655\uC778\uC744\uD074\uB9AD\uD558\uC5EC\uD15C\uD50C\uB9BF\uB9AC\uC2A4\uD2B8\uC0C8\uB85C\uACE0\uCE68 +Web_Apply=WEB\uC751\uC6A9 +Refresh_Database=\uB370\uC774\uD130\uBCA0\uC774\uC2A4\uC0C8\uB85C\uACE0\uCE68 +Set_Row_Title_End=\uC911\uBCF5\uC885\uB8CC\uD589\uC124\uC815 +FR-Utils-New_Folder=\uC0C8\uD3F4\uB354 +BiasD-From-upper_left_to_lower_right=\uC67C\uCABD\uC0C1\uB2E8\uC5D0\uC11C\uC624\uB978\uCABD\uC544\uB798\uB85C\uB098\uD0C0\uB0B4\uAE30 +CapsLock=\uCEA1\uC2A4\uB85C\uD06C\uD0A4\uAC00\uCF1C\uC838\uC788\uC2B5\uB2C8\uB2E4. +StyleFormat-Sample=\uC608\uC2DC +RWA-Smart_Add_Cell_Group=\uC140\uADF8\uB8F9\uC2A4\uB9C8\uD2B8\uCD94\uAC00 +MConfig-CancelButton=\uCDE8\uC18C +Function-Choose_Function_Class=\uC120\uD0DD\uD568\uC218\uD074\uB798\uC2A4 +LatLng=\uACBD\uB3C4\uCC28\uC6D0 +DS-Server_TableData=\uC11C\uBC84\uB370\uC774\uD130\uC138\uD2B8 +BackgroundTexture-GreenMarble=\uADF8\uB9B0\uB300\uB9AC\uC11D +read_time_out=\uB85C\uB529\uC2DC\uAC04\uCD08\uACFC +JavaScript-Commit_to_Database=\uC81C\uCD9C\uC785\uACE0 +DS-Relation_TableData=\uAD00\uB828\uB370\uC774\uD130\uC138\uD2B8 +CellWrite-Page_Before_Row=\uD589\uC55E\uD398\uC774\uC9C0\uB098\uB204\uAE30 +FR-Designer-Plugin_Load_Plugins_From_Server=\uD50C\uB7EC\uADF8\uC778\uC2A4\uD1A0\uC5B4\uC5D0\uC11C\uB370\uC774\uD130\uB97C\uC5BB\uB294\uC911. +D-Dispaly_Divide_Result_Set_into_Groups=Result set\uB97C\uADF8\uB8F9\uD654\uD569\uB2C8\uB2E4. +Closed=\uC774\uBBF8\uB2EB\uD614\uC2B5\uB2C8\uB2E4. +RWA-Help=\uBBF8\uC218\uC815, \uBBF8\uC5C5\uB370\uC774\uD2B8\uB85C\uC124\uC815\uD55C\uD6C4\uBBF8\uB9AC\uBCF4\uAE30\uBB38\uC11C\uB97C\uC791\uC131\uD558\uC5EC\uB808\uCF54\uB4DC\uB41C\uC140\uC5D0\uD3B8\uC9D1\uC218\uC815\uC0AC\uD56D\uC774\uC5C6\uC744\uACBD\uC6B0\uC774\uB808\uCF54\uB4DC\uB294\uD589\uC5C5\uB370\uC774\uD2B8\uB97C\uC9C4\uD589\uD560\uC218\uC5C6\uC2B5\uB2C8\uB2E4.\n\uB300\uC6A9\uB7C9\uB370\uC774\uD130\uB808\uCF54\uB4DC\uCC3E\uC544\uBCF4\uAE30\uBC0F\uAE30\uC785\uC0C1\uD669\uC5D0\uC11C\uD574\uB2F9\uC124\uC815\uC744\uD558\uBA74\uAE30\uC785\uC81C\uCD9C\uC131\uB2A5\uC744\uB192\uC77C\uC218\uC788\uC2B5\uB2C8\uB2E4. +FR-Designer-Widget-Style_Custom= +FR-Designer-Widget-Style_Render_Style=\uB80C\uB354\uC2A4\uD0C0\uC77C +Highlight-Barcode=\uBC14\uCF54\uB4DC +FR-Designer_Connect_SQL_Cannot_Null=\uB370\uC774\uD130\uB9C1\uD06C\uC640SQL\uD328\uB110\uC740\uBE48\uCE78\uC73C\uB85C\uB458\uC218\uC5C6\uC2B5\uB2C8\uB2E4. +trigger=\uD2B8\uB9AC\uAC70 +M-Data_Analysis=\uB370\uC774\uD130\uBD84\uC11D +Function-The_selected_file_cannot_be_null=\uD30C\uC77C\uC740\uBE48\uCE78\uC73C\uB85C\uB458\uC218\uC5C6\uC2B5\uB2C8\uB2E4. +No-Privilege=\uAD8C\uD55C\uC5C6\uC74C +ReportColumns-Repeat_Column=\uC5F4\uBCF5\uC0AC\uC21C\uC11C +SecondGraduationUnit=\uBCF4\uC870\uB208\uAE08\uB2E8\uC704 +Form-Widget_Property_Value=\uC18D\uC131\uAC12 +GIVE-NAME=\uB124\uC774\uBC0D +FR-Designer_Rename=\uB9AC\uB124\uC784 +Utils-Merge_Cell=\uC140\uBCD1\uD569 +Style-Spacing_After=\uC139\uC158\uB4A4 +Enlarge_Or_Reduce=\uCD95\uC18C +Tree-Height=\uB192\uC774 +RCodeErrorCorrect=\uC5D0\uB7EC\uC218\uC815 +Enter-New-FileName=\uC0C8\uB85C\uC6B4\uD30C\uC77C\uBA85\uC744\uC785\uB825\uD574\uC8FC\uC2ED\uC2DC\uC624. +try_resending=\uB2E4\uC2DC\uBC1C\uC1A1\uD574\uC8FC\uC2ED\uC2DC\uC624. +M-Open_Report=\uC5F4\uAE30... +Please_Select=\uC120\uD0DD\uD574\uC8FC\uC2ED\uC2DC\uC624 +InRow=\uD589(R) +Form-TextArea=\uD14D\uC2A4\uD2B8\uC601\uC5ED +FR-Designer_Https_Enable=\uC2E4\uD589https +Widget-Custom_Widget_Config=\uC0AC\uC6A9\uC790\uC815\uC758\uC18C\uD504\uD2B8\uC6E8\uC5B4\uC81C\uC5B4 +already_exists=\uC774\uBBF8\uC874\uC7AC\uD569\uB2C8\uB2E4. +Original_Marked_Filed=\uCD08\uAE30\uD0DC\uADF8\uD544\uB4DC +BackgroundTexture-Sand=\uBAA8\uB798\uC0AC\uC7A5 +Values=\uAC12 +Not_use_a_cell_attribute_table_editing=\uC140\uC18D\uC131\uC73C\uB85C\uD45C\uB97C\uD3B8\uC9D1\uD560\uC218\uC5C6\uC2B5\uB2C8\uB2E4. +Root=\uB8E8\uD2B8\uB178\uB4DC +cycle=\uC8FC\uAE30 +open-new-form-tip=\uD604\uC7AC\uD15C\uD50C\uB9BF\uC740711\uC774\uD558\uBC84\uC804\uC73C\uB85C\uC791\uC131\uB418\uC5B4\uD638\uD658\uC774\uB418\uC9C0\uC54A\uC544\uC5F4\uC218\uC5C6\uC2B5\uB2C8\uB2E4. \uC774\uD3FC\uC744\uC5F4\uC5B4\uC218\uC815\uD558\uACE0\uC790\uD560\uACBD\uC6B0\uC0C1\uC751\uD558\uB294\uBC84\uC804\uC124\uACC4\uAE30\uB85C\uC5F4\uC5B4\uC8FC\uC2ED\uC2DC\uC624. +Support-Current_Auto_Complete_Shortcut=\uD604\uC7AC\uB2E8\uCD95\uD0A4 +GROUPING_MODE=\uC77C\uBC18\uADF8\uB8F9 +DBCP_MAX_IDLE=\uCD5C\uB300 \uC720\uD734 \uC5F0\uACB0 \uC218 +BackgroundTexture-BlueTissuePaper=\uBE14\uB8E8\uC0AC\uD3EC +ReportD-Export_Hided_Row=\uC228\uAE34\uD589\uBCF4\uC774\uAE30 +FR-Custom_styles_lost=\uC0AC\uC6A9\uC790\uC815\uC758\uC591\uC2DD\uC774\uC5C6\uC2B5\uB2C8\uB2E4. +Env-Des2=Servlet\uC704\uCE58\uB294\uD638\uC2A4\uD2B8\uCEF4\uD4E8\uD130\uC774\uB984\uFF0C\uD3EC\uD2B8\uFF0CWEB\uC751\uC6A9\uFF0CServlet\uC758\uADF8\uB8F9\uC774\uBA70,Servlet\uB97C\uAC00\uB9AC\uCF1C\uC57C\uD569\uB2C8\uB2E4.\uC608: "http\://localhost\:8080/WebReport/ReportServer". \uD638\uC2A4\uD2B8\uCEF4\uD4E8\uD130\uC774\uB984\uFF0C\uD3EC\uD2B8\uFF0C WEB\uC751\uC6A9\uFF0C Servlet\uC744\uC120\uD0DD\uD560\uC218\uC788\uC73C\uBA70,\uC774\uB294\uC0AC\uC6A9\uC790\uAC00\uD544\uC694\uB85C\uD558\uB294 Servlet\uC704\uCE58\uB97C\uC790\uB3D9\uC0DD\uC131\uD569\uB2C8\uB2E4. +Env-Des1=\uBB38\uC11C\uC11C\uBC84\uAC00\uC788\uB294WEB-INF\uB514\uB809\uD130\uB9AC\uB97C\uC120\uD0DD\uD574\uC8FC\uC2ED\uC2DC\uC624. +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 +Classifier-Ge=\uAC1C +MSBold=\uB9C8\uC774\uD06C\uB85C\uC18C\uD504\uD2B8 Yahei +Form-Design_Size=\uB514\uC790\uC778\uC0AC\uC774\uC988 +FR-App-Template_Save=\uC800\uC7A5 +ExpandD-Horizontal_Extendable=\uAC00\uB85C\uB85C\uD655\uC7A5\uAC00\uB2A5 +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=\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) +Indent-Pixel=\uD654\uC18C +FR-Designer-Widget-Style_Border_Line=\uD14C\uB450\uB9AC\uAD75\uAE30 +Widget-Default_Widget_Config=\uAE30\uBCF8\uC18C\uD504\uD2B8\uC6E8\uC5B4\uC81C\uC5B4 +Version-does-not-support=\uD604\uC7AC \uC0AC\uC6A9\uD558\uACE0 \uC788\uB294 lic\uC740 \uC6D0\uACA9 \uB514\uC790\uC778 \uAE30\uB2A5\uC744 \uC9C0\uC6D0\uD558\uC9C0 \uC54A\uC73C\uBBC0\uB85C lic\uC744 \uC5C5\uADF8\uB808\uC774\uB4DC \uD574 \uC8FC\uC2ED\uC2DC\uC624. +StyleAlignment-Right_To_Left=\uC624\uB978\uCABD\uC5D0\uC11C\uC67C\uCABD\uC73C\uB85C +Style-Spacing_Before=\uC139\uC158\uC55E +Has_Existed=\uC774\uBBF8\uC874\uC7AC\uD569\uB2C8\uB2E4. +FR-Designer_DisplayNothingBeforeQuery=\uCC3E\uC544\uBCF4\uAE30\uD074\uB9AD\uC804\uBB38\uC11C\uB0B4\uC6A9\uBCF4\uC774\uC9C0\uC54A\uAE30 +Still=\uC5EC\uC804\uD788 +JS_WARNING2=\\uc608\uFF1Ahttp\://localhost\:8075/WebReport/demo.js +JS_WARNING1=\\uc0c1\uB300\uBB38\uC11C\uD504\uB85C\uC81D\uD2B8\uB514\uB809\uD130\uB9AC(\uC608:WebReport,WebReport\\js\uC5D0\uC11C\uC778\uC6A9\uD55C js \uD30C\uC77Ctest.js)\uB294\uC0C1\uB300\uACBD\uB85C\uAC00js/test.js\uC785\uB2C8\uB2E4. +Connectionline=\uC5F0\uACB0\uBAA8\uB4DC +Utils-Insert_Record=\uB808\uCF54\uB4DC\uC0BD\uC785 +Set-Parameter-Name=\uB9E4\uAC1C\uBCC0\uC218\uC774\uB984\uC744\uC124\uC815\uD574\uC8FC\uC2ED\uC2DC\uC624 +More-information=\uC815\uBCF4\uB354\uBCF4\uAE30 +Parameter-Boolean=\uBD88\uB9B0\uD0C0\uC785 +FRFont-Strikethrough=\uC120\uC0AD\uC81C +Server-version-tip=\uD604\uC7AC\uC5F0\uACB0\uB41C\uC11C\uBC84\uBC84\uC804\uC774\uB2F9\uC2E0\uC774\uC0AC\uC6A9\uD558\uACE0\uC788\uB294\uC124\uACC4\uAE30\uBC84\uC804\uBC88\uD638\uBCF4\uB2E4\uB0AE\uC2B5\uB2C8\uB2E4.\uACC4\uC18D\uC5F0\uACB0\uD558\uBA74\uD3B8\uC9D1\uD558\uACE0\uC788\uB294\uC77C\uBD80\uC18D\uC131\uC774\uC800\uC7A5\uB418\uC9C0\uC54A\uC744\uC218\uC788\uC2B5\uB2C8\uB2E4. \uC5F0\uACB0\uD574\uC57C\uD560\uACBD\uC6B0\uC124\uACC4\uAE30\uBC84\uC804\uACFC\uC11C\uBC84\uBC84\uC804\uC744\uC77C\uCE58\uC2DC\uCF1C\uC8FC\uC2ED\uC2DC\uC624. +Form-All_Files=\uBAA8\uB4E0\uD30C\uC77C +DBCP_NUM_TEST_PER_EVCTION_RUN=\uC720\uD734\uB9C1\uD06C\uD68C\uC218\uAC80\uC0AC\uC218 +FR-Designer-FRFont_Family=\uC774\uB984 +Device=\uC124\uBE44 +M_Insert-Cell=\uC140\uC694\uC18C +Present-Formula_Present=\uC218\uC2DD\uD615\uD0DC +FRFont-Superscript=\uC717\uC904 +CellWrite-Page_Before_Column=\uC5F4\uC55E\uD398\uC774\uC9C0\uB098\uB204\uAE30 +Golden=\uACE8\uB4DC\uC0C9 +Preference-Support_Cell_Editor_Definition=\uC140\uD3B8\uC9D1\uAE30\uC9C0\uC6D0 +M-Page_Preview=\uD398\uC774\uC9C0\uB098\uB204\uAE30\uBBF8\uB9AC\uBCF4\uAE30 +HJS-CC_to=\uBC1C\uC1A1 +Tree-Select_Leaf_Only=\uB9C6(Leaf) \uB178\uB4DC\uB85C\uB9CC\uB418\uB3CC\uB9AC\uAE30 +Pointer-A-Tick-Order=\uD3EC\uC778\uD130\uAC12\uBC0F\uB208\uAE08\uAC12\uC218\uB4F1\uAE09 +Pink=\uD551\uD06C +StyleAlignment-Distibuted=\uBD84\uC0B0\uC815\uB82C +Odd=\uD640\uC218 +already-saved=\uC800\uC7A5\uB418\uC5C8\uC2B5\uB2C8\uB2E4. +FR-Hyperlink_Chart_Cell=\uCC28\uD2B8 \uD558\uC774\uD37C\uB9C1\uD06C-\uC140 \uC5F0\uB3D9 +Style-Left_Indent=\uC67C\uCABD\uB4E4\uC5EC\uC4F0\uAE30 +Offline=\uC624\uD504\uB77C\uC778 +Form-Hierarchy_Tree_Next=\uB2E4\uC74C +Needle=\uD3EC\uC778\uD130 +GoogleMap=\uAD6C\uAE00\uC9C0\uB3C4 +Running=\uC2E4\uD589\uC911 +M_Edit-Unmerge_Cell=\uC140\uBCD1\uD569\uCDE8\uC18C +Out_Border_Line=\uBC14\uAE65\uCABD\uD14C\uB450\uB9AC\uC120 +Style-Spacing=\uAC04\uACA9 +FR-Utils_Submit=\uC81C\uCD9C +ReportServerP-Previous=\uC774\uC804\uD398\uC774\uC9C0 +StyleAlignment-Text_Style=\uD14D\uC2A4\uD2B8\uCEE8\uD2B8\uB864 +RelatedChart=\uCC28\uD2B8\uC5F0\uB3D9 +ProcessManager=\uD504\uB85C\uC138\uC2A4\uAD00\uB9AC +Cancel_Repeat_Attributes=\uC911\uBCF5\uB41C\uD589\uACFC\uC5F4\uCDE8\uC18C +FR-App-File_Message=\uC815\uBCF4 +Datasource-Stored_Procedure=\uC800\uC7A5\uACFC\uC815 +RWA-Row_Offset=\uD589\uC635\uC14B +M_Format-Style=\uC591\uC2DD +detail_description=\uC0C1\uC138\uC124\uBA85 +FR-Designer-Widget-Style_Title_Content=\uC81C\uBAA9\uB0B4\uC6A9 +ParameterD-Report_Parameter=\uBB38\uC11C\uB9E4\uAC1C\uBCC0\uC218 +HF-Edit_Header=\uD398\uC774\uC9C0\uBA38\uB9AC\uAE00\uD3B8\uC9D1 +Sytle-FRFont=\uAE00\uAF34 +FR-Designer_Finish_Export=\uB0B4\uBCF4\uB0B4\uAE30\uC644\uB8CC +MultiFileUpload=\uC5EC\uB7EC\uD30C\uC77C\uC5C5\uB85C\uB4DC +HF-Page_Number=\uD398\uC774\uC9C0\uBC88\uD638 +Style-Right_Indent=\uC624\uB978\uCABD\uB4E4\uC5EC\uC4F0\uAE30 +Desktop=\uBC14\uD0D5\uD654\uBA74 +FR-Server-All_Error=\uC624\uB958 +ConditionB-Operator=\uC870\uC791\uBD80\uD638 +Today=\uC624\uB298 +Form-Widget_Name=\uC18C\uD504\uD2B8\uC6E8\uC5B4\uC81C\uC5B4\uC774\uB984 +Covered_All=\uBAA8\uB450\uB36E\uC5B4\uC50C\uC6B0\uAE30 +Day=\uC77C +External=\uBC14\uAE65 +Black_Font=\uD751\uCCB4 +LOG-Report_Server_IS_Started=\uBB38\uC11C\uC11C\uBC84\uC2E4\uD589\uC911 +Tips\:You_Can_Input_B1_To_Input_The_Data_Of_The_First_Row_Second_Column=\uC54C\uB9BC\: B1\uC744\uC785\uB825\uD558\uC5EC\uCCAB\uBC88\uC9F8\uD589\uB450\uBC88\uC9F8\uC5F4\uC758\uB370\uC774\uD130\uB97C\uC785\uB825\uD560\uC218\uC788\uC2B5\uB2C8\uB2E4. +FR-Designer_ChooseOneButton=\uC18C\uD504\uD2B8\uC6E8\uC5B4\uC81C\uC5B4\uC120\uD0DD\uD6C4\uCD94\uAC00\uD574\uC8FC\uC2ED\uC2DC\uC624 +Widget-Sizing=\uD06C\uAE30\uC870\uC815 +NO_Border_Line=\uD14C\uB450\uB9AC\uC120\uC5C6\uC74C +Cell_Data=\uC140\uB370\uC774\uD130 +StyleAlignment-Vertical_Text=\uD14D\uC2A4\uD2B8\uC138\uB85C\uC815\uB82C +Label=\uB808\uC774\uBE14 +Orange=\uC8FC\uD669 +zeroMarginWarn=\uD504\uB9B0\uD130\uC5D0\uBB3C\uB9AC\uC801\uC5EC\uBC31\uC874\uC7AC
\uBB38\uC11C\uC758\uD398\uC774\uC9C0\uC5EC\uBC31\uC124\uC815\uC774\uB108\uBB34\uC791\uC73C\uBA74
\uB0B4\uC6A9\uC774\uC644\uC804\uD558\uAC8C\uC778\uC1C4\uB418\uC9C0\uC54A\uC744\uC218\uC788\uC2B5\uB2C8\uB2E4.
  +Widget-Date_Selector_Return_Type=\uB9AC\uD134\uAC12\uC720\uD615 +Utils-Switch_To_Template_Reportlet=\uD15C\uD50C\uB9BF\uB124\uD2B8\uC6CC\uD06C\uBB38\uC11C\uB85C\uC804\uD658 +satisfy=\uC870\uAC74\uCDA9\uC871 +FR-Designer_WidgetDisplyPosition=\uC18C\uD504\uD2B8\uC6E8\uC5B4\uC81C\uC5B4\uD654\uBA74\uC704\uCE58 +FR-Base_Top=\uC704 +FR-Designer_Form-CheckBox=\uCCB4\uD06C\uBC15\uC2A4 +Reportlet-Parameter_Type=\uB9E4\uAC1C\uBCC0\uC218\uC804\uB2EC\uBC29\uC2DD +sending=\uBC1C\uC1A1\uC911... +FR-Designer-FRFont_Foreground=\uC0C9 +FR-Import-Export_SVG=SVG\uC11C\uC2DD +M_Edit-Clear_Contents=\uB0B4\uC6A9(C) +Session=\uC138\uC158 +Widget-Load_Type=\uB85C\uB529 +template_unsaved=\uD15C\uD50C\uB9BF\uC744\uC800\uC7A5\uD560\uC218\uC5C6\uC2B5\uB2C8\uB2E4. +check_communication=\uB124\uD2B8\uC6CC\uD06C\uD1B5\uC2E0\uC774\uC815\uC0C1\uC778\uC9C0\uB610\uB294\uC11C\uBC84\uAC00\uC815\uC0C1\uC801\uC73C\uB85C\uC2E4\uD589\uB418\uACE0\uC788\uB294\uC9C0\uD655\uC778\uD574\uC8FC\uC2ED\uC2DC\uC624. +List-Need_Head=\uB9AC\uC2A4\uD2B8\uD5E4\uB4DC\uAC00\uD544\uC694\uD569\uB2C8\uB2E4. +FR-Designer-Plugin_Has_Been_Installed=\uD50C\uB7EC\uADF8\uC778\uC774\uC124\uCE58\uB418\uC5C8\uC2B5\uB2C8\uB2E4.\uD50C\uB7EC\uADF8\uC778\uC744\uC5C5\uB370\uC774\uD2B8\uD558\uB824\uBA74\uD50C\uB7EC\uADF8\uC778\uC5C5\uB370\uC774\uD2B8\uB85C\uC804\uD658\uD574\uC8FC\uC2ED\uC2DC\uC624. +FR-Widget_Tree_And_Table=\uC18C\uD504\uD2B8\uC6E8\uC5B4\uC81C\uC5B4\uD2B8\uB9AC\uC640\uC18C\uD504\uD2B8\uC6E8\uC5B4\uC81C\uC5B4\uD45C +FR-Base_Help=\uB3C4\uC6C0\uB9D0 +FR-Designer-Plugin_Update_Successful=\uD50C\uB7EC\uADF8\uC778\uC5C5\uADF8\uB808\uC774\uB4DC\uC131\uACF5.\uC7AC\uBD80\uD305\uC11C\uBC84\uAC00\uC720\uD6A8\uD569\uB2C8\uB2E4. +August=8\uC6D4 +LOG-Is_Being_Openned=\uC5EC\uB294\uC911 +BackgroundTexture-Oak=\uC0C1\uBAA9 +Multi_nam_formula=\\ub370\uC774\uD130\uC138\uD2B8\uBA85\: \uB370\uC774\uD130\uC138\uD2B8\uC870\uAC74\: +TurnOn=\uC5F4\uAE30 +HJS-Send_Successfully=\uBC1C\uC1A1\uC131\uACF5 +Mon=1 +Inner_Parameter=\uB0B4\uC7A5\uB9E4\uAC1C\uBCC0\uC218 +Required=\uD544\uC218\uC785\uB825\uC0AC\uD56D +Summary=\uCDE8\uD569 +template_unopened=\uD15C\uD50C\uB9BF\uC744\uC5F4\uC218\uC5C6\uC2B5\uB2C8\uB2E4. +FR-Base_Bottom=\uC544\uB798 +DataFunction-Min=\uCD5C\uC18C\uAC12 +StyleFormat-Percent=\uBC31\uBD84\uC728 +FR-App-All_Custom=\uC0AC\uC6A9\uC790\uC815\uC758 +M_Insert-Data_Column=\uC0BD\uC785\uB370\uC774\uD130\uC5F4 +PLEASE=\uC694\uCCAD +Numbers=\uC218\uB7C9 +Release_Lock=\uBE44\uBC00\uBC88\uD638\uD574\uC81C +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:\ +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 +MainGraduationLine=\uC8FC\uB208\uAE08\uC120 +Hyperlink-Web_link=\uC6F9\uB9C1\uD06C +StyleAlignment-between_-90_and_90=-90\uC64090\uC0AC\uC774 +FormulaD-Custom_Function=\uC0AC\uC6A9\uC790\uC815\uC758\uD568\uC218 +FR-Designer_Integer=\uC815\uC218 +PageSetup-Finis_Start_Row=\uC911\uBCF5\uC885\uB8CC\uD589 +RWA-Remove_Field=\uD544\uB4DC\uC81C\uAC70 +Form-Desin_Width=\uB514\uC790\uC778\uB108\uBE44 +No-tableData=\uB3CC\uC544\uAC00\uAE30\uB370\uC774\uD130\uC138\uD2B8\uAC00\uC5C6\uC2B5\uB2C8\uB2E4. +Page_Total=\uCD1D +FR-Designer-Plugin_Connect_Server_Error=\uD50C\uB7EC\uADF8\uC778\uC2A4\uD1A0\uC5B4\uB97C\uC5F0\uACB0\uD560\uC218\uC5C6\uC2B5\uB2C8\uB2E4.\uC7A0\uC2DC\uD6C4\uB2E4\uC2DC\uC2DC\uB3C4\uD574\uC8FC\uC2ED\uC2DC\uC624. +Import-Excel_Source=Excel\uC18C\uC2A4\uD30C\uC77C +Utils-Left_to_Right_a=\uC67C\uCABD\uC5D0\uC11C\uC624\uB978\uCABD\uC73C\uB85C +ExpandD-Expand_Attribute=\uD655\uC7A5\uC18D\uC131 +Report-Write_Attributes=\uBB38\uC11C\uAE30\uC785\uC18D\uC131 +Utils-Current_Column=\uD604\uC7AC\uC5F4 +Need_Max_Value=\uD544\uC694\uCD5C\uB300\uAC12 +Report_Not_Exist=\uC120\uD0DD\uD55C\uBB38\uC11C\uAC00\uC874\uC7AC\uD558\uC9C0\uC54A\uC2B5\uB2C8\uB2E4\uFF01 +HF-Insert_Content=\uB0B4\uC6A9\uC0BD\uC785 +UpParent=\uC704\uBD80\uBAA8\uC140 +PageSetup-Page=\uC6F9\uD398\uC774\uC9C0 +Utils-Move_Up=\uC704\uB85C\uC774\uB3D9 +BackgroundTexture-PurpleMesh=\uBCF4\uB77C\uC0C9\uACA9\uC790\uBAA8\uC591 +Export-Word=Word\uC11C\uC2DD +ServerM-Widget_Manager=\uC18C\uD504\uD2B8\uC6E8\uC5B4\uC81C\uC5B4\uAD00\uB9AC +FR-Designer-Basic_Activation_Key=\uC124\uACC4\uAE30\uC77C\uB828\uBC88\uD638\uFF1A +FR-App-Template_Report_Not_Exist=\uC120\uD0DD\uD55C\uBB38\uC11C\uAC00\uC874\uC7AC\uD558\uC9C0\uC54A\uC2B5\uB2C8\uB2E4.\! +Protected=\uBCF4\uD638 +Skip=\uC810\uD504 +FR-Designer_PageSetup-Vertically=\uC218\uC9C1\uAC00\uC6B4\uB370\uC815\uB82C +revert=\uD574\uC81C +PageSetup-Predefined=\uC0AC\uC804\uC815\uC758\uB41C +Border-Style-Radius=\uB465\uADFC\uBAA8\uC11C\uB9AC\uD14C\uB450\uB9AC +IntPart=\uC815\uC218\uBD80\uBD84 +ExpandD-Data_Column=\uB370\uC774\uD130\uC5F4 +Sort-Ascending=\uC624\uB984\uCC28\uC21C +FR-Designer-Widget_Style=\uC591\uC2DD +parameter_name_exist=\uD574\uB2F9\uB9E4\uAC1C\uBCC0\uC218\uC774\uB984\uC774\uC774\uBBF8\uC874\uC7AC\uD569\uB2C8\uB2E4 +FR-Designer_Layer-Build=\uCE35\uBCC4\uC0DD\uC131 +Please_Rename=\uB9AC\uB124\uC784\uD574\uC8FC\uC2ED\uC2DC\uC624. +Form-Editing_Listeners=\uC774\uBCA4\uD2B8\uD3B8\uC9D1 +RWA-Smart_Add_Fields=\uD544\uB4DC\uC2A4\uB9C8\uD2B8\uCD94\uAC00 +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 +Sche-Minute=\uBD84 +Three_Rows_Of_Three_Grid=3\uD589 3\uC5F4\uC758\uADF8\uB9AC\uB4DC +WorkSheet=\uC790\uC720\uBB38\uC11C +FR-Designer-Widget_Size=\uC18C\uD504\uD2B8\uC6E8\uC5B4\uC81C\uC5B4\uD06C\uAE30 +BindColumn-Select=\uB9AC\uC2A4\uD2B8 +FR-Widget_Mobile_Terminal=\uBAA8\uBC14\uC77C\uB2E8\uB9D0 +FR-Background_Image_Titled=\uD0C0\uC77C +SetPrinterOffset=\uD504\uB9B0\uD130\uC635\uC14B +FR-Designer-Plugin_Installed=\uC124\uCE58\uB418\uC5C8\uC2B5\uB2C8\uB2E4. +FR-Designer-Hyperlink_Name=\uC774\uB984 +FR-Designer_Form-Button=\uD0A4 +Black=\uBE14\uB799 +FR-Designer-Widget-Style_Border_Color=\uD14C\uB450\uB9AC\uC0C9 +Set_Submit_Event=\uC81C\uCD9C\uC774\uBCA4\uD2B8\uC124\uC815 +PDF-Print_isPopup=\uC124\uC815\uBC15\uC2A4\uD31D\uC5C5\uC5EC\uBD80 +LayerPageReport_CountPerPage=\uD398\uC774\uC9C0\uBCC4 \uAE30\uB85D\uC218 +Display_Modes=\uBAA8\uB4DC\uBCF4\uC774\uAE30 +RowSpan=\uD589\uC2A4\uD32C +Datasource-Test_Connection=\uD14C\uC2A4\uD2B8\uB9C1\uD06C +Function-Function_Manager=\uD568\uC218\uAD00\uB9AC\uC790 +Host_Name=\uD638\uC2A4\uD2B8\uCEF4\uD4E8\uD130\uC774\uB984 +CellWrite-Show_As_HTML=HTML\uB85C\uB0B4\uC6A9\uBCF4\uC774\uAE30 +FR-Designer-Widget-Style_Shadow=\uC74C\uC601 +FR-Designer_Parameter_String=\uBB38\uC790\uC5F4 +Form-SupportTag=\uB808\uC774\uBE14\uD615\uC2DD\uBCF4\uC774\uAE30 +ReportD-Report_Write_Attributes=\uBB38\uC11C\uAE30\uC785\uC18D\uC131 +DataFunction-Count=\uAC1C\uC218 +Top_And_Thick_Bottom_Border_Line=\uC704\uD14C\uB450\uB9AC\uC120\uACFC\uAD75\uC740\uBC11\uD14C\uB450\uB9AC\uC120 +Client=\uD074\uB77C\uC774\uC5B8\uD2B8\uB2E8 +BindColumn-Result_Serial_Number_Start_From_1=\uBC88\uD638\uB2941\uBD80\uD130\uC2DC\uC791 +History=\uD788\uC2A4\uD1A0\uB9AC +Already_exists=\uC774\uBBF8\uC874\uC7AC\uD569\uB2C8\uB2E4. \uB2E4\uC2DC\uC785\uB825\uD574\uC8FC\uC2ED\uC2DC\uC624\uFF01 +Datasource-Original_Charset=\uCD08\uAE30\uCF54\uB529 +FR-Base_Left=\uC67C\uCABD +ReportServerP-Next=\uB2E4\uC74C\uD398\uC774\uC9C0 +BindColumn-Top_N=\uC55EN\uAC1C +Animation_Special=\uD2B9\uD6A8 +Widget-Chart_Widget_Config=\uCC28\uD2B8\uC18C\uD504\uD2B8\uC6E8\uC5B4\uC81C\uC5B4 +FR-Designer-Plugin_Cannot_Update_Not_Install=\uD50C\uB7EC\uADF8\uC778\uC744\uC5C5\uB370\uC774\uD2B8\uD560\uC218\uC5C6\uC2B5\uB2C8\uB2E4.\uD574\uB2F9\uD50C\uB7EC\uADF8\uC778\uC774\uC124\uCE58\uB418\uC5C8\uB294\uC9C0\uAC80\uC0AC\uD574\uC8FC\uC2ED\uC2DC\uC624. +After_Changed_Some_Attributes_Are_Different=\uC804\uD658\uD6C4, \uBB38\uC11C\uC758\uC77C\uBD80\uC18D\uC131\uC774\uBCC0\uD560\uC218\uC788\uC2B5\uB2C8\uB2E4.\uACC4\uC18D\uD558\uC2DC\uACA0\uC2B5\uB2C8\uAE4C? +PieStyle=\uD30C\uC774 +HF-Are_you_sure_to_delete_it=\uC774\uC694\uC18C\uB97C\uC0AD\uC81C\uD558\uC2DC\uACA0\uC2B5\uB2C8\uAE4C? +Utils-Design-File_Open=\uC5F4\uAE30 +FR-Utils_Label=\uB808\uC774\uBE14 +Data-Label=\uB808\uC774\uBE14 +M_Insert-Text=\uC77C\uBC18\uD14D\uC2A4\uD2B8\uC0BD\uC785 +Form-View_Tree=\uBDF0\uD2B8\uB9AC +M_Insert-Chart=\uC0BD\uC785\uCC28\uD2B8 +HF-Even_Page=\uC9DD\uC218\uD398\uC774\uC9C0 +ReportServerP-Report_server_parameter=\uBB38\uC11C\uC11C\uBC84\uB9E4\uAC1C\uBCC0\uC218 +JavaScript-Form_Submit=\uD3FC\uC81C\uCD9C +Horizontal-Split_Layout=\uC218\uD3C9\uBD84\uD560\uB808\uC774\uC544\uC6C3 +BorderLayout-Center=\uC911\uAC04 +INFO-Reset_Webapp=\uC751\uC6A9\uC11C\uBC84\uC7AC\uC124\uCE58 +FR-Designer_Text=\uD14D\uC2A4\uD2B8 +IN_and_INOUT_type_not_as_cursor=IN\uACFC INOUT \uC720\uD615\uC740\uCEE4\uC11C\uB85C\uD560\uC218\uC5C6\uB2E4. +Main_Axis=\uC8FC\uC88C\uD45C\uCD95 +M_Edit-Cut=\uC798\uB77C\uB0B4\uAE30(T) +Utils-The_Name_has_been_existed=\uC774\uC774\uB984\uC740\uC774\uBBF8\uC874\uC7AC\uD569\uB2C8\uB2E4. +FR-Background_Image=\uC774\uBBF8\uC9C0 +Character=\uD14D\uC2A4\uD2B8 +Unit_Thousand=\uCC9C +Test=\uD14C\uC2A4\uD2B8 +Utils-Would_you_like_to_save=\uC800\uC7A5\uD558\uC2DC\uACA0\uC2B5\uB2C8\uAE4C? +HF-Header_and_Footer=\uBA38\uB9AC\uAE00\uACFC\uBC14\uB2E5\uAE00 +LIST_MODE=\uB9AC\uC2A4\uD2B8 +HF-Insert_Image=\uC774\uBBF8\uC9C0\uC0BD\uC785 +FR-Designer-Widget-Style_Standard=\uD45C\uC900 +FR-Designer_Form-List=\uB9AC\uC2A4\uD2B8 +BackgroundTexture-Denim=\uB2A5\uC9C1\uBB3C +Execute_Report_by_Layer_Engine=\uC9C1\uB82C\uC5D4\uC9C4\uC73C\uB85C\uBB38\uC11C\uC2E4\uD589 +M_Edit-Bring_Forward=\uC704\uCE35\uC73C\uB85C\uC774\uB3D9(F) +Choose_All=\uBAA8\uB450\uC120\uD0DD +Form-RadioGroup=\uB2E8\uC77C\uC120\uD0DD\uD0A4\uD328\uB4DC +FR-Base_Remove=\uC0AD\uC81C +FR-Remote_Connect2Server_Again=\uC5F0\uACB0\uC774\uB04A\uC5B4\uC84C\uC2B5\uB2C8\uB2E4.\uB2E4\uC2DC\uC11C\uBC84\uB97C\uC5F0\uACB0\uD558\uC2DC\uACA0\uC2B5\uB2C8\uAE4C? +Semicolon=\uC138\uBBF8\uCF5C\uB860 +StyleFormat-Category=\uCE74\uD14C\uACE0\uB9AC +Report_Template=\uBB38\uC11C\uD15C\uD50C\uB9BF +Utils-Beyond_the_right_side_of_Border=\uC624\uB978\uCABD\uC5EC\uBC31\uBC97\uC5B4\uB0A8 +BackgroundTexture-Papyrus=\uD30C\uD53C\uB8E8\uC2A4\uC885\uC774 +LayerPageReport_PageEngine=\uD398\uC774\uC9C0\uBCC4\uC5F0\uC0B0\uBD84\uD560\uC2E4\uD589\uBB38\uC11C\uC0AC\uC6A9 +Schedule-The_selected_file_must_be_end_with_filter=\uC120\uD0DD\uD55C\uD30C\uC77C\uC740.cpt \uB610\uB294 .class \uB610\uB294 .frm \uB85C\uB05D\uB0B4\uC57C\uD569\uB2C8\uB2E4. +Provide=\uC81C\uACF5 +FormulaD-Math_&_Trig=\uC218\uD559\uACFC\uC0BC\uAC01\uD568\uC218 +FR-Designer-StyleAlignment_Right=\uC624\uB978\uCABD\uC5D0\uB9DE\uCDA4 +Error_TableDataNameRepeat=\uC11C\uBC84\uB370\uC774\uD130\uC138\uD2B8\uC5D0\uC874\uC7AC\uD558\uACE0\uC788\uAC70\uB098\uC5EC\uB7EC\uAC1C\uB370\uC774\uD130\uC138\uD2B8\uC774\uB984\uC774\uC911\uBCF5\uB418\uC5C8\uC2B5\uB2C8\uB2E4. +Choose_None=\uBBF8\uC120\uD0DD +File-tree=\uD30C\uC77C\uD2B8\uB9AC +FRFont-bold=\uAD75\uAC8C +FR-Designer_Set_Submit_Condition=\uC81C\uCD9C\uC870\uAC74\uC124\uC815 +Form-Change_Widget_Name=\uC18C\uD504\uD2B8\uC6E8\uC5B4\uC81C\uC5B4\uC774\uB984\uBCC0\uACBD +ReportColumns-Report_Columns=\uBB38\uC11C\uC140\uB098\uB204\uAE30 +Can_not_use_FormatBursh=\uC911\uBCF5\uC120\uD0DD\uB41C\uC601\uC5ED\uC5D0\uC11C\uC2DD\uC744\uC774\uC6A9\uD558\uC5EC\uC778\uC1C4\uD560\uC218\uC5C6\uC2B5\uB2C8\uB2E4.\! +CellElement-Property_Table=\uC140\uC18D\uC131\uD45C +Dictionary-Dynamic_SQL=\uB3D9\uC801 SQL +FR-Designer_Form-CheckBoxGroup=\uCCB4\uD06C\uBC15\uC2A4\uADF8\uB8F9 +DBCP_TIME_BETWEEN_EVICTIONRUNSMILLIS=\uC720\uD734\uB9C1\uD06C\uD68C\uC218\uAE30\uD734\uBA74\uC2DC\uAC04 +ReportD-Export_Hided_Column=\uC228\uAE34\uC5F4\uBCF4\uC774\uAE30 +Preference-Support_Undo=\uD574\uC81C\uC9C0\uC6D0 +FR-mobile_report_analysis=\uBCF4\uACE0\uC11C \uD574\uC11D +Month=\uC6D4 +Utils-Column_Width=\uC5F4\uB108\uBE44 +Collect-Use_Designer=\uC124\uACC4\uAE30\uC0AC\uC6A9 +Widget-User_Defined_Editor=\uC0AC\uC804\uC815\uC758\uB41C\uD3B8\uC9D1\uAE30\uB294\uC18C\uD504\uD2B8\uC6E8\uC5B4\uC81C\uC5B4\uAD00\uB9AC\uBA54\uB274\uC5D0\uC11C\uB9CC\uC18D\uC131\uC744\uBCC0\uACBD\uD560\uC218\uC788\uC2B5\uB2C8\uB2E4. +Unit_Ten_Thousand=\uB9CC +Data_Setting=\uB370\uC774\uD130\uC124\uC815 +ECP_input_pwd=\uC554\uD638\uB97C\uC785\uB825\uD574\uC8FC\uC2ED\uC2DC\uC624\: +period=. +Note=\uBE44\uACE0 +Multiline=\uC5EC\uB7EC\uD589\uD3B8\uC9D1 +Datasource-Convert_Charset=\uCF54\uB529\uC804\uD658 +DashBoard-ConnectionList=\uB370\uC774\uD130\uB9C1\uD06C +Utils-Submit_Forcibly=\uC81C\uCD9C\uAC15\uD589 +Parent_Marked_Field=\uBD80\uBAA8\uD0DC\uADF8\uD544\uB4DC +Logout=\uB098\uAC00\uAE30 +FR-Designer_Show_Blank_Row=\uACF5\uBC31\uD589\uBCF4\uCDA9 +FR-Base_Format=\uC11C\uC2DD +FR-App-Export_png=PNG\uC11C\uC2DD +Delete_Column=\uC5F4\uC0AD\uC81C +SecondGraduationLine=\uBCF4\uC870\uB208\uAE08\uC120 +SpecifiedG-Groups=\uADF8\uB8F9 +CONTINUUM_MODE=\uC774\uC6C3\uD558\uB294\uC5F0\uC18D\uADF8\uB8F9 +Datasource-Connection_failed=\uB9C1\uD06C\uC2E4\uD328 +CategoryName=\uCE74\uD14C\uACE0\uB9AC\uC774\uB984 +DBCP_INITIAL_SIZE=\uCD08\uAE30\uD654\uB9C1\uD06C\uC218 +Colors=\uC0C9 +FR-Import-Export_CSV=CSV\uC11C\uC2DD(\uC27C\uD45C\uAD6C\uBD84) +FR-Designer-StyleAlignment_Left=\uC67C\uCABD\uC5D0\uB9DE\uCDA4 +BackgroundTexture-PaperBag=\uC885\uC774\uBC31 +RWA-BuildIn_SQL=\uB0B4\uC7A5SQL +SingleLayer=\uB2E8\uCE35 +Or-you=\uB610\uB294\uB2F9\uC2E0\uC774 +FR-Designer_Certificate_Path=\uC778\uC99D\uC11C\uACBD\uB85C +Utils-Last_Page=\uB9C8\uC9C0\uB9C9\uD398\uC774\uC9C0 +BarCodeD-Drawing_Text=\uBC14\uCF54\uB4DC\uD14D\uC2A4\uD2B8\uBCF4\uC774\uAE30 +Warning-Template_Do_Not_Exsit=\uD15C\uD50C\uB9BF\uC774\uC874\uC7AC\uD558\uC9C0\uC54A\uC2B5\uB2C8\uB2E4. +BindColumn-Group=\uADF8\uB8F9 +Export-SVG=SVG\uC11C\uC2DD +Plane3D=\uD3C9\uBA743D +SessionID=SessionID\uB294 \uD604\uC7AC\uC811\uADFC\uD15C\uD50C\uB9BF\uC758\uC138\uC158 ID\uB9E4\uAC1C\uBCC0\uC218. +FR-Designer_Height=\uB192\uC774 +HF-Odd_Page=\uD640\uC218\uD398\uC774\uC9C0 +About-All_Rights_Reserved=\uBAA8\uB4E0\uAD8C\uB9AC\uB97C\uB0A8\uAE41\uB2C8\uB2E4. +Utils-Current_Cell=\uD604\uC7AC\uADF8\uB9AC\uB4DC +Web_Preview_Message=\uD15C\uD50C\uB9BF\uD30C\uC77C\uC744\uD604\uC7AC\uC2E4\uD589\uD658\uACBD\uB514\uB809\uD130\uB9AC\uC5D0\uC800\uC7A5\uD574\uC8FC\uC2ED\uC2DC\uC624. +FR-Hyperlink_Chart_Float=\uCC28\uD2B8\uD558\uC774\uD37C\uB9C1\uD06C-\uC5F0\uB3D9\uC11C\uC2A4\uD39C\uC2A4\uC694\uC18C +Dic-Data_Query=\uB370\uC774\uD130\uCC3E\uC544\uBCF4\uAE30 +CellWrite-Print_Content=\uC778\uC1C4/\uBD88\uB7EC\uC624\uAE30 \uC140 \uB0B4\uC6A9 +Privilege-Selected_None_Of_Any_Items=\uC120\uD0DD\uD55C\uD56D\uC774\uC5C6\uC2B5\uB2C8\uB2E4. +FRFont-Size=\uD06C\uAE30 +Function-J2EE_server=J2EE\uC11C\uBC84 +FR-Designer_Allow_Blank=\uBE48\uCE78\uD5C8\uC6A9 +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 +Preference-Horizontal_Scroll_Bar_Visible=\uC218\uD3C9\uC2A4\uD06C\uB864\uBC14\uB97C\uBCFC\uC218\uC788\uC2B5\uB2C8\uB2E4. +Scope=\uBC94\uC704 +Save_All_Records_In_Memory=\uBAA8\uB4E0\uB808\uCF54\uB4DC\uAC00\uBA54\uBAA8\uB9AC\uC5D0\uC800\uC7A5\uB418\uC5C8\uC2B5\uB2C8\uB2E4. +FreezeWarning1=\uCD08\uAE30\uAC12>\uB9C8\uC9C0\uB9C9\uAC12 +FlowLayout=\uC720\uB3D9\uC2DD\uB808\uC774\uC544\uC6C3 +M_Report-Report_Footer=\uBB38\uC11C\uD398\uC774\uC9C0\uBC14\uB2E5\uAE00 +FR-Action_Add=\uCD94\uAC00 +BorderLayout-East=\uB3D9 +feedback_tip=400\uC790\uB97C\uB118\uC9C0\uC54A\uAC8C\uBB38\uC81C\uB97C\uC124\uBA85\uD574\uC8FC\uC2ED\uC2DC\uC624. +FS_Start_Date=\uC2DC\uC791\uB0A0\uC9DC +FR-ConditionB_Operator=\uC870\uC791\uBD80\uD638 +Printer-Alias=\uB2C9\uB124\uC784 +DS-Class_Name=\uD074\uB798\uC2A4\uB124\uC784 +FR-Designer-Plugin_Has_Been_Disabled=\uD50C\uB7EC\uADF8\uC778\uC0AC\uC6A9\uC774\uAE08\uC9C0\uB418\uC5C8\uC2B5\uB2C8\uB2E4.\uC124\uACC4\uAE30\uBC0F\uC11C\uBC84\uB97C\uC7AC\uBD80\uD305\uD558\uB824\uBA74\uC11C\uBC84\uB97C\uC218\uB3D9\uC7AC\uBD80\uD305\uD574\uC57C\uD569\uB2C8\uB2E4. +Sort-Original=\uC21C\uC11C\uC5C6\uC74C +Utils-Top_to_Bottom_a=\uC704\uC5D0\uC11C\uC544\uB798\uB85C +Parameter-String=\uBB38\uC790\uC5F4 +InnerRadis=\uC548\uC9C0\uB984\uD06C\uAE30 +Want_To_Cover_It=\uB36E\uC5B4\uC50C\uC6B0\uACA0\uC2B5\uB2C8\uAE4C? +Divided_stage=\uAD6C\uBD84\uB2E8\uACC4 +Seriously=\uC2EC\uAC01 +ReportServerP-PDF=PDF +Utils-Switch_To_Class_Reportlet=\uD504\uB85C\uADF8\uB7A8\uB124\uD2B8\uC6CC\uD06C\uBB38\uC11C\uB85C\uC804\uD658 +FR-Designer_Show_Blank_Column=\uACF5\uBC31\uC5F4\uBCF4\uCDA9 +M_Edit-Redo=\uB9AC\uC6CC\uD06C +Visibility=\uC2DC\uAC01\uC131 +Series_Use_Default=\uACC4\uC5F4\uAE30\uBCF8\uC0AC\uC6A9 +Has_Selected=\uC120\uD0DD\uB428 +BackgroundTexture-Walnut=\uD638\uB450 +FormulaD-Function_category=\uD568\uC218\uC720\uD615 +Interface=\uC778\uD130\uD398\uC774\uC2A4 +FR-Designer-Beyond_Bounds= +seconds=\uCD08 +Auto-Build=\uC790\uB3D9\uC0DD\uC131 +FR-Designer-Plugin_Install_Successful=\uD574\uB2F9\uD50C\uB7EC\uADF8\uC778\uC740\uC124\uACC4\uAE30\uBC0F\uC11C\uBC84\uB97C\uC7AC\uBD80\uD305\uD560\uB54C\uC0AC\uC6A9\uB418\uBA70,\uC11C\uBC84\uB294\uC218\uB3D9\uC7AC\uBD80\uD305\uD574\uC57C\uD569\uB2C8\uB2E4. +Template_Path=\uD15C\uD50C\uB9BF\uACBD\uB85C +FR-Designer-FRFont_Bold=\uAD75\uAC8C +Poly_Name=\uCDE8\uD569\uBE14\uB7ED\uC774\uB984 +WorkBook=\uC6CC\uD06C\uBD81 +Hyperlink-Self_Window=\uD604\uC7AC\uC708\uB3C4\uC6B0 +FR-Designer-Widget-Style_Title=\uC81C\uBAA9 +FR-Designer-FRFont_Size=\uD06C\uAE30 +M_File-Export-SVG=SVG\uC11C\uC2DD +Capacity=\uC6A9\uB7C9 +Rose_Red=\uB85C\uC988\uBE68\uAC15 +StyleAlignment-The_value_of_rotation_must_between_-90_and_90_degrees=\uD68C\uC804\uAC12\uC740-90\uB3C4\uC5D0\uC11C 90\uB3C4\uAE4C\uC9C0 +HF-Move_Left=\uC67C\uCABD\uC73C\uB85C\uC774\uB3D9 +Cell_Group=\uC140\uADF8\uB8F9 +Week=\uC8FC +PageSetup-Orientation=\uBC29\uD5A5 +M-Open_Recent=\uCD5C\uADFC\uC5F4\uC5B4\uBCF8 +NNormal=\uC815\uC0C1 +Integer=\uC815\uC218 +Select_The_Source_To_Save=\uC800\uC7A5\uD558\uB824\uB294\uD56D\uBAA9\uC120\uD0DD +Transition=\uBD84\uAE30 +FR-Designer_Get_Lock=\uC554\uD638\uD654 +one_record_exists_in_many_groups=\uB808\uCF54\uB4DC\uB294\uC5EC\uB7EC\uAC1C\uADF8\uB8F9\uC5D0\uC874\uC7AC\uD560\uC218\uC788\uC2B5\uB2C8\uB2E4. +FR-Designer_Cover_None=\uBAA8\uB450\uB36E\uC5B4\uC50C\uC6B0\uC9C0\uC54A\uAE30 +DeciPart=\uC18C\uC218\uBD80\uBD84 +ExpandD-Up_Father_Cell=\uC704\uBD80\uBAA8\uC140 +Deep=\uAE4A\uC774 +FRFont-Shadow=\uC74C\uC601 +Reportlet=\uB124\uD2B8\uC6CC\uD06C\uBB38\uC11C +Calendar=\uB2EC\uB825 +DateFormat-Custom_Warning=\uBE44\uACE0\uFF1A\uC0AC\uC6A9\uC790\uC815\uC758\uB0A0\uC9DC\uC11C\uC2DD\uC740\uC11C\uC2DD\uAC80\uC0AC\uB97C\uC9C0\uC6D0\uD558\uC9C0\uC54A\uC2B5\uB2C8\uB2E4. +Unit_MM=\uBC00\uB9AC\uBBF8\uD130 +Server-Start=\uC2E4\uD589 +CellPage-Can_Break_On_Paginate=\uD398\uC774\uC9C0\uB098\uB204\uAE30\uC2DC\uB098\uB20C\uC218\uC788\uC74C +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 +ComboCheckBox-Start_Symbol=\uC2DC\uC791\uBD80\uD638 +Real=\uC2E4\uC81C +RWA-Batch_Modify_Cells=\uB300\uB7C9\uC218\uC815\uC140 +FR-Designer_Build-Way=\uC0DD\uC131\uBC29\uC2DD +Read=\uC77D\uAE30 +StyleAlignment-Degrees=\uB3C4\uC218 +M_Format_A-Border=\uD14C\uB450\uB9AC(B) +Utils-Delete_Record=\uB808\uCF54\uB4DC\uC0AD\uC81C +Reload=\uC624\uBC84\uB85C\uB529 +Image-Select_Picture=\uC774\uBBF8\uC9C0\uC120\uD0DD +RWA-Submit=\uC81C\uCD9C +the_template=\uD574\uB2F9\uD15C\uD50C\uB9BF +FR-Designer_Component_Scale=\uC5B4\uC148\uBE14\uB9AC\uCD95\uC18C +FRFont-italic=\uAE30\uC6B8\uC784\uAF34 +Year=\uB144 +HF-Move_Right=\uC624\uB978\uCABD\uC73C\uB85C\uC774\uB3D9 +Data-Check=\uB370\uC774\uD130\uBAA8\uB2C8\uD130\uB9C1 +Unknown=\uC54C\uC218\uC5C6\uC74C +Submit_Style=\uC81C\uCD9C\uBC29\uC2DD +Left_Border_Line=\uC67C\uCABD\uD14C\uB450\uB9AC\uC120 +Brown=\uAC08\uC0C9 +Select_A_Tree_DataSource_To_Build=\uD2B8\uB9AC\uB370\uC774\uD130\uC138\uD2B8\uB97C\uC120\uD0DD\uD558\uC5EC\uC0DD\uC131\uD558\uC2ED\uC2DC\uC624. +Overlapping=\uC911\uCCA9\uD0C0\uC785 +DS-Class_TableData=\uD504\uB85C\uADF8\uB7A8\uB370\uC774\uD130\uC138\uD2B8 +FR-Designer-Plugin_Illegal_Plugin_Zip_Cannot_Be_Install=\uC2DD\uBCC4\uD560\uC218\uC5C6\uB294\uD50C\uB7EC\uADF8\uC778\uC774\uBBC0\uB85C\uC124\uCE58\uD560\uC218\uC5C6\uC2B5\uB2C8\uB2E4. +DisplayNothingBeforeQuery=\uCC3E\uC544\uBCF4\uAE30\uD074\uB9AD\uC804\uBB38\uC11C\uB0B4\uC6A9\uBCF4\uC774\uC9C0\uC54A\uAE30 +Y_Axis=Y\uCD95 +FormulaD-Most_Recently_Used=\uC0C1\uC6A9\uD568\uC218 +FormulaD-Input_formula_in_the_text_area_below=\uD558\uB2E8\uC758\uD14D\uC2A4\uD2B8\uD3B8\uC9D1\uBC15\uC2A4\uC5D0\uC218\uC2DD\uC744\uC785\uB825\uD558\uC138\uC694. +Build-Way=\uC0DD\uC131\uBC29\uC2DD +M_Edit-Undo=\uD574\uC81C +Line-Style=\uC120\uD615 +Datasource-Other_Attributes=\uAE30\uD0C0\uC18D\uC131 +M_Server-Global_Parameters=\uC804\uC5ED\uB9E4\uAC1C\uBCC0\uC218 +Suffix=\uD655\uC7A5\uC790 +Image-Image_Files=\uC774\uBBF8\uC9C0\uD30C\uC77C +EditRC-Entire_row=\uBAA8\uB4E0\uD589(R) +HF-First_Page=\uBA54\uC778\uD398\uC774\uC9C0 +BackgroundTexture-Granite=\uD654\uAC15\uC554 +DataList=\uB370\uC774\uD130\uB9C1\uD06C +Recursion=\uADC0\uB0A9 +BarStyle=\uBC14\uD0C0\uC785 +FR-Designer-Min_Width= +Utils-Report-Env_Directory=\uBB38\uC11C\uC791\uC5C5\uB514\uB809\uD130\uB9AC +D-ChartArea=\uCC28\uD2B8\uC601\uC5ED +Only=\uB2E4\uB9CC +FR-Base_No=\uC544\uB2C8\uC624 +SpecifiedG-Put_all_others_together=\uAE30\uD0C0\uBAA8\uB4E0\uAC83\uBCD1\uD569 +HF-NewLine_Des=\uC0C1\uB2E8\uC758\uC774\uB3D9\uD0A4\uC640\uC0AD\uC81C\uD0A4\uB85C\uD589\uBC14\uAFB8\uAE30\uAE30\uD638\uB97C\uC870\uC791\uD560\uC218\uC788\uC2B5\uB2C8\uB2E4. +WLayout-Border-ThreeContainer=\uBD81\u3001\uC11C\uBC0F\uC911\uAC04\uBE14\uB85D\uC744\uAC16\uACE0\uC788\uB294\uACBD\uACC4\uC120\uB808\uC774\uC544\uC6C3\uCEE8\uD14C\uC774\uB108\uC911\uBD81\uCABD\uBE14\uB7ED\uC740\uD544\uC694\uC5D0\uB530\uB77C\uB192\uC774\uB97C\uC870\uC815\uD560\uC218\uC788\uC73C\uBA70\uC11C\uCABD\uBE14\uB7ED\uC740\uD544\uC694\uC5D0\uB530\uB77C\uB108\uBE44\uB97C\uC870\uC815\uD560\uC218\uC788\uC2B5\uB2C8\uB2E4. +Parameter_Name=\uB9E4\uAC1C\uBCC0\uC218\uC774\uB984 +FR-Base_Table=\uD45C +Des-Remove_WorkSheet=\uC0AD\uC81C\uD558\uB824\uB294\uD45C\uC5D0\uB370\uC774\uD130\uAC00\uC874\uC7AC\uD569\uB2C8\uB2E4.\uC601\uAD6C\uC0AD\uC81C\uD558\uB824\uBA74'\uD655\uC778'\uD0A4\uB97C\uB20C\uB7EC\uC8FC\uC138\uC694. +Rotation=\uD68C\uC804 +Undefined=\uC815\uC758\uB418\uC9C0\uC54A\uC74C +Support-Auto_Complete_Shortcut=\uC790\uB3D9\uBCF4\uC644\uB2E8\uCD95\uD0A4 +Set_Column_Title_End=\uC911\uBCF5\uC885\uB8CC\uC5F4\uC124\uC815 +Submit_Url=\uC8FC\uC18C\uC81C\uCD9C +ReportServerP-Are_you_sure_to_delete_the_selected_printer=\uC120\uD0DD\uD55C\uD504\uB9B0\uD130\uB97C\uC0AD\uC81C\uD558\uC2DC\uACA0\uC2B5\uB2C8\uAE4C? +long_data_can_not_show_fully=\uAE34\uB370\uC774\uD130\uB294\uBAA8\uB450\uBCF4\uC774\uC9C0\uC54A\uC2B5\uB2C8\uB2E4. +Utils-Beyond_the_bottom_side_of_Border=\uC544\uB798\uACBD\uACC4\uC120\uBC97\uC5B4\uB0A8 +FR-Import-Export_PDF=PDF\uC11C\uC2DD +Form-CheckBoxGroup=\uCCB4\uD06C\uBC15\uC2A4\uADF8\uB8F9 +Click-Me=\uD074\uB9AD\uB9CC\uD574\uB3C4\uC11C\uD504\uB77C\uC774\uC988\uD55C\uC990\uAC70\uC6B4\uC77C\uC774\uC0DD\uAE41\uB2C8\uB2E4\uFF01 +Hyperlink-Self=\uAE30\uC874\uC6F9\uC5D0\uC11C\uB9C1\uD06C\uC5F4\uAE30(S) +Tree-Select_Leaf_Only_Tips=(\uC774\uD56D\uBAA9\uC5D0\uCCB4\uD06C\uD558\uC9C0\uC54A\uC73C\uBA74\uB9AC\uD134\uAC12\uC740\uC0AC\uC6A9\uC790\uAC00\uCCB4\uD06C\uD55C\uD604\uC7AC\uB178\uB4DC\uB9CC\uD574\uB2F9\uB418\uBA70\uC11C\uBE0C\uB178\uB4DC\uB294\uD3EC\uD568\uB418\uC9C0\uC54A\uC74C\uFF09 +StyleAlignment-Text_Rotation=\uD14D\uC2A4\uD2B8\uBC29\uD5A5 +Format-Error=\uC785\uB825\uD55C\uAC12\uC11C\uC2DD\uC774\uC815\uD655\uD558\uC9C0\uC54A\uC2B5\uB2C8\uB2E4. +Server-Stop=\uC815\uC9C0 +Preference-Setting_Grid=\uACA9\uC790\uBAA8\uC591\uC124\uC815 +ReportServerP-Add_Printer=\uD504\uB9B0\uD130\uCD94\uAC00 +FR-Designer-Plugin_Active=\uC0AC\uC6A9\uC2DC\uC791 +Utils-File_name=\uD30C\uC77C\uBA85 +NOT_NULL_Des=\uBE48\uCE78\uC73C\uB85C\uB458\uC218\uC5C6\uC2B5\uB2C8\uB2E4. +Right_Border_Line=\uC624\uB978\uCABD\uD14C\uB450\uB9AC\uC120 +EditRC-Entire_column=\uBAA8\uB4E0\uC5F4(C) +PageSetup-Top_to_bottom=\uC5F4\uBA3C\uC800\uD589\uB098\uC911 +Click-Get_Default_URL=\uBCF8\uD0A4\uB97C\uD074\uB9AD\uD558\uC5EC\uAE30\uBCF8URL\uC744\uC5BB\uC2B5\uB2C8\uB2E4. +StyleAlignment-Wrap_Text=\uC790\uB3D9\uD589\uBC14\uAFB8\uAE30 +Remove_All_Button=\uBAA8\uB4E0\uD0A4\uD074\uB9AC\uC5B4 +FR-Designer_Component_Interval=\uC5B4\uC148\uBE14\uB9AC\uAC04\uACA9 +ReportColumns-Columns_vertically=\uC5F4\uC140\uB098\uB204\uAE30 +ReportGUI-Print_Background=\uC778\uC1C4/\uB0B4\uBCF4\uB0B4\uAE30\uBB38\uC11C\uBC30\uACBD +Export-CSV=CSV\uC11C\uC2DD(\uC27C\uD45C\uAD6C\uBD84) +M_Edit-Paste=\uBD99\uC5EC\uB123\uAE30(P) +FR-Designer-Basic_Restart_Designer=\uC7AC\uBD80\uD305\uC124\uACC4\uAE30 +ReportServerP-PDF2-INFO=LINUX/UNIX\uC5D0\uC11C\uC911\uBB38\uD3F0\uD2B8\uB97C\uC124\uCE58\uD558\uC9C0\uC54A\uC558\uC744\uB54C\uB9CC\uC0AC\uC6A9 +FormulaD-Check_Valid=\uC801\uD569\uC131\uAC80\uC0AC +server_disconnected=\uC5F0\uACB0\uC774\uB04A\uC5B4\uC84C\uC2B5\uB2C8\uB2E4. +ParameterD-Parameter_name_cannot_be_null=\uB9E4\uAC1C\uBCC0\uC218\uC758\uC774\uB984\uC740\uBE44\uC6CC\uB458\uC218\uC5C6\uC2B5\uB2C8\uB2E4. +FR-Designer-Plugin_Version_Is_Lower_Than_Current=\uC5C5\uADF8\uB808\uC774\uB4DC\uD329\uC758\uD50C\uB7EC\uADF8\uC778\uBC84\uC804\uC774\uD604\uC7AC\uC758\uAC83\uBCF4\uB2E4\uB192\uC9C0\uC54A\uC2B5\uB2C8\uB2E4. +RWA-NotChange_Unmodified=\uC218\uC815\uD558\uC9C0\uC54A\uC73C\uBA74\uC5C5\uB370\uC774\uD2B8\uD558\uC9C0\uC54A\uC2B5\uB2C8\uB2E4. +User_Information=\uC0AC\uC6A9\uC790\uC815\uBCF4 +Custom_styles_lost=\uC0AC\uC6A9\uC790\uC815\uC758\uC591\uC2DD\uC774\uC5C6\uC2B5\uB2C8\uB2E4. +PageSetup-Margin=\uD398\uC774\uC9C0\uC5EC\uBC31 +M-New_FormBook=\uC0C8\uD3FC +Widget-TreeNode=\uD2B8\uB9AC\uB178\uB4DC\uD0A4 +Form-Url=\uC8FC\uC18C +Utils-Beyond_the_left_side_of_Border=\uC67C\uCABD\uC5EC\uBC31\uBC97\uC5B4\uB0A8 +Float_Element_Name=\uD638\uBC84\uC694\uC18C\uBA85\uCE6D +Purple=\uD37C\uD50C +DashBoard-Potence=\uAD8C\uD55C +M-Close_Template=\uB2EB\uAE30\uD15C\uD50C\uB9BF(C) +paper=\uC885\uC774 +Not_Exsit=\uBB38\uC11C\uAC00\uC874\uC7AC\uD558\uC9C0\uC54A\uC2B5\uB2C8\uB2E4. +Utils-Insert_Row=\uD589\uC0BD\uC785 +Utils-Delete_Row=\uD589\uC0AD\uC81C +not_support_authority_edit=\uD574\uB2F9\uC694\uC18C\uB294\uAD8C\uD55C\uCEE8\uD2B8\uB864\uC744\uC9C0\uC6D0\uD558\uC9C0\uC54A\uC2B5\uB2C8\uB2E4. +Formula_Tips=\uC218\uC2DD\uC740"\\ub97c\uB123\uC5B4\uC57C\uD569\uB2C8\uB2E4. +FR-Action_Copy=\uBCF5\uC0AC +Compile_Success=\uCEF4\uD30C\uC77C\uC131\uACF5 +BackgroundTexture-RecycledPaper=\uC7AC\uC0DD\uC6A9\uC9C0 +StyleAlignment-Single_Line=\uD55C\uC904\uBCF4\uC774\uAE30 +Utils-Move_Down=\uC544\uB798\uB85C\uC774\uB3D9 +Please_Set_Repeat_First=\uC911\uBCF5\uC81C\uBAA9\uD589\uACFC\uC5F4\uC744\uC6B0\uC120\uC120\uD0DD\uD574\uC8FC\uC2ED\uC2DC\uC624. +Writer-ShortCuts_Setting=\uB2E8\uCD95\uD0A4\uAE30\uC785\uC124\uC815 +Verify-Data_Verify=\uB370\uC774\uD130\uAC80\uC0AC +FR-mobile_analysis_style=\uD574\uC11D \uBC29\uBC95 +Confirm-Delete-File=\uC120\uD0DD\uD55C\uD30C\uC77C\uC744\uC0AD\uC81C\uD558\uC2DC\uACA0\uC2B5\uB2C8\uAE4C\uFF1F +PageSetup-Header=\uD398\uC774\uC9C0\uBA38\uB9AC\uAE00 +JavaScrit-Asynch=\uBE44\uB3D9\uAE30 +ReportServerP-Toolbar=\uD234\uBC14 +Utils-Top_to_Bottom=\uC138\uB85C +Platform=\uD50C\uB7AB\uD3FC +FR-Designer-FRFont_Underline=\uBC11\uC904 +Show_in_Containing_Folder=\uD574\uB2F9\uD3F4\uB354\uC5F4\uAE30 +BackgroundTexture-WaterDroplets=\uBB3C\uBC29\uC6B8 +FR-Designer-Dependence_Install_Failed=install failed +Layout-Padding=\uC548\uCABD\uC5EC\uBC31 +roles_already_authority_edited=\uC5ED\uD560\uC774\uAD6C\uC131\uB418\uC5C8\uC2B5\uB2C8\uB2E4. +WidgetDisplyPosition=\uC18C\uD504\uD2B8\uC6E8\uC5B4\uC81C\uC5B4\uD654\uBA74\uC704\uCE58 +SpecifiedG-Force_Group=\uAC15\uC81C\uADF8\uB8F9\uD551 +FormulaD-Formula_Definition=\uC218\uC2DD\uC815\uC758 +I-xyScatterStyle_Marker=\uC0B0\uC810\uADF8\uB798\uD504 +Hour=\uC2DC\uAC04 +ColorMatch=\uC0C9\uBC30\uD569 +M_Edit-Order=\uACB9\uCE68\uC21C\uC11C(O) +BackgroundTexture-Bouquet=\uAF43\uB2E4\uBC1C +Verify-Error_Information=\uC624\uB958\uC815\uBCF4\uAC80\uC0AC +LayerData=\uB85C\uC6B0 \uB808\uBCA8 \uB370\uC774\uD130 +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 +Set_Column_Title_Start=\uC911\uBCF5\uC81C\uBAA9\uC5F4\uC124\uC815 +Fri=5 +M_Report-Report_Parameter=\uD15C\uD50C\uB9BF\uB9E4\uAC1C\uBCC0\uC218 +REPORTLETS=\uC5EC\uB7EC\uC7A5\uD15C\uD50C\uB9BF\uC758\uACBD\uB85C\uC758\uB9E4\uAC1C\uBCC0\uC218\uC811\uADFC +WLayout-Card-ToolTip=\uCE74\uB4DC\uC2DD\uB808\uC774\uC544\uC6C3\uC740\uD574\uB2F9\uB808\uC774\uC544\uC6C3\uCEE8\uD14C\uC774\uB108\uC5D0\uC11C\uC5EC\uB7EC\uAC1C\uAE30\uD0C0\uC5B4\uC148\uBE14\uB9AC\uB97C\uCD94\uAC00\uD560\uC218\uC788\uC2B5\uB2C8\uB2E4. +M-Popup_ChartType=\uCC28\uD2B8\uC720\uD615 +Please-Wait=\uC7A0\uC2DC\uB9CC\uAE30\uB2E4\uB824\uC8FC\uC2ED\uC2DC\uC624 +FR-Designer-Form-ToolBar_Widget=\uC18C\uD504\uD2B8\uC6E8\uC5B4\uC81C\uC5B4 +Widget-Array=\uBC30\uC5F4 +FieldBinding=\uBC14\uC778\uB529\uD544\uB4DC +Top_Bottom_Border_Line=\uC0C1\uD558\uD14C\uB450\uB9AC\uC120 +M-Others=\uAE30\uD0C0... +Hyperlink-Link_Opened_in=\uB9C1\uD06C\uC5F4\uB9AC\uB294\uACF3: +FR-Utils_WorkBook=\uC6CC\uD06C\uBD81 +M_Insert-Float=\uD638\uBC84\uC694\uC18C +Out_Thick_Border_Line=\uAD75\uC740\uBC14\uAE65\uCABD\uD14C\uB450\uB9AC\uC120 +FR-App-File_Lookup_range=\uBC94\uC704\uAC80\uC0C9 +ReportColumns-Columns_to=\uC140\uB098\uB204\uAE30 +Transparent=\uD22C\uBA85 +Parameter-Integer=\uC804\uCCB4\uD0C0\uC785 +PDF-Print_Setting=PDF\uC778\uC1C4\uC124\uC815 +Server-Embedded_Server=\uB0B4\uC7A5\uB41C\uC11C\uBC84 +M_Server-Server_Config_Manager=\uC11C\uBC84\uAD6C\uC131 +FR-Utils-Would_you_like_to_cover_the_current_file=\uD604\uC7AC\uD30C\uC77C\uC744\uB36E\uACA0\uC2B5\uB2C8\uAE4C? +CellWrite-InsertRow_COPY=\uC6D0\uB798\uAC12 +Edit_String_To_Formula=\uBB38\uC790\uC5F4\uC744\uC218\uC2DD\uC73C\uB85C\uD3B8\uC9D1\uD558\uACA0\uC2B5\uB2C8\uAE4C? +Edit-Column_Count=\uC5F4\uC218 +Father=\uC544\uBC84\uC9C0 +ReportColumns-Columns_after=\uCD08\uACFC +FR-Designer_Undo=\uD574\uC81C +DBCP_MIN_IDLE=\uCD5C\uC18C\uC720\uD734\uB9C1\uD06C\uC218 +M-Data_Analysis_Settings=\uB370\uC774\uD130\uBD84\uC11D\uC124\uC815 +M-Form_Preview=\uD3FC\uBBF8\uB9AC\uBCF4\uAE30 +Form-Basic_Properties=\uAE30\uBCF8\uC18D\uC131 +quote=\uC778\uC6A9 +Thu=4 +Collect-Collect_User_Information=\uC0AC\uC6A9\uC790\uC815\uBCF4\uC218\uC9D1 +Layer-Build=\uCE35\uBCC4\uC0DD\uC131 +FR-Designer-FRFont_Line_Style=\uC120\uD615 +BackgroundTexture-BrownMarble=\uAC08\uC0C9\uB300\uB9AC\uC11D +PageSetup-Page_Setup=\uC6F9\uD398\uC774\uC9C0\uC124\uC815 +Form-Semicolon=\uC138\uBBF8\uCF5C\uB860 +ECP_re_input=\uBE44\uBC00\uBC88\uD638\uC785\uB825\uC624\uB958.\uB2E4\uC2DC\uC785\uB825\uD574\uC8FC\uC2ED\uC2DC\uC624. +ExpandD-Sort_After_Expand=\uD655\uC7A5\uD6C4 +FR-Designer-Dependence_Install_Succeed=install succeed +Env-Configure_Workspace=\uAD6C\uC131\uC791\uC5C5\uB514\uB809\uD130\uB9AC +feedback_info=\uADC0\uC911\uD55C\uC758\uACAC\uACFC\uC81C\uC548\uC5D0\uAC10\uC0AC\uB4DC\uB9BD\uB2C8\uB2E4.\uC815\uBCF4\uB97C\uCD5C\uB300\uD55C\uC0C1\uC138\uD788\uC791\uC131\uD574\uC8FC\uC2DC\uBA74\uC5F0\uB77D\uB4DC\uB9AC\uACA0\uC2B5\uB2C8\uB2E4. +Ratio=\uBE44\uC728 +DBCP_TEST_ON_BORROW=\uB9C1\uD06C\uD68D\uB4DD\uC804\uAC80\uC0AC\uC9C4\uD589 +FR-Designer_layerIndex= +WEB-Write_Setting=\uC6F9\uD398\uC774\uC9C0\uC124\uC815\uAE30\uC785 +M-New_WorkBook=\uC0C8\uC6CC\uD06C\uBD81 +FR-Designer-Plugin_Has_Been_Actived=\uD50C\uB7EC\uADF8\uC778\uC774\uAD6C\uB3D9\uB418\uC5C8\uC2B5\uB2C8\uB2E4.\uC124\uACC4\uAE30\uBC0F\uC11C\uBC84\uB97C\uC7AC\uBD80\uD305\uD558\uB824\uBA74\uC11C\uBC84\uB97C\uC218\uB3D9\uC7AC\uBD80\uD305\uD574\uC57C\uD569\uB2C8\uB2E4. +Datasource-Maximum_Number_of_Preview_Rows=\uCD5C\uB300\uBBF8\uB9AC\uBCF4\uAE30\uD589\uC218 +ExpandD-Cell_Expand_Attributes=\uD655\uC7A5\uC18D\uC131 +Select_the_repeated_row_and_column=\uC911\uBCF5\uD574\uC57C\uD560\uD589\uACFC\uC5F4\uC120\uD0DD +FormulaD-Date_&_Time=\uB0A0\uC9DC\uC640\uC2DC\uAC04\uD568\uC218 +Max-Mem-Row-Count=\uB808\uCF54\uB4DC\uC218\uAC00~\uC774\uC0C1\uC77C\uB54C\uB514\uC2A4\uD06C\uB85C\uCE90\uC2DC +BorderLayout-South=\uB0A8 +Export-Text=\uD14D\uC2A4\uD2B8\uD30C\uC77C(\uD0ED\uAE30\uD638\uB85C\uAD6C\uBD84) +JavaScript-Synch=\uB3D9\uAE30\uD654 +FR-App-All_Warning=\uACBD\uACE0 +M_Edit-Send_Backward=\uC544\uB798\uB85C\uC774\uB3D9\u4E00\uACC4\uCE35(B) +Form-Layout=\uB808\uC774\uC544\uC6C3 +FR-Designer-Plugin_Shop_Need_Update=\uC704\uC82F \uC5EC\uBD80\uB97C \uC5C5\uB370\uC774\uD2B8, \uC0C8 \uBC84\uC804\uC744 \uC800\uC7A5? +FR-Designer_WorkBook=\uC6CC\uD06C\uBD81 +UpBarBorderStyleAndColor=\uC5C5\uBC14\uC591\uC2DD +GridLayout=\uADF8\uB9AC\uB4DC\uB808\uC774\uC544\uC6C3 +Utils-Default_Value=\uAE30\uBCF8\uAC12 +Widget-Comb_Widget_Config=\uADF8\uB8F9\uC18C\uD504\uD2B8\uC6E8\uC5B4\uC81C\uC5B4 +Import-Excel2007_Source=Excel2007\uC18C\uC2A4\uD30C\uC77C +Y-Coordinate=\uC138\uB85C\uC88C\uD45C +FR-Base_SimSun_Not_Found=\uC1A1\uCCB4\uB97C\uCC3E\uC744\uC218\uC5C6\uC2B5\uB2C8\uB2E4.\uD604\uC7AC\uC2DC\uC2A4\uD15C\uC0C1\uC758\uAE30\uBCF8\uC5B8\uC5B4\uB97C\uC124\uACC4\uAE30\uAE00\uAF34\uB85C\uC120\uD0DD\uD574\uC8FC\uC2ED\uC2DC\uC624. +FR-Designer_Seriously=\uC2EC\uAC01 +Upload=\uC5C5\uB85C\uB4DC +Form-Widget_Property_Table=\uC18D\uC131\uD45C +Des-Merger_Cell=\uC120\uD0DD\uC601\uC5ED\uC740\uC5EC\uB7EC\uB370\uC774\uD130\uB97C\uD3EC\uD568\uD558\uACE0\uC788\uC73C\uBA70,\uC140\uBCD1\uD569\uD6C4\uD3B8\uC9D1\uD55C\uBAA8\uB4E0\uC140\uC911\uAC00\uC7A5\uC67C\uCABD\uC0C1\uB2E8\uBAA8\uC11C\uB9AC\uC758\uAC12\uB9CC\uB0A8\uC2B5\uB2C8\uB2E4. +FR-Designer-Basic_Copy_Build_NO=\uC0DD\uC131\uBC84\uC804\uBC88\uD638\uB97C\uB354\uBE14\uD074\uB9AD\uD558\uBA74\uD074\uB9BD\uBCF4\uB4DC\uC5D0\uBCF5\uC0AC\uB429\uB2C8\uB2E4. +FR-Base_TurnOn=\uC5F4\uAE30 +FR-Base_Rows=\uD589 +Form-Remove_Repeat=\uC911\uBCF5\uD56D\uBAA9\uC0AD\uC81C +Yes=\uC608 +Datasource-JNDI_Name=JNDI\uC758\uC774\uB984 +Utils-Delete_Column=\uC5F4\uC0AD\uC81C +HF-Delete_it=\uC0AD\uC81C +JavaScript-Dynamic_Parameters=\uB3D9\uC801\uD30C\uB77C\uBBF8\uD130 +px=\uD654\uC18C +FR-App-Report_Template=\uBB38\uC11C\uD15C\uD50C\uB9BF +Verify-Message=\uC624\uB958\uC815\uBCF4 +Plan=\uACC4\uD68D +Vertical-Split_Layout=\uC218\uC9C1\uBD84\uD560\uB808\uC774\uC544\uC6C3 +ParameterD-Delay_Playing=\uCC3E\uC544\uBCF4\uAE30\uD074\uB9AD\uC804\uBB38\uC11C\uB0B4\uC6A9\uBCF4\uC774\uC9C0\uC54A\uAE30 +TurnOff=\uB2EB\uAE30 +FR-Please_Rename=\uB9AC\uB124\uC784\uD574\uC8FC\uC2ED\uC2DC\uC624. +Select_Data_Set=\uB370\uC774\uD130\uC138\uD2B8\uC120\uD0DD +Name_has_Colon=\uC774\uB984\: +ReportColumns-Columns_horizontally=\uD589\uC140\uB098\uB204\uAE30 +FR-Base_Yes=\uC608 +ReportColumns-Repeat_Row=\uD589\uBCF5\uC0AC\uC21C\uC11C +Print_Setting=\uC778\uC1C4\uC124\uC815 +Registration-User_Name=\uC0AC\uC6A9\uC790\uC774\uB984 +Datasource-User_Defined=\uC0AC\uC6A9\uC790\uC815\uC758 +FR-Designer-Plugin_DownLoadMessage= +Delay=\uC9C0\uC5F0 +FR-Designer-All_MSBold=\uB9C8\uC774\uD06C\uB85C\uC18C\uD504\uD2B8 Yahei +Utils-Now_create_connection=\uB370\uC774\uD130\uB9C1\uD06C\uC0DD\uC131\uC911 +FR-Template-Path_chooseRightPath=\uC815\uD655\uD55C\uACBD\uB85C\uB97C\uC120\uD0DD\uD574\uC8FC\uC2ED\uC2DC\uC624. +FR-Remote_Re_Connect_to_Server=\uC11C\uBC84\uAC00\uB2EB\uD600\uC788\uC2B5\uB2C8\uB2E4.\uB2E4\uC2DC\uC11C\uBC84\uB97C\uC5F0\uACB0\uD558\uC2DC\uACA0\uC2B5\uB2C8\uAE4C? +Nation=\uAD6D\uAC00 +DBCP_MAX_WAIT=\uCD5C\uB300\uB300\uAE30\uC2DC\uAC04 +FR-App-Template_Form=\uD3FC +Address=\uC8FC\uC18C +Sub_Report=\uBB38\uC11C\uC548\uC758\uBB38\uC11C +FR-Import-Export_Word=Word\uC11C\uC2DD +FR-Server_Version_Tip=\uD604\uC7AC\uC5F0\uACB0\uB41C\uC11C\uBC84\uBC84\uC804\uC774\uB2F9\uC2E0\uC774\uC0AC\uC6A9\uD558\uACE0\uC788\uB294\uC124\uACC4\uAE30\uBC84\uC804\uBC88\uD638\uBCF4\uB2E4\uB0AE\uC2B5\uB2C8\uB2E4.\uACC4\uC18D\uC5F0\uACB0\uD558\uBA74\uD3B8\uC9D1\uD558\uACE0\uC788\uB294\uC77C\uBD80\uC18D\uC131\uC774\uC800\uC7A5\uB418\uC9C0\uC54A\uC744\uC218\uC788\uC2B5\uB2C8\uB2E4. \uC5F0\uACB0\uD574\uC57C\uD560\uACBD\uC6B0\uC124\uACC4\uAE30\uBC84\uC804\uACFC\uC11C\uBC84\uBC84\uC804\uC744\uC77C\uCE58\uC2DC\uCF1C\uC8FC\uC2ED\uC2DC\uC624. +StyleAlignment-Left_To_Right=\uC67C\uCABD\uC5D0\uC11C\uC624\uB978\uCABD\uC73C\uB85C +Verify-ToolTips=\uC218\uC2DD\uBE44\uCDA9\uC871\uC54C\uB9BC. \uC624\uB958\uC815\uBCF4\uAC80\uC0AC +BackgroundTexture-Stationery=\uD3B8\uC9C0\uC9C0 +FR-Designer_RWA-Help=\uBBF8\uC218\uC815, \uBBF8\uC5C5\uB370\uC774\uD2B8\uB85C\uC124\uC815\uD55C\uD6C4\uBBF8\uB9AC\uBCF4\uAE30\uBB38\uC11C\uB97C\uC791\uC131\uD558\uC5EC\uB808\uCF54\uB4DC\uB41C\uC140\uC5D0\uD3B8\uC9D1\uC218\uC815\uC0AC\uD56D\uC774\uC5C6\uC744\uACBD\uC6B0\uC774\uB808\uCF54\uB4DC\uB294\uD589\uC5C5\uB370\uC774\uD2B8\uB97C\uC9C4\uD589\uD560\uC218\uC5C6\uC2B5\uB2C8\uB2E4.\n\uB300\uC6A9\uB7C9\uB370\uC774\uD130\uB808\uCF54\uB4DC\uCC3E\uC544\uBCF4\uAE30\uBC0F\uAE30\uC785\uC0C1\uD669\uC5D0\uC11C\uD574\uB2F9\uC124\uC815\uC744\uD558\uBA74\uAE30\uC785\uC81C\uCD9C\uC131\uB2A5\uC744\uB192\uC77C\uC218\uC788\uC2B5\uB2C8\uB2E4. +M_Insert-Barcode=\uBC14\uCF54\uB4DC +Bounds=\uACBD\uACC4\uC120 +FR-Designer-Undo_All_Authority_Operations=\uC774\uC804\uAD8C\uD55C\uD3B8\uC9D1\uC758\uBAA8\uB4E0\uC870\uC791\uD574\uC81C +Datasource-Context=\uBB38\uB9E5 +CellWrite-Page_After_Column=\uC5F4\uB4A4\uD398\uC774\uC9C0\uB098\uB204\uAE30 +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:\ +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 +Include=\uD3EC\uD568 +Export-Excel-Page=\uD398\uC774\uC9C0\uB098\uB204\uAE30\uC5B4\uB0B4\uBCF4\uB0B4\uAE30 +FR-Designer-Min_Height=\uCD5C\uC18C\uB192\uC774 +Filed=\uC601\uC5ED +ReportServerP-Import_Css=Css\uC778\uC6A9 +M_Insert-Formula=\uC218\uC2DD\uC0BD\uC785 +FR-Designer_Auto-Build=\uC790\uB3D9\uC0DD\uC131 +FRFont-Foreground=\uC0C9 +Bubble-Width=\uBC84\uBE14\uB108\uBE44 +Form-Hierarchy_Tree=\uAD6C\uC870\uD2B8\uB9AC +WLayout-Border-LayoutContainer=\uC911\uAC04\uACFC\uBD81\uCABD\uB450\uBE14\uB7ED\uC758\uACBD\uACC4\uC120\uB808\uC774\uC544\uC6C3\uCEE8\uD14C\uC774\uB108\uC911\uBD81\uCABD\uBE14\uB7ED\uC740\uD544\uC694\uC5D0\uB530\uB77C\uB192\uC774\uB97C\uC870\uC815\uD560\uC218\uC788\uC2B5\uB2C8\uB2E4. +Preference-JDK_Home=JDK\uACBD\uB85C +Utils-Insert_Column=\uC5F4\uC0BD\uC785 +FR-Designer_ToolBar_Top=\uC0C1\uB2E8\uD234\uBC14 +BindColumn-The_Conditions_of_FatherCell=\uBD80\uBAA8\uC140\uC870\uAC74 +Links=\uB9C1\uD06C +M_Report-Report_Header=\uBB38\uC11C\uD398\uC774\uC9C0\uBA38\uB9AC\uAE00 +Sub_Report_Description=\uBB38\uC11C\uC548\uC758\uBB38\uC11C\uB294\uBD80\uBAA8\uD14C\uC774\uBE14\uC2E4\uD589\uD658\uACBD\uD558\uC5D0\uC788\uC5B4\uC57C\uD558\uBA70,\uC774\uB458\uC740\uB3D9\uC77C\uD55C\uD15C\uD50C\uB9BF\uC774\uC544\uB2C8\uC5B4\uC57C\uD569\uB2C8\uB2E4. +T_Insert-Float=\uC0BD\uC785\uD638\uBC84\uC694\uC18C +BackgroundTexture-FishFossil=\uC5B4\uB958\uD654\uC11D +My_Computer=\uB0B4\uCEF4\uD4E8\uD130 +FORMLET=\uAC01\uD3FC\uACBD\uB85C\uC758\uB9E4\uAC1C\uBCC0\uC218\uC811\uADFC +HF-Undefined=\uC815\uC758\uC5C6\uC74C +Widget-User_Defined_Widget_Config=\uC0AC\uC804\uC815\uC758\uB41C\uC18C\uD504\uD2B8\uC6E8\uC5B4\uC81C\uC5B4 +Report-Write_Attributes_Group_Warning=\uC140\uADF8\uB8F9\uC73C\uB85C\uC124\uC815\uB41C\uAC01\uD544\uB4DC\uC758\uC140\uAC1C\uC218\uB294\uAC19\uC544\uC57C\uD569\uB2C8\uB2E4. +Form-Single_quote=\uC791\uC740\uB530\uC634\uD45C +Compile_Success_And_Then_Save=\uCEF4\uD30C\uC77C\uC744\uC131\uACF5\uD574\uC57C\uC815\uD655\uD788\uC800\uC7A5\uAC00\uB2A5 +FR-Designer_Layout-Padding=\uC548\uCABD\uC5EC\uBC31 +Layout_Container=\uB808\uC774\uC544\uC6C3\uCEE8\uD14C\uC774\uB108 +Admin=\uAD00\uB9AC\uC790 +Form-EC_toolbar=\uBB38\uC11C\uBE14\uB85D\uD234\uBC14 +FR-App-All_Auto=\uC790\uB3D9 +Utils-Available_Columns=\uC120\uD0DD\uAC00\uB2A5\uC5F4 +Form-Change_Widget_Name_Discription=\uC0C8\uB85C\uC6B4\uC18C\uD504\uD2B8\uC6E8\uC5B4\uC81C\uC5B4\uC774\uB984\uC744\uC785\uB825\uD574\uC8FC\uC138\uC694. +FR-Module_Designer=\uC124\uACC4\uAE30\uBAA8\uB4C8 +FR-Import-Export_Text=\uD14D\uC2A4\uD2B8\uD30C\uC77C(\uD0ED\uAE30\uD638\uB85C\uAD6C\uBD84) +Values-Editor=\uAC12\uD3B8\uC9D1\uAE30 +FR-Designer_Yes=\uC608 +ExpandD-Expandable=\uD655\uC7A5\uAC00\uB2A5\uC131 +Tree-Return_Full_Path=\uACB0\uACFC\uB97C\uC644\uC804\uACC4\uCE35\uACBD\uB85C\uB85C\uB418\uB3CC\uB9AC\uAE30 +FRFont-bolditalic=\uAD75\uAC8C\uAE30\uC6B8\uC784\uAF34 +FR-Base_StyleFormat_Sample=\uC608\uC2DC +Area_Value=\uAD6C\uC5ED\uAC12 +FR-Designer-Plugin_Disable=\uC0AC\uC6A9\uAE08\uC9C0 +Utils-Are_you_sure_to_remove_the_selected_item=\uC815\uB9D0\uB85C\uC120\uD0DD\uD55C\uD56D\uBAA9\uC744\uC0AD\uC81C\uD558\uC2DC\uACA0\uC2B5\uB2C8\uAE4C? +Face_Write=\uAE30\uC785 +Poly-Report_Block=\uBB38\uC11C\uC720\uD615\uCDE8\uD569\uBE14\uB7ED +Vgap=\uC218\uC9C1\uAC04\uACA9 +FR-Designer_HyperLink_Must_Alone_Reset=\uC5EC\uB7EC\uAC1C\uD558\uC774\uD37C\uB9C1\uD06C +DS-Class=\uD504\uB85C\uADF8\uB7A8 +FR-Hyperlink_Please_Select_Reportlet=\uB124\uD2B8\uC6CC\uD06C\uBB38\uC11C\uB97C\uC120\uD0DD\uD574\uC8FC\uC2ED\uC2DC\uC624. +FS_Report_Type=\uC720\uD615 +HF-New_Line=\uC904\uBC14\uAFC8 +Privilege=\uAD8C\uD55C +Export-Offline-Html=\uCD9C\uB825\uC624\uD504\uB77C\uC778html\uBB38\uC11C +FR-Designer_open-new-form-tip=\uD604\uC7AC\uD15C\uD50C\uB9BF\uC740711\uC774\uD558\uBC84\uC804\uC73C\uB85C\uC791\uC131\uB418\uC5B4\uD638\uD658\uC774\uB418\uC9C0\uC54A\uC544\uC5F4\uC218\uC5C6\uC2B5\uB2C8\uB2E4. \uC774\uD3FC\uC744\uC5F4\uC5B4\uC218\uC815\uD558\uACE0\uC790\uD560\uACBD\uC6B0\uC0C1\uC751\uD558\uB294\uBC84\uC804\uC124\uACC4\uAE30\uB85C\uC5F4\uC5B4\uC8FC\uC2ED\uC2DC\uC624. +FR-Designer-Widget-Style_Frame_Style=\uD504\uB808\uC784\uC591\uC2DD +Present-No_Present=\uCDE8\uC18C\uD615\uD0DC\uC124\uC815 +FR-Designer_Form-Password=\uC554\uD638 +X_Axis=X\uCD95 +FR-mobile_html_analysis=HTML5 \uD574\uC11D +M_Edit-Bring_to_Front=\uAF2D\uB300\uAE30\uC5D0\uB193\uAE30(T) +Null_Value_Show=\uB110\uAC12\uBCF4\uC774\uAE30 +Datasource-JNDI_DES=\uC8FC\uC758\:INITIAL_CONTEXT_FACTORY\uD074\uB798\uC2A4\uB97C\uD3EC\uD568\uD558\uACE0\uC788\uB294 .jar \uD30C\uC77C\uC744\uC18C\uD504\uD2B8\uC6E8\uC5B4\uC124\uCE58\uB514\uB809\uD130\uB9AC\uC758 /lib\uB514\uB809\uD130\uB9AC\uC5D0\uCD94\uAC00\uD574\uC57C\uD569\uB2C8\uB2E4. +PrintP-Print_Preview=\uC778\uC1C4\uBBF8\uB9AC\uBCF4\uAE30 +Form-Hierarchy_Tree_Last=\uC774\uC804 +Has_been_gone=\\uc0ac\uB77C\uC84C\uC2B5\uB2C8\uB2E4.\uD574\uB2F9\uC591\uC2DD\uC744\uCD94\uAC00\uD558\uC2DC\uACA0\uC2B5\uB2C8\uAE4C? +RWA-Add_Field=\uD544\uB4DC\uCD94\uAC00 +newNode=\uB178\uB4DC\uCD94\uAC00 +PageSetup-Shrink_to_fit_content=\uC140\uB0B4\uC6A9\uC5D0\uB530\uB77C\uC790\uB3D9\uC870\uC815 +FR-Designer_Date=\uB0A0\uC9DC +Column_Multiple=\uB370\uC774\uD130\uBC30\uC218 +FR-App-All_File=\uD30C\uC77C +Sort-Descending=\uB0B4\uB9BC\uCC28\uC21C +FR-Designer-Plugin_Delete=\uC0AD\uC81C +Above=\uC0C1\uAE30\uBC84\uC804 +Utils-The-Chart=\uCC28\uD2B8 +FRFont-plain=\uC77C\uBC18 +Calculating=\uCC98\uB9AC\uC911 +Form-Object=\uD3FC\uAC1D\uCCB4\: +May=5\uC6D4 +FR-Designer_Plugin_Normal_Update=\uC5C5\uB370\uC774\uD2B8 +FR-Hyperlink_Reportlet=\uB124\uD2B8\uC6CC\uD06C\uBB38\uC11C +M_Edit-Copy=\uBCF5\uC0AC(C) +Sub_Report_Message2=\uBD80\uBAA8\uBB38\uC11C\uAC00\uD604\uC7AC\uC2E4\uD589\uD658\uACBD\uC5D0\uC5C6\uC2B5\uB2C8\uB2E4. +Sub_Report_Message3=\uC790\uC2E0\uC744\uC120\uD0DD\uD560\uC218\uC5C6\uC2B5\uB2C8\uB2E4. +Sub_Report_Message1=\uC815\uD655\uD55C\uACBD\uB85C\uB97C\uC120\uD0DD\uD574\uC8FC\uC2ED\uC2DC\uC624. +Form-Allow_CustomData=\uC0AC\uC6A9\uC790\uC815\uC758\uAC12\uD5C8\uC6A9 +FR-Server_Version_Tip_MoreInfo=\uBC84\uC804\uBD88\uC77C\uCE58\uB85C\uC778\uD55C\uBB38\uC81C\uAC00\uBC1C\uC0DD\uD558\uC9C0\uC54A\uB3C4\uB85D\uC0AC\uC6A9\uD558\uACE0\uC788\uB294 FineReport\uC81C\uD488\uC758\uC124\uACC4\uAE30\uBC84\uC804\uBC0F\uC124\uCE58\uB41C\uC11C\uBC84\uBC84\uC804\uC774\uC77C\uCE58\uD558\uB294\uC9C0\uD655\uC778\uD574\uC8FC\uC2ED\uC2DC\uC624.\ N\uB354\uB192\uC740\uC124\uACC4\uAE30\uBC84\uC804\uC73C\uB85C\uC791\uC131\uB41C\uD15C\uD50C\uB9BF\uC744\uC5F4\uACBD\uC6B0\uC5F4\uAE30\uC624\uB958\uB85C\uC778\uD574\uAE30\uC874\uD15C\uD50C\uB9BF\uC18D\uC131\uC744\uC783\uC744\uC218\uC788\uC2B5\uB2C8\uB2E4. \uC791\uC131\uD55C\uD15C\uD50C\uB9BF\uC5D0\uC11C\uC0AC\uC6A9\uD558\uACE0\uC788\uB294\uC124\uACC4\uAE30\uBC84\uC804\uC774\uB2F9\uC2E0\uC758\uCD5C\uC885\uC124\uCE58\uC11C\uBC84\uBC84\uC804\uBCF4\uB2E4\uB192\uC744\uACBD\uC6B0\uC11C\uBC84\uB294\uB2F9\uC2E0\uC774\uC791\uC131\uD55C\uD15C\uD50C\uB9BF\uC744\uB85C\uB529\uD558\uC9C0\uBABB\uD560\uC218\uC788\uC2B5\uB2C8\uB2E4. +FR-Designer_Server-version-tip-moreInfo=\uBC84\uC804\uBD88\uC77C\uCE58\uB85C\uC778\uD55C\uBB38\uC81C\uAC00\uBC1C\uC0DD\uD558\uC9C0\uC54A\uB3C4\uB85D\uC0AC\uC6A9\uD558\uACE0\uC788\uB294 FineReport\uC81C\uD488\uC758\uC124\uACC4\uAE30\uBC84\uC804\uBC0F\uC124\uCE58\uB41C\uC11C\uBC84\uBC84\uC804\uC774\uC77C\uCE58\uD558\uB294\uC9C0\uD655\uC778\uD574\uC8FC\uC2ED\uC2DC\uC624.\ N\uB354\uB192\uC740\uC124\uACC4\uAE30\uBC84\uC804\uC73C\uB85C\uC791\uC131\uB41C\uD15C\uD50C\uB9BF\uC744\uC5F4\uACBD\uC6B0\uC5F4\uAE30\uC624\uB958\uB85C\uC778\uD574\uAE30\uC874\uD15C\uD50C\uB9BF\uC18D\uC131\uC744\uC783\uC744\uC218\uC788\uC2B5\uB2C8\uB2E4. \uC791\uC131\uD55C\uD15C\uD50C\uB9BF\uC5D0\uC11C\uC0AC\uC6A9\uD558\uACE0\uC788\uB294\uC124\uACC4\uAE30\uBC84\uC804\uC774\uB2F9\uC2E0\uC758\uCD5C\uC885\uC124\uCE58\uC11C\uBC84\uBC84\uC804\uBCF4\uB2E4\uB192\uC744\uACBD\uC6B0\uC11C\uBC84\uB294\uB2F9\uC2E0\uC774\uC791\uC131\uD55C\uD15C\uD50C\uB9BF\uC744\uB85C\uB529\uD558\uC9C0\uBABB\uD560\uC218\uC788\uC2B5\uB2C8\uB2E4. +Get_Lock=\uC554\uD638\uD654 +HF-Edit_Footer=\uD398\uC774\uC9C0\uBC14\uB2E5\uAE00\uD3B8\uC9D1 +Datasource-New_Charset=\uC0C8\uCF54\uB529 +Preference-Custom=\uC0AC\uC6A9\uC790\uC815\uC758 +BackgroundTexture-Newsprint=\uC2E0\uBB38\uC9C0 +ConditionB-Add_bracket=\uAD04\uD638\uCD94\uAC00 +Datasource-Connection_successfully=\uB9C1\uD06C\uC131\uACF5 +Function-The_class_must_implement_the_interface=\uD574\uB2F9\uD074\uB798\uC2A4\uB294\uC778\uD130\uD398\uC774\uC2A4\uB97C\uD574\uC57C\uD55C\uB2E4. +FR-Designer_ChartF-Transparency=\uD22C\uBA85 +Crimson=\uC9C4\uD55C\uBE68\uAC15 +FR-Hyperlink_Dialog=\uB300\uD654\uC0C1\uC790 +FR-Designer_Covered_All=\uBAA8\uB450\uB36E\uC5B4\uC50C\uC6B0\uAE30 +Hyperlink-New_Window=\uC0C8\uC708\uB3C4\uC6B0 +Style_Name=\uC11C\uC2DD\uBA85 +CSS_warning=\\uc0c1\uB300\uBB38\uC11C\uD504\uB85C\uC81D\uD2B8\uB514\uB809\uD130\uB9AC(\uC608:WebReport,WebReport\\css)\uC5D0\uC778\uC6A9\uB41Ccss \uD30C\uC77Ctest.css\uAC00\uC788\uB294\uACBD\uC6B0\uC0C1\uB300\uACBD\uB85C\uB294css/test.css\uC774\uB2E4. +FR-Base_Column=\uC5F4 +Three_Rows_Of_Two_Grid=3\uD589 2\uC5F4\uC758\uADF8\uB9AC\uB4DC +DBCP_VALIDATION_QUERY=SQL\uAC80\uC99D\uCC3E\uC544\uBCF4\uAE30 +M_Edit-Clear_Formats=\uC11C\uC2DD(F) +Parameter_Setting=\uB9E4\uAC1C\uBCC0\uC218\uC124\uC815 +Related=\uC5F0\uB3D9 +BorderLayout-Constraints=\uC704\uCE58 +Write_Preview=\uAE30\uC785\uBBF8\uB9AC\uBCF4\uAE30 +PageSetup-Page_Order=\uC778\uC1C4\uC21C\uC11C +Verify-Verify_Formula=\uAC80\uC0AC\uC218\uC2DD +State=\uC131\uC2DC +FR-Designer-Widget-Style_Body_Background=\uBA54\uC778\uBC30\uACBD +FR-App-Privilege_No=\uAD8C\uD55C\uC5C6\uC74C +Please_Drag_ParaPane= +Come_True=\uC2E4\uD604 +ISEMPTY=\uBE44\uC5B4\uC788\uC74C +Background-Texture=\uBB34\uB2AC +FR-Designer_Verify-Message=\uC624\uB958\uC815\uBCF4 +Locked=(\uC7A0\uAE40\uFF09 +Utils-Design-Action_Cancel=\uCDE8\uC18C +Image-Titled=\uD0C0\uC77C +Gradient-Direction=\uADF8\uB77C\uB370\uC774\uC158 \uBC29\uD5A5 +Green=\uC9D9\uC740\uB179\uC0C9 +Report_Engine=\uBB38\uC11C\uC5D4\uC9C4 +Return-String=\uBB38\uC790\uC5F4\uB3CC\uC544\uAC00\uAE30 +Margin=\uC5EC\uBC31 +Pitch_Percentage=\uAC04\uACA9\uBC31\uBD84\uC728 +FR-Base_TurnOff=\uB2EB\uAE30 +Utils-has_been_existed=\uC774\uBBF8\uC874\uC7AC\uD569\uB2C8\uB2E4 +HF-Insert_Formula=\uC218\uC2DD\uC0BD\uC785 +Utils-Exit_Designer=\uC124\uACC4\uAE30\uB098\uAC00\uAE30 +Formula_Dictionary_Display=\uC704\uC2E4\uC81C\uAC12\uBC94\uC704\uC548\uC758\uAC01\uAC12($$$): \uFF0C \uD45C\uC2DC\uAC12: +PageSetup-Left_to_right=\uD589\uBA3C\uC800\uC5F4\uB098\uC911 +Utils-Import_Excel_Data=[Excel]\uBD88\uB7EC\uC624\uAE30 +M-Save=\uC800\uC7A5 +redo=\uB9AC\uC6CC\uD06C +Status=\uC0C1\uD0DC +Draw=\uADF8\uB9AC\uAE30 +FR-Designer_Message=\uC815\uBCF4 +Records=\uAC74\uC758\uB808\uCF54\uB4DC +FR-Designer_ComboBox=\uBC15\uC2A4\uD480\uB2E4\uC6B4 +Driver=\uB4DC\uB77C\uC774\uBE0C +Template_Parameters=\uD15C\uD50C\uB9BF\uB9E4\uAC1C\uBCC0\uC218 +Form-Remove_Repeat_Data=\uC911\uBCF5\uB370\uC774\uD130\uC0AD\uC81C +ECP_decode=\uD15C\uD50C\uB9BF\uC554\uD638\uD574\uC81C +Area_Name=\uC601\uC5ED\uBA85 +Others=\uAE30\uD0C0 +Merge=\uBCD1\uD569 +BackgroundTexture-Parchment=\uC591\uD53C\uC885\uC774 +BindColumn-Bottom_N=\uB4A4N\uAC1C +Frame=\uD504\uB808\uC784 +Bottom_Border_Line=\uC544\uB798\uD14C\uB450\uB9AC\uC120 +Muiti_In=\uB2E4\uCE35\uB4DC\uB9B4\uB2E4\uC6B4 +FR-Designer-Dependence_Install_Online=install online +Use_Default_ToolBar=\uAE30\uBCF8\uD234\uBC14\uC0AC\uC6A9 +M_Server-Platform_Manager=\uBB38\uC11C\uD50C\uB7AB\uD3FC\uAD00\uB9AC +PageSetup-inches=\uC778\uCE58 +Form-Widget_Property=\uC18D\uC131\uC774\uB984 +FR-Layout_Padding=\uC548\uCABD\uC5EC\uBC31 +Schema=\uD14C\uB9C8 +Server_Path=\uD638\uC2A4\uD2B8\uCEF4\uD4E8\uD130\uC704\uCE58 +Condition_Display=\uC870\uAC74\uBCF4\uC774\uAE30 +FR-Server-Design_template_unopened=\uD15C\uD50C\uB9BF\uC744\uC5F4\uC218\uC5C6\uC2B5\uB2C8\uB2E4. +Function-Function_Class_Name=\uD568\uC218\uD074\uB798\uC2A4\uB124\uC784 +Schedule-Template=\uD15C\uD50C\uB9BF\uBA85\uCE6D +Tree_Data_Field=\uD2B8\uB9AC\uB370\uC774\uD130\uD544\uB4DC +Border-Style-Normal=\uC9C1\uAC01\uD14C\uB450\uB9AC +Top_And_Double_Bottom_Border_Line=\uC704\uD14C\uB450\uB9AC\uC120\uACFC\uB450\uC904\uBC11\uD14C\uB450\uB9AC\uC120 +FR-Server_Embedded_Server_Start=\uB0B4\uC7A5\uB41C\uC11C\uBC84-\uC5F4\uAE30 +FR-Designer-Basic_Restart_Designer_Later=\uC7A0\uC2DC\uD6C4\uC7AC\uBD80\uD305\uD574\uC8FC\uC2ED\uC2DC\uC624. +StyleAlignment-Top=\uC704\uC5D0\uB9DE\uCDA4 +ReportServerP-First=\uBA54\uC778\uD398\uC774\uC9C0 +Not_Exist=\uC874\uC7AC\uD558\uC9C0\uC54A\uC2B5\uB2C8\uB2E4. +FR-Remote_File_is_Locked=\uC5F4\uB824\uB294\uBB38\uC11C\uB97C\uB2E4\uB978\uC0AC\uB78C\uC774\uC0AC\uC6A9\uC911\uC774\uB2C8\uC7A0\uC2DC\uD6C4\uC5D0\uC5F4\uC5B4\uC8FC\uC2ED\uC2DC\uC624. +Apply=\uC751\uC6A9 +Sytle-Indentation=\uB4E4\uC5EC\uC4F0\uAE30 +Parameter-Float=\uC2F1\uAE00\uC815\uB3C4\uD0C0\uC785 +HF-Center_Section=\uC911\uAC04\uC601\uC5ED +Form-Double_quotes=\uD070\uB530\uC634\uD45C +M_File-Export-Word=Word\uC11C\uC2DD +M_File-Export-Text=\uD14D\uC2A4\uD2B8\uD30C\uC77C(\uD0ED\uAE30\uD638\uB85C\uAD6C\uBD84) +PageSetup-First_Page_Number=\uC2DC\uC791\uD398\uC774\uC9C0\uBC88\uD638 +Execute=\uC2E4\uD589 +Task=\uD0DC\uC2A4\uD06C +Custom_Button_Type_Submit=\uC81C\uCD9C +FR-Designer-Widget_Settings=\uC18C\uD504\uD2B8\uC6E8\uC5B4\uC81C\uC5B4\uC124\uC815 +IS_Need_Password=\uC554\uD638\uB97C\uC785\uB825\uD574\uC57C\uD569\uB2C8\uB2E4. +PageSetup-Horizontally=\uC218\uD3C9\uAC00\uC6B4\uB370\uC815\uB82C +No_Editor_Property_Definition=\uD574\uB2F9\uD3B8\uC9D1\uAE30\uC5D0\uC18D\uC131\uC815\uC758\uAC00\uC5C6\uC2B5\uB2C8\uB2E4. +Env-Remote_Server=\uC6D0\uACA9\uC11C\uBC84 +FR-Utils_Background=\uBC30\uACBD +FR-Designer-Plugin_Warning=\uACBD\uACE0 +Server-version-info=\uD604\uC7AC\uC5F0\uD15C\uD50C\uB9BF\uD30C\uC77C\uC740\uB354\uB192\uC740\uBC84\uC804\uC758\uC124\uACC4\uAE30\uB85C\uC791\uC131\uB418\uC5C8\uC2B5\uB2C8\uB2E4.\uC5F4\uACBD\uC6B0\uAE30\uC874\uD15C\uD50C\uB9BF\uC18D\uC131\uC774\uC624\uB958\uAC00\uB098\uAC70\uB098\uC190\uC0C1\uB420\uC704\uD5D8\uC774\uC788\uC2B5\uB2C8\uB2E4. \uC774\uD15C\uD50C\uB9BF\uC744\uC5F4\uC5B4\uC57C\uD560\uACBD\uC6B0\uC124\uACC4\uAE30\uB97C~\uB85C\uC5C5\uADF8\uB808\uC774\uB4DC\uD574\uC8FC\uC2ED\uC2DC\uC624. +CellWrite-Page_After_Row=\uD589\uB4A4\uD398\uC774\uC9C0\uB098\uB204\uAE30 +HF-Right_Section=\uC624\uB978\uCABD\uC601\uC5ED +PageSetup-Title_Start_Row=\uC911\uBCF5\uC81C\uBAA9\uD589 +From=~\uBC88\uC9F8\uBD80\uD130 +Preference-Grid_Line_Color=\uB208\uAE08\uC120\uC0C9 +RowTo=\uD589\uC5D0\uC11C~\uBC88\uC9F8 +FR-Designer_ReportColumns-Repeat_Column=\uC5F4\uBCF5\uC0AC\uC21C\uC11C +M_Server-Function_Manager=\uD568\uC218\uAD00\uB9AC\uC790 +KeyWord=\uD0A4\uC6CC\uB4DC +DS-Multi_Dimensional_Database=\uB2E4\uCC28\uC6D0\uB370\uC774\uD130\uBCA0\uC774\uC2A4 +BiasD-Slope_Line=\uC0AC\uC120 +Tue=2 +ReportServerP-Last=\uB05D\uD398\uC774\uC9C0 +FR-Base_Columns=\uC5F4 +SpecifiedG-Leave_in_their_own_groups=\uAC01\uC790\uC758\uADF8\uB8F9\uC548\uC5D0\uB0A8\uAE30\uAE30 +LOG-Please_Wait=\uC7A0\uC2DC\uB9CC\uAE30\uB2E4\uB824\uC8FC\uC2ED\uC2DC\uC624 +Form-ToolBar=\uD3FC\uD234\uBC14 +FR-Base_sure_remove_item=\uC815\uB9D0\uB85C\uC120\uD0DD\uD55C\uD56D\uBAA9\uC744\uC0AD\uC81C\uD558\uC2DC\uACA0\uC2B5\uB2C8\uAE4C? +Component_Scale=\uC5B4\uC148\uBE14\uB9AC\uCD95\uC18C +Hyperlink-Use_CJK_to_encode_parameter=CJK\uB85C\uB9E4\uAC1C\uBCC0\uC218\uCC98\uB9AC +LOG-Has_Been_Openned=\uC5F4\uB838\uC2B5\uB2C8\uB2E4. +FR-Designer-Dependence= +ECP_error_pwd=\uBE44\uBC00\uBC88\uD638\uC785\uB825\uC624\uB958 +REPORTLET=\uD15C\uD50C\uB9BF\uACBD\uB85C\uC758\uB9E4\uAC1C\uBCC0\uC218\uC811\uADFC +RWA-Column_Offset=\uC5F4\uC635\uC14B +Forecast=\uC608\uCE21 +Light_Orange=\uC624\uB80C\uC9C0\uC0C9 +StyleAlignment-Vertical=\uC218\uC9C1\uC815\uB82C +Form-List=\uB9AC\uC2A4\uD2B8 +ParameterD-Show_Parameter_Window=\uB9E4\uAC1C\uBCC0\uC218\uB300\uD654\uCC3D\uBCF4\uC774\uAE30 +FR-Designer_Set_Submit_Event=\uC81C\uCD9C\uC774\uBCA4\uD2B8\uC124\uC815 +Value_Percent=\uAC12\uC810\uC720\uBE44\uC728 +DBCP_MIN_EVICTABLE_IDLE_TIMEMILLIS=\uC720\uD734\uCD5C\uC18C\uC2DC\uAC04\uAC12 +Function-The_class_must_be_located_in=\uD574\uB2F9\uD074\uB798\uC2A4\uB294~\uC5D0\uB450\uC5B4\uC57C\uD55C\uB2E4. +FR-Action_Sort=\uC21C\uC11C +DataFunction-Average=\uD3C9\uADE0 +FR-Designer_Show_in_Containing_Folder=\uD574\uB2F9\uD3F4\uB354\uC5F4\uAE30 +M_File-Export-Excel=Excel\uC11C\uC2DD +DataFunction-Max=\uCD5C\uB300\uAC12 +FR-Designer_Form-Widget_Name=\uC18C\uD504\uD2B8\uC6E8\uC5B4\uC81C\uC5B4\uC774\uB984 +FS_End_Date=\uC885\uB8CC\uB0A0\uC9DC +Export-Excel-Simple=\uC6D0\uB798\uBAA8\uC2B5\uB0B4\uBCF4\uB0B4\uAE30 +ColumnTo=\uC5F4\uC744~\uBC88\uC9F8\uB85C +SpecifiedG-Discard_all_others=\uAE30\uD0C0\uBAA8\uB4E0\uAC83\uD3EC\uAE30 +DS-TableData=\uB370\uC774\uD130\uC138\uD2B8 +Form-DataTable=\uB370\uC774\uD130\uD45C +Sub_Report_ToolTips=\uBB38\uC11C\uC548\uC758\uBB38\uC11C\uC54C\uB9BC +Right_Top=\uC624\uB978\uCABD\uC704 +M_Edit-Merge_Cell=\uC140\uBCD1\uD569 +FR-Designer_Restore_Default=\uAE30\uBCF8\uD68C\uBCF5 +Component_Interval=\uC5B4\uC148\uBE14\uB9AC\uAC04\uACA9 +Cover_None=\uBAA8\uB450\uB36E\uC5B4\uC50C\uC6B0\uC9C0\uC54A\uAE30 +Datasource-From_Database=\uB370\uC774\uD130\uBCA0\uC774\uC2A4\uD45C +Folder=\uB514\uB809\uD130\uB9AC +Form-Allow_Edit=\uC9C1\uC811\uD3B8\uC9D1\uD5C8\uC6A9 +M_Edit-Clear=\uD074\uB9AC\uC5B4(A) +ParentCell_Setting=\uBD80\uBAA8\uC140\uC124\uC815 +Only_selected_cell_can_paste_only=\uC140\uC744\uC120\uD0DD\uD574\uC57C\uBD99\uC5EC\uB123\uAE30\uB97C\uD560\uC218\uC788\uC2B5\uB2C8\uB2E4. +M_Report-Report_Columns=\uBB38\uC11C\uC140\uB098\uB204\uAE30 +Unit_Hundred=\uBC31 +FR-Designer_DataTable-Build= +Widget-Form_Widget_Config=\uD3FC\uC18C\uD504\uD2B8\uC6E8\uC5B4\uC81C\uC5B4 +Server-version-tip-moreInfo=\uBC84\uC804\uBD88\uC77C\uCE58\uB85C\uC778\uD55C\uBB38\uC81C\uAC00\uBC1C\uC0DD\uD558\uC9C0\uC54A\uB3C4\uB85D\uC0AC\uC6A9\uD558\uACE0\uC788\uB294 FineReport\uC81C\uD488\uC758\uC124\uACC4\uAE30\uBC84\uC804\uBC0F\uC124\uCE58\uB41C\uC11C\uBC84\uBC84\uC804\uC774\uC77C\uCE58\uD558\uB294\uC9C0\uD655\uC778\uD574\uC8FC\uC2ED\uC2DC\uC624.\ N\uB354\uB192\uC740\uC124\uACC4\uAE30\uBC84\uC804\uC73C\uB85C\uC791\uC131\uB41C\uD15C\uD50C\uB9BF\uC744\uC5F4\uACBD\uC6B0\uC5F4\uAE30\uC624\uB958\uB85C\uC778\uD574\uAE30\uC874\uD15C\uD50C\uB9BF\uC18D\uC131\uC744\uC783\uC744\uC218\uC788\uC2B5\uB2C8\uB2E4. \uC791\uC131\uD55C\uD15C\uD50C\uB9BF\uC5D0\uC11C\uC0AC\uC6A9\uD558\uACE0\uC788\uB294\uC124\uACC4\uAE30\uBC84\uC804\uC774\uB2F9\uC2E0\uC758\uCD5C\uC885\uC124\uCE58\uC11C\uBC84\uBC84\uC804\uBCF4\uB2E4\uB192\uC744\uACBD\uC6B0\uC11C\uBC84\uB294\uB2F9\uC2E0\uC774\uC791\uC131\uD55C\uD15C\uD50C\uB9BF\uC744\uB85C\uB529\uD558\uC9C0\uBABB\uD560\uC218\uC788\uC2B5\uB2C8\uB2E4. +Actions=\uD0DC\uC2A4\uD06C +FR-Designer-Dependence_Connect_Server_Error=connect error +High=\uB192\uC774 +HJS-Send_Failed=\uBC1C\uC1A1\uC2E4\uD328 +HJS-Message=\uB0B4\uC6A9 +File-Allow_Upload_Files=\uC5C5\uB85C\uB4DC\uD5C8\uC6A9\uD30C\uC77C\uC720\uD615 +FR-Designer-Form-ToolBar_Chart=\uCC28\uD2B8 +Thick_Bottom_Border_Line=\uAD75\uC740\uBC11\uC904\uD14C\uB450\uB9AC\uC120 +FR-Action_Remove=\uC0AD\uC81C +FRFont-Style=\uD3F0\uD2B8 +Select_DataColumn=\uB370\uC774\uD130\uC5F4\uC120\uD0DD +StartValue=\uC2DC\uC791\uAC12 +SINGLE_FILE_UPLOAD=\uD55C\uAC1C\uD30C\uC77C\uC5C5\uB85C\uB4DC\uB9CC\uC9C0\uC6D0\uD569\uB2C8\uB2E4. +BackgroundTexture-Cork=\uCF54\uB974\uD06C\uB9C8\uAC1C +M_Format-Data_Map=\uB370\uC774\uD130\uC0AC\uC804 +FR-mobile_native_analysis=\uC6D0\uC0DD \uD574\uC11D +HighLight=\uD558\uC774\uADF8\uB85C\uC2DC +FR-Designer_Dropdown-More-Preview=\uC544\uB798\uB85C \uB4DC\uB798\uADF8\uD558\uBA74 \uB354 \uB9CE\uC740 \uBBF8\uB9AC\uBCF4\uAE30 \uBC29\uC2DD\uC774 \uB098\uC635\uB2C8\uB2E4. +local=\uB85C\uCEEC +FR-Designer_Gradation=\uB2E8\uACC4 +PageSetup-Finis_Start_Column=\uC911\uBCF5\uC885\uB8CC\uC5F4 +Env-Invalid_User_and_Password=\uC62C\uBC14\uB974\uC9C0\uC54A\uC740\uC0AC\uC6A9\uC790\uC774\uB984\uB610\uB294\uC554\uD638 +FR-Designer-Plugin_All_Plugins=\uBAA8\uB450\uD50C\uB7EC\uADF8\uC778 +FR-Designer_Prepare_Export=\uB0B4\uBCF4\uB0B4\uAE30\uB97C\uC2DC\uC791\uD558\uB2C8\uC7A0\uC2DC\uB9CC\uAE30\uB2E4\uB824\uC8FC\uC2ED\uC2DC\uC624. +DBCP_TEST_ON_RETURN=\uB9C1\uD06C\uADC0\uD658\uC804\uAC80\uC0AC\uC9C4\uD589 +no-alternatives=\uC120\uD0DD\uD55C\uD56D\uBAA9\uC774\uC5C6\uC2B5\uB2C8\uB2E4. +FR-Designer_Submmit_WClass=\uBC31\uADF8\uB77C\uC6B4\uB4DC\uD074\uB798\uC2A4\uC81C\uCD9C +M_Insert-Slope_Line=\uC0AC\uC120\uC0BD\uC785 +FR-Designer-Plugin_Plugin_Description=\uD50C\uB7EC\uADF8\uC778\uC124\uBA85 +ExpandD-Not_Expand=\uD655\uC7A5\uD558\uC9C0\uC54A\uC74C +Utils-Bottom_to_Top=\uC544\uB798\uC11C\uC704\uB85C +Collect-Click\!_Get_user_information_code=\!\uB97C\uD074\uB9AD\uD558\uC5EC\uD65C\uC131\uCF54\uB4DC\uB97C\uC5BB\uC2B5\uB2C8\uB2E4. +FR-Already_exist=\uD604\uC7AC\uD658\uACBD\uC774\uC774\uBBF8\uC874\uC7AC\uD569\uB2C8\uB2E4\: +Send=\uBC1C\uC1A1 +M_Edit-Clear_All=\uBAA8\uB450 (A) +Brown_Orange=\uC605\uC740\uAC08\uC0C9 +PageSetup-Portrait=\uC138\uB85C +FR-Designer_Form-RadioGroup=\uB2E8\uC77C\uC120\uD0DD\uD0A4\uD328\uB4DC +FR-Utils-App_AllFiles=\uBAA8\uB4E0\uD30C\uC77C +Popup=\uD31D\uC5C5 +Server_Charset=\uC11C\uBC84\uCF54\uB529 +CellWrite-Repeat_Content_When_Paging=\uD398\uC774\uC9C0\uB098\uB204\uAE30\uB85C\uB098\uB20C\uB54C\uAC12\uC911\uBCF5\uBCF4\uC774\uAE30 +Utils-No_Pagination=\uD398\uC774\uC9C0\uB098\uB204\uAE30\uB97C\uD558\uC9C0\uC54A\uC2B5\uB2C8\uB2E4. +Form-NullLayout=\uC808\uB300\uC801\uC704\uCE58 +ConditionB-Remove_bracket=\uAD04\uD638\uC0AD\uC81C +email=\uBA54\uC77C +Minute=\uBD84 +FR-Designer-Plugin_Update=\uD50C\uB7EC\uADF8\uC778\uC5C5\uB370\uC774\uD2B8 +alraedy_close=\uB2EB\uD614\uC2B5\uB2C8\uB2E4. +ComboCheckBox-End_Symbol=\uC885\uB8CC\uBD80\uD638 +DataColumn=\uB370\uC774\uD130\uC5F4 +Form-Password=\uC554\uD638 +FR-Background_Image_Adjust=\uC801\uC6A9 +Export-Excel-PageToSheet=\uD398\uC774\uC9C0\uC640 Sheet\uB098\uB204\uC5B4\uB0B4\uBCF4\uB0B4\uAE30 +Edit-Row_Count=\uD589\uC218 +DS-Report_TableData=\uD15C\uD50C\uB9BF\uB370\uC774\uD130\uC138\uD2B8 +Sche-Hour=\uC2DC +Group_Count=\uCD1D\uAC1C\uC218\uB97C\uB098\uD0C0\uB0B8\uB2E4. +EndValue=\uC885\uB8CC\uAC12 +FR-Designer_Sytle-Indentation=\uB4E4\uC5EC\uC4F0\uAE30 +DownBarBorderStyleAndColor=\uB4DC\uB86D\uCE7C\uB7FC\uC591\uC2DD +World=\uC6D4\uB4DC +FR-Designer-Basic_Cancel=\uCDE8\uC18C +Finally=\uB9C8\uC9C0\uB9C9 +Low=\uB0AE\uC74C +Please_Input_The_Key=\uD574\uB2F9\uB9F5\uC5D0\uC11C\uC0AC\uC6A9\uD558\uB294key\uB97C\uC785\uB825\uD574\uC8FC\uC2ED\uC2DC\uC624 +Smart=\uC2A4\uB9C8\uD2B8 +Preference-Predefined=\uC0AC\uC804\uC815\uC758\uB41C +Current_custom_global=\uD604\uC7AC\uBB38\uC11C\uC5D0\uC11C\uC0AC\uC6A9\uD558\uB294\uC0AC\uC6A9\uC790\uC815\uC758\uC758\uBAA8\uB4E0\uC591\uC2DD +FR-Designer-Plugin_Shop_Need_Install=\uB2F9\uC2E0\uC740 \uCD94\uAC00 \uAE30\uB2A5\uB418\uC9C0 \uC54A\uC740 \uC790\uC6D0\uC758 \uC800\uC7A5\uC18C\uB97C \uB2E4\uC6B4\uB85C\uB4DC \uD560 \uAC83\uC778\uC9C0? +WEB-Pagination_Setting=\uD398\uC774\uC9C0\uB098\uB204\uAE30\uBBF8\uB9AC\uBCF4\uAE30\uC124\uC815 +RCodeDrawPix=\uD654\uC18C +FR-Designer-Widget-Style_Alpha=\uBD88\uD22C\uBA85\uB3C4 +BorderLayout-North=\uBD81 +HJS-Current_Page=\uD604\uC7AC\uD398\uC774\uC9C0 +Compile=\uCEF4\uD30C\uC77C +Show_Blank_Row=\uACF5\uBC31\uD589\uBCF4\uCDA9 +TableData_Dynamic_Parameter_Setting=\uB3D9\uC801\uD30C\uB77C\uBBF8\uD130\uC8FC\uC785 +FR-Background_Image_Default=\uAE30\uBCF8 +BackgroundTexture-WhiteMarble=\uD770\uC0C9\uB300\uB9AC\uC11D +DataFunction-Sum=\uD569\uAD6C\uD558\uAE30 +Collect-The_user_information_code_is_invalid=\uB4F1\uB85D\uB418\uC5B4\uC788\uC9C0\uC54A\uC740\uD65C\uC131\uCF54\uB4DC\uC785\uB2C8\uB2E4.\uD648\uD398\uC774\uC9C0\uC5D0\uC11C\uC2E0\uCCAD\uD574\uC8FC\uC2ED\uC2DC\uC624. +Preference-Locale=\uAD6D\uC81C\uD654 +M_File-Export-PDF=PDF\uC11C\uC2DD +BiasD-From-lower_left_to_upper_right=\uC67C\uCABD\uD558\uB2E8\uC5D0\uC11C\uC624\uB978\uCABD\uC704\uB85C\uB098\uD0C0\uB0B4\uAE30 +Border-Style=\uD14C\uB450\uB9AC\uC591\uC2DD +Sort=\uC21C\uC11C +Image-Image_Layout=\uC774\uBBF8\uC9C0\uB808\uC774\uC544\uC6C3 +Panel=\uD328\uB110 +FR-Designer-Basic_Copy_Build_NO_OK=\uC0DD\uC131\uBC84\uC804\uBC88\uD638\uAC00\uD074\uB9BD\uBCF4\uB4DC\uC5D0\uBCF5\uC0AC\uB418\uC5C8\uC2B5\uB2C8\uB2E4. +All_Border_Line=\uBAA8\uB4E0\uD14C\uB450\uB9AC\uC120 +FR-Utils-Please_Input_a_New_Name=\uC0C8\uB85C\uC6B4\uC774\uB984\uC744\uC785\uB825\uD574\uC8FC\uC2ED\uC2DC\uC624. +FR-Base_Formula_Plugin=\uD50C\uB7EC\uADF8\uC778\uD568\uC218 +Two_Rows_Of_Three_Grid=2\uD589 3\uC5F4\uC758\uADF8\uB9AC\uB4DC +FR-Designer_Certificate_Pass=https\uBE44\uBC00\uD0A4 +Bubble-Series_Name=\uACC4\uC5F4\uBA85 +M-New_Multi_Report=\uC0C8\uCDE8\uD569\uBB38\uC11C (M) +BackgroundTexture-PinkTissuePaper=\uD551\uD06C\uC0AC\uD3EC +Preference-Support_Default_Parent_Calculate=\uAE30\uBCF8\uBD80\uBAA8\uC140\uACC4\uC0B0 +Show_Blank_Column=\uACF5\uBC31\uC5F4\uBCF4\uCDA9 +BaiduMap=\uBC14\uC774\uB450\uC9C0\uB3C4 +Report-Web_Attributes=\uD15C\uD50C\uB9BFWeb \uC18D\uC131 +FR-Designer_StyleAlignment-Wrap_Text=\uC790\uB3D9\uD589\uBC14\uAFB8\uAE30 +Need=\uD544\uC694 +Parameter-Double=\uB354\uBE14\uC815\uB3C4\uD0C0\uC785 +Config_Servlet=\uC6D0\uACA9\uC11C\uBC84\uAD6C\uC131 +Form-Comma=\uC27C\uD45C +Verify=\uAC80\uC0AC +PageSetup-Landscape=\uAC00\uB85C +Weeks=\uC694\uC77C +FR-Designer-Widget-Style_Title_Background=\uC81C\uBAA9\uBC30\uACBD +Preference-Pagination_Line_Color=\uD398\uC774\uC9C0\uB098\uB204\uAE30\uC120\uC0C9 +Test_URL=\uD14C\uC2A4\uD2B8\uB9C1\uD06C +Fill_blank_Data=\uACF5\uBC31\uB370\uC774\uD130\uBCF4\uCDA9 +ReportServerP-The_name_of_printer_cannot_be_null=\uD504\uB9B0\uD130\uC758\uC774\uB984\uC740\uBE48\uCE78\uC73C\uB85C\uB458\uC218\uC5C6\uC2B5\uB2C8\uB2E4. +FR-Designer-Basic_Copy_Activation_Key=\uC124\uACC4\uAE30\uC77C\uB828\uBC88\uD638\uB97C\uB354\uBE14\uD074\uB9AD\uD558\uBA74,\uD074\uB9BD\uBCF4\uB4DC\uC5D0\uBCF5\uC0AC\uB429\uB2C8\uB2E4. +Continuum=\uC774\uC6C3\uC5F0\uC18D +BackgroundTexture-MediumWood=\uC9D9\uC740\uB098\uBB34\uC7AC\uC9C8 +Datasource-Column_Index=\uC5F4\uBC88\uD638 +Function-Function_File=\uD568\uC218\uD30C\uC77C +Form-Component_Bounds=\uC18C\uD504\uD2B8\uC6E8\uC5B4\uC81C\uC5B4\uACBD\uACC4\uC120 +Utils-Submit=\uC81C\uCD9C +Conditions_formula=\uC870\uAC74\uC218\uC2DD +M_Insert-Image=\uC774\uBBF8\uC9C0\uC0BD\uC785 +FR-Designer-Plugin_Will_Be_Delete=\uD50C\uB7EC\uADF8\uC778\uC774\uC0AD\uC81C\uB429\uB2C8\uB2E4.\uC124\uACC4\uAE30\uBC0F\uC11C\uBC84\uB97C\uC7AC\uBD80\uD305\uD558\uB824\uBA74\uC11C\uBC84\uB97C\uC218\uB3D9\uC7AC\uBD80\uD305\uD574\uC57C\uD569\uB2C8\uB2E4. +FormulaD-Functions=\uD568\uC218 +Mobile_Terminal=\uBAA8\uBC14\uC77C\uB2E8\uB9D0 +CheckBox=\uCCB4\uD06C\uBC15\uC2A4 +FR-Designer-Plugin_Install=\uC124\uCE58 +Sun=\uC77C +FR-Designer_ToolBar_Bottom=\uD558\uB2E8\uD234\uBC14 +Widget-Width=\uC18C\uD504\uD2B8\uC6E8\uC5B4\uC81C\uC5B4\uB108\uBE44 +Series_Name=\uACC4\uC5F4\uBA85 +Set_Row_Title_Start=\uC911\uBCF5 \uD0C0\uC774\uD2C0 \uD589 \uC124\uC815 +HF-Default_Page=\uAE30\uBCF8\uD398\uC774\uC9C0 +Env_Des=\uB85C\uADF8\uC778\uD658\uACBD\uC911\uC758\uBB38\uC11C\uD504\uB85C\uC81D\uD2B8\uC5D0\uC11C\uAD8C\uD55C\uC0AC\uC6A9\uC744\uC2DC\uC791\uD588\uC744\uACBD\uC6B0\uC0AC\uC6A9\uC790\uC774\uB984\uACFC\uC554\uD638\uB294\uD574\uB2F9\uB85C\uADF8\uC778\uD658\uACBD\uC758\uC0AC\uC6A9\uC790\uC640\uC554\uD638\uB97C\uAE30\uC785\uD574\uC57C\uD569\uB2C8\uB2E4. +Widget-User_Defined=\uC0AC\uC804\uC815\uC758\uB41C +Url_location=\uC808\uB300\uACBD\uB85C +Disk_File=\uB514\uC2A4\uD06C\uD30C\uC77C +Inside=\uB0B4\uBD80 +FR-Designer_filedChosen= +ServerM-Predefined_Styles=\uC0AC\uC804\uC815\uC758\uB41C\uC591\uC2DD +is_need_word_adjust=\uBE44\uACE0\uC815\uD589\uB192\uC774\uB0B4\uBCF4\uB0B4\uAE30 +Background-Null=\uBC30\uACBD\uC5C6\uC74C +PageSetup-Vertically=\uC218\uC9C1\uAC00\uC6B4\uB370\uC815\uB82C +FR-Designer_Root=\uB8E8\uD2B8\uB178\uB4DC +FR-Designer_Form-TextArea=\uD14D\uC2A4\uD2B8\uC601\uC5ED +ReportServerP-Import_JavaScript=JavaScript\uC778\uC6A9 +Form-TableTree=\uC2DC\uD2B8\uD2B8\uB9AC +Opened=\uC5F4\uB824\uC788\uC2B5\uB2C8\uB2E4. +M_Edit-Delete=\uC0AD\uC81C(D) +Widget-Form_Widget_Container=\uD3FC\uCEE8\uD14C\uC774\uB108 +BindColumn-Summary=\uCDE8\uD569 +Sche-Second=\uCD08 +Server-Open_Service_Manager=\uC11C\uBE44\uC2A4\uAD00\uB9AC\uC790\uC5F4\uAE30 +FRFont-Effects=\uD2B9\uC218\uD6A8\uACFC +OtherGroup_Name=\uAE30\uD0C0\uADF8\uB8F9\uC774\uB984 +Specify=\uC9C0\uC815 +Highlight-Click_to_Choose_Property_To_Modify=\uBC14\uAFB8\uB824\uB294\uC18D\uC131\uC120\uD0DD\uD074\uB9AD +triggered=\uD2B8\uB9AC\uAC70\uB418\uC5C8\uC2B5\uB2C8\uB2E4. +Double_Bottom_BorderLine=\uC774\uC911\uBC14\uB2E5\uD14C\uB450\uB9AC\uC120 +M_Insert-Sub_Report=\uBB38\uC11C\uC548\uC758\uBB38\uC11C\uC0BD\uC785 +Unit_Ten=10 +Polybolck=\uCDE8\uD569\uBE14\uB7ED +Select_sort_order=\uC815\uB82C\uC21C\uC11C\uC120\uD0DD +HJS-Mail_to=\uC218\uC2E0\uC778 +StyleAlignment-Left=\uC67C\uCABD\uC5D0\uB9DE\uCDA4 +Two_Rows_Of_Two_Grid=2\uD589 2\uC5F4\uC758\uADF8\uB9AC\uB4DC +FR-Designer-Form-Please_Drag_ParaPane=\uB9E4\uAC1C\uBCC0\uC218\uD328\uB110\uC744\uB4DC\uB798\uADF8\uD574\uC8FC\uC2ED\uC2DC\uC624. +Milliseconds=\uBC00\uB9AC\uCD08 +DataFunction-None=\uC5C6\uC74C +Delivery=\uC804\uB2EC +ColumnSpan=\uC5F4\uC2A4\uD32C +StyleAlignment-Bottom=\uC544\uB798\uC5D0\uB9DE\uCDA4 +Read_failure=\uC77D\uAE30\uC2E4\uD328\uFF0C \uC18C\uC2A4\uD30C\uC77C\uC774\uC190\uC0C1\uB418\uC5C8\uC2B5\uB2C8\uB2E4. +Verify-Verify=\uB370\uC774\uD130\uAC80\uC0AC +FR-Designer-Widget-Style_Title_Format=\uC81C\uBAA9\uC11C\uC2DD +FR-Designer_Edit_String_To_Formula=\uBB38\uC790\uC5F4\uC744\uC218\uC2DD\uC73C\uB85C\uD3B8\uC9D1\uD558\uACA0\uC2B5\uB2C8\uAE4C? +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= diff --git a/designer_base/src/com/fr/design/locale/designer_zh_CN.properties b/designer_base/src/com/fr/design/locale/designer_zh_CN.properties index 3ddde1d8cd..a110fc2f64 100644 --- a/designer_base/src/com/fr/design/locale/designer_zh_CN.properties +++ b/designer_base/src/com/fr/design/locale/designer_zh_CN.properties @@ -520,7 +520,6 @@ FR-Designer_Create_Tree=\u6784\u5EFA\u6811 FR-Designer_Set_Callback_Function=\u8BBE\u7F6E\u56DE\u8C03\u51FD\u6570 FR-Designer_ConfirmDialog_Content=\u662F\u5426\u786E\u5B9A\u5220\u9664tab\u63A7\u4EF6 FR-Designer_ConfirmDialog_Title=FineReport 8.0 - FR-Designer_FormulaPane_Tips=\u63D0\u793A\:\u60A8\u53EF\u4EE5\u901A\u8FC7\u8F93\u5165B1\u6765\u5199\u5165\u7B2C\u4E00\u884C\u7B2C\u4E8C\u5217\u7684\u6570\u636E\u3002 FR-Designer_FormulaPane_Variables=\u53D8\u91CF FR-Designer_FormulaPane_Formula_Description=\u516C\u5F0F\u8BF4\u660E @@ -529,13 +528,11 @@ FR-Designer_FormulaPane_Search=\u641C\u7D22 FR-Designer_Tab_carousel=tab\u8F6E\u64AD FR-Designer_setCarousel=\u5F00\u542F\u8F6E\u64AD FR-Designer_carouselInterval=\u8F6E\u64AD\u95F4\u9694 - FR-Designer_ClassName_panel=\u7C7B\u540D FR-Designer_Description_panel=\u63CF\u8FF0 FR-Designer_Edit_panel=\u7F16\u8F91 FR-Designer_Property_panel=\u5C5E\u6027 FR-Designer_Select_panel=\u9009\u62E9 - FR-Designer_LayoutTable_Column_Width=160 FR-Designer_Set_BG_Of_Current_Row=\u586B\u62A5\u5F53\u524D\u7F16\u8F91\u884C\u80CC\u666F\u8BBE\u7F6E FR-Designer_Unload_Check=\u672A\u63D0\u4EA4\u79BB\u5F00\u63D0\u793A @@ -551,7 +548,6 @@ FR-Designer_PageSetup_Page=\u9875\u9762 FR-Designer_Custom_Job_Description=\u63CF\u8FF0 FR-Designer_Property=\u5C5E\u6027 FR-Designer_ClassName=\u7C7B\u540D - FR-Designer_Polyblock_Edit=\u805A\u5408\u5757\u7F16\u8F91 FR-Designer_Function_Description_Area_Text=\u8BE5\u7C7B\u5FC5\u987B\u7EE7\u627F"com.fr.script.AbstractFunction"\u3002\u5E94\u5C06\u7F16\u8BD1\u540E\u7684\u7C7B\u6587\u4EF6\u62F7\u8D1D\u5230\nJ2EE\u670D\u52A1\u5668 "{R1}" \u76EE\u5F55\uFF0C\u5982\u679C\u5FC5\u8981\u7684\u8BDD\u5C06class\u5BF9\u5E94\u7684java\u6E90\u6587\u4EF6\u4E5F\u653E\u7F6E\u5230\u8BE5\u76EE\u5F55\u4E0B\u65B9\u4FBF\u7F16\u8F91\u548C\u67E5\u770B\u3002\n\u4F8B\u5982\uFF1A{R2} FR-Designer_PageSetup_Horizontal=\u6A2A\u5411 @@ -588,10 +584,8 @@ FR-Designer_Background_Image_Select=\u9009\u62E9\u56FE\u7247 FR-Designer_Initial_Background_Tips=\u6309\u94AE\u7684\u521D\u59CB\u80CC\u666F FR-Designer_Mouse_Move_Tips=\u9F20\u6807\u79FB\u52A8\u5230\u6309\u94AE\u4E0A\u7684\u80CC\u666F\uFF0C\u82E5\u65E0\u5219\u4E0D\u6539\u53D8\u80CC\u666F FR-Designer_Mouse_Click_Tips=\u9F20\u6807\u70B9\u51FB\u6309\u94AE\u65F6\u80CC\u666F\uFF0C\u82E5\u65E0\u5219\u4E0D\u6539\u53D8\u80CC\u666F - FR-Designer_Too_Large_To_Paste=\u7EC4\u4EF6\u5927\u5C0F\u8D85\u51FA\u8FB9\u754C\uFF0C\u65E0\u6CD5\u7C98\u8D34\uFF01 FR-Designer_Too_Small_To_Paste=\u6B64\u5904\u65E0\u6CD5\u7C98\u8D34\uFF0C\u5C0F\u4E8E\u7EC4\u4EF6\u6700\u5C0F\u9AD8\u5EA6\uFF01 - FR-Designer_AxisReversed=\u8F74\u9006\u5E8F FR-Designer_Logarithmic=\u5BF9\u6570\u523B\u5EA6 FR-Designer_Chart_Log_Base=\u5E95\u6570 @@ -602,7 +596,1394 @@ FR-Designer_Border=\u8FB9\u6846 FR-Designer_Background-Pattern=\u56FE\u6848 FR-Designer_Edit_Button_ToolBar=\u7F16\u8F91\u6309\u94AE\u6240\u5728\u5DE5\u5177\u680F FR-Designer_Remove_Button_ToolBar=\u79FB\u9664\u6309\u94AE\u6240\u5728\u5DE5\u5177\u680F +CellWrite-InsertRow_NULL=\u7A7A\u503C +DashBoard-ChartFloat=\u56FE\u8868 +contact_info=\u8054\u7CFB\u4FE1\u606F(\u9009\u586B) +Page_Setup=\u9875\u9762\u8BBE\u7F6E +CellWrite-Print_Export=\u6253\u5370\u5BFC\u51FA +Cannot_Get_Date=\u4E0D\u80FD\u83B7\u53D6\u65E5\u671F +FR-Designer_Modify=\u4FEE\u6539 +M-Write_Preview=\u586B\u62A5\u9884\u89C8 +FR-Base_RWA-Key=\u4E3B\u952E +China=\u4E2D\u56FD +Set_Legend_Sytle=\u8BBE\u7F6E\u56FE\u4F8B\u683C\u5F0F +FR-Designer_Number=\u6570\u5B57 +FR-Designer-Widget-Style_Common=\u666E\u901A +M-Save_As=\u53E6\u5B58\u4E3A +Following_parameters_are_not_generated=\u4EE5\u4E0B\u53C2\u6570\u672A\u751F\u6210 +FR-Designer-Basic_Activation_Key_Copy_OK=\u5DF2\u590D\u5236\u5230\u526A\u8D34\u677F +Utils-Current_Sheet=\u5F53\u524DSheet +ConditionB-is_less_than=\u5C0F\u4E8E +BorderLayout-West=\u897F +AnalysisLine=\u5206\u6790\u7EBF +Layer_Report_Warnning_info=\u884C\u5F0F\u5F15\u64CE\u9002\u7528\u4E8E\u5927\u6570\u636E\u91CF\u60C5\u5F62\u4E0B\u3002
\u4F7F\u7528\u6B64\u5F15\u64CE\u5F88\u591A\u62A5\u8868\u7279\u6027\u5C06\u4E0D\u518D\u652F\u6301\uFF0C
\u8BE6\u7EC6\u5185\u5BB9\u8BF7\u67E5\u770B\u6587\u6863\u76F8\u5173\u7AE0\u8282\u3002 +Tree-Width=\u5BBD\u5EA6 +alert_word=\u9009\u62E9\u4E0D\u56FA\u5B9A\u884C\u9AD8\u5BFC\u51FA\u65F6, \u7F16\u8F91\u5BFC\u51FA\u7684word, \u5355\u5143\u683C\u884C\u9AD8\u4F1A\u968F\u7740\u5185\u5BB9\u81EA\u52A8\u62C9\u4F38, \u6B64\u60C5\u51B5\u4E0B\u5BFC\u51FA\u7ED3\u679C\u5206\u9875\u4F4D\u7F6E\u4E0E\u9884\u89C8\u7ED3\u679C\u53EF\u80FD\u4F1A\u4E0D\u518D\u4E00\u81F4. +PageSetup-Paper_Size=\u7EB8\u5F20\u5927\u5C0F +M-Page_Setup=\u9875\u9762\u8BBE\u7F6E +DashBoard-FormBook=\u8868\u5355 +X-Coordinate=\u6A2A\u5750\u6807 +Style-Line_Spacing=\u884C\u95F4\u8DDD +FR-Designer_Plugin_Should_Update_Title=\u63D2\u4EF6\u5347\u7EA7\u63D0\u9192 +Server-Define_Data_Connection=\u5B9A\u4E49\u6570\u636E\u8FDE\u63A5 +BarInside=\u67F1\u5B50\u5185\u4FA7 +Border-Color=\u8FB9\u6846\u989C\u8272 +NotAllow=\u4E0D\u5408\u6CD5 +Utils-File_type=\u6587\u4EF6\u7C7B\u578B +FR-Designer-Plugin_Install_From_Local=\u4ECE\u672C\u5730\u6587\u4EF6\u5B89\u88C5 +Summary_Method=\u6C47\u603B\u65B9\u5F0F +Select_Specified_Grouping=\u9009\u62E9\u81EA\u5B9A\u4E49\u5206\u7EC4 +HF-Number_of_Page=\u603B\u9875\u6570 +FR-Designer-Tree_Height=\u9AD8\u5EA6 +Owner=\u4E3B +Home=\u4E3B\u9875 +FR-Server_Embedded_Server_Stop=\u5167\u7F6E\u7684\u670D\u52A1\u5668-\u505C\u6B62 +FR-Designer-Plugin_Detecting_Update=\u6B63\u5728\u68C0\u6D4B\u66F4\u65B0 +HF-Whether_to_define_the_selected_type=\u662F\u5426\u5B9A\u4E49\u9009\u4E2D\u7684\u7C7B\u578B +StyleAlignment-Right=\u9760\u53F3 +FR-Designer_Alignment-Style=\u5BF9\u9F50\u65B9\u5F0F +PageSetup-Title_Start_Column=\u91CD\u590D\u6807\u9898\u5217 +Tree-Mutiple_Selection_Or_Not=\u591A\u9009 +FR-Designer-Plugin_Search=\u641C\u7D22 +Choose_Role=\u6743\u9650\u63A7\u5236 +Append_Delete_Row_Message=\u6CE8\u610F\uFF01\u6307\u5B9A\u7684\u5355\u5143\u683C\u9700\u8981\u8BBE\u7F6E\u6269\u5C55\u5C5E\u6027 +Form-ComboBox=\u4E0B\u62C9\u6846 +PageSetup-Footer=\u9875\u811A +Sorting=\u6392\u5E8F\u4E2D +DBCP_TEST_WHILE_IDLE=\u5F00\u542F\u7A7A\u95F2\u56DE\u6536\u5668\u68C0\u9A8C +DS-Embedded_TableData=\u5185\u7F6E\u6570\u636E\u96C6 +FR-Designer_No-Privilege=\u6CA1\u6709\u6743\u9650 +FRFont-Subscript=\u4E0B\u6807 +Background_Settings=\u80CC\u666F\u8BBE\u7F6E +FormulaD-Invalid_Formula=\u975E\u6CD5\u7684\u516C\u5F0F +FR-Base_Margin=\u8FB9\u8DDD +FR-Designer-Plugin_Shop_Installed=\u63D2\u4EF6\u5546\u5E97\u5B89\u88C5\u5B8C\u6BD5,\u662F\u5426\u7ACB\u523B\u542F\u52A8? +M_Edit-Send_to_Back=\u7F6E\u4E8E\u5E95\u5C42(K) +Email-Can_Preview_Report_Content=\u6B63\u6587\u9884\u89C8\u62A5\u8868\u5185\u5BB9 +FR-Designer-FRFont_Italic=\u503E\u659C +CellWrite-Print_Background=\u6253\u5370/\u5BFC\u51FA\u5355\u5143\u683C\u80CC\u666F +Wizard=\u5411\u5BFC +Preference-Is_Drag_Permited=\u652F\u6301\u62D6\u62FD +FR-Designer_Release_Lock=\u89E3\u9501 +Form-Delimiter=\u5206\u9694\u7B26 +wrong=\u51FA\u9519\u4E86 +FR-Menu-Server_Chart_PreStyle=\u56FE\u8868\u9884\u5B9A\u4E49\u914D\u8272 +Form-Button=\u6309\u94AE +FormulaD-Valid_Formula=\u5408\u6CD5\u7684\u516C\u5F0F +ParameterD-Parameter_Interface=\u53C2\u6570\u754C\u9762 +At_least_one_visual_worksheet=\u5DE5\u4F5C\u7C3F\u4E2D\u81F3\u5C11\u8981\u6709\u4E00\u5F20\u53EF\u89C6\u5316\u5DE5\u4F5C\u8868,\u5982\u679C\u60F3\u8981\u5220\u9664\uFF0C\u8BF7\u5148\u63D2\u5165\u4E00\u5F20\u65B0\u5DE5\u4F5C\u8868 +Need_Min_Value=\u9700\u8981\u6700\u5C0F\u503C +Allow_Blank=\u5141\u8BB8\u4E3A\u7A7A +CellWrite-InsertRow_DEFAULT=\u9ED8\u8BA4\u503C +Widget-Load_By_Complete=\u5B8C\u5168\u52A0\u8F7D +FR-Designer-Basic_Only_Submit_Current_Sheet=\u53EA\u63D0\u4EA4\u5F53\u524Dsheet +Sort-Sort_Order=\u6392\u5217\u987A\u5E8F +File-File_Size_Limit=\u6587\u4EF6\u5927\u5C0F\u9650\u5236 +PrintP-Print=\u6253\u5370(T) +FR-Designer-StyleAlignment_Center=\u5C45\u4E2D +Preference-Setting_Colors=\u989C\u8272\u8BBE\u7F6E +Judge=\u5224\u65AD +Image-Adjust=\u9002\u5E94 +Collect-User_Information_DES=\u6FC0\u6D3B\u7801\u53EA\u662F\u7528\u6765\u6536\u96C6\u4F7F\u7528\u8005\u4FE1\u606F\u7684\uFF0C\u53EA\u8981\u70B9\u51FB\u4E0A\u9762\u7684"\u83B7\u53D6\u6FC0\u6D3B\u7801"\u6309\u94AE\uFF0C\u5C31\u4F1A\u5F39\u51FA\u4E00\u4E2A\u65B0\u7684\u6D4F\u89C8\u5668\u7A97\u4F53\uFF0C\u767B\u5F55\u5230\u4EA7\u54C1\u5B98\u65B9\u7F51\u7AD9\u83B7\u5F97\u8FD9\u4E2A\u6FC0\u6D3B\u7801\uFF0C\u6574\u4E2A\u8FC7\u7A0B\u53EA\u9700\u89813\u5206\u949F\uFF0C\u53EA\u9700\u8981\u64CD\u4F5C\u4E00\u6B21\uFF0C\u800C\u4E14\u5B8C\u5168\u514D\u8D39\u3002 +FR-Designer_Plugin_Normal_Update_From_Local=\u4ECE\u672C\u5730\u6587\u4EF6\u66F4\u65B0 +BackgroundTexture-Canvas=\u753B\u5E03 +BarOutSide=\u67F1\u5B50\u5916\u4FA7 +Preview_ToolTips=\u9884\u89C8\u63D0\u793A +FRFont-Family=\u540D\u5B57 +FR-Lic_does_not_Support_Remote=\u60A8\u5F53\u524D\u4F7F\u7528\u7684lic\u4E0D\u652F\u6301\u8FDC\u7A0B\u8BBE\u8BA1\u529F\u80FD\uFF0C\u8BF7\u5347\u7EA7\u60A8\u7684lic +InterfaceStyle=\u98CE\u683C +RWA-Key=\u4E3B\u952E +WF-Name=\u540D\u79F0 +RWA-Click_Cell_To_Edit_Value=\u5355\u51FB\u6A21\u677F\u5355\u5143\u683C\u4FEE\u6539\u503C +Utils-Row_Height=\u884C\u9AD8 +ReportD-Excel_Export=\u6A21\u677F\u5BFC\u51FA\u5C5E\u6027 +Form-Please_Select_A_Kind_Of_Form_Container=\u8BF7\u9009\u62E9\u4E00\u79CD\u8868\u5355\u5BB9\u5668 +Column_Does_Not_Exsit=\u5217\u4E0D\u5B58\u5728 +M_Insert-Hyperlink=\u8D85\u7EA7\u94FE\u63A5 +can_not_include_underline=\u4E0D\u80FD\u5305\u542B"_" +FR-Designer-Plugin_Jar_Expired=Jar\u5305\u8FC7\u65E7 +FR-Background_Image_Extend=\u62C9\u4F38 +TopDownShade=\u4E0A\u4E0B\u6E10\u53D8 +FR-Base_Right=\u53F3 +DataBinding=\u6570\u636E\u7ED1\u5B9A +ConnectionPool_Attr=\u8FDE\u63A5\u6C60\u5C5E\u6027 +Connect_SQL_Cannot_Null=\u6570\u636E\u8FDE\u63A5\u548CSQL\u9762\u677F\u4E0D\u80FD\u4E3A\u7A7A +DBCP_MAX_ACTIVE=\u6700\u5927\u6D3B\u52A8\u8FDE\u63A5\u6570 +M_Window-Preference=\u9009\u9879 +ToolBar_Top=\u9876\u90E8\u5DE5\u5177\u680F +FR-Designer_Indent-Pixel=\u50CF\u7D20 +FR-Designer_Unit_MM=\u6BEB\u7C73 +IDLE=\u7A7A\u95F2 +FRFont-Underline=\u4E0B\u5212\u7EBF +FR-Designer-Plugin_Read_Plugin_List_Error=\u53BB\u8BFB\u63D2\u4EF6\u5217\u8868\u65F6\u53D1\u751F\u9519\u8BEF +Type_Set=\u7C7B\u578B\u8BBE\u7F6E +M_Format_A-Cell_Attributes=\u5176\u4ED6\u5C5E\u6027 +CellWrite-Show_As_Image=\u7528\u56FE\u7247\u663E\u793A\u5185\u5BB9 +ShowAsDownload=\u7528\u4E0B\u8F7D\u94FE\u63A5\u663E\u793A\u4E8C\u8FDB\u5236\u5185\u5BB9 +Form-ComboCheckBox=\u4E0B\u62C9\u590D\u9009\u6846 +BackgroundTexture-WovenMat=\u7F16\u7EC7\u7269 +BindColumn-Custom_Data_Appearance=\u81EA\u5B9A\u4E49\u663E\u793A +Actived=\u6D3B\u52A8\u7684 +Env-Local_Directory=\u672C\u5730\u76EE\u5F55 +Form-Colon=\u5192\u53F7 +Preference-Vertical_Scroll_Bar_Visible=\u7AD6\u76F4\u6EDA\u52A8\u6761\u53EF\u89C1 +Utils-Show_Cell_Value=\u663E\u793A\u5355\u5143\u683C\u503C +FR-Designer_ReportColumns-Repeat_Row=\u590D\u5236\u884C\u5E8F\u5217 +SpecifiedG-Specified_Group=\u81EA\u5B9A\u4E49\u5206\u7EC4 +RWA-Smart_Add_Cells=\u667A\u80FD\u6DFB\u52A0\u5355\u5143\u683C +HF-Left_Section=\u5DE6\u533A\u57DF +M_Report-Report_Background=\u7EB8\u5F20\u80CC\u666F +Image-Extend=\u62C9\u4F38 +FS_BI=\u51B3\u7B56\u5E73\u53F0 +ToolBar_Bottom=\u5E95\u90E8\u5DE5\u5177\u680F +Hgap=\u6C34\u5E73\u95F4\u9699 +FR-Designer_Enter-New-FileName=\u8BF7\u8F93\u5165\u65B0\u7684\u6587\u4EF6\u540D +Verify_Fail=\u6821\u9A8C\u5931\u8D25 +CellWrite-InsertRow_Policy=\u63D2\u5165\u884C\u7B56\u7565 +FR-Designer-Plugin_Illegal_Plugin_Zip=\u4E0D\u662F\u5408\u6CD5\u7684\u63D2\u4EF6\u5305 +RCodeVersion=\u7248\u672C +Convert=\u8F6C\u6362 +Please_Drag=\u8BF7\u62D6\u5165\u884C\u5217\u5B57\u6BB5\u3001\u6C47\u603B\u5B57\u6BB5 +FR-Designer-Widget-Style_Preview=\u9884\u89C8 +mobile_number=\u624B\u673A\u53F7\u7801 +FR-Designer_Form-ComboCheckBox=\u4E0B\u62C9\u590D\u9009\u6846 +CacheValidateTime=\u62A5\u8868\u7F13\u5B58\u6709\u6548\u65F6\u95F4 +Hyperlink-Extends_Report_Parameters=\u7EE7\u627F\u62A5\u8868\u7684\u53C2\u6570 +FR-Designer_Values-Editor=\u503C\u7F16\u8F91\u5668 +Export-Excel=Excel\u683C\u5F0F +Utils-Left_to_Right=\u6A2A\u5411 +ExpandD-Vertical_Extendable=\u7EB5\u5411\u53EF\u4F38\u5C55 +Utils-Report_Runtime_Env=\u62A5\u8868\u5DE5\u4F5C\u76EE\u5F55 +Utils-Right_to_Left=\u4ECE\u53F3\u5230\u5DE6 +Utils-Beyond_the_top_side_of_Border=\u8D85\u51FA\u4E0A\u8FB9\u754C +Exception_StackTrace=\u9519\u8BEF\u5F02\u5E38\u5806\u6808\u4FE1\u606F +Corresponding_Fields=\u5BF9\u5E94\u5B57\u6BB5 +Form-CheckBox=\u590D\u9009\u6846 +Utils-Current_Row=\u5F53\u524D\u884C +BuildIn=\u5185\u7F6E +BindColumn-Results_Filter=\u7ED3\u679C\u96C6\u7B5B\u9009 +FR-Designer-Plugin_Manager=\u63D2\u4EF6\u7BA1\u7406 +M_File-Export-CSV=CSV\u683C\u5F0F(\u9017\u53F7\u5206\u9694) +Data_Filter=\u6570\u636E\u7B5B\u9009 +ReportServerP-Edit_Printer=\u7F16\u8F91\u6253\u5370\u673A +FR-Designer_Datasource-Stored_Procedure=\u5B58\u50A8\u8FC7\u7A0B +RESTART=\u91CD\u542F +FormulaD-Function_name=\u51FD\u6570\u540D +ChooseOneButton=\u8BF7\u9009\u62E9\u4E00\u4E2A\u63A7\u4EF6\u540E\u518D\u6DFB\u52A0 +Priority=\u4F18\u5148\u7EA7 +Datasource-Datasource=\u6570\u636E\u6E90 +FR-Designer_Width=\u5BBD +Cannot-Add_To_This_Area=\u65E0\u6CD5\u6DFB\u52A0\u5230\u8BE5\u533A\u57DF +Run=\u8FD0\u884C +Set_Submit_Condition=\u8BBE\u7F6E\u63D0\u4EA4\u6761\u4EF6 +FR-Base_Value=\u503C +fileLocked_undeleted=\u6A21\u677F\u88AB\u9501\u5B9A\uFF0C\u4E0D\u80FD\u5220\u9664\uFF01\u70B9\u51FB\u786E\u5B9A\uFF0C\u5237\u65B0\u6A21\u677F\u5217\u8868 +Web_Apply=WEB\u5E94\u7528 +Refresh_Database=\u5237\u65B0\u6570\u636E\u5E93 +Set_Row_Title_End=\u8BBE\u7F6E\u91CD\u590D\u7ED3\u5C3E\u884C +FR-Utils-New_Folder=\u65B0\u5EFA\u6587\u4EF6\u5939 +BiasD-From-upper_left_to_lower_right=\u4ECE\u5DE6\u4E0A\u5230\u53F3\u4E0B\u53D1\u6563 +CapsLock=\u5927\u5199\u9501\u5B9A\u5DF2\u6253\u5F00 +StyleFormat-Sample=\u793A\u4F8B +RWA-Smart_Add_Cell_Group=\u667A\u80FD\u6DFB\u52A0\u5355\u5143\u683C\u7EC4 +MConfig-CancelButton=\u53D6\u6D88 +Function-Choose_Function_Class=\u9009\u62E9\u51FD\u6570\u7C7B +LatLng=\u7ECF\u7EAC\u5EA6 +DS-Server_TableData=\u670D\u52A1\u5668\u6570\u636E\u96C6 +BackgroundTexture-GreenMarble=\u7EFF\u8272\u5927\u7406\u77F3 +read_time_out=\u52A0\u8F7D\u8D85\u65F6 +JavaScript-Commit_to_Database=\u63D0\u4EA4\u5165\u5E93 +DS-Relation_TableData=\u5173\u8054\u6570\u636E\u96C6 +CellWrite-Page_Before_Row=\u884C\u524D\u5206\u9875 +FR-Designer-Plugin_Load_Plugins_From_Server=\u6B63\u5728\u4ECE\u63D2\u4EF6\u5546\u5E97\u83B7\u53D6\u6570\u636E +D-Dispaly_Divide_Result_Set_into_Groups=\u5C06\u7ED3\u679C\u96C6\u8FDB\u884C\u5206\u7EC4 +Closed=\u5DF2\u5173\u95ED +RWA-Help=\u8BBE\u7F6E\u672A\u4FEE\u6539\u4E0D\u66F4\u65B0\u540E\uFF0C\u586B\u62A5\u9884\u89C8\u62A5\u8868\uFF0C\u8BB0\u5F55\u6240\u5728\u5355\u5143\u683C\u6CA1\u6709\u88AB\u7F16\u8F91\u4FEE\u6539\uFF0C\u5219\u6B64\u8BB0\u5F55\u4E0D\u4F1A\u8FDB\u884C\u66F4\u65B0\uFF1B\n\u5728\u5927\u6570\u636E\u91CF\u8BB0\u5F55\u67E5\u8BE2\u5E76\u56DE\u586B\u60C5\u51B5\u4E0B\uFF0C\u542F\u7528\u8BE5\u8BBE\u7F6E\uFF0C\u53EF\u4EE5\u63D0\u9AD8\u586B\u62A5\u63D0\u4EA4\u6027\u80FD\u3002 +FR-Designer-Widget-Style_Custom=\u81EA\u5B9A\u4E49 +FR-Designer-Widget-Style_Render_Style=\u6E32\u67D3\u98CE\u683C +Highlight-Barcode=\u6761\u5F62\u7801 +FR-Designer_Connect_SQL_Cannot_Null=\u6570\u636E\u8FDE\u63A5\u548CSQL\u9762\u677F\u4E0D\u80FD\u4E3A\u7A7A +trigger=\u89E6\u53D1 +M-Data_Analysis=\u6570\u636E\u5206\u6790 +Function-The_selected_file_cannot_be_null=\u6587\u4EF6\u4E0D\u80FD\u4E3A\u7A7A +No-Privilege=\u6CA1\u6709\u6743\u9650 +ReportColumns-Repeat_Column=\u590D\u5236\u5217\u5E8F\u5217 +SecondGraduationUnit=\u6B21\u8981\u523B\u5EA6\u5355\u4F4D +Form-Widget_Property_Value=\u5C5E\u6027\u503C +GIVE-NAME=\u547D\u540D +FR-Designer_Rename=\u91CD\u547D\u540D +Utils-Merge_Cell=\u5408\u5E76\u5355\u5143\u683C +Style-Spacing_After=\u6BB5\u540E +Enlarge_Or_Reduce=\u7F29\u653E +Tree-Height=\u9AD8\u5EA6 +RCodeErrorCorrect=\u7EA0\u9519 +Enter-New-FileName=\u8BF7\u8F93\u5165\u65B0\u7684\u6587\u4EF6\u540D +try_resending=\u8BF7\u5C1D\u8BD5\u91CD\u65B0\u53D1\u9001 +M-Open_Report=\u6253\u5F00... +Please_Select=\u8BF7\u9009\u62E9 +InRow=\u884C(R) +Form-TextArea=\u6587\u672C\u57DF +FR-Designer_Https_Enable=\u542F\u7528https +Widget-Custom_Widget_Config=\u81EA\u5B9A\u4E49\u63A7\u4EF6 +already_exists=\u5DF2\u7ECF\u5B58\u5728 +Original_Marked_Filed=\u539F\u59CB\u6807\u8BB0\u5B57\u6BB5 +BackgroundTexture-Sand=\u6C99\u6EE9 +Values=\u503C +Not_use_a_cell_attribute_table_editing=\u60A8\u4E0D\u53EF\u4EE5\u7528\u5355\u5143\u683C\u5C5E\u6027\u8868\u7F16\u8F91 +Root=\u6839\u8282\u70B9 +cycle=\u5468\u671F +open-new-form-tip=\u5F53\u524D\u6A21\u677F\u4E3A711\u4EE5\u4E0B\u7248\u672C\u5236\u4F5C\uFF0C\u65E0\u6CD5\u517C\u5BB9\uFF0C\u4E0D\u80FD\u6253\u5F00\u3002\u5047\u5982\u60F3\u6253\u5F00\u4FEE\u6539\u6B64\u8868\u5355\uFF0C\u8BF7\u4F7F\u7528\u5BF9\u5E94\u7248\u672C\u8BBE\u8BA1\u5668\u6253\u5F00\u3002 +Support-Current_Auto_Complete_Shortcut=\u5F53\u524D\u5FEB\u6377\u952E +GROUPING_MODE=\u666E\u901A\u5206\u7EC4 +DBCP_MAX_IDLE=\u6700\u5927\u7A7A\u95F2\u8FDE\u63A5\u6570 +BackgroundTexture-BlueTissuePaper=\u84DD\u8272\u7802\u7EB8 +ReportD-Export_Hided_Row=\u5BFC\u51FA\u9690\u85CF\u884C +FR-Custom_styles_lost=\u81EA\u5B9A\u4E49\u6837\u5F0F\u5DF2\u4E22\u5931 +Env-Des2=Servlet\u4F4D\u7F6E\u662F\u4E3B\u673A\u540D\uFF0C\u7AEF\u53E3\uFF0CWEB\u5E94\u7528\uFF0CServlet\u7684\u7EC4\u5408\uFF0C\u5B83\u5E94\u5F53\u6307\u5411\u4E00\u4E2AServlet\uFF0C\u6BD4\u5982"http\://localhost\:8080/WebReport/ReportServer"\u3002\u60A8\u53EF\u4EE5\u9009\u62E9\u586B\u5199\u4E3B\u673A\u540D\uFF0C\u7AEF\u53E3\uFF0CWEB\u5E94\u7528\uFF0CServlet\uFF0C\u5B83\u4F1A\u81EA\u52A8\u751F\u6210\u60A8\u6240\u9700\u8981\u7684Servlet\u4F4D\u7F6E\u3002 +Env-Des1=\u8BF7\u9009\u62E9\u62A5\u8868\u670D\u52A1\u5668\u6240\u5728\u7684WEB-INF\u76EE\u5F55 +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 +Classifier-Ge=\u4E2A +MSBold=\u5FAE\u8F6F\u96C5\u9ED1 +Form-Design_Size=\u8BBE\u8BA1\u5C3A\u5BF8 +FR-App-Template_Save=\u4FDD\u5B58 +ExpandD-Horizontal_Extendable=\u6A2A\u5411\u53EF\u4F38\u5C55 +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=\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) +Indent-Pixel=\u50CF\u7D20 +FR-Designer-Widget-Style_Border_Line=\u8FB9\u6846\u7C97\u7EC6 +Widget-Default_Widget_Config=\u57FA\u672C\u63A7\u4EF6 +Version-does-not-support=\u60A8\u5F53\u524D\u4F7F\u7528\u7684lic\u4E0D\u652F\u6301\u8FDC\u7A0B\u8BBE\u8BA1\u529F\u80FD\uFF0C\u8BF7\u5347\u7EA7\u60A8\u7684lic +StyleAlignment-Right_To_Left=\u4ECE\u53F3\u5411\u5DE6 +Style-Spacing_Before=\u6BB5\u524D +Has_Existed=\u5DF2\u7ECF\u5B58\u5728 +FR-Designer_DisplayNothingBeforeQuery=\u70B9\u51FB\u67E5\u8BE2\u524D\u4E0D\u663E\u793A\u62A5\u8868\u5185\u5BB9 +Still=\u4ECD\u7136 +JS_WARNING2=\ \u4F8B\uFF1Ahttp\://localhost\:8075/WebReport/demo.js +JS_WARNING1=\ \u76F8\u5BF9\u62A5\u8868\u5DE5\u7A0B\u76EE\u5F55\u5982WebReport,\u5982WebReport\\js\u4E0B\u6709\u5F15\u7528\u7684js\u6587\u4EF6test.js\uFF0C\u5219\u76F8\u5BF9\u8DEF\u5F84\u4E3Ajs/test.js +Connectionline=\u8FDE\u7EBF\u6A21\u5F0F +Utils-Insert_Record=\u63D2\u5165\u8BB0\u5F55 +Set-Parameter-Name=\u8BF7\u5148\u8BBE\u7F6E\u53C2\u6570\u540D +More-information=\u66F4\u591A\u4FE1\u606F +Parameter-Boolean=\u5E03\u5C14\u578B +FRFont-Strikethrough=\u5220\u9664\u7EBF +Server-version-tip=\u60A8\u5F53\u524D\u8FDE\u63A5\u7684\u670D\u52A1\u5668\u7248\u672C\u4F4E\u4E8E\u60A8\u4F7F\u7528\u7684\u8BBE\u8BA1\u5668\u7248\u672C\u53F7\uFF0C\u7EE7\u7EED\u8FDE\u63A5\uFF0C\u60A8\u7F16\u8F91\u7684\u4E00\u4E9B\u5C5E\u6027\u53EF\u80FD\u65E0\u6CD5\u6709\u6548\u4FDD\u5B58\u3002 \u5047\u5982\u9700\u8981\u8FDE\u63A5\u8BF7\u5C06\u60A8\u7684\u8BBE\u8BA1\u5668\u7248\u672C\u4E0E\u670D\u52A1\u5668\u7248\u672C\u4FDD\u6301\u4E00\u81F4 +Form-All_Files=\u5168\u90E8\u6587\u4EF6 +DBCP_NUM_TEST_PER_EVCTION_RUN=\u7A7A\u95F2\u8FDE\u63A5\u56DE\u6536\u68C0\u67E5\u6570 +FR-Designer-FRFont_Family=\u540D\u5B57 +Device=\u8BBE\u5907 +M_Insert-Cell=\u5355\u5143\u683C\u5143\u7D20 +Present-Formula_Present=\u516C\u5F0F\u5F62\u6001 +FRFont-Superscript=\u4E0A\u6807 +CellWrite-Page_Before_Column=\u5217\u524D\u5206\u9875 +Golden=\u91D1\u8272 +Preference-Support_Cell_Editor_Definition=\u652F\u6301\u5355\u5143\u683C\u7F16\u8F91\u5668 +M-Page_Preview=\u5206\u9875\u9884\u89C8 +HJS-CC_to=\u6284\u9001 +Tree-Select_Leaf_Only=\u53EA\u8FD4\u56DE\u53F6\u5B50\u8282\u70B9 +Pointer-A-Tick-Order=\u6307\u9488\u503C\u53CA\u523B\u5EA6\u503C\u6570\u91CF\u7EA7 +Pink=\u7C89\u7EA2 +StyleAlignment-Distibuted=\u5206\u6563\u5BF9\u9F50 +Odd=\u5947\u6570 +already-saved=\u5DF2\u7ECF\u4FDD\u5B58 +FR-Hyperlink_Chart_Cell=\u56FE\u8868\u8D85\u94FE-\u8054\u52A8\u5355\u5143\u683C +Style-Left_Indent=\u5DE6\u7F29\u8FDB +Offline=\u79BB\u7EBF +Form-Hierarchy_Tree_Next=\u4E0B\u4E00\u4E2A +Needle=\u6307\u9488 +GoogleMap=\u8C37\u6B4C\u5730\u56FE +Running=\u8FD0\u884C\u4E2D +M_Edit-Unmerge_Cell=\u53D6\u6D88\u5408\u5E76\u5355\u5143\u683C +Out_Border_Line=\u5916\u4FA7\u6846\u7EBF +Style-Spacing=\u95F4\u8DDD +FR-Utils_Submit=\u63D0\u4EA4 +ReportServerP-Previous=\u4E0A\u4E00\u9875 +StyleAlignment-Text_Style=\u6587\u672C\u63A7\u5236 +RelatedChart=\u56FE\u8868\u8054\u52A8 +ProcessManager=\u6D41\u7A0B\u7BA1\u7406 +Cancel_Repeat_Attributes=\u53D6\u6D88\u91CD\u590D\u884C\u5217 +FR-App-File_Message=\u4FE1\u606F +Datasource-Stored_Procedure=\u5B58\u50A8\u8FC7\u7A0B +RWA-Row_Offset=\u884C\u504F\u79FB +M_Format-Style=\u6837\u5F0F +detail_description=\u8BE6\u7EC6\u63CF\u8FF0 +FR-Designer-Widget-Style_Title_Content=\u6807\u9898\u5185\u5BB9 +ParameterD-Report_Parameter=\u62A5\u8868\u53C2\u6570 +HF-Edit_Header=\u7F16\u8F91\u9875\u7709 +Sytle-FRFont=\u5B57\u4F53 +FR-Designer_Finish_Export=\u5BFC\u51FA\u5B8C\u6BD5 +MultiFileUpload=\u591A\u6587\u4EF6\u4E0A\u4F20 +HF-Page_Number=\u9875\u7801 +Style-Right_Indent=\u53F3\u7F29\u8FDB +Desktop=\u684C\u9762 +FR-Server-All_Error=\u9519\u8BEF +ConditionB-Operator=\u64CD\u4F5C\u7B26 +Today=\u4ECA\u5929 +Form-Widget_Name=\u63A7\u4EF6\u540D +Covered_All=\u5168\u90E8\u8986\u76D6 +Day=\u5929 +External=\u5916\u90E8 +Black_Font=\u9ED1\u4F53 +LOG-Report_Server_IS_Started=\u62A5\u8868\u670D\u52A1\u5668\u5DF2\u542F\u52A8 +Tips\:You_Can_Input_B1_To_Input_The_Data_Of_The_First_Row_Second_Column=\u63D0\u793A\:\u60A8\u53EF\u4EE5\u901A\u8FC7\u8F93\u5165B1\u6765\u5199\u5165\u7B2C\u4E00\u884C\u7B2C\u4E8C\u5217\u7684\u6570\u636E\u3002 +FR-Designer_ChooseOneButton=\u8BF7\u9009\u62E9\u4E00\u4E2A\u63A7\u4EF6\u540E\u518D\u6DFB\u52A0 +Widget-Sizing=\u5927\u5C0F\u8C03\u6574 +NO_Border_Line=\u65E0\u6846\u7EBF +Cell_Data=\u5355\u5143\u683C\u6570\u636E +StyleAlignment-Vertical_Text=\u6587\u5B57\u7AD6\u6392 +Label=\u6807\u7B7E +Orange=\u6A58\u9EC4 +zeroMarginWarn=\u7531\u4E8E\u6253\u5370\u673A\u5B58\u5728\u7269\u7406\u8FB9\u8DDD
\u62A5\u8868\u7684\u9875\u8FB9\u8DDD\u8BBE\u7F6E\u8FC7\u5C0F\u53EF
\u80FD\u4F1A\u51FA\u73B0\u5185\u5BB9\u6253\u5370\u4E0D\u5168.
  +Widget-Date_Selector_Return_Type=\u8FD4\u56DE\u503C\u7C7B\u578B +Utils-Switch_To_Template_Reportlet=\u5207\u6362\u5230\u6A21\u677F\u7F51\u7EDC\u62A5\u8868 +satisfy=\u6EE1\u8DB3\u6761\u4EF6 +FR-Designer_WidgetDisplyPosition=\u63A7\u4EF6\u663E\u793A\u4F4D\u7F6E +FR-Base_Top=\u4E0A +FR-Designer_Form-CheckBox=\u590D\u9009\u6846 +Reportlet-Parameter_Type=\u53C2\u6570\u4F20\u9012\u65B9\u5F0F +sending=\u6B63\u5728\u53D1\u9001... +FR-Designer-FRFont_Foreground=\u989C\u8272 +FR-Import-Export_SVG=SVG\u683C\u5F0F +M_Edit-Clear_Contents=\u5185\u5BB9(C) +Session=\u4F1A\u8BDD +Widget-Load_Type=\u52A0\u8F7D +template_unsaved=\u65E0\u6CD5\u4FDD\u5B58\u6A21\u677F +check_communication=\u8BF7\u68C0\u67E5\u7F51\u7EDC\u901A\u8BAF\u662F\u5426\u6B63\u5E38\u53CA\u670D\u52A1\u5668\u662F\u5426\u6B63\u5E38\u8FD0\u884C +List-Need_Head=\u9700\u8981\u5217\u8868\u5934 +FR-Designer-Plugin_Has_Been_Installed=\u63D2\u4EF6\u5DF2\u5B89\u88C5\uFF0C\u82E5\u60F3\u66F4\u65B0\u63D2\u4EF6\uFF0C\u8BF7\u5207\u6362\u81F3\u63D2\u4EF6\u66F4\u65B0 +FR-Widget_Tree_And_Table=\u63A7\u4EF6\u6811\u548C\u63A7\u4EF6\u8868 +FR-Base_Help=\u5E2E\u52A9 +FR-Designer-Plugin_Update_Successful=\u63D2\u4EF6\u5347\u7EA7\u6210\u529F\uFF0C\u91CD\u542F\u670D\u52A1\u5668\u4EE5\u751F\u6548 +August=\u516B\u6708 +LOG-Is_Being_Openned=\u6B63\u5728\u6253\u5F00 +BackgroundTexture-Oak=\u6A61\u6728 +Multi_nam_formula=\ \u6570\u636E\u96C6\u540D\: \u6570\u636E\u96C6\u6761\u4EF6\: +TurnOn=\u5F00\u542F +HJS-Send_Successfully=\u53D1\u9001\u6210\u529F +Mon=\u4E00 +Inner_Parameter=\u5185\u7F6E\u53C2\u6570 +Required=\u5FC5\u586B +Summary=\u6C47\u603B +template_unopened=\u65E0\u6CD5\u6253\u5F00\u6A21\u677F +FR-Base_Bottom=\u4E0B +DataFunction-Min=\u6700\u5C0F\u503C +StyleFormat-Percent=\u767E\u5206\u6BD4 +FR-App-All_Custom=\u81EA\u5B9A\u4E49 +M_Insert-Data_Column=\u63D2\u5165\u6570\u636E\u5217 +PLEASE=\u8BF7 +Numbers=\u6570\u76EE +Release_Lock=\u89E3\u9501 +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 \ +Schedule-Template_Parameter=\u6A21\u677F\u53C2\u6570 +JSShow=\u52A8\u6001\u5C55\u793A +Level_coordinates=\u5C42\u6B21\u5750\u6807 +MainGraduationLine=\u4E3B\u8981\u523B\u5EA6\u7EBF +Hyperlink-Web_link=\u7F51\u9875\u94FE\u63A5 +StyleAlignment-between_-90_and_90=\u5728-90\u548C90\u4E4B\u95F4 +FormulaD-Custom_Function=\u81EA\u5B9A\u4E49\u51FD\u6570 +FR-Designer_Integer=\u6574\u6570 +PageSetup-Finis_Start_Row=\u91CD\u590D\u7ED3\u5C3E\u884C +RWA-Remove_Field=\u79FB\u9664\u5B57\u6BB5 +Form-Desin_Width=\u8BBE\u8BA1\u5BBD\u5EA6 +No-tableData=\u6CA1\u6709\u8FD4\u56DE\u6570\u636E\u96C6 +Page_Total=\u5171 +FR-Designer-Plugin_Connect_Server_Error=\u65E0\u6CD5\u8FDE\u63A5\u63D2\u4EF6\u5546\u5E97\uFF0C\u8BF7\u7A0D\u5019\u518D\u8BD5 +Import-Excel_Source=Excel\u6E90\u6587\u4EF6 +Utils-Left_to_Right_a=\u4ECE\u5DE6\u5F80\u53F3 +ExpandD-Expand_Attribute=\u6269\u5C55\u5C5E\u6027 +Report-Write_Attributes=\u62A5\u8868\u586B\u62A5\u5C5E\u6027 +Utils-Current_Column=\u5F53\u524D\u5217 +Need_Max_Value=\u9700\u8981\u6700\u5927\u503C +Report_Not_Exist=\u6240\u9009\u62A5\u8868\u4E0D\u5B58\u5728\uFF01 +HF-Insert_Content=\u63D2\u5165\u5185\u5BB9 +UpParent=\u4E0A\u7236\u683C +PageSetup-Page=\u9875\u9762 +Utils-Move_Up=\u4E0A\u79FB +BackgroundTexture-PurpleMesh=\u7D2B\u8272\u7F51\u683C +Export-Word=Word\u683C\u5F0F +ServerM-Widget_Manager=\u63A7\u4EF6\u7BA1\u7406 +FR-Designer-Basic_Activation_Key=\u8BBE\u8BA1\u5668\u7F16\u53F7\uFF1A +FR-App-Template_Report_Not_Exist=\u6240\u9009\u62A5\u8868\u4E0D\u5B58\u5728\! +Protected=\u4FDD\u62A4 +Skip=\u8DF3\u8FC7 +FR-Designer_PageSetup-Vertically=\u5782\u76F4\u5C45\u4E2D +revert=\u64A4\u9500 +PageSetup-Predefined=\u9884\u5B9A\u4E49 +Border-Style-Radius=\u5706\u89D2\u8FB9\u6846 +IntPart=\u6574\u6570\u90E8\u5206 +ExpandD-Data_Column=\u6570\u636E\u5217 +Sort-Ascending=\u5347\u5E8F +FR-Designer-Widget_Style=\u6837\u5F0F +parameter_name_exist=\u8BE5\u53C2\u6570\u540D\u5DF2\u5B58\u5728 +FR-Designer_Layer-Build=\u666E\u901A\u5206\u5C42\u6784\u5EFA +Please_Rename=\u8BF7\u91CD\u547D\u540D +Form-Editing_Listeners=\u4E8B\u4EF6\u7F16\u8F91 +RWA-Smart_Add_Fields=\u667A\u80FD\u6DFB\u52A0\u5B57\u6BB5 +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 +Sche-Minute=\u5206 +Three_Rows_Of_Three_Grid=\u4E09\u884C\u4E09\u5217\u7684\u683C\u5B50 +WorkSheet=\u81EA\u7531\u62A5\u8868 +FR-Designer-Widget_Size=\u63A7\u4EF6\u5927\u5C0F +BindColumn-Select=\u5217\u8868 +FR-Widget_Mobile_Terminal=\u79FB\u52A8\u7AEF +FR-Background_Image_Titled=\u5E73\u94FA +SetPrinterOffset=\u6253\u5370\u673A\u504F\u79FB +FR-Designer-Plugin_Installed=\u5DF2\u5B89\u88C5 +FR-Designer-Hyperlink_Name=\u540D\u5B57 +FR-Designer_Form-Button=\u6309\u94AE +Black=\u9ED1\u8272 +FR-Designer-Widget-Style_Border_Color=\u8FB9\u6846\u989C\u8272 +Set_Submit_Event=\u8BBE\u7F6E\u63D0\u4EA4\u4E8B\u4EF6 +PDF-Print_isPopup=\u662F\u5426\u5F39\u51FA\u8BBE\u7F6E\u6846 +LayerPageReport_CountPerPage=\u6BCF\u9875\u8BB0\u5F55\u6570 +Display_Modes=\u663E\u793A\u6A21\u5F0F +RowSpan=\u884C\u8DE8\u5EA6 +Datasource-Test_Connection=\u6D4B\u8BD5\u8FDE\u63A5 +Function-Function_Manager=\u51FD\u6570\u7BA1\u7406\u5668 +Host_Name=\u4E3B\u673A\u540D +CellWrite-Show_As_HTML=\u7528HTML\u663E\u793A\u5185\u5BB9 +FR-Designer-Widget-Style_Shadow=\u9634\u5F71 +FR-Designer_Parameter_String=\u5B57\u7B26\u4E32 +Form-SupportTag=\u6807\u7B7E\u5F62\u5F0F\u663E\u793A +ReportD-Report_Write_Attributes=\u62A5\u8868\u586B\u62A5\u5C5E\u6027 +DataFunction-Count=\u4E2A\u6570 +Top_And_Thick_Bottom_Border_Line=\u4E0A\u6846\u7EBF\u548C\u7C97\u4E0B\u6846\u7EBF +Client=\u5BA2\u6237\u7AEF +BindColumn-Result_Serial_Number_Start_From_1=\u5E8F\u53F7\u4ECE1\u5F00\u59CB +History=\u5386\u53F2 +Already_exists=\u5DF2\u5B58\u5728\uFF0C\u8BF7\u91CD\u65B0\u8F93\u5165\uFF01 +Datasource-Original_Charset=\u539F\u59CB\u7F16\u7801 +FR-Base_Left=\u5DE6 +ReportServerP-Next=\u4E0B\u4E00\u9875 +BindColumn-Top_N=\u524DN\u4E2A +Animation_Special=\u7279\u6548 +Widget-Chart_Widget_Config=\u56FE\u8868\u63A7\u4EF6 +FR-Designer-Plugin_Cannot_Update_Not_Install=\u65E0\u6CD5\u66F4\u65B0\u63D2\u4EF6\uFF0C\u8BF7\u68C0\u67E5\u8BE5\u63D2\u4EF6\u662F\u5426\u5DF2\u7ECF\u6210\u529F\u5B89\u88C5 +After_Changed_Some_Attributes_Are_Different=\u8F6C\u6362\u540E\u62A5\u8868\u7684\u67D0\u4E9B\u5C5E\u6027\u4F1A\u53D1\u751F\u6539\u53D8\uFF0C\u662F\u5426\u7EE7\u7EED +PieStyle=\u997C\u72B6 +HF-Are_you_sure_to_delete_it=\u4F60\u786E\u5B9E\u60F3\u5220\u9664\u8FD9\u4E2A\u5143\u7D20\u5417 +Utils-Design-File_Open=\u6253\u5F00 +FR-Utils_Label=\u6807\u7B7E +Data-Label=\u6807\u7B7E +M_Insert-Text=\u63D2\u5165\u666E\u901A\u6587\u672C +Form-View_Tree=\u89C6\u56FE\u6811 +M_Insert-Chart=\u63D2\u5165\u56FE\u8868 +HF-Even_Page=\u5076\u6570\u9875 +ReportServerP-Report_server_parameter=\u62A5\u8868\u670D\u52A1\u5668\u53C2\u6570 +JavaScript-Form_Submit=\u8868\u5355\u63D0\u4EA4 +Horizontal-Split_Layout=\u6C34\u5E73\u5206\u5272\u5E03\u5C40 +BorderLayout-Center=\u4E2D +INFO-Reset_Webapp=\u91CD\u7F6E\u5E94\u7528\u670D\u52A1\u5668 +FR-Designer_Text=\u6587\u672C +IN_and_INOUT_type_not_as_cursor=IN\u548CINOUT\u7C7B\u578B\u4E0D\u53EF\u4EE5\u4F5C\u4E3A\u6E38\u6807 +Main_Axis=\u4E3B\u5750\u6807\u8F74 +M_Edit-Cut=\u526A\u5207(T) +Utils-The_Name_has_been_existed=\u6B64\u540D\u5DF2\u7ECF\u5B58\u5728 +FR-Background_Image=\u56FE\u7247 +Character=\u6587\u5B57 +Unit_Thousand=\u5343 +Test=\u6D4B\u8BD5 +Utils-Would_you_like_to_save=\u4F60\u662F\u5426\u9700\u8981\u4FDD\u5B58 +HF-Header_and_Footer=\u7709\u5934\u548C\u7709\u811A +LIST_MODE=\u5217\u8868 +HF-Insert_Image=\u63D2\u5165\u56FE\u7247 +FR-Designer-Widget-Style_Standard=\u6807\u51C6 +FR-Designer_Form-List=\u5217\u8868 +BackgroundTexture-Denim=\u659C\u7EB9\u5E03 +Execute_Report_by_Layer_Engine=\u7528\u884C\u5F0F\u7684\u5F15\u64CE\u6765\u6267\u884C\u62A5\u8868 +M_Edit-Bring_Forward=\u4E0A\u79FB\u4E00\u5C42(F) +Choose_All=\u5168\u9009 +Form-RadioGroup=\u5355\u9009\u6309\u94AE\u7EC4 +FR-Base_Remove=\u5220\u9664 +FR-Remote_Connect2Server_Again=\u8FDE\u63A5\u4E2D\u65AD\uFF0C\u662F\u5426\u91CD\u65B0\u8FDE\u63A5\u670D\u52A1\u5668? +Semicolon=\u5206\u53F7 +StyleFormat-Category=\u5206\u7C7B +Report_Template=\u62A5\u8868\u6A21\u677F +Utils-Beyond_the_right_side_of_Border=\u8D85\u51FA\u53F3\u8FB9\u754C +BackgroundTexture-Papyrus=\u7EB8\u838E\u8349\u7EB8 +LayerPageReport_PageEngine=\u4F7F\u7528\u6309\u9875\u8FD0\u7B97\u5206\u6BB5\u6267\u884C\u62A5\u8868 +Schedule-The_selected_file_must_be_end_with_filter=\u9009\u62E9\u7684\u6587\u4EF6\u5FC5\u987B\u4EE5.cpt\u6216\u8005.class\u6216\u8005.frm\u7ED3\u5C3E\u3002 +Provide=\u63D0\u4F9B +FormulaD-Math_&_Trig=\u6570\u5B66\u548C\u4E09\u89D2\u51FD\u6570 +FR-Designer-StyleAlignment_Right=\u9760\u53F3 +Error_TableDataNameRepeat=\u5DF2\u7ECF\u5728\u670D\u52A1\u5668\u6570\u636E\u96C6\u4E2D\u5B58\u5728\u6216\u8005\u591A\u4E2A\u6570\u636E\u96C6\u540D\u91CD\u590D\u3002 +Choose_None=\u4E0D\u9009 +File-tree=\u6587\u4EF6\u6811 +FRFont-bold=\u52A0\u7C97 +FR-Designer_Set_Submit_Condition=\u8BBE\u7F6E\u63D0\u4EA4\u6761\u4EF6 +Form-Change_Widget_Name=\u66F4\u6539\u63A7\u4EF6\u540D +ReportColumns-Report_Columns=\u62A5\u8868\u5206\u680F +Can_not_use_FormatBursh=\u4E0D\u80FD\u5BF9\u591A\u91CD\u9009\u5B9A\u533A\u57DF\u4F7F\u7528\u683C\u5F0F\u5237\! +CellElement-Property_Table=\u5355\u5143\u683C\u5C5E\u6027\u8868 +Dictionary-Dynamic_SQL=\u52A8\u6001SQL +FR-Designer_Form-CheckBoxGroup=\u590D\u9009\u6846\u7EC4 +DBCP_TIME_BETWEEN_EVICTIONRUNSMILLIS=\u7A7A\u95F2\u8FDE\u63A5\u56DE\u6536\u5668\u4F11\u7720\u65F6\u95F4 +ReportD-Export_Hided_Column=\u5BFC\u51FA\u9690\u85CF\u5217 +Preference-Support_Undo=\u652F\u6301\u64A4\u9500 +FR-mobile_report_analysis=\u62A5\u8868\u89E3\u6790 +Month=\u6708 +Utils-Column_Width=\u5217\u5BBD +Collect-Use_Designer=\u4F7F\u7528\u8BBE\u8BA1\u5668 +Widget-User_Defined_Editor=\u9884\u5B9A\u4E49\u7F16\u8F91\u5668\uFF0C\u8BE5\u7F16\u8F91\u5668\u53EA\u80FD\u5728\u63A7\u4EF6\u7BA1\u7406\u83DC\u5355\u91CC\u66F4\u6539\u5176\u5C5E\u6027 +Unit_Ten_Thousand=\u4E07 +Data_Setting=\u6570\u636E\u8BBE\u7F6E +ECP_input_pwd=\u8BF7\u8F93\u5165\u5BC6\u7801\: +period=\u3002 +Note=\u5907\u6CE8 +Multiline=\u591A\u884C\u7F16\u8F91 +Datasource-Convert_Charset=\u7F16\u7801\u8F6C\u6362 +DashBoard-ConnectionList=\u6570\u636E\u8FDE\u63A5 +Utils-Submit_Forcibly=\u5F3A\u884C\u63D0\u4EA4 +Parent_Marked_Field=\u7236\u6807\u8BB0\u5B57\u6BB5 +Logout=\u9000\u51FA +FR-Designer_Show_Blank_Row=\u8865\u5145\u7A7A\u767D\u884C +FR-Base_Format=\u683C\u5F0F +FR-App-Export_png=PNG\u683C\u5F0F +Delete_Column=\u5220\u9664\u5217 +SecondGraduationLine=\u6B21\u8981\u523B\u5EA6\u7EBF +SpecifiedG-Groups=\u7EC4 +CONTINUUM_MODE=\u76F8\u90BB\u8FDE\u7EED\u5206\u7EC4 +Datasource-Connection_failed=\u8FDE\u63A5\u5931\u8D25 +CategoryName=\u5206\u7C7B\u540D +DBCP_INITIAL_SIZE=\u521D\u59CB\u5316\u8FDE\u63A5\u6570 +Colors=\u989C\u8272 +FR-Import-Export_CSV=CSV\u683C\u5F0F(\u9017\u53F7\u5206\u9694) +FR-Designer-StyleAlignment_Left=\u9760\u5DE6 +BackgroundTexture-PaperBag=\u7EB8\u888B +RWA-BuildIn_SQL=\u5185\u7F6ESQL +SingleLayer=\u5355\u5C42 +Or-you=\u6216\u8005\u60A8 +FR-Designer_Certificate_Path=\u8BC1\u4E66\u8DEF\u5F84 +Utils-Last_Page=\u6700\u540E\u4E00\u9875 +BarCodeD-Drawing_Text=\u663E\u793A\u6761\u5F62\u7801\u7684\u6587\u672C +Warning-Template_Do_Not_Exsit=\u6A21\u677F\u4E0D\u5B58\u5728 +BindColumn-Group=\u5206\u7EC4 +Export-SVG=SVG\u683C\u5F0F +Plane3D=\u5E73\u97623D +SessionID=sessionID\u662F\u5F53\u524D\u8BBF\u95EE\u6A21\u677F\u7684\u4F1A\u8BDD\u6807\u8BC6\u53C2\u6570\u3002 +FR-Designer_Height=\u9AD8 +HF-Odd_Page=\u5947\u6570\u9875 +About-All_Rights_Reserved=\u4FDD\u7559\u6240\u6709\u7684\u6743\u5229 +Utils-Current_Cell=\u5F53\u524D\u683C\u5B50 +Web_Preview_Message=\u8BF7\u5C06\u6A21\u677F\u6587\u4EF6\u4FDD\u5B58\u5728\u5F53\u524D\u8FD0\u884C\u73AF\u5883\u76EE\u5F55\u4E0B +FR-Hyperlink_Chart_Float=\u56FE\u8868\u8D85\u94FE-\u8054\u52A8\u60AC\u6D6E\u5143\u7D20 +Dic-Data_Query=\u6570\u636E\u67E5\u8BE2 +CellWrite-Print_Content=\u6253\u5370/\u5BFC\u51FA\u5355\u5143\u683C\u5185\u5BB9 +Privilege-Selected_None_Of_Any_Items=\u6CA1\u6709\u9009\u4E2D\u4EFB\u4F55\u4E00\u9879 +FRFont-Size=\u5927\u5C0F +Function-J2EE_server=J2EE\u670D\u52A1\u5668 +FR-Designer_Allow_Blank=\u5141\u8BB8\u4E3A\u7A7A +Build_Tree_Accord_Parent_Marked_Filed=\u4F9D\u8D56\u6240\u9009\u6570\u636E\u96C6\u7684\u7236\u6807\u8BB0\u5B57\u6BB5\u6784\u5EFA\u6811 +Preference-Horizontal_Scroll_Bar_Visible=\u6C34\u5E73\u6EDA\u52A8\u6761\u53EF\u89C1 +Scope=\u8303\u56F4 +Save_All_Records_In_Memory=\u6240\u6709\u8BB0\u5F55\u90FD\u4FDD\u5B58\u5728\u5185\u5B58\u4E2D +FreezeWarning1=\u521D\u59CB\u503C\u4E0D\u5927\u4E8E\u5C3E\u503C +FlowLayout=\u6D41\u5F0F\u5E03\u5C40 +M_Report-Report_Footer=\u62A5\u8868\u9875\u811A +FR-Action_Add=\u589E\u52A0 +BorderLayout-East=\u4E1C +feedback_tip=\u8BF7\u8F93\u5165\u4E0D\u8D85\u8FC7400\u4E2A\u5B57\u7684\u95EE\u9898\u63CF\u8FF0 +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 +InnerRadis=\u5185\u5F84\u5927\u5C0F +Want_To_Cover_It=\u662F\u5426\u60F3\u8986\u76D6\u5B83 +Divided_stage=\u5212\u5206\u9636\u6BB5 +Seriously=\u4E25\u91CD +ReportServerP-PDF=PDF +Utils-Switch_To_Class_Reportlet=\u5207\u6362\u5230\u7A0B\u5E8F\u7F51\u7EDC\u62A5\u8868 +FR-Designer_Show_Blank_Column=\u8865\u5145\u7A7A\u767D\u5217 +M_Edit-Redo=\u91CD\u505A +Visibility=\u53EF\u89C1\u6027 +Series_Use_Default=\u7CFB\u5217\u9ED8\u8BA4\u4F7F\u7528 +Has_Selected=\u5DF2\u7ECF\u9009\u62E9 +BackgroundTexture-Walnut=\u80E1\u6843 +FormulaD-Function_category=\u51FD\u6570\u7C7B\u578B +Interface=\u63A5\u53E3 +FR-Designer-Beyond_Bounds=\u8D85\u51FA\u6216\u8005\u5C0F\u4E8Ebody\u8FB9\u754C\uFF0C\u4E0D\u80FD\u8C03\u6574\u5927\u5C0F +seconds=\u79D2 +Auto-Build=\u81EA\u52A8\u6784\u5EFA +FR-Designer-Plugin_Install_Successful=\u8BE5\u63D2\u4EF6\u5C06\u5728\u91CD\u65B0\u542F\u52A8\u8BBE\u8BA1\u5668\u53CA\u670D\u52A1\u5668\u65F6\u88AB\u542F\u7528\uFF0C\u670D\u52A1\u5668\u9700\u624B\u52A8\u91CD\u542F +Template_Path=\u6A21\u677F\u8DEF\u5F84 +FR-Designer-FRFont_Bold=\u52A0\u7C97 +Poly_Name=\u805A\u5408\u5757\u540D +WorkBook=\u5DE5\u4F5C\u7C3F +Hyperlink-Self_Window=\u5F53\u524D\u7A97\u53E3 +FR-Designer-Widget-Style_Title=\u6807\u9898 +FR-Designer-FRFont_Size=\u5927\u5C0F +M_File-Export-SVG=SVG\u683C\u5F0F +Capacity=\u5BB9\u91CF +Rose_Red=\u73AB\u7470\u7EA2 +StyleAlignment-The_value_of_rotation_must_between_-90_and_90_degrees=\u65CB\u8F6C\u503C\u5FC5\u987B\u5728\u8D1F90\u5EA6\u523090\u5EA6 +HF-Move_Left=\u5DE6\u79FB +Cell_Group=\u5355\u5143\u683C\u7EC4 +Week=\u5468 +PageSetup-Orientation=\u65B9\u5411 +M-Open_Recent=\u6700\u8FD1\u6253\u5F00\u7684 +NNormal=\u6B63\u5E38 +Integer=\u6574\u6570 +Select_The_Source_To_Save=\u9009\u62E9\u8981\u5B58\u50A8\u7684\u9879\u76EE +Transition=\u5206\u652F +FR-Designer_Get_Lock=\u52A0\u9501 +one_record_exists_in_many_groups=\u4E00\u4E2A\u8BB0\u5F55\u53EF\u4EE5\u5B58\u5728\u4E8E\u591A\u4E2A\u7EC4\u4E2D +FR-Designer_Cover_None=\u5168\u4E0D\u8986\u76D6 +DeciPart=\u5C0F\u6570\u90E8\u5206 +ExpandD-Up_Father_Cell=\u4E0A\u7236\u683C +Deep=\u6DF1\u5EA6 +FRFont-Shadow=\u9634\u5F71 +Reportlet=\u7F51\u7EDC\u62A5\u8868 +Calendar=\u65E5\u5386 +DateFormat-Custom_Warning=\u6CE8\uFF1A\u81EA\u5B9A\u4E49\u65E5\u671F\u683C\u5F0F\u4E0D\u652F\u6301\u683C\u5F0F\u6821\u9A8C +Unit_MM=\u6BEB\u7C73 +Server-Start=\u542F\u52A8 +CellPage-Can_Break_On_Paginate=\u5206\u9875\u65F6\u53EF\u4EE5\u65AD\u5F00 +Build_Tree_Accord_Marked_Filed_Length=\u4F9D\u8D56\u6240\u9009\u6570\u636E\u96C6\u7684\u6807\u8BB0\u5B57\u6BB5\u7684\u957F\u5EA6\u6784\u5EFA\u6811 +ComboCheckBox-Start_Symbol=\u8D77\u59CB\u7B26 +Real=\u5B9E\u9645 +RWA-Batch_Modify_Cells=\u6279\u91CF\u4FEE\u6539\u5355\u5143\u683C +FR-Designer_Build-Way=\u6784\u5EFA\u65B9\u5F0F +Read=\u8BFB\u53D6 +StyleAlignment-Degrees=\u5EA6\u6570 +M_Format_A-Border=\u8FB9\u6846(B) +Utils-Delete_Record=\u5220\u9664\u8BB0\u5F55 +Reload=\u91CD\u8F7D +Image-Select_Picture=\u9009\u62E9\u56FE\u7247 +RWA-Submit=\u63D0\u4EA4 +the_template=\u8BE5\u6A21\u677F +FR-Designer_Component_Scale=\u7EC4\u4EF6\u7F29\u653E +FRFont-italic=\u503E\u659C +Year=\u5E74 +HF-Move_Right=\u53F3\u79FB +Data-Check=\u6570\u636E\u76D1\u63A7 +Unknown=\u672A\u77E5 +Submit_Style=\u63D0\u4EA4\u65B9\u5F0F +Left_Border_Line=\u5DE6\u6846\u7EBF +Brown=\u8910\u8272 +Select_A_Tree_DataSource_To_Build=\u9009\u62E9\u4E00\u4E2A\u6811\u6570\u636E\u96C6\u6765\u6784\u5EFA +Overlapping=\u91CD\u53E0\u578B +DS-Class_TableData=\u7A0B\u5E8F\u6570\u636E\u96C6 +FR-Designer-Plugin_Illegal_Plugin_Zip_Cannot_Be_Install=\u4E0D\u53EF\u8BC6\u522B\u7684\u63D2\u4EF6\uFF0C\u65E0\u6CD5\u5B89\u88C5 +DisplayNothingBeforeQuery=\u70B9\u51FB\u67E5\u8BE2\u524D\u4E0D\u663E\u793A\u62A5\u8868\u5185\u5BB9 +Y_Axis=Y\u8F74 +FormulaD-Most_Recently_Used=\u5E38\u7528\u51FD\u6570 +FormulaD-Input_formula_in_the_text_area_below=\u8BF7\u5728\u4E0B\u9762\u7684\u6587\u672C\u7F16\u8F91\u6846\u91CC\u9762\u8F93\u5165\u516C\u5F0F +Build-Way=\u6784\u5EFA\u65B9\u5F0F +M_Edit-Undo=\u64A4\u9500 +Line-Style=\u7EBF\u578B +Datasource-Other_Attributes=\u5176\u4ED6\u5C5E\u6027 +M_Server-Global_Parameters=\u5168\u5C40\u53C2\u6570 +Suffix=\u540E\u7F00 +Image-Image_Files=\u56FE\u7247\u6587\u4EF6 +EditRC-Entire_row=\u6574\u884C(R) +HF-First_Page=\u9996\u9875 +BackgroundTexture-Granite=\u82B1\u5C97\u5CA9 +DataList=\u6570\u636E\u94FE +Recursion=\u9012\u5F52 +BarStyle=\u6761\u5F62 +FR-Designer-Min_Width=\u6700\u5C0F\u5BBD\u5EA6 +Utils-Report-Env_Directory=\u62A5\u8868\u5DE5\u4F5C\u76EE\u5F55 +D-ChartArea=\u56FE\u8868\u533A +Only=\u53EA +FR-Base_No=\u5426 +SpecifiedG-Put_all_others_together=\u628A\u5176\u5B83\u6240\u6709\u7684\u5408\u5E76 +HF-NewLine_Des=\u53EF\u4EE5\u70B9\u51FB\u4E0A\u9762\u7684\u79FB\u52A8\u548C\u5220\u9664\u6309\u94AE\u6765\u64CD\u4F5C\u6362\u884C\u7B26 +WLayout-Border-ThreeContainer=\u62E5\u6709\u5317\u3001\u897F\u548C\u4E2D\u4E09\u5757\u7684\u8FB9\u754C\u5E03\u5C40\u5BB9\u5668\uFF0C\u5176\u4E2D\u5317\u90E8\u5757\u53EF\u4EE5\u6839\u636E\u9700\u8981\u8C03\u6574\u9AD8\u5EA6\uFF0C\u897F\u90E8\u5757\u53EF\u4EE5\u6839\u636E\u9700\u8981\u8C03\u6574\u5BBD\u5EA6 +Parameter_Name=\u53C2\u6570\u540D +FR-Base_Table=\u8868 +Des-Remove_WorkSheet=\u8981\u5220\u9664\u7684\u8868\u53EF\u80FD\u5B58\u5728\u6570\u636E,\u5982\u679C\u8981\u6C38\u4E45\u5220\u9664\u8FD9\u4E9B\u6570\u636E,\u8BF7\u6309'\u786E\u5B9A'\u6309\u94AE. +Rotation=\u65CB\u8F6C +Undefined=\u672A\u5B9A\u4E49 +Support-Auto_Complete_Shortcut=\u81EA\u52A8\u8865\u5168\u5FEB\u6377\u952E +Set_Column_Title_End=\u8BBE\u7F6E\u91CD\u590D\u7ED3\u5C3E\u5217 +Submit_Url=\u63D0\u4EA4\u5730\u5740 +ReportServerP-Are_you_sure_to_delete_the_selected_printer=\u4F60\u786E\u5B9E\u60F3\u5220\u9664\u9009\u4E2D\u7684\u6253\u5370\u673A\u5417 +long_data_can_not_show_fully=\u957F\u6570\u636E\u663E\u793A\u4E0D\u5168 +Utils-Beyond_the_bottom_side_of_Border=\u8D85\u51FA\u4E0B\u8FB9\u754C +FR-Import-Export_PDF=PDF\u683C\u5F0F +Form-CheckBoxGroup=\u590D\u9009\u6846\u7EC4 +Click-Me=\u70B9\u6211\u6709\u60CA\u559C\u54E6\uFF01 +Hyperlink-Self=\u5728\u539F\u7F51\u9875\u4E2D\u6253\u5F00\u94FE\u63A5(S) +Tree-Select_Leaf_Only_Tips=\uFF08\u4E0D\u52FE\u9009\u6B64\u9879\u65F6\uFF0C\u8FD4\u56DE\u503C\u4EC5\u4E3A\u7528\u6237\u52FE\u9009\u7684\u5F53\u524D\u8282\u70B9\u800C\u4E0D\u5305\u62EC\u5176\u5B50\u8282\u70B9\uFF09 +StyleAlignment-Text_Rotation=\u6587\u672C\u65B9\u5411 +Format-Error=\u8F93\u5165\u7684\u503C\u683C\u5F0F\u4E0D\u6B63\u786E +Server-Stop=\u505C\u6B62 +Preference-Setting_Grid=\u7F51\u683C\u8BBE\u7F6E +ReportServerP-Add_Printer=\u589E\u52A0\u6253\u5370\u673A +FR-Designer-Plugin_Active=\u542F\u7528 +Utils-File_name=\u6587\u4EF6\u540D +NOT_NULL_Des=\u4E0D\u80FD\u4E3A\u7A7A +Right_Border_Line=\u53F3\u6846\u7EBF +EditRC-Entire_column=\u6574\u5217(C) +PageSetup-Top_to_bottom=\u5148\u5217\u540E\u884C +Click-Get_Default_URL=\u70B9\u51FB\u6B64\u6309\u94AE\u83B7\u5F97\u9ED8\u8BA4URL +StyleAlignment-Wrap_Text=\u81EA\u52A8\u6362\u884C +Remove_All_Button=\u6E05\u9664\u6240\u6709\u6309\u94AE +FR-Designer_Component_Interval=\u7EC4\u4EF6\u95F4\u9694 +ReportColumns-Columns_vertically=\u5217\u5206\u680F +ReportGUI-Print_Background=\u6253\u5370/\u5BFC\u51FA\u62A5\u8868\u80CC\u666F +Export-CSV=CSV\u683C\u5F0F(\u9017\u53F7\u5206\u9694) +M_Edit-Paste=\u7C98\u8D34(P) +FR-Designer-Basic_Restart_Designer=\u91CD\u542F\u8BBE\u8BA1\u5668 +ReportServerP-PDF2-INFO=\u4EC5\u5728LINUX/UNIX\u4E0B\u672A\u5B89\u88C5\u4E2D\u6587\u5B57\u4F53\u65F6\u4F7F\u7528 +FormulaD-Check_Valid=\u68C0\u67E5\u5408\u6CD5\u6027 +server_disconnected=\u8FDE\u63A5\u5DF2\u65AD\u5F00 +ParameterD-Parameter_name_cannot_be_null=\u53C2\u6570\u7684\u540D\u5B57\u4E0D\u53EF\u4EE5\u4E3A\u7A7A +FR-Designer-Plugin_Version_Is_Lower_Than_Current=\u5347\u7EA7\u5305\u7684\u63D2\u4EF6\u7248\u672C\u6CA1\u6709\u6BD4\u5F53\u524D\u7684\u9AD8 +RWA-NotChange_Unmodified=\u672A\u4FEE\u6539\u4E0D\u66F4\u65B0 +User_Information=\u7528\u6237\u4FE1\u606F +Custom_styles_lost=\u81EA\u5B9A\u4E49\u6837\u5F0F\u5DF2\u4E22\u5931 +PageSetup-Margin=\u9875\u8FB9\u8DDD +M-New_FormBook=\u65B0\u5EFA\u8868\u5355 +Widget-TreeNode=\u6811\u8282\u70B9\u6309\u94AE +Form-Url=\u5730\u5740 +Utils-Beyond_the_left_side_of_Border=\u8D85\u51FA\u5DE6\u8FB9\u754C +Float_Element_Name=\u60AC\u6D6E\u5143\u7D20\u540D\u79F0 +Purple=\u7C89\u7D2B +DashBoard-Potence=\u6743\u9650 +M-Close_Template=\u5173\u95ED\u6A21\u677F(C) +paper=\u7EB8\u5F20 +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"\ +FR-Action_Copy=\u590D\u5236 +Compile_Success=\u7F16\u8BD1\u6210\u529F +BackgroundTexture-RecycledPaper=\u518D\u751F\u7EB8 +StyleAlignment-Single_Line=\u5355\u884C\u663E\u793A +Utils-Move_Down=\u4E0B\u79FB +Please_Set_Repeat_First=\u8BF7\u5148\u8BBE\u7F6E\u91CD\u590D\u6807\u9898\u884C\u548C\u5217 +Writer-ShortCuts_Setting=\u586B\u62A5\u5FEB\u6377\u952E\u8BBE\u7F6E +Verify-Data_Verify=\u6570\u636E\u6821\u9A8C +FR-mobile_analysis_style=\u89E3\u6790\u65B9\u5F0F +Confirm-Delete-File=\u662F\u5426\u5220\u9664\u6240\u9009\u6587\u4EF6\uFF1F +PageSetup-Header=\u9875\u7709 +JavaScrit-Asynch=\u5F02\u6B65 +ReportServerP-Toolbar=\u5DE5\u5177\u680F +Utils-Top_to_Bottom=\u7EB5\u5411 +Platform=\u5E73\u53F0 +FR-Designer-FRFont_Underline=\u4E0B\u5212\u7EBF +Show_in_Containing_Folder=\u6253\u5F00\u6240\u5728\u6587\u4EF6\u5939 +BackgroundTexture-WaterDroplets=\u6C34\u6EF4 +FR-Designer-Dependence_Install_Failed=\u4F9D\u8D56\u5B89\u88C5\u5931\u8D25 +Layout-Padding=\u5185\u8FB9\u8DDD +roles_already_authority_edited=\u5DF2\u914D\u7F6E\u89D2\u8272 +WidgetDisplyPosition=\u63A7\u4EF6\u663E\u793A\u4F4D\u7F6E +SpecifiedG-Force_Group=\u5F3A\u5236\u5206\u7EC4 +FormulaD-Formula_Definition=\u516C\u5F0F\u5B9A\u4E49 +I-xyScatterStyle_Marker=\u6563\u70B9\u56FE +Hour=\u5C0F\u65F6 +ColorMatch=\u914D\u8272 +M_Edit-Order=\u53E0\u653E\u6B21\u5E8F(O) +BackgroundTexture-Bouquet=\u82B1\u675F +Verify-Error_Information=\u6821\u9A8C\u51FA\u9519\u4FE1\u606F +LayerData=\u5E95\u5C42\u6570\u636E +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 +Set_Column_Title_Start=\u8BBE\u7F6E\u91CD\u590D\u6807\u9898\u5217 +Fri=\u4E94 +M_Report-Report_Parameter=\u6A21\u677F\u53C2\u6570 +REPORTLETS=\u8BBF\u95EE\u591A\u5F20\u6A21\u677F\u7684\u8DEF\u5F84\u7684\u53C2\u6570 +WLayout-Card-ToolTip=\u5361\u7247\u5F0F\u5E03\u5C40\uFF0C\u8BE5\u5E03\u5C40\u5BB9\u5668\u4E2D\u53EF\u4EE5\u6DFB\u52A0\u591A\u4E2A\u5176\u5B83\u7EC4\u4EF6\u3002 +M-Popup_ChartType=\u56FE\u8868\u7C7B\u578B +Please-Wait=\u8BF7\u7A0D\u5019 +FR-Designer-Form-ToolBar_Widget=\u63A7\u4EF6 +Widget-Array=\u6570\u7EC4 +FieldBinding=\u7ED1\u5B9A\u5B57\u6BB5 +Top_Bottom_Border_Line=\u4E0A\u4E0B\u6846\u7EBF +M-Others=\u5176\u5B83... +Hyperlink-Link_Opened_in=\u94FE\u63A5\u6253\u5F00\u4E8E +FR-Utils_WorkBook=\u5DE5\u4F5C\u7C3F +M_Insert-Float=\u60AC\u6D6E\u5143\u7D20 +Out_Thick_Border_Line=\u7C97\u5323\u6846\u7EBF +FR-App-File_Lookup_range=\u67E5\u627E\u8303\u56F4 +ReportColumns-Columns_to=\u5206\u680F\u6210 +Transparent=\u900F\u660E +Parameter-Integer=\u6574\u578B +PDF-Print_Setting=PDF\u6253\u5370\u8BBE\u7F6E +Server-Embedded_Server=\u5167\u7F6E\u7684\u670D\u52A1\u5668 +M_Server-Server_Config_Manager=\u670D\u52A1\u5668\u914D\u7F6E +FR-Utils-Would_you_like_to_cover_the_current_file=\u4F60\u5E0C\u671B\u8986\u76D6\u5F53\u524D\u6587\u4EF6\u5417 +CellWrite-InsertRow_COPY=\u539F\u503C +Edit_String_To_Formula=\u662F\u5426\u5C06\u5B57\u7B26\u4E32\u7F16\u8F91\u4E3A\u516C\u5F0F +Edit-Column_Count=\u5217\u6570 +Father=\u7236 +ReportColumns-Columns_after=\u8D85\u8FC7 +FR-Designer_Undo=\u64A4\u9500 +DBCP_MIN_IDLE=\u6700\u5C0F\u7A7A\u95F2\u8FDE\u63A5\u6570 +M-Data_Analysis_Settings=\u6570\u636E\u5206\u6790\u8BBE\u7F6E +M-Form_Preview=\u8868\u5355\u9884\u89C8 +Form-Basic_Properties=\u57FA\u672C\u5C5E\u6027 +quote=\u5F15\u7528 +Thu=\u56DB +Collect-Collect_User_Information=\u6536\u96C6\u7528\u6237\u4FE1\u606F +Layer-Build=\u5206\u5C42\u6784\u5EFA +FR-Designer-FRFont_Line_Style=\u7EBF\u578B +BackgroundTexture-BrownMarble=\u68D5\u8272\u5927\u7406\u77F3 +PageSetup-Page_Setup=\u9875\u9762\u8BBE\u7F6E +Form-Semicolon=\u5206\u53F7 +ECP_re_input=\u5BC6\u7801\u9519\u8BEF, \u8BF7\u91CD\u65B0\u8F93\u5165 +ExpandD-Sort_After_Expand=\u6269\u5C55\u540E +FR-Designer-Dependence_Install_Succeed=\u4F9D\u8D56\u5B89\u88C5\u6210\u529F +Env-Configure_Workspace=\u914D\u7F6E\u5DE5\u4F5C\u76EE\u5F55 +feedback_info=\u6B22\u8FCE\u60A8\u63D0\u51FA\u5B9D\u8D35\u7684\u610F\u89C1\u548C\u5EFA\u8BAE\uFF0C\u8BF7\u5C06\u4FE1\u606F\u586B\u5199\u5F97\u5C3D\u91CF\u8BE6\u7EC6\uFF0C\u6211\u4EEC\u4F1A\u5C3D\u5FEB\u8054\u7CFB\u60A8 +Ratio=\u6BD4\u7387 +DBCP_TEST_ON_BORROW=\u83B7\u53D6\u8FDE\u63A5\u524D\u68C0\u9A8C +FR-Designer_layerIndex=\u4F9D\u8D56\u7684\u5C42\u6570 +WEB-Write_Setting=\u586B\u62A5\u9875\u9762\u8BBE\u7F6E +M-New_WorkBook=\u65B0\u5EFA\u5DE5\u4F5C\u7C3F +FR-Designer-Plugin_Has_Been_Actived=\u63D2\u4EF6\u5DF2\u88AB\u542F\u7528\uFF0C\u91CD\u542F\u8BBE\u8BA1\u5668\u53CA\u670D\u52A1\u5668\u751F\u6548\uFF0C\u670D\u52A1\u5668\u9700\u624B\u52A8\u91CD\u542F +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 +FormulaD-Date_&_Time=\u65E5\u671F\u548C\u65F6\u95F4\u51FD\u6570 +Max-Mem-Row-Count=\u7F13\u5B58\u81F3\u78C1\u76D8\u5F53\u8BB0\u5F55\u6570\u5927\u4E8E +BorderLayout-South=\u5357 +Export-Text=\u6587\u672C\u6587\u4EF6(\u5236\u8868\u7B26\u5206\u9694) +JavaScript-Synch=\u540C\u6B65 +FR-App-All_Warning=\u8B66\u544A +M_Edit-Send_Backward=\u4E0B\u79FB\u4E00\u5C42(B) +Form-Layout=\u5E03\u5C40 +FR-Designer-Plugin_Shop_Need_Update=\u63D2\u4EF6\u5546\u5E97\u6709\u65B0\u7248\u672C,\u662F\u5426\u66F4\u65B0? +FR-Designer_WorkBook=\u5DE5\u4F5C\u7C3F +UpBarBorderStyleAndColor=\u6DA8\u67F1\u6837\u5F0F +GridLayout=\u683C\u5B50\u5E03\u5C40 +Utils-Default_Value=\u9ED8\u8BA4\u503C +Widget-Comb_Widget_Config=\u7EC4\u5408\u63A7\u4EF6 +Import-Excel2007_Source=Excel2007\u6E90\u6587\u4EF6 +Y-Coordinate=\u7EB5\u5750\u6807 +FR-Base_SimSun_Not_Found=\u65E0\u6CD5\u627E\u5230\u5B8B\u4F53, \u8BF7\u9009\u62E9\u5F53\u524D\u7CFB\u7EDF\u4E0B\u9ED8\u8BA4\u8BED\u8A00\u4F5C\u4E3A\u8BBE\u8BA1\u5668\u5B57\u4F53. +FR-Designer_Seriously=\u4E25\u91CD +Upload=\u4E0A\u4F20 +Form-Widget_Property_Table=\u5C5E\u6027\u8868 +Des-Merger_Cell=\u9009\u62E9\u7684\u533A\u57DF\u5305\u542B\u591A\u4E2A\u6570\u636E\uFF0C\u5408\u5E76\u5355\u5143\u683C\u540E\u5C06\u53EA\u4FDD\u7559\u7F16\u8F91\u8FC7\u7684\u6240\u6709\u5355\u5143\u683C\u4E2D\u6700\u5DE6\u4E0A\u89D2\u7684\u6570\u503C. +FR-Designer-Basic_Copy_Build_NO=\u53CC\u51FB\u6784\u5EFA\u7248\u672C\u53F7\u53EF\u590D\u5236\u5230\u526A\u8D34\u677F +FR-Base_TurnOn=\u5F00\u542F +FR-Base_Rows=\u884C +Form-Remove_Repeat=\u53BB\u6389\u91CD\u590D\u9879 +Yes=\u662F +Datasource-JNDI_Name=JNDI\u7684\u540D\u5B57 +Utils-Delete_Column=\u5220\u9664\u5217 +HF-Delete_it=\u5220\u9664 +JavaScript-Dynamic_Parameters=\u52A8\u6001\u53C2\u6570 +px=\u50CF\u7D20 +FR-App-Report_Template=\u62A5\u8868\u6A21\u7248 +Verify-Message=\u9519\u8BEF\u4FE1\u606F +Plan=\u8BA1\u5212 +Vertical-Split_Layout=\u5782\u76F4\u5206\u5272\u5E03\u5C40 +ParameterD-Delay_Playing=\u70B9\u51FB\u67E5\u8BE2\u524D\u4E0D\u663E\u793A\u62A5\u8868\u5185\u5BB9 +TurnOff=\u5173\u95ED +FR-Please_Rename=\u8BF7\u91CD\u547D\u540D +Select_Data_Set=\u9009\u62E9\u6570\u636E\u96C6 +Name_has_Colon=\u540D\u5B57\: +ReportColumns-Columns_horizontally=\u884C\u5206\u680F +FR-Base_Yes=\u662F +ReportColumns-Repeat_Row=\u590D\u5236\u884C\u5E8F\u5217 +Print_Setting=\u6253\u5370\u8BBE\u7F6E +Registration-User_Name=\u7528\u6237\u540D +Datasource-User_Defined=\u81EA\u5B9A\u4E49 +FR-Designer-Plugin_DownLoadMessage=\u63D2\u4EF6\u9700\u8981\u4F9D\u8D56\u7684\u652F\u6301\uFF0C\u662F\u5426\u5B89\u88C5 ({R1} m)? +Delay=\u5EF6\u8FDF +FR-Designer-All_MSBold=\u5FAE\u8F6F\u96C5\u9ED1 +Utils-Now_create_connection=\u6B63\u5728\u5EFA\u7ACB\u6570\u636E\u8FDE\u63A5 +FR-Template-Path_chooseRightPath=\u8BF7\u9009\u62E9\u6B63\u786E\u8DEF\u5F84 +FR-Remote_Re_Connect_to_Server=\u670D\u52A1\u5668\u5DF2\u5173\u95ED\uFF0C\u662F\u5426\u91CD\u65B0\u8FDE\u63A5\u670D\u52A1\u5668? +Nation=\u56FD\u5BB6 +DBCP_MAX_WAIT=\u6700\u5927\u7B49\u5F85\u65F6\u95F4 +FR-App-Template_Form=\u8868\u5355 +Address=\u5730\u5740 +Sub_Report=\u5B50\u62A5\u8868 +FR-Import-Export_Word=Word\u683C\u5F0F +FR-Server_Version_Tip=\u60A8\u5F53\u524D\u8FDE\u63A5\u7684\u670D\u52A1\u5668\u7248\u672C\u4F4E\u4E8E\u60A8\u4F7F\u7528\u7684\u8BBE\u8BA1\u5668\u7248\u672C\u53F7\uFF0C\u7EE7\u7EED\u8FDE\u63A5\uFF0C\u60A8\u7F16\u8F91\u7684\u4E00\u4E9B\u5C5E\u6027\u53EF\u80FD\u65E0\u6CD5\u6709\u6548\u4FDD\u5B58\u3002 \u5047\u5982\u9700\u8981\u8FDE\u63A5\u8BF7\u5C06\u60A8\u7684\u8BBE\u8BA1\u5668\u7248\u672C\u4E0E\u670D\u52A1\u5668\u7248\u672C\u4FDD\u6301\u4E00\u81F4 +StyleAlignment-Left_To_Right=\u4ECE\u5DE6\u5411\u53F3 +Verify-ToolTips=\u4E0D\u6EE1\u8DB3\u516C\u5F0F\u63D0\u793A\u6821\u9A8C\u51FA\u9519\u4FE1\u606F +BackgroundTexture-Stationery=\u4FE1\u7EB8 +FR-Designer_RWA-Help=\u8BBE\u7F6E\u672A\u4FEE\u6539\u4E0D\u66F4\u65B0\u540E\uFF0C\u586B\u62A5\u9884\u89C8\u62A5\u8868\uFF0C\u8BB0\u5F55\u6240\u5728\u5355\u5143\u683C\u6CA1\u6709\u88AB\u7F16\u8F91\u4FEE\u6539\uFF0C\u5219\u6B64\u8BB0\u5F55\u4E0D\u4F1A\u8FDB\u884C\u66F4\u65B0\uFF1B\n\u5728\u5927\u6570\u636E\u91CF\u8BB0\u5F55\u67E5\u8BE2\u5E76\u56DE\u586B\u60C5\u51B5\u4E0B\uFF0C\u542F\u7528\u8BE5\u8BBE\u7F6E\uFF0C\u53EF\u4EE5\u63D0\u9AD8\u586B\u62A5\u63D0\u4EA4\u6027\u80FD\u3002 +M_Insert-Barcode=\u6761\u5F62\u7801 +Bounds=\u8FB9\u754C +FR-Designer-Undo_All_Authority_Operations=\u64A4\u9500\u524D\u4E00\u6B21\u6743\u9650\u7F16\u8F91\u7684\u6240\u6709\u64CD\u4F5C +Datasource-Context=\u4E0A\u4E0B\u6587 +CellWrite-Page_After_Column=\u5217\u540E\u5206\u9875 +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 \ +StyleAlignment-Horizontal=\u6C34\u5E73\u5BF9\u9F50 +HyperLink_Must_Alone_Reset=\u591A\u4E2A\u8D85\u94FE +ExpandD-Expand_Direction=\u6269\u5C55\u65B9\u5411 +Include=\u5305\u62EC +Export-Excel-Page=\u5206\u9875\u5BFC\u51FA +FR-Designer-Min_Height=\u6700\u5C0F\u9AD8\u5EA6 +Filed=\u533A\u57DF +ReportServerP-Import_Css=\u5F15\u7528Css +M_Insert-Formula=\u63D2\u5165\u516C\u5F0F +FR-Designer_Auto-Build=\u81EA\u52A8\u6784\u5EFA +FRFont-Foreground=\u989C\u8272 +Bubble-Width=\u6C14\u6CE1\u5BBD\u5EA6 +Form-Hierarchy_Tree=\u7ED3\u6784\u6811 +WLayout-Border-LayoutContainer=\u62E5\u6709\u4E2D\u90E8\u548C\u5317\u90E8\u4E24\u5757\u7684\u8FB9\u754C\u5E03\u5C40\u5BB9\u5668,\u5176\u4E2D\u5317\u90E8\u5757\u53EF\u4EE5\u6839\u636E\u9700\u8981\u8C03\u6574\u9AD8\u5EA6 +Preference-JDK_Home=JDK\u8DEF\u5F84 +Utils-Insert_Column=\u63D2\u5165\u5217 +FR-Designer_ToolBar_Top=\u9876\u90E8\u5DE5\u5177\u680F +BindColumn-The_Conditions_of_FatherCell=\u7236\u683C\u6761\u4EF6 +Links=\u94FE\u63A5 +M_Report-Report_Header=\u62A5\u8868\u9875\u7709 +Sub_Report_Description=\u5B50\u62A5\u8868\u9700\u8981\u5B58\u5728\u4E8E\u7236\u8868\u8FD0\u884C\u73AF\u5883\u4E0B\uFF0C\u4E14\u4E24\u8005\u4E0D\u80FD\u4E3A\u540C\u4E00\u6A21\u677F +T_Insert-Float=\u63D2\u5165\u60AC\u6D6E\u5143\u7D20 +BackgroundTexture-FishFossil=\u9C7C\u7C7B\u5316\u77F3 +My_Computer=\u6211\u7684\u7535\u8111 +FORMLET=\u8BBF\u95EE\u4E0D\u540C\u8868\u5355\u7684\u8DEF\u5F84\u7684\u53C2\u6570 +HF-Undefined=\u6CA1\u6709\u5B9A\u4E49 +Widget-User_Defined_Widget_Config=\u9884\u5B9A\u4E49\u63A7\u4EF6 +Report-Write_Attributes_Group_Warning=\u8BBE\u7F6E\u4E3A\u5355\u5143\u683C\u7EC4\u7684\u5404\u5B57\u6BB5\u4E2D\u7684\u5355\u5143\u683C\u4E2A\u6570\u5FC5\u987B\u76F8\u540C +Form-Single_quote=\u5355\u5F15\u53F7 +Compile_Success_And_Then_Save=\u7F16\u8BD1\u6210\u529F\u624D\u80FD\u6B63\u786E\u4FDD\u5B58 +FR-Designer_Layout-Padding=\u5185\u8FB9\u8DDD +Layout_Container=\u5E03\u5C40\u5BB9\u5668 +Admin=\u7BA1\u7406\u5458 +Form-EC_toolbar=\u62A5\u8868\u5757\u5DE5\u5177\u680F +FR-App-All_Auto=\u81EA\u52A8 +Utils-Available_Columns=\u53EF\u9009\u5217 +Form-Change_Widget_Name_Discription=\u8BF7\u8F93\u5165\u4E00\u4E2A\u65B0\u7684\u63A7\u4EF6\u540D +FR-Module_Designer=\u8BBE\u8BA1\u5668\u6A21\u5757 +FR-Import-Export_Text=\u6587\u672C\u6587\u4EF6(\u5236\u8868\u7B26\u5206\u9694) +Values-Editor=\u503C\u7F16\u8F91\u5668 +FR-Designer_Yes=\u662F +ExpandD-Expandable=\u53EF\u4F38\u5C55\u6027 +Tree-Return_Full_Path=\u7ED3\u679C\u8FD4\u56DE\u5B8C\u6574\u5C42\u6B21\u8DEF\u5F84 +FRFont-bolditalic=\u52A0\u7C97\u503E\u659C +FR-Base_StyleFormat_Sample=\u793A\u4F8B +Area_Value=\u533A\u57DF\u503C +FR-Designer-Plugin_Disable=\u7981\u7528 +Utils-Are_you_sure_to_remove_the_selected_item=\u4F60\u786E\u5B9E\u51B3\u5B9A\u5220\u9664\u9009\u4E2D\u7684\u9879 +Face_Write=\u586B\u62A5 +Poly-Report_Block=\u62A5\u8868\u7C7B\u578B\u805A\u5408\u5757 +Vgap=\u5782\u76F4\u95F4\u9699 +FR-Designer_HyperLink_Must_Alone_Reset=\u591A\u4E2A\u8D85\u94FE +DS-Class=\u7A0B\u5E8F +FR-Hyperlink_Please_Select_Reportlet=\u8BF7\u9009\u62E9\u7F51\u7EDC\u62A5\u8868 +FS_Report_Type=\u7C7B\u578B +HF-New_Line=\u6362\u884C\u7B26 +Privilege=\u6743\u9650 +Export-Offline-Html=\u8F93\u51FA\u79BB\u7EBFhtml\u62A5\u8868 +FR-Designer_open-new-form-tip=\u5F53\u524D\u6A21\u677F\u4E3A711\u4EE5\u4E0B\u7248\u672C\u5236\u4F5C\uFF0C\u65E0\u6CD5\u517C\u5BB9\uFF0C\u4E0D\u80FD\u6253\u5F00\u3002\u5047\u5982\u60F3\u6253\u5F00\u4FEE\u6539\u6B64\u8868\u5355\uFF0C\u8BF7\u4F7F\u7528\u5BF9\u5E94\u7248\u672C\u8BBE\u8BA1\u5668\u6253\u5F00\u3002 +FR-Designer-Widget-Style_Frame_Style=\u6846\u67B6\u6837\u5F0F +Present-No_Present=\u53D6\u6D88\u5F62\u6001\u8BBE\u7F6E +FR-Designer_Form-Password=\u5BC6\u7801 +X_Axis=X\u8F74 +FR-mobile_html_analysis=HTML5\u89E3\u6790 +M_Edit-Bring_to_Front=\u7F6E\u4E8E\u9876\u5C42(T) +Null_Value_Show=\u7A7A\u503C\u663E\u793A +Datasource-JNDI_DES=\u6CE8\u610F\:\u9700\u8981\u628A\u5305\u542BINITIAL_CONTEXT_FACTORY\u7C7B\u7684.jar\u6587\u4EF6\u590D\u5236\u5230\u8F6F\u4EF6\u5B89\u88C5\u76EE\u5F55\u4E0B\u7684/lib\u76EE\u5F55\u4E0B. +PrintP-Print_Preview=\u6253\u5370\u9884\u89C8 +Form-Hierarchy_Tree_Last=\u4E0A\u4E00\u4E2A +Has_been_gone=\ \u5DF2\u4E22\u5931\uFF0C\u662F\u5426\u589E\u52A0\u8BE5\u6837\u5F0F\uFF1F +RWA-Add_Field=\u6DFB\u52A0\u5B57\u6BB5 +newNode=\u65B0\u589E\u8282\u70B9 +PageSetup-Shrink_to_fit_content=\u6839\u636E\u5355\u5143\u683C\u5185\u5BB9\u81EA\u52A8\u8C03\u6574 +FR-Designer_Date=\u65E5\u671F +Column_Multiple=\u6570\u636E\u500D\u6570 +FR-App-All_File=\u6587\u4EF6 +Sort-Descending=\u964D\u5E8F +FR-Designer-Plugin_Delete=\u5220\u9664 +Above=\u4EE5\u4E0A\u7248\u672C +Utils-The-Chart=\u56FE\u8868 +FRFont-plain=\u5E38\u89C4 +Calculating=\u5904\u7406\u4E2D +Form-Object=\u8868\u5355\u5BF9\u8C61\: +May=\u4E94\u6708 +FR-Designer_Plugin_Normal_Update=\u66F4\u65B0 +FR-Hyperlink_Reportlet=\u7F51\u7EDC\u62A5\u8868 +M_Edit-Copy=\u590D\u5236(C) +Sub_Report_Message2=\u7236\u62A5\u8868\u4E0D\u5728\u5F53\u524D\u8FD0\u884C\u73AF\u5883\u4E0B +Sub_Report_Message3=\u4E0D\u80FD\u9009\u62E9\u81EA\u8EAB +Sub_Report_Message1=\u8BF7\u9009\u62E9\u6B63\u786E\u8DEF\u5F84 +Form-Allow_CustomData=\u5141\u8BB8\u81EA\u5B9A\u4E49\u503C +FR-Server_Version_Tip_MoreInfo=\u5EFA\u8BAE\u60A8\u6240\u5C5E\u56E2\u961F\u4F7F\u7528\u7684\u6211\u65B9FineReport\u4EA7\u54C1\u7684\u8BBE\u8BA1\u5668\u7248\u672C\u53F7\u4EE5\u53CA\u90E8\u7F72\u7684\u670D\u52A1\u5668\u7248\u672C\u53F7\u4FDD\u6301\u4E00\u81F4\uFF0C\u4EE5\u907F\u514D\u7248\u672C\u4E0D\u4E00\u81F4\u9020\u6210\u7684\u95EE\u9898\u98CE\u9669\u3002\n\u5047\u5982\u60A8\u6253\u5F00\u66F4\u9AD8\u8BBE\u8BA1\u5668\u7248\u672C\u5236\u4F5C\u7684\u6A21\u677F\uFF0C\u53EF\u80FD\u6253\u5F00\u51FA\u9519\uFF0C\u4E5F\u53EF\u80FD\u4E22\u5931\u539F\u6709\u6A21\u677F\u5C5E\u6027\u3002\u5047\u5982\u60A8\u5236\u4F5C\u7684\u6A21\u677F\u4F7F\u7528\u7684\u8BBE\u8BA1\u5668\u7248\u672C\u9AD8\u4E8E\u60A8\u6700\u7EC8\u90E8\u7F72\u6240\u7528\u7684\u670D\u52A1\u5668\u7248\u672C\uFF0C\u670D\u52A1\u5668\u53EF\u80FD\u65E0\u6CD5\u6B63\u5E38\u8F7D\u5165\u60A8\u5236\u4F5C\u7684\u6A21\u677F\u3002 +FR-Designer_Server-version-tip-moreInfo=\u5EFA\u8BAE\u60A8\u6240\u5C5E\u56E2\u961F\u4F7F\u7528\u7684\u6211\u65B9FineReport\u4EA7\u54C1\u7684\u8BBE\u8BA1\u5668\u7248\u672C\u53F7\u4EE5\u53CA\u90E8\u7F72\u7684\u670D\u52A1\u5668\u7248\u672C\u53F7\u4FDD\u6301\u4E00\u81F4\uFF0C\u4EE5\u907F\u514D\u7248\u672C\u4E0D\u4E00\u81F4\u9020\u6210\u7684\u95EE\u9898\u98CE\u9669\u3002\n\u5047\u5982\u60A8\u6253\u5F00\u66F4\u9AD8\u8BBE\u8BA1\u5668\u7248\u672C\u5236\u4F5C\u7684\u6A21\u677F\uFF0C\u53EF\u80FD\u6253\u5F00\u51FA\u9519\uFF0C\u4E5F\u53EF\u80FD\u4E22\u5931\u539F\u6709\u6A21\u677F\u5C5E\u6027\u3002\u5047\u5982\u60A8\u5236\u4F5C\u7684\u6A21\u677F\u4F7F\u7528\u7684\u8BBE\u8BA1\u5668\u7248\u672C\u9AD8\u4E8E\u60A8\u6700\u7EC8\u90E8\u7F72\u6240\u7528\u7684\u670D\u52A1\u5668\u7248\u672C\uFF0C\u670D\u52A1\u5668\u53EF\u80FD\u65E0\u6CD5\u6B63\u5E38\u8F7D\u5165\u60A8\u5236\u4F5C\u7684\u6A21\u677F\u3002 +Get_Lock=\u52A0\u9501 +HF-Edit_Footer=\u7F16\u8F91\u9875\u811A +Datasource-New_Charset=\u65B0\u7F16\u7801 +Preference-Custom=\u81EA\u5B9A\u4E49 +BackgroundTexture-Newsprint=\u65B0\u95FB\u7EB8 +ConditionB-Add_bracket=\u6DFB\u52A0\u62EC\u53F7 +Datasource-Connection_successfully=\u8FDE\u63A5\u6210\u529F +Function-The_class_must_implement_the_interface=\u8BE5\u7C7B\u5FC5\u987B\u5B9E\u73B0\u63A5\u53E3 +FR-Designer_ChartF-Transparency=\u900F\u660E +Crimson=\u6DF1\u7EA2 +FR-Hyperlink_Dialog=\u5BF9\u8BDD\u6846 +FR-Designer_Covered_All=\u5168\u90E8\u8986\u76D6 +Hyperlink-New_Window=\u65B0\u7A97\u53E3 +Style_Name=\u683C\u5F0F\u540D +CSS_warning=\ \u76F8\u5BF9\u62A5\u8868\u5DE5\u7A0B\u76EE\u5F55\u5982WebReport,\u5982WebReport\\css\u4E0B\u6709\u5F15\u7528\u7684css\u6587\u4EF6test.css\uFF0C\u5219\u76F8\u5BF9\u8DEF\u5F84\u4E3Acss/test.css +FR-Base_Column=\u5217 +Three_Rows_Of_Two_Grid=\u4E09\u884C\u4E24\u5217\u7684\u683C\u5B50 +DBCP_VALIDATION_QUERY=SQL\u9A8C\u8BC1\u67E5\u8BE2 +M_Edit-Clear_Formats=\u683C\u5F0F(F) +Parameter_Setting=\u53C2\u6570\u8BBE\u7F6E +Related=\u8054\u52A8 +BorderLayout-Constraints=\u4F4D\u7F6E +Write_Preview=\u586B\u62A5\u9884\u89C8 +PageSetup-Page_Order=\u6253\u5370\u987A\u5E8F +Verify-Verify_Formula=\u6821\u9A8C\u516C\u5F0F +State=\u7701\u5E02 +FR-Designer-Widget-Style_Body_Background=\u4E3B\u4F53\u80CC\u666F +FR-App-Privilege_No=\u6CA1\u6709\u6743\u9650 +Please_Drag_ParaPane= +Come_True=\u5B9E\u73B0 +ISEMPTY=\u4E3A\u7A7A +Background-Texture=\u7EB9\u7406 +FR-Designer_Verify-Message=\u9519\u8BEF\u4FE1\u606F +Locked=\uFF08\u5DF2\u9501\u5B9A\uFF09 +Utils-Design-Action_Cancel=\u53D6\u6D88 +Image-Titled=\u5E73\u94FA +Gradient-Direction=\u6E10\u53D8\u65B9\u5411 +Green=\u9752\u7EFF +Report_Engine=\u62A5\u8868\u5F15\u64CE +Return-String=\u8FD4\u56DE\u5B57\u7B26\u4E32 +Margin=\u8FB9\u8DDD +Pitch_Percentage=\u95F4\u8DDD\u767E\u5206\u6BD4 +FR-Base_TurnOff=\u5173\u95ED +Utils-has_been_existed=\u5DF2\u5B58\u5728 +HF-Insert_Formula=\u63D2\u5165\u516C\u5F0F +Utils-Exit_Designer=\u9000\u51FA\u8BBE\u8BA1\u5668 +Formula_Dictionary_Display=\u5BF9\u4E8E\u4E0A\u9762\u5B9E\u9645\u503C\u8303\u56F4\u5185\u7684\u6BCF\u4E2A\u503C($$$)\uFF0C\u5176\u663E\u793A\u503C\u4E3A +PageSetup-Left_to_right=\u5148\u884C\u540E\u5217 +Utils-Import_Excel_Data=\u5BFC\u5165[Excel] +M-Save=\u4FDD\u5B58 +redo=\u91CD\u505A +Status=\u72B6\u6001 +Draw=\u7ED8\u5236 +FR-Designer_Message=\u4FE1\u606F +Records=\u6761\u8BB0\u5F55 +FR-Designer_ComboBox=\u4E0B\u62C9\u6846 +Driver=\u9A71\u52A8\u5668 +Template_Parameters=\u6A21\u677F\u53C2\u6570 +Form-Remove_Repeat_Data=\u53BB\u9664\u91CD\u590D\u6570\u636E +ECP_decode=\u6A21\u677F\u89E3\u5BC6 +Area_Name=\u533A\u57DF\u540D +Others=\u5176\u5B83 +Merge=\u5408\u5E76 +BackgroundTexture-Parchment=\u7F8A\u76AE\u7EB8 +BindColumn-Bottom_N=\u540EN\u4E2A +Frame=\u6846\u67B6 +Bottom_Border_Line=\u4E0B\u6846\u7EBF +Muiti_In=\u591A\u5C42\u94BB\u53D6 +FR-Designer-Dependence_Install_Online=\u5728\u7EBF\u5B89\u88C5\u4F9D\u8D56\u73AF\u5883 +Use_Default_ToolBar=\u4F7F\u7528\u9ED8\u8BA4\u5DE5\u5177\u680F +M_Server-Platform_Manager=\u62A5\u8868\u5E73\u53F0\u7BA1\u7406 +PageSetup-inches=\u82F1\u5BF8 +Form-Widget_Property=\u5C5E\u6027\u540D +FR-Layout_Padding=\u5185\u8FB9\u8DDD +Schema=\u4E3B\u9898 +Server_Path=\u4E3B\u673A\u4F4D\u7F6E +Condition_Display=\u6761\u4EF6\u663E\u793A +FR-Server-Design_template_unopened=\u65E0\u6CD5\u6253\u5F00\u6A21\u7248 +Function-Function_Class_Name=\u51FD\u6570\u7C7B\u540D +Schedule-Template=\u6A21\u677F\u540D\u79F0 +Tree_Data_Field=\u6811\u6570\u636E\u5B57\u6BB5 +Border-Style-Normal=\u76F4\u89D2\u8FB9\u6846 +Top_And_Double_Bottom_Border_Line=\u4E0A\u6846\u7EBF\u548C\u53CC\u4E0B\u6846\u7EBF +FR-Server_Embedded_Server_Start=\u5167\u7F6E\u7684\u670D\u52A1\u5668-\u6253\u5F00 +FR-Designer-Basic_Restart_Designer_Later=\u7A0D\u540E\u91CD\u542F +StyleAlignment-Top=\u9760\u4E0A +ReportServerP-First=\u9996\u9875 +Not_Exist=\u4E0D\u5B58\u5728 +FR-Remote_File_is_Locked=\u60A8\u6240\u8981\u6253\u5F00\u7684\u62A5\u8868\u6B63\u5728\u88AB\u5176\u4ED6\u4EBA\u7F16\u8F91\uFF0C\u8BF7\u7A0D\u5019\u6253\u5F00 +Apply=\u5E94\u7528 +Sytle-Indentation=\u7F29\u8FDB +Parameter-Float=\u5355\u7CBE\u5EA6\u578B +HF-Center_Section=\u4E2D\u95F4\u533A\u57DF +Form-Double_quotes=\u53CC\u5F15\u53F7 +M_File-Export-Word=Word\u683C\u5F0F +M_File-Export-Text=\u6587\u672C\u6587\u4EF6(\u5236\u8868\u7B26\u5206\u9694) +PageSetup-First_Page_Number=\u8D77\u59CB\u9875\u7801 +Execute=\u6267\u884C +Task=\u4EFB\u52A1 +Custom_Button_Type_Submit=\u63D0\u4EA4 +FR-Designer-Widget_Settings=\u63A7\u4EF6\u8BBE\u7F6E +IS_Need_Password=\u9700\u8981\u5BC6\u7801 +PageSetup-Horizontally=\u6C34\u5E73\u5C45\u4E2D +No_Editor_Property_Definition=\u8BE5\u7F16\u8F91\u5668\u6CA1\u6709\u5C5E\u6027\u5B9A\u4E49 +Env-Remote_Server=\u8FDC\u7A0B\u670D\u52A1\u5668 +FR-Utils_Background=\u80CC\u666F +FR-Designer-Plugin_Warning=\u8B66\u544A +Server-version-info=\u60A8\u5F53\u524D\u6253\u5F00\u7684\u6A21\u677F\u6587\u4EF6\u662F\u7531\u66F4\u9AD8\u7248\u672C\u7684\u8BBE\u8BA1\u5668\u5236\u4F5C\u7684\uFF0C\u6253\u5F00\u4F1A\u6709\u51FA\u9519\u6216\u8005\u4E22\u5931\u539F\u6709\u6A21\u677F\u5C5E\u6027\u7684\u98CE\u9669\u3002 \u5047\u5982\u9700\u8981\u6253\u5F00\u6B64\u6A21\u677F\u8BF7\u60A8\u5C06\u60A8\u7684\u8BBE\u8BA1\u5668\u5347\u7EA7\u81F3 +CellWrite-Page_After_Row=\u884C\u540E\u5206\u9875 +HF-Right_Section=\u53F3\u533A\u57DF +PageSetup-Title_Start_Row=\u91CD\u590D\u6807\u9898\u884C +From=\u4ECE\u7B2C +Preference-Grid_Line_Color=\u7F51\u683C\u7EBF\u989C\u8272 +RowTo=\u884C\u81F3\u7B2C +FR-Designer_ReportColumns-Repeat_Column=\u590D\u5236\u5217\u5E8F\u5217 +M_Server-Function_Manager=\u51FD\u6570\u7BA1\u7406\u5668 +KeyWord=\u5173\u952E\u5B57 +DS-Multi_Dimensional_Database=\u591A\u7EF4\u6570\u636E\u5E93 +BiasD-Slope_Line=\u659C\u7EBF +Tue=\u4E8C +ReportServerP-Last=\u672B\u9875 +FR-Base_Columns=\u5217 +SpecifiedG-Leave_in_their_own_groups=\u7559\u5728\u5404\u81EA\u7684\u7EC4\u5185 +LOG-Please_Wait=\u8BF7\u7A0D\u5019 +Form-ToolBar=\u8868\u5355\u5DE5\u5177\u680F +FR-Base_sure_remove_item=\u4F60\u786E\u5B9E\u51B3\u5B9A\u5220\u9664\u9009\u4E2D\u7684\u9879 +Component_Scale=\u7EC4\u4EF6\u7F29\u653E +Hyperlink-Use_CJK_to_encode_parameter=\u4F7F\u7528CJK\u5904\u7406\u53C2\u6570 +LOG-Has_Been_Openned=\u5DF2\u7ECF\u6253\u5F00 +FR-Designer-Dependence=\u4F9D\u8D56\u73AF\u5883 +ECP_error_pwd=\u5BC6\u7801\u9519\u8BEF +REPORTLET=\u8BBF\u95EE\u6A21\u677F\u7684\u8DEF\u5F84\u7684\u53C2\u6570\u3002 +RWA-Column_Offset=\u5217\u504F\u79FB +Forecast=\u9884\u6D4B +Light_Orange=\u6D45\u6A58\u9EC4 +StyleAlignment-Vertical=\u5782\u76F4\u5BF9\u9F50 +Form-List=\u5217\u8868 +ParameterD-Show_Parameter_Window=\u663E\u793A\u53C2\u6570\u7A97\u4F53 +FR-Designer_Set_Submit_Event=\u8BBE\u7F6E\u63D0\u4EA4\u4E8B\u4EF6 +Value_Percent=\u503C\u6240\u5360\u6BD4\u4F8B +DBCP_MIN_EVICTABLE_IDLE_TIMEMILLIS=\u4FDD\u6301\u7A7A\u95F2\u6700\u5C0F\u65F6\u95F4\u503C +Function-The_class_must_be_located_in=\u8BE5\u7C7B\u5FC5\u987B\u653E\u7F6E\u5728 +FR-Action_Sort=\u6392\u5E8F +DataFunction-Average=\u5E73\u5747 +FR-Designer_Show_in_Containing_Folder=\u6253\u5F00\u6240\u5728\u6587\u4EF6\u5939 +M_File-Export-Excel=Excel\u683C\u5F0F +DataFunction-Max=\u6700\u5927\u503C +FR-Designer_Form-Widget_Name=\u63A7\u4EF6\u540D +FS_End_Date=\u7ED3\u675F\u65E5\u671F +Export-Excel-Simple=\u539F\u6837\u5BFC\u51FA +ColumnTo=\u5217\u81F3\u7B2C +SpecifiedG-Discard_all_others=\u4E22\u5F03\u5176\u5B83\u6240\u6709\u7684 +DS-TableData=\u6570\u636E\u96C6 +Form-DataTable=\u6570\u636E\u8868 +Sub_Report_ToolTips=\u5B50\u62A5\u8868\u63D0\u793A +Right_Top=\u53F3\u4E0A +M_Edit-Merge_Cell=\u5408\u5E76\u5355\u5143\u683C +FR-Designer_Restore_Default=\u6062\u590D\u9ED8\u8BA4 +Component_Interval=\u7EC4\u4EF6\u95F4\u9694 +Cover_None=\u5168\u4E0D\u8986\u76D6 +Datasource-From_Database=\u6570\u636E\u5E93\u8868 +Folder=\u76EE\u5F55 +Form-Allow_Edit=\u5141\u8BB8\u76F4\u63A5\u7F16\u8F91 +M_Edit-Clear=\u6E05\u9664(A) +ParentCell_Setting=\u7236\u683C\u8BBE\u7F6E +Only_selected_cell_can_paste_only=\u53EA\u6709\u9009\u4E2D\u5355\u5143\u683C\u65F6\u624D\u53EF\u4EE5\u7C98\u8D34 +M_Report-Report_Columns=\u62A5\u8868\u5206\u680F +Unit_Hundred=\u767E +FR-Designer_DataTable-Build=\u6781\u901F\u5206\u5C42\u6784\u5EFA +Widget-Form_Widget_Config=\u8868\u5355\u63A7\u4EF6 +Server-version-tip-moreInfo=\u5EFA\u8BAE\u60A8\u6240\u5C5E\u56E2\u961F\u4F7F\u7528\u7684\u6211\u65B9FineReport\u4EA7\u54C1\u7684\u8BBE\u8BA1\u5668\u7248\u672C\u53F7\u4EE5\u53CA\u90E8\u7F72\u7684\u670D\u52A1\u5668\u7248\u672C\u53F7\u4FDD\u6301\u4E00\u81F4\uFF0C\u4EE5\u907F\u514D\u7248\u672C\u4E0D\u4E00\u81F4\u9020\u6210\u7684\u95EE\u9898\u98CE\u9669\u3002\n\u5047\u5982\u60A8\u6253\u5F00\u66F4\u9AD8\u8BBE\u8BA1\u5668\u7248\u672C\u5236\u4F5C\u7684\u6A21\u677F\uFF0C\u53EF\u80FD\u6253\u5F00\u51FA\u9519\uFF0C\u4E5F\u53EF\u80FD\u4E22\u5931\u539F\u6709\u6A21\u677F\u5C5E\u6027\u3002\u5047\u5982\u60A8\u5236\u4F5C\u7684\u6A21\u677F\u4F7F\u7528\u7684\u8BBE\u8BA1\u5668\u7248\u672C\u9AD8\u4E8E\u60A8\u6700\u7EC8\u90E8\u7F72\u6240\u7528\u7684\u670D\u52A1\u5668\u7248\u672C\uFF0C\u670D\u52A1\u5668\u53EF\u80FD\u65E0\u6CD5\u6B63\u5E38\u8F7D\u5165\u60A8\u5236\u4F5C\u7684\u6A21\u677F\u3002 +Actions=\u4EFB\u52A1 +FR-Designer-Dependence_Connect_Server_Error=\u65E0\u6CD5\u8FDE\u63A5\u670D\u52A1\u5668\uFF0C\u8BF7\u7A0D\u540E\u518D\u8BD5 +High=\u9AD8 +HJS-Send_Failed=\u53D1\u9001\u5931\u8D25 +HJS-Message=\u5185\u5BB9 +File-Allow_Upload_Files=\u5141\u8BB8\u4E0A\u4F20\u6587\u4EF6\u7C7B\u578B +FR-Designer-Form-ToolBar_Chart=\u56FE\u8868 +Thick_Bottom_Border_Line=\u7C97\u5E95\u6846\u7EBF +FR-Action_Remove=\u5220\u9664 +FRFont-Style=\u5B57\u5F62 +Select_DataColumn=\u9009\u62E9\u6570\u636E\u5217 +StartValue=\u5F00\u59CB\u503C +SINGLE_FILE_UPLOAD=\u53EA\u652F\u6301\u5355\u6587\u4EF6\u4E0A\u4F20 +BackgroundTexture-Cork=\u8F6F\u6728\u585E +M_Format-Data_Map=\u6570\u636E\u5B57\u5178 +FR-mobile_native_analysis=\u539F\u751F\u89E3\u6790 +HighLight=\u9AD8\u5149 +FR-Designer_Dropdown-More-Preview=\u4E0B\u62C9\u83B7\u53D6\u66F4\u591A\u9884\u89C8\u65B9\u5F0F +local=\u672C\u5730 +FR-Designer_Gradation=\u5C42\u6B21 +PageSetup-Finis_Start_Column=\u91CD\u590D\u7ED3\u5C3E\u5217 +Env-Invalid_User_and_Password=\u975E\u6CD5\u7684\u7528\u6237\u540D\u6216\u5BC6\u7801 +FR-Designer-Plugin_All_Plugins=\u5168\u90E8\u63D2\u4EF6 +FR-Designer_Prepare_Export=\u5F00\u59CB\u5BFC\u51FA\uFF0C\u8BF7\u7A0D\u5019 +DBCP_TEST_ON_RETURN=\u5F52\u8FD8\u8FDE\u63A5\u524D\u68C0\u9A8C +no-alternatives=\u6CA1\u6709\u9009\u62E9\u9879 +FR-Designer_Submmit_WClass=\u540E\u53F0\u7C7B\u63D0\u4EA4 +M_Insert-Slope_Line=\u63D2\u5165\u659C\u7EBF +FR-Designer-Plugin_Plugin_Description=\u63D2\u4EF6\u63CF\u8FF0 +ExpandD-Not_Expand=\u4E0D\u6269\u5C55 +Utils-Bottom_to_Top=\u4ECE\u4E0B\u5230\u4E0A +Collect-Click\!_Get_user_information_code=\u70B9\u51FB\!\u83B7\u53D6\u6FC0\u6D3B\u7801 +FR-Already_exist=\u5F53\u524D\u73AF\u5883\u5DF2\u5B58\u5728\: +Send=\u53D1\u9001 +M_Edit-Clear_All=\u5168\u90E8(A) +Brown_Orange=\u68D5\u9EC4 +PageSetup-Portrait=\u7EB5\u5411 +FR-Designer_Form-RadioGroup=\u5355\u9009\u6309\u94AE\u7EC4 +FR-Utils-App_AllFiles=\u6240\u6709\u6587\u4EF6 +Popup=\u5F39\u51FA +Server_Charset=\u670D\u52A1\u5668\u7F16\u7801 +CellWrite-Repeat_Content_When_Paging=\u5206\u9875\u65AD\u5F00\u65F6\u503C\u91CD\u590D\u663E\u793A +Utils-No_Pagination=\u4E0D\u5206\u9875 +Form-NullLayout=\u7EDD\u5BF9\u5B9A\u4F4D +ConditionB-Remove_bracket=\u53BB\u6389\u62EC\u53F7 +email=\u90AE\u7BB1 +Minute=\u5206\u949F +FR-Designer-Plugin_Update=\u63D2\u4EF6\u66F4\u65B0 +alraedy_close=\u5DF2\u7ECF\u5173\u95ED +ComboCheckBox-End_Symbol=\u7ED3\u675F\u7B26 +DataColumn=\u6570\u636E\u5217 +Form-Password=\u5BC6\u7801 +FR-Background_Image_Adjust=\u9002\u5E94 +Export-Excel-PageToSheet=\u5206\u9875\u5206Sheet\u5BFC\u51FA +Edit-Row_Count=\u884C\u6570 +DS-Report_TableData=\u6A21\u677F\u6570\u636E\u96C6 +Sche-Hour=\u65F6 +Group_Count=\u8868\u793A\u603B\u4E2A\u6570 +EndValue=\u7ED3\u675F\u503C +FR-Designer_Sytle-Indentation=\u7F29\u8FDB +DownBarBorderStyleAndColor=\u8DCC\u67F1\u6837\u5F0F +World=\u4E16\u754C +FR-Designer-Basic_Cancel=\u53D6\u6D88 +Finally=\u6700\u540E +Low=\u4F4E +Please_Input_The_Key=\u8BF7\u8F93\u5165\u5BF9\u5E94\u5730\u56FE\u4F7F\u7528\u7684key +Smart=\u667A\u80FD +Preference-Predefined=\u9884\u5B9A\u4E49 +Current_custom_global=\u5F53\u524D\u62A5\u8868\u6240\u7528\u81EA\u5B9A\u4E49\u5168\u5C40\u6837\u5F0F +FR-Designer-Plugin_Shop_Need_Install=\u60A8\u8FD8\u6CA1\u6709\u63D2\u4EF6\u5546\u5E97\u7684\u8D44\u6E90,\u662F\u5426\u4E0B\u8F7D? +WEB-Pagination_Setting=\u5206\u9875\u9884\u89C8\u8BBE\u7F6E +RCodeDrawPix=\u50CF\u7D20 +FR-Designer-Widget-Style_Alpha=\u4E0D\u900F\u660E\u5EA6 +BorderLayout-North=\u5317 +HJS-Current_Page=\u5F53\u524D\u9875 +Compile=\u7F16\u8BD1 +Show_Blank_Row=\u8865\u5145\u7A7A\u767D\u884C +TableData_Dynamic_Parameter_Setting=\u52A8\u6001\u53C2\u6570\u6CE8\u5165 +FR-Background_Image_Default=\u9ED8\u8BA4 +BackgroundTexture-WhiteMarble=\u767D\u8272\u5927\u7406\u77F3 +DataFunction-Sum=\u6C42\u548C +Collect-The_user_information_code_is_invalid=\u8FD9\u4E2A\u6FC0\u6D3B\u7801\u662F\u65E0\u6548\u7684, \u8BF7\u5230\u5B98\u7F51\u7533\u8BF7 +Preference-Locale=\u56FD\u9645\u5316 +M_File-Export-PDF=PDF\u683C\u5F0F +BiasD-From-lower_left_to_upper_right=\u4ECE\u5DE6\u4E0B\u5230\u53F3\u4E0A\u53D1\u6563 +Border-Style=\u8FB9\u6846\u6837\u5F0F +Sort=\u6392\u5E8F +Image-Image_Layout=\u56FE\u7247\u5E03\u5C40 +Panel=\u9762\u677F +FR-Designer-Basic_Copy_Build_NO_OK=\u6784\u5EFA\u7248\u672C\u53F7\u5DF2\u7ECF\u590D\u5236\u5230\u526A\u8D34\u677F +All_Border_Line=\u6240\u6709\u6846\u7EBF +FR-Utils-Please_Input_a_New_Name=\u8BF7\u8F93\u5165\u65B0\u7684\u540D\u5B57 +FR-Base_Formula_Plugin=\u63D2\u4EF6\u51FD\u6570 +Two_Rows_Of_Three_Grid=\u4E24\u884C\u4E09\u5217\u7684\u683C\u5B50 +FR-Designer_Certificate_Pass=https\u79D8\u94A5 +Bubble-Series_Name=\u7CFB\u5217\u540D +M-New_Multi_Report=\u65B0\u5EFA\u805A\u5408\u62A5\u8868(M) +BackgroundTexture-PinkTissuePaper=\u7C89\u8272\u7802\u7EB8 +Preference-Support_Default_Parent_Calculate=\u9ED8\u8BA4\u7236\u683C\u8BA1\u7B97 +Show_Blank_Column=\u8865\u5145\u7A7A\u767D\u5217 +BaiduMap=\u767E\u5EA6\u5730\u56FE +Report-Web_Attributes=\u6A21\u677FWeb\u5C5E\u6027 +FR-Designer_StyleAlignment-Wrap_Text=\u81EA\u52A8\u6362\u884C +Need=\u9700\u8981 +Parameter-Double=\u53CC\u7CBE\u5EA6\u578B +Config_Servlet=\u914D\u7F6E\u8FDC\u7A0B\u670D\u52A1\u5668 +Form-Comma=\u9017\u53F7 +Verify=\u6821\u9A8C +PageSetup-Landscape=\u6A2A\u5411 +Weeks=\u4E2A\u661F\u671F +FR-Designer-Widget-Style_Title_Background=\u6807\u9898\u80CC\u666F +Preference-Pagination_Line_Color=\u5206\u9875\u7EBF\u989C\u8272 +Test_URL=\u6D4B\u8BD5\u8FDE\u63A5 +Fill_blank_Data=\u8865\u5145\u7A7A\u767D\u6570\u636E +ReportServerP-The_name_of_printer_cannot_be_null=\u6253\u5370\u673A\u7684\u540D\u5B57\u4E0D\u80FD\u4E3A\u7A7A +FR-Designer-Basic_Copy_Activation_Key=\u53CC\u51FB\u8BBE\u8BA1\u5668\u7F16\u53F7\u53EF\u590D\u5236\u5230\u526A\u8D34\u677F +Continuum=\u76F8\u90BB\u8FDE\u7EED +BackgroundTexture-MediumWood=\u6DF1\u8272\u6728\u8D28 +Datasource-Column_Index=\u5217\u5E8F\u53F7 +Function-Function_File=\u51FD\u6570\u6587\u4EF6 +Form-Component_Bounds=\u63A7\u4EF6\u8FB9\u754C +Utils-Submit=\u63D0\u4EA4 +Conditions_formula=\u6761\u4EF6\u516C\u5F0F +M_Insert-Image=\u63D2\u5165\u56FE\u7247 +FR-Designer-Plugin_Will_Be_Delete=\u63D2\u4EF6\u5C06\u88AB\u5220\u9664\uFF0C\u9700\u91CD\u542F\u8BBE\u8BA1\u5668\u53CA\u670D\u52A1\u5668\uFF0C\u670D\u52A1\u5668\u9700\u624B\u52A8\u91CD\u542F +FormulaD-Functions=\u51FD\u6570 +Mobile_Terminal=\u79FB\u52A8\u7AEF +CheckBox=\u590D\u9009\u6846 +FR-Designer-Plugin_Install=\u5B89\u88C5 +Sun=\u65E5 +FR-Designer_ToolBar_Bottom=\u5E95\u90E8\u5DE5\u5177\u680F +Widget-Width=\u63A7\u4EF6\u5BBD\u5EA6 +Series_Name=\u7CFB\u5217\u540D +Set_Row_Title_Start=\u8BBE\u7F6E\u91CD\u590D\u6807\u9898\u884C +HF-Default_Page=\u9ED8\u8BA4\u9875 +Env_Des=\u5982\u679C\u767B\u5F55\u73AF\u5883\u4E2D\u7684\u62A5\u8868\u5DE5\u7A0B\u542F\u7528\u4E86\u6743\u9650,\u7528\u6237\u540D\u548C\u5BC6\u7801\u7684\u586B\u5199\u5FC5\u987B\u5BF9\u5E94\u767B\u9646\u73AF\u5883\u7684\u7528\u6237\u548C\u5BC6\u7801\u3002 +Widget-User_Defined=\u9884\u5B9A\u4E49 +Url_location=\u7EDD\u5BF9\u8DEF\u5F84 +Disk_File=\u78C1\u76D8\u6587\u4EF6 +Inside=\u5185\u90E8 +FR-Designer_filedChosen=\u4F9D\u8D56\u7684\u5B57\u6BB5 +ServerM-Predefined_Styles=\u9884\u5B9A\u4E49\u6837\u5F0F +is_need_word_adjust=\u4E0D\u56FA\u5B9A\u884C\u9AD8\u5BFC\u51FA +Background-Null=\u6CA1\u6709\u80CC\u666F +PageSetup-Vertically=\u5782\u76F4\u5C45\u4E2D +FR-Designer_Root=\u6839\u8282\u70B9 +FR-Designer_Form-TextArea=\u6587\u672C\u57DF +ReportServerP-Import_JavaScript=\u5F15\u7528JavaScript +Form-TableTree=\u8868\u683C\u6811 +Opened=\u5DF2\u5F00\u542F +M_Edit-Delete=\u5220\u9664(D) +Widget-Form_Widget_Container=\u8868\u5355\u5BB9\u5668 +BindColumn-Summary=\u6C47\u603B +Sche-Second=\u79D2 +Server-Open_Service_Manager=\u6253\u5F00\u670D\u52A1\u7BA1\u7406\u5668 +FRFont-Effects=\u7279\u6B8A\u6548\u679C +OtherGroup_Name=\u5176\u4ED6\u7EC4\u7684\u540D\u5B57 +Specify=\u6307\u5B9A +Highlight-Click_to_Choose_Property_To_Modify=\u70B9\u51FB\u9009\u62E9\u8981\u6539\u53D8\u7684\u5C5E\u6027 +triggered=\u88AB\u89E6\u53D1 +Double_Bottom_BorderLine=\u53CC\u5E95\u6846\u7EBF +M_Insert-Sub_Report=\u63D2\u5165\u5B50\u62A5\u8868 +Unit_Ten=\u5341 +Polybolck=\u805A\u5408\u5757 +Select_sort_order=\u9009\u62E9\u6392\u5217\u987A\u5E8F +HJS-Mail_to=\u6536\u4EF6\u4EBA +StyleAlignment-Left=\u9760\u5DE6 +Two_Rows_Of_Two_Grid=\u4E24\u884C\u4E24\u5217\u7684\u683C\u5B50 +FR-Designer-Form-Please_Drag_ParaPane=\u8BF7\u62D6\u5165\u53C2\u6570\u9762\u677F +Milliseconds=\u6BEB\u79D2 +DataFunction-None=\u65E0 +Delivery=\u4F20\u9012 +ColumnSpan=\u5217\u8DE8\u5EA6 +StyleAlignment-Bottom=\u9760\u4E0B +Read_failure=\u8BFB\u53D6\u5931\u8D25\uFF0C\u53EF\u80FD\u6E90\u6587\u4EF6\u5DF2\u635F\u574F +Verify-Verify=\u6570\u636E\u6821\u9A8C +FR-Designer-Widget-Style_Title_Format=\u6807\u9898\u683C\u5F0F +FR-Designer_Edit_String_To_Formula=\u662F\u5426\u5C06\u5B57\u7B26\u4E32\u7F16\u8F91\u4E3A\u516C\u5F0F +FR-Base_UnSignIn=\ \u672A\u767B\u5F55 +Every=\u6BCF +CellWrite-Preview_Cell_Content=\u9884\u89C8\u5355\u5143\u683C\u5185\u5BB9 +FormulaD-Data_Fields=\u6570\u636E\u9879 FR-Designer_Role=\u89D2\u8272 FR-Designer_Permissions=\u6743\u9650 FR-Designer_Form_Button=\u6309\u94AE -FR-Designer_WF_Name=\u540D\u79F0 \ No newline at end of file +FR-Designer_WF_Name=\u540D\u79F0 diff --git a/designer_base/src/com/fr/design/locale/designer_zh_TW.properties b/designer_base/src/com/fr/design/locale/designer_zh_TW.properties index d4ab849468..559c8ffd08 100644 --- a/designer_base/src/com/fr/design/locale/designer_zh_TW.properties +++ b/designer_base/src/com/fr/design/locale/designer_zh_TW.properties @@ -508,7 +508,6 @@ FR-Designer_Create_Tree=\u69CB\u5EFA\u6A39 FR-Designer_Set_Callback_Function=\u8A2D\u7F6E\u56DE\u8ABF\u51FD\u6578 FR-Designer_ConfirmDialog_Content=\u662F\u5426\u78BA\u5B9A\u522A\u9664TAB\u63A7\u4EF6 FR-Designer_ConfirmDialog_Title=FineReport 8.0 - FR-Designer_FormulaPane_Tips=\u63D0\u793A\:\u60A8\u53EF\u4EE5\u901A\u904E\u8F38\u5165B1\u4F86\u5BEB\u5165\u7B2C\u4E00\u5217\u7B2C\u4E8C\u6B04\u7684\u8CC7\u6599\u3002 FR-Designer_FormulaPane_Variables=\u8B8A\u91CF FR-Designer_FormulaPane_Formula_Description=\u516C\u5F0F\u8AAA\u660E @@ -517,13 +516,11 @@ FR-Designer_FormulaPane_Search=\u641C\u7D22 FR-Designer_Tab_carousel=Tab\u8F2A\u64AD FR-Designer_setCarousel=\u958B\u555F\u8F2A\u64AD FR-Designer_carouselInterval=\u8F2A\u64AD\u9593\u9694 - FR-Designer_ClassName_panel=\u985E\u540D FR-Designer_Description_panel=\u63CF\u8FF0 FR-Designer_Edit_panel=\u7DE8\u8F2F FR-Designer_Property_panel=\u5C6C\u6027 FR-Designer_Select_panel=\u9078\u64C7 - FR-Designer_LayoutTable_Column_Width=160 FR-Designer_Set_BG_Of_Current_Row=\u586B\u5831\u7576\u524D\u7DE8\u8F2F\u5217\u80CC\u666F\u8A2D\u5B9A FR-Designer_Unload_Check=\u672A\u63D0\u4EA4\u96E2\u958B\u63D0\u793A @@ -539,7 +536,6 @@ FR-Designer_PageSetup_Page=\u9801\u9762 FR-Designer_Custom_Job_Description=\u63CF\u8FF0 FR-Designer_Property=\u5C6C\u6027 FR-Designer_ClassName=\u985E\u540D - FR-Designer_Polyblock_Edit=\u805A\u5408\u584A\u7DE8\u8F2F FR-Designer_Function_Description_Area_Text=\u8A72\u985E\u5FC5\u9808\u7E7C\u627F"com.fr.script.AbstractFunction"\u3002\u61C9\u5C07\u7DE8\u8B6F\u5F8C\u7684\u985E\u6A94\u6848\u62F7\u8C9D\u5230\nJ2EE\u4F3A\u670D\u5668 "{R1}" \u76EE\u9304\uFF0C\u5982\u679C\u5FC5\u8981\u7684\u8A71\u5C07class\u5C0D\u61C9\u7684java\u539F\u59CB\u6A94\u6848\u4E5F\u653E\u7F6E\u5230\u8A72\u76EE\u9304\u4E0B\u65B9\u4FBF\u7DE8\u8F2F\u548C\u67E5\u770B\u3002\n\u4F8B\u5982\uFF1A{R2} FR-Designer_PageSetup_Horizontal=\u6A2A\u5411 @@ -600,7 +596,1394 @@ 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) +Page_Setup=\u9801\u9762\u8A2D\u5B9A +CellWrite-Print_Export=\u5217\u5370\u532F\u51FA +Cannot_Get_Date=\u4E0D\u80FD\u7372\u53D6\u65E5\u671F +FR-Designer_Modify=\u4FEE\u6539 +M-Write_Preview=\u586B\u5831\u9810\u89BD +FR-Base_RWA-Key=\u4E3B\u9375 +China=\u4E2D\u570B +Set_Legend_Sytle=\u8A2D\u5B9A\u5716\u4F8B\u683C\u5F0F +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=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=\u5217\u5F0F\u5F15\u64CE\u9069\u7528\u65BC\u5927\u8CC7\u6599\u91CF\u60C5\u5F62\u4E0B\u3002
\u4F7F\u7528\u6B64\u5F15\u64CE\u5F88\u591A\u5831\u8868\u7279\u6027\u5C07\u4E0D\u518D\u652F\u6301\uFF0C
\u8A73\u7D30\u5167\u5BB9\u8ACB\u898B\u76F8\u95DC\u6587\u6A94\u3002 +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 +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=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=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 +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=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=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 +PageSetup-Footer=\u9801\u5C3E +Sorting=\u6392\u5E8F\u4E2D +DBCP_TEST_WHILE_IDLE=\u958B\u555F\u7A7A\u9591\u56DE\u6536\u5668\u6AA2\u9A57 +DS-Embedded_TableData=\u5167\u7F6E\u8CC7\u6599\u96C6 +FR-Designer_No-Privilege=\u6C92\u6709\u6B0A\u9650 +FRFont-Subscript=\u4E0B\u6A19 +Background_Settings=\u80CC\u666F\u8A2D\u5B9A +FormulaD-Invalid_Formula=\u975E\u6CD5\u7684\u516C\u5F0F +FR-Base_Margin=\u908A\u8DDD +FR-Designer-Plugin_Shop_Installed=\u63D2\u4EF6\u5546\u5E97\u5B89\u88DD\u5B8C\u7562,\u662F\u5426\u7ACB\u523B\u555F\u52D5? +M_Edit-Send_to_Back=\u7F6E\u65BC\u5E95\u5C64(K) +Email-Can_Preview_Report_Content=\u6B63\u6587\u9810\u89BD\u5831\u8868\u5167\u5BB9 +FR-Designer-FRFont_Italic=\u659C\u9AD4 +CellWrite-Print_Background=\u5217\u5370/\u532F\u51FA\u5132\u5B58\u683C\u80CC\u666F +Wizard=\u56AE\u5C0E +Preference-Is_Drag_Permited=\u652F\u6301\u62D6\u62FD +FR-Designer_Release_Lock=\u89E3\u9396 +Form-Delimiter=\u5206\u9694\u7B26 +wrong=\u51FA\u932F\u4E86 +FR-Menu-Server_Chart_PreStyle=\u9810\u5B9A\u7FA9\u5716\u8868 +Form-Button=\u6309\u9215 +FormulaD-Valid_Formula=\u5408\u6CD5\u7684\u516C\u5F0F +ParameterD-Parameter_Interface=\u53C3\u6578\u754C\u9762 +At_least_one_visual_worksheet=\u5DE5\u4F5C\u7C3F\u4E2D\u81F3\u5C11\u8981\u6709\u4E00\u5F35\u53EF\u8996\u5316\u5DE5\u4F5C\u8868,\u5982\u679C\u60F3\u8981\u522A\u9664\uFF0C\u8ACB\u5148\u63D2\u5165\u4E00\u5F35\u65B0\u5DE5\u4F5C\u8868 +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= +Sort-Sort_Order=\u6392\u5217\u9806\u5E8F +File-File_Size_Limit=\u6A94\u6848\u5927\u5C0F\u9650\u5236 +PrintP-Print=\u5217\u5370(T) +FR-Designer-StyleAlignment_Center=\u7F6E\u4E2D +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=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\u6301\u9060\u7A0B\u8A2D\u8A08\u529F\u80FD\uFF0C\u8ACB\u5347\u7D1A\u60A8\u7684lic +InterfaceStyle=\u98A8\u683C +RWA-Key=\u4E3B\u9375 +WF-Name=\u540D\u7A31 +RWA-Click_Cell_To_Edit_Value=\u55AE\u64CA\u6A21\u677F\u5132\u5B58\u683C\u4FEE\u6539\u503C +Utils-Row_Height=\u5217\u9AD8 +ReportD-Excel_Export=\u5831\u8868\u532F\u51FA\u5C6C\u6027 +Form-Please_Select_A_Kind_Of_Form_Container=\u8ACB\u9078\u64C7\u4E00\u7A2E\u8868\u55AE\u5BB9\u5668 +Column_Does_Not_Exsit=\u6B04\u4E0D\u5B58\u5728 +M_Insert-Hyperlink=\u8D85\u7D1A\u93C8\u63A5 +can_not_include_underline=\u4E0D\u80FD\u5305\u542B"_" +FR-Designer-Plugin_Jar_Expired=Jar\u5305\u904E\u820A +FR-Background_Image_Extend=\u62C9\u4F38 +TopDownShade=\u4E0A\u4E0B\u6F38\u8B8A +FR-Base_Right=\u53F3 +DataBinding=\u8CC7\u6599\u7D81\u5B9A +ConnectionPool_Attr=\u9023\u63A5\u6C60\u5C6C\u6027 +Connect_SQL_Cannot_Null=\u8CC7\u6599\u9023\u63A5\u548CSQL\u9762\u677F\u4E0D\u80FD\u70BA\u7A7A +DBCP_MAX_ACTIVE=\u6700\u5927\u6D3B\u52D5\u9023\u63A5\u6578 +M_Window-Preference=\u9078\u9805 +ToolBar_Top=\u9802\u90E8\u5DE5\u5177\u6B04 +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=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 +ShowAsDownload=\u7528\u4E0B\u8F09\u93C8\u63A5\u986F\u793A\u4E8C\u9032\u5236\u5167\u5BB9 +Form-ComboCheckBox=\u4E0B\u62C9\u8907\u9078\u6846 +BackgroundTexture-WovenMat=\u7DE8\u7E54\u7269 +BindColumn-Custom_Data_Appearance=\u81EA\u5B9A\u7FA9\u986F\u793A +Actived=\u6D3B\u52D5\u7684 +Env-Local_Directory=\u672C\u6A5F\u76EE\u9304 +Form-Colon=\u5192\u865F +Preference-Vertical_Scroll_Bar_Visible=\u8C4E\u76F4\u6EFE\u52D5\u689D\u53EF\u898B +Utils-Show_Cell_Value=\u986F\u793A\u5132\u5B58\u683C\u503C +FR-Designer_ReportColumns-Repeat_Row=\u8907\u88FD\u5217\u5E8F\u6B04 +SpecifiedG-Specified_Group=\u81EA\u5B9A\u7FA9\u5206\u7D44 +RWA-Smart_Add_Cells=\u667A\u80FD\u65B0\u589E\u5132\u5B58\u683C +HF-Left_Section=\u5DE6\u5340\u57DF +M_Report-Report_Background=\u5831\u8868\u80CC\u666F +Image-Extend=\u62C9\u4F38 +FS_BI=\u6C7A\u7B56\u5E73\u81FA +ToolBar_Bottom=\u5E95\u90E8\u5DE5\u5177\u6B04 +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=Illegal plugin zip +RCodeVersion=\u7248\u672C +Convert=\u8F49\u63DB +Please_Drag=\u8ACB\u62D6\u5165\u5217\u6B04\u6B04\u4F4D\u3001\u532F\u7E3D\u6B04\u4F4D +FR-Designer-Widget-Style_Preview=\u9810\u89BD +mobile_number=\u624B\u6A5F\u865F\u78BC +FR-Designer_Form-ComboCheckBox=\u4E0B\u62C9\u8907\u9078\u6846 +CacheValidateTime=\u5831\u8868\u7DE9\u5B58\u6709\u6548\u6642\u9593 +Hyperlink-Extends_Report_Parameters=\u7E7C\u627F\u5831\u8868\u7684\u53C3\u6578 +FR-Designer_Values-Editor=\u503C\u7DE8\u8F2F\u5668 +Export-Excel=Excel\u683C\u5F0F +Utils-Left_to_Right=\u6A6B\u5411 +ExpandD-Vertical_Extendable=\u7E31\u5411\u53EF\u4F38\u5C55 +Utils-Report_Runtime_Env=\u5831\u8868\u5DE5\u4F5C\u76EE\u9304 +Utils-Right_to_Left=\u5F9E\u53F3\u5230\u5DE6 +Utils-Beyond_the_top_side_of_Border=\u8D85\u51FA\u4E0A\u908A\u754C +Exception_StackTrace=\u932F\u8AA4\u7570\u5E38\u5806\u68E7\u8A0A\u606F +Corresponding_Fields=\u5C0D\u61C9\u6B04\u4F4D +Form-CheckBox=\u5FA9\u9078\u6846 +Utils-Current_Row=\u7576\u524D\u5217 +BuildIn=\u5167\u7F6E +BindColumn-Results_Filter=\u7D50\u679C\u96C6\u7BE9\u9078 +FR-Designer-Plugin_Manager=\u63D2\u4EF6\u7BA1\u7406 +M_File-Export-CSV=CSV\u683C\u5F0F(\u9017\u865F\u5206\u9694) +Data_Filter=\u8CC7\u6599\u7BE9\u9078 +ReportServerP-Edit_Printer=\u7DE8\u8F2F\u5370\u8868\u6A5F +FR-Designer_Datasource-Stored_Procedure=\u5B58\u5132\u7A0B\u5E8F +RESTART=\u91CD\u5553 +FormulaD-Function_name=\u51FD\u6578\u540D +ChooseOneButton=\u8ACB\u9078\u64C7\u4E00\u500B\u63A7\u5236\u9805\u5F8C\u518D\u65B0\u589E +Priority=\u512A\u5148\u7D1A +Datasource-Datasource=\u8CC7\u6599\u6E90 +FR-Designer_Width=\u5BEC +Cannot-Add_To_This_Area=\u7121\u6CD5\u65B0\u589E\u5230\u8A72\u5340\u57DF +Run=\u904B\u884C +Set_Submit_Condition=\u8A2D\u5B9A\u63D0\u4EA4\u689D\u4EF6 +FR-Base_Value=\u503C +fileLocked_undeleted=\u6A21\u677F\u88AB\u9396\u5B9A\uFF0C\u4E0D\u80FD\u522A\u9664\uFF01\u9EDE\u64CA\u78BA\u5B9A\uFF0C\u91CD\u65B0\u6574\u7406\u6A21\u677F\u6B04\u8868 +Web_Apply=WEB\u61C9\u7528 +Refresh_Database=\u91CD\u65B0\u6574\u7406\u8CC7\u6599\u5EAB +Set_Row_Title_End=\u8A2D\u5B9A\u91CD\u8907\u7D50\u5C3E\u5217 +FR-Utils-New_Folder=\u65B0\u589E\u8CC7\u6599\u593E +BiasD-From-upper_left_to_lower_right=\u5F9E\u5DE6\u4E0A\u5230\u53F3\u4E0B\u767C\u6563 +CapsLock=\u5927\u5BEB\u9396\u5B9A\u5DF2\u6253\u958B +StyleFormat-Sample=\u793A\u4F8B +RWA-Smart_Add_Cell_Group=\u667A\u80FD\u65B0\u589E\u5132\u5B58\u683C\u7D44 +MConfig-CancelButton=\u53D6\u6D88 +Function-Choose_Function_Class=\u9078\u64C7\u51FD\u6578\u985E +LatLng=\u7D93\u7DEF\u5EA6 +DS-Server_TableData=\u4F3A\u670D\u5668\u8CC7\u6599\u96C6 +BackgroundTexture-GreenMarble=\u7DA0\u8272\u5927\u7406\u77F3 +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=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 +FR-Designer-Widget-Style_Custom=\u81EA\u5B9A\u7FA9 +FR-Designer-Widget-Style_Render_Style=\u6E32\u67D3\u98A8\u683C +Highlight-Barcode=\u689D\u78BC +FR-Designer_Connect_SQL_Cannot_Null=\u8CC7\u6599\u9023\u63A5\u548CSQL\u9762\u677F\u4E0D\u80FD\u70BA\u7A7A +trigger=\u89F8\u767C +M-Data_Analysis=\u8CC7\u6599\u5206\u6790 +Function-The_selected_file_cannot_be_null=\u6A94\u6848\u4E0D\u80FD\u70BA\u7A7A +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=Give Name +FR-Designer_Rename=\u91CD\u547D\u540D +Utils-Merge_Cell=\u5408\u5E76\u5132\u5B58\u683C +Style-Spacing_After=\u6BB5\u5F8C +Enlarge_Or_Reduce=\u7E2E\u653E +Tree-Height=\u9AD8\u5EA6 +RCodeErrorCorrect=\u7CFE\u932F +Enter-New-FileName=\u8ACB\u8F38\u5165\u65B0\u7684\u6A94\u6848\u540D +try_resending=\u8ACB\u5617\u8A66\u91CD\u65B0\u767C\u9001 +M-Open_Report=\u958B\u555F\u820A\u6A94 +Please_Select=\u8ACB\u9078\u64C7 +InRow=\u5217(R) +Form-TextArea=\u6587\u672C\u57DF +FR-Designer_Https_Enable=\u555F\u7528https +Widget-Custom_Widget_Config=\u81EA\u5B9A\u7FA9\u63A7\u5236\u9805 +already_exists=\u5DF2\u7D93\u5B58\u5728 +Original_Marked_Filed=\u539F\u59CB\u6A19\u8A18\u6B04\u4F4D +BackgroundTexture-Sand=\u6C99\u7058 +Values=\u503C +Not_use_a_cell_attribute_table_editing=\u60A8\u4E0D\u53EF\u4EE5\u7528\u5132\u5B58\u683C\u5C6C\u6027\u8868\u7DE8\u8F2F +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=Current Shortcut +GROUPING_MODE=\u666E\u901A\u5206\u7D44 +DBCP_MAX_IDLE=\u6700\u5927\u7A7A\u9591\u9023\u63A5\u6578 +BackgroundTexture-BlueTissuePaper=\u85CD\u8272\u7802\u7D19 +ReportD-Export_Hided_Row=\u532F\u51FA\u96B1\u85CF\u5217 +FR-Custom_styles_lost=\u81EA\u5B9A\u7FA9\u6A23\u5F0F\u5DF2\u4E1F\u5931 +Env-Des2=Servlet\u4F4D\u7F6E\u662F\u4E3B\u6A5F\u540D\uFF0C\u57E0\uFF0CWEB\u61C9\u7528\uFF0CServlet\u7684\u7D44\u5408\uFF0C\u5B83\u61C9\u7576\u6307\u5411\u4E00\u500BServlet\uFF0C\u6BD4\u5982"http\://localhost\:8080/WebReport/ReportServer"\u3002\u60A8\u53EF\u4EE5\u9078\u64C7\u586B\u5BEB\u4E3B\u6A5F\u540D\uFF0C\u57E0\uFF0CWEB\u61C9\u7528\uFF0CServlet\uFF0C\u5B83\u6703\u81EA\u52D5\u751F\u6210\u60A8\u6240\u9700\u8981\u7684Servlet\u4F4D\u7F6E\u3002 +Env-Des1=\u8ACB\u9078\u64C7\u5831\u8868\u4F3A\u670D\u5668\u6240\u5728\u7684WEB-INF\u76EE\u9304 +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=Install failed +FR-Designer-Widget-Style_Frame=\u6846\u67B6 +MainGraduationUnit=\u4E3B\u8981\u523B\u5EA6\u55AE\u4F4D +Second_Axis=\u6B21\u5750\u6A19\u8EF8 +Classifier-Ge=\u500B +MSBold=\u5FAE\u8EDF\u96C5\u9ED1 +Form-Design_Size=\u8A2D\u8A08\u5C3A\u5BF8 +FR-App-Template_Save=\u5132\u5B58 +ExpandD-Horizontal_Extendable=\u6A6B\u5411\u53EF\u4F38\u5C55 +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= +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\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 +FR-Designer_DisplayNothingBeforeQuery=\u9EDE\u6483\u67E5\u8A62\u524D\u4E15\u986F\u793A\u68CA\u4ED6\u5167\u84C9 +Still=\u4ECD\u7136 +JS_WARNING2=\ \u4F8B\uFF1Ahttp\://localhost\:8075/WebReport/demo.js +JS_WARNING1=\ \u76F8\u5C0D\u5831\u8868\u5DE5\u7A0B\u76EE\u9304\u5982WebReport,\u5982WebReport\\js\u4E0B\u6709\u5F15\u7528\u7684js\u6A94\u6848test.js\uFF0C\u5247\u76F8\u5C0D\u8DEF\u5F91\u70BAjs/test.js +Connectionline=\u9023\u7DDA\u6A21\u5F0F +Utils-Insert_Record=\u63D2\u5165\u8A18\u9304 +Set-Parameter-Name=\u8ACB\u5148\u8A2D\u5B9A\u53C3\u6578\u540D +More-information=\u66F4\u591A\u8A0A\u606F +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\u93C8\u63A5\u56DE\u6536\u6AA2\u67E5\u6578 +FR-Designer-FRFont_Family=\u540D\u5B57 +Device=\u8A2D\u5099 +M_Insert-Cell=\u5132\u5B58\u683C\u5143\u7D20 +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\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 +Pointer-A-Tick-Order=\u6307\u91DD\u503C\u53CA\u523B\u5EA6\u503C\u6578\u91CF\u7D1A +Pink=\u7C89\u7D05 +StyleAlignment-Distibuted=\u5206\u6563\u5C0D\u9F4A +Odd=\u5947\u6578 +already-saved=\u5DF2\u7D93\u5132\u5B58 +FR-Hyperlink_Chart_Cell=\u5716\u8868\u8D85\u93C8-\u806F\u52D5\u5132\u5B58\u683C +Style-Left_Indent=\u5DE6\u7E2E\u9032 +Offline=\u96E2\u7DDA +Form-Hierarchy_Tree_Next=\u4E0B\u4E00\u500B +Needle=\u6307\u91DD +GoogleMap=\u8C37\u6B4C\u5730\u5716 +Running=\u904B\u884C\u4E2D +M_Edit-Unmerge_Cell=\u53D6\u6D88\u5408\u4F75\u5132\u5B58\u683C +Out_Border_Line=\u5916\u5074\u6846\u7DDA +Style-Spacing=\u9593\u8DDD +FR-Utils_Submit=\u63D0\u4EA4 +ReportServerP-Previous=\u4E0A\u4E00\u9801 +StyleAlignment-Text_Style=\u6587\u672C\u63A7\u5236 +RelatedChart=\u5716\u8868\u806F\u52D5 +ProcessManager=\u6D41\u7A0B\u7BA1\u7406 +Cancel_Repeat_Attributes=\u53D6\u6D88\u91CD\u8907\u5217\u6B04 +FR-App-File_Message=\u8A0A\u606F +Datasource-Stored_Procedure=\u5132\u5B58\u7A0B\u5E8F +RWA-Row_Offset=\u5217\u504F\u79FB +M_Format-Style=\u6A23\u5F0F +detail_description=\u8A73\u7D30\u63CF\u8FF0 +FR-Designer-Widget-Style_Title_Content=\u6A19\u984C\u5167\u5BB9 +ParameterD-Report_Parameter=\u6A21\u7D44\u53C3\u6578 +HF-Edit_Header=\u7DE8\u8F2F\u9801\u9996 +Sytle-FRFont=\u5B57\u9AD4 +FR-Designer_Finish_Export=\u532F\u51FA\u5B8C\u7562 +MultiFileUpload=\u591A\u6A94\u6848\u4E0A\u50B3 +HF-Page_Number=\u9801\u78BC +Style-Right_Indent=\u53F3\u7E2E\u9032 +Desktop=\u684C\u9762 +FR-Server-All_Error=\u932F\u8AA4 +ConditionB-Operator=\u64CD\u4F5C +Today=\u4ECA\u5929 +Form-Widget_Name=\u63A7\u5236\u9805\u540D +Covered_All=\u5168\u90E8\u8986\u84CB +Day=\u5929 +External=\u5916\u90E8 +Black_Font=\u9ED1\u9AD4 +LOG-Report_Server_IS_Started=\u5831\u8868\u4F3A\u670D\u5668\u5DF2\u555F\u52D5 +Tips\:You_Can_Input_B1_To_Input_The_Data_Of_The_First_Row_Second_Column=\u63D0\u793A\:\u60A8\u53EF\u4EE5\u901A\u904E\u8F38\u5165B1\u4F86\u5BEB\u5165\u7B2C\u4E00\u5217\u7B2C\u4E8C\u6B04\u7684\u8CC7\u6599\u3002 +FR-Designer_ChooseOneButton=\u8ACB\u9078\u64C7\u4E00\u500B\u63A7\u5236\u9805\u5F8C\u518D\u65B0\u589E +Widget-Sizing=\u5927\u5C0F\u8ABF\u6574 +NO_Border_Line=\u7121\u6846\u7DDA +Cell_Data=\u5132\u5B58\u683C\u8CC7\u6599 +StyleAlignment-Vertical_Text=\u6587\u5B57\u8C4E\u6392 +Label=\u6A19\u7C64 +Orange=\u6854\u9EC3 +zeroMarginWarn=\u7531\u65BC\u5370\u8868\u6A5F\u5B58\u5728\u7269\u7406\u908A\u8DDD
\u5831\u8868\u7684\u9801\u908A\u8DDD\u8A2D\u5B9A\u904E\u5C0F\u53EF
\u80FD\u6703\u51FA\u73FE\u5167\u5BB9\u5217\u5370\u4E0D\u5168.
  +Widget-Date_Selector_Return_Type=\u8FD4\u56DE\u503C\u985E\u578B +Utils-Switch_To_Template_Reportlet=\u5207\u63DB\u5230\u7BC4\u672C\u7DB2\u8DEF\u5831\u8868 +satisfy=\u6EFF\u8DB3\u689D\u4EF6 +FR-Designer_WidgetDisplyPosition=\u63A7\u5236\u9805\u986F\u793A\u4F4D\u7F6E +FR-Base_Top=\u4E0A +FR-Designer_Form-CheckBox=\u5FA9\u9078\u6846 +Reportlet-Parameter_Type=\u53C3\u6578\u50B3\u905E\u65B9\u5F0F +sending=\u6B63\u5728\u767C\u9001... +FR-Designer-FRFont_Foreground=\u984F\u8272 +FR-Import-Export_SVG=SVG\u683C\u5F0F +M_Edit-Clear_Contents=\u5167\u5BB9(C) +Session=\u6703\u8A71 +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=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=Update successfully +August=\u516B\u6708 +LOG-Is_Being_Openned=\u6B63\u5728\u6253\u958B +BackgroundTexture-Oak=\u6A61\u6728 +Multi_nam_formula=\ \u8CC7\u6599\u96C6\u540D\: \u8CC7\u6599\u96C6\u689D\u4EF6\: +TurnOn=\u958B\u5553 +HJS-Send_Successfully=\u767C\u9001\u6210\u529F +Mon=\u661F\u671F\u4E00 +Inner_Parameter=Inner Parameter +Required=\u5FC5\u586B +Summary=\u532F\u7E3D +template_unopened=\u7121\u6CD5\u6253\u958B\u7BC4\u672C +FR-Base_Bottom=\u4E0B +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=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= +Schedule-Template_Parameter=\u7BC4\u672C\u53C3\u6578 +JSShow=\u52D5\u614B\u5C55\u793A +Level_coordinates=\u5C64\u6B21\u5750\u6A19 +MainGraduationLine=\u4E3B\u8981\u523B\u5EA6\u7DDA +Hyperlink-Web_link=\u7DB2\u9801\u93C8\u63A5 +StyleAlignment-between_-90_and_90=\u5728-90\u548C90\u4E4B\u9593 +FormulaD-Custom_Function=\u81EA\u5B9A\u7FA9\u51FD\u6578 +FR-Designer_Integer=\u6574\u6578 +PageSetup-Finis_Start_Row=\u91CD\u8907\u7D50\u5C3E\u5217 +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=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 +Report-Write_Attributes=\u5831\u8868\u586B\u5831\u5C6C\u6027 +Utils-Current_Column=\u7576\u524D\u6B04 +Need_Max_Value=\u9700\u8981\u6700\u5927\u503C +Report_Not_Exist=\u6240\u9078\u5831\u8868\u4E0D\u5B58\u5728\uFF01 +HF-Insert_Content=\u63D2\u5165\u5167\u5BB9 +UpParent=\u4E0A\u7236\u683C +PageSetup-Page=\u9801\u9762 +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=Activation Key\: +FR-App-Template_Report_Not_Exist=\u6240\u9078\u5831\u8868\u4E0D\u5B58\u5728 +Protected=\u4FDD\u8B77 +Skip=\u8DF3\u904E +FR-Designer_PageSetup-Vertically=\u5782\u76F4\u7F6E\u4E2D +revert=\u5FA9\u539F +PageSetup-Predefined=\u9810\u5B9A\u7FA9 +Border-Style-Radius=\u5713\u89D2\u6846\u7DDA +IntPart=\u6574\u6578\u90E8\u4EFD +ExpandD-Data_Column=\u8CC7\u6599\u6B04 +Sort-Ascending=\u5347\u51AA +FR-Designer-Widget_Style=\u6A23\u5F0F +parameter_name_exist=\u8A72\u53C3\u6578\u540D\u5DF2\u5B58\u5728 +FR-Designer_Layer-Build=\u666E\u901A\u5206\u5C64\u69CB\u5EFA +Please_Rename=\u8ACB\u91CD\u547D\u540D +Form-Editing_Listeners=\u4E8B\u4EF6\u7DE8\u8F2F +RWA-Smart_Add_Fields=\u667A\u80FD\u65B0\u589E\u6B04\u4F4D +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\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 +FR-Designer-Widget_Size=\u63A7\u5236\u9805\u5927\u5C0F +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=Installed +FR-Designer-Hyperlink_Name=\u540D\u5B57 +FR-Designer_Form-Button=\u6309\u9215 +Black=\u9ED1\u8272 +FR-Designer-Widget-Style_Border_Color=\u6846\u7DDA\u984F\u8272 +Set_Submit_Event=\u8A2D\u5B9A\u63D0\u4EA4\u4E8B\u4EF6 +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\u93C8\u63A5 +Function-Function_Manager=\u51FD\u6578\u7BA1\u7406\u5668 +Host_Name=\u4E3B\u6A5F\u540D +CellWrite-Show_As_HTML=\u7528HTML\u986F\u793A\u5167\u5BB9 +FR-Designer-Widget-Style_Shadow=\u9670\u5F71 +FR-Designer_Parameter_String=\u5B57\u5143\u4E32 +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=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 +Datasource-Original_Charset=\u539F\u59CB\u7DE8\u78BC +FR-Base_Left=\u5DE6 +ReportServerP-Next=\u4E0B\u4E00\u9801 +BindColumn-Top_N=\u524DN\u500B +Animation_Special=\u7279\u6548 +Widget-Chart_Widget_Config=\u5716\u8868\u63A7\u5236\u9805 +FR-Designer-Plugin_Cannot_Update_Not_Install=\u7121\u6CD5\u66F4\u65B0\u63D2\u4EF6\uFF0C\u8ACB\u6AA2\u67E5\u8A72\u63D2\u4EF6\u662F\u5426\u5DF2\u7D93\u6210\u529F\u5B89\u88DD +After_Changed_Some_Attributes_Are_Different=\u8F49\u63DB\u5F8C\u5831\u8868\u7684\u67D0\u4E9B\u5C6C\u6027\u6703\u767C\u751F\u6539\u8B8A\uFF0C\u662F\u5426\u7E7C\u7E8C +PieStyle=\u9905\u72C0 +HF-Are_you_sure_to_delete_it=\u4F60\u78BA\u5BE6\u60F3\u8981\u522A\u9664\u9019\u500B\u5143\u7D20\u55CE +Utils-Design-File_Open=\u958B\u555F\u820A\u6A94 +FR-Utils_Label=\u6A19\u7C3D +Data-Label=\u8CC7\u6599\u6A19\u7C64 +M_Insert-Text=\u63D2\u5165\u6587\u5B57 +Form-View_Tree=\u6AA2\u8996\u8868\u6A39 +M_Insert-Chart=\u63D2\u5165\u5716\u8868 +HF-Even_Page=\u5076\u6578\u9801 +ReportServerP-Report_server_parameter=\u5831\u8868\u4F3A\u670D\u5668\u53C3\u6578 +JavaScript-Form_Submit=\u8868\u55AE\u63D0\u4EA4 +Horizontal-Split_Layout=\u6C34\u5E73\u5206\u5272\u5E03\u5C40 +BorderLayout-Center=\u4E2D +INFO-Reset_Webapp=\u91CD\u7F6E\u61C9\u7528\u4F3A\u670D\u5668 +FR-Designer_Text=\u6587\u672C +IN_and_INOUT_type_not_as_cursor=IN\u548CINOUT\u985E\u578B\u4E0D\u53EF\u4EE5\u4F5C\u70BA\u6E38\u6A19 +Main_Axis=\u4E3B\u5750\u6A19\u8EF8 +M_Edit-Cut=\u526A\u4E0B(T) +Utils-The_Name_has_been_existed=\u6B64\u540D\u5DF2\u7D93\u5B58\u5728 +FR-Background_Image=\u5716\u7247 +Character=\u6587\u5B57 +Unit_Thousand=\u4EDF +Test=\u6E2C\u8A66 +Utils-Would_you_like_to_save=\u4F60\u662F\u5426\u9700\u8981\u5132\u5B58 +HF-Header_and_Footer=\u7709\u982D\u548C\u7709\u8173 +LIST_MODE=\u6B04\u8868 +HF-Insert_Image=\u63D2\u5165\u5716\u7247 +FR-Designer-Widget-Style_Standard=\u6A19\u51C6 +FR-Designer_Form-List=\u6B04\u8868 +BackgroundTexture-Denim=\u659C\u7D0B\u5E03 +Execute_Report_by_Layer_Engine=\u7528\u5217\u5F0F\u7684\u5F15\u64CE\u4F86\u57F7\u884C\u5831\u8868 +M_Edit-Bring_Forward=\u4E0A\u79FB\u4E00\u5C64(F) +Choose_All=\u5168\u9078 +Form-RadioGroup=\u55AE\u9078\u6309\u9215\u7D44 +FR-Base_Remove=\u522A\u9664 +FR-Remote_Connect2Server_Again=\u9023\u63A5\u4E2D\u65B7\uFF0C\u662F\u5426\u91CD\u65B0\u9023\u63A5\u4F3A\u670D\u5668? +Semicolon=\u5206\u865F +StyleFormat-Category=\u5206\u985E +Report_Template=\u5831\u8868\u7BC4\u672C +Utils-Beyond_the_right_side_of_Border=\u8D85\u51FA\u53F3\u908A\u754C +BackgroundTexture-Papyrus=\u7D19\u838E\u8349\u7D19 +LayerPageReport_PageEngine=\u4F7F\u7528\u6309\u9801\u904B\u7B97\u5206\u6BB5\u57F7\u884C\u5831\u8868 +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\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 +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 +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\u6301\u5FA9\u539F +FR-mobile_report_analysis=\u5831\u8868\u89E3\u6790 +Month=\u6708 +Utils-Column_Width=\u6B04\u5BEC +Collect-Use_Designer=\u4F7F\u7528\u8A2D\u8A08\u5668 +Widget-User_Defined_Editor=\u9810\u5B9A\u7FA9\u7DE8\u8F2F\u5668\uFF0C\u8A72\u7DE8\u8F2F\u5668\u53EA\u80FD\u5728\u5143\u4EF6\u7BA1\u7406\u83DC\u55AE\u91CC\u66F4\u6539\u5176\u5C6C\u6027 +Unit_Ten_Thousand=\u842C +Data_Setting=\u8CC7\u6599\u8A2D\u5B9A +ECP_input_pwd=\u8ACB\u8F38\u5165\u5BC6\u78BC\: +period=\u3002 +Note=\u5099\u6CE8 +Multiline=\u591A\u5217\u7DE8\u8F2F +Datasource-Convert_Charset=\u7DE8\u78BC\u8F49\u63DB +DashBoard-ConnectionList=\u8CC7\u6599\u9023\u63A5 +Utils-Submit_Forcibly=\u5F37\u884C\u63D0\u4EA4 +Parent_Marked_Field=\u7236\u6A19\u8A18\u6B04\u4F4D +Logout=\u9000\u51FA +FR-Designer_Show_Blank_Row=\u88DC\u5145\u7A7A\u767D\u5217 +FR-Base_Format=\u683C\u5F0F +FR-App-Export_png=png\u683C\u5F0F +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=\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\u5C0D\u9F4A +BackgroundTexture-PaperBag=\u7D19\u888B +RWA-BuildIn_SQL=\u5167\u7F6ESQL +SingleLayer=\u55AE\u5C64 +Or-you=\u6216\u8005\u60A8 +FR-Designer_Certificate_Path=\u8B49\u66F8\u8DEF\u5F91 +Utils-Last_Page=\u6700\u5F8C\u4E00\u9801 +BarCodeD-Drawing_Text=\u986F\u793A\u689D\u78BC\u7684\u6587\u672C +Warning-Template_Do_Not_Exsit=\u7BC4\u672C\u4E0D\u5B58\u5728 +BindColumn-Group=\u5206\u7D44 +Export-SVG=SVG\u683C\u5F0F +Plane3D=\u5E73\u97623D +SessionID=sessionID\u662F\u7576\u524D\u8A2A\u554F\u6A21\u677F\u7684\u6703\u8A71\u6A19\u8B58\u53C3\u6578\u3002 +FR-Designer_Height=\u9AD8 +HF-Odd_Page=\u5947\u6578\u9801 +About-All_Rights_Reserved=\u4FDD\u7559\u6240\u6709\u7684\u6B0A\u5229 +Utils-Current_Cell=\u7576\u524D\u683C\u5B50 +Web_Preview_Message=\u8ACB\u5C07\u6A21\u677F\u6A94\u6848\u5132\u5B58\u7576\u524D\u904B\u884C\u74B0\u5883\u76EE\u9304\u4E0B +FR-Hyperlink_Chart_Float=\u5716\u8868\u8D85\u93C8-\u806F\u52D5\u61F8\u6D6E\u5143\u7D20 +Dic-Data_Query=\u8CC7\u6599\u67E5\u8A62 +CellWrite-Print_Content=\u5217\u5370/\u532F\u51FA\u5132\u5B58\u683C\u5167\u5BB9 +Privilege-Selected_None_Of_Any_Items=\u6C92\u6709\u9078\u4E2D\u4EFB\u4F55\u4E00\u9805 +FRFont-Size=\u5927\u5C0F +Function-J2EE_server=J2EE\u4F3A\u670D\u5668 +FR-Designer_Allow_Blank=\u5141\u8A31\u70BA\u7A7A +Build_Tree_Accord_Parent_Marked_Filed=\u4F9D\u8CF4\u6240\u9078\u8CC7\u6599\u96C6\u7684\u7236\u6A19\u8A18\u6B04\u4F4D\u69CB\u5EFA\u6A39 +Preference-Horizontal_Scroll_Bar_Visible=\u6C34\u5E73\u6EFE\u52D5\u689D\u53EF\u898B +Scope=\u7BC4\u570D +Save_All_Records_In_Memory=\u6240\u6709\u8A18\u9304\u90FD\u5132\u5B58\u5728\u5167\u5B58\u4E2D +FreezeWarning1=\u521D\u59CB\u503C\u4E0D\u5927\u65BC\u5C3E\u503C +FlowLayout=\u6D41\u5F0F\u5E03\u5C40 +M_Report-Report_Footer=\u5831\u8868\u9801\u5C3E +FR-Action_Add=\u589E\u52A0 +BorderLayout-East=\u6771 +feedback_tip=\u8ACB\u8F38\u5165\u4E0D\u8D85\u904E400\u500B\u5B57\u7684\u554F\u984C\u63CF\u8FF0 +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=Plugin has been disabled +Sort-Original=\u4E0D\u6392\u5E8F +Utils-Top_to_Bottom_a=\u5F9E\u4E0A\u5F80\u4E0B +Parameter-String=\u5B57\u5143\u4E32 +InnerRadis=\u5167\u5F91\u5927\u5C0F +Want_To_Cover_It=\u662F\u5426\u60F3\u8981\u8986\u84CB\u5854 +Divided_stage=\u5283\u5206\u968E\u6BB5 +Seriously=\u56B4\u91CD +ReportServerP-PDF=PDF +Utils-Switch_To_Class_Reportlet=\u5207\u63DB\u5230\u985E\u5225\u7DB2\u8DEF\u5831\u8868 +FR-Designer_Show_Blank_Column=\u88DC\u5145\u7A7A\u767D\u6B04 +M_Edit-Redo=\u53D6\u6D88\u5FA9\u539F +Visibility=\u53EF\u898B\u6027 +Series_Use_Default=\u7CFB\u5217\u9810\u8A2D\u4F7F\u7528 +Has_Selected=\u5DF2\u7D93\u9078\u64C7 +BackgroundTexture-Walnut=\u8B77\u5957 +FormulaD-Function_category=\u51FD\u6578\u985E\u578B +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=Install successful +Template_Path=\u7BC4\u672C\u8DEF\u5F91 +FR-Designer-FRFont_Bold=\u7C97\u9AD4 +Poly_Name=\u805A\u5408\u584A\u540D +WorkBook=\u5DE5\u4F5C\u7C3F +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=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 +Cell_Group=\u5132\u5B58\u683C\u7D44 +Week=\u5468 +PageSetup-Orientation=\u65B9\u5411 +M-Open_Recent=\u958B\u555F\u6700\u8FD1\u4F7F\u7528\u6A94 +NNormal=\u6B63\u5E38 +Integer=\u6574\u6578 +Select_The_Source_To_Save=\u9078\u64C7\u8981\u5B58\u5132\u7684\u9805\u76EE +Transition=\u5206\u652F +FR-Designer_Get_Lock=\u52A0\u9396 +one_record_exists_in_many_groups=\u4E00\u500B\u8A18\u9304\u53EF\u4EE5\u5B58\u5728\u8207\u591A\u500B\u7D44\u4E2D +FR-Designer_Cover_None=\u5168\u4E0D\u8986\u84CB +DeciPart=\u5C0F\u6578\u90E8\u4EFD +ExpandD-Up_Father_Cell=\u4E0A\u7236\u683C +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\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 +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 +ComboCheckBox-Start_Symbol=\u8D77\u59CB\u7B26 +Real=\u5BE6\u969B +RWA-Batch_Modify_Cells=\u6279\u91CF\u4FEE\u6539\u5132\u5B58\u683C +FR-Designer_Build-Way=\u69CB\u5EFA\u65B9\u5F0F +Read=\u8B80\u53D6 +StyleAlignment-Degrees=\u5EA6\u6578 +M_Format_A-Border=\u6846\u7DDA(B) +Utils-Delete_Record=\u522A\u9664\u8A18\u9304 +Reload=\u91CD\u8F09 +Image-Select_Picture=\u9078\u64C7\u5716\u7247 +RWA-Submit=\u63D0\u4EA4 +the_template=\u8A72\u7BC4\u672C +FR-Designer_Component_Scale=\u5143\u4EF6\u7E2E\u653E +FRFont-italic=\u659C\u9AD4 +Year=\u5E74 +HF-Move_Right=\u53F3\u79FB +Data-Check=\u8CC7\u6599\u76E3\u63A7 +Unknown=\u672A\u77E5 +Submit_Style=\u63D0\u4EA4\u65B9\u5F0F +Left_Border_Line=\u5DE6\u6846\u7DDA +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=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 +FormulaD-Input_formula_in_the_text_area_below=\u8ACB\u5728\u4E0B\u9762\u7684\u6587\u672C\u7DE8\u8F2F\u6846\u88E1\u9762\u8F38\u5165\u516C\u5F0F +Build-Way=\u69CB\u5EFA\u65B9\u5F0F +M_Edit-Undo=\u5FA9\u539F +Line-Style=\u7DAB\u578B +Datasource-Other_Attributes=\u5176\u4ED6\u5C6C\u6027 +M_Server-Global_Parameters=\u5168\u5C40\u53C3\u6578 +Suffix=\u5F8C\u7DB4 +Image-Image_Files=\u5716\u7247\u6A94\u6848 +EditRC-Entire_row=\u6574\u5217(R) +HF-First_Page=\u9996\u9801 +BackgroundTexture-Granite=\u82B1\u5D17\u77F3 +DataList=\u8CC7\u6599\u93C8 +Recursion=\u905E\u6B78 +BarStyle=\u689D\u5F62 +FR-Designer-Min_Width=\u6700\u5C0F\u5BEC\u5EA6 +Utils-Report-Env_Directory=\u5831\u8868\u5DE5\u4F5C\u76EE\u9304 +D-ChartArea=\u5716\u8868\u5340 +Only=\u53EA +FR-Base_No=\u5426 +SpecifiedG-Put_all_others_together=\u5C07\u5176\u4ED6\u6240\u6709\u7684\u5408\u5E76 +HF-NewLine_Des=\u53EF\u4EE5\u9EDE\u64CA\u4E0A\u9762\u7684\u79FB\u52D5\u548C\u522A\u9664\u6309\u9215\u4F86\u64CD\u4F5C\u63DB\u5217\u7B26 +WLayout-Border-ThreeContainer=\u64C1\u6709\u5317\u3001\u897F\u548C\u4E2D\u4E09\u584A\u7684\u908A\u754C\u4F48\u5C40\u5BB9\u5668\uFF0C\u5176\u4E2D\u5317\u90E8\u584A\u53EF\u4EE5\u6839\u64DA\u9700\u8981\u8ABF\u6574\u9AD8\u5EA6\uFF0C\u897F\u90E8\u584A\u53EF\u4EE5\u6839\u64DA\u9700\u8981\u8ABF\u6574\u5BEC\u5EA6\u3002 +Parameter_Name=\u53C3\u6578\u540D +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=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 +long_data_can_not_show_fully=\u9577\u8CC7\u6599\u986F\u793A\u4E0D\u5168 +Utils-Beyond_the_bottom_side_of_Border=\u8D85\u51FA\u4E0B\u908A\u754C +FR-Import-Export_PDF=PDF\u683C\u5F0F +Form-CheckBoxGroup=\u5FA9\u9078\u6846\u7D44 +Click-Me=\u9EDE\u6211\u6709\u9A5A\u559C\u54E6\uFF01 +Hyperlink-Self=\u5728\u539F\u7DB2\u9801\u4E2D\u6253\u958B\u93C8\u63A5(S) +Tree-Select_Leaf_Only_Tips=(\u4E0D\u52FE\u9078\u6B64\u9805\u6642\uFF0C\u8FD4\u56DE\u503C\u50C5\u70BA\u7528\u6236\u52FE\u9078\u7684\u7576\u524D\u7BC0\u9EDE\u800C\u4E0D\u5305\u62EC\u5176\u5B50\u7BC0\u9EDE) +StyleAlignment-Text_Rotation=\u6587\u672C\u65B9\u5411 +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=Active +Utils-File_name=\u6A94\u6848\u540D +NOT_NULL_Des=\u4E0D\u80FD\u70BA\u7A7A +Right_Border_Line=\u53F3\u6846\u7DDA +EditRC-Entire_column=\u6574\u6B04 (c) +PageSetup-Top_to_bottom=\u5148\u6B04\u5F8C\u5217 +Click-Get_Default_URL=\u9EDE\u64CA\u6B64\u6309\u9215\u7372\u5F97\u9810\u8A2DURL +StyleAlignment-Wrap_Text=\u81EA\u52D5\u63DB\u5217 +Remove_All_Button=\u6E05\u9664\u6240\u6709\u6309\u9215 +FR-Designer_Component_Interval=\u5143\u4EF6\u9593\u9694 +ReportColumns-Columns_vertically=\u6B04\u5206\u6B04 +ReportGUI-Print_Background=\u5217\u5370/\u532F\u51FA\u5831\u8868\u80CC\u666F +Export-CSV=CSV\u683C\u5F0F(\u9017\u865F\u5206\u9694) +M_Edit-Paste=\u8CBC\u4E0A(P) +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=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=\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 +Float_Element_Name=\u61F8\u6D6E\u5143\u7D20\u540D\u7A31 +Purple=\u7C89\u7D2B +DashBoard-Potence=\u6B0A\u9650 +M-Close_Template=\u95DC\u9589\u7BC4\u672C(C) +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\u6301\u8A31\u53EF\u6B0A\u63A7\u5236 +Formula_Tips=\u516C\u5F0F\u5FC5\u9808\u4EE5"\ +FR-Action_Copy=\u8907\u88FD +Compile_Success=Compile Success +BackgroundTexture-RecycledPaper=\u518D\u751F\u7D19 +StyleAlignment-Single_Line=\u55AE\u5217\u986F\u793A +Utils-Move_Down=\u4E0B\u79FB +Please_Set_Repeat_First=\u8ACB\u5148\u8A2D\u5B9A\u91CD\u8907\u6A19\u984C\u5217\u548C\u6B04 +Writer-ShortCuts_Setting=\u586B\u5831\u5FEB\u6377\u9375\u8A2D\u5B9A +Verify-Data_Verify=\u8CC7\u6599\u6821\u9A57 +FR-mobile_analysis_style=\u89E3\u6790\u65B9\u5F0F +Confirm-Delete-File=\u662F\u5426\u522A\u9664\u6240\u9078\u6A94\u6848\uFF1F +PageSetup-Header=\u9801\u9996 +JavaScrit-Asynch=\u975E\u540C\u6B65 +ReportServerP-Toolbar=\u5DE5\u5177\u6B04 +Utils-Top_to_Bottom=\u7E31\u5411 +Platform=\u5E73\u53F0 +FR-Designer-FRFont_Underline=\u5E95\u7DDA +Show_in_Containing_Folder=\u6253\u958B\u6240\u5728\u8CC7\u6599\u593E +BackgroundTexture-WaterDroplets=\u6C34\u6EF4 +FR-Designer-Dependence_Install_Failed=\u4F9D\u8CF4\u5B89\u88DD\u5931\u6557 +Layout-Padding=\u5167\u908A\u8DDD +roles_already_authority_edited=\u5DF2\u914D\u7F6E\u89D2\u8272 +WidgetDisplyPosition=\u63A7\u5236\u9805\u986F\u793A\u4F4D\u7F6E +SpecifiedG-Force_Group=\u5F37\u5236\u5206\u7D44 +FormulaD-Formula_Definition=\u516C\u5F0F\u5B9A\u7FA9 +I-xyScatterStyle_Marker=\u6563\u9EDE\u5716 +Hour=\u5C0F\u6642 +ColorMatch=\u914D\u8272 +M_Edit-Order=\u758A\u653E\u9806\u5E8F(O) +BackgroundTexture-Bouquet=\u82B1\u675F +Verify-Error_Information=\u6821\u9A57\u51FA\u932F\u8A0A\u606F +LayerData=\u5E95\u5C64\u8CC7\u6599 +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 +Set_Column_Title_Start=\u8A2D\u5B9A\u91CD\u8907\u6A19\u984C\u6B04 +Fri=\u4E94 +M_Report-Report_Parameter=\u6A21\u677F\u53C3\u6578 +REPORTLETS=\u8A2A\u554F\u591A\u5F35\u6A21\u677F\u7684\u8DEF\u5F91\u7684\u53C3\u6578 +WLayout-Card-ToolTip=\u5361\u7247\u5F0F\u4F48\u5C40\uFF0C\u8A72\u4F48\u5C40\u5BB9\u5668\u4E2D\u53EF\u4EE5\u65B0\u589E\u591A\u500B\u5176\u5B83\u5143\u4EF6\u3002 +M-Popup_ChartType=\u5716\u8868\u985E\u578B +Please-Wait=\u8ACB\u7A0D\u5019 +FR-Designer-Form-ToolBar_Widget=\u63A7\u5236\u9805 +Widget-Array=\u6578\u7D44 +FieldBinding=\u7D81\u5B9A\u6B04\u4F4D +Top_Bottom_Border_Line=\u4E0A\u4E0B\u6846\u7DDA +M-Others=\u5176\u5B83... +Hyperlink-Link_Opened_in=\u9023\u7D50\u6253\u958B\u65BC +FR-Utils_WorkBook=\u5DE5\u4F5C\u7C3F +M_Insert-Float=\u61F8\u6D6E\u5143\u7D20 +Out_Thick_Border_Line=\u7C97\u5323\u6846\u7DDA +FR-App-File_Lookup_range=\u67E5\u627E\u7BC4\u570D +ReportColumns-Columns_to=\u5206\u6B04\u6210 +Transparent=\u900F\u660E +Parameter-Integer=\u6574\u578B +PDF-Print_Setting=PDF\u5217\u5370\u8A2D\u5B9A +Server-Embedded_Server=\u5167\u7F6E\u7684\u4F3A\u670D\u5668 +M_Server-Server_Config_Manager=\u4F3A\u670D\u5668\u914D\u7F6E(S) +FR-Utils-Would_you_like_to_cover_the_current_file=\u4F60\u5E0C\u671B\u8986\u84CB\u7576\u524D\u6A94\u6848\u55CE +CellWrite-InsertRow_COPY=\u539F\u503C +Edit_String_To_Formula=\u662F\u5426\u5C07\u5B57\u5143\u4E32\u7DE8\u8F2F\u70BA\u516C\u5F0F +Edit-Column_Count=\u6B04\u6578 +Father=\u7236 +ReportColumns-Columns_after=\u8D85\u904E +FR-Designer_Undo=\u5FA9\u539F +DBCP_MIN_IDLE=\u6700\u5C0F\u7A7A\u9591\u9023\u63A5\u6578 +M-Data_Analysis_Settings=\u8CC7\u6599\u5206\u6790\u8A2D\u5B9A +M-Form_Preview=\u8868\u55AE\u9810\u89BD +Form-Basic_Properties=\u57FA\u672C\u5C6C\u6027 +quote=\u5F15\u7528 +Thu=\u56DB +Collect-Collect_User_Information=\u6536\u96C6\u7528\u6236\u8A0A\u606F +Layer-Build=\u5206\u5C64\u69CB\u5EFA +FR-Designer-FRFont_Line_Style=\u7DDA\u578B +BackgroundTexture-BrownMarble=\u68D5\u8272\u5927\u7406\u77F3 +PageSetup-Page_Setup=\u9801\u9762\u8A2D\u5B9A +Form-Semicolon=\u5206\u865F +ECP_re_input=\u8ACB\u91CD\u65B0\u8F38\u5165\u5BC6\u78BC\: +ExpandD-Sort_After_Expand=\u64F4\u5C55\u5F8C +FR-Designer-Dependence_Install_Succeed=\u4F9D\u8CF4\u5B89\u88DD\u6210\u529F +Env-Configure_Workspace=\u914D\u7F6E\u5DE5\u4F5C\u76EE\u9304 +feedback_info=\u6B61\u8FCE\u60A8\u63D0\u51FA\u5BF6\u8CB4\u7684\u610F\u898B\u548C\u5EFA\u8B70\uFF0C\u8ACB\u5C07\u8A0A\u606F\u586B\u5BEB\u5F97\u76E1\u91CF\u8A73\u7D30\uFF0C\u6211\u5011\u6703\u76E1\u5FEB\u806F\u7E6B\u4F60 +Ratio=\u6BD4\u7387 +DBCP_TEST_ON_BORROW=\u7372\u53D6\u9023\u63A5\u524D\u6AA2\u9A57 +FR-Designer_layerIndex=\u4F9D\u8CF4\u7684\u5C64\u6578 +WEB-Write_Setting=\u586B\u5831\u9762\u9762\u8A2D\u5B9A +M-New_WorkBook=\u65B0\u589E\u5DE5\u4F5C\u7C3F +FR-Designer-Plugin_Has_Been_Actived=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 +FormulaD-Date_&_Time=\u65E5\u671F\u548C\u6642\u9593\u51FD\u6578 +Max-Mem-Row-Count=\u7DE9\u5B58\u81F3\u78C1\u7247\u7576\u8A18\u9304\u6578\u5927\u65BC +BorderLayout-South=\u5357 +Export-Text=\u6587\u5B57\u6A94\u6848(\u88FD\u9304\u7B26\u5206\u9694) +JavaScript-Synch=\u540C\u6B65 +FR-App-All_Warning=\u8B66\u544A +M_Edit-Send_Backward=\u4E0B\u79FB\u4E00\u5C64(B) +Form-Layout=\u5E03\u5C40 +FR-Designer-Plugin_Shop_Need_Update=\u63D2\u4EF6\u5546\u5E97\u6709\u65B0\u7248\u672C,\u662F\u5426\u66F4\u65B0? +FR-Designer_WorkBook=\u5DE5\u4F5C\u7C3F +UpBarBorderStyleAndColor=\u6F32\u67F1\u6A23\u5F0F +GridLayout=\u683C\u5B50\u5E03\u5C40 +Utils-Default_Value=\u9810\u8A2D\u503C +Widget-Comb_Widget_Config=\u7D44\u5408\u63A7\u5236\u9805 +Import-Excel2007_Source=Excel2007\u6E90\u6A94\u6848 +Y-Coordinate=\u7E31\u5EA7\u6A19 +FR-Base_SimSun_Not_Found=\u7121\u6CD5\u627E\u5230\u5B8B\u9AD4, \u8ACB\u9078\u64C7\u7576\u524D\u7CFB\u7D71\u4E0B\u9810\u8A2D\u8A9E\u8A00\u4F5C\u70BA\u8A2D\u8A08\u5668\u5B57\u9AD4. +FR-Designer_Seriously=\u56B4\u91CD +Upload=\u4E0A\u50B3 +Form-Widget_Property_Table=\u5C6C\u6027\u8868 +Des-Merger_Cell=\u9078\u64C7\u7684\u5340\u57DF\u5305\u542B\u591A\u500B\u8CC7\u6599\uFF0C\u5408\u5E76\u5132\u5B58\u683C\u5F8C\u5C07\u53EA\u4FDD\u7559\u7DE8\u8F2F\u904E\u7684\u6240\u6709\u5132\u5B58\u683C\u4E2D\u6700\u5DE6\u4E0A\u89D2\u7684\u6578\u503C. +FR-Designer-Basic_Copy_Build_NO=\u96D9\u64CA\u8907\u88FD\u69CB\u5EFA\u7248\u672C\u865F +FR-Base_TurnOn=\u958B\u5553 +FR-Base_Rows=\u5217 +Form-Remove_Repeat=\u53BB\u6389\u91CD\u8907\u9805 +Yes=\u662F +Datasource-JNDI_Name=JNDI\u7684\u540D\u5B57 +Utils-Delete_Column=\u522A\u9664\u6B04 +HF-Delete_it=\u522A\u9664 +JavaScript-Dynamic_Parameters=\u52D5\u614B\u53C3\u6578 +px=\u50CF\u7D20 +FR-App-Report_Template=\u5831\u8868\u7BC4\u672C +Verify-Message=\u932F\u8AA4\u8A0A\u606F +Plan=\u8A08\u756B +Vertical-Split_Layout=\u5782\u76F4\u5206\u5272\u5E03\u5C40 +ParameterD-Delay_Playing=\u9EDE\u64CA\u67E5\u8A62\u524D\u4E0D\u986F\u793A\u5831\u8868\u5167\u5BB9 +TurnOff=\u95DC\u9589 +FR-Please_Rename=\u8ACB\u91CD\u547D\u540D +Select_Data_Set=\u9078\u64C7\u8CC7\u6599\u96C6 +Name_has_Colon=\u540D\u5B57\: +ReportColumns-Columns_horizontally=\u5217\u5206\u6B04 +FR-Base_Yes=\u662F +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\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 +FR-Template-Path_chooseRightPath=\u8ACB\u9078\u64C7\u6B63\u78BA\u8DEF\u5F91 +FR-Remote_Re_Connect_to_Server=\u4F3A\u670D\u5668\u5DF2\u95DC\u9589\uFF0C\u662F\u5426\u91CD\u65B0\u9023\u63A5\u4F3A\u670D\u5668? +Nation=\u570B\u5BB6 +DBCP_MAX_WAIT=\u6700\u5927\u7B49\u5F85\u6642\u9593 +FR-App-Template_Form=\u8868\u55AE +Address=\u5730\u5740 +Sub_Report=\u5B50\u5831\u8868 +FR-Import-Export_Word=Word\u683C\u5F0F +FR-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 +StyleAlignment-Left_To_Right=\u5F9E\u5DE6\u5411\u53F3 +Verify-ToolTips=\u4E0D\u6EFF\u8DB3\u516C\u5F0F\u63D0\u793A\u6821\u9A57\u51FA\u932F\u8A0A\u606F +BackgroundTexture-Stationery=\u4FE1\u7D19 +FR-Designer_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 +M_Insert-Barcode=\u689D\u78BC +Bounds=\u908A\u754C +FR-Designer-Undo_All_Authority_Operations=\u5FA9\u539F\u524D\u4E00\u6B21\u7DE8\u8F2F +Datasource-Context=\u4E0A\u4E0B\u6587 +CellWrite-Page_After_Column=\u6B04\u5F8C\u5206\u9801 +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\ +StyleAlignment-Horizontal=\u6C34\u5E73\u5C0D\u9F4A +HyperLink_Must_Alone_Reset=\u591A\u500B\u8D85\u93C8 +ExpandD-Expand_Direction=\u64F4\u5C55\u65B9\u5411 +Include=\u5305\u62EC +Export-Excel-Page=\u5206\u9801\u532F\u51FA +FR-Designer-Min_Height=\u6700\u5C0F\u9AD8\u5EA6 +Filed=\u5340\u57DF +ReportServerP-Import_Css=\u5F15\u7528Css +M_Insert-Formula=\u63D2\u5165\u516C\u5F0F +FR-Designer_Auto-Build=\u81EA\u52D5\u69CB\u5EFA +FRFont-Foreground=\u984F\u8272 +Bubble-Width=\u6C23\u6CE1\u5BEC\u5EA6 +Form-Hierarchy_Tree=\u7D50\u69CB\u6A39 +WLayout-Border-LayoutContainer=\u64C1\u6709\u4E2D\u90E8\u548C\u5317\u90E8\u5169\u584A\u7684\u908A\u754C\u4F48\u5C40\u5BB9\u5668\uFF0C\u5176\u4E2D\u5317\u90E8\u584A\u53EF\u4EE5\u6839\u64DA\u9700\u8981\u8ABF\u6574\u9AD8\u5EA6 +Preference-JDK_Home=JDK\u8DEF\u5F91 +Utils-Insert_Column=\u63D2\u5165\u6B04 +FR-Designer_ToolBar_Top=\u9802\u90E8\u5DE5\u5177\u6B04 +BindColumn-The_Conditions_of_FatherCell=\u7236\u683C\u689D\u4EF6 +Links=\u93C8\u63A5 +M_Report-Report_Header=\u5831\u8868\u9801\u9996 +Sub_Report_Description=\u5B50\u5831\u8868\u9700\u8981\u5B58\u5728\u65BC\u7236\u8868\u904B\u884C\u74B0\u5883\u4E0B\uFF0C\u4E14\u5169\u8005\u4E0D\u80FD\u662F\u540C\u4E00\u6A21\u677F +T_Insert-Float=\u63D2\u5165\u61F8\u6D6E\u5143\u7D20 +BackgroundTexture-FishFossil=\u9B5A\u985E\u5316\u77F3 +My_Computer=\u6211\u7684\u96FB\u8166 +FORMLET=\u8A2A\u554F\u4E0D\u540C\u8868\u55AE\u7684\u8DEF\u5F91\u7684\u53C3\u6578 +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=Compile Success And Then Save +FR-Designer_Layout-Padding=\u5167\u908A\u8DDD +Layout_Container=\u4F48\u5C40\u5BB9\u5668 +Admin=\u7BA1\u7406\u54E1 +Form-EC_toolbar=\u5831\u8868\u584A\u5DE5\u5177\u6B04 +FR-App-All_Auto=\u81EA\u52D5 +Utils-Available_Columns=\u53EF\u9078\u6B04 +Form-Change_Widget_Name_Discription=\u8ACB\u8F38\u5165\u4E00\u500B\u65B0\u7684\u63A7\u5236\u9805\u540D +FR-Module_Designer=\u8A2D\u8A08\u5668\u6A21\u584A +FR-Import-Export_Text=\u6587\u5B57\u6A94\u6848(\u88FD\u8868\u7B26\u5206\u9694) +Values-Editor=\u503C\u7DE8\u8F2F\u5668 +FR-Designer_Yes=\u662F +ExpandD-Expandable=\u53EF\u4F38\u5C55\u6027 +Tree-Return_Full_Path=\u7D50\u679C\u8FD4\u56DE\u5B8C\u6574\u5C64\u6B21\u8DEF\u5F91 +FRFont-bolditalic=\u7C97\u9AD4\u659C\u9AD4 +FR-Base_StyleFormat_Sample=\u793A\u4F8B +Area_Value=\u5340\u57DF\u503C +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 +Vgap=\u5782\u76F4\u9593\u9699 +FR-Designer_HyperLink_Must_Alone_Reset=\u591A\u500B\u8D85\u93C8 +DS-Class=\u985E\u5225 +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=\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 +FR-Designer_Form-Password=\u5BC6\u78BC +X_Axis=X\u8EF8 +FR-mobile_html_analysis=HTML5\u89E3\u6790 +M_Edit-Bring_to_Front=\u7F6E\u65BC\u9802\u5C64(T) +Null_Value_Show=\u7A7A\u503C\u986F\u793A +Datasource-JNDI_DES=\u6CE8\u610F\:\u9700\u8981\u628A\u5305\u542BINITIAL_CONTEXT_FACTORY\u985E\u7684.jar\u6A94\u6848\u8907\u88FD\u5230\u8EDF\u9AD4\u5B89\u88DD\u6A94\u6848\u4E0B\u7684/lib\u76EE\u9304\u4E0B +PrintP-Print_Preview=\u5217\u5370\u9810\u89BD +Form-Hierarchy_Tree_Last=\u4E0A\u4E00\u500B +Has_been_gone=\ \u5DF2\u4E1F\u5931\uFF0C\u662F\u5426\u589E\u52A0\u8A72\u6A23\u5F0F\uFF1F +RWA-Add_Field=\u65B0\u589E\u6B04\u4F4D +newNode=\u65B0\u589E\u7BC0\u9EDE +PageSetup-Shrink_to_fit_content=\u6839\u64DA\u5132\u5B58\u683C\u5167\u5BB9\u81EA\u52D5\u8ABF\u6574 +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=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=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 +Sub_Report_Message3=\u4E0D\u80FD\u9078\u64C7\u81EA\u8EAB +Sub_Report_Message1=\u8ACB\u9078\u64C7\u6B63\u78BA\u8DEF\u5F91 +Form-Allow_CustomData=\u5141\u8A31\u81EA\u5B9A\u7FA9\u503C +FR-Server_Version_Tip_MoreInfo=\u5EFA\u8B70\u60A8\u6240\u5C6C\u5718\u968A\u4F7F\u7528\u7684\u6211\u65B9FineReport\u7523\u54C1\u7684\u8A2D\u8A08\u5668\u7248\u672C\u865F\u4EE5\u53CA\u90E8\u7F72\u7684\u4F3A\u670D\u5668\u7248\u672C\u865F\u4FDD\u6301\u4E00\u81F4\uFF0C\u4EE5\u907F\u514D\u7248\u672C\u4E0D\u4E00\u81F4\u9020\u6210\u7684\u554F\u984C\u98A8\u96AA\u3002\n\u5047\u5982\u60A8\u6253\u958B\u66F4\u9AD8\u8A2D\u8A08\u5668\u7248\u672C\u88FD\u4F5C\u7684\u6A21\u677F\uFF0C\u53EF\u80FD\u6253\u958B\u51FA\u932F\uFF0C\u4E5F\u53EF\u80FD\u4E1F\u5931\u539F\u6709\u6A21\u677F\u5C6C\u6027\u3002\u5047\u5982\u60A8\u88FD\u4F5C\u7684\u6A21\u677F\u4F7F\u7528\u7684\u8A2D\u8A08\u5668\u7248\u672C\u9AD8\u65BC\u60A8\u6700\u7D42\u90E8\u7F72\u6240\u7528\u7684\u4F3A\u670D\u5668\u7248\u672C\uFF0C\u4F3A\u670D\u5668\u53EF\u80FD\u7121\u6CD5\u6B63\u5E38\u8F09\u5165\u60A8\u88FD\u4F5C\u7684\u6A21\u677F\u3002 +FR-Designer_Server-version-tip-moreInfo=\u5EFA\u8B70\u60A8\u6240\u5C6C\u5718\u968A\u4F7F\u7528\u7684\u6211\u65B9FineReport\u7522\u54C1\u7684\u8A2D\u8A08\u5668\u7248\u672C\u865F\u4EE5\u53CA\u90E8\u7F72\u7684\u4F3A\u670D\u5668\u7248\u672C\u865F\u4FDD\u6301\u4E00\u81F4\uFF0C\u4EE5\u907F\u514D\u7248\u672C\u4E0D\u4E00\u81F4\u9020\u6210\u7684\u554F\u984C\u98A8\u96AA\u3002\u5047\u5982\u60A8\u6253\u958B\u66F4\u9AD8\u8A2D\u8A08\u5668\u7248\u672C\u88FD\u4F5C\u7684\u6A21\u677F\uFF0C\u53EF\u80FD\u6253\u958B\u51FA\u932F\uFF0C\u4E5F\u53EF\u80FD\u4E1F\u5931\u539F\u6709\u6A21\u677F\u5C6C\u6027\u3002\u5047\u5982\u60A8\u88FD\u4F5C\u7684\u6A21\u677F\u4F7F\u7528\u7684\u8A2D\u8A08\u5668\u7248\u672C\u9AD8\u65BC\u60A8\u6700\u7D42\u90E8\u7F72\u6240\u7528\u7684\u4F3A\u670D\u5668\u7248\u672C\uFF0C\u4F3A\u670D\u5668\u53EF\u80FD\u7121\u6CD5\u6B63\u5E38\u8F09\u5165\u60A8\u88FD\u4F5C\u7684\u6A21\u677F +Get_Lock=\u52A0\u9396 +HF-Edit_Footer=\u7DE8\u8F2F\u9801\u5C3E +Datasource-New_Charset=\u65B0\u7DE8\u78BC +Preference-Custom=Custom +BackgroundTexture-Newsprint=\u65B0\u805E\u7D19 +ConditionB-Add_bracket=\u65B0\u589E\u62EC\u865F +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 +FR-Hyperlink_Dialog=\u5C0D\u8A71\u6846 +FR-Designer_Covered_All=\u5168\u90E8\u8986\u84CB +Hyperlink-New_Window=\u65B0\u7A97\u53E3 +Style_Name=\u683C\u5F0F\u540D +CSS_warning=\ \u76F8\u5C0D\u5831\u8868\u5DE5\u7A0B\u76EE\u9304\u5982WebReport,\u5982WebReport\\css\u4E0B\u6709\u5F15\u7528\u7684css\u6A94\u6848test.css\uFF0C\u5247\u76F8\u5C0D\u8DEF\u5F91\u70BAcss/test.css +FR-Base_Column=\u6B04 +Three_Rows_Of_Two_Grid=\u4E09\u5217\u5169\u6B04\u7684\u683C\u5B50 +DBCP_VALIDATION_QUERY=SQL\u9A57\u8B49\u67E5\u8A62 +M_Edit-Clear_Formats=\u683C\u5F0F(F) +Parameter_Setting=\u53C3\u6578\u8A2D\u5B9A +Related=\u806F\u52D5 +BorderLayout-Constraints=\u4F4D\u7F6E +Write_Preview=\u586B\u5831\u9810\u89BD +PageSetup-Page_Order=\u5217\u5370\u9806\u5E8F +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= +Come_True=\u5BE6\u73FE +ISEMPTY=is empty +Background-Texture=\u7D0B\u7406 +FR-Designer_Verify-Message=\u932F\u8AA4\u8A0A\u606F +Locked=\uFF08\u5DF2\u9396\u5B9A\uFF09 +Utils-Design-Action_Cancel=\u53D6\u6D88 +Image-Titled=\u5E73\u92EA +Gradient-Direction=\u6F38\u8B8A\u65B9\u5411 +Green=\u9752\u7DA0 +Report_Engine=\u5831\u8868\u5F15\u64CE +Return-String=\u8FD4\u56DE\u5B57\u5143\u4E32 +Margin=\u908A\u8DDD +Pitch_Percentage=\u9593\u8DDD\u767E\u5206\u6BD4 +FR-Base_TurnOff=\u95DC\u9589 +Utils-has_been_existed=\u5DF2\u5B58\u5728 +HF-Insert_Formula=\u63D2\u5165\u516C\u5F0F +Utils-Exit_Designer=\u9000\u51FA\u8A2D\u8A08\u5668 +Formula_Dictionary_Display=\u5C0D\u65BC\u4E0A\u9762\u5BE6\u969B\u503C\u7BC4\u570D\u5167\u7684\u6BCF\u500B\u503C($$$)\uFF0C\u5176\u986F\u793A\u503C\u70BA +PageSetup-Left_to_right=\u5148\u5217\u5F8C\u6B04 +Utils-Import_Excel_Data=\u532F\u5165[Excel] +M-Save=\u5132\u5B58 +redo=\u53D6\u6D88\u5FA9\u539F +Status=\u72C0\u614B +Draw=\u7E6A\u88FD +FR-Designer_Message=\u8A0A\u606F +Records=\u689D\u8A18\u9304 +FR-Designer_ComboBox=\u4E0B\u62C9\u6846 +Driver=\u9A45\u52D5\u5668 +Template_Parameters=\u7BC4\u672C\u53C3\u6578 +Form-Remove_Repeat_Data=\u53BB\u9664\u91CD\u8907\u8CC7\u6599 +ECP_decode=\u6A21\u677F\u89E3\u5BC6 +Area_Name=\u5340\u57DF\u540D +Others=\u5176\u5B83 +Merge=\u5408\u5E76 +BackgroundTexture-Parchment=\u7F8A\u76AE\u7D19 +BindColumn-Bottom_N=\u5F8CN\u500B +Frame=\u6846\u67B6 +Bottom_Border_Line=\u4E0B\u6846\u7DDA +Muiti_In=\u591A\u5C64\u947D\u53D6 +FR-Designer-Dependence_Install_Online=\u5728\u7DDA\u5B89\u88DD\u4F9D\u8CF4\u74B0\u5883 +Use_Default_ToolBar=\u4F7F\u7528\u9810\u8A2D\u5DE5\u5177\u6B04 +M_Server-Platform_Manager=\u5831\u8868\u5E73\u81FA\u7BA1\u7406(P) +PageSetup-inches=\u82F1\u5BF8 +Form-Widget_Property=\u5C6C\u6027\u540D +FR-Layout_Padding=\u5167\u908A\u8DDD +Schema=\u4E3B\u984C +Server_Path=\u4E3B\u6A5F\u4F4D\u7F6E +Condition_Display=\u689D\u4EF6\u986F\u793A +FR-Server-Design_template_unopened=\u7121\u6CD5\u6253\u958B\u7BC4\u672C +Function-Function_Class_Name=\u51FD\u6578\u985E\u540D +Schedule-Template=\u7BC4\u672C\u540D\u7A31 +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=Restart later +StyleAlignment-Top=\u9760\u4E0A\u5C0D\u9F4A +ReportServerP-First=\u9996\u9801 +Not_Exist=\u4E0D\u5B58\u5728 +FR-Remote_File_is_Locked=\u60A8\u6240\u8981\u6253\u958B\u7684\u5831\u8868\u6B63\u5728\u88AB\u5176\u4ED6\u4EBA\u7DE8\u8F2F\uFF0C\u8ACB\u7A0D\u5019\u6253\u958B +Apply=\u61C9\u7528 +Sytle-Indentation=\u7E2E\u9032 +Parameter-Float=\u55AE\u7CBE\u5EA6\u578B +HF-Center_Section=\u4E2D\u9593\u5340\u57DF +Form-Double_quotes=\u96D9\u5F15\u865F +M_File-Export-Word=Word\u683C\u5F0F +M_File-Export-Text=\u6587\u5B57\u6A94\u6848(\u88FD\u9304\u7B26\u5206\u9694) +PageSetup-First_Page_Number=\u8D77\u59CB\u9801\u78BC +Execute=\u57F7\u884C +Task=\u4EFB\u52D9 +Custom_Button_Type_Submit=\u63D0\u4EA4 +FR-Designer-Widget_Settings=\u63A7\u5236\u9805\u8A2D\u5B9A +IS_Need_Password=\u9700\u8981\u5BC6\u78BC +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=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 +PageSetup-Title_Start_Row=\u91CD\u8907\u6A19\u984C\u5217 +From=\u5F9E\u7B2C +Preference-Grid_Line_Color=\u7DB2\u683C\u7DDA\u984F\u8272 +RowTo=\u5217\u81F3\u7B2C +FR-Designer_ReportColumns-Repeat_Column=\u91CD\u8907\u6B04\u5E8F\u6B04 +M_Server-Function_Manager=\u51FD\u6578\u7BA1\u7406\u5668 +KeyWord=\u95DC\u9375\u5B57 +DS-Multi_Dimensional_Database=\u591A\u7DAD\u8CC7\u6599\u5EAB +BiasD-Slope_Line=\u659C\u7DDA +Tue=\u4E8C +ReportServerP-Last=\u672B\u9801 +FR-Base_Columns=\u6B04 +SpecifiedG-Leave_in_their_own_groups=\u7559\u5728\u5404\u81EA\u7684\u7D44\u5167 +LOG-Please_Wait=\u8ACB\u7A0D\u5019 +Form-ToolBar=\u8868\u55AE\u5DE5\u5177\u6B04 +FR-Base_sure_remove_item=\u4F60\u78BA\u5BE6\u6C7A\u5B9A\u522A\u9664\u9078\u4E2D\u7684\u9805 +Component_Scale=\u5143\u4EF6\u7E2E\u653E +Hyperlink-Use_CJK_to_encode_parameter=\u4F7F\u7528CJK\u8655\u7406\u53C3\u6578 +LOG-Has_Been_Openned=\u5DF2\u7D93\u6253\u958B +FR-Designer-Dependence= +ECP_error_pwd=\u5BC6\u78BC\u932F\u8AA4 +REPORTLET=\u8A2A\u554F\u6A21\u677F\u7684\u8DEF\u5F91\u7684\u53C3\u6578\u3002 +RWA-Column_Offset=\u6B04\u504F\u79FB +Forecast=\u9810\u6E2C +Light_Orange=\u6DFA\u6854\u9EC3 +StyleAlignment-Vertical=\u5782\u76F4\u5C0D\u9F4A +Form-List=\u6B04\u8868 +ParameterD-Show_Parameter_Window=\u986F\u793A\u53C3\u6578\u7A97\u9AD4 +FR-Designer_Set_Submit_Event=\u8A2D\u5B9A\u63D0\u4EA4\u4E8B\u4EF6 +Value_Percent=\u503C\u6240\u4F54\u6BD4\u4F8B +DBCP_MIN_EVICTABLE_IDLE_TIMEMILLIS=\u4FDD\u6301\u7A7A\u9591\u6700\u5C0F\u6642\u9593\u503C +Function-The_class_must_be_located_in=\u6539\u985E\u5FC5\u9808\u653E\u7F6E\u5728 +FR-Action_Sort=\u6392\u5E8F +DataFunction-Average=\u5E73\u5747 +FR-Designer_Show_in_Containing_Folder=\u6253\u958B\u6240\u5728\u8CC7\u6599\u593E +M_File-Export-Excel=Excel\u683C\u5F0F +DataFunction-Max=\u6700\u5927\u503C +FR-Designer_Form-Widget_Name=\u63A7\u5236\u9805\u540D +FS_End_Date=\u7D50\u675F\u65E5\u671F +Export-Excel-Simple=\u539F\u6A23\u532F\u51FA +ColumnTo=\u6B04\u81F3\u7B2C +SpecifiedG-Discard_all_others=\u4E1F\u68C4\u5176\u4ED6\u6240\u6709\u7684 +DS-TableData=\u8CC7\u6599\u96C6 +Form-DataTable=\u8CC7\u6599\u8868 +Sub_Report_ToolTips=\u5B50\u5831\u8868\u63D0\u793A +Right_Top=\u53F3\u4E0A +M_Edit-Merge_Cell=\u5408\u5E76\u5132\u5B58\u683C +FR-Designer_Restore_Default=\u6062\u5FA9\u9810\u8A2D +Component_Interval=\u5143\u4EF6\u9593\u9694 +Cover_None=\u5168\u4E0D\u8986\u84CB +Datasource-From_Database=\u8CC7\u6599\u5EAB\u8868 +Folder=\u76EE\u9304 +Form-Allow_Edit=\u5141\u8A31\u76F4\u63A5\u7DE8\u8F2F +M_Edit-Clear=\u6E05\u9664(A) +ParentCell_Setting=\u7236\u683C\u8A2D\u5B9A +Only_selected_cell_can_paste_only=\u53EA\u6709\u9078\u4E2D\u5132\u5B58\u683C\u6642\u624D\u53EF\u4EE5\u8CBC\u4E0A +M_Report-Report_Columns=\u5831\u8868\u5206\u6B04 +Unit_Hundred=\u4F70 +FR-Designer_DataTable-Build=\u6975\u901F\u5206\u5C64\u69CB\u5EFA +Widget-Form_Widget_Config=\u8868\u55AE\u63A7\u5236\u9805 +Server-version-tip-moreInfo=\u5EFA\u8B70\u60A8\u6240\u5C6C\u5718\u968A\u4F7F\u7528\u7684\u6211\u65B9FineReport\u7522\u54C1\u7684\u8A2D\u8A08\u5668\u7248\u672C\u865F\u4EE5\u53CA\u90E8\u7F72\u7684\u4F3A\u670D\u5668\u7248\u672C\u865F\u4FDD\u6301\u4E00\u81F4\uFF0C\u4EE5\u907F\u514D\u7248\u672C\u4E0D\u4E00\u81F4\u9020\u6210\u7684\u554F\u984C\u98A8\u96AA\u3002\u5047\u5982\u60A8\u6253\u958B\u66F4\u9AD8\u8A2D\u8A08\u5668\u7248\u672C\u88FD\u4F5C\u7684\u6A21\u677F\uFF0C\u53EF\u80FD\u6253\u958B\u51FA\u932F\uFF0C\u4E5F\u53EF\u80FD\u4E1F\u5931\u539F\u6709\u6A21\u677F\u5C6C\u6027\u3002\u5047\u5982\u60A8\u88FD\u4F5C\u7684\u6A21\u677F\u4F7F\u7528\u7684\u8A2D\u8A08\u5668\u7248\u672C\u9AD8\u65BC\u60A8\u6700\u7D42\u90E8\u7F72\u6240\u7528\u7684\u4F3A\u670D\u5668\u7248\u672C\uFF0C\u4F3A\u670D\u5668\u53EF\u80FD\u7121\u6CD5\u6B63\u5E38\u8F09\u5165\u60A8\u88FD\u4F5C\u7684\u6A21\u677F +Actions=\u4EFB\u52D9 +FR-Designer-Dependence_Connect_Server_Error=\u7121\u6CD5\u9023\u63A5\u670D\u52D9\u5668\uFF0C\u8ACB\u7A0D\u5F8C\u518D\u8A66 +High=\u9AD8 +HJS-Send_Failed=\u767C\u9001\u5931\u6557 +HJS-Message=\u5167\u5BB9 +File-Allow_Upload_Files=\u5141\u8A31\u4E0A\u50B3\u6A94\u6848\u985E\u578B +FR-Designer-Form-ToolBar_Chart=\u5716\u8868 +Thick_Bottom_Border_Line=\u7C97\u5730\u6846\u7DDA +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\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 +HighLight=\u9AD8\u5149 +FR-Designer_Dropdown-More-Preview=\u4E0B\u62C9\u7372\u5F97\u66F4\u591A..... +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=All plugins +FR-Designer_Prepare_Export=\u958B\u59CB\u532F\u51FA\uFF0C\u8ACB\u7A0D\u5019 +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=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 +FR-Already_exist=\u7576\u524D\u74B0\u5883\u5DF2\u5B58\u5728 +Send=\u767C\u9001 +M_Edit-Clear_All=\u5168\u90E8(A) +Brown_Orange=\u68D5\u9EC3 +PageSetup-Portrait=\u7E31\u5411 +FR-Designer_Form-RadioGroup=\u55AE\u9078\u6309\u9215\u7D44 +FR-Utils-App_AllFiles=\u6240\u6709\u6A94\u6848 +Popup=\u5F48\u51FA +Server_Charset=\u4F3A\u670D\u5668\u7DE8\u78BC +CellWrite-Repeat_Content_When_Paging=\u5206\u9801\u65B7\u958B\u6642\u503C\u91CD\u8907\u986F\u793A +Utils-No_Pagination=\u4E0D\u5206\u9801 +Form-NullLayout=\u7D55\u5C0D\u5B9A\u4F4D +ConditionB-Remove_bracket=\u53BB\u6389\u62EC\u865F +email=\u90F5\u7BB1 +Minute=\u5206\u9418 +FR-Designer-Plugin_Update=Plugins to update +alraedy_close=\u5DF2\u7D93\u95DC\u9589 +ComboCheckBox-End_Symbol=\u7D50\u675F\u7B26 +DataColumn=\u8CC7\u6599\u6B04 +Form-Password=\u5BC6\u78BC +FR-Background_Image_Adjust=\u9069\u61C9 +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=Group Count +EndValue=\u7D50\u675F\u503C +FR-Designer_Sytle-Indentation=\u7E2E\u9032 +DownBarBorderStyleAndColor=\u8DCC\u67F1\u6A23\u5F0F +World=\u4E16\u754C +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=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 +RCodeDrawPix=\u50CF\u7D20 +FR-Designer-Widget-Style_Alpha=\u4E0D\u900F\u660E\u5EA6 +BorderLayout-North=\u5317 +HJS-Current_Page=\u7576\u524D\u9801 +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=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 +Sort=\u6392\u5E8F +Image-Image_Layout=\u5716\u7247\u5E03\u5C40 +Panel=\u9762\u677F +FR-Designer-Basic_Copy_Build_NO_OK=\u69CB\u5EFA\u7248\u672C\u865F\u5DF2\u7D93\u5FA9\u88FD\u5230\u526A\u8CBC\u677F +All_Border_Line=\u6240\u6709\u6846\u7DDA +FR-Utils-Please_Input_a_New_Name=\u8ACB\u8F38\u5165\u65B0\u7684\u540D\u5B57 +FR-Base_Formula_Plugin=\u63D2\u4EF6\u51FD\u6578 +Two_Rows_Of_Three_Grid=\u5169\u5217\u4E09\u6B04\u7684\u683C\u5B50 +FR-Designer_Certificate_Pass=https\u79D8\u9470 +Bubble-Series_Name=\u7CFB\u5217\u540D +M-New_Multi_Report=\u65B0\u589E\u8907\u5408\u5F0F\u5831\u8868 +BackgroundTexture-PinkTissuePaper=\u7C89\u8272\u7802\u7D19 +Preference-Support_Default_Parent_Calculate=\u9810\u8A2D\u7236\u683C\u8A08\u7B97 +Show_Blank_Column=\u88DC\u5145\u7A7A\u767D\u6B04 +BaiduMap=\u767E\u5EA6\u5730\u5716 +Report-Web_Attributes=\u5831\u8868Web\u5C6C\u6027 +FR-Designer_StyleAlignment-Wrap_Text=\u81EA\u52D5\u63DB\u5217 +Need=\u9700\u8981 +Parameter-Double=\u96D9\u7CBE\u5EA6\u578B +Config_Servlet=\u914D\u7F6E\u9060\u7A0B\u4F3A\u670D\u5668 +Form-Comma=\u9017\u865F +Verify=\u6821\u9A57 +PageSetup-Landscape=\u6A6B\u5411 +Weeks=\u500B\u661F\u671F +FR-Designer-Widget-Style_Title_Background=\u6A19\u984C\u80CC\u666F +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=Double click to copy key to clipboard +Continuum=\u76F8\u9130\u9023\u7E8C +BackgroundTexture-MediumWood=\u6DF1\u8272\u6728\u88FD +Datasource-Column_Index=\u6B04\u5E8F\u865F +Function-Function_File=\u51FD\u6578\u6A94\u6848 +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=Delete plugin +FormulaD-Functions=\u51FD\u6578 +Mobile_Terminal=\u884C\u52D5\u8A2D\u5099 +CheckBox=\u5FA9\u9078\u6846 +FR-Designer-Plugin_Install=Install +Sun=\u65E5 +FR-Designer_ToolBar_Bottom=\u5E95\u90E8\u5DE5\u5177\u6B04 +Widget-Width=\u63A7\u5236\u9805\u5BEC\u5EA6 +Series_Name=\u7CFB\u5217\u540D +Set_Row_Title_Start=\u8A2D\u5B9A\u91CD\u8907\u6A19\u984C\u5217 +HF-Default_Page=\u9810\u8A2D\u9801 +Env_Des=\u5982\u679C\u767B\u9304\u74B0\u5883\u4E2D\u7684\u5831\u8868\u5DE5\u7A0B\u555F\u7528\u4E86\u6B0A\u9650\uFF0C\u5E33\u865F\u548C\u5BC6\u78BC\u7684\u586B\u5BEB\u5FC5\u9808\u5C0D\u61C9\u767B\u9304\u74B0\u5883\u7684\u7528\u6236\u548C\u5BC6\u78BC\u3002 +Widget-User_Defined=\u9810\u5B9A\u7FA9 +Url_location=\u7D55\u5C0D\u8DEF\u5F91 +Disk_File=\u78C1\u789F\u6A94\u6848 +Inside=\u5167\u90E8 +FR-Designer_filedChosen=\u4F9D\u8CF4\u7684\u5B57\u6BB5 +ServerM-Predefined_Styles=\u9810\u5B9A\u7FA9\u6A23\u5F0F +is_need_word_adjust=\u4E0D\u56FA\u5B9A\u5217\u9AD8\u532F\u51FA +Background-Null=\u6C92\u6709\u80CC\u666F +PageSetup-Vertically=\u5782\u76F4\u7F6E\u4E2D +FR-Designer_Root=\u6839\u7BC0\u9EDE +FR-Designer_Form-TextArea=\u6587\u672C\u57DF +ReportServerP-Import_JavaScript=\u5F15\u7528JavaScript +Form-TableTree=\u8868\u683C\u6A39 +Opened=\u5DF2\u958B\u5553 +M_Edit-Delete=\u522A\u9664(D) +Widget-Form_Widget_Container=\u8868\u55AE\u5BB9\u5668 +BindColumn-Summary=\u532F\u7E3D +Sche-Second=\u79D2 +Server-Open_Service_Manager=\u6253\u958B\u4F3A\u670D\u5668\u7BA1\u7406\u5668 +FRFont-Effects=\u7279\u6B8A\u6548\u679C +OtherGroup_Name=\u5176\u4ED6\u7D44\u7684\u540D\u5B57 +Specify=\u6307\u5B9A +Highlight-Click_to_Choose_Property_To_Modify=\u9EDE\u64CA\u9078\u64C7\u8981\u6539\u8B8A\u7684\u5C6C\u6027 +triggered=\u88AB\u89F8\u767C +Double_Bottom_BorderLine=\u96D9\u5E95\u6846\u7DDA +M_Insert-Sub_Report=\u63D2\u5165\u5B50\u5831\u8868 +Unit_Ten=\u5341 +Polybolck=\u805A\u5408\u584A +Select_sort_order=\u9078\u64C7\u6392\u6B04\u9806\u5E8F +HJS-Mail_to=\u6536\u4EF6\u4EBA +StyleAlignment-Left=\u9760\u5DE6\u5C0D\u9F4A +Two_Rows_Of_Two_Grid=\u5169\u5217\u5169\u6B04\u7684\u683C\u5B50 +FR-Designer-Form-Please_Drag_ParaPane=\u8ACB\u62D6\u5165\u53C3\u6578\u9762\u677F +Milliseconds=\u6BEB\u79D2 +DataFunction-None=\u7121 +Delivery=\u50B3\u905E +ColumnSpan=\u6B04\u8DE8\u5EA6 +StyleAlignment-Bottom=\u9760\u4E0B\u5C0D\u9F4A +Read_failure=\u8B80\u53D6\u5931\u6557\uFF0C\u53EF\u80FD\u6E90\u6A94\u6848\u5DF2\u640D\u58DE +Verify-Verify=\u8CC7\u6599\u6821\u9A57 +FR-Designer-Widget-Style_Title_Format=\u6A19\u984C\u683C\u5F0F +FR-Designer_Edit_String_To_Formula=\u662F\u5426\u5C07\u5B57\u5143\u4E32\u7DE8\u8F2F\u70BA\u516C\u5F0F +FR-Base_UnSignIn=\u672A\u767B\u9304 +Every=\u6BCF +CellWrite-Preview_Cell_Content=\u9810\u89BD\u5132\u5B58\u683C\u5167\u5BB9 +FormulaD-Data_Fields=\u8CC7\u6599\u9805 FR-Designer_Role=\u89D2\u8272 FR-Designer_Permissions=\u6B0A\u9650 FR-Designer_Form_Button=\u6309\u9215 -FR-Designer_WF_Name=\u540D\u7A31 \ No newline at end of file +FR-Designer_WF_Name=\u540D\u7A31 From 5a1c073c5adbb71830928ba49fa780c25602d987 Mon Sep 17 00:00:00 2001 From: syoki Date: Mon, 8 May 2017 19:09:39 +0900 Subject: [PATCH 65/72] =?UTF-8?q?=E5=9B=BD=E9=99=85=E5=8C=96=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=20design=E9=83=A8=E5=88=86=201-50=E4=B8=AA=201901-?= =?UTF-8?q?=E7=BB=93=E6=9D=9F=E9=83=A8=E5=88=86key=E7=9A=84=E7=BF=BB?= =?UTF-8?q?=E8=AF=91=E4=BF=AE=E6=94=B9=2020170508=20=E5=BA=84=E5=A5=87syok?= =?UTF-8?q?i?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../design/locale/designer_ja_JP.properties | 250 +++++++++--------- 1 file changed, 125 insertions(+), 125 deletions(-) diff --git a/designer_base/src/com/fr/design/locale/designer_ja_JP.properties b/designer_base/src/com/fr/design/locale/designer_ja_JP.properties index 910ad8ae5e..adccfa1957 100644 --- a/designer_base/src/com/fr/design/locale/designer_ja_JP.properties +++ b/designer_base/src/com/fr/design/locale/designer_ja_JP.properties @@ -1,53 +1,53 @@ # generated time: \u661F\u671F\u56DB \u5341\u4E00\u6708 24 12:02:51 CST 2016 -FR-Designer-BBSLogin_Account=\u30E6\u30FC\u30B6\u30FC\u540D -FR-Designer-BBSLogin_Connection-Failure=\u30CD\u30C3\u30C8\u30EF\u30FC\u30AF\u63A5\u7D9A\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u3002\u73FE\u5728\u306E\u30CD\u30C3\u30C8\u30EF\u30FC\u30AF\u72B6\u614B\u3092\u691C\u67FB\u3057\u3066\u304F\u3060\u3055\u3044 +FR-Designer-BBSLogin_Account=\u30E6\u30FC\u30B6ID +FR-Designer-BBSLogin_Connection-Failure=\u30CD\u30C3\u30C8\u63A5\u7D9A\u5931\u6557\u3001\u30CD\u30C3\u30C8\u72B6\u614B\u3054\u78BA\u8A8D\u4E0B\u3055\u3044 FR-Designer-BBSLogin_Connection-Failure-Tip=\u30D2\u30F3\u30C8 FR-Designer-BBSLogin_Forgot-Password=\u30D1\u30B9\u30EF\u30FC\u30C9\u3092\u5FD8\u308C\u305F FR-Designer-BBSLogin_Login=\u30ED\u30B0\u30A4\u30F3 -FR-Designer-BBSLogin_Login-Failure-Tip=\u30E6\u30FC\u30B6\u30FC\u540D\u307E\u305F\u306F\u30D1\u30B9\u30EF\u30FC\u30C9\u30A8\u30E9\u30FC\u3067\u3059\u3002\u518D\u5EA6\u30ED\u30B0\u30A4\u30F3\u3057\u3066\u304F\u3060\u3055\u3044 +FR-Designer-BBSLogin_Login-Failure-Tip=\u30E6\u30FC\u30B6\u30FCID\u3084\u30D1\u30B9\u30EF\u30FC\u30C9\u30A8\u30E9\u30FC\u3001\u518D\u30ED\u30B0\u30A4\u30F3\u4E0B\u3055\u3044 FR-Designer-BBSLogin_Password=\u30D1\u30B9\u30EF\u30FC\u30C9 -FR-Designer-BBSLogin_Password-Empty-Tip=\u30D1\u30B9\u30EF\u30FC\u30C9\u306F\u7A7A\u6B04\u306B\u3059\u308B\u3053\u3068\u304C\u3067\u304D\u307E\u305B\u3093 -FR-Designer-BBSLogin_Register-Account=\u30A2\u30AB\u30A6\u30F3\u30C8\u767B\u9332 +FR-Designer-BBSLogin_Password-Empty-Tip=\u7A7A\u6B04\u306B\u3067\u304D\u307E\u305B\u3093 +FR-Designer-BBSLogin_Register-Account=\u767B\u9332\u30A2\u30AB\u30A6\u30F3\u30C8 FR-Designer-BBSLogin_Switch-Account=\u30A2\u30AB\u30A6\u30F3\u30C8\u5207\u308A\u66FF\u3048 -FR-Designer-BBSLogin_Privite-Message=\u30D7\u30E9\u30A4\u30D9\u30FC\u30C8\u30E1\u30C3\u30BB\u30FC\u30B8 -FR-Designer-BBSLogin_Times=\u6B21 -FR-Designer-BBSLogin_Username-Empty-Tip=\u30E6\u30FC\u30B6\u30FC\u540D\u306F\u7A7A\u6B04\u306B\u3059\u308B\u3053\u3068\u304C\u3067\u304D\u307E\u305B\u3093 -FR-Designer-Basic_More_Color=\u3082\u3063\u3068\u8272 -FR-Designer-Estate_Any=\u4E0D\u9650 +FR-Designer-BBSLogin_Privite-Message=\u500B\u4EBA\u30E1\u30C3\u30BB\u30FC\u30B8 +FR-Designer-BBSLogin_Times=\u56DE +FR-Designer-BBSLogin_Username-Empty-Tip=\u30E6\u30FC\u30B6\u30FCID\u306F\u7A7A\u306B\u3067\u304D\u307E\u305B\u3093 +FR-Designer-Basic_More_Color=\u3082\u3063\u3068\u591A\u3044 +FR-Designer-Estate_Any=\u5236\u9650\u306A\u3057 FR-Designer-Estate_Default_Font=\u30C7\u30D5\u30A9\u30EB\u30C8\u30D5\u30A9\u30F3\u30C8 -FR-Designer-Estate_Default_Null=\u30C7\u30D5\u30A9\u30EB\u30C8\u3092\u7A7A\u6B04\u306B\u3059\u308B +FR-Designer-Estate_Default_Null=\u30C7\u30D5\u30A9\u30EB\u30C8\u306F\u7A7A FR-Designer-Estate_Default_Text=\u30C7\u30D5\u30A9\u30EB\u30C8\u5024 -FR-Designer-Estate_Parameter_Null_Text=\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC\u3092\u7A7A\u6B04\u306B\u3057\u8868\u793A\u3059\u308B -FR-Designer-Estate_Radio-Group=\u4E0D\u52D5\u7523\u696D\u901A\u7528\u30DC\u30BF\u30F3\u30BB\u30C3\u30C8\u30B3\u30F3\u30C8\u30ED\u30FC\u30EB -FR-Designer-Estate_Selected_Font=\u9078\u629E\u3057\u305F\u30D5\u30A9\u30F3\u30C8 -FR-Designer-Estate_Widget_Value=\u30B3\u30F3\u30C8\u30ED\u30FC\u30EB\u5024 -FR-Designer-Layout_Adaptive_Layout=\u81EA\u9069\u5FDC\u914D\u7F6E +FR-Designer-Estate_Parameter_Null_Text=\u30D1\u30E9\u30E1\u30FC\u30BF\u304C\u7A7A\u306B\u306A\u308B\u6642\u306E\u8868\u793A\u306F +FR-Designer-Estate_Radio-Group=\u4E00\u822C\u30E9\u30B8\u30AA\u30DC\u30BF\u30F3\u30B0\u30EB\u30FC\u30D7\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8 +FR-Designer-Estate_Selected_Font=\u30D5\u30A9\u30F3\u30C8\u3092\u9078\u629E +FR-Designer-Estate_Widget_Value=\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u5024 +FR-Designer-Layout_Adaptive_Layout=\u81EA\u5DF1\u8ABF\u6574\u30EC\u30A4\u30A2\u30A6\u30C8 FR-Designer-Output_Background_Set=\u80CC\u666F\u8A2D\u5B9A FR-Designer-Output_Default_Background=\u30C7\u30D5\u30A9\u30EB\u30C8\u80CC\u666F -FR-Designer-Output_Excel_Page=Excel\u30A2\u30A6\u30C8\u30D7\u30C3\u30C8(\u30DA\u30FC\u30B8\u5225\u30A2\u30A6\u30C8\u30D7\u30C3\u30C8) -FR-Designer-Output_Excel_Sheet=Excel\u30A2\u30A6\u30C8\u30D7\u30C3\u30C8(\u30DA\u30FC\u30B8\u5225\u30B7\u30FC\u30C8\u5225\u30A2\u30A6\u30C8\u30D7\u30C3\u30C8) -FR-Designer-Output_Excel_Simple=Excel\u30A2\u30A6\u30C8\u30D7\u30C3\u30C8(\u5143\u306E\u307E\u307E\u30A2\u30A6\u30C8\u30D7\u30C3\u30C8) -FR-Designer-Plugin_PluginMarket_Coding=\u30D7\u30E9\u30B0\u30A4\u30F3\u30DE\u30FC\u30B1\u30C3\u30C8\u306F\u958B\u767A\u4E2D\u3067\u3059\u3002\u3054\u671F\u5F85\u304F\u3060\u3055\u3044 -FR-Desinger-Plugin_Updater_UpdateAndUpgrade=\u66F4\u65B0\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8 -FR-Desinger-Plugin_Updater_Checking_Jar_Update=Jar\u30D1\u30C3\u30B1\u30FC\u30B8\u30C1\u30A7\u30C3\u30AF\u66F4\u65B0\u4E2D -FR-Desinger-Plugin_Updater_Checking_Version_Update=\u30D0\u30FC\u30B8\u30E7\u30F3\u30C1\u30A7\u30C3\u30AF\u66F4\u65B0\u4E2D -FR-Desinger-Plugin_Updater_Update=\u66F4\u65B0 -FR-Desinger-Plugin_Updater_Upgrade=\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8 -FR-Desinger-Plugin_Updater_Restore=\u5FA9\u5143 -FR-Desinger-Plugin_Updater_New_Version_Available=\u65B0\u30D0\u30FC\u30B8\u30E7\u30F3\u6709\u308A -FR-Desinger-Plugin_Updater_JarUpdate=Jar\u30D1\u30C3\u30B1\u30FC\u30B8\u66F4\u65B0 -FR-Desinger-Plugin_Updater_VersionUpgrade=\u30D0\u30FC\u30B8\u30E7\u30F3\u30A2\u30C3\u30D7 -FR-Desinger-Plugin_Updater_Previous_Version=\u65E7\u30D0\u30FC\u30B8\u30E7\u30F3\u307E\u3067\u306B -FR-Desinger-Plugin_Updater_Current_Version=\u73FE\u30D0\u30FC\u30B8\u30E7\u30F3 -FR-Desinger-Plugin_Updater_Not_Install_Version=\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u30D0\u30FC\u30B8\u30E7\u30F3\u3067\u306F\u306A\u3044 +FR-Designer-Output_Excel_Page=Excel\u51FA\u529B(\u6539\u9801) +FR-Designer-Output_Excel_Sheet=Excel\u51FA\u529B(\u9801\u5225\u30B7\u30FC\u30C8\u5225) +FR-Designer-Output_Excel_Simple=Excel\u51FA\u529B(\u6A19\u6E96) +FR-Designer-Plugin_PluginMarket_Coding=\u30D7\u30E9\u30B0\u30A4\u30F3\u30B9\u30C8\u30A2\u958B\u767A\u4E2D\u3001\u304A\u5F85\u3061\u4E0B\u3055\u3044 +FR-Desinger-Plugin_Updater_UpdateAndUpgrade=\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8\u30A2\u30C3\u30D7\u30B0\u30EC\u30FC\u30C8 +FR-Desinger-Plugin_Updater_Checking_Jar_Update=Jar\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8\u691C\u8A3C\u4E2D +FR-Desinger-Plugin_Updater_Checking_Version_Update=\u30D1\u30FC\u30B8\u30E7\u30F3\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8\u691C\u8A3C\u4E2D +FR-Desinger-Plugin_Updater_Update=\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8 +FR-Desinger-Plugin_Updater_Upgrade=\u30A2\u30C3\u30D7\u30B0\u30EC\u30FC\u30C8 +FR-Desinger-Plugin_Updater_Restore=\u30EA\u30AB\u30D0\u30EA +FR-Desinger-Plugin_Updater_New_Version_Available=\u65B0\u3057\u3044\u30D0\u30FC\u30B8\u30E7\u30F3\u304C\u3042\u308A\u307E\u3059 +FR-Desinger-Plugin_Updater_JarUpdate=Jar\u30D5\u30A1\u30A4\u30EB\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8 +FR-Desinger-Plugin_Updater_VersionUpgrade=\u30D0\u30FC\u30B8\u30E7\u30F3\u30A2\u30C3\u30D7\u30B0\u30EC\u30FC\u30C8\uFF1A +FR-Desinger-Plugin_Updater_Previous_Version=\u65E7\u30D0\u30FC\u30B8\u30E7\u30F3\u306B\u623B\u308A\u307E\u3059\u304B\uFF1F +FR-Desinger-Plugin_Updater_Current_Version=\u73FE\u5728\u306E\u30D0\u30FC\u30B8\u30E7\u30F3 +FR-Desinger-Plugin_Updater_Not_Install_Version=\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u7528\u30D0\u30FC\u30B8\u30E7\u30F3\u3067\u306F\u3042\u308A\u307E\u305B\u3093 FR-Desinger-Plugin_Updater_Latest_Version=\u6700\u65B0\u30D0\u30FC\u30B8\u30E7\u30F3 -FR-Desinger-Plugin_Updater_Jar_Downloading=Jar\u30D1\u30C3\u30B1\u30FC\u30B8\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9\u5B8C\u6210\u5F85\u3061 -FR-Desinger-Plugin_Updater_Version_Downloading=\u30D0\u30FC\u30B8\u30E7\u30F3\u30A2\u30C3\u30D7\u30D1\u30C3\u30B1\u30FC\u30B8\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9\u5B8C\u6210\u5F85\u3061 -FR-Desinger-Plugin_Updater_Restart_Designer=\u30C7\u30B6\u30A4\u30CA\u30FC\u518D\u8D77\u52D5 -FR-Desinger-Plugin_Updater_Connect_VersionUpdateServer_Failed=\u30D0\u30FC\u30B8\u30E7\u30F3\u66F4\u65B0\u30B5\u30FC\u30D0\u30FC\u63A5\u7D9A\u3067\u304D\u306A\u3044 -FR-Desinger-Plugin_Updater_Connect_VersionUpgradeServer_Failed=\u30D0\u30FC\u30B8\u30E7\u30F3\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8\u30B5\u30FC\u30D0\u30FC\u63A5\u7D9A\u3067\u304D\u306A\u3044 -FR-Desinger-Plugin_Updater_Already_Latest_Version=\u65E2\u306B\u6700\u65B0\u30D0\u30FC\u30B8\u30E7\u30F3 -FR-Desinger-Plugin_Updater_Backup_OldJar_To=\u65E7Jar\u30D1\u30C3\u30B1\u30FC\u30B8\u306F\u65E2\u306B\u30D0\u30C3\u30AF\u30A2\u30C3\u30D7 +FR-Desinger-Plugin_Updater_Jar_Downloading=Jar\u30D5\u30A1\u30A4\u30EB\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9\u7D42\u4E86\u3092\u5F85\u3063\u3066\u3044\u308B +FR-Desinger-Plugin_Updater_Version_Downloading=\u30A2\u30C3\u30D7\u30B0\u30EC\u30FC\u30C8\u30D1\u30C3\u30B1\u30FC\u30B8\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9\u3092\u5F85\u3063\u3066\u3044\u308B +FR-Desinger-Plugin_Updater_Restart_Designer=\u30C7\u30B6\u30A4\u30CA\u30FC\u3092\u518D\u8D77\u52D5 +FR-Desinger-Plugin_Updater_Connect_VersionUpdateServer_Failed=\u30D0\u30FC\u30B8\u30E7\u30F3\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8\u30B5\u30FC\u30D0\u306B\u63A5\u7D9A\u3067\u304D\u306A\u3044 +FR-Desinger-Plugin_Updater_Connect_VersionUpgradeServer_Failed=\u30D0\u30FC\u30B8\u30E7\u30F3\u30A2\u30C3\u30D7\u30B0\u30EC\u30FC\u30C8\u30B5\u30FC\u30D0\u306B\u63A5\u7D9A\u3067\u304D\u306A\u3044 +FR-Desinger-Plugin_Updater_Already_Latest_Version=\u6700\u65B0\u30D0\u30FC\u30B8\u30E7\u30F3\u306B\u306A\u308A\u307E\u3057\u305F +FR-Desinger-Plugin_Updater_Backup_OldJar_To=\u53E4\u3044Jar\u30D5\u30A1\u30A4\u30EB\u3092\u4E0B\u8A18\u306B\u30D0\u30C3\u30AF\u30A2\u30C3\u30D7\u3057\u307E\u3057\u305F\uFF1A FR-Desinger-Plugin_Updater_Backup_OldVersion_To=\u65E7\u30D0\u30FC\u30B8\u30E7\u30F3\u30D1\u30C3\u30B1\u30FC\u30B8\u306F\u65E2\u306B\u30D0\u30C3\u30AF\u30A2\u30C3\u30D7 FR-Desinger-Plugin_Updater_Please_Restart=\u30C7\u30B6\u30A4\u30CA\u30FC\u306F\u518D\u8D77\u52D5\u3057\u3066\u304F\u3060\u3055\u3044 FR-Desinger-Plugin_Updater_Jar_Restore=\u65E7Jar\u30D1\u30C3\u30B1\u30FC\u30B8\u5FA9\u5143 @@ -134,7 +134,7 @@ FR-Designer_M-Exit=\u9000\u51FA FR-Designer_M-Help=\u30D8\u30EB\u30D7 FR-Designer_M-Insert=\u633F\u5165 FR-Designer_M-Repeat-Freeze=\u91CD\u8907\u3068\u30D5\u30EA\u30FC\u30BA\u8A2D\u5B9A -FR-Designer_M-Server=\u30B5\u30FC\u30D0\u30FC +FR-Designer_M-Server=\u30B5\u30FC\u30D0 FR-Designer_M-SwitchWorkspace=\u4F5C\u696D\u76EE\u6B21\u5207\u308A\u66FF\u3048 FR-Designer_M-Template=\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8 FR-Designer_MDX_Explain=\u6587\u6CD5\u66F8\u5F0F\u306FMDX\u6587\u6CD5\u3092\u53C2\u8003\u3002\n\u4F8B\u3048\u3070\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\u6CE8\uFF1ACOLUMNS\u3001ROWS\u306F0\u30011\u3092\u4F7F\u7528\u3057\u3066\u4EE3\u66FF\u53EF\u80FD\u3067\u3059\u3002\u30AF\u30A8\u30EA\u8EF8\u306F\u4E8C\u3064\u306E\u8EF8\u623B\u3057\u306B\u306E\u307F\u30B5\u30DD\u30FC\u30C8\u3057\u307E\u3059\u3002 @@ -231,7 +231,7 @@ FR-Designer-Collect_Information_Successfully=\u53CE\u96C6\u6210\u529F FR-Designer_Event_Set=\u30A4\u30D9\u30F3\u30C8\u8A2D\u5B9A FR-Designer_Blow_set=\u4EE5\u4E0B\u8A2D\u5B9A FR-Designer_I_Want_To_Set_Single=\u5F53\u8A72\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u3092\u5358\u72EC\u8A2D\u5B9A -FR-Designer_Using_Server_Report_View_Settings=\u30B5\u30FC\u30D0\u30FC\u8A2D\u5B9A\u63A1\u7528 +FR-Designer_Using_Server_Report_View_Settings=\u30B5\u30FC\u30D0\u8A2D\u5B9A\u63A1\u7528 FR-Designer_ErrorHandlerTemplate=\u51FA\u9519\u6A21\u677F\u5B9A\u4E49 FR-Designer_Save_Path=\u4FDD\u5B58\u8DEF\u5F84 FR-Designer_Chart_Acc_Set=\u7CBE\u78BA\u8A2D\u5B9A @@ -283,7 +283,7 @@ FR-Designer_PreStyle=\u9810\u5B9A\u7FA9\u6A23\u5F0F FR-Designer_Loading=\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9\u3057\u3066\u3044\u307E\u3059 FR-Designer_Table=\u8868 FR-Designer_Name=\u540D\u79F0 -FR-Designer_EmailPane-tips=\u3042\u306A\u305F\u306F\u3001ABC\u306F\u3001\u30D1\u30E9\u30E1\u30FC\u30BF\u540D\u3092\u30D1\u30E9\u30E1\u30FC\u30BF\u3068\u3057\u3066${ABC}\u3092\u5165\u529B\u3059\u308B\u3053\u3068\u304C\u3067\u304D\u307E\u3059\u3088\u3046\u306B\u3001\u5F0F\u3068\u3057\u3066${\u4ECA\u65E5\uFF08\uFF09}\uFF1A\u30BF\u30A4\u30C8\u30EB\u30C6\u30AD\u30B9\u30C8"${\u4ECA\u65E5\uFF08\uFF09}\u7D71\u8A08\u306F"\u3001"$ {\u306B\u30A2\u30C9\u30EC\u30B9\u6307\u5B9A\u3055\u308C\u3066\u3044\u308BP}\u3001123@gmail.com\u3001\u30DE\u30A4\u30AF\u306F\u3001\u30E6\u30FC\u30B6\u30FC\u540D\u30E6\u30FC\u30B6\u30FC\u7BA1\u7406\u30D7\u30E9\u30C3\u30C8\u30D5\u30A9\u30FC\u30E0\u306B\u4FDD\u5B58\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u30DE\u30A4\u30AF "\u3001 +FR-Designer_EmailPane-tips=\u3042\u306A\u305F\u306F\u3001ABC\u306F\u3001\u30D1\u30E9\u30E1\u30FC\u30BF\u540D\u3092\u30D1\u30E9\u30E1\u30FC\u30BF\u3068\u3057\u3066${ABC}\u3092\u5165\u529B\u3059\u308B\u3053\u3068\u304C\u3067\u304D\u307E\u3059\u3088\u3046\u306B\u3001\u5F0F\u3068\u3057\u3066${\u4ECA\u65E5\uFF08\uFF09}\uFF1A\u30BF\u30A4\u30C8\u30EB\u30C6\u30AD\u30B9\u30C8"${\u4ECA\u65E5\uFF08\uFF09}\u7D71\u8A08\u306F"\u3001"$ {\u306B\u30A2\u30C9\u30EC\u30B9\u6307\u5B9A\u3055\u308C\u3066\u3044\u308BP}\u3001123@gmail.com\u3001\u30DE\u30A4\u30AF\u306F\u3001\u30E6\u30FC\u30B6\u540D\u30E6\u30FC\u30B6\u7BA1\u7406\u30D7\u30E9\u30C3\u30C8\u30D5\u30A9\u30FC\u30E0\u306B\u4FDD\u5B58\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u30DE\u30A4\u30AF "\u3001 FR-Designer_EmailPane-mailContent=\u30E1\u30FC\u30EB\u672C\u6587 FR-Designer_EmailPane-BCC=\u5BC6\u9001 FR-Designer_EmailPane-mailSubject=\u30E1\u30FC\u30EB\u30BF\u30A4\u30C8\u30EB @@ -325,12 +325,12 @@ FR-Designer_Image=\u30A4\u30E1\u30FC\u30B8 FR-Designer_Flash_Print=Flash\u30D7\u30EA\u30F3\u30C8 FR-Designer_PDF_Print=PDF\u30D7\u30EA\u30F3\u30C8 FR-Designer_Applet_Print=\u30A2\u30D7\u30EC\u30C3\u30C8\u5370\u5237 -FR-Designer_Server_Print=\u30B5\u30FC\u30D0\u30FC\u7AEF\u672B\u30D7\u30EA\u30F3\u30C8 +FR-Designer_Server_Print=\u30B5\u30FC\u30D0\u7AEF\u672B\u30D7\u30EA\u30F3\u30C8 FR-Designer_Use_ToolBar=\u30C4\u30FC\u30EB\u30D0\u30FC\u4F7F\u7528 FR-Designer_Report_Show_Location=\u5E33\u7968\u8868\u793A\u4F4D\u7F6E FR-Designer_Is_Paint_Page=\u753B\u50CF\u3067\u8868\u793A FR-Designer_IS_Auto_Scale=iframeiframe\u306F\u3081\u8FBC\u307F\u6642\u81EA\u52D5\u30BA\u30FC\u30E0 -FR-Designer_IS_TD_HEAVY_EXPORT=\u91CD\u65B9\u6CD5\u683C\u5B50\u3092\u51FA\u529B +FR-Designer_IS_TD_HEAVY_EXPORT=\u91CD\u65B9\u6CD5\u30BB\u30EB\u3092\u51FA\u529B FR-Designer_Top=\u4E0A FR-Designer_Bottom=\u4E0B FR-Designer-Collect_OSXTips=\u30D2\u30F3\u30C8\uFF1A\u30D7\u30EC\u30B9 control + v \u30A2\u30AF\u30C6\u30A3\u30D9\u30FC\u30B7\u30E7\u30F3\u30B3\u30FC\u30C9\u3092\u8CBC\u308A\u4ED8\u3051 @@ -522,7 +522,7 @@ FR-Designer_Custom_Job_Description=\u8A18\u8FF0 FR-Designer_Property=\u5C5E\u6027 FR-Designer_ClassName=\u985E\u540D FR-Designer_Polyblock_Edit=\u30A2\u30B0\u30EA\u30B2\u30FC\u30B7\u30E7\u30F3\u30D6\u30ED\u30C3\u30AF\u7DE8\u96C6 -FR-Designer_Function_Description_Area_Text=\u3053\u306E\u30AF\u30E9\u30B9\u306F\u7D99\u627F\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059"com.fr.script.AbstractFunction"\u3002\u3092\u7D99\u627F\u3059\u3079\u304D\u3067\u3059\u3002\u30B3\u30F3\u30D1\u30A4\u30EB\u5F8C\u306E\u985E\u30D5\u30A1\u30A4\u30EB\u3092\nJ2EE\u30B5\u30FC\u30D0\u30FC "{R1}" \u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u3002\u306B\u30B3\u30D4\u30FC\u3057\u3066\u3001class\u306B\u5BFE\u5FDC\u3059\u308Bjava\u30D5\u30A1\u30A4\u30EB\u3082\u5F53\u76EE\u6B21\u306B\u7F6E\u3044\u3066\u304F\u3060\u3055\u3044\u3002\n\u4F8B\u3048\u3070\uFF1A{R2} +FR-Designer_Function_Description_Area_Text=\u3053\u306E\u30AF\u30E9\u30B9\u306F\u7D99\u627F\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059"com.fr.script.AbstractFunction"\u3002\u3092\u7D99\u627F\u3059\u3079\u304D\u3067\u3059\u3002\u30B3\u30F3\u30D1\u30A4\u30EB\u5F8C\u306E\u985E\u30D5\u30A1\u30A4\u30EB\u3092\nJ2EE\u30B5\u30FC\u30D0 "{R1}" \u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u3002\u306B\u30B3\u30D4\u30FC\u3057\u3066\u3001class\u306B\u5BFE\u5FDC\u3059\u308Bjava\u30D5\u30A1\u30A4\u30EB\u3082\u5F53\u76EE\u6B21\u306B\u7F6E\u3044\u3066\u304F\u3060\u3055\u3044\u3002\n\u4F8B\u3048\u3070\uFF1A{R2} FR-Designer_PageSetup_Horizontal=\u6A2A\u65B9\u5411 FR-Designer_PageSetup_Vertical=\u7E26\u65B9\u5411 FR-Designer_Gradient_Direction=\u65B9\u5411\u3092\u5F90\u3005\u306B\u5909\u5316 @@ -637,7 +637,7 @@ HF-Number_of_Page=\u7DCF\u30DA\u30FC\u30B8\u6570 FR-Designer-Tree_Height=\u9AD8\u3055 Owner=\u30AA\u30FC\u30CA\u30FC Home=\u30E1\u30A4\u30F3\u30DA\u30FC\u30B8 -FR-Server_Embedded_Server_Stop=\u5185\u8535\u30B5\u30FC\u30D0\u30FC-\u4E00\u6642\u505C\u6B62 +FR-Server_Embedded_Server_Stop=\u5185\u8535\u30B5\u30FC\u30D0-\u4E00\u6642\u505C\u6B62 FR-Designer-Plugin_Detecting_Update=\u66F4\u65B0\u3092\u30C1\u30A7\u30C3\u30AF\u3057\u3066\u3044\u307E\u3059 HF-Whether_to_define_the_selected_type=\u9078\u629E\u3055\u308C\u305F\u30BF\u30A4\u30D7\u3092\u5B9A\u7FA9\u3057\u307E\u3059\u304B StyleAlignment-Right=\u53F3\u8A70\u3081 @@ -722,7 +722,7 @@ CellWrite-Show_As_Image=\u753B\u50CF\u3067\u5185\u5BB9\u3092\u8868\u793A ShowAsDownload=\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9\u30EA\u30F3\u30AF\u3067\uFF12\u9032\u6CD5\u306E\u5185\u5BB9\u3092\u8868\u793A Form-ComboCheckBox=\u30C1\u30A7\u30C3\u30AF\u30DC\u30C3\u30AF\u30B9 BackgroundTexture-WovenMat=\u7E54\u7269 -BindColumn-Custom_Data_Appearance=\u30E6\u30FC\u30B6\u30FC\u5B9A\u7FA9\u306F\u8868\u793A\u3059\u308A\u307E\u3059 +BindColumn-Custom_Data_Appearance=\u30E6\u30FC\u30B6\u5B9A\u7FA9\u306F\u8868\u793A\u3059\u308A\u307E\u3059 Actived=\u6D3B\u52D5\u7684 Env-Local_Directory=\u30ED\u30FC\u30AB\u30EB\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA Form-Colon=\u30B3\u30ED\u30F3 @@ -789,7 +789,7 @@ RWA-Smart_Add_Cell_Group=\u30A4\u30F3\u30C6\u30EA\u30B8\u30A7\u30F3\u30C8\u6DFB\ MConfig-CancelButton=\u30AD\u30E3\u30F3\u30BB\u30EB Function-Choose_Function_Class=\u95A2\u6570\u30AF\u30E9\u30B9\u3092\u9078\u629E\u3059\u308B LatLng=\u5EA7\u6A19 -DS-Server_TableData=\u30B5\u30FC\u30D0\u30FC\u30C7\u30FC\u30BF\u30BB\u30C3\u30C8 +DS-Server_TableData=\u30B5\u30FC\u30D0\u30C7\u30FC\u30BF\u30BB\u30C3\u30C8 BackgroundTexture-GreenMarble=\u7DD1\u8272\u306E\u5927\u7406\u77F3 read_time_out=\u30ED\u30FC\u30C9\u306E\u30BF\u30A4\u30E0\u30A2\u30A6\u30C8 JavaScript-Commit_to_Database=\u5165\u5EAB\u63D0\u51FA @@ -840,7 +840,7 @@ BackgroundTexture-BlueTissuePaper=\u9752\u3044\u30B5\u30F3\u30C9\u30DA\u30FC\u30 ReportD-Export_Hided_Row=\u96A0\u3057\u305F\u884C\u3092\u5C0E\u51FA FR-Custom_styles_lost=\u30AB\u30B9\u30BF\u30DE\u30A4\u30BA\u30B9\u30BF\u30A4\u30EB\u306F\u5931\u308F\u308C\u307E\u3057\u305F Env-Des2=Servlet\u306E\u4F4D\u7F6E\u306F\u30DB\u30B9\u30C8\u30B3\u30F3\u30D4\u30E5\u30FC\u30BF\u540D\u3001\u30A4\u30F3\u30BF\u30FC\u30D5\u30A7\u30A4\u30B9\u3001WEB\u30A2\u30D7\u30EA\u30B1\u30FC\u30B7\u30E7\u30F3\u3001 -Env-Des1=\u5E33\u7968\u30B5\u30FC\u30D0\u30FC\u304C\u3042\u308BWEB-INF\u76EE\u6B21\u3092\u9078\u629E\u3057\u3066\u304F\u3060\u3055\u3044 +Env-Des1=\u5E33\u7968\u30B5\u30FC\u30D0\u304C\u3042\u308BWEB-INF\u76EE\u6B21\u3092\u9078\u629E\u3057\u3066\u304F\u3060\u3055\u3044 PageSetup-Placement_Center_on_Page=\u4E2D\u592E\u63C3\u3048 sure_to_delete=\u524A\u9664\u3092\u78BA\u8A8D\u3057\u307E\u3059 Already_exists_not_add_repeat=\u3059\u3067\u306B\u5B58\u5728\u3057\u3066\u3044\u308B\u3001\u30EA\u30D4\u30FC\u30C8\u3092\u8FFD\u52A0\u3057\u306A\u3044\u3067\u304F\u3060\u3055\u3044 @@ -936,7 +936,7 @@ Covered_All=\u5168\u3066\u8986\u3046 Day=\u65E5 External=\u5916\u90E8 Black_Font=\u592A\u5B57 -LOG-Report_Server_IS_Started=\u5E33\u7968\u30B5\u30FC\u30D0\u30FC\u3082\u3046\u8D77\u52D5\u3055\u308C\u3066\u3044\u307E\u3059 +LOG-Report_Server_IS_Started=\u5E33\u7968\u30B5\u30FC\u30D0\u3082\u3046\u8D77\u52D5\u3055\u308C\u3066\u3044\u307E\u3059 Tips\:You_Can_Input_B1_To_Input_The_Data_Of_The_First_Row_Second_Column=\u30D2\u30F3\u30C8\:B1\u3092\u5165\u529B FR-Designer_ChooseOneButton=\u30B3\u30F3\u30C8\u30ED\u30FC\u30EB\u3092\u4E00\u3064\u9078\u629E\u3057\u3066\u304B\u3089\u8FFD\u52A0\u3057\u3066\u304F\u3060\u3055\u3044 Widget-Sizing=\u5927\u304D\u3055\u8ABF\u6574 @@ -965,7 +965,7 @@ List-Need_Head=\u30EA\u30B9\u30C8\u30D8\u30C3\u30C9\u304C\u5FC5\u8981\u3067\u305 FR-Designer-Plugin_Has_Been_Installed=\u30D7\u30E9\u30B0\u30A4\u30F3\u306F\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u3055\u308C\u3066\u3044\u307E\u3059\u3002\u30D7\u30E9\u30B0\u30A4\u30F3\u3092 FR-Widget_Tree_And_Table=\u30B3\u30F3\u30C8\u30ED\u30FC\u30EB\u30C4\u30EA\u30FC\u3068\u30B3\u30F3\u30C8\u30ED\u30FC\u30EB\u8868 FR-Base_Help=\u30D8\u30EB\u30D7 -FR-Designer-Plugin_Update_Successful=\u30D7\u30E9\u30B0\u30A4\u30F3\u30A2\u30C3\u30D7\u30B0\u30EC\u30FC\u30C9\u306B\u6210\u529F\u3057\u307E\u3057\u305F\u3002\u30B5\u30FC\u30D0\u30FC\u3092 +FR-Designer-Plugin_Update_Successful=\u30D7\u30E9\u30B0\u30A4\u30F3\u30A2\u30C3\u30D7\u30B0\u30EC\u30FC\u30C9\u306B\u6210\u529F\u3057\u307E\u3057\u305F\u3002\u30B5\u30FC\u30D0\u3092 August=\u516B\u6708 LOG-Is_Being_Openned=\u958B\u3044\u3066\u3044\u307E\u3059 BackgroundTexture-Oak=\u30AA\u30FC\u30AF @@ -1093,7 +1093,7 @@ ReportServerP-Report_server_parameter=\u5E33\u7968\u30B5\u30FC\u30D0\u30D1\u30E9 JavaScript-Form_Submit=\u8868\u63D0\u51FA Horizontal-Split_Layout=\u6C34\u5E73\u5206\u5272\u914D\u7F6E BorderLayout-Center=\u4E2D -INFO-Reset_Webapp=\u30A2\u30D7\u30EA\u30B1\u30FC\u30B7\u30E7\u30F3\u30B5\u30FC\u30D0\u30FC\u306E\u518D\u8A2D\u5B9A +INFO-Reset_Webapp=\u30A2\u30D7\u30EA\u30B1\u30FC\u30B7\u30E7\u30F3\u30B5\u30FC\u30D0\u306E\u518D\u8A2D\u5B9A FR-Designer_Text=\u30C6\u30AD\u30B9\u30C8 IN_and_INOUT_type_not_as_cursor=IN\u304A\u3088\u3073INOUT\u30BF\u30A4\u30D7\u3067\u306F\u306A\u3044\u30AB\u30FC\u30BD\u30EB\u3068 Main_Axis=\u30E1\u30A4\u30F3\u5EA7\u6A19\u8EF8 @@ -1115,7 +1115,7 @@ M_Edit-Bring_Forward=\u524D\u9762\u3078\u79FB\u52D5(F) Choose_All=\u5168\u9078\u629E Form-RadioGroup=\u30E9\u30B8\u30AA\u30DC\u30BF\u30F3\u30B0\u30EB\u30FC\u30D7 FR-Base_Remove=\u524A\u9664 -FR-Remote_Connect2Server_Again=\u63A5\u7D9A\u304C\u4E2D\u65AD\u3057\u307E\u3057\u305F\u3002\u518D\u5EA6\u30B5\u30FC\u30D0\u30FC\u306B\u63A5\u7D9A\u3057\u307E\u3059\u304B\u3002 +FR-Remote_Connect2Server_Again=\u63A5\u7D9A\u304C\u4E2D\u65AD\u3057\u307E\u3057\u305F\u3002\u518D\u5EA6\u30B5\u30FC\u30D0\u306B\u63A5\u7D9A\u3057\u307E\u3059\u304B\u3002 Semicolon=\u5206\u53F7 StyleFormat-Category=\u5206\u985E Report_Template=\u5E33\u7968\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8 @@ -1126,7 +1126,7 @@ Schedule-The_selected_file_must_be_end_with_filter=\u9078\u629E\u30D5\u30A1\u30A Provide=\u63D0\u4F9B FormulaD-Math_&_Trig=\u6570\u5B66\u95A2\u6570\u3068\u4E09\u89D2\u95A2\u6570 FR-Designer-StyleAlignment_Right=\u53F3\u5BC4\u305B -Error_TableDataNameRepeat=\u3059\u3067\u306B\u30B5\u30FC\u30D0\u30FC\u30C7\u30FC\u30BF\u30BB\u30C3\u30C8\u306B\u5B58\u5728\u3059\u308B\u304B\u8907\u6570\u306E\u30C7\u30FC\u30BF\u30BB\u30C3\u30C8\u540D\u304C\u91CD +Error_TableDataNameRepeat=\u3059\u3067\u306B\u30B5\u30FC\u30D0\u30C7\u30FC\u30BF\u30BB\u30C3\u30C8\u306B\u5B58\u5728\u3059\u308B\u304B\u8907\u6570\u306E\u30C7\u30FC\u30BF\u30BB\u30C3\u30C8\u540D\u304C\u91CD Choose_None=\u9078\u629E\u3057\u306A\u3044 File-tree=\u30D5\u30A1\u30A4\u30EB\u30C4\u30EA\u30FC FRFont-bold=\u592A\u5B57 @@ -1228,7 +1228,7 @@ Interface=\u30A4\u30F3\u30BF\u30FC\u30D5\u30A7\u30A4\u30B9 FR-Designer-Beyond_Bounds= seconds=\u79D2 Auto-Build=\u81EA\u52D5\u7684\u306B\u30D3\u30EB\u30C9 -FR-Designer-Plugin_Install_Successful=\u5F53\u8A72\u30D7\u30E9\u30B0\u30A4\u30F3\u30C7\u30B6\u30A4\u30CA\u30FC\u3068\u30B5\u30FC\u30D0\u30FC\u3092\u518D\u8D77\u52D5\u3059\u308B\u969B\u306B +FR-Designer-Plugin_Install_Successful=\u5F53\u8A72\u30D7\u30E9\u30B0\u30A4\u30F3\u30C7\u30B6\u30A4\u30CA\u30FC\u3068\u30B5\u30FC\u30D0\u3092\u518D\u8D77\u52D5\u3059\u308B\u969B\u306B Template_Path=\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u30EB\u30FC\u30C8 FR-Designer-FRFont_Bold=\u592A\u304F\u3059\u308B Poly_Name=\u805A\u5408\u30E2\u30B8\u30E5\u30FC\u30EB\u540D @@ -1355,7 +1355,7 @@ server_disconnected=\u5207\u65AD\u3055\u308C\u305F ParameterD-Parameter_name_cannot_be_null=\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC\u540D\u306F\u7A7A\u5024\u306B\u306A\u3063\u3066\u306F\u3044\u3051\u307E\u305B\u3093 FR-Designer-Plugin_Version_Is_Lower_Than_Current=\u30A2\u30C3\u30D7\u30B0\u30EC\u30FC\u30C9\u30D1\u30C3\u30AF\u306E\u30D7\u30E9\u30B0\u30A4\u30F3\u30D0\u30FC\u30B8 RWA-NotChange_Unmodified=\u306E\u6539\u6B63\u3092\u66F4\u65B0\u3057\u306A\u3044 -User_Information=\u30E6\u30FC\u30B6\u30FC\u60C5\u5831 +User_Information=\u30E6\u30FC\u30B6\u60C5\u5831 Custom_styles_lost=\u30AB\u30B9\u30BF\u30DE\u30A4\u30BA\u30B9\u30BF\u30A4\u30EB\u306F\u5931\u308F\u308C\u307E\u3057\u305F PageSetup-Margin=\u4F59\u767D M-New_FormBook=\u8868\u3092\u65B0\u898F\u4F5C\u6210 @@ -1429,8 +1429,8 @@ ReportColumns-Columns_to=\u306E\u3088\u3046\u306B\u6539\u5217\u3059\u308B Transparent=\u900F\u660E Parameter-Integer=\u6574\u6570\u578B PDF-Print_Setting=PDF\u5370\u5237\u8A2D\u5B9A -Server-Embedded_Server=\u5185\u8535\u30B5\u30FC\u30D0\u30FC -M_Server-Server_Config_Manager=\u30B5\u30FC\u30D0\u30FC\u914D\u7F6E(S) +Server-Embedded_Server=\u5185\u8535\u30B5\u30FC\u30D0 +M_Server-Server_Config_Manager=\u30B5\u30FC\u30D0\u914D\u7F6E(S) FR-Utils-Would_you_like_to_cover_the_current_file=\u30AB\u30EC\u30F3\u30C8\u30D5\u30A1\u30A4\u30EB\u3092\u4E0A\u66F8\u304D\u3057\u307E\u3059\u304B\uFF1F CellWrite-InsertRow_COPY=\u5143\u306E\u5024 Edit_String_To_Formula=\u30AD\u30E3\u30E9\u30AF\u30BF\u30FC\u6587\u5B57\u5217\u3092\u7DE8\u96C6\u3057\u3066\u516C\u5F0F\u3068\u3059\u308B\u304B\u5426\u304B @@ -1444,7 +1444,7 @@ M-Form_Preview=\u8868\u30D7\u30EC\u30D3\u30E5\u30FC Form-Basic_Properties=\u57FA\u672C\u5C5E\u6027 quote=\u5F15\u7528 Thu=\u6728 -Collect-Collect_User_Information=\u30E6\u30FC\u30B6\u30FC\u60C5\u5831\u3092\u53CE\u96C6\u3059\u308B +Collect-Collect_User_Information=\u30E6\u30FC\u30B6\u60C5\u5831\u3092\u53CE\u96C6\u3059\u308B Layer-Build=\u30D5\u30A1\u30BB\u30C3\u30C8\u7D44\u307F\u7ACB\u3066 FR-Designer-FRFont_Line_Style=\u7DDA\u5F62 BackgroundTexture-BrownMarble=\u8336\u8272\u306E\u5927\u7406\u77F3 @@ -1475,7 +1475,7 @@ Form-Layout=\u914D\u7F6E FR-Designer-Plugin_Shop_Need_Update=\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u306F\u3001\u66F4\u65B0\u3059\u308B\u304B\u3069\u3046\u304B\u3001\u65B0\u3057\u3044\u30D0\u30FC\u30B8\u30E7\u30F3\u3092\u4FDD\u5B58\u3057\u307E\u3059\u304B\uFF1F FR-Designer_WorkBook=\u30EF\u30FC\u30AF\u30D6\u30C3\u30AF UpBarBorderStyleAndColor=\u30B9\u30B1\u30FC\u30EB\u30A2\u30C3\u30D7\u30AB\u30E9\u30E0\u30B9\u30BF\u30A4\u30EB -GridLayout=\u683C\u5B50\u914D\u7F6E +GridLayout=\u30BB\u30EB\u914D\u7F6E Utils-Default_Value=\u30C7\u30D5\u30A9\u30EB\u30C8\u5024 Widget-Comb_Widget_Config=\u7D44\u307F\u5408\u308F\u305B\u30B3\u30F3\u30C8\u30ED\u30FC\u30EB Import-Excel2007_Source=Excel2007\u30EA\u30BD\u30FC\u30B9\u30D5\u30A1\u30A4\u30EB @@ -1515,14 +1515,14 @@ Delay=\u9045\u5EF6 FR-Designer-All_MSBold=\u5FAE\u8EDF\u96C5\u9ED2 Utils-Now_create_connection=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u3078\u306E\u63A5\u7D9A FR-Template-Path_chooseRightPath=\u6B63\u78BA\u306A\u30EB\u30FC\u30C8\u3092\u9078\u629E\u3057\u3066\u304F\u3060\u3055\u3044 -FR-Remote_Re_Connect_to_Server=\u30B5\u30FC\u30D0\u30FC\u306F\u9589\u3058\u3089\u308C\u307E\u3057\u305F\u3002\u518D\u5EA6\u30B5\u30FC\u30D0\u30FC\u306B\u63A5\u7D9A\u3057\u307E\u3059\u304B? +FR-Remote_Re_Connect_to_Server=\u30B5\u30FC\u30D0\u306F\u9589\u3058\u3089\u308C\u307E\u3057\u305F\u3002\u518D\u5EA6\u30B5\u30FC\u30D0\u306B\u63A5\u7D9A\u3057\u307E\u3059\u304B? Nation=\u56FD\u5BB6 DBCP_MAX_WAIT=\u6700\u5927\u5F85\u3061\u6642\u9593 FR-App-Template_Form=\u8868 Address=\u30A2\u30C9\u30EC\u30B9 Sub_Report=\u5B50\u5E33\u7968 FR-Import-Export_Word=Word\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8 -FR-Server_Version_Tip=\u73FE\u5728\u306E\u63A5\u7D9A\u3057\u3066\u3044\u308B\u30B5\u30FC\u30D0\u30FC\u306E\u30D0\u30FC\u30B8\u30E7\u30F3\u306F\u4F7F\u7528\u3057\u3066\u3044\u308B\u30C7\u30B6\u30A4\u30CA\u30FC\u306E\u30D0 +FR-Server_Version_Tip=\u73FE\u5728\u306E\u63A5\u7D9A\u3057\u3066\u3044\u308B\u30B5\u30FC\u30D0\u306E\u30D0\u30FC\u30B8\u30E7\u30F3\u306F\u4F7F\u7528\u3057\u3066\u3044\u308B\u30C7\u30B6\u30A4\u30CA\u30FC\u306E\u30D0 StyleAlignment-Left_To_Right=\u5DE6\u304B\u3089\u53F3\u3078 Verify-ToolTips=\u516C\u5F0F\u304C\u63D0\u793A\u6821\u9A8C\u3082\u6E80\u8DB3\u3057\u3066\u3044\u306A\u3044\u8BEF\u308A\u304C\u60C5\u5831\u3092\u624B\u306B\u5165\u308C\u305F BackgroundTexture-Stationery=\u4FBF\u7B8B @@ -1646,7 +1646,7 @@ Hyperlink-New_Window=\u65B0\u30A6\u30A3\u30F3\u30C9\u30A6 Style_Name=\u66F8\u5F0F\u540D CSS_warning= \u305D\u306E\u3088\u3046\u306AWebReport\\ CSS\u30EA\u30D5\u30A1\u30EC\u30F3\u30B9CSS\u30D5\u30A1\u30A4\u30EB\u304C\u5B58\u5728test.css\u306F\u3001css / test.css\u306E\u76F8\u5BFE\u30D1\u30B9\u3068\u3057\u3066
 \u6BD4\u8F03\u7684\u6587\u5DE5\u5B66\u30C7\u30A3\u30EC\u30AF\u30C8\u30EAWebReport\u3001 FR-Base_Column=\u5217 -Three_Rows_Of_Two_Grid=2\u683C\u5B50\u306E3\u3064\u306E\u884C +Three_Rows_Of_Two_Grid=2\u30BB\u30EB\u306E3\u3064\u306E\u884C DBCP_VALIDATION_QUERY=SQL\u8A8D\u8A3C\u30AF\u30A8\u30EA M_Edit-Clear_Formats=\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8(F) Parameter_Setting=\u30D1\u30E9\u30E1\u30FC\u30BF\u8A2D\u5B9A @@ -1713,7 +1713,7 @@ Schedule-Template=\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u540D Tree_Data_Field=\u30C4\u30EA\u30FC\u30C7\u30FC\u30BF\u30D5\u30A3\u30FC\u30EB\u30C9 Border-Style-Normal=\u76F4\u89D2\u306E\u56FD\u5883\u306B Top_And_Double_Bottom_Border_Line=\u4E0A\u30D5\u30EC\u30FC\u30E0\u30E9\u30A4\u30F3\u3068\u53CC\u4E0B\u30D5\u30EC\u30FC\u30E0\u30E9\u30A4\u30F3 -FR-Server_Embedded_Server_Start=\u5185\u8535\u30B5\u30FC\u30D0\u30FC-\u958B\u304F +FR-Server_Embedded_Server_Start=\u5185\u8535\u30B5\u30FC\u30D0-\u958B\u304F FR-Designer-Basic_Restart_Designer_Later=\u5F8C\u3067\u518D\u8D77\u52D5\u3059\u308B StyleAlignment-Top=\u4E0A\u8A70\u3081 ReportServerP-First=\u30C8\u30C3\u30D7\u30DA\u30FC\u30B8 @@ -1734,7 +1734,7 @@ FR-Designer-Widget_Settings=\u30B3\u30F3\u30C8\u30ED\u30FC\u30EB\u8A2D\u5B9A IS_Need_Password=\u30D1\u30B9\u30EF\u30FC\u30C9\u304C\u5FC5\u8981\u3067\u3059 PageSetup-Horizontally=\u6C34\u5E73\u4E2D\u592E\u63C3\u3048 No_Editor_Property_Definition=\u5F53\u8A72\u30A8\u30C7\u30A3\u30BF\u306F\u5C5E\u6027\u5B9A\u7FA9\u304C\u3042\u308A\u307E\u305B\u3093 -Env-Remote_Server=\u30EA\u30E2\u30FC\u30C8\u30B5\u30FC\u30D0\u30FC +Env-Remote_Server=\u30EA\u30E2\u30FC\u30C8\u30B5\u30FC\u30D0 FR-Utils_Background=\u80CC\u666F FR-Designer-Plugin_Warning=\u8B66\u544A Server-version-info=\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u30D5\u30A1\u30A4\u30EB\u306F\u3001\u5F8C\u3067\u8A2D\u8A08\u3084\u5143\u306E\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u5C5E\u6027\u3092\u5931\u3046\u30EA\u30B9\u30AF\u306B @@ -1822,7 +1822,7 @@ FR-Designer_Dropdown-More-Preview=\u4E0B\u62C9\u83B7\u53D6\u66F4\u591A\u9884\u89 local=\u30ED\u30FC\u30AB\u30EB FR-Designer_Gradation=\u69CB\u6210 PageSetup-Finis_Start_Column=\u91CD\u8907\u3059\u308B\u7D42\u4E86\u5217 -Env-Invalid_User_and_Password=\u7121\u52B9\u306A\u30E6\u30FC\u30B6\u30FC\u540D\u307E\u305F\u306F\u30D1\u30B9\u30EF\u30FC\u30C9\u3067\u3059 +Env-Invalid_User_and_Password=\u7121\u52B9\u306A\u30E6\u30FC\u30B6\u540D\u307E\u305F\u306F\u30D1\u30B9\u30EF\u30FC\u30C9\u3067\u3059 FR-Designer-Plugin_All_Plugins=\u5168\u3066\u306E\u30D7\u30E9\u30B0\u30A4\u30F3 FR-Designer_Prepare_Export=\u5C0E\u51FA\u3092\u958B\u59CB\u3057\u3066\u3044\u307E\u3059\u3002\u304A\u5F85\u3061\u304F\u3060\u3055\u3044 DBCP_TEST_ON_RETURN=\u63A5\u7D9A\u524D\u691C\u67FB\u306B\u623B\u308B @@ -1841,7 +1841,7 @@ PageSetup-Portrait=\u7E26\u65B9\u5411 FR-Designer_Form-RadioGroup=\u30E9\u30B8\u30AA\u30DC\u30BF\u30F3\u30B0\u30EB\u30FC\u30D7 FR-Utils-App_AllFiles=\u5168\u3066\u306E\u30D5\u30A1\u30A4\u30EB Popup=\u30DD\u30C3\u30D7\u30A2\u30C3\u30D7 -Server_Charset=\u30B5\u30FC\u30D0\u30FC\u30B3\u30FC\u30C7\u30A3\u30F3\u30B0 +Server_Charset=\u30B5\u30FC\u30D0\u30B3\u30FC\u30C7\u30A3\u30F3\u30B0 CellWrite-Repeat_Content_When_Paging=\u6539\u9801\u3059\u308B\u6642\u7E70\u308A\u8FD4\u3057\u624B\u8868\u793A\u3059\u308B Utils-No_Pagination=\u6539\u30DA\u30FC\u30B8\u3057\u306A\u3044 Form-NullLayout=\u7D76\u5BFE\u5B9A\u4F4D @@ -1894,96 +1894,96 @@ FR-Designer-Basic_Copy_Build_NO_OK=\u7D44\u307F\u7ACB\u3066\u30D0\u30FC\u30B8\u3 All_Border_Line=\u3059\u3079\u3066\u306E\u5883\u754C FR-Utils-Please_Input_a_New_Name=\u65B0\u3057\u3044\u540D\u79F0\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044 FR-Base_Formula_Plugin=\u30D7\u30E9\u30B0\u30A4\u30F3\u95A2\u6570 -Two_Rows_Of_Three_Grid=3\u683C\u5B50\u306E\u4E8C\u5217 +Two_Rows_Of_Three_Grid=3\u30BB\u30EB\u306E\u4E8C\u5217 FR-Designer_Certificate_Pass=https\u30B7\u30FC\u30AF\u30EC\u30C3\u30C8\u30AD\u30FC Bubble-Series_Name=\u7CFB\u5217\u540D M-New_Multi_Report=\u7D71\u8A08\u5E33\u7968\u3092\u65B0\u898F\u4F5C\u6210(M) -BackgroundTexture-PinkTissuePaper=\u30D4\u30F3\u30AF\u8272\u306E\u30B5\u30F3\u30C9\u30DA\u30FC\u30D1\u30FC +BackgroundTexture-PinkTissuePaper=\u30D4\u30F3\u30AF\u306E\u753B\u7528\u7D19 Preference-Support_Default_Parent_Calculate=\u30C7\u30D5\u30A9\u30EB\u30C8\u89AA\u30BB\u30EB\u306E\u8A08\u7B97 -Show_Blank_Column=\u7A7A\u767D\u5217\u3092\u88DC\u5145 +Show_Blank_Column=\u7A7A\u767D\u5217\u88DC\u5145 BaiduMap=\u767E\u5EA6\u30DE\u30C3\u30D7 Report-Web_Attributes=\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8Web\u5C5E\u6027 -FR-Designer_StyleAlignment-Wrap_Text=\u81EA\u52D5\u6298\u308A\u8FD4\u3057 +FR-Designer_StyleAlignment-Wrap_Text=\u81EA\u52D5\u6539\u884C Need=\u5FC5\u8981 -Parameter-Double=\u500D\u7CBE\u5EA6\u6D6E\u52D5\u5C0F\u6570\u70B9\u6570\u578B -Config_Servlet=\u9060\u9694\u30B5\u30FC\u30D0\u30FC\u914D\u7F6E +Parameter-Double=\u500D\u7CBE\u5EA6\u578B +Config_Servlet=\u30EA\u30E2\u30FC\u30C8\u30B5\u30FC\u30D0\u3092\u8A2D\u5B9A Form-Comma=\u30B3\u30F3\u30DE Verify=\u691C\u8A3C PageSetup-Landscape=\u6A2A\u65B9\u5411 Weeks=\u9031\u9593 -FR-Designer-Widget-Style_Title_Background=\u6A19\u984C\u80CC\u666F -Preference-Pagination_Line_Color=\u6539\u30DA\u30FC\u30B8\u7DDA\u306E\u8272 -Test_URL=\u30C6\u30B9\u30C8\u63A5\u7D9A -Fill_blank_Data=\u7A7A\u767D\u30C7\u30FC\u30BF\u306E\u88DC\u5145 -ReportServerP-The_name_of_printer_cannot_be_null=\u30D7\u30EA\u30F3\u30BF\u30FC\u306E\u540D\u524D\u306F\u7A7A\u5024\u306B\u306A\u306F\u3044\u3051\u307E\u305B\u3093 -FR-Designer-Basic_Copy_Activation_Key=\u30C0\u30D6\u30EB\u30AF\u30EA\u30C3\u30AF\u3057\u3066\u30C7\u30B6\u30A4\u30CA\u30FC\u6574\u7406\u756A\u53F7\u3092\u30AF\u30EA\u30C3\u30D7\u30DC\u30FC +FR-Designer-Widget-Style_Title_Background=\u30BF\u30A4\u30C8\u30EB\u80CC\u666F +Preference-Pagination_Line_Color=\u6539\u30DA\u30FC\u30B8\u30E9\u30A4\u30F3\u306E\u8272 +Test_URL=\u63A5\u7D9A\u30C6\u30B9\u30C8 +Fill_blank_Data=\u7A7A\u767D\u30C7\u30FC\u30BF\u3092\u88DC\u5145 +ReportServerP-The_name_of_printer_cannot_be_null=\u30D7\u30EA\u30F3\u30BF\u540D\u306F\u7A7A\u306B\u3067\u304D\u307E\u305B\u3093 +FR-Designer-Basic_Copy_Activation_Key=\u30C7\u30B6\u30A4\u30CA\u30FC\u756A\u53F7\u3092\u30C0\u30D6\u30EB\u30AF\u30EA\u30C3\u30AF\u3057\u3066\u30AF\u30EA\u30C3\u30D7\u30DC\u30FC\u30C9\u306B\u30B3\u30D4\u30FC Continuum=\u96A3\u63A5\u9023\u7D9A -BackgroundTexture-MediumWood=\u6FC3\u3044\u8272\u306E\u6728\u76EE -Datasource-Column_Index=\u30B3\u30E9\u30E0\u756A\u53F7 +BackgroundTexture-MediumWood=\u6728\u76EE +Datasource-Column_Index=\u5217\u756A\u53F7 Function-Function_File=\u95A2\u6570\u30D5\u30A1\u30A4\u30EB -Form-Component_Bounds=\u30B3\u30F3\u30C8\u30ED\u30FC\u30EB\u9818\u57DF -Utils-Submit=\u63D0\u51FA -Conditions_formula=\u6761\u4EF6\u516C\u5F0F -M_Insert-Image=\u30A4\u30E1\u30FC\u30B8 -FR-Designer-Plugin_Will_Be_Delete=\u30D7\u30E9\u30B0\u30A4\u30F3\u306F\u524A\u9664\u3055\u308C\u307E\u3057\u305F\u3002\u30C7\u30B6\u30A4\u30CA\u30FC\u3068\u30B5\u30FC\u30D0\u30FC\u3092\u518D\u8D77 +Form-Component_Bounds=\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u30DC\u30FC\u30C0\u30FC +Utils-Submit=\u66F8\u304D\u8FBC\u307F +Conditions_formula=\u6761\u4EF6\u6570\u5F0F +M_Insert-Image=\u753B\u50CF +FR-Designer-Plugin_Will_Be_Delete=\u30D7\u30E9\u30B0\u30A4\u30F3\u306F\u524A\u9664\u3055\u308C\u3001\u30C7\u30B6\u30A4\u30CA\u30FC\u3068\u30B5\u30FC\u30D0\u306E\u518D\u8D77\u52D5\u5F8C\u306B\u6709\u52B9\u306B\u306A\u308A\u307E\u3059\u3002\u30B5\u30FC\u30D0\u306F\u624B\u52D5\u3067\u518D\u8D77\u52D5\u3057\u3066\u4E0B\u3055\u3044 FormulaD-Functions=\u95A2\u6570 -Mobile_Terminal=\u79FB\u52D5\u7AEF +Mobile_Terminal=\u30E2\u30D0\u30A4\u30EB\u7AEF\u672B CheckBox=\u30C1\u30A7\u30C3\u30AF\u30DC\u30C3\u30AF\u30B9 FR-Designer-Plugin_Install=\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB Sun=\u65E5 -FR-Designer_ToolBar_Bottom=\u30D5\u30C3\u30BF\u30FC\u30C4\u30FC\u30EB\u30D0\u30FC -Widget-Width=\u30B3\u30F3\u30C8\u30ED\u30FC\u30EB\u5E45 +FR-Designer_ToolBar_Bottom=\u4E0B\u90E8\u306E\u30C4\u30FC\u30EB\u30D0\u30FC +Widget-Width=\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u5E45 Series_Name=\u7CFB\u5217\u540D -Set_Row_Title_Start=\u91CD\u8907\u3059\u308B\u6A19\u984C\u884C\u3092\u8A2D\u5B9A +Set_Row_Title_Start=\u7E70\u308A\u8FD4\u3057\u30BF\u30A4\u30C8\u30EB\u884C\u8A2D\u5B9A HF-Default_Page=\u30C7\u30D5\u30A9\u30EB\u30C8\u30DA\u30FC\u30B8 -Env_Des=\u30ED\u30B0\u30A4\u30F3\u74B0\u5883\u4E2D\u306E\u5E33\u7968\u5DE5\u7A0B\u306B\u6A29\u9650\u3092\u4ED8\u4E0E\u3059\u308B\u5834\u5408\u3001\u30E6\u30FC\u30B6\u30FC\u540D\u3068\u30D1\u30B9\u30EF\u30FC\u30C9\u306E\u8A18\u5165\u306F\u5FC5\u305A -Widget-User_Defined=\u30D7\u30EC\u5B9A\u7FA9 -Url_location=\u7D76\u5BFE\u30EB\u30FC\u30C8 -Disk_File=\u30CF\u30FC\u30C9\u30C7\u30A3\u30B9\u30AF\u30D5\u30A1\u30A4\u30EB -Inside=\u5185\u90E8 -FR-Designer_filedChosen= -ServerM-Predefined_Styles=\u30D7\u30EC\u5B9A\u7FA9\u30B9\u30BF\u30A4\u30EB -is_need_word_adjust=\u884C\u306E\u9AD8\u3055\u3092\u56FA\u5B9A\u305B\u305A\u5C0E\u51FA +Env_Des=\u30ED\u30B0\u30A4\u30F3\u74B0\u5883\u4E2D\u306E\u5E33\u7968\u5DE5\u7A0B\u306B\u6A29\u9650\u3092\u4ED8\u4E0E\u3059\u308B\u5834\u5408\u3001\u30E6\u30FC\u30B6\u30FCID\u3068\u30D1\u30B9\u30EF\u30FC\u30C9\u306E\u8A18\u5165\u306F\u5FC5\u305A\u5BFE\u5FDC\u3059\u308B\u30ED\u30B0\u30A4\u30F3\u74B0\u5883\u306E\u30E6\u30FC\u30B6\u30FC\u3068\u30D1\u30B9\u30EF\u30FC\u30C9\u306E\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002 +Widget-User_Defined=\u4E8B\u524D\u5B9A\u7FA9 +Url_location=\u7D76\u5BFE\u30D1\u30B9 +Disk_File=\u30D5\u30A1\u30A4\u30EB +Inside=\u5185\u5074 +FR-Designer_filedChosen=\u4F9D\u5B58\u30D5\u30A3\u30FC\u30EB\u30C9 +ServerM-Predefined_Styles=\u4E8B\u524D\u5B9A\u7FA9\u30B9\u30BF\u30A4\u30EB +is_need_word_adjust=\u51FA\u529B\u6642\u306B\u3001\u884C\u306E\u9AD8\u3055\u3092\u56FA\u5B9A\u3057\u306A\u3044 Background-Null=\u80CC\u666F\u306A\u3057 PageSetup-Vertically=\u5782\u76F4\u4E2D\u592E\u63C3\u3048 FR-Designer_Root=\u30EB\u30FC\u30C8\u30CE\u30FC\u30C9 -FR-Designer_Form-TextArea=\u6587\u66F8\u57DF -ReportServerP-Import_JavaScript=JavaScript\u5F15\u7528 -Form-TableTree=\u8868\u30C4\u30EA\u30FC -Opened=\u8D77\u52D5\u6E08\u307F +FR-Designer_Form-TextArea=\u30C6\u30AD\u30B9\u30C8\u30A8\u30EA\u30A2 +ReportServerP-Import_JavaScript=JavaScript\u53C2\u7167 +Form-TableTree=\u30C6\u30FC\u30D6\u30EB\u30C4\u30EA\u30FC +Opened=\u6709\u52B9\u306B\u306A\u3063\u3066\u3044\u307E\u3059 M_Edit-Delete=\u524A\u9664(D) -Widget-Form_Widget_Container=\u8868\u5BB9\u5668 +Widget-Form_Widget_Container=\u30C0\u30C3\u30B7\u30E5\u30DC\u30FC\u30C9\u30B3\u30F3\u30C6\u30CA BindColumn-Summary=\u96C6\u8A08 Sche-Second=\u79D2 -Server-Open_Service_Manager=\u30B5\u30FC\u30D3\u30B9\u7BA1\u7406\u5668\u3092\u958B\u304F -FRFont-Effects=\u7279\u5225\u52B9\u679C -OtherGroup_Name=\u305D\u306E\u4ED6\u30B0\u30EB\u30FC\u30D7\u306E\u540D\u524D +Server-Open_Service_Manager=\u30B5\u30FC\u30D3\u30B9\u30DE\u30CD\u30FC\u30B8\u30E3\u3092\u958B\u304F +FRFont-Effects=\u6587\u5B57\u98FE\u308A +OtherGroup_Name=\u4ED6\u306E\u30B0\u30EB\u30FC\u30D7\u540D Specify=\u6307\u5B9A\u3059\u308B -Highlight-Click_to_Choose_Property_To_Modify=\u30AF\u30EA\u30C3\u30AF\u3057\u3066\u5909\u66F4\u3059\u308B\u5C5E\u6027\u3092\u9078\u629E\u3057\u3066\u304F\u3060\u3055\u3044 -triggered=\u30C8\u30EA\u30AC\u30FC -Double_Bottom_BorderLine=\u4E8C\u91CD\u5E95\u30D5\u30EC\u30FC\u30E0\u30E9\u30A4\u30F3 +Highlight-Click_to_Choose_Property_To_Modify=\u5909\u3048\u305F\u3044\u5C5E\u6027\u3092\u30AF\u30EA\u30C3\u30AF\u3057\u3066\u9078\u629E +triggered=\u89E6\u767A\u3055\u308C\u305F +Double_Bottom_BorderLine=\u4E0B\u4E8C\u91CD\u7F6B\u7DDA M_Insert-Sub_Report=\u30B5\u30D6\u5E33\u7968 Unit_Ten=\u5341 -Polybolck=\u30A2\u30B0\u30EA\u30B2\u30FC\u30B7\u30E7\u30F3\u30D6\u30ED\u30C3\u30AF -Select_sort_order=\u6392\u5217\u9806\u5E8F\u3092\u9078\u629E -HJS-Mail_to=\u53D7\u4FE1\u8005 -StyleAlignment-Left=\u5DE6\u8A70\u3081 -Two_Rows_Of_Two_Grid=2\u884C2\u5217\u306E\u683C\u5B50 -FR-Designer-Form-Please_Drag_ParaPane=\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC\u30D1\u30CD\u30EB\u3092\u3057\u307E\u3063\u3066\u304F\u3060\u3055\u3044 +Polybolck=\u30D6\u30ED\u30C3\u30AF +Select_sort_order=\u30BD\u30FC\u30C8\u9806\u9078\u629E +HJS-Mail_to=\u5B9B\u5148 +StyleAlignment-Left=\u5DE6\u63C3\u3048 +Two_Rows_Of_Two_Grid=2\u884C2\u5217\u306E\u30BB\u30EB +FR-Designer-Form-Please_Drag_ParaPane=\u30D1\u30E9\u30E1\u30FC\u30BF\u30D1\u30CD\u30EB\u306B\u30C9\u30E9\u30C3\u30B0\u3057\u3066\u4E0B\u3055\u3044 Milliseconds=\u30DF\u30EA\u79D2 DataFunction-None=\u306A\u3057 -Delivery=\u4F1D\u9054 +Delivery=\u914D\u4FE1 ColumnSpan=\u5217\u7BC4\u56F2 -StyleAlignment-Bottom=\u4E0B\u8A70\u3081 -Read_failure=\u8AAD\u307F\u306B\u969C\u5BB3\u304C\u767A\u751F\u3059\u308B\u3068\u3001\u30BD\u30FC\u30B9\u00B7\u30D5\u30A1\u30A4\u30EB\u304C\u7834\u640D\u3057\u3066\u3044\u308B +StyleAlignment-Bottom=\u4E0B\u63C3\u3048 +Read_failure=\u8AAD\u307F\u53D6\u308A\u5931\u6557\u3002\u30BD\u30FC\u30B9\u30D5\u30A1\u30A4\u30EB\u304C\u7834\u640D\u3057\u3066\u3044\u308B\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059 Verify-Verify=\u30C7\u30FC\u30BF\u691C\u8A3C -FR-Designer-Widget-Style_Title_Format=\u6A19\u984C\u66F8\u5F0F -FR-Designer_Edit_String_To_Formula=\u30AD\u30E3\u30E9\u30AF\u30BF\u30FC\u6587\u5B57\u5217\u3092\u7DE8\u96C6\u3057\u3066\u516C\u5F0F\u3068\u3059\u308B\u304B\u5426\u304B +FR-Designer-Widget-Style_Title_Format=\u30BF\u30A4\u30C8\u30EB\u66F8\u5F0F +FR-Designer_Edit_String_To_Formula=\u6587\u5B57\u5217\u3092\u6570\u5F0F\u306B\u7DE8\u96C6\u3059\u308B\u304B FR-Base_UnSignIn=\ \u672A\u30ED\u30B0\u30A4\u30F3 -Every=\u6BCF +Every=\u5404 CellWrite-Preview_Cell_Content=\u30BB\u30EB\u306E\u5185\u5BB9\u3092\u30D7\u30EC\u30D3\u30E5\u30FC\u3059\u308B FormulaD-Data_Fields=\u30C7\u30FC\u30BF\u30D5\u30A3\u30FC\u30EB\u30C9 -FR-Designer_Permissions= -FR-Designer_Form_Button= -FR-Designer_WF_Name= -FR-Designer_Role= +FR-Designer_Permissions=\u6A29\u9650 +FR-Designer_Form_Button=\u30DC\u30BF\u30F3 +FR-Designer_WF_Name=\u540D\u79F0 +FR-Designer_Role=\u5F79\u5272 From ce71b0ea0dce16214aff2e347588bd988a9ddb0b Mon Sep 17 00:00:00 2001 From: unknown <李晓丽> Date: Tue, 9 May 2017 15:15:11 +0800 Subject: [PATCH 66/72] =?UTF-8?q?Signed-off-by:=20unknown=20<=E6=9D=8E?= =?UTF-8?q?=E6=99=93=E4=B8=BD>?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../design/locale/designer_en_US.properties | 46 +++++++-------- .../design/locale/designer_zh_TW.properties | 58 +++++++++---------- 2 files changed, 52 insertions(+), 52 deletions(-) diff --git a/designer_base/src/com/fr/design/locale/designer_en_US.properties b/designer_base/src/com/fr/design/locale/designer_en_US.properties index c3531ae7be..7cfab6b487 100644 --- a/designer_base/src/com/fr/design/locale/designer_en_US.properties +++ b/designer_base/src/com/fr/design/locale/designer_en_US.properties @@ -9,7 +9,7 @@ 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=Privite Message +FR-Designer-BBSLogin_Privite-Message=Private Message FR-Designer-BBSLogin_Times=times FR-Designer-BBSLogin_Username-Empty-Tip=User name can not be null FR-Designer-Basic_More_Color=More Color... @@ -29,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 @@ -268,11 +268,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=Corresponse parameter +FR-Designer_Corre_parameter=Corresponding 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 choosed +FR-Designer_Columns_choosed=Columns chosen FR-Designer_Where_claus=Where claus FR-Designer_PreStyle=Pre Style FR-Designer_Loading=Loading @@ -293,13 +293,13 @@ 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 Intenet options . +FR-Designer_Set_default_browser=Cannot find the default browser, please set default browser in Internet 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 gloabel style +FR-Designer_Input_The_Name_Of_Gloabel_Style=Input the name of global style FR-Designer_This_Name_Has_Exsit=This name has existed FR-Designer_Shortcut_Set=Shortcut Setting FR-Designer_Feature_Name=Feature Name\: @@ -332,7 +332,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 @@ -381,7 +381,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=Fineres Addon +FR-Designer-Plugin_Finerest_Addon=Fineres Plugins FR-Designer_Performance_First=Performance First FR-Designer_Total_N_Grade=Total\:${N}Layer FR-Designer-BBSLogin_Login-Title=BBS Login @@ -394,7 +394,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=Surport String To Formula +FR-Designer_Surport_String_To_Formula=Support 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 @@ -621,9 +621,9 @@ Utils-Current_Sheet=Current Sheet ConditionB-is_less_than=less than BorderLayout-West=West AnalysisLine=Line -Layer_Report_Warnning_info=Line report engine is suitable for large data.
Many report features will no longer support if use it,
more information in helpdocument. +Layer_Report_Warnning_info=Line report engine is suitable for large data.
Many report features will no longer support if use it,
more information in helpdoc. Tree-Width=Tree Width -alert_word=Export without fixed height, cell hight will change according to the content and pagination position will different from the preview result. +alert_word=Export without fixed height, cell height 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 @@ -703,7 +703,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 Exsit +Column_Does_Not_Exsit=Column Does Not Exist M_Insert-Hyperlink=Hyperlink can_not_include_underline=Can not contain "_" FR-Designer-Plugin_Jar_Expired=Jar Expired @@ -803,7 +803,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 modidy", 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 modify", 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 @@ -954,7 +954,7 @@ zeroMarginWarn=The printer exist the physical margins
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 DisplyPosition +FR-Designer_WidgetDisplyPosition=Control DisplayPosition FR-Base_Top=Top FR-Designer_Form-CheckBox=CheckBox Reportlet-Parameter_Type=Parameter passing mode @@ -972,7 +972,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 Openned +LOG-Is_Being_Openned=Is Being Opened BackgroundTexture-Oak=Oak Multi_nam_formula=\ data set name\: TurnOn=TurnOn @@ -1131,7 +1131,7 @@ 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 exsits in Server DataSet or the name is repeated. +Error_TableDataNameRepeat=\ already exists in Server DataSet or the name is repeated. Choose_None=Deselect File-tree=File tree FRFont-bold=Bold @@ -1149,7 +1149,7 @@ FR-mobile_report_analysis=report analysis Month=Month Utils-Column_Width=Column-W Collect-Use_Designer=Use Designer -Widget-User_Defined_Editor=Predefine editor, you can only change its properties in control mangement menu. +Widget-User_Defined_Editor=Predefine editor, you can only change its properties in control management menu. Unit_Ten_Thousand=Ten Thousand Data_Setting=Data Setting ECP_input_pwd=Enter your password\: @@ -1167,7 +1167,7 @@ FR-App-Export_png=png Delete_Column=Delete Column SecondGraduationLine=Minor Graduation Line SpecifiedG-Groups=Groups -CONTINUUM_MODE=Continous grouping +CONTINUUM_MODE=Continuous grouping Datasource-Connection_failed=Connection Failed CategoryName=Category Name DBCP_INITIAL_SIZE=Initialize Connections @@ -1181,7 +1181,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 exsit +Warning-Template_Do_Not_Exsit=Template do not exist BindColumn-Group=Group Export-SVG=SVG Plane3D=Plane 3D @@ -1295,7 +1295,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=Rencently used +FormulaD-Most_Recently_Used=Recently used FormulaD-Input_formula_in_the_text_area_below=Input formula in the text area below Build-Way=Build Way M_Edit-Undo=Undo @@ -1803,7 +1803,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= +FR-Designer_DataTable-Build=Quick build (hierarchical) 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 @@ -1823,7 +1823,7 @@ BackgroundTexture-Cork=Cork M_Format-Data_Map=Data Dictionary FR-mobile_native_analysis=native analysis HighLight=High Light -FR-Designer_Dropdown-More-Preview= +FR-Designer_Dropdown-More-Preview=Drop down for more local=local FR-Designer_Gradation=Gradation PageSetup-Finis_Start_Column=Duplicate Last Column @@ -1946,7 +1946,7 @@ Widget-User_Defined=Predefine Url_location=Absolute path Disk_File=Disk File Inside=Inside -FR-Designer_filedChosen= +FR-Designer_filedChosen=Dependent fields ServerM-Predefined_Styles=Predefined Styles is_need_word_adjust=Word Auto Adjust Background-Null=No Background diff --git a/designer_base/src/com/fr/design/locale/designer_zh_TW.properties b/designer_base/src/com/fr/design/locale/designer_zh_TW.properties index 559c8ffd08..0ad9d28a15 100644 --- a/designer_base/src/com/fr/design/locale/designer_zh_TW.properties +++ b/designer_base/src/com/fr/design/locale/designer_zh_TW.properties @@ -1,7 +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 @@ -9,7 +9,7 @@ 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\u6D88\u606F +FR-Designer-BBSLogin_Privite-Message=\u79C1\u4EBA\u8A0A\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... @@ -181,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 @@ -561,19 +561,19 @@ FR-Designer_Plugin_Should_Update_Please_Contact_Developer=\u633F\u4EF6\u7248\u67 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\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_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_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= -FR-Designer_Mouse_Move_Tips= -FR-Designer_Mouse_Click_Tips= +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_AxisReversed=\u8EF8\u9006\u5E8F FR-Designer_Logarithmic=\u5C0D\u6578\u523B\u5EA6 FR-Designer_Chart_Log_Base=\u5E95\u6578 @@ -582,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= -FR-Designer_Reset= -FR-Designer_AllCategories= -FR-Designer-Selected_Widget= -FR-Designer_SimpleCross_Report= -FR-Designer_LocalWidget= +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_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= -FR-Designer_Allow-Blank= -FR-Designer_Delete_Template= -FR-Designer_Download_Template= -FR-Designer_DoubleLayer_Report= -FR-Designer_Validate= +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 CellWrite-InsertRow_NULL=\u7A7A\u503C DashBoard-ChartFloat=\u5716\u8868 contact_info=\u806F\u7E6B\u8A0A\u606F(\u9078\u586B) @@ -1358,7 +1358,7 @@ 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=\u5EFA\u7ACB\u65B0\u5831\u8868 +M-New_FormBook=\u65B0\u5EFA\u8868\u55AE\uFF08\u6C7A\u7B56\u8868\uFF09 Widget-TreeNode=\u6A39\u7BC0\u9EDE\u6309\u9215 Form-Url=\u5730\u5740 Utils-Beyond_the_left_side_of_Border=\u8D85\u51FA\u5DE6\u908A\u754C @@ -1658,7 +1658,7 @@ 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= +Please_Drag_ParaPane=\u8ACB\u62D6\u5165\u53C3\u6578\u9762\u677F Come_True=\u5BE6\u73FE ISEMPTY=is empty Background-Texture=\u7D0B\u7406 From 4aef54dbd72b742031360cedb15ecd9c92b02918 Mon Sep 17 00:00:00 2001 From: syoki Date: Tue, 9 May 2017 16:29:20 +0900 Subject: [PATCH 67/72] =?UTF-8?q?=E5=9B=BD=E9=99=85=E5=8C=96=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=20design=E9=83=A8=E5=88=86=E7=AC=AC51-750=E4=B8=AAkey?= =?UTF-8?q?=E7=9A=84=E7=BF=BB=E8=AF=91=E4=BF=AE=E6=94=B9=20=E5=BA=84?= =?UTF-8?q?=E5=A5=87syoki=2020170509?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../design/locale/designer_ja_JP.properties | 706 +++++++++--------- 1 file changed, 353 insertions(+), 353 deletions(-) diff --git a/designer_base/src/com/fr/design/locale/designer_ja_JP.properties b/designer_base/src/com/fr/design/locale/designer_ja_JP.properties index adccfa1957..c900c62e1e 100644 --- a/designer_base/src/com/fr/design/locale/designer_ja_JP.properties +++ b/designer_base/src/com/fr/design/locale/designer_ja_JP.properties @@ -48,21 +48,21 @@ FR-Desinger-Plugin_Updater_Connect_VersionUpdateServer_Failed=\u30D0\u30FC\u30B8 FR-Desinger-Plugin_Updater_Connect_VersionUpgradeServer_Failed=\u30D0\u30FC\u30B8\u30E7\u30F3\u30A2\u30C3\u30D7\u30B0\u30EC\u30FC\u30C8\u30B5\u30FC\u30D0\u306B\u63A5\u7D9A\u3067\u304D\u306A\u3044 FR-Desinger-Plugin_Updater_Already_Latest_Version=\u6700\u65B0\u30D0\u30FC\u30B8\u30E7\u30F3\u306B\u306A\u308A\u307E\u3057\u305F FR-Desinger-Plugin_Updater_Backup_OldJar_To=\u53E4\u3044Jar\u30D5\u30A1\u30A4\u30EB\u3092\u4E0B\u8A18\u306B\u30D0\u30C3\u30AF\u30A2\u30C3\u30D7\u3057\u307E\u3057\u305F\uFF1A -FR-Desinger-Plugin_Updater_Backup_OldVersion_To=\u65E7\u30D0\u30FC\u30B8\u30E7\u30F3\u30D1\u30C3\u30B1\u30FC\u30B8\u306F\u65E2\u306B\u30D0\u30C3\u30AF\u30A2\u30C3\u30D7 -FR-Desinger-Plugin_Updater_Please_Restart=\u30C7\u30B6\u30A4\u30CA\u30FC\u306F\u518D\u8D77\u52D5\u3057\u3066\u304F\u3060\u3055\u3044 -FR-Desinger-Plugin_Updater_Jar_Restore=\u65E7Jar\u30D1\u30C3\u30B1\u30FC\u30B8\u5FA9\u5143 -FR-Desinger-Plugin_Updater_Version_Restore=\u30D0\u30FC\u30B8\u30E7\u30F3\u5FA9\u5143 -FR-Desinger-Plugin_Updater_Restore_To=\u5FA9\u5143 -FR-Desinger-Plugin_Updater_WorksAfterRestart=\u30D0\u30FC\u30B8\u30E7\u30F3\u306F\u518D\u8D77\u52D5\u5F8C\u306B\u6709\u52B9\u3059\u308B +FR-Desinger-Plugin_Updater_Backup_OldVersion_To=\u53E4\u3044\u30D0\u30FC\u30B8\u30E7\u30F3\u3092\u4E0B\u8A18\u306B\u30D0\u30C3\u30AF\u30A2\u30C3\u30D7\u3057\u307E\u3057\u305F\uFF1A +FR-Desinger-Plugin_Updater_Please_Restart=\u3001\u30C7\u30B6\u30A4\u30CA\u30FC\u3092\u518D\u8D77\u52D5\u3057\u3066\u4E0B\u3055\u3044 +FR-Desinger-Plugin_Updater_Jar_Restore=Jar\u30D5\u30A1\u30A4\u30EB\u30EA\u30AB\u30D0\u30EA +FR-Desinger-Plugin_Updater_Version_Restore=\u30D0\u30FC\u30B8\u30E7\u30F3\u30EA\u30AB\u30D0\u30EA +FR-Desinger-Plugin_Updater_Restore_To=\u3078\u30EA\u30AB\u30D0\u30EA +FR-Desinger-Plugin_Updater_WorksAfterRestart=\u30D0\u30FC\u30B8\u30E7\u30F3\u3001\u518D\u8D77\u52D5\u5F8C\u6709\u52B9\u306B\u306A\u308A\u307E\u3059 FR-Designer-Submit_Condition=\u6761\u4EF6 -FR-Designer-Widget-Title_border=\u30D5\u30EC\u30FC\u30E0 +FR-Designer-Widget-Title_border=\u67A0 FR-Designer-Widget-Title_border_color=\u8272 FR-Designer_AbsoluteLayout=\u7D76\u5BFE\u30EC\u30A4\u30A2\u30A6\u30C8 -FR-Designer_Allow_Decimals=\u5C0F\u6570\u3092\u8A31\u53EF -FR-Designer_Allow_Negative=\u30DE\u30A4\u30CA\u30B9\u5024\u3092\u8A31\u53EF -FR-Designer_Background-Click=\u30DE\u30A6\u30B9\u30AF\u30EA\u30C3\u30AF\u80CC\u666F +FR-Designer_Allow_Decimals=\u5C0F\u6570\u306E\u8A31\u53EF +FR-Designer_Allow_Negative=\u8CA0\u5024\u306E\u8A31\u53EF +FR-Designer_Background-Click=\u30DE\u30A6\u30B9\u30AF\u30EA\u30C3\u30AF\u6642\u80CC\u666F FR-Designer_Background-Initial=\u521D\u671F\u80CC\u666F -FR-Designer_Background-Over=\u30DE\u30A6\u30B9\u30D5\u30ED\u30FC\u30C8\u80CC\u666F +FR-Designer_Background-Over=\u30DE\u30A6\u30B9\u30AA\u30FC\u30D0\u30FC\u6642\u80CC\u666F FR-Designer_Bar-Code-Exception-Tip=\u30C7\u30FC\u30BF\u306F\u7A7A\u6B04\u306B\u3059\u308B\u3053\u3068\u304C\u3067\u304D\u307E\u305B\u3093 FR-Designer_Block-intersect=\u30E2\u30B8\u30E5\u30FC\u30EB\u3068\u30E2\u30B8\u30E5\u30FC\u30EB\u9593\u3092\u91CD\u306D\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093 FR-Designer_BorderLayout=\u30DC\u30FC\u30C0\u30FC\u30EC\u30A4\u30A2\u30A6\u30C8 @@ -70,66 +70,66 @@ FR-Designer_Button-Hotkeys=\u30B7\u30E7\u30FC\u30C8\u30AB\u30C3\u30C8\u30AD\u30F FR-Designer_Button-Icon=\u30DC\u30BF\u30F3\u30A2\u30A4\u30B3\u30F3 FR-Designer_Button-Name=\u30DC\u30BF\u30F3\u540D\u79F0 FR-Designer_Button-Type=\u30DC\u30BF\u30F3\u30BF\u30A4\u30D7 -FR-Designer_CardLayout=Tab\u914D\u7F6E +FR-Designer_CardLayout=Tab\u30EC\u30A4\u30A2\u30A6\u30C8 FR-Designer_Cell=\u30BB\u30EB -FR-Designer_Chart_Cell=\u30B0\u30E9\u30D5\u30CF\u30A4\u30D1\u30FC\u30EA\u30F3\u30AF-\u9023\u52D5\u30BB\u30EB -FR-Designer_Chart_Float=\u30B0\u30E9\u30D5\u30CF\u30A4\u30D1\u30FC\u30EA\u30F3\u30AF-\u9023\u52D5\u30D5\u30ED\u30FC\u8981\u7D20 -FR-Designer_Chart_Float_chart=\u30B0\u30E9\u30D5\u30CF\u30A4\u30D1\u30FC\u30EA\u30F3\u30AF-\u30D5\u30ED\u30FC\u7A93\u30B0\u30E9\u30D5 -FR-Designer_Check-for-Updates=\u66F4\u65B0\u3092\u78BA\u8A8D -FR-Designer_Choose-Data-Confusion-Tip=\ \u6DF7\u4EA4\u3059\u308B\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u9078\u629E\u5F8C\u30D7\u30EC\u30D3\u30E5\u30FC\u3057\u3066\u304F\u3060\u3055\u3044 -FR-Designer_Close=\u30AF\u30ED\u30FC\u30BA +FR-Designer_Chart_Cell=\u30B0\u30E9\u30D5\u30EA\u30F3\u30AF-\u30BB\u30EB +FR-Designer_Chart_Float=\u30B0\u30E9\u30D5\u30EA\u30F3\u30AF-\u30D5\u30ED\u30FC\u30C6\u30A3\u30F3\u30B0\u8981\u7D20 +FR-Designer_Chart_Float_chart=\u30B0\u30E9\u30D5\u30EA\u30F3\u30AF-\u30D5\u30ED\u30FC\u30C6\u30A3\u30F3\u30B0\u7A93\u53E3 +FR-Designer_Check-for-Updates=\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8\u3092\u78BA\u8A8D +FR-Designer_Choose-Data-Confusion-Tip=\ \u6DF7\u4E71\u3055\u305B\u308B\u3079\u304D\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u9078\u629E\u3057\u3066\u30D7\u30EC\u30D3\u30E5\u30FC\u4E0B\u3055\u3044 +FR-Designer_Close=\u9589\u3058\u308B FR-Designer_Column=\u5217 -FR-Designer_Column_Measure=\u5217\u8EF8/\u5EA6\u91CF\u5024 +FR-Designer_Column_Measure=\u5217\u8EF8/\u30E1\u30C8\u30EA\u30C3\u30AF FR-Designer_Condition_Attributes=\u6761\u4EF6\u5C5E\u6027 -FR-Designer_Confusion-Col-Name=\u30D5\u30A3\u30FC\u30EB\u30C9\u540D\u79F0 -FR-Designer_Confusion-key=\u6DF7\u4EA4\u3059\u308B\u30AD\u30FC\u30EF\u30FC\u30C9 +FR-Designer_Confusion-Col-Name=\u30D5\u30A3\u30FC\u30EB\u30C9\u540D +FR-Designer_Confusion-key=\u30AD\u30FC\u30EF\u30FC\u30C9\u3092\u6DF7\u4E71\u3055\u305B\u308B FR-Designer_Currency_Line=\u91D1\u984D\u7DDA -FR-Designer_Current_tab=\u73FE\u5728\u306E\u7DE8\u96C6tab +FR-Designer_Current_tab=\u7DE8\u96C6\u4E2D\u306Etab FR-Designer_Custom=\u30AB\u30B9\u30BF\u30DE\u30A4\u30BA FR-Designer_Custom-Angle=\u30AB\u30B9\u30BF\u30DE\u30A4\u30BA\u89D2\u5EA6 -FR-Designer_DS-Dictionary=\u30C7\u30FC\u30BF\u5B57\u5178 -FR-Designer_Data-confusion=\u30C7\u30FC\u30BF\u6DF7\u4EA4 +FR-Designer_DS-Dictionary=\u30C7\u30FC\u30BF\u8F9E\u66F8 +FR-Designer_Data-confusion=\u30C7\u30FC\u30BF\u6DF7\u4E71 FR-Designer_Data_Type=\u30C7\u30FC\u30BF\u30BF\u30A4\u30D7 FR-Designer_Double_Click_Edit_OR_Clear=\u30C0\u30D6\u30EB\u30AF\u30EA\u30C3\u30AF\u3057\u3066\u7DE8\u96C6\u307E\u305F\u306F\u30AF\u30EA\u30A2\u3059\u308B FR-Designer_Email=\u30E1\u30FC\u30EB FR-Designer_Enabled=\u4F7F\u7528\u53EF\u80FD FR-Designer_End-Date=\u7D42\u4E86\u65E5\u671F -FR-Designer_ExportAndOutput=\u30A2\u30A6\u30C8\u30D7\u30C3\u30C8 +FR-Designer_ExportAndOutput=\u51FA\u529B FR-Designer_FRFont=\u30D5\u30A9\u30F3\u30C8 -FR-Designer_FS_Close_Other_Templates=\u305D\u306E\u4ED6\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u3092\u9589\u3058\u308B +FR-Designer_FS_Close_Other_Templates=\u4ED6\u306E\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u3092\u9589\u3058\u308B FR-Designer_File=\u30D5\u30A1\u30A4\u30EB -FR-Designer_Filter_Conditions=\u9078\u5225\u6761\u4EF6 -FR-Designer_Finish-Modify-Share=\u4FEE\u6B63\u3092\u5B8C\u4E86\u3057\u3066\u30B7\u30A7\u30A2 -FR-Designer_Fit-App=App\u81EA\u9069\u5FDC -FR-Designer_Fit=\u81EA\u9069\u5FDC +FR-Designer_Filter_Conditions=\u30D5\u30A3\u30EB\u30BF\u30FC\u6761\u4EF6 +FR-Designer_Finish-Modify-Share=\u4FEE\u6B63\u3092\u5B8C\u4E86\u3057\u3066\u5171\u6709\u3057\u307E\u3059 +FR-Designer_Fit-App=App\u81EA\u52D5\u9069\u5FDC +FR-Designer_Fit=\u81EA\u52D5\u9069\u5FDC FR-Designer_Font-Family=\u30D5\u30A9\u30F3\u30C8\u540D\u79F0 -FR-Designer_Font-Size=\u30D5\u30A9\u30F3\u30C8\u5927\u5C0F -FR-Designer_Forbid_Drag_into_Adapt_Pane=\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u306F\u30D5\u30A9\u30FC\u30E0\u672C\u6587\u3092\u30C9\u30E9\u30C3\u30B0\u3059\u308B\u3053\u3068\u306F\u8A31\u3055\u308C\u306A\u3044 -FR-Designer_Forbid_Drag_into_Para_Pane=\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u306F\u3001\u30D1\u30E9\u30E1\u30FC\u30BF\u30D1\u30CD\u30EB\u306B\u30C9\u30E9\u30C3\u30B0\u3059\u308B\u3053\u3068\u304C\u3067\u304D\u307E\u305B\u3093 +FR-Designer_Font-Size=\u30D5\u30A9\u30F3\u30C8\u30B5\u30A4\u30BA +FR-Designer_Forbid_Drag_into_Adapt_Pane=\u8A72\u5F53\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u3092\u30E1\u30A4\u30F3\u30A8\u30EA\u30A2\u306B\u30C9\u30E9\u30C3\u30B0\u3059\u308B\u306E\u306F\u3067\u304D\u307E\u305B\u3093 +FR-Designer_Forbid_Drag_into_Para_Pane=\u8A72\u5F53\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u3092\u30D1\u30E9\u30E1\u30FC\u30BF\u30D1\u30CD\u30EB\u306B\u30C9\u30E9\u30C3\u30B0\u3059\u308B\u306E\u306F\u3067\u304D\u307E\u305B\u3093 FR-Designer_Foreground=\u8272 -FR-Designer_Form-AuthorityEdited_Cannot_be_Supported=\u8868\u306E\u6A29\u9650\u7DE8\u96C6\u306B\u30B5\u30DD\u30FC\u30C8\u3057\u3066\u3044\u307E\u305B\u3093 -FR-Designer_Form-Report=\u5E33\u7968\u30E2\u30B8\u30E5\u30FC\u30EB -FR-Designer_Form_EmbeddedTD=\u8868(\u5185\u8535\u30C7\u30FC\u30BF) -FR-Designer_Form_Module=\u8868\u30E2\u30B8\u30E5\u30FC\u30EB +FR-Designer_Form-AuthorityEdited_Cannot_be_Supported=\u30C0\u30C3\u30B7\u30E5\u30DC\u30FC\u30C9\u306E\u6A29\u9650\u7DE8\u96C6\u306F\u73FE\u5728\u306E\u6642\u70B9\u3067\u652F\u6301\u3057\u3066\u3044\u307E\u305B\u3093 +FR-Designer_Form-Report=\u5E33\u7968\u30D6\u30ED\u30C3\u30AF +FR-Designer_Form_EmbeddedTD=\u30C0\u30C3\u30B7\u30E5\u30DC\u30FC\u30C9(\u7D44\u307F\u8FBC\u307F\u30C7\u30FC\u30BF) +FR-Designer_Form_Module=\u30C0\u30C3\u30B7\u30E5\u30DC\u30FC\u30C9\u30E2\u30B8\u30E5\u30FC\u30EB FR-Designer_Format_explan=\u66F8\u5F0F\u8AAC\u660E -FR-Designer_Formula=\u516C\u5F0F +FR-Designer_Formula=\u6570\u5F0F FR-Designer_Forum=BBS -FR-Designer_Get-Cube=cube\u53D6\u5F97\u4E2D +FR-Designer_Get-Cube=cube\u8AAD\u307F\u53D6\u308A\u4E2D FR-Designer_Help=\u30D8\u30EB\u30D7 -FR-Designer_Hide=\u96A0\u3059 -FR-Designer_Hyperlink=\u30B9\u30FC\u30D1\u30FC\u30EA\u30F3\u30AF -FR-Designer_Hyperlink-Form_link=\u73FE\u5728\u306E\u8868\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8 +FR-Designer_Hide=\u975E\u8868\u793A +FR-Designer_Hyperlink=\u30CF\u30A4\u30D1\u30FC\u30EA\u30F3\u30AF +FR-Designer_Hyperlink-Form_link=\u73FE\u5728\u306E\u30C0\u30C3\u30B7\u30E5\u30DC\u30FC\u30C9\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8 FR-Designer_IDCard=\u8EAB\u5206\u8A3C\u660E\u66F8 FR-Designer_Icon=\u30A2\u30A4\u30B3\u30F3 FR-Designer_Index=\u5217\u8EF8/\u6307\u6A19 -FR-Designer_Input_Rule=\u30EB\u30FC\u30EB\u8A18\u5165 +FR-Designer_Input_Rule=\u66F8\u304D\u8FBC\u307F\u898F\u5247 FR-Designer_Language_Default=\u30C7\u30D5\u30A9\u30EB\u30C8 -FR-Designer_Layout=\u914D\u7F6E -FR-Designer_Layout-HBox=\u6C34\u5E73\u30B1\u30FC\u30B9\u914D\u7F6E -FR-Designer_Layout-Index=\u7D22\u5F15 -FR-Designer_Layout_Constraints=\u4F4D\u7F6E\u3068\u5927\u5C0F +FR-Designer_Layout=\u30EC\u30A4\u30A2\u30A6\u30C8 +FR-Designer_Layout-HBox=\u6C34\u5E73\u30B1\u30FC\u30B9\u30EC\u30A4\u30A2\u30A6\u30C8 +FR-Designer_Layout-Index=\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9 +FR-Designer_Layout_Constraints=\u4F4D\u7F6E\u3068\u30B5\u30A4\u30BA FR-Designer_Length=\u9577\u3055 -FR-Designer_Loading_Data=\u30C7\u30FC\u30BF\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9\u3057\u3066\u3044\u307E\u3059 +FR-Designer_Loading_Data=\u30C7\u30FC\u30BF\u3092\u30ED\u30FC\u30C9\u3057\u3066\u3044\u307E\u3059 FR-Designer_M-Exit=\u9000\u51FA FR-Designer_M-Help=\u30D8\u30EB\u30D7 FR-Designer_M-Insert=\u633F\u5165 @@ -137,42 +137,42 @@ FR-Designer_M-Repeat-Freeze=\u91CD\u8907\u3068\u30D5\u30EA\u30FC\u30BA\u8A2D\u5B FR-Designer_M-Server=\u30B5\u30FC\u30D0 FR-Designer_M-SwitchWorkspace=\u4F5C\u696D\u76EE\u6B21\u5207\u308A\u66FF\u3048 FR-Designer_M-Template=\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8 -FR-Designer_MDX_Explain=\u6587\u6CD5\u66F8\u5F0F\u306FMDX\u6587\u6CD5\u3092\u53C2\u8003\u3002\n\u4F8B\u3048\u3070\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\u6CE8\uFF1ACOLUMNS\u3001ROWS\u306F0\u30011\u3092\u4F7F\u7528\u3057\u3066\u4EE3\u66FF\u53EF\u80FD\u3067\u3059\u3002\u30AF\u30A8\u30EA\u8EF8\u306F\u4E8C\u3064\u306E\u8EF8\u623B\u3057\u306B\u306E\u307F\u30B5\u30DD\u30FC\u30C8\u3057\u307E\u3059\u3002 +FR-Designer_MDX_Explain=MDX\u8A00\u8A9E\u306E\u6587\u6CD5\u3092\u53C2\u7167\u3057\u3066\u304F\u3060\u3055\u3044\u3002\n\u4F8B\u3048\u3070\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\u6CE8\uFF1ACOLUMNS\u3001ROWS\u306F0\u30681\u4EE3\u3048\u308B\u3067\u304D\u3001\u691C\u7D22\u8EF8\u306F\u4E8C\u3064\u3060\u3051\u3092\u652F\u6301\u3057\u3066\u3044\u307E\u305B\u3093\u3002 FR-Designer_M_Help-About_Software=\u30BD\u30D5\u30C8\u30A6\u30A7\u30A2\u306B\u3064\u3044\u3066 -FR-Designer_M_Help-Tutorial=\u30D8\u30EB\u30D7\u30C1\u30E5\u30FC\u30C8\u30EA\u30A2\u30EB +FR-Designer_M_Help-Tutorial=\u30D8\u30EB\u30D7\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8 FR-Designer_Max_Value=\u6700\u5927\u5024 FR-Designer_Min_Value=\u6700\u5C0F\u5024 -FR-Designer_MobilePhone=\u643A\u5E2F\u96FB\u8A71 +FR-Designer_MobilePhone=\u30B9\u30DE\u30FC\u30C8\u30D5\u30A9\u30F3 FR-Designer_New_Value=\u65B0\u5024 FR-Designer_None=\u7121\u3057 -FR-Designer_PaperSize-Mobile=\u643A\u5E2F\u96FB\u8A71 -FR-Designer_PaperSize-Mobile-Large=\u643A\u5E2F\u96FB\u8A71\u5927\u30B9\u30AF\u30EA\u30FC\u30F3 -FR-Designer_PaperSize-Mobile-Small=\u643A\u5E2F\u96FB\u8A71\u5C0F\u30B9\u30AF\u30EA\u30FC\u30F3 -FR-Designer_Para-Body=\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC\u753B\u9762 -FR-Designer_Parameters=\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC +FR-Designer_PaperSize-Mobile=\u30B9\u30DE\u30FC\u30C8\u30D5\u30A9\u30F3 +FR-Designer_PaperSize-Mobile-Large=\u5927\u304D\u3044\u30B9\u30AF\u30EA\u30FC\u30F3 +FR-Designer_PaperSize-Mobile-Small=\u5C0F\u3055\u3044\u30B9\u30AF\u30EA\u30FC\u30F3 +FR-Designer_Para-Body=\u30D1\u30E9\u30E1\u30FC\u30BF\u30A4\u30F3\u30BF\u30FC\u30D5\u30A7\u30FC\u30B9 +FR-Designer_Parameters=\u30D1\u30E9\u30E1\u30FC\u30BF FR-Designer_Phone=\u96FB\u8A71 FR-Designer_PostCode=\u90F5\u4FBF\u756A\u53F7 -FR-Designer_Present=\u30D5\u30A9\u30EB\u30E0 +FR-Designer_Present=\u5F62\u614B FR-Designer_Preview=\u30D7\u30EC\u30D3\u30E5\u30FC -FR-Designer_Preview-Data-Confusion=\u6DF7\u4EA4\u5F8C\u306E\u30C7\u30FC\u30BF\u3092\u30D7\u30EC\u30D3\u30E5\u30FC +FR-Designer_Preview-Data-Confusion=\u6DF7\u4E71\u3055\u308C\u305F\u30C7\u30FC\u30BF\u3092\u30D7\u30EC\u30D3\u30E5\u30FC FR-Designer_Product_Demo=\u88FD\u54C1\u30C7\u30E2 FR-Designer_Query_Type=\u30AF\u30A8\u30EA\u65B9\u6CD5 FR-Designer_Refresh=\u66F4\u65B0 -FR-Designer_Refresh_Parameter_In_SQL=SQL\u4E2D\u306E\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC\u3092\u66F4\u65B0\u3057\u307E\u3059\u304B +FR-Designer_Refresh_Parameter_In_SQL=SQL\u4E2D\u306E\u30D1\u30E9\u30E1\u30FC\u30BF\u3092\u66F4\u65B0\u3057\u307E\u3059\u304B FR-Designer_Reg_Expressions=\u6B63\u5247\u8868\u73FE\u5F0F FR-Designer_Reg_Max_Length=\u6700\u5927\u9577\u3055 FR-Designer_Reg_Min_Length=\u6700\u5C0F\u9577\u3055 -FR-Designer_ReportColumns-Columns=\u6BB5\u7D44\u307F -FR-Designer_Return-Date=\u65E5\u671F\u306B\u623B\u308B -FR-Designer_RichText=\u30EA\u30C3\u30C1\u6587\u66F8\u633F\u5165 -FR-Designer_RichTextEditor=\u30EA\u30C3\u30C1\u6587\u66F8\u30A8\u30C7\u30A3\u30BF +FR-Designer_ReportColumns-Columns=\u30B3\u30E9\u30E0\u5206\u3051 +FR-Designer_Return-Date=\u65E5\u4ED8\u306B\u623B\u308B +FR-Designer_RichText=\u30EA\u30C3\u30C1\u30C6\u30AD\u30B9\u30C8\u633F\u5165 +FR-Designer_RichTextEditor=\u30EA\u30C3\u30C1\u30C6\u30AD\u30B9\u30C8\u30A8\u30C7\u30A3\u30BF FR-Designer_Row=\u884C -FR-Designer_Row_Dimension=\u884C\u8EF8/\u7DEF\u5EA6 +FR-Designer_Row_Dimension=\u884C\u8EF8/\u30C7\u30A3\u30E1\u30F3\u30B7\u30E7\u30F3 FR-Designer_Save=\u4FDD\u5B58 FR-Designer_Search=\u691C\u7D22 FR-Designer_Set=\u8A2D\u5B9A FR-Designer_Share-Template=\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u30B7\u30A7\u30A2 -FR-Designer_Simple_general=\u30B7\u30F3\u30D7\u30EB\u901A\u7528\u30AF\u30A8\u30EA +FR-Designer_Simple_general=\u30B7\u30F3\u30D7\u30EB\u6C4E\u7528\u30AF\u30A8\u30EA FR-Designer_Song_TypeFace=\u5B8B\u4F53 FR-Designer_Start-Date=\u958B\u59CB\u65E5\u671F FR-Designer_Subscript=\u4E0B\u4ED8\u304D @@ -181,69 +181,69 @@ FR-Designer_Support_QQ=\u6280\u8853QQ FR-Designer_Swatch=\u30B5\u30F3\u30D7\u30EB FR-Designer_Tab_title=tab\u30BF\u30A4\u30C8\u30EB FR-Designer_TableData=\u30C7\u30FC\u30BF\u30BB\u30C3\u30C8 -FR-Designer_Thank_guest=\u7279\u306B\u5F53\u8A72\u30D0\u30FC\u30B8\u30E7\u30F3\u30C7\u30B6\u30A4\u30CA\u30FC\u306E\u4F7F\u3044\u3084\u3059\u3055\u306B\u3064\u3044\u3066\u8CA2\u732E\u3057\u3066\u304F\u308C\u305F\u4EE5\u4E0B\u306EBBS\u306E\u5E06\u30BD\u30D5\u30C8\u30D5\u30A1\u30F3\u306B\u611F\u8B1D\u3057\u307E\u3059 +FR-Designer_Thank_guest=\u7279\u306B\u5F53\u8A72\u30D0\u30FC\u30B8\u30E7\u30F3\u30C7\u30B6\u30A4\u30CA\u30FC\u306E\u4F7F\u3044\u3084\u3059\u3055\u306B\u3064\u3044\u3066\u8CA2\u732E\u3057\u3066\u304F\u308C\u305F\u4EE5\u4E0B\u306E\u30E6\u30FC\u30B6\u9054\u306B\u611F\u8B1D\u3057\u307E\u3059 FR-Designer_Thanks-To=\u611F\u8B1D FR-Designer_Title=\u30BF\u30A4\u30C8\u30EB -FR-Designer_Total=\u5168\u90E8\u3067 +FR-Designer_Total=\u5408\u8A08 FR-Designer_UnSignIn=\u672A\u30ED\u30B0\u30A4\u30F3 -FR-Designer_Underline=\u30A2\u30F3\u30C0\u30FC\u30E9\u30A4\u30F3 +FR-Designer_Underline=\u30A2\u30F3\u30C0\u30E9\u30A4\u30F3 FR-Designer_Used=\u6700\u8FD1\u4F7F\u7528\u3057\u305F FR-Designer_User-defined-MDX=\u30AB\u30B9\u30BF\u30DE\u30A4\u30BAMDX\u30AF\u30A8\u30EA FR-Designer_SampleText=\u30C6\u30AD\u30B9\u30C8\u4F8B -FR-Designer_Vertical-LeftToRight=\u6587\u5B57\u7E26\u66F8(\u5DE6\u304B\u3089\u53F3\u3078\uFF09 -FR-Designer_Vertical-RightToLeft=\u6587\u5B57\u7E26\u66F8(\u53F3\u304B\u3089\u5DE6\u3078) -FR-Designer_VerticalBoxLayout=\u5782\u76F4\u30B1\u30FC\u30B9\u914D\u7F6E -FR-Designer_Visible=\u53EF\u8996 -FR-Designer_WLayout-Border-ToolTips=\u5B8C\u74A7\u306A\u30DC\u30FC\u30C0\u30FC\u30EC\u30A4\u30A2\u30A6\u30C8\u5BB9\u5668\u306F\u6771\u897F\u5357\u5317\u4E2D\u306E\u4E94\u3064\u306E\u30E2\u30B8\u30E5\u30FC\u30EB\u304B\u3089\u69CB\u6210\u3055\u308C\u307E\u3059\u3002\\uff4e\u305D\u306E\u3046\u3061\u3001\u5357\u5317\u30E2\u30B8\u30E5\u30FC\u30EB\u306F\u5FC5\u8981\u306B\u5FDC\u3058\u3066\u9AD8\u3055\u3092\u8ABF\u6574\u3067\u304D\u3001\u6771\u897F\u30E2\u30B8\u30E5\u30FC\u30EB\u306F\u5FC5\u8981\u306B\u5FDC\u3058\u3066\u5E45\u3092\u8ABF\u6574\u3067\u304D\u307E\u3059\u3002 +FR-Designer_Vertical-LeftToRight=\u6587\u5B57\u7E26\u66F8\u304D(\u5DE6\u304B\u3089\u53F3\u3078\uFF09 +FR-Designer_Vertical-RightToLeft=\u6587\u5B57\u7E26\u66F8\u304D(\u53F3\u304B\u3089\u5DE6\u3078) +FR-Designer_VerticalBoxLayout=\u5782\u76F4\u30B1\u30FC\u30B9\u30EC\u30A4\u30A2\u30A6\u30C8 +FR-Designer_Visible=\u8868\u793A +FR-Designer_WLayout-Border-ToolTips=\u5B8C\u5168\u306A\u30DC\u30FC\u30C0\u30FC\u30EC\u30A4\u30A2\u30A6\u30C8\u30B3\u30F3\u30C6\u30CA\u306F\u3001\u6771\u3001\u5357\u3001\u897F\u3001\u5317\u3001\u4E2D\u592E\u306E5\u30D6\u30ED\u30C3\u30AF\u3088\u308A\u69CB\u6210\u3055\u308C\u307E\u3059\u3002\n\u5317\u90E8\u3068\u5357\u90E8\u3067\u306F\u9AD8\u3055\u3092\u3001\u6771\u90E8\u3068\u897F\u90E8\u3068\u3067\u306F\u5E45\u3092\u8ABF\u6574\u3067\u304D\u307E\u3059\u3002 FR-Designer_WaterMark=\u900F\u304B\u3057 -FR-Designer_Widget=\u30B3\u30F3\u30C8\u30ED\u30FC\u30EB -FR-Designer_Widget-Settings=\u30B3\u30F3\u30C8\u30ED\u30FC\u30EB\u8A2D\u5B9A -FR-Designer_Widget-Visible=\u53EF\u8996 -FR-Designer_XMLA_Explain=\u591A\u6B21\u5143\u30C7\u30FC\u30BF\u30BB\u30C3\u30C8\u53D6\u308A\u51FA\u3057\u3092\u4F7F\u7528\u3059\u308B\u524D\u306B\u307E\u305A\u63A5\u7D9A\u306B\u6210\u529F\u3057\u305F\u591A\u6B21\u5143\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u63A5\u7D9A\u304C\u5FC5\u8981\u3067\u3059\u3002\n\u30C7\u30FC\u30BF\u63A5\u7D9A\u8A2D\u5B9A\u5B8C\u4E86\u5F8C\u3001\u30AF\u30A8\u30EA\u30C7\u30FC\u30BF\u6642\u306B\u4E8C\u7A2E\u985E\u306E\u7570\u306A\u308B\u53D6\u308A\u51FA\u3057\u624B\u6BB5\u304C\u3042\u308A\u307E\u3059\u3002\n1.\u30B7\u30F3\u30D7\u30EB\u901A\u7528\u30AF\u30A8\u30EA\uFF1A\n\u30B7\u30F3\u30D7\u30EB\u901A\u7528\u30AF\u30A8\u30EA\u306FFineBI\u304A\u3088\u3073\u305D\u306E\u4ED6\u591A\u6B21\u5143\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u306B\u9069\u7528\u3055\u308C\u307E\u3059\u3002\n\u30B7\u30F3\u30D7\u30EB\u901A\u7528\u30AF\u30A8\u30EA\u306E\u4F7F\u7528\u306B\u306F\u3001FR\u306Fcube\u306E\u5C64\u5225\u69CB\u9020\u3092\u81EA\u52D5\u3067\u8AAD\u307F\u53D6\u308A\u9078\u629E\u3057\u3001\u76F4\u63A5\u5FC5\u8981\u306A\u6240\u9700\u7684\u5EA6\u91CF\u5024\u304A\u3088\u3073\u7DEF\u5EA6\u3092\u9078\u629E\u3057\u9078\u5225\u6761\u4EF6\u3092\u8FFD\u52A0\u3059\u308C\u3070\u3001FR\u306F\u9078\u629E\u306B\u57FA\u3065\u3044\u3066\u81EA\u52D5\u7684\u306B\u30C7\u30FC\u30BF\u3092\u30AF\u30A8\u30EA\u3057\u307E\u3059\u3002\n\u30B7\u30F3\u30D7\u30EB\u901A\u7528\u30AF\u30A8\u30EA\u306F\u7DEF\u5EA6\u304A\u3088\u3073\u5EA6\u91CF\u5024\u3068\u3044\u3046\u4E8C\u3064\u306E\u8EF8\u306E\u30AF\u30A8\u30EA\u306B\u306E\u307F\u30B5\u30DD\u30FC\u30C8\u3057\u307E\u3059\u3002\n\u5EA6\u91CF\u5024\u304A\u3088\u3073\u7DEF\u5EA6\u306E\u8A2D\u5B9A\u3067\u3001\u73FE\u5728\u5FC5\u8981\u306A\u7DEF\u5EA6\u3092\u9078\u629E\u3059\u308B\u3057\u304B\u306A\u304F\u3066\u3001\u624B\u52D5\u3067\u4FEE\u6B63\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093\u3002\n\u9078\u5225\u6761\u4EF6\u306FOPEN SQL\u6587\u6CD5\u3092\u63A1\u7528\u3057\u3066\u304A\u308A\u3001${abc}\u3092\u5165\u529B\u3057\u3066\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC\u3068\u3059\u308B\u3053\u3068\u304C\u3067\u304D\u3001\u7528\u6CD5\u306F\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u30C7\u30FC\u30BF\u30BB\u30C3\u30C8\u3068\u540C\u69D8\u3067\u3059\u3002\n2.\u30AB\u30B9\u30BF\u30DE\u30A4\u30BAMDX\u30AF\u30A8\u30EA\uFF1A\n\u30AB\u30B9\u30BF\u30DE\u30A4\u30BAMDX\u30AF\u30A8\u30EA\u3092\u4F7F\u7528\u3059\u308B\u3068\u3001\u30AB\u30B9\u30BF\u30DE\u30A4\u30BAMDX\u6587\u6CD5\u304C\u5FC5\u8981\u306A\u7D50\u679C\u3092\u30AF\u30A8\u30EA\u3057\u307E\u3059\u3002\n\u6CE8\u610F\uFF0C\u30AB\u30B9\u30BF\u30DE\u30A4\u30BAMDX\u30AF\u30A8\u30EA\u3082\u4E8C\u3064\u306E\u8EF8\u306E\u30AF\u30A8\u30EA\u306B\u306E\u307F\u30B5\u30DD\u30FC\u30C8\u3057\u307E\u3059\u3002\n{abc}\u3092\u5165\u529B\u3057\u3066\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC\u3068\u3059\u308B\u3053\u3068\u304C\u3067\u304D\u3001\u7528\u6CD5\u306F\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u30C7\u30FC\u30BF\u30BB\u30C3\u30C8\u3068\u540C\u69D8\u3067\u3059\u3002\nFineBI\u306Ecube\u306FMDX\u30AF\u30A8\u30EA\u306B\u30B5\u30DD\u30FC\u30C8\u3057\u3066\u3044\u307E\u305B\u3093\u3002 -FR-Designer_bold=\u592A\u304F\u3059\u308B +FR-Designer_Widget=\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8 +FR-Designer_Widget-Settings=\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u8A2D\u5B9A +FR-Designer_Widget-Visible=\u8868\u793A +FR-Designer_XMLA_Explain=\u591A\u6B21\u5143\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u3092\u4F7F\u3063\u3066\u30C7\u30FC\u30BF\u3092\u53D6\u5F97\u3059\u308B\u524D\u306B\u3001\u307E\u305A1\u3064\u306E\u6210\u529F\u63A5\u7D9A\u3067\u304D\u308B\u591A\u6B21\u5143\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u306E\u63A5\u7D9A\u304C\u5FC5\u8981\u3067\u3059\u3002\n\u30C7\u30FC\u30BF\u63A5\u7D9A\u8A2D\u5B9A\u5F8C\u3001\u30C7\u30FC\u30BF\u3092\u691C\u7D22\u3059\u308B\u6642\u30012\u3064\u306E\u7570\u306A\u308B\u30C7\u30FC\u30BF\u53D6\u5F97\u624B\u6BB5\u304C\u3042\u308A\u307E\u3059\u3002\n1.\u7C21\u6613\u4E00\u822C\u691C\u7D22\uFF1A\n\u7C21\u6613\u4E00\u822C\u691C\u7D22\u306FFineBI\u304A\u3088\u3073\u305D\u306E\u4ED6\u306E\u591A\u6B21\u5143\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u306B\u9069\u3057\u3066\u3044\u307E\u3059\u3002\n\u7C21\u6613\u4E00\u822C\u691C\u7D22\u3067\u306F\u3001FR\u306F\u81EA\u52D5\u7684\u306Bcube\u306E\u30EC\u30D9\u30EB\u69CB\u9020\u3092\u8AAD\u307F\u8FBC\u3093\u3067\u9078\u629E\u3059\u308B\u306E\u3067\u3001\u76F4\u63A5\u5FC5\u8981\u306A\u30E1\u30C8\u30EA\u30C3\u30AF\u3068\u30C7\u30A3\u30E1\u30F3\u30B7\u30E7\u30F3\u3092\u9078\u629E\u3057\u3066\u3001\u691C\u7D22\u6761\u4EF6\u3092\u8FFD\u52A0\u3059\u308B\u3053\u3068\u304C\u3067\u304D\u307E\u3059\u3002FR\u306F\u3042\u306A\u305F\u306E\u9078\u629E\u306B\u5FDC\u3058\u3066\u81EA\u52D5\u7684\u306B\u30C7\u30FC\u30BF\u3092\u691C\u7D22\u3057\u307E\u3059\u3002\n\u7C21\u6613\u4E00\u822C\u691C\u7D22\u306F\u30E1\u30C8\u30EA\u30C3\u30AF\u3068\u30C7\u30A3\u30E1\u30F3\u30B7\u30E7\u30F32\u8EF8\u306E\u691C\u7D22\u3060\u3051\u30B5\u30DD\u30FC\u30C8\u3057\u307E\u3059\u3002\n\u30E1\u30C8\u30EA\u30C3\u30AF\u3068\u30C7\u30A3\u30E1\u30F3\u30B7\u30E7\u30F3\u306E\u8A2D\u5B9A\u3067\u306F\u3001\u73FE\u6642\u70B9\u3067\u306F\u5FC5\u8981\u306A\u30C7\u30A3\u30E1\u30F3\u30B7\u30E7\u30F3\u3057\u304B\u9078\u629E\u3067\u304D\u307E\u305B\u3093\u3002\u307E\u305F\u624B\u52D5\u3067\u5909\u66F4\u3059\u308B\u3053\u3068\u304C\u3067\u304D\u307E\u305B\u3093\u3002\n\u30D5\u30A3\u30EB\u30BF\u6761\u4EF6\u306FOPEN SQL\u6587\u6CD5\u3092\u63A1\u7528\u3059\u308B\u306E\u3067\u3001${abc}\u3092\u5165\u529B\u3057\u3066\u3001\u30D1\u30E9\u30E1\u30FC\u30BF\u306B\u3059\u308B\u3053\u3068\u304C\u3067\u304D\u308B\u3002\u4F7F\u3044\u65B9\u306F\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u306E\u30C7\u30FC\u30BF\u30BB\u30C3\u30C8\u3068\u540C\u3058\u3067\u3059\u3002\n2.\u30AB\u30B9\u30BF\u30E0MDX\u691C\u7D22\uFF1A\n\u30AB\u30B9\u30BF\u30E0MDX\u691C\u7D22\u3067\u306F\u3001MDX\u8A00\u8A9E\u3092\u30AB\u30B9\u30BF\u30E0\u3057\u3066\u5FC5\u8981\u306A\u7D50\u679C\u3092\u691C\u7D22\u3059\u308B\u3053\u3068\u304C\u3067\u304D\u307E\u3059\u3002\n\u6CE8\u610F\uFF1A\u30AB\u30B9\u30BF\u30E0MDX\u691C\u7D22\u3067\u3082\u30012\u8EF8\u306E\u691C\u7D22\u3092\u30B5\u30DD\u30FC\u30C8\u3059\u308B\u3053\u3068\u3057\u304B\u3067\u304D\u306A\u3044\u3002\n${abc}\u3092\u5165\u529B\u3057\u3066\u3001\u30D1\u30E9\u30E1\u30FC\u30BF\u306B\u3059\u308B\u3053\u3068\u304C\u3067\u304D\u308B\u3002\u4F7F\u3044\u65B9\u306F\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u306E\u30C7\u30FC\u30BF\u30BB\u30C3\u30C8\u3068\u540C\u3058\u3067\u3059\u3002\nFineBI\u306Ecube\u306FMDX\u691C\u7D22\u3092\u30B5\u30DD\u30FC\u30C8\u3057\u3066\u3044\u307E\u305B\u3093\u3002 +FR-Designer_bold=\u592A\u5B57 FR-Designer_font=\u30D5\u30A9\u30F3\u30C8 -FR-Designer_italic=\u30A4\u30BF\u30EA\u30C3\u30AF +FR-Designer_italic=\u659C\u4F53 FR-Designer_product_feedback=\u88FD\u54C1\u30D5\u30A3\u30FC\u30C9\u30D0\u30C3\u30AF FR-Designer_XMLA=\u591A\u6B21\u5143\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9 FR-Designer-StyleAlignment_Layout_Default=\u30C7\u30D5\u30A9\u30EB\u30C8 -FR-Designer-StyleAlignment_Layout_Image_Titled=\u5C55\u958B -FR-Designer-StyleAlignment_Layout_Image_Extend=\u5C55\u958B -FR-Designer-StyleAlignment_Layout_Image_Adjust=\u9069\u5FDC +FR-Designer-StyleAlignment_Layout_Image_Titled=\u4E26\u3079\u3066\u8868\u793A +FR-Designer-StyleAlignment_Layout_Image_Extend=\u62E1\u5927\u8868\u793A +FR-Designer-StyleAlignment_Layout_Image_Adjust=\u81EA\u52D5\u9069\u5FDC FR-Designer-StyleAlignment_Tooltips_Left=\u5DE6\u8A70\u3081 FR-Designer-StyleAlignment_Tooltips_Center=\u4E2D\u592E\u63C3\u3048 FR-Designer-StyleAlignment_Tooltips_Right=\u53F3\u8A70\u3081 FR-Designer-StyleAlignment_Tooltips_Distributed=\u5747\u7B49\u5272\u308A\u4ED8\u3051 FR-Designer-StyleAlignment_Tooltips_DEFAULT=\u30C7\u30D5\u30A9\u30EB\u30C8 -FR-Designer-StyleAlignment_Tooltips_Top=\u4E0A\u8A70\u3081 -FR-Designer-StyleAlignment_Tooltips_Bottom=\u4E0B\u8A70\u3081 +FR-Designer-StyleAlignment_Tooltips_Top=\u5DE6\u63C3\u3048 +FR-Designer-StyleAlignment_Tooltips_Bottom=\u4E0B\u63C3\u3048 FR-Designer-StyleAlignment_Pane_Horizontal=\u6C34\u5E73\u63C3\u3048 FR-Designer-StyleAlignment_Pane_Vertical=\u5782\u76F4\u63C3\u3048 -FR-Designer-StyleAlignment_Pane_Style=\u30A2\u30E9\u30A4\u30F3\u30E1\u30F3\u30C8 +FR-Designer-StyleAlignment_Pane_Style=\u63C3\u3048\u65B9\u5F0F FR-Designer-StyleAlignment_Style_Indentation=\u30A4\u30F3\u30C7\u30F3\u30C8 -FR-Designer-StyleAlignment_Style_Spacing=\u9593\u9694\u8DDD\u96E2 +FR-Designer-StyleAlignment_Style_Spacing=\u9593\u9694 FR-Designer-StyleAlignment_Style_Alignment=\u63C3\u3048 -FR-Designer-CommitTab_Submit=\u63D0\u51FA\u3059\u308B +FR-Designer-CommitTab_Submit=\u66F8\u304D\u8FBC\u307F FR-Designer-CommitTab_SureToDelete=\u524A\u9664\u3057\u307E\u3059\u304B FR-Designer-CommitTab_Remove=\u524A\u9664 FR-Designer-Collect_Information_free=\u7121\u6599 -FR-Designer-Collect_Information_Description=\u8A18\u8FF0 +FR-Designer-Collect_Information_Description=\u8AAC\u660E FR-Designer-Collect_Information_Successfully=\u53CE\u96C6\u6210\u529F FR-Designer_Event_Set=\u30A4\u30D9\u30F3\u30C8\u8A2D\u5B9A -FR-Designer_Blow_set=\u4EE5\u4E0B\u8A2D\u5B9A -FR-Designer_I_Want_To_Set_Single=\u5F53\u8A72\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u3092\u5358\u72EC\u8A2D\u5B9A -FR-Designer_Using_Server_Report_View_Settings=\u30B5\u30FC\u30D0\u8A2D\u5B9A\u63A1\u7528 -FR-Designer_ErrorHandlerTemplate=\u51FA\u9519\u6A21\u677F\u5B9A\u4E49 -FR-Designer_Save_Path=\u4FDD\u5B58\u8DEF\u5F84 +FR-Designer_Blow_set=\u4EE5\u4E0B\u306E\u8A2D\u5B9A +FR-Designer_I_Want_To_Set_Single=\u5F53\u8A72\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u3092\u500B\u5225\u8A2D\u5B9A +FR-Designer_Using_Server_Report_View_Settings=\u30B5\u30FC\u30D0\u8A2D\u5B9A\u3092\u63A1\u7528 +FR-Designer_ErrorHandlerTemplate=\u30A8\u30E9\u30FC\u60C5\u5831\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u5B9A\u7FA9 +FR-Designer_Save_Path=\u4FDD\u5B58\u30D1\u30B9 FR-Designer_Chart_Acc_Set=\u7CBE\u78BA\u8A2D\u5B9A -FR-Designer_Gradient-Color=\u8272\u3092\u5F90\u3005\u306B\u5909\u5316 +FR-Designer_Gradient-Color=\u30B0\u30E9\u30C7\u30FC\u30B7\u30E7\u30F3 FR-Designer_DEFAULT=\u30C7\u30D5\u30A9\u30EB\u30C8 -FR-Designer_chart-PreStyle=\u30C1\u30E3\u30FC\u30C8\u306E\u5B9A\u7FA9\u3055\u308C\u305F\u30AB\u30E9\u30FC -FR-Designer_Chart-PreStyle=\u4E8B\u524D\u306B\u5B9A\u7FA9\u3055\u308C\u305F\u30AB\u30E9\u30FC\u30C1\u30E3\u30FC\u30C8 -FR-Designer_Already_exist=\u73FE\u5728\u306E\u74B0\u5883\u306B\u306F\u5B58\u5728\u3057\u3066\u3044\u307E\u3059\: +FR-Designer_chart-PreStyle=\u30B0\u30E9\u30D5\u306E\u4E8B\u524D\u5B9A\u7FA9\u7CFB\u5217\u8272 +FR-Designer_Chart-PreStyle=\u30B0\u30E9\u30D5\u306E\u4E8B\u524D\u5B9A\u7FA9\u7CFB\u5217\u8272 +FR-Designer_Already_exist=\u73FE\u5728\u306E\u74B0\u5883\u306B\u306F\u65E2\u306B\u5B58\u5728\u3057\u3066\u3044\u307E\u3059\: FR-Designer_Database=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9 -FR-Designer_Model=\u30E2\u30C7\u30EB -FR-Designer_Refresh_Successfully=\u5237\u65B0\u6210\u529F -FR-Designer_SQL-Table=\u8868 +FR-Designer_Model=\u30E2\u30FC\u30C9 +FR-Designer_Refresh_Successfully=\u66F4\u65B0\u6210\u529F +FR-Designer_SQL-Table=\u30C6\u30FC\u30D6\u30EB FR-Designer_SQL-View=\u30D3\u30E5\u30FC FR-Designer_Failed=\u5931\u6557 FR-Designer_Chart_Field_Name=\u30D5\u30A3\u30FC\u30EB\u30C9\u540D @@ -257,96 +257,96 @@ FR-Designer_Function=\u95A2\u6570 FR-Designer_Select=\u9078\u629E FR-Designer_Edit=\u7DE8\u96C6 FR-Designer_Description=\u8AAC\u660E -FR-Designer_Role_changed_isRefresh=\u30ED\u30FC\u30EB\u306F\u3001\u30EA\u30D5\u30EC\u30C3\u30B7\u30E5\u3059\u308B\u304B\u3069\u3046\u304B\u3001\u5909\u66F4 -FR-Designer_FS_Name=\u30C7\u30FC\u30BF\u51B3\u7B56\u30B7\u30B9\u30C6\u30E0 -FR-Designer_Datasource-Parameter=\u30C7\u30FC\u30BF\u30BD\u30FC\u30B9 -FR-Designer_Tree-ComboBox=\u30DA\u30FC\u30B8\u30DC\u30C3\u30AF\u30B9...... -FR-Designer_Form-Iframe=\u30DA\u30FC\u30B8\u30DC\u30C3\u30AF\u30B9 +FR-Designer_Role_changed_isRefresh=\u30ED\u30FC\u30EB\u306F\u5909\u66F4\u3057\u307E\u3057\u305F\u304C\u3001\u30EA\u30D5\u30EC\u30C3\u30B7\u30E5\u3092\u884C\u3044\u307E\u3059\u304B\uFF1F +FR-Designer_FS_Name=\u610F\u601D\u6C7A\u5B9A\u30B7\u30B9\u30C6\u30E0 +FR-Designer_Datasource-Parameter=\u30C7\u30FC\u30BF\u30BD\u30FC\u30B9\u30D1\u30E9\u30E1\u30FC\u30BF +FR-Designer_Tree-ComboBox=\u30D7\u30EB\u30C0\u30A6\u30F3\u30C4\u30EA\u30FC +FR-Designer_Form-Iframe= FR-Designer_Type=\u30BF\u30A4\u30D7 FR-Designer_User-defined=\u30AB\u30B9\u30BF\u30DE\u30A4\u30BA -FR-Designer_Simple_general_forV6=\u901A\u7528\u30AF\u30A8\u30EA(ECC 6\u4EE5\u4E0A\u306E\u30D0\u30FC\u30B8\u30E7\u30F3\u306B\u9069\u7528) +FR-Designer_Simple_general_forV6=\u6C4E\u7528\u30AF\u30A8\u30EA(ECC 6\u4EE5\u4E0A\u306E\u30D0\u30FC\u30B8\u30E7\u30F3\u306B\u9069\u7528) FR-Designer_Import=\u30A4\u30F3\u30DD\u30FC\u30C8 -FR-Designer_Export=\u51FA\u529B +FR-Designer_Export=\u30A8\u30AF\u30B9\u30DD\u30FC\u30C8 FR-Designer_Delete=\u524A\u9664 -FR-Designer_Sequenced_number=\u30CA\u30F3\u30D0\u30FC -FR-Designer_Parameters_name=\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC\u540D\u79F0 +FR-Designer_Sequenced_number=\u756A\u53F7 +FR-Designer_Parameters_name=\u30D1\u30E9\u30E1\u30FC\u30BF\u540D FR-Designer_SAP_datatype=SAP\u30C7\u30FC\u30BF\u30BF\u30A4\u30D7 -FR-Designer_Return_set_name=\u30BB\u30C3\u30C8\u306B\u623B\u308B +FR-Designer_Return_set_name=\u623B\u308B\u30C7\u30FC\u30BF\u30BB\u30C3\u30C8\u540D FR-Designer_Datatype=\u30C7\u30FC\u30BF\u30BF\u30A4\u30D7 -FR-Designer_Corre_parameter=\u5BFE\u5FDC\u3059\u308B\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC -FR-Designer_Default_value=\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC\u30C7\u30D5\u30A9\u30EB\u30C8\u5024 +FR-Designer_Corre_parameter=\u5BFE\u5FDC\u3059\u308B\u30D1\u30E9\u30E1\u30FC\u30BF +FR-Designer_Default_value=\u30D1\u30E9\u30E1\u30FC\u30BF\u30C7\u30D5\u30A9\u30EB\u30C8\u5024 FR-Designer_SAP_column_name=SAP\u5217\u540D -FR-Designer_Table_name=\u8868\u306E\u540D\u79F0 +FR-Designer_Table_name=\u30C6\u30FC\u30D6\u30EB\u540D FR-Designer_Columns_choosed=\u9078\u629E\u3057\u305F\u5217 -FR-Designer_Where_claus=\u9078\u5225\u6761\u4EF6 -FR-Designer_PreStyle=\u9810\u5B9A\u7FA9\u6A23\u5F0F -FR-Designer_Loading=\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9\u3057\u3066\u3044\u307E\u3059 -FR-Designer_Table=\u8868 +FR-Designer_Where_claus=\u30D5\u30A3\u30EB\u30BF\u30FC\u6761\u4EF6 +FR-Designer_PreStyle=\u4E8B\u524D\u5B9A\u7FA9\u30B9\u30BF\u30A4\u30EB +FR-Designer_Loading=\u30ED\u30FC\u30C7\u30A3\u30F3\u30B0... +FR-Designer_Table=\u30C6\u30FC\u30D6\u30EB FR-Designer_Name=\u540D\u79F0 -FR-Designer_EmailPane-tips=\u3042\u306A\u305F\u306F\u3001ABC\u306F\u3001\u30D1\u30E9\u30E1\u30FC\u30BF\u540D\u3092\u30D1\u30E9\u30E1\u30FC\u30BF\u3068\u3057\u3066${ABC}\u3092\u5165\u529B\u3059\u308B\u3053\u3068\u304C\u3067\u304D\u307E\u3059\u3088\u3046\u306B\u3001\u5F0F\u3068\u3057\u3066${\u4ECA\u65E5\uFF08\uFF09}\uFF1A\u30BF\u30A4\u30C8\u30EB\u30C6\u30AD\u30B9\u30C8"${\u4ECA\u65E5\uFF08\uFF09}\u7D71\u8A08\u306F"\u3001"$ {\u306B\u30A2\u30C9\u30EC\u30B9\u6307\u5B9A\u3055\u308C\u3066\u3044\u308BP}\u3001123@gmail.com\u3001\u30DE\u30A4\u30AF\u306F\u3001\u30E6\u30FC\u30B6\u540D\u30E6\u30FC\u30B6\u7BA1\u7406\u30D7\u30E9\u30C3\u30C8\u30D5\u30A9\u30FC\u30E0\u306B\u4FDD\u5B58\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u30DE\u30A4\u30AF "\u3001 -FR-Designer_EmailPane-mailContent=\u30E1\u30FC\u30EB\u672C\u6587 -FR-Designer_EmailPane-BCC=\u5BC6\u9001 -FR-Designer_EmailPane-mailSubject=\u30E1\u30FC\u30EB\u30BF\u30A4\u30C8\u30EB -FR-Designer_EmailPane-warnings=\u9001\u4FE1\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\u3092\u8A2D\u5B9A\u3057\u3066\u3044\u307E\u305B\u3093\u3002\u30ED\u30B0\u30A4\u30F3\u30D7\u30E9\u30C3\u30C8\u30D5\u30A9\u30FC\u30E0\u3067\u8A2D\u5B9A\u3059\u308B\u304B\u7BA1\u7406\u8005\u306B\u9023\u7D61\u3057\u3066\u304F\u3060\u3055\u3044\u3002 +FR-Designer_EmailPane-tips=${abc}\u3092\u30D1\u30E9\u30E1\u30FC\u30BF\u3068\u3057\u3066\u5165\u529B\u3057\u3001abc\u306F\u30D1\u30E9\u30E1\u30FC\u30BF\u540D\u3002${today()}\u3092\u6570\u5F0F\u306B\u3059\u308B\u3002\u4F8B\:\u30BF\u30A4\u30C8\u30EB\u306E\u672C\u6587\u304C\u300C${today()}\u7D71\u8A08\u72B6\u6CC1\u300D\u3001\u5B9B\u5148\u304C\u300C${p},123@gmail.com,mike\u300D\u306E\u3068\u304D\u3001\u3053\u3053\u3067mike\u306F\u3001\u30D7\u30E9\u30C3\u30C8\u30D5\u30A9\u30FC\u30E0\u3067\u7BA1\u7406\u3055\u308C\u3066\u3044\u308B\u30E6\u30FC\u30B6\u30FCID\u306E\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002 +FR-Designer_EmailPane-mailContent=\u30E1\u30FC\u30EB\u5185\u5BB9 +FR-Designer_EmailPane-BCC=BCC +FR-Designer_EmailPane-mailSubject=\u4EF6\u540D +FR-Designer_EmailPane-warnings=\u610F\u601D\u6C7A\u5B9A\u30B7\u30B9\u30C6\u30E0\u306B\u9001\u4FE1\u7528\u30E1\u30FC\u30EB\u30DC\u30C3\u30AF\u30B9\u3092\u8A2D\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002 FR-Designer_Email_sentEmail=\u30E1\u30FC\u30EB\u9001\u4FE1 -FR-Designer_file-is-locked=\u958B\u3053\u3046\u3068\u3057\u3066\u3044\u308B\u5E33\u7968\u306F\u73FE\u5728\u4ED6\u306E\u4EBA\u304C\u7DE8\u96C6\u3057\u3066\u3044\u307E\u3059\u3002\u5C11\u3057\u5F85\u3063\u3066\u304B\u3089\u958B\u3044\u3066\u304F\u3060\u3055\u3044 -FR-Designer_Custom_Icon_Message1=16 ?? 16\u306EPNG\u753B\u50CF\u3092\u4F7F\u7528\u3059\u308B\u3053\u3068\u3092\u304A\u3059\u3059\u3081\u3057\u307E\u3059 +FR-Designer_file-is-locked=\u9078\u629E\u3057\u305F\u5E33\u7968\u306F\u3001\u4ED6\u306E\u30E6\u30FC\u30B6\u30FC\u304C\u7DE8\u96C6\u3057\u3066\u3044\u307E\u3059\u3002\u66AB\u304F\u304A\u5F85\u3061\u4E0B\u3055\u3044\u3002 +FR-Designer_Custom_Icon_Message1=\u898F\u683C16\u00D716\u306EPNG\u753B\u50CF\u306E\u4F7F\u7528\u3092\u63A8\u5968 FR-Designer_Add=\u8FFD\u52A0 -FR-Designer_Custom_Icon_Message2=\u30AA\u30DA\u30EC\u30FC\u30B7\u30E7\u30F3\u306B\u4E0D\u9069\u5207\u306A\u70B9\u304C\u898B\u3089\u308C\u307E\u3059 +FR-Designer_Custom_Icon_Message2=\u64CD\u4F5C\u306B\u4E0D\u9069\u5207\u306A\u6240\u304C\u898B\u3064\u304B\u308C\u307E\u3057\u305F FR-Designer_Tooltips=\u30D2\u30F3\u30C8 FR-Designer_Remove=\u524A\u9664 FR-Designer_Custom_Icon_SelectIcon=\u30A2\u30A4\u30B3\u30F3\u3092\u9078\u629E -FR-Designer_Click_this_button=\u30AF\u30EA\u30C3\u30AF\u3057\u3066\u30EB\u30FC\u30C8\u9078\u629E\u3092\u884C\u3046 -FR-Designer_Custom_Icon_Message3=\u30A2\u30A4\u30B3\u30F3\u540D\u79F0\u306F\u3059\u3067\u306B\u4F7F\u308F\u308C\u3066\u3044\u307E\u3059\u3002 -FR-Designer_Set_default_browser=\u30C7\u30D5\u30A9\u30EB\u30C8\u30D6\u30E9\u30A6\u30B6\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3067\u3057\u305F\u3002Intenet\u30AA\u30D7\u30B7\u30E7\u30F3\u4E2D\u304B\u3089\u30B7\u30B9\u30C6\u30E0\u30C7\u30D5\u30A9\u30EB\u30C8\u30D6\u30E9\u30A6\u30B6\u3092\u8A2D\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002 +FR-Designer_Click_this_button=\u30DC\u30BF\u30F3\u3092\u30AF\u30EA\u30C3\u30AF\u3057\u3066\u30D1\u30B9\u9078\u629E\u3092\u884C\u3046 +FR-Designer_Custom_Icon_Message3=\u30A2\u30A4\u30B3\u30F3\u306E\u540D\u79F0\u306F\u65E2\u306B\u4F7F\u7528\u3057\u3066\u3044\u307E\u3059\u3002 +FR-Designer_Set_default_browser=\u30C7\u30D5\u30A9\u30EB\u30C8\u30D6\u30E9\u30A6\u30B6\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3001Intenet\u30AA\u30D7\u30B7\u30E7\u30F3\u3067\u30B7\u30B9\u30C6\u30E0\u306E\u30C7\u30D5\u30A9\u30EB\u30C8\u30D6\u30E9\u30A6\u30B6\u3092\u8A2D\u5B9A\u3057\u3066\u4E0B\u3055\u3044\u3002 FR-Designer_Open=\u958B\u304F -FR-Designer_Utils-OpenDemoEnv=\u88FD\u54C1\u30C7\u30E2\u3001\u81EA\u52D5\u3067\u4F5C\u696D\u76EE\u6B21\u306B\u5207\u308A\u66FF\u3048\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059 -FR-Designer_Utils-switch=\n\u73FE\u5728\u306E\u4FDD\u5B58\u3055\u308C\u3066\u3044\u306A\u3044\u30D5\u30A1\u30A4\u30EB\u306F\u73FE\u5728\u306E\u76EE\u6B21\u306B\u4FDD\u5B58\u3055\u308C\u307E\u3059\u3002\n\u7D9A\u884C\u3057\u307E\u3059\u304B\uFF1F -FR-Designer_Utils-NewDemoEnv=\u88FD\u54C1\u30C7\u30E2\u3001\u81EA\u52D5\u3067\u4F5C\u696D\u76EE\u6B21\u3092\u65B0\u898F\u4F5C\u6210\u3057\u307E\u3059\uFF1A -FR-Designer_Save_As_Global_Style=\u5168\u5C40\u66F8\u5F0F\u3068\u3057\u3066\u4FDD\u5B58 -FR-Designer_Input_The_Name_Of_Gloabel_Style=\u4FDD\u5B58\u3057\u3066\u3044\u308B\u5168\u5C40\u66F8\u5F0F\u306E\u540D\u79F0\u3092\u5165\u529B +FR-Designer_Utils-OpenDemoEnv=\u88FD\u54C1\u30C7\u30E2\u3092\u4F7F\u3048\u306A\u308C\u3070\u3001\u81EA\u52D5\u3067\u4F5C\u696D\u76EE\u6B21\u306B\u5207\u308A\u66FF\u3048\u307E\u3059\uFF1A +FR-Designer_Utils-switch=\n\u4FDD\u5B58\u3055\u308C\u3066\u3044\u306A\u3044\u30D5\u30A1\u30A4\u30EB\u306F\u73FE\u5728\u306E\u76EE\u6B21\u306B\u4FDD\u5B58\u3055\u308C\u307E\u3059\u3002\n\u7D9A\u884C\u3057\u307E\u3059\u304B\uFF1F +FR-Designer_Utils-NewDemoEnv=\u88FD\u54C1\u30C7\u30E2\u3092\u4F7F\u3048\u306A\u308C\u3070\u3001\u81EA\u52D5\u3067\u4F5C\u696D\u76EE\u6B21\u3092\u65B0\u898F\u4F5C\u6210\u3057\u307E\u3059\uFF1A +FR-Designer_Save_As_Global_Style=\u30B0\u30ED\u30FC\u30D0\u30EB\u30B9\u30BF\u30A4\u30EB\u3068\u3057\u3066\u4FDD\u5B58 +FR-Designer_Input_The_Name_Of_Gloabel_Style=\u4FDD\u5B58\u3055\u308C\u308B\u30B0\u30ED\u30FC\u30D0\u30EB\u30B9\u30BF\u30A4\u30EB\u540D\u3092\u5165\u529B FR-Designer_This_Name_Has_Exsit=\u3053\u306E\u540D\u524D\u306F\u3059\u3067\u306B\u5B58\u5728\u3057\u3066\u3044\u307E\u3059 FR-Designer_Shortcut_Set=\u30B7\u30E7\u30FC\u30C8\u30AB\u30C3\u30C8\u30AD\u30FC\u8A2D\u5B9A FR-Designer_Feature_Name=\u6A5F\u80FD\u540D\u79F0\uFF1A -FR-Designer_Cursor_to_next_column=\u30AB\u30FC\u30BD\u30EB\u3092\u6B21\u306E\u4E00\u5217\u3078\u79FB\u52D5 -FR-Designer_Cursor_to_next_row=\u30AB\u30FC\u30BD\u30EB\u3092\u6B21\u306E\u4E00\u884C\u3078\u79FB\u52D5 +FR-Designer_Cursor_to_next_column=\u30AB\u30FC\u30BD\u30EB\u3092\u6B21\u306E\u5217\u3078\u79FB\u52D5 +FR-Designer_Cursor_to_next_row=\u30AB\u30FC\u30BD\u30EB\u3092\u6B21\u306E\u884C\u3078\u79FB\u52D5 FR-Designer_Current_keys=\u73FE\u5728\u306E\u30B7\u30E7\u30FC\u30C8\u30AB\u30C3\u30C8\u30AD\u30FC\uFF1A -FR-Designer_Exchange_key=\u30AF\u30EA\u30C3\u30AF\u4E92\u63DB\u30B7\u30E7\u30FC\u30C8\u30AB\u30C3\u30C8\u30AD\u30FC +FR-Designer_Exchange_key=\u30AF\u30EA\u30C3\u30AF\u3057\u3066\u30B7\u30E7\u30FC\u30C8\u30AB\u30C3\u30C8\u30AD\u30FC\u3092\u5207\u308A\u66FF\u3048 FR-Designer_System_default=\u30B7\u30B9\u30C6\u30E0\u3092\u30C7\u30D5\u30A9\u30EB\u30C8\u306B\u3059\u308B -FR-Designer_Cursor_to_previous_column=\u30AB\u30FC\u30BD\u30EB\u3092\u524D\u306E\u4E00\u5217\u3078\u79FB\u52D5\uFF1A -FR-Designer_Cursor_to_previous_row=\u30AB\u30FC\u30BD\u30EB\u3092\u524D\u306E\u4E00\u884C\u3078\u79FB\u52D5\uFF1A +FR-Designer_Cursor_to_previous_column=\u30AB\u30FC\u30BD\u30EB\u3092\u524D\u306E\u5217\u306B\u79FB\u3059\uFF1A +FR-Designer_Cursor_to_previous_row=\u30AB\u30FC\u30BD\u30EB\u3092\u524D\u306E\u884C\u306B\u79FB\u3059\uFF1A FR-Designer_Are_You_Sure_To_Delete_The_Data=\u9078\u629E\u3055\u308C\u305F\u30C7\u30FC\u30BF\u3092\u524A\u9664\u3057\u307E\u3059\u304B\uFF1F -FR-Designer_Show_Icon=\u30DC\u30BF\u30F3\u30A2\u30A4\u30B3\u30F3\u3092\u8868\u793A -FR-Designer_Show_Text=\u30DC\u30BF\u30F3\u540D\u524D\u3092\u8868\u793A -FR-Designer_User_Defined_Event=\u30AB\u30B9\u30BF\u30DE\u30A4\u30BA\u4E8B\u4EF6 -FR-Designer_Output_PDF=PDF\u30A2\u30A6\u30C8\u30D7\u30C3\u30C8 -FR-Designer_Output_Word=Word\u30A2\u30A6\u30C8\u30D7\u30C3\u30C8 -FR-Designer_Image=\u30A4\u30E1\u30FC\u30B8 -FR-Designer_Flash_Print=Flash\u30D7\u30EA\u30F3\u30C8 -FR-Designer_PDF_Print=PDF\u30D7\u30EA\u30F3\u30C8 +FR-Designer_Show_Icon=\u30DC\u30BF\u30F3\u306E\u30A2\u30A4\u30B3\u30F3\u3092\u8868\u793A +FR-Designer_Show_Text=\u30DC\u30BF\u30F3\u306E\u540D\u524D\u3092\u8868\u793A +FR-Designer_User_Defined_Event=\u30AB\u30B9\u30BF\u30DE\u30A4\u30BA\u30A4\u30D9\u30F3\u30C8 +FR-Designer_Output_PDF=PDF\u3092\u51FA\u529B +FR-Designer_Output_Word=Word\u3092\u51FA\u529B +FR-Designer_Image=\u753B\u50CF +FR-Designer_Flash_Print=Flash\u5370\u5237 +FR-Designer_PDF_Print=PDF\u5370\u5237 FR-Designer_Applet_Print=\u30A2\u30D7\u30EC\u30C3\u30C8\u5370\u5237 -FR-Designer_Server_Print=\u30B5\u30FC\u30D0\u7AEF\u672B\u30D7\u30EA\u30F3\u30C8 +FR-Designer_Server_Print=\u30B5\u30FC\u30D0\u5074\u5370\u5237 FR-Designer_Use_ToolBar=\u30C4\u30FC\u30EB\u30D0\u30FC\u4F7F\u7528 FR-Designer_Report_Show_Location=\u5E33\u7968\u8868\u793A\u4F4D\u7F6E FR-Designer_Is_Paint_Page=\u753B\u50CF\u3067\u8868\u793A -FR-Designer_IS_Auto_Scale=iframeiframe\u306F\u3081\u8FBC\u307F\u6642\u81EA\u52D5\u30BA\u30FC\u30E0 -FR-Designer_IS_TD_HEAVY_EXPORT=\u91CD\u65B9\u6CD5\u30BB\u30EB\u3092\u51FA\u529B +FR-Designer_IS_Auto_Scale=iframe\u306B\u57CB\u3081\u8FBC\u3080\u6642\u81EA\u52D5\u30BA\u30FC\u30E0 +FR-Designer_IS_TD_HEAVY_EXPORT=\u30D8\u30D3\u30FC\u30E2\u30FC\u30C9\u3067\u30BB\u30EB\u3092\u51FA\u529B FR-Designer_Top=\u4E0A FR-Designer_Bottom=\u4E0B -FR-Designer-Collect_OSXTips=\u30D2\u30F3\u30C8\uFF1A\u30D7\u30EC\u30B9 control + v \u30A2\u30AF\u30C6\u30A3\u30D9\u30FC\u30B7\u30E7\u30F3\u30B3\u30FC\u30C9\u3092\u8CBC\u308A\u4ED8\u3051 +FR-Designer-Collect_OSXTips=\u30D2\u30F3\u30C8\uFF1A\u201Dcontrol + v\u201D\u3092\u30D7\u30EC\u30B9\u3057\u3066\u3001\u30A2\u30AF\u30C6\u30A3\u30D9\u30FC\u30B7\u30E7\u30F3\u30B3\u30FC\u30C9\u3092\u8CBC\u308A\u4ED8\u3051\u3066\u304F\u3060\u3055\u3044\u3002 FR-Designer_X_Coordinate=\u6A2A\u5EA7\u6A19 FR-Designer_Y_Coordinate=\u7E26\u5EA7\u6A19 -FR-Designer_Widget_Width=\u30B3\u30F3\u30C8\u30ED\u30FC\u30EB\u5E45 -FR-Designer_Widget_Height=\u30B3\u30F3\u30C8\u30ED\u30FC\u30EB\u9AD8\u3055 +FR-Designer_Widget_Width=\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u306E\u5E45\u3055 +FR-Designer_Widget_Height=\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u306E\u9AD8\u3055 FR-Designer_Min_Height=\u6700\u5C0F\u9AD8\u3055 FR-Designer_LeftParent=\u5DE6\u89AA\u30BB\u30EB -FR-Designer-PluginLicense_Check_Failed=\u3042\u306A\u305F\u306E\u30D7\u30E9\u30B0\u8A8D\u8A3C\u30D5\u30A1\u30A4\u30EB\u306E\u671F\u9650\u304C\u5207\u308C\u3066\u3044\u308B\u3001\u3057\u3066\u304F\u3060\u3055\u3044\u3001\u518D\u6D3B\u6027\u5316 +FR-Designer-PluginLicense_Check_Failed=\u30D7\u30E9\u30B0\u30A4\u30F3\u306E\u30E9\u30A4\u30BB\u30F3\u30B9\u30D5\u30A1\u30A4\u30EB\u306F\u671F\u9650\u5207\u308C\u62C5\u3063\u3066\u3044\u307E\u3059\u3001\u518D\u5EA6\u7533\u8ACB\u3057\u3066\u304F\u3060\u3055\u3044\u3002 FR-Designer-File_address=\u30D5\u30A1\u30A4\u30EB\u30A2\u30C9\u30EC\u30B9 FR-Designer-Local_file=\u30ED\u30FC\u30AB\u30EB\u30D5\u30A1\u30A4\u30EB FR-Designer_Selection=\u9078\u629E -FR-Designer-Type_Parameter= ${abc}\u3092\u5165\u529B\u3057\u3066\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC\u306B\u3059\u308B\u3053\u3068\u304C\u3067\u304D\u307E\u3059\u3002
 \u3053\u3053\u3067abc\u3068\u306F\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC\u7684\u540D\u79F0\u3067\u3059\u3002\u4F8B\u3048\u3070\uFF1A
+FR-Designer-Type_Parameter= ${abc}\u3092\u5165\u529B\u3057\u3066\u30D1\u30E9\u30E1\u30FC\u30BF\u306B\u3059\u308B\u3053\u3068\u304C\u3067\u304D\u307E\u3059\u3002
 \u3053\u3053\u3067abc\u3068\u306F\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC\u7684\u540D\u79F0\u3067\u3059\u3002\u4F8B\u3048\u3070\uFF1A
FR-Designer_Add_JS_warning=\u4F8B\u306B\u793A\u3059\u3088\u3046\u306A\u6B63\u3057\u3044URL\u30A2\u30C9\u30EC\u30B9\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044\uFF01 -FR-Designer-Encoding_Type=\u30B3\u30FC\u30C9\u30BF\u30A4\u30D7 +FR-Designer-Encoding_Type=\u30A8\u30F3\u30B3\u30FC\u30C9\u30BF\u30A4\u30D7 FR-Designer-FirstRow_IS_ColumnName=\u7B2C\u4E00\u884C\u306F\u5217\u30BF\u30A4\u30C8\u30EB\u3092\u542B\u307F\u307E\u3059 FR-Designer_Dismenber=\u533A\u5207\u308A\u7B26 FR-Designer_TableDismember=\u30BF\u30D6\u6587\u5B57 @@ -354,43 +354,43 @@ FR-Designer_Space=\u30B9\u30DA\u30FC\u30B9 FR-Designer_CommaDismenber=\u30B3\u30F3\u30DE FR-Designer_Other=\u305D\u306E\u4ED6 FR-Designer-Series_Dismenber_As_Single=\u9023\u7D9A\u3059\u308B\u533A\u5207\u308A\u8A18\u53F7\u306F\u5358\u72EC\u51E6\u7406\u3068\u307F\u306A\u3055\u308C\u308B -FR-Designer_KeyPoint=\u30AD\u30FC\u306E\u30CE\u30FC\u30C9 -FR-Designer_loadedTreeModel=\u30ED\u30FC\u30C9\u304C\u5931\u6557\u3057\u3001\u78BA\u8A8D\u5F8C\u3001\u518D\u8A66\u884C +FR-Designer_KeyPoint=\u30AD\u30FC\u30CE\u30FC\u30C9 +FR-Designer_loadedTreeModel=\u30ED\u30FC\u30C9\u5931\u6557\u3001\u78BA\u8A8D\u5F8C\u3067\u518D\u8A66\u884C\u3057\u3066\u304F\u3060\u3055\u3044\u3002 FR-Designer-Failed_to_load_the_plugin=\u30D7\u30E9\u30B0\u30A4\u30F3\u3092\u30ED\u30FC\u30C9\u3059\u308B\u3053\u3068\u304C\u3067\u304D\u307E\u305B\u3093\u3001\u30D7\u30E9\u30B0\u30A4\u30F3\u3092\u66F4\u65B0\u3057\u3066\u304F\u3060\u3055\u3044\uFF1A FR-Designer_XMLA_Database=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9 FR-Designer_XMLA_UserName=\u30E6\u30FC\u30B6\u540D FR-Designer_XMLA_Password=\u30D1\u30B9\u30EF\u30FC\u30C9 -FR-Designer_XMLA_Get_Catalog=\u30AB\u30BF\u30ED\u30B0\u3092\u691C\u7D22\u3059\u308B -FR-Designer_XMLA_Not_NULL=\u3053\u3053\u306F\u7A7A\u6B04\u306B\u3059\u308B\u3053\u3068\u304C\u3067\u304D\u307E\u305B\u3093 +FR-Designer_XMLA_Get_Catalog=\u30AB\u30BF\u30ED\u30B0\u3092\u30ED\u30FC\u30C9\u3057\u3066\u3044\u307E\u3059... +FR-Designer_XMLA_Not_NULL=\u7A7A\u6B04\u306B\u3059\u308B\u3053\u3068\u304C\u3067\u304D\u307E\u305B\u3093 FR-Designer_Column-Axis=\u5217\u8EF8 FR-Designer_LiteCondition_Common=\u4E00\u822C -FR-Designer_LiteCondition_Formula=\u516C\u5F0F -FR-Designer_LiteCondition_ConditionB-AND=\u30A2\u30F3\u30C9(AND) -FR-Designer_LiteCondition_ConditionB-OR=\u30AA\u30A2(OR) +FR-Designer_LiteCondition_Formula=\u6570\u5F0F +FR-Designer_LiteCondition_ConditionB-AND=\u3068(AND) +FR-Designer_LiteCondition_ConditionB-OR=\u307E\u305F\u306F(OR) FR-Designer_LiteCondition_Common_Condition=\u666E\u901A\u6761\u4EF6 -FR-Designer_LiteCondition_Formula_Condition=\u516C\u5F0F\u6761\u4EF6 +FR-Designer_LiteCondition_Formula_Condition=\u6570\u5F0F\u6761\u4EF6 FR-Designer_LiteCondition_Define=\u5B9A\u7FA9 FR-Designer_Select_All=\u5168\u9078\u629E -FR-Designer-Plugin_Expire_Dialog_Title=\u671F\u9650\u5207\u308C\u306E\u30D7\u30E9\u30B0\u30A4\u30F3 -FR-Designer-Plugin_Expire_Dialog_Text=\u30D7\u30E9\u30B0\u30A4\u30F3\u306F\u3001\u8CFC\u5165\u3092\u3059\u308B\u305F\u3081\u306B\u5E06\u30BD\u30D5\u30C8\u30A2\u30D7\u30EA\u30B1\u30FC\u30B7\u30E7\u30F3\u30BB\u30F3\u30BF\u30FC\u3092\u884C\u304F\u3001\u6709\u52B9\u671F\u9650\u304C\u5207\u308C\u3066\u3044\u307E\u3059\u3002 -FR-Designer-Plugin_Finerest_Addon=\u5E06\u8EDF\u5FDC\u7528\u30BB\u30F3\u30BF\u30FC +FR-Designer-Plugin_Expire_Dialog_Title=\u30D7\u30E9\u30B0\u30A4\u30F3\u306F\u671F\u9650\u5207\u308C +FR-Designer-Plugin_Expire_Dialog_Text=\u30D7\u30E9\u30B0\u30A4\u30F3\u306F\u671F\u9650\u5207\u308C\u306B\u306A\u3063\u3066\u3044\u307E\u3059\u3001\u30D5\u30A1\u30F3\u30E9\u30F3\u30A2\u30D7\u30EA\u30BB\u30F3\u30BF\u30FC\u3078\u8CFC\u5165\u3057\u3066\u304F\u3060\u3055\u3044\u3002 +FR-Designer-Plugin_Finerest_Addon=\u30D5\u30A1\u30F3\u30E9\u30F3\u30A2\u30D7\u30EA\u30BB\u30F3\u30BF\u30FC FR-Designer_Performance_First=\u6027\u80FD\u512A\u5148 FR-Designer_Total_N_Grade=\u5168\u90E8\u3067\:${N}\u5C64 FR-Designer_time(s)=\u56DE FR-Designer_General=\u5E38\u7528 -FR-Designer_Advanced=\u9AD8\u7D1A +FR-Designer_Advanced=\u8A73\u7D30 FR-Designer_Oracle=\u3059\u3079\u3066\u306E\u30C6\u30FC\u30D6\u30EB FR-Designer_Product_improve=\u88FD\u54C1\u6539\u5584 -FR-Designer_Join_Product_improve=\u88FD\u54C1\u6539\u5584\u30D7\u30E9\u30F3\u306B\u52A0\u3048\u308B +FR-Designer_Join_Product_improve=\u88FD\u54C1\u6539\u5584\u30D7\u30E9\u30F3\u306B\u53C2\u52A0\u3057\u307E\u3059 FR-Designer_Preference-Function=\u30D5\u30A1\u30F3\u30AF\u30B7\u30E7\u30F3\u8A2D\u5B9A FR-Designer_max_undo_limit=\u6700\u5927\u53D6\u308A\u6D88\u3057\u56DE\u6570 -FR-Designer_Surport_String_To_Formula=\u30AD\u30E3\u30E9\u30AF\u30BF\u30FC\u6587\u5B57\u5217\u7DE8\u96C6\u3092\u516C\u5F0F\u3068\u3059\u308B\u3053\u3068\u306B\u30B5\u30DD\u30FC\u30C8 -FR-Designer_Always=\u30C7\u30D5\u30A9\u30EB\u30C8\u64CD\u4F5C\u5B9F\u884C -FR-Designer_Export_Setting=\u30A2\u30A6\u30C8\u30D7\u30C3\u30C8\u914D\u7F6E -FR-Designer_Select_Export_Log_Directory=\u30A2\u30A6\u30C8\u30D7\u30C3\u30C8\u76EE\u6B21\u3092\u9078\u629E +FR-Designer_Surport_String_To_Formula=\u6587\u5B57\u5217\u7DE8\u96C6\u3092\u516C\u5F0F\u3068\u3059\u308B\u3053\u3068\u306B\u30B5\u30DD\u30FC\u30C8 +FR-Designer_Always=\u30C7\u30D5\u30A9\u30EB\u30C8\u64CD\u4F5C +FR-Designer_Export_Setting=\u30A8\u30AF\u30B9\u30DD\u30FC\u30C8\u8A2D\u5B9A +FR-Designer_Select_Export_Log_Directory=\u30A8\u30AF\u30B9\u30DD\u30FC\u30C8\u76EE\u6B21\u3092\u9078\u629E FR-Designer_Level_Setting=\u30EC\u30D9\u30EB\u5225\u8A2D\u5B9A FR-Designer_Choose_Language=\u8A00\u8A9E\u9078\u629E -FR-Designer_Work_After_Restart_Designer=\u30C7\u30B6\u30A4\u30CA\u30FC\u518D\u8D77\u52D5\u5F8C\u6709\u52B9 +FR-Designer_Work_After_Restart_Designer=\u30C7\u30B6\u30A4\u30CA\u30FC\u518D\u8D77\u52D5\u5F8C\u3067\u6709\u52B9 FR-Designer_Setting-Ruler-Units=\u30EB\u30FC\u30E9\u30FC\u5358\u4F4D\u8A2D\u5B9A FR-Designer_PageSetup-mm=\u30DF\u30EA\u30E1\u30FC\u30C8\u30EB FR-Designer_Unit_CM=\u30BB\u30F3\u30C1\u30E1\u30FC\u30C8\u30EB @@ -400,81 +400,81 @@ FR-Designer_Web_Preview_Port_Setting=\u30DD\u30FC\u30C8\u8A2D\u5B9A FR-Designer_Designer_Language=\u30C7\u30B6\u30A4\u30CA\u30FC\u8A00\u8A9E FR-Designer_Unit_INCH=\u30A4\u30F3\u30C1 FR-Designer_Web_Preview_Port=\u30DD\u30FC\u30C8\u756A\u53F7 -FR-Designer_Oracle_All_Tables=\u3059\u3079\u3066\u306E\u30C6\u30FC\u30D6\u30EB +FR-Designer_Oracle_All_Tables=\u5168\u3066\u306E\u30C6\u30FC\u30D6\u30EB FR-Designer_Unit_PT=\u30DD\u30F3\u30C9 FR-Designer-Write_Auto_Stash=\u30AA\u30FC\u30C8\u30B9\u30AF\u30E9\u30C3\u30C1 -FR-Designer_Event_ShowWidgets=\u76F4\u63A5\u30B3\u30F3\u30C8\u30ED\u30FC\u30EB\u3092\u8868\u793A +FR-Designer_Event_ShowWidgets=\u76F4\u63A5\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u3092\u8868\u793A FR-Designer_Current_Preview_Rows=\u73FE\u5728\u306E\u30D7\u30EC\u30D3\u30E5\u30FC\u884C\u6570 FR-Designer_Data=\u30C7\u30FC\u30BF FR-Designer_Error=\u30A8\u30E9\u30FC FR-Designer-Website_Url=http\://www.finereport.com/jp FR-Designer_formDesignerModule=\u30C0\u30C3\u30B7\u30E5\u30DC\u30FC\u30C9\u30C7\u30B6\u30A4\u30CA\u30FC FR-Designer-BBSLogin_Login-Title=BBS\u30ED\u30B0\u30A4\u30F3 -FR-Designer_Get-CubeGetting=cube\u53D6\u5F97 -FR-Designer-BBSLogin_Download-Unlogin-Tip=\u30ED\u30B0\u30A4\u30F3\u3057\u3066\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9 -FR-Designer-App_ReLayout=\u96FB\u8A71\u518D\u30EC\u30A4\u30A2\u30A6\u30C8 -FR-Designer_Mobile-Attr=\u30E2\u30D0\u30A4\u30EB\u7AEF\u672B\u5C5E\u6027 +FR-Designer_Get-CubeGetting=cube\u3092\u53D6\u5F97 +FR-Designer-BBSLogin_Download-Unlogin-Tip=\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9\u524D\u306B\u5148\u305A\u306F\u30ED\u30B0\u30A4\u30F3\u3057\u3066\u304F\u3060\u3055\u3044\u3002 +FR-Designer-App_ReLayout=\u30B9\u30DE\u30FC\u30C8\u30D5\u30A9\u30F3\u30EC\u30A4\u30A2\u30A6\u30C8 +FR-Designer_Mobile-Attr=\u30E2\u30D0\u30A4\u30EB\u7AEF\u672B\u30D7\u30ED\u30D1\u30C6\u30A3 FR-Designer_Mobile-Vertical=\u7E26 FR-Designer_Mobile-Horizontal=\u6A2A FR-Designer_Mobile-Zoom=\u5E33\u7968\u30BA\u30FC\u30E0 FR-Designer_Mobile-Open=\u958B\u304F FR-Designer_COMMUNITY=\u30B3\u30DF\u30E5\u30CB\u30C6\u30A3 -FR-Designer_COMMUNITY_BBS=\u5E06\u8EDF\u30D5\u30A9\u30FC\u30E9\u30E0 +FR-Designer_COMMUNITY_BBS=\u30D5\u30A1\u30F3\u30E9\u30F3BBS FR-Designer_COMMUNITY_VIDEO=\u30D3\u30C7\u30AA FR-Designer_COMMUNITY_HELP=\u30D8\u30EB\u30D7\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8 -FR-Designer_COMMUNITY_UPDATE=\u88FD\u54C1\u66F4\u65B0 -FR-Designer_COMMUNITY_NEED=\u9700\u8981\u306E\u63D0\u51FA +FR-Designer_COMMUNITY_UPDATE=\u88FD\u54C1\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8 +FR-Designer_COMMUNITY_NEED=\u30CB\u30FC\u30BA\u306E\u63D0\u51FA FR-Designer_COMMUNITY_BUG=Bug\u30D5\u30A3\u30FC\u30C9\u30D0\u30C3\u30AF -FR-Designer_COMMUNITY_SIGN=\u5E06\u8EDF\u8A8D\u8A3C -FR-Designer_COMMUNITY_QUESTIONS=\u554F\u984C\u306E\u554F\u3044\u5408\u308F\u305B -FR-Designer_Write-Save-Formula=\u8A18\u5165\u8A08\u7B97\u306B\u6570\u5F0F\u4FDD\u6301 -FR-Designer_Export-Save-Formula=\u7DE8\u96C6\u6642\u3001\u6570\u5F0F\u4FDD\u6301 +FR-Designer_COMMUNITY_SIGN=\u30D5\u30A1\u30F3\u30E9\u30F3\u8A8D\u8A3C +FR-Designer_COMMUNITY_QUESTIONS=\u304A\u554F\u3044\u5408\u308F\u305B +FR-Designer_Write-Save-Formula=\u66F8\u304D\u8FBC\u307F/\u30C7\u30FC\u30BF\u5206\u6790\u306E\u6642\u3001\u6570\u5F0F\u8A08\u7B97\u3092\u4FDD\u7559 +FR-Designer_Export-Save-Formula=\u51FA\u529B/\u7DE8\u96C6\u3059\u308B\u6642\u3001\u6570\u5F0F\u8A08\u7B97\u3092\u4FDD\u7559 FR-Designer_Attention=\u6CE8\u610F\u3057\u307E\u3059 -FR-Designer_Forbid_Widgets_Intersects=\u7981\u6B62\u90E8\u54C1\u3092\u91CD\u306D\u3066 -FR-Designer_Widget_Scaling_Mode_Fit=\u9069\u5FDC\u533A\u57DF +FR-Designer_Forbid_Widgets_Intersects=\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u91CD\u306A\u308A\u7981\u6B62 +FR-Designer_Widget_Scaling_Mode_Fit=\u9069\u5FDC\u30A8\u30EA\u30A2 FR-Designer_Widget_Scaling_Mode_Fixed=\u56FA\u5B9A\u30B5\u30A4\u30BA -FR-Designer-Widget_Area_Scaling=\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u30A8\u30EA\u30A2\ -FR-Designer-QQLogin-Determine=\u6C7A\u5B9A\u3057\u307E\u3059 +FR-Designer-Widget_Area_Scaling=\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u30A8\u30EA\u30A2\u30BA\u30FC\u30E0 +FR-Designer-QQLogin-Determine=\u78BA\u3000\u5B9A FR-Designer-QQLogin-Cancel=\u30AD\u30E3\u30F3\u30BB\u30EB -FR-Designer-Reuse_Manager=\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8 -FR-Designer_Layout_Block_Absolute=\u7D76\u5BFE\u30EC\u30A4\u30A2\u30A6\u30C8\u30D6\u30ED\u30C3\u30AF +FR-Designer-Reuse_Manager=\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u7BA1\u7406 +FR-Designer_Layout_Block_Absolute=\u7D76\u5BFE\u30AD\u30E3\u30F3\u30D0\u30B9\u30D6\u30ED\u30C3\u30AF FR-Designer_Layout_Block_Tab=Tab\u30D6\u30ED\u30C3\u30AF FR-Designer_Layout_Block_Blank=\u7A7A\u767D\u30D6\u30ED\u30C3\u30AF FR-Designer_Attr_Layout=\u30EC\u30A4\u30A2\u30A6\u30C8 FR-Designer_Attr_Layout_Type=\u30EC\u30A4\u30A2\u30A6\u30C8\u65B9\u5F0F FR-Designer_Attr_Bidirectional_Adaptive=\u53CC\u65B9\u5411\u81EA\u5DF1\u8ABF\u6574 FR-Designer_Download_Template=\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u3092\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9 -FR-Designer-Widget_Scaling_Mode=\u30B9\u30B1\u30FC\u30EA\u30F3\u30B0\u8AD6\u7406 +FR-Designer-Widget_Scaling_Mode=\u30BA\u30FC\u30E0\u30ED\u30B8\u30C3\u30AF FR-Designer_Mobile-Refresh=\u66F4\u65B0 FR-Designer_Mobile-ToolBar=\u30C4\u30FC\u30EB\u30D0\u30FC -FR-Designer_WLayout-Absolute-ToolTips=\u81EA\u7531\u5F0F\u914D\u7F6E\u3067\u3059\u3002\u914D\u7F6E\u5185\u306E\u4EFB\u610F\u306E\u4F4D\u7F6E\u306B\u30B3\u30F3\u30C8\u30ED\u30FC\u30EB\u3092\u8FFD\u52A0\u3059\u308B\u3053\u3068 +FR-Designer_WLayout-Absolute-ToolTips=\u81EA\u7531\u5F0F\u914D\u7F6E\u3067\u3059\u3002\u4EFB\u610F\u306E\u4F4D\u7F6E\u306B\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u3092\u8FFD\u52A0\u3059\u308B\u3053\u3068\u304C\u3067\u304D\u307E\u3059\u3002 FR-Designer_Add_all=\u3059\u3079\u3066\u8FFD\u52A0 FR-Designer_Language_Change_Successful=\u65B0\u3057\u3044\u8A00\u8A9E\u306F\u518D\u8D77\u52D5\u5F8C\u306B\u4F7F\u7528\u3055\u308C\u307E\u3059\u3002 -FR-Designer_Template_Web_Attributes=\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u30A6\u30A7\u30D6\u30D7\u30ED\u30D1\u30C6\u30A3 +FR-Designer_Template_Web_Attributes=\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8WEB\u30D7\u30ED\u30D1\u30C6\u30A3 FR-Designer_Basic=\u57FA\u672C FR-Designer_Printers(Server)=\u30D7\u30EA\u30F3\u30BF\u30FC(\u30B5\u30FC\u30D0) -FR-Designer_Pagination_Setting=\u30DA\u30FC\u30B8\u5225\u30D7\u30EC\u30D3\u30E5\u30FC\u8A2D\u5B9A -FR-Designer_Write_Setting=\u66F8\u304D\u8FBC\u307F\u30DA\u30FC\u30B8\u8A2D\u5B9A +FR-Designer_Pagination_Setting=\u6539\u9801\u30D7\u30EC\u30D3\u30E5\u30FC\u8A2D\u5B9A +FR-Designer_Write_Setting=\u66F8\u304D\u8FBC\u307F\u30D7\u30EC\u30D3\u30E5\u30FC\u8A2D\u5B9A FR-Designer_Data_Analysis_Settings=\u30C7\u30FC\u30BF\u5206\u6790\u8A2D\u5B9A FR-Designer_Browser_Background=\u30D6\u30E9\u30A6\u30B6\u80CC\u666F FR-Designer_Import_Css=Css\u5F15\u7528 FR-Designer_Import_JavaScript=JavaScript\u5F15\u7528 FR-Designer-Datasource-Param_DES=  "${abc}"\u3092\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC\u3068\u3057\u3066\u5165\u529B\u3067\u304D\u307E\u3059\u3002\u3053\u3053\u3067abc\u306F\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC\u3002abc\u306F\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC\u306E\u540D\u524D\u3067\u3059\u3002\u4F8B\u3048\u3070
 select * from table where id\=${abc}\u3002
 select * from table where id\='${abc}'\u3002(\u3082\u3057id\u306F\u6587\u5B57\u5217\u306A\u3089)\uFFFD -FR-Designer-DS-Database_Query=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u30AF\u30A8\u30EA\u30FC -FR-Designer-LayerPageReport_PageQuery=\u6539\u30DA\u30FC\u30B8\u691C\u7D22 -FR-Designer-LayerPageReport_Define_PageQuerySQL=\u6539\u30DA\u30FC\u30B8\u691C\u7D22sql\u3092\u66F8\u304F +FR-Designer-DS-Database_Query=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u30AF\u30A8\u30EA +FR-Designer-LayerPageReport_PageQuery=\u30DA\u30FC\u30B8\u5206\u3051\u30AF\u30A8\u30EA +FR-Designer-LayerPageReport_Define_PageQuerySQL=\u30DA\u30FC\u30B8\u5206\u3051\u30AF\u30A8\u30EA\u6587\u3092\u5B9A\u7FA9 FR-Designer_Is_Share_DBTableData=\u5171\u6709\u30C7\u30FC\u30BF\u30BB\u30C3\u30C8 FR-Designer_Event=\u30A4\u30D9\u30F3\u30C8 FR-Designer_Properties=\u30D7\u30ED\u30D1\u30C6\u30A3 FR-Designer_Permissions_Edition=\u6A29\u9650\u7DE8\u96C6 -FR-Designer_Export_Excel_Page=\u6539\u30DA\u30FC\u30B8\u51FA\u529B +FR-Designer_Export_Excel_Page=\u6539\u9801\u51FA\u529B FR-Designer_Export_Excel_Simple=\u305D\u306E\u307E\u307E\u51FA\u529B -FR-Designer_Export_Excel_PageToSheet=\u6539\u30DA\u30FC\u30B8\uFF06\u30B7\u30FC\u30C8\u5206\u3051 -FR-Designer_Export_failed=\u5C0E\u51FA\u306B\u5931\u6557\u3057\u307E\u3057\u305F -FR-Designer_Exported_successfully=\u5C0E\u51FA\u6210\u529F -FR-Designer_Exporting=\u5C0E\u51FA\u3057\u3066\u3044\u307E\u3059 +FR-Designer_Export_Excel_PageToSheet=\u6539\u9801\uFF06\u30B7\u30FC\u30C8\u5206\u3051 +FR-Designer_Export_failed=\u51FA\u529B\u306F\u5931\u6557\u306B\u306A\u308A\u307E\u3057\u305F +FR-Designer_Exported_successfully=\u51FA\u529B\u6210\u529F +FR-Designer_Exporting=\u51FA\u529B\u3057\u3066\u3044\u307E\u3059 FR-Designer_Export-PDF=PDF\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8 -FR-Designer_Button_OK=\u78BA\u5B9A +FR-Designer_Button_OK=\u78BA\u3000\u5B9A FR-Designer_Button_Cancel=\u30AD\u30E3\u30F3\u30BB\u30EB FR-Designer_JavaScript=JavaScript FR-Designer_JavaScript_Form_Submit=\u30C0\u30C3\u30B7\u30E5\u30DC\u30FC\u30C9\u66F8\u304D\u8FBC\u307F @@ -489,73 +489,73 @@ FR-Designer_Attribute=\u30D7\u30ED\u30D1\u30C6\u30A3 FR-Designer_Form_Editing_Listeners=\u30A4\u30D9\u30F3\u30C8\u7DE8\u96C6 FR-Designer_Form_Basic_Properties=\u57FA\u672C\u30D7\u30ED\u30D1\u30C6\u30A3 FR-Designer_DS_Dictionary=\u30C7\u30FC\u30BF\u8F9E\u66F8 -FR-Designer_Create_Tree=\u30C4\u30EA\u30FC\u69CB\u7BC9 +FR-Designer_Create_Tree=\u30C4\u30EA\u30FC\u3092\u69CB\u7BC9 FR-Designer_Set_Callback_Function=\u30B3\u30FC\u30EB\u30D0\u30C3\u30AF\u95A2\u6570\u8A2D\u5B9A FR-Designer_ConfirmDialog_Content=tab\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u3092\u524A\u9664\u3057\u307E\u3059\u304B FR-Designer_ConfirmDialog_Title=FineReport 8.0 -FR-Designer_FormulaPane_Tips=\u30D2\u30F3\u30C8\:B1\u3092\u5165\u529B +FR-Designer_FormulaPane_Tips=\u30D2\u30F3\u30C8\:B1\u3092\u5165\u529B\u3057\u3066\u3001\u7B2C\u4E00\u884C\u3068\u7B2C\u4E8C\u884C\u306E\u30C7\u30FC\u30BF\u3092\u5165\u529B\u3067\u304D\u307E\u3059\u3002 FR-Designer_FormulaPane_Variables=\u5909\u6570 -FR-Designer_FormulaPane_Formula_Description=\u516C\u5F0F\u8AAC\u660E +FR-Designer_FormulaPane_Formula_Description=\u6570\u5F0F\u8AAC\u660E FR-Designer_FormulaPane_Function_Detail=\u95A2\u6570\u660E\u7D30 FR-Designer_FormulaPane_Search=\u691C\u7D22 FR-Designer_Tab_carousel=tab\u30AB\u30EB\u30FC\u30BB\u30EB FR-Designer_setCarousel=\u30AB\u30EB\u30FC\u30BB\u30EB\u30AA\u30F3 FR-Designer_carouselInterval=\u30AB\u30EB\u30FC\u30BB\u30EB\u9593\u9694 -FR-Designer_ClassName_panel=\u985E\u540D -FR-Designer_Description_panel=\u8A18\u8FF0 +FR-Designer_ClassName_panel=\u30AF\u30E9\u30B9\u540D +FR-Designer_Description_panel=\u8AAC\u660E FR-Designer_Edit_panel=\u7DE8\u96C6 -FR-Designer_Property_panel=\u5C5E\u6027 +FR-Designer_Property_panel=\u30D7\u30ED\u30D1\u30C6\u30A3 FR-Designer_Select_panel=\u9078\u629E FR-Designer_LayoutTable_Column_Width=160 -FR-Designer_Set_BG_Of_Current_Row=\u5831\u544A\u30AB\u30EC\u30F3\u30C8\u7DE8\u96C6\u884C\u80CC\u666F\u8A2D\u5B9A -FR-Designer_Unload_Check=\u63D0\u51FA\u305B\u305A\u306B\u30D2\u30F3\u30C8 -FR-Designer_ReportColumns_Columns_Optional=\u6BB5\u7D44\u307F +FR-Designer_Set_BG_Of_Current_Row=\u73FE\u5728\u306B\u7DE8\u96C6\u3055\u308C\u305F\u5165\u308B\u884C\u306E\u80CC\u666F\u8A2D\u5B9A +FR-Designer_Unload_Check=\u753B\u9762\u3092\u96E2\u308C\u308B\u6642\u306E\u30B5\u30D6\u30DF\u30C3\u30C8\u30D2\u30F3\u30C8 +FR-Designer_ReportColumns_Columns_Optional=\u30B3\u30E9\u30E0\u5206\u3051 FR-Designer_Row_Icon_File_Name=row.png FR-Designer_Center_Display=\u4E2D\u592E\u63C3\u3048\u8868\u793A FR-Designer_Left_Display=\u5DE6\u8868\u793A FR-Designer_About_Version=\u30D0\u30FC\u30B8\u30E7\u30F3 FR-Designer_About_CopyRight=\u8457\u4F5C\u6A29\u6240\u6709 FR-Designer_Service_Phone=\u30B5\u30FC\u30D3\u30B9\u96FB\u8A71\uFF1A -FR-Designer_Allow_Null=\u7A7A\u6B04\u3042\u308A +FR-Designer_Allow_Null=\u7A7A\u6B04\u3092\u8A31\u3059 FR-Designer_PageSetup_Page=\u30DA\u30FC\u30B8 -FR-Designer_Custom_Job_Description=\u8A18\u8FF0 -FR-Designer_Property=\u5C5E\u6027 -FR-Designer_ClassName=\u985E\u540D -FR-Designer_Polyblock_Edit=\u30A2\u30B0\u30EA\u30B2\u30FC\u30B7\u30E7\u30F3\u30D6\u30ED\u30C3\u30AF\u7DE8\u96C6 -FR-Designer_Function_Description_Area_Text=\u3053\u306E\u30AF\u30E9\u30B9\u306F\u7D99\u627F\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059"com.fr.script.AbstractFunction"\u3002\u3092\u7D99\u627F\u3059\u3079\u304D\u3067\u3059\u3002\u30B3\u30F3\u30D1\u30A4\u30EB\u5F8C\u306E\u985E\u30D5\u30A1\u30A4\u30EB\u3092\nJ2EE\u30B5\u30FC\u30D0 "{R1}" \u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u3002\u306B\u30B3\u30D4\u30FC\u3057\u3066\u3001class\u306B\u5BFE\u5FDC\u3059\u308Bjava\u30D5\u30A1\u30A4\u30EB\u3082\u5F53\u76EE\u6B21\u306B\u7F6E\u3044\u3066\u304F\u3060\u3055\u3044\u3002\n\u4F8B\u3048\u3070\uFF1A{R2} +FR-Designer_Custom_Job_Description=\u8AAC\u660E +FR-Designer_Property=\u30D7\u30ED\u30D1\u30C6\u30A3 +FR-Designer_ClassName=\u30AF\u30E9\u30B9\u540D +FR-Designer_Polyblock_Edit=\u30D6\u30ED\u30C3\u30AF\u7DE8\u96C6 +FR-Designer_Function_Description_Area_Text=\u3053\u306E\u30AF\u30E9\u30B9\u306F\u7D99\u627F\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059"com.fr.script.AbstractFunction"\u3002\u30B3\u30F3\u30D1\u30A4\u30EB\u5F8C\u306E\u30AF\u30E9\u30B9\u30D5\u30A1\u30A4\u30EB\u3092\nJ2EE\u30B5\u30FC\u30D0 "{R1}" \u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u306B\u8CBC\u308A\u4ED8\u3051\u3066\u304F\u3060\u3055\u3044\u3002\u7BA1\u7406\u306E\u305F\u3081class\u306B\u5BFE\u5FDC\u3059\u308Bjava\u30D5\u30A1\u30A4\u30EB\u3082\u8A72\u5F53\u76EE\u6B21\u306B\u7F6E\u3044\u3066\u304F\u3060\u3055\u3044\u3002\n\u4F8B\u3048\u3070\uFF1A{R2} FR-Designer_PageSetup_Horizontal=\u6A2A\u65B9\u5411 FR-Designer_PageSetup_Vertical=\u7E26\u65B9\u5411 -FR-Designer_Gradient_Direction=\u65B9\u5411\u3092\u5F90\u3005\u306B\u5909\u5316 -FR-Designer_Drag_To_Select_Gradient=\\ \u4E0B\u65B9\u306E\u30DC\u30BF\u30F3\u3092\u30D7\u30EB\u30C0\u30A6\u30F3\u3057\u3066\u6F38\u6B21\u5909\u5316\u30A8\u30EA\u30A2\u3092\u9078\u629E\u3057\u3001\u30AF\u30EA\u30C3\u30AF\u3057 +FR-Designer_Gradient_Direction=\u30B0\u30E9\u30C7\u30FC\u30B7\u30E7\u30F3 +FR-Designer_Drag_To_Select_Gradient=\\ \u4E0B\u65B9\u306E\u30DC\u30BF\u30F3\u3092\u30D7\u30EB\u30C0\u30A6\u30F3\u3057\u3066\u30B0\u30E9\u30C7\u30FC\u30B7\u30E7\u30F3\u30A8\u30EA\u30A2\u3092\u9078\u629E\u3057\u3001\u30DC\u30BF\u30F3\u3092\u30AF\u30EA\u30C3\u30AF\u3057\u3066\u8A72\u5F53\u8272\u3092\u9078\u629E\u3057\u307E\u3059\u3002 FR-Designer_Display_Value=\u8868\u793A\u5024 FR-Designer_Actual_Value=\u5B9F\u969B\u5024 FR-Designer_CellWrite_ToolTip=\u30BB\u30EB\u30D2\u30F3\u30C8 FR-Designer_Show_Content=\u5185\u5BB9\u8868\u793A FR-Designer_Auto_Adjust_Size=\u81EA\u52D5\u8ABF\u6574 -FR-Designer_Show_As_Download=\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9\u30EA\u30F3\u30AF\u3067\uFF12\u9032\u6CD5\u306E\u5185\u5BB9\u3092\u8868\u793A +FR-Designer_Show_As_Download=\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9\u30EA\u30F3\u30AF\u30672\u9032\u6CD5\u306E\u5185\u5BB9\u3092\u8868\u793A\u3059\u308B FR-Designer_File_Name_For_Download=\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9\u30D5\u30A1\u30A4\u30EB\u540D FR-Designer_No=\u3044\u3044\u3048 -FR-Designer_Pagination=\u30DA\u30FC\u30B8\u30F3\u30B0 -FR-Designer-Move_Tab_First= -FR-Designer-Move_Tab_End= -FR-Designer-Move_Tab_Next= -FR-Designer-Move_Tab_Prev= -FR-Designer_DS_TableData=\u30C7\u30FC\u30BF\u30BD\u30FC\u30B9 +FR-Designer_Pagination=\u6539\u9801 +FR-Designer-Move_Tab_First=\u6700\u521D\u306B\u79FB\u52D5 +FR-Designer-Move_Tab_End=\u6700\u5F8C\u306B\u79FB\u52D5 +FR-Designer-Move_Tab_Next=\u6B21\u306B\u79FB\u52D5 +FR-Designer-Move_Tab_Prev=\u524D\u306B\u79FB\u52D5 +FR-Designer_DS_TableData=\u30C7\u30FC\u30BF\u30BB\u30C3\u30C8 FR-Designer_Parameter-Formula=\u6570\u5F0F -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_Initial_Background_Tips= -FR-Designer_Mouse_Move_Tips= +FR-Designer_Background_Null=\u80CC\u666F\u306A\u3057 +FR-Designer_Background_Color=\u80CC\u666F\u8272 +FR-Designer_Background_Texture=\u30C6\u30AF\u30B9\u30C1\u30E3 +FR-Designer_Background_Pattern=\u30D1\u30BF\u30FC\u30F3 +FR-Designer_Background_Gradient_Color=\u30B0\u30E9\u30C7\u30FC\u30B7\u30E7\u30F3 +FR-Designer_Background_Image=\u753B\u50CF\u9078\u629E +FR-Designer_Background_Clear=\u30AF\u30EA\u30A2 +FR-Designer_Background_Image_Select=\u753B\u50CF\u9078\u629E +FR-Designer_Initial_Background_Tips=\u30DC\u30BF\u30F3\u306E\u521D\u671F\u80CC\u666F +FR-Designer_Mouse_Move_Tips=\u30AB\u30FC\u30BD\u30EB\u304C\u30DC\u30BF\u30F3\u3092\u30AB\u30D0\u30FC\u3059\u308B\u6642\u306E\u80CC\u666F FR-Designer_Too_Large_To_Paste=\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u306E\u30B5\u30A4\u30BA\u306F\u30DC\u30FC\u30C0\u30FC\u306B\u8D85\u3048\u305F\u306E\u3067\u3001\u8CBC\u308A\u4ED8\u3051\u3067\u304D\u307E\u305B\u3093\uFF01 FR-Designer_Too_Small_To_Paste=\u8A72\u5F53\u51E6\u306B\u8CBC\u308A\u4ED8\u3051\u3067\u304D\u307E\u305B\u3093\u3001\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u306E\u30B5\u30A4\u30BA\u306F\u9AD8\u3059\u304E\uFF01 -FR-Designer_Mouse_Click_Tips= -FR-Designer_Plugin_Should_Update_Please_Contact_Developer= +FR-Designer_Mouse_Click_Tips=\u30DC\u30BF\u30F3\u3092\u30AF\u30EA\u30C3\u30AF\u3059\u308B\u6642\u306E\u80CC\u666F +FR-Designer_Plugin_Should_Update_Please_Contact_Developer=\u30D7\u30E9\u30B0\u30A4\u30F3\u306E\u30D0\u30FC\u30B8\u30E7\u30F3\u306F\u4F4E\u3044\u3067\u3059\u304C\u3001API\u4E0D\u5177\u5408\u306A\u3068\u3053\u308D\u304C\u3042\u308A\u307E\u3059\u3002\u958B\u767A\u8005\u3068\u9023\u7D61\u3057\u3066\u30D7\u30E9\u30B0\u30A4\u30F3\u3092\u66F4\u65B0\u3057\u3066\u304F\u3060\u3055\u3044\u3002 FR-Designer_AxisReversed=\u8EF8\u9006\u9806 FR-Designer_Logarithmic=\u5BFE\u6570\u76EE\u76DB\u308A FR-Designer_Chart_Log_Base=\u5E95\u6570 @@ -565,20 +565,20 @@ FR-Designer_Color=\u8272 FR-Designer_Border=\u67A0 FR-Designer_Background-Pattern=\u30D1\u30BF\u30FC\u30F3 FR-Designer_Printer_Native_Button=\u30ED\u30FC\u30AB\u30EB\u5370\u5237 -FR-Designer_SimpleDetail_Report=\u7C21\u5358\u660E\u7D30\u8868 +FR-Designer_SimpleDetail_Report=\u7C21\u5358\u660E\u7D30\u5E33\u7968 FR-Designer_Reset=\u30EA\u30BB\u30C3\u30C8 FR-Designer_WidgetOrder=\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u306E\u9806\u756A FR-Designer_Button-OK=\u5206\u304B\u308A\u307E\u3057\u305F FR-Designer_Mobile-Warning=\u6700\u5927\u306E\u9AD8\u3055\u306F\u8868\u793A\u30A8\u30EA\u30A2\u306E80\uFF05\u4EE5\u4E0A\u306B\u306A\u308A\u307E\u305B\u3093 FR-Designer_Mobile_Form_Analysis_Annotation=\u8AAC\u660E\:\u8A72\u5F53\u8A2D\u5B9A\u3088\u308A\u3001\u30C0\u30C3\u30B7\u30E5\u30DC\u30FC\u30C9\u306E\u30A2\u30D7\u30EA\u3067\u306E\u89E3\u6790\u30E2\u30FC\u30C9\u3092\u8A2D\u5B9A\u3067\u304D\u307E\u3059\u3002 FR-Designer-Invalid_Page_Number=\u7121\u52B9\u306A\u30DA\u30FC\u30B8\u756A\u53F7 -FR-Designer_Form-Forzen-Speed=\u3001\u305D\u3057\u3066\u6A2A\u65B9\u5411\u81EA\u5DF1\u9069\u5FDC\u307E\u305F\u306F2\u65B9\u5411\u81EA\u52D5\u9069\u5FDC\u3092\u5229\u7528\u3057\u3001\u5E33\u7968\u8868\u793A\u306E\u30B9\u30D4\u30FC\u30C9\u3092\u4E0A\u3052\u3067\u304D\u307E\u3059\u3002 -FR-Designer_Properties_Mobile=\u30B9\u30DE\u30FC\u30C8\u30D5\u30A9\u30F3\u5C5E\u6027 -FR-Designer_AllCategories=\u5168\u3066\u306E\u7A2E\u985E -FR-Designer-Selected_Widget=\u5F53\u306E\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8 -FR-Designer_SimpleCross_Report=\u7C21\u5358\u30AF\u30ED\u30FC\u30B9\u8868 +FR-Designer_Form-Forzen-Speed=\u3001\u305D\u3057\u3066\u6A2A\u65B9\u5411\u81EA\u5DF1\u9069\u5FDC\u307E\u305F\u306F\u53CC\u65B9\u5411\u81EA\u52D5\u9069\u5FDC\u3092\u5229\u7528\u3057\u3001\u5E33\u7968\u8868\u793A\u306E\u30B9\u30D4\u30FC\u30C9\u3092\u4E0A\u3052\u3067\u304D\u307E\u3059\u3002 +FR-Designer_Properties_Mobile=\u30B9\u30DE\u30FC\u30C8\u30D5\u30A9\u30F3\u30D7\u30ED\u30D1\u30C6\u30A3 +FR-Designer_AllCategories=\u5168\u3066\u306E\u30AB\u30C6\u30B4\u30EA +FR-Designer-Selected_Widget=\u73FE\u5728\u306E\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8 +FR-Designer_SimpleCross_Report=\u7C21\u5358\u30AF\u30ED\u30FC\u30B9\u5E33\u7968 FR-Designer_Log=\u30ED\u30B0 -FR-Designer_Form-Fit-Tip=\u81EA\u5DF1\u9069\u5FDC\u30D7\u30E9\u30B0\u30A4\u30F3 +FR-Designer_Form-Fit-Tip=\u81EA\u52D5\u9069\u5FDC\u30D7\u30E9\u30B0\u30A4\u30F3 FR-Designer_Button-Cancel=\u53D6\u308A\u6D88\u3057 FR-Designer_LocalWidget=\u30ED\u30FC\u30AB\u30EB\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u30E9\u30A4\u30D6\u30E9\u30EA FR-Designer_Alert=\u30A2\u30E9\u30FC\u30C8 @@ -596,158 +596,158 @@ FR-Designer_Delete_Template=\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u3092\u52 FR-Designer_Mobile_Report_Analysis_Annotation=\u8AAC\u660E\:\u8A72\u5F53\u5C5E\u6027\u3088\u308A\u3001\u30C0\u30C3\u30B7\u30E5\u30DC\u30FC\u30C9\u306E\u30A2\u30D7\u30EA\u3067\u306E\u89E3\u6790\u30E2\u30FC\u30C9\u3092\u8A2D\u5B9A\u3067\u304D\u307E\u3059\u3001\u9801\u5206\u3051\u30D7\u30EC\u30D3\u30E5\u30FC\u3060\u3051\u3092\u652F\u6301\u3001\u66F8\u304D\u8FBC\u307F\u306B\u8A2D\u5B9A\u3059\u308B\u6642\u7121\u52B9\u306B\u306A\u308A\u307E\u3059\u3002 FR-Designer_DoubleLayer_Report=\u4E8C\u968E\u30BF\u30A4\u30C8\u30EB FR-Designer_Validate=\u691C\u8A3C -CellWrite-InsertRow_NULL=Null\u5024 +CellWrite-InsertRow_NULL=\u30CC\u30EB DashBoard-ChartFloat=\u30B0\u30E9\u30D5 -contact_info=\u304A\u554F\u3044\u5408\u308F\u305B\u60C5\u5831\uFF08\u4EFB\u610F\uFF09 +contact_info=\u304A\u554F\u3044\u5408\u308F\u305B\u60C5\u5831\uFF08\u30AA\u30D7\u30B7\u30E7\u30F3\uFF09 Page_Setup=\u30DA\u30FC\u30B8\u8A2D\u5B9A -CellWrite-Print_Export=\u30A8\u30AF\u30B9\u30DD\u30FC\u30C8\u3092\u5370\u5237 -Cannot_Get_Date=\u65E5\u6642\u3092\u53D6\u5F97\u3067\u304D\u307E\u305B\u3093 -FR-Designer_Modify=\u6539\u6B63 -M-Write_Preview=\u5831\u544A\u30D7\u30EC\u30D3\u30E5\u30FC +CellWrite-Print_Export=\u5370\u5237\u3068\u30A8\u30AF\u30B9\u30DD\u30FC\u30C8 +Cannot_Get_Date=\u65E5\u4ED8\u3092\u53D6\u5F97\u3067\u304D\u307E\u305B\u3093 +FR-Designer_Modify=\u4FEE\u6B63 +M-Write_Preview=\u66F8\u304D\u8FBC\u307F\u30D7\u30EC\u30D3\u30E5\u30FC FR-Base_RWA-Key=\u30E1\u30A4\u30F3\u30AD\u30FC China=\u4E2D\u56FD -Set_Legend_Sytle=\u51E1\u4F8B\u66F8\u5F0F\u3092\u8A2D\u5B9A +Set_Legend_Sytle=\u51E1\u4F8B\u306E\u66F8\u5F0F\u8A2D\u5B9A FR-Designer_Number=\u6570\u5B57 FR-Designer-Widget-Style_Common=\u666E\u901A M-Save_As=\u540D\u524D\u3092\u3064\u3051\u3066\u4FDD\u5B58 -Following_parameters_are_not_generated=\u4EE5\u4E0B\u306E\u30D1\u30E9\u30E1\u30FC\u30BF\u306F\u751F\u6210\u3055\u308C\u307E\u305B\u3093 +Following_parameters_are_not_generated=\u4EE5\u4E0B\u306E\u30D1\u30E9\u30E1\u30FC\u30BF\u306F\u307E\u3060\u751F\u6210\u3055\u308C\u3066\u3044\u307E\u305B\u3093 FR-Designer-Basic_Activation_Key_Copy_OK=\u30AF\u30EA\u30C3\u30D7\u30DC\u30FC\u30C9\u306B\u30B3\u30D4\u30FC\u3057\u307E\u3057\u305F -Utils-Current_Sheet=\u30AB\u30EC\u30F3\u30C8\u30B7\u30FC\u30C8 +Utils-Current_Sheet=\u73FE\u5728\u306E\u30B7\u30FC\u30C8 ConditionB-is_less_than=\u3088\u308A\u5C0F\u3055\u3044 BorderLayout-West=\u897F\u90E8\u306E AnalysisLine=\u5206\u6790\u30E9\u30A4\u30F3 -Layer_Report_Warnning_info=\u30E9\u30A4\u30F3\u30A8\u30F3\u30B8\u30F3\u306F\u5927\u30C7\u30FC\u30BF\u91CF\u306E\u72B6\u6CC1\u4E0B\u3067\u9069\u7528\u3055\u308C\u307E\u3059\u3002
+Layer_Report_Warnning_info=\u30B0\u30EA\u30C3\u30C9\u578B\u30A8\u30F3\u30B8\u30F3\u306F\u30C7\u30FC\u30BF\u91CF\u304C\u591A\u3044\u5834\u5408\u306B\u9069\u3057\u3066\u3044\u307E\u3059\u3002
\u3053\u306E\u30A8\u30F3\u30B8\u30F3\u3092\u4F7F\u3046\u3068\u3001\u5E33\u7968\u6A5F\u80FD\u306E\u591A\u304F\u304C\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u307E\u305B\u3093\u3002
\u8A73\u3057\u3044\u5185\u5BB9\u306F\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u306E\u95A2\u9023\u500B\u6240\u3092\u3054\u78BA\u8A8D\u304F\u3060\u3055\u3044\u3002 Tree-Width=\u5E45 -alert_word=\u884C\u306E\u9AD8\u3055\u3092\u56FA\u5B9A\u305B\u305A\u5C0E\u51FA\u3092\u9078\u629E\u3057\u305F\u6B73\u3001\u5C0E\u51FA\u3057\u305Fword\u306E\u7DE8\u96C6\u306F\u3001\u30BB -PageSetup-Paper_Size=\u7D19\u30B5\u30A4\u30BA +alert_word=\u884C\u306E\u9AD8\u3055\u3092\u56FA\u5B9A\u305B\u305A\u30A8\u30AF\u30B9\u30DD\u30FC\u30C8\u3059\u308B\u6642\u3001\u30A8\u30AF\u30B9\u30DD\u30FC\u30C8\u3055\u308C\u305Fword\u3067\u30BB\u30EB\u884C\u306E\u9AD8\u3055\u306F\u5185\u5BB9\u306B\u5408\u308F\u305B\u3066\u5927\u304D\u304F\u306A\u308A\u307E\u3059\u3002\u30A8\u30AF\u30B9\u30DD\u30FC\u30C8\u3055\u308C\u305F\u6539\u30DA\u30FC\u30B8\u4F4D\u7F6E\u3068\u30D7\u30EC\u30D3\u30E5\u30FC\u7D50\u679C\u304C\u4E00\u81F4\u3057\u306A\u3044\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059\u3002 +PageSetup-Paper_Size=\u7D19\u306E\u30B5\u30A4\u30BA M-Page_Setup=\u30DA\u30FC\u30B8\u306E\u8A2D\u5B9A -DashBoard-FormBook=\u8868 +DashBoard-FormBook=\u30C0\u30C3\u30B7\u30E5\u30DC\u30FC\u30C9 X-Coordinate=\u6A2A\u5EA7\u6A19 -Style-Line_Spacing=\u884C\u9593\u9694\u8DDD\u96E2 -FR-Designer_Plugin_Should_Update_Title=Warning +Style-Line_Spacing=\u884C\u9593 +FR-Designer_Plugin_Should_Update_Title=\u30D7\u30E9\u30B0\u30A4\u30F3\u30A2\u30C3\u30D7\u30B0\u30EC\u30FC\u30C9\u6CE8\u610F Server-Define_Data_Connection=\u30C7\u30FC\u30BF\u63A5\u7D9A\u5B9A\u7FA9 -BarInside=\u67F1\u5B50\u5185\u4FA7 +BarInside=\u68D2\u306E\u5185\u5074 Border-Color=\u67A0\u7DDA\u8272 -NotAllow=\u975E\u5408\u6CD5 -Utils-File_type=\u30D5\u30A1\u30A4\u30EB\u30BF\u30A4\u30D7 -FR-Designer-Plugin_Install_From_Local=\u30ED\u30FC\u30AB\u30EB\u30D5\u30A1\u30A4\u30EB\u304B\u3089\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u3059\u308B -Summary_Method=\u53D6\u308A\u307E\u3068\u3081\u65B9\u6CD5 -Select_Specified_Grouping=\u30AB\u30B9\u30BF\u30DE\u30A4\u30BA\u30B0\u30EB\u30FC\u30D7\u5206\u3051\u3092\u9078\u629E -HF-Number_of_Page=\u7DCF\u30DA\u30FC\u30B8\u6570 +NotAllow=\u9055\u6CD5 +Utils-File_type=\u30D5\u30A1\u30A4\u30EB\u306E\u7A2E\u985E +FR-Designer-Plugin_Install_From_Local=\u30ED\u30FC\u30AB\u30EB\u30D5\u30A1\u30A4\u30EB\u304B\u3089\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB +Summary_Method=\u96C6\u8A08\u65B9\u5F0F +Select_Specified_Grouping=\u30AB\u30B9\u30BF\u30E0\u30B0\u30EB\u30FC\u30D7\u5206\u3051\u3092\u9078\u629E +HF-Number_of_Page=\u7DCF\u30DA\u30FC\u30B8\u6570\u633F\u5165 FR-Designer-Tree_Height=\u9AD8\u3055 Owner=\u30AA\u30FC\u30CA\u30FC Home=\u30E1\u30A4\u30F3\u30DA\u30FC\u30B8 -FR-Server_Embedded_Server_Stop=\u5185\u8535\u30B5\u30FC\u30D0-\u4E00\u6642\u505C\u6B62 -FR-Designer-Plugin_Detecting_Update=\u66F4\u65B0\u3092\u30C1\u30A7\u30C3\u30AF\u3057\u3066\u3044\u307E\u3059 -HF-Whether_to_define_the_selected_type=\u9078\u629E\u3055\u308C\u305F\u30BF\u30A4\u30D7\u3092\u5B9A\u7FA9\u3057\u307E\u3059\u304B -StyleAlignment-Right=\u53F3\u8A70\u3081 -FR-Designer_Alignment-Style=\u30A2\u30E9\u30A4\u30F3\u30E1\u30F3\u30C8 -PageSetup-Title_Start_Column=\u91CD\u8907\u3059\u308B\u6A19\u984C\u5217 +FR-Server_Embedded_Server_Stop=\u7D44\u307F\u8FBC\u307F\u306E\u30B5\u30FC\u30D0-\u505C\u6B62 +FR-Designer-Plugin_Detecting_Update=\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8\u691C\u8A3C\u4E2D +HF-Whether_to_define_the_selected_type=\u9078\u629E\u3055\u308C\u305F\u30BF\u30A4\u30D7\u306E\u5B9A\u7FA9 +StyleAlignment-Right=\u53F3\u63C3\u3048 +FR-Designer_Alignment-Style=\u63C3\u3048\u65B9\u5F0F +PageSetup-Title_Start_Column=\u7E70\u308A\u8FD4\u3057\u30BF\u30A4\u30C8\u30EB\u5217 Tree-Mutiple_Selection_Or_Not=\u8907\u6570\u9078\u629E FR-Designer-Plugin_Search=\u691C\u7D22 -Choose_Role=\u6A29\u9650\u30B3\u30F3\u30C8\u30ED\u30FC\u30EB -Append_Delete_Row_Message=\u6CE8\u610F\uFF01\u6307\u5B9A\u3055\u308C\u305F\u30BB\u30EB\u306F\u3001\u62E1\u5F35\u5C5E\u6027\u3092\u8A2D\u5B9A\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059 -Form-ComboBox=\u30B3\u30F3\u30DC\u30DC\u30C3\u30AF\u30B9 -PageSetup-Footer=\u30DA\u30FC\u30B8\u30D5\u30C3\u30BF\u30FC -Sorting=\u30BD\u30FC\u30C6\u30A3\u30F3\u30B0 -DBCP_TEST_WHILE_IDLE=\u30A2\u30A4\u30C9\u30EB\u30EA\u30B5\u30A4\u30AF\u30EB\u30E6\u30CB\u30C3\u30C8\u691C\u67FB -DS-Embedded_TableData=\u5185\u8535\u30C7\u30FC\u30BF\u30BB\u30C3\u30C8 -FR-Designer_No-Privilege=\u30A2\u30AF\u30BB\u30B9\u304C\u62D2\u5426\u3055\u308C\u307E\u3057\u305F +Choose_Role=\u6A29\u9650\u5236\u5FA1 +Append_Delete_Row_Message=\u6CE8\u610F\uFF01\u6307\u5B9A\u30BB\u30EB\u306E\u5C55\u958B\u5C5E\u6027\u3092\u8A2D\u5B9A\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059 +Form-ComboBox=\u30D7\u30EB\u30C0\u30A6\u30F3\u30DC\u30C3\u30AF\u30B9 +PageSetup-Footer=\u30D5\u30C3\u30BF\u30FC +Sorting=\u30BD\u30FC\u30C8 +DBCP_TEST_WHILE_IDLE=\u30A2\u30A4\u30C9\u30EB\u72B6\u614B\u306E\u63A5\u7D9A\u6709\u52B9\u6027\u3092\u691C\u8A3C +DS-Embedded_TableData=\u7D44\u307F\u8FBC\u307F\u30C7\u30FC\u30BF\u30BB\u30C3\u30C8 +FR-Designer_No-Privilege=\u6A29\u9650\u306A\u3057 FRFont-Subscript=\u4E0B\u4ED8\u304D Background_Settings=\u80CC\u666F\u8A2D\u5B9A -FormulaD-Invalid_Formula=\u7121\u52B9\u306A\u516C\u5F0F +FormulaD-Invalid_Formula=\u6570\u5F0F\u304C\u6B63\u3057\u304F\u3042\u308A\u307E\u305B\u3093\u3002 FR-Base_Margin=\u30DE\u30FC\u30B8\u30F3 -FR-Designer-Plugin_Shop_Installed=\u30D7\u30E9\u30B0\u30A4\u30F3\u30B7\u30E7\u30C3\u30D7\u304C\u3059\u3050\u306B\u958B\u59CB\u3059\u308B\u304B\u3069\u3046\u304B\u3001\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u3055\u308C\u3066\u3044\u307E\u3059\u304B\uFF1F +FR-Designer-Plugin_Shop_Installed=\u30D7\u30E9\u30B0\u30A4\u30F3\u30B9\u30C8\u30A2\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u7D42\u4E86\u5F8C\u3001\u8D77\u52D5\u3057\u307E\u3059\u304B? M_Edit-Send_to_Back=\u6700\u80CC\u9762\u3078\u79FB\u52D5(K) -Email-Can_Preview_Report_Content=\u30C6\u30AD\u30B9\u30C8\u30D7\u30EC\u30D3\u30E5\u30FC\u30EC\u30DD\u30FC\u30C8\u306E\u5185\u5BB9 -FR-Designer-FRFont_Italic=\u50BE\u659C -CellWrite-Print_Background=\u30BB\u30EB\u80CC\u666F\u3092\u5370\u5237\u3059\u308B -Wizard=\u30A6\u30A3\u30B6\u30FC\u30C9 +Email-Can_Preview_Report_Content=\u5E33\u7968\u306E\u5185\u5BB9\u3092\u30D7\u30EC\u30D3\u30E5\u30FC\u3059\u308B +FR-Designer-FRFont_Italic=\u659C\u4F53 +CellWrite-Print_Background=\u30BB\u30EB\u80CC\u666F +Wizard=\u30AC\u30A4\u30C9 Preference-Is_Drag_Permited=\u30C9\u30E9\u30C3\u30B0\u3092\u30B5\u30DD\u30FC\u30C8\u3059\u308B FR-Designer_Release_Lock=\u30A2\u30F3\u30ED\u30C3\u30AF Form-Delimiter=\u533A\u5207\u308A\u7B26 -wrong=\u9593\u9055\u3063\u305F -FR-Menu-Server_Chart_PreStyle=\u30B0\u30E9\u30D5\u30D7\u30EC\u5B9A\u7FA9\u914D\u8272 +wrong=\u30A8\u30E9\u30FC\u304C\u51FA\u307E\u3057\u305F +FR-Menu-Server_Chart_PreStyle=\u30B0\u30E9\u30D5\u4E8B\u524D\u5B9A\u7FA9\u914D\u8272 Form-Button=\u30DC\u30BF\u30F3 -FormulaD-Valid_Formula=\u6709\u52B9\u306A\u516C\u5F0F -ParameterD-Parameter_Interface=\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC\u30A4\u30F3\u30BF\u30FC\u30D5\u30A7\u30FC\u30B9 -At_least_one_visual_worksheet=\u5C11\u306A\u304F\u3068\u3082\u4E00\u3064\u306E\u30D3\u30B8\u30E5\u30A2\u30EB\u30EF\u30FC\u30AF\u3092\u6301\u3063\u3066\u3044\u308B\u30EF\u30FC\u30AF\u30D6\u30C3\u30AF\u306B\u306F\u3001\u524A\u9664\u3057\u305F\u3044\u5834\u5408\u306F\u3001\u65B0\u3057\u3044\u30EF\u30FC\u30AF\u30B7\u30FC\u30C8\u3092\u633F\u5165\u3057\u3066\u304F\u3060\u3055\u3044 -Need_Min_Value=\u6700\u5C0F\u5024\u304C\u5FC5\u8981 -Allow_Blank=\u7A7A\u6B04\u3042\u308A -CellWrite-InsertRow_DEFAULT=\u30C7\u30D5\u30A9\u30EB\u30C8\u5024\u306F -Widget-Load_By_Complete=\u5B8C\u5168\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9 -FR-Designer-Basic_Only_Submit_Current_Sheet= -Sort-Sort_Order=\u30BD\u30FC\u30C8\u9806 -File-File_Size_Limit=\u30D5\u30A1\u30A4\u30EB\u30B5\u30A4\u30BA\u3092\u5236\u9650\u3059\u308B +FormulaD-Valid_Formula=\u6709\u52B9\u306A\u6570\u5F0F +ParameterD-Parameter_Interface=\u30D1\u30E9\u30E1\u30FC\u30BF\u30D1\u30CD\u30EB +At_least_one_visual_worksheet=\u30B7\u30FC\u30C8\u3092\u3059\u3079\u3066\u524A\u9664\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093\u3002\u524A\u9664\u524D\u306B\u3001\u30B7\u30FC\u30C8\u3092\u8FFD\u52A0\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002 +Need_Min_Value=\u6700\u5C0F\u5024\u5FC5\u8981 +Allow_Blank=\u7A7A\u6B04\u3092\u8A31\u53EF +CellWrite-InsertRow_DEFAULT=\u30C7\u30D5\u30A9\u30EB\u30C8\u5024 +Widget-Load_By_Complete=\u5B8C\u5168\u30ED\u30FC\u30C9 +FR-Designer-Basic_Only_Submit_Current_Sheet=\u3053\u306E\u30B7\u30FC\u30C8\u306E\u307F\u3092\u63D0\u51FA\u3059\u308B +Sort-Sort_Order=\u4E26\u3073\u66FF\u3048 +File-File_Size_Limit=\u30D5\u30A1\u30A4\u30EB\u30B5\u30A4\u30BA\u306E\u5236\u9650 PrintP-Print=\u5370\u5237(T) FR-Designer-StyleAlignment_Center=\u4E2D\u592E\u63C3\u3048 -Preference-Setting_Colors=\u8272\u306E\u8A2D\u5B9A -Judge=\u88C1\u5224\u5B98 -Image-Adjust=\u9069\u5FDC -Collect-User_Information_DES=\u30A2\u30AF\u30C6\u30A3\u30D9\u30FC\u30C8\u30B3\u30FC\u30C9\u306F\u4F7F\u7528\u8005\u60C5\u5831\u306E\u53CE\u96C6\u306E\u305F\u3081\u3060\u3051\u306B\u7528\u3044\u3089\u308C\u307E\u3059\u3002\u4E0A\u306E\u300C\u30A2\u30AF\u30C6\u30A3\u30D9\u30FC\u30C8\u30B3\u30FC\u30C9\u53D6\u5F97\u300D\u3092\u30AF\u30EA\u30C3\u30AF\u3059\u308B\u3068\u3001\u65B0\u305F\u306A\u30A6\u30A3\u30F3\u30C9\u30A6\u304C\u73FE\u308C\u307E\u3059\u3002\u88FD\u54C1 -FR-Designer_Plugin_Normal_Update_From_Local=\u30ED\u30FC\u30AB\u30EB\u30D5\u30A1\u30A4\u30EB\u304B\u3089\u66F4\u65B0 +Preference-Setting_Colors=\u8272\u8A2D\u5B9A +Judge=\u5224\u65AD +Image-Adjust=\u8ABF\u6574 +Collect-User_Information_DES=\u30A2\u30AF\u30C6\u30A3\u30D9\u30FC\u30B7\u30E7\u30F3\u30B3\u30FC\u30C9\u306F\u4F7F\u7528\u8005\u60C5\u5831\u306E\u53CE\u96C6\u306E\u305F\u3081\u3060\u3051\u306B\u7528\u3044\u3089\u308C\u307E\u3059\u3002\u300C\u30A2\u30AF\u30C6\u30A3\u30D9\u30FC\u30B7\u30E7\u30F3\u30B3\u30FC\u30C9\u53D6\u5F97\u300D\u3092\u30AF\u30EA\u30C3\u30AF\u3059\u308B\u3068\u3001\u65B0\u898F\u30A6\u30A3\u30F3\u30C9\u30A6\u304C\u8868\u793A\u3055\u308C\u307E\u3059\u3002\u88FD\u54C1\u306E\u516C\u5F0F\u30B5\u30A4\u30C8\u306B\u30A2\u30AF\u30BB\u30B9\u3057\u3066\u30A2\u30AF\u30C6\u30A3\u30D9\u30FC\u30B7\u30E7\u30F3\u30B3\u30FC\u30C9\u3092\u53D6\u5F97\u3059\u308B\u306B\u306F3\u5206\u7A0B\u5EA6\u304B\u304B\u308A\u307E\u3059\u3002\u4F5C\u696D\u306F\u4E00\u56DE\u3060\u3051\u3067\u3001\u5B8C\u5168\u7121\u6599\u3067\u3054\u5229\u7528\u3044\u305F\u3060\u3051\u307E\u3059\u3002 +FR-Designer_Plugin_Normal_Update_From_Local=\u30ED\u30FC\u30AB\u30EB\u30D5\u30A1\u30A4\u30EB\u304B\u3089\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8 BackgroundTexture-Canvas=\u30AD\u30E3\u30F3\u30D0\u30B9 -BarOutSide=\u5916\u306E\u67F1 -Preview_ToolTips=\u30D7\u30EC\u30D3\u30E5\u30FC\u63D0\u793A +BarOutSide=\u68D2\u306E\u5916\u5074 +Preview_ToolTips=\u30D7\u30EC\u30D3\u30E5\u30FC\u30D2\u30F3\u30C8 FRFont-Family=\u540D\u79F0 -FR-Lic_does_not_Support_Remote=\u73FE\u5728\u4F7F\u7528\u3057\u3066\u3044\u308Blic\u306F\u9060\u9694\u30C7\u30B6\u30A4\u30F3\u6A5F\u80FD\u306B\u30B5\u30DD\u30FC\u30C8\u3057\u3066\u3044\u307E\u305B +FR-Lic_does_not_Support_Remote=\u304A\u4F7F\u3044\u306Elic\u306F\u30EA\u30E2\u30FC\u30C8\u958B\u767A\u6A5F\u80FD\u3092\u30B5\u30DD\u30FC\u30C8\u3057\u3066\u3044\u307E\u305B\u3093\u3001\u3054\u5229\u7528\u306B\u306FLIC\u3092\u30A2\u30C3\u30D7\u30B0\u30EC\u30FC\u30C9\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059 InterfaceStyle=\u30B9\u30BF\u30A4\u30EB RWA-Key=\u4E3B\u30AD\u30FC WF-Name=\u540D\u79F0 -RWA-Click_Cell_To_Edit_Value=\u30AF\u30EA\u30C3\u30AF\u3057\u3066\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u30BB\u30EB\u4FEE\u6B63\u5024 +RWA-Click_Cell_To_Edit_Value=\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u30BB\u30EB\u3092\u30AF\u30EA\u30C3\u30AF\u3057\u3066\u5024\u3092\u5909\u66F4 Utils-Row_Height=\u884C\u306E\u9AD8\u3055 -ReportD-Excel_Export=\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u5C0E\u51FA\u5C5E\u6027 -Form-Please_Select_A_Kind_Of_Form_Container=\u4E00\u7A2E\u306E\u8868\u30B3\u30F3\u30C6\u30CA\u3092\u9078\u629E\u3057\u3066\u304F\u3060\u3055\u3044 -Column_Does_Not_Exsit=\u5217\u304C\u5B58\u5728\u3057\u307E\u305B\u3093 +ReportD-Excel_Export=\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u30A8\u30AF\u30B9\u30DD\u30FC\u30C8\u5C5E\u6027 +Form-Please_Select_A_Kind_Of_Form_Container=\u30C0\u30C3\u30B7\u30E5\u30DC\u30FC\u30C9\u30B3\u30F3\u30C6\u30CA\u3092\u9078\u629E\u3057\u3066\u304F\u3060\u3055\u3044 +Column_Does_Not_Exsit=\u5217\u304C\u5B58\u5728\u3057\u306A\u3044 M_Insert-Hyperlink=\u30CF\u30A4\u30D1\u30FC\u30EA\u30F3\u30AF -can_not_include_underline=_\u3092\u542B\u3081\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093 -FR-Designer-Plugin_Jar_Expired=\u65E7Jar\u30D1\u30C3\u30AF -FR-Background_Image_Extend=\u62E1\u5F35 -TopDownShade=\u30B0\u30E9\u30C7\u30FC\u30B7\u30E7\u30F3\u30C0\u30A6\u30F3 +can_not_include_underline="_"\u3092\u542B\u3081\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093 +FR-Designer-Plugin_Jar_Expired=Jar\u30D5\u30A1\u30A4\u30EB\u306F\u53E4\u3059\u304E +FR-Background_Image_Extend=\u62E1\u5927\u8868\u793A +TopDownShade=\u4E0A\u4E0B\u30B0\u30E9\u30C7\u30FC\u30B7\u30E7\u30F3 FR-Base_Right=\u53F3 -DataBinding=\u30C7\u30FC\u30BF\u30D0\u30F3\u30C7\u30A3\u30F3\u30B0 +DataBinding=\u30C7\u30FC\u30BF\u30D0\u30A4\u30F3\u30C9 ConnectionPool_Attr=\u63A5\u7D9A\u30D7\u30FC\u30EB\u5C5E\u6027 -Connect_SQL_Cannot_Null=\u30C7\u30FC\u30BF\u63A5\u7D9A\u3068SQL\u30D1\u30CD\u30EB\u306F\u7A7A\u306B\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093 -DBCP_MAX_ACTIVE=\u6700\u5927\u30A2\u30AF\u30C6\u30A3\u30D6\u63A5\u7D9A\u6570 +Connect_SQL_Cannot_Null=\u30C7\u30FC\u30BF\u63A5\u7D9A\u3068SQL\u30D1\u30CD\u30EB\u3092\u7A7A\u6B04\u306B\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093 +DBCP_MAX_ACTIVE=\u540C\u6642\u5272\u308A\u5F53\u3066\u53EF\u80FD\u306A\u30A2\u30AF\u30C6\u30A3\u30D6\u306A\u63A5\u7D9A\u6700\u5927\u6570 M_Window-Preference=\u30AA\u30D7\u30B7\u30E7\u30F3 -ToolBar_Top=\u30D8\u30C3\u30C0\u30FC\u30C4\u30FC\u30EB\u30D0\u30FC +ToolBar_Top=\u4E0A\u90E8\u306E\u30C4\u30FC\u30EB\u30D0\u30FC FR-Designer_Indent-Pixel=\u753B\u7D20 -FR-Designer_Unit_MM=\u30DF\u30EA\u30E1\u30FC\u30C8\u30EB +FR-Designer_Unit_MM=\u30DF\u30EA IDLE=\u30A2\u30A4\u30C9\u30EB FRFont-Underline=\u4E0B\u7DDA -FR-Designer-Plugin_Read_Plugin_List_Error=\u30D7\u30E9\u30B0\u30A4\u30F3\u30EA\u30B9\u30C8\u306E\u8AAD\u307F\u53D6\u308A\u6642\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E +FR-Designer-Plugin_Read_Plugin_List_Error=\u30D7\u30E9\u30B0\u30A4\u30F3\u30EA\u30B9\u30C8\u8AAD\u307F\u8FBC\u307F\u6642\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F Type_Set=\u30BF\u30A4\u30D7\u8A2D\u5B9A -M_Format_A-Cell_Attributes=\u305D\u306E\u4ED6\u5C5E\u6027 +M_Format_A-Cell_Attributes=\u305D\u306E\u4ED6\u306E\u5C5E\u6027 CellWrite-Show_As_Image=\u753B\u50CF\u3067\u5185\u5BB9\u3092\u8868\u793A -ShowAsDownload=\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9\u30EA\u30F3\u30AF\u3067\uFF12\u9032\u6CD5\u306E\u5185\u5BB9\u3092\u8868\u793A -Form-ComboCheckBox=\u30C1\u30A7\u30C3\u30AF\u30DC\u30C3\u30AF\u30B9 +ShowAsDownload=\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9\u30EA\u30F3\u30AF\u3067\u30D0\u30A4\u30CA\u30EA\u30B3\u30F3\u30C6\u30F3\u30C4\u3092\u8868\u793A +Form-ComboCheckBox=\u30D7\u30EB\u30C0\u30A6\u30F3\u30C1\u30A7\u30C3\u30AF\u30DC\u30C3\u30AF\u30B9 BackgroundTexture-WovenMat=\u7E54\u7269 -BindColumn-Custom_Data_Appearance=\u30E6\u30FC\u30B6\u5B9A\u7FA9\u306F\u8868\u793A\u3059\u308A\u307E\u3059 -Actived=\u6D3B\u52D5\u7684 +BindColumn-Custom_Data_Appearance=\u30AB\u30B9\u30BF\u30DE\u30A4\u30BA\u8868\u793A +Actived=\u30A2\u30AF\u30C6\u30A3\u30D6 Env-Local_Directory=\u30ED\u30FC\u30AB\u30EB\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA Form-Colon=\u30B3\u30ED\u30F3 -Preference-Vertical_Scroll_Bar_Visible=\u7E26\u30B9\u30AF\u30ED\u30FC\u30EB\u30D0\u30FC\u306F\u53EF\u8996 +Preference-Vertical_Scroll_Bar_Visible=\u5782\u76F4\u30B9\u30AF\u30ED\u30FC\u30EB\u30D0\u30FC\u3092\u8868\u793A Utils-Show_Cell_Value=\u30BB\u30EB\u5024\u3092\u8868\u793A -FR-Designer_ReportColumns-Repeat_Row=\u884C\u9806\u5E8F\u3092\u30B3\u30D4\u30FC -SpecifiedG-Specified_Group=\u30B0\u30EB\u30FC\u30D4\u30F3\u30B0\u306E\u30E6\u30FC\u30B6\u5B9A\u7FA9 -RWA-Smart_Add_Cells=\u30A4\u30F3\u30C6\u30EA\u30B8\u30A7\u30F3\u30C8\u8FFD\u52A0\u30BB\u30EB -HF-Left_Section=\u5DE6\u5074\u30BB\u30AF\u30B7\u30E7\u30F3 -M_Report-Report_Background=\u5E33\u7968\u80CC\u666F -Image-Extend=\u62E1\u5F35 -FS_BI=\u51B3\u7B56\u30D7\u30E9\u30C3\u30C8\u30D5\u30A9\u30FC\u30E0 -ToolBar_Bottom=\u30D5\u30C3\u30BF\u30FC\u30C4\u30FC\u30EB\u30D0\u30FC -Hgap=\u6C34\u5E73\u9593\u9699 +FR-Designer_ReportColumns-Repeat_Row=\u884C\u306E\u9806\u5E8F\u3092\u30B3\u30D4\u30FC +SpecifiedG-Specified_Group=\u30AB\u30B9\u30BF\u30E0\u30B0\u30EB\u30FC\u30D7\u5206\u3051 +RWA-Smart_Add_Cells=\u30BB\u30EB\u81EA\u52D5\u8FFD\u52A0 +HF-Left_Section=\u5DE6\u30A8\u30EA\u30A2 +M_Report-Report_Background=\u7528\u7D19\u80CC\u666F +Image-Extend=\u62E1\u5927\u8868\u793A +FS_BI=\u610F\u601D\u6C7A\u5B9A\u30B7\u30B9\u30C6\u30E0 +ToolBar_Bottom=\u4E0B\u90E8\u306E\u30C4\u30FC\u30EB\u30D0\u30FC +Hgap=\u6C34\u5E73\u9593\u9694 FR-Designer_Enter-New-FileName=\u65B0\u3057\u3044\u30D5\u30A1\u30A4\u30EB\u540D\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044 -Verify_Fail=\u70B9\u691C\u306B\u5931\u6557\u3057\u307E\u3057\u305F -CellWrite-InsertRow_Policy=\u884C\u6226\u7565\u3092\u633F\u5165 -FR-Designer-Plugin_Illegal_Plugin_Zip=\u5408\u6CD5\u7684\u306A\u30D7\u30E9\u30B0\u30A4\u30F3\u30D1\u30C3\u30AF\u3067\u306F\u3042\u308A\u307E\u305B\u3093 +Verify_Fail=\u691C\u8A3C\u306B\u5931\u6557\u3057\u307E\u3057\u305F +CellWrite-InsertRow_Policy=\u884C\u633F\u5165\u30DD\u30EA\u30B7\u30FC +FR-Designer-Plugin_Illegal_Plugin_Zip=\u5408\u6CD5\u306E\u30D7\u30E9\u30B0\u30A4\u30F3\u30D1\u30C3\u30B1\u30FC\u30B8\u3067\u306F\u306A\u3044 RCodeVersion=\u30D0\u30FC\u30B8\u30E7\u30F3 Convert=\u5909\u63DB -Please_Drag=\u884C\u5217\u30D5\u30A3\u30FC\u30EB\u30C9\u3001\u53D6\u308A\u307E\u3068\u3081\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u5F15\u3063\u8FBC\u3081\u3066\u304F\u3060\u3055\u3044 +Please_Drag=\u884C\u5217\u30D5\u30A3\u30FC\u30EB\u30C9\u3001\u96C6\u8A08\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u30C9\u30E9\u30C3\u30B0\u3057\u3066\u304F\u3060\u3055\u3044 FR-Designer-Widget-Style_Preview=\u30D7\u30EC\u30D3\u30E5\u30FC -mobile_number=\u643A\u5E2F\u96FB\u8A71\u756A\u53F7 -FR-Designer_Form-ComboCheckBox=\u30C1\u30A7\u30C3\u30AF\u30DC\u30C3\u30AF\u30B9 -CacheValidateTime=\u5E33\u7968\u30AD\u30E3\u30C3\u30B7\u30F3\u30B0\u6709\u52B9\u6642\u9593 +mobile_number=\u643A\u5E2F\u756A\u53F7 +FR-Designer_Form-ComboCheckBox=\u30D7\u30EB\u30C0\u30A6\u30F3\u30C1\u30A7\u30C3\u30AF\u30DC\u30C3\u30AF\u30B9 +CacheValidateTime=\u5E33\u7968\u30AD\u30E3\u30C3\u30B7\u30E5\u306E\u6709\u52B9\u6642\u9593 Hyperlink-Extends_Report_Parameters=\u5E33\u7968\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC\u3092\u7D99\u627F\u3059\u308B FR-Designer_Values-Editor=\u5024\u30A8\u30C7\u30A3\u30BF Export-Excel=Excel @@ -1033,7 +1033,7 @@ FR-Designer-Widget_Style=\u30B9\u30BF\u30A4\u30EB parameter_name_exist=\u30D1\u30E9\u30E1\u30FC\u30BF\u540D\u306F\u65E2\u306B\u5B58\u5728\u3057\u3066\u3044\u307E\u3059 FR-Designer_Layer-Build=\u30D5\u30A1\u30BB\u30C3\u30C8\u7D44\u307F\u7ACB\u3066 Please_Rename=\u518D\u5EA6\u547D\u540D\u3057\u3066\u304F\u3060\u3055\u3044 -Form-Editing_Listeners=\u4E8B\u4EF6\u7DE8\u96C6 +Form-Editing_Listeners=\u30A4\u30D9\u30F3\u30C8\u7DE8\u96C6 RWA-Smart_Add_Fields=\u30A4\u30F3\u30C6\u30EA\u30B8\u30A7\u30F3\u30C8\u8FFD\u52A0\u30D5\u30A3\u30FC\u30EB\u30C9 FR-Designer-Tree_Width=\u5E45 Record=\u8A18\u9332 @@ -1053,7 +1053,7 @@ FR-Designer-Hyperlink_Name=\u540D\u524D FR-Designer_Form-Button=\u30DC\u30BF\u30F3 Black=\u30D6\u30E9\u30C3\u30AF FR-Designer-Widget-Style_Border_Color=\u30D5\u30EC\u30FC\u30E0\u8272 -Set_Submit_Event=\u63D0\u51FA\u4E8B\u4EF6\u3092\u8A2D\u5B9A +Set_Submit_Event=\u63D0\u51FA\u30A4\u30D9\u30F3\u30C8\u3092\u8A2D\u5B9A PDF-Print_isPopup=\u8A2D\u5B9A\u30A6\u30A3\u30F3\u30C9\u30A6\u3092\u30DD\u30C3\u30D7\u30A2\u30C3\u30D7\u3059\u308B\u304B\u5426\u304B LayerPageReport_CountPerPage=\u6BCE\u30DA\u30FC\u30B8\u8A18\u9332\u6570 Display_Modes=\u30E2\u30C7\u30EB\u3092\u8868\u793A @@ -1225,7 +1225,7 @@ Has_Selected=\u3082\u3046\u9078\u629E BackgroundTexture-Walnut=\u30AF\u30EB\u30DF FormulaD-Function_category=\u95A2\u6570\u30BF\u30A4\u30D7 Interface=\u30A4\u30F3\u30BF\u30FC\u30D5\u30A7\u30A4\u30B9 -FR-Designer-Beyond_Bounds= +FR-Designer-Beyond_Bounds=body\u90E8\u5206\u306E\u30DC\u30FC\u30C0\u30FC\u3092\u8D8A\u3048\u305F\u3001\u30B5\u30A4\u30BA\u3092\u8ABF\u6574\u3067\u304D\u307E\u305B\u3093\u3002 seconds=\u79D2 Auto-Build=\u81EA\u52D5\u7684\u306B\u30D3\u30EB\u30C9 FR-Designer-Plugin_Install_Successful=\u5F53\u8A72\u30D7\u30E9\u30B0\u30A4\u30F3\u30C7\u30B6\u30A4\u30CA\u30FC\u3068\u30B5\u30FC\u30D0\u3092\u518D\u8D77\u52D5\u3059\u308B\u969B\u306B @@ -1457,7 +1457,7 @@ Env-Configure_Workspace=\u4F5C\u696D\u76EE\u6B21\u8A2D\u5B9A feedback_info=\u8CB4\u91CD\u306A\u610F\u898B\u3042\u308A\u304C\u3068\u3046\u3054\u3056\u3044\u307E\u3059\u3002\u79C1\u9054\u306F\u3067\u304D\u308B\u3060\u3051\u65E9\u304F\u3042\u306A\u305F\u3068\u9023\u7D61\u3057\u307E\u3059\u3002 Ratio=\u6BD4\u7387 DBCP_TEST_ON_BORROW=\u63A5\u7D9A\u524D\u691C\u67FB\u3092\u53D6\u5F97 -FR-Designer_layerIndex= +FR-Designer_layerIndex=\u4F9D\u5B58\u30EC\u30A4\u30E4\u30FC\u6570 WEB-Write_Setting=\u5831\u544A\u30DA\u30FC\u30B8\u8A2D\u5B9A M-New_WorkBook=\u30D6\u30C3\u30AF\u3092\u65B0\u898F\u4F5C\u6210 FR-Designer-Plugin_Has_Been_Actived=\u30D7\u30E9\u30B0\u30A4\u30F3\u306F\u3059\u3067\u306B\u8D77\u52D5\u3055\u308C\u3066\u3044\u307E\u3059\u3002\u30C7\u30B6\u30A4\u30CA\u30FC\u3068\u30B5\u30FC @@ -1510,7 +1510,7 @@ ReportColumns-Repeat_Row=\u884C\u756A\u53F7\u306E\u7E70\u308A\u8FD4\u3057 Print_Setting=\u5370\u5237\u8A2D\u5B9A Registration-User_Name=\u30E6\u30FC\u30B6\u540D Datasource-User_Defined=\u30E6\u30FC\u30B6\u5B9A\u7FA9 -FR-Designer-Plugin_DownLoadMessage= +FR-Designer-Plugin_DownLoadMessage=\u30D7\u30E9\u30B0\u30A4\u30F3\u306F\u4F9D\u5B58\u30D5\u30A1\u30A4\u30EB\u3092\u5FC5\u8981\u3067\u3059\u304C\u3001\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u3057\u307E\u3059\u304B ({R1} m)\uFF1F Delay=\u9045\u5EF6 FR-Designer-All_MSBold=\u5FAE\u8EDF\u96C5\u9ED2 Utils-Now_create_connection=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u3078\u306E\u63A5\u7D9A @@ -1768,7 +1768,7 @@ Light_Orange=\u660E\u308B\u3044\u30AA\u30EC\u30F3\u30B8 StyleAlignment-Vertical=\u5782\u76F4\u63C3\u3048 Form-List=\u30EA\u30B9\u30C8 ParameterD-Show_Parameter_Window=\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC\u30A6\u30A4\u30F3\u30C9\u30A6\u3092\u8868\u793A\u3059\u308B -FR-Designer_Set_Submit_Event=\u63D0\u51FA\u4E8B\u4EF6\u3092\u8A2D\u5B9A +FR-Designer_Set_Submit_Event=\u63D0\u51FA\u30A4\u30D9\u30F3\u30C8\u3092\u8A2D\u5B9A Value_Percent=\u5024\u5272\u5408\u4F8B DBCP_MIN_EVICTABLE_IDLE_TIMEMILLIS=\u30A2\u30A4\u30C9\u30EB\u6700\u5C0F\u6642\u9593\u5024\u4FDD\u6301 Function-The_class_must_be_located_in=\u5F53\u8A72\u30AF\u30E9\u30B9\u306F\u5B58\u5728\u3057\u306A\u3051\u308C\u3070\u306A\u308A\u307E\u305B\u3093 From d60a80e98e3f571d695ece036130bd4db80fa922 Mon Sep 17 00:00:00 2001 From: plough Date: Tue, 9 May 2017 17:48:44 +0800 Subject: [PATCH 68/72] =?UTF-8?q?REPORT-2626=20=E7=A7=BB=E9=99=A4=E5=9B=BD?= =?UTF-8?q?=E9=99=85=E5=8C=96=E6=96=87=E4=BB=B6=E4=B8=AD=E7=9A=84=E6=97=A0?= =?UTF-8?q?=E6=95=88key?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- designer_base/src/com/fr/design/locale/designer_en_US.properties | 1 - 1 file changed, 1 deletion(-) diff --git a/designer_base/src/com/fr/design/locale/designer_en_US.properties b/designer_base/src/com/fr/design/locale/designer_en_US.properties index c3531ae7be..d2103f1ace 100644 --- a/designer_base/src/com/fr/design/locale/designer_en_US.properties +++ b/designer_base/src/com/fr/design/locale/designer_en_US.properties @@ -115,7 +115,6 @@ FR-Designer_Format_explan=Format explain FR-Designer_Allow-Blank=Allow Blank FR-Designer_Formula=Formula FR-Designer_Forum=Forum -FR-Designer_Get-CubeGetting cube= FR-Designer_Help=Help FR-Designer_Hide=Hide FR-Designer_Hyperlink=Hyperlink From 7e78f2cff896043767bc2ea33499f7315f79034d Mon Sep 17 00:00:00 2001 From: plough Date: Tue, 9 May 2017 19:22:34 +0800 Subject: [PATCH 69/72] =?UTF-8?q?REPORT-2626=20=E7=A7=BB=E9=99=A4=E5=9B=BD?= =?UTF-8?q?=E9=99=85=E5=8C=96=E6=96=87=E4=BB=B6=E4=B8=AD=E7=9A=84=E6=97=A0?= =?UTF-8?q?=E6=95=88key?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- designer_base/src/com/fr/design/locale/designer.properties | 4 ---- .../src/com/fr/design/locale/designer_en_US.properties | 4 ---- .../src/com/fr/design/locale/designer_ko_KR.properties | 1 - 3 files changed, 9 deletions(-) diff --git a/designer_base/src/com/fr/design/locale/designer.properties b/designer_base/src/com/fr/design/locale/designer.properties index 8014582968..c31dca1101 100644 --- a/designer_base/src/com/fr/design/locale/designer.properties +++ b/designer_base/src/com/fr/design/locale/designer.properties @@ -559,10 +559,6 @@ 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=Page Break -FR-Designer-Move_Tab_First=move to first -FR-Designer-Move_Tab_End=move to end -FR-Designer-Move_Tab_Next=move to next -FR-Designer-Move_Tab_Prev=move to previous 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. diff --git a/designer_base/src/com/fr/design/locale/designer_en_US.properties b/designer_base/src/com/fr/design/locale/designer_en_US.properties index d2103f1ace..a98d7c21b1 100644 --- a/designer_base/src/com/fr/design/locale/designer_en_US.properties +++ b/designer_base/src/com/fr/design/locale/designer_en_US.properties @@ -558,10 +558,6 @@ 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=Page Break -FR-Designer-Move_Tab_First=move to first -FR-Designer-Move_Tab_End=move to end -FR-Designer-Move_Tab_Next=move to next -FR-Designer-Move_Tab_Prev=move to previous 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. diff --git a/designer_base/src/com/fr/design/locale/designer_ko_KR.properties b/designer_base/src/com/fr/design/locale/designer_ko_KR.properties index 492870eaf5..c0f6fbdb76 100644 --- a/designer_base/src/com/fr/design/locale/designer_ko_KR.properties +++ b/designer_base/src/com/fr/design/locale/designer_ko_KR.properties @@ -446,7 +446,6 @@ 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 From e51da95007a2dfea456c96e189671c6e352ca73f Mon Sep 17 00:00:00 2001 From: plough Date: Wed, 10 May 2017 11:12:19 +0800 Subject: [PATCH 70/72] =?UTF-8?q?=E6=97=A0JIRA=E4=BB=BB=E5=8A=A1=EF=BC=8C?= =?UTF-8?q?=E5=9B=BD=E9=99=85=E5=8C=96=E7=BF=BB=E8=AF=91=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/fr/design/locale/designer.properties | 57 +- .../design/locale/designer_en_US.properties | 77 +- .../design/locale/designer_ja_JP.properties | 1661 ++++++++--------- .../design/locale/designer_ko_KR.properties | 17 +- .../design/locale/designer_zh_CN.properties | 15 +- .../design/locale/designer_zh_TW.properties | 23 +- 6 files changed, 922 insertions(+), 928 deletions(-) diff --git a/designer_base/src/com/fr/design/locale/designer.properties b/designer_base/src/com/fr/design/locale/designer.properties index c31dca1101..399be8dd80 100644 --- a/designer_base/src/com/fr/design/locale/designer.properties +++ b/designer_base/src/com/fr/design/locale/designer.properties @@ -1,4 +1,3 @@ -# 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= @@ -12,7 +11,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= +FR-Designer-Basic_More_Color=More colors FR-Designer-Estate_Any= FR-Designer-Estate_Default_Font= FR-Designer-Estate_Default_Null= @@ -87,18 +86,18 @@ FR-Designer_Currency_Line= FR-Designer_Current_tab= FR-Designer_Custom= FR-Designer_Custom-Angle= -FR-Designer_DS-Dictionary= +FR-Designer_DS-Dictionary=Dictionary FR-Designer_Data-confusion= FR-Designer_Data_Type= FR-Designer_Double_Click_Edit_OR_Clear= -FR-Designer_Email= +FR-Designer_Email=email FR-Designer_Enabled= FR-Designer_End-Date= FR-Designer_ExportAndOutput= FR-Designer_FRFont= -FR-Designer_FS_Close_Other_Templates= -FR-Designer_File= -FR-Designer_Filter_Conditions= +FR-Designer_FS_Close_Other_Templates=close other templates +FR-Designer_File=File +FR-Designer_Filter_Conditions=Filter Conditions FR-Designer_Finish-Modify-Share= FR-Designer_Fit= FR-Designer_Fit-App= @@ -106,7 +105,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= +FR-Designer_Foreground=Foreground FR-Designer_Form-AuthorityEdited_Cannot_be_Supported=Form authority editing can not be supported FR-Designer_Form-Report= FR-Designer_Form_EmbeddedTD= @@ -117,12 +116,12 @@ FR-Designer_Forum= FR-Designer_Get-Cube= FR-Designer_Help= FR-Designer_Hide= -FR-Designer_Hyperlink= +FR-Designer_Hyperlink=Hyperlink FR-Designer_Hyperlink-Form_link= FR-Designer_IDCard= FR-Designer_Icon= FR-Designer_Index= -FR-Designer_Input_Rule= +FR-Designer_Input_Rule=Input Rule FR-Designer_Language_Default= FR-Designer_Layout= FR-Designer_Layout-HBox= @@ -143,7 +142,7 @@ FR-Designer_M_Help-Tutorial= FR-Designer_Max_Value= FR-Designer_Min_Value= FR-Designer_MobilePhone= -FR-Designer_New_Value= +FR-Designer_New_Value=New_Value FR-Designer_None= FR-Designer_PaperSize-Mobile= FR-Designer_PaperSize-Mobile-Large= @@ -152,12 +151,12 @@ FR-Designer_Para-Body= FR-Designer_Parameters= FR-Designer_Phone= FR-Designer_PostCode= -FR-Designer_Present= -FR-Designer_Preview= +FR-Designer_Present=Present +FR-Designer_Preview=Preview FR-Designer_Preview-Data-Confusion= FR-Designer_Product_Demo= FR-Designer_Query_Type= -FR-Designer_Refresh= +FR-Designer_Refresh=Refresh FR-Designer_Refresh_Parameter_In_SQL= FR-Designer_Reg_Expressions= FR-Designer_Reg_Max_Length= @@ -173,7 +172,7 @@ FR-Designer_Search=Search FR-Designer_Set= FR-Designer_Share-Template= FR-Designer_Simple_general= -FR-Designer_Song_TypeFace=Song TypeFace +FR-Designer_Song_TypeFace= FR-Designer_Start-Date= FR-Designer_Subscript= FR-Designer_Superscript= @@ -195,8 +194,8 @@ FR-Designer_Vertical-RightToLeft= FR-Designer_VerticalBoxLayout= FR-Designer_Visible= FR-Designer_WLayout-Border-ToolTips= -FR-Designer_WaterMark= -FR-Designer_Widget= +FR-Designer_WaterMark=WaterMark +FR-Designer_Widget=Widget FR-Designer_Widget-Settings= FR-Designer_Widget-Visible= FR-Designer_XMLA_Explain= @@ -293,7 +292,7 @@ FR-Designer_file-is-locked= 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 exist or your operation is unreasonable. -FR-Designer_Tooltips=Tooltips +FR-Designer_Tooltips= FR-Designer_Remove=Remove FR-Designer_Custom_Icon_SelectIcon=Select Icon FR-Designer_Click_this_button=Click this button to set path @@ -401,14 +400,14 @@ FR-Designer_Choose_Language= FR-Designer_Work_After_Restart_Designer= FR-Designer_Setting-Ruler-Units= FR-Designer_PageSetup-mm= -FR-Designer_Unit_CM= +FR-Designer_Unit_CM=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= +FR-Designer_Unit_INCH=INCH FR-Designer_Web_Preview_Port= -FR-Designer_Unit_PT= +FR-Designer_Unit_PT=PT FR-Designer-Write_Auto_Stash=auto stash FR-Designer_Printer_Native_Button= FR-Designer_Event_ShowWidgets= @@ -482,11 +481,11 @@ FR-Designer_Data_Analysis_Settings=Data Analysis Settings FR-Designer_Browser_Background=Browser Background FR-Designer_Import_Css=Import Css FR-Designer_Import_JavaScript=Import JavaScript -FR-Designer-Datasource-Param_DES= you can type "${abc}" as a parameter, here, abc is a parameter name.
 for example\: select * from table where id\=${abc}.
 select * from table where id\='${abc}'.(if the field id is typeof string) -FR-Designer-DS-Database_Query= -FR-Designer_Is_Share_DBTableData= -FR-Designer-LayerPageReport_PageQuery= -FR-Designer-LayerPageReport_Define_PageQuerySQL= +FR-Designer-Datasource-Param_DES= you can type "${abc}" as a parameter, here, abc is a parameter name.
 for example\: select * from table where id\ +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_Event= FR-Designer_Properties= FR-Designer_Permissions_Edition=Permissions Edition @@ -512,7 +511,7 @@ FR-Designer_Attribute= FR-Designer_Form_Editing_Listeners= FR-Designer_Form_Basic_Properties= FR-Designer_DS_Dictionary= -FR-Designer_Create_Tree= +FR-Designer_Create_Tree=Create Tree FR-Designer_Set_Callback_Function= FR-Designer_ConfirmDialog_Content= FR-Designer_ConfirmDialog_Title= @@ -557,8 +556,8 @@ FR-Designer_Show_Content=Show content 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=Page Break +FR-Designer_No= +FR-Designer_Pagination=Pagination 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. diff --git a/designer_base/src/com/fr/design/locale/designer_en_US.properties b/designer_base/src/com/fr/design/locale/designer_en_US.properties index fd8971395d..5bc3226ae1 100644 --- a/designer_base/src/com/fr/design/locale/designer_en_US.properties +++ b/designer_base/src/com/fr/design/locale/designer_en_US.properties @@ -1,4 +1,3 @@ -# 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 @@ -12,16 +11,16 @@ FR-Designer-BBSLogin_Switch-Account=Switch Account FR-Designer-BBSLogin_Privite-Message=Private Message FR-Designer-BBSLogin_Times=times FR-Designer-BBSLogin_Username-Empty-Tip=User name can not be null -FR-Designer-Basic_More_Color=More Color... +FR-Designer-Basic_More_Color=More colors 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) @@ -68,7 +67,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 @@ -91,20 +90,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=Mail +FR-Designer_Email=Email 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 condition +FR-Designer_File=File +FR-Designer_Filter_Conditions=Filter Conditions 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 @@ -135,7 +134,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 @@ -143,7 +142,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 @@ -152,7 +151,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 @@ -162,7 +161,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=Multi-columns/lines +FR-Designer_ReportColumns-Columns=Fixed columns per line FR-Designer_Return-Date=Return Date FR-Designer_RichText=Insert Rich Text FR-Designer_RichTextEditor=Rich Text Editor @@ -173,7 +172,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 @@ -182,7 +181,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 +FR-Designer_Thanks-To=Thanks To FR-Designer_Title=Title FR-Designer_Total=Total FR-Designer_UnSignIn=Not Sign In @@ -240,7 +239,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=FieldName +FR-Designer_Chart_Field_Name=Field Name FR-Designer_FormulaD-Text=Text FR-Designer_FormulaD-Logical=Logical Function FR-Designer_FormulaD-Array=Array @@ -249,13 +248,13 @@ FR-Designer_FormulaD-Other=Other Functions FR-Designer_FormulaD-All=All Functions FR-Designer_Function=Function FR-Designer_Select=Sel -FR-Designer_Edit=Edit +FR-Designer_Edit=Edt 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=Tree Combobox -FR-Designer_Form-Iframe=Iframe +FR-Designer_Tree-ComboBox=Drop-down Tree +FR-Designer_Form-Iframe=WebView FR-Designer_Type=Type FR-Designer_User-defined=User_defined FR-Designer_Simple_general_forV6=Simple general for Version6+ @@ -287,8 +286,8 @@ 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=Tooltips -FR-Designer_Remove=Remove +FR-Designer_Tooltips=Tip +FR-Designer_Remove=Delete 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. @@ -357,7 +356,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 +FR-Designer-Plugin_Please_Update_Jar=Please Update Jar To\: FR-Designer-Invalid_Page_Number=Invalid Page Number FR-Designer_XMLA_Database=DB FR-Designer_XMLA_UserName=User name @@ -482,7 +481,7 @@ FR-Designer_Import_Css=Reference Css FR-Designer_Import_JavaScript=Reference JavaScript FR-Designer-LayerPageReport_PageQuery=Page Break query FR-Designer-LayerPageReport_Define_PageQuerySQL=Define sql for page break query -FR-Designer-Datasource-Param_DES= You can type "${abc}" as a parameter, here, abc is a parameter name.
 for example\: select * from table where id\=${abc}.
 select * from table where id\='${abc}'.(if the type of id is string) +FR-Designer-Datasource-Param_DES= You can type "${abc}" as a parameter, here, abc is a parameter name.
 for example\: select * from table where id\ FR-Designer-DS-Database_Query=DB Query FR-Designer_Is_Share_DBTableData=Shared data set FR-Designer_Event=Event @@ -616,9 +615,9 @@ Utils-Current_Sheet=Current Sheet ConditionB-is_less_than=less than BorderLayout-West=West AnalysisLine=Line -Layer_Report_Warnning_info=Line report engine is suitable for large data.
Many report features will no longer support if use it,
more information in helpdoc. +Layer_Report_Warnning_info=Line report engine is suitable for large data.
Many report features will no longer support if use it,
more information in helpdocument. 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 @@ -698,7 +697,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 @@ -798,7 +797,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 @@ -938,7 +937,7 @@ External=External Black_Font=Black Font LOG-Report_Server_IS_Started=Report Server is Started Tips\:You_Can_Input_B1_To_Input_The_Data_Of_The_First_Row_Second_Column=Tips\:You can input B1 to get the data in the second cell of the first row -FR-Designer_ChooseOneButton=Please chose one control +FR-Designer_ChooseOneButton= Widget-Sizing=Sizing NO_Border_Line=NO Border Cell_Data=Cell data @@ -949,7 +948,7 @@ zeroMarginWarn=The printer exist the physical margins
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 @@ -967,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 @@ -1126,7 +1125,7 @@ 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 @@ -1144,7 +1143,7 @@ FR-mobile_report_analysis=report analysis Month=Month Utils-Column_Width=Column-W Collect-Use_Designer=Use Designer -Widget-User_Defined_Editor=Predefine editor, you can only change its properties in control management menu. +Widget-User_Defined_Editor=Predefine editor, you can only change its properties in control mangement menu. Unit_Ten_Thousand=Ten Thousand Data_Setting=Data Setting ECP_input_pwd=Enter your password\: @@ -1162,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 @@ -1173,10 +1172,10 @@ BackgroundTexture-PaperBag=Paper Bag RWA-BuildIn_SQL=Built-in SQL SingleLayer=Single Layer Or-you=or you -FR-Designer_Certificate_Path=Certificate Path +FR-Designer_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 @@ -1290,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 @@ -1798,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 @@ -1818,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 @@ -1941,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 diff --git a/designer_base/src/com/fr/design/locale/designer_ja_JP.properties b/designer_base/src/com/fr/design/locale/designer_ja_JP.properties index c900c62e1e..1614995ecb 100644 --- a/designer_base/src/com/fr/design/locale/designer_ja_JP.properties +++ b/designer_base/src/com/fr/design/locale/designer_ja_JP.properties @@ -1,4 +1,3 @@ -# generated time: \u661F\u671F\u56DB \u5341\u4E00\u6708 24 12:02:51 CST 2016 FR-Designer-BBSLogin_Account=\u30E6\u30FC\u30B6ID FR-Designer-BBSLogin_Connection-Failure=\u30CD\u30C3\u30C8\u63A5\u7D9A\u5931\u6557\u3001\u30CD\u30C3\u30C8\u72B6\u614B\u3054\u78BA\u8A8D\u4E0B\u3055\u3044 FR-Designer-BBSLogin_Connection-Failure-Tip=\u30D2\u30F3\u30C8 @@ -12,7 +11,7 @@ FR-Designer-BBSLogin_Switch-Account=\u30A2\u30AB\u30A6\u30F3\u30C8\u5207\u308A\u FR-Designer-BBSLogin_Privite-Message=\u500B\u4EBA\u30E1\u30C3\u30BB\u30FC\u30B8 FR-Designer-BBSLogin_Times=\u56DE FR-Designer-BBSLogin_Username-Empty-Tip=\u30E6\u30FC\u30B6\u30FCID\u306F\u7A7A\u306B\u3067\u304D\u307E\u305B\u3093 -FR-Designer-Basic_More_Color=\u3082\u3063\u3068\u591A\u3044 +FR-Designer-Basic_More_Color=\u8A73\u7D30 FR-Designer-Estate_Any=\u5236\u9650\u306A\u3057 FR-Designer-Estate_Default_Font=\u30C7\u30D5\u30A9\u30EB\u30C8\u30D5\u30A9\u30F3\u30C8 FR-Designer-Estate_Default_Null=\u30C7\u30D5\u30A9\u30EB\u30C8\u306F\u7A7A @@ -91,14 +90,14 @@ FR-Designer_DS-Dictionary=\u30C7\u30FC\u30BF\u8F9E\u66F8 FR-Designer_Data-confusion=\u30C7\u30FC\u30BF\u6DF7\u4E71 FR-Designer_Data_Type=\u30C7\u30FC\u30BF\u30BF\u30A4\u30D7 FR-Designer_Double_Click_Edit_OR_Clear=\u30C0\u30D6\u30EB\u30AF\u30EA\u30C3\u30AF\u3057\u3066\u7DE8\u96C6\u307E\u305F\u306F\u30AF\u30EA\u30A2\u3059\u308B -FR-Designer_Email=\u30E1\u30FC\u30EB +FR-Designer_Email=E\u30E1\u30FC\u30EB FR-Designer_Enabled=\u4F7F\u7528\u53EF\u80FD FR-Designer_End-Date=\u7D42\u4E86\u65E5\u671F FR-Designer_ExportAndOutput=\u51FA\u529B FR-Designer_FRFont=\u30D5\u30A9\u30F3\u30C8 FR-Designer_FS_Close_Other_Templates=\u4ED6\u306E\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u3092\u9589\u3058\u308B FR-Designer_File=\u30D5\u30A1\u30A4\u30EB -FR-Designer_Filter_Conditions=\u30D5\u30A3\u30EB\u30BF\u30FC\u6761\u4EF6 +FR-Designer_Filter_Conditions=\u30D5\u30A3\u30EB\u30BF\u6761\u4EF6 FR-Designer_Finish-Modify-Share=\u4FEE\u6B63\u3092\u5B8C\u4E86\u3057\u3066\u5171\u6709\u3057\u307E\u3059 FR-Designer_Fit-App=App\u81EA\u52D5\u9069\u5FDC FR-Designer_Fit=\u81EA\u52D5\u9069\u5FDC @@ -122,7 +121,7 @@ FR-Designer_Hyperlink-Form_link=\u73FE\u5728\u306E\u30C0\u30C3\u30B7\u30E5\u30DC FR-Designer_IDCard=\u8EAB\u5206\u8A3C\u660E\u66F8 FR-Designer_Icon=\u30A2\u30A4\u30B3\u30F3 FR-Designer_Index=\u5217\u8EF8/\u6307\u6A19 -FR-Designer_Input_Rule=\u66F8\u304D\u8FBC\u307F\u898F\u5247 +FR-Designer_Input_Rule=\u5165\u529B\u898F\u5247 FR-Designer_Language_Default=\u30C7\u30D5\u30A9\u30EB\u30C8 FR-Designer_Layout=\u30EC\u30A4\u30A2\u30A6\u30C8 FR-Designer_Layout-HBox=\u6C34\u5E73\u30B1\u30FC\u30B9\u30EC\u30A4\u30A2\u30A6\u30C8 @@ -143,7 +142,7 @@ FR-Designer_M_Help-Tutorial=\u30D8\u30EB\u30D7\u30C9\u30AD\u30E5\u30E1\u30F3\u30 FR-Designer_Max_Value=\u6700\u5927\u5024 FR-Designer_Min_Value=\u6700\u5C0F\u5024 FR-Designer_MobilePhone=\u30B9\u30DE\u30FC\u30C8\u30D5\u30A9\u30F3 -FR-Designer_New_Value=\u65B0\u5024 +FR-Designer_New_Value=\u65B0\u3057\u3044\u5024 FR-Designer_None=\u7121\u3057 FR-Designer_PaperSize-Mobile=\u30B9\u30DE\u30FC\u30C8\u30D5\u30A9\u30F3 FR-Designer_PaperSize-Mobile-Large=\u5927\u304D\u3044\u30B9\u30AF\u30EA\u30FC\u30F3 @@ -162,7 +161,7 @@ FR-Designer_Refresh_Parameter_In_SQL=SQL\u4E2D\u306E\u30D1\u30E9\u30E1\u30FC\u30 FR-Designer_Reg_Expressions=\u6B63\u5247\u8868\u73FE\u5F0F FR-Designer_Reg_Max_Length=\u6700\u5927\u9577\u3055 FR-Designer_Reg_Min_Length=\u6700\u5C0F\u9577\u3055 -FR-Designer_ReportColumns-Columns=\u30B3\u30E9\u30E0\u5206\u3051 +FR-Designer_ReportColumns-Columns=\u30B5\u30D6\u30D5\u30A3\u30FC\u30EB\u30C9 FR-Designer_Return-Date=\u65E5\u4ED8\u306B\u623B\u308B FR-Designer_RichText=\u30EA\u30C3\u30C1\u30C6\u30AD\u30B9\u30C8\u633F\u5165 FR-Designer_RichTextEditor=\u30EA\u30C3\u30C1\u30C6\u30AD\u30B9\u30C8\u30A8\u30C7\u30A3\u30BF @@ -261,7 +260,7 @@ FR-Designer_Role_changed_isRefresh=\u30ED\u30FC\u30EB\u306F\u5909\u66F4\u3057\u3 FR-Designer_FS_Name=\u610F\u601D\u6C7A\u5B9A\u30B7\u30B9\u30C6\u30E0 FR-Designer_Datasource-Parameter=\u30C7\u30FC\u30BF\u30BD\u30FC\u30B9\u30D1\u30E9\u30E1\u30FC\u30BF FR-Designer_Tree-ComboBox=\u30D7\u30EB\u30C0\u30A6\u30F3\u30C4\u30EA\u30FC -FR-Designer_Form-Iframe= +FR-Designer_Form-Iframe=\u30DA\u30FC\u30B8\u30DC\u30C3\u30AF\u30B9 FR-Designer_Type=\u30BF\u30A4\u30D7 FR-Designer_User-defined=\u30AB\u30B9\u30BF\u30DE\u30A4\u30BA FR-Designer_Simple_general_forV6=\u6C4E\u7528\u30AF\u30A8\u30EA(ECC 6\u4EE5\u4E0A\u306E\u30D0\u30FC\u30B8\u30E7\u30F3\u306B\u9069\u7528) @@ -393,7 +392,7 @@ FR-Designer_Choose_Language=\u8A00\u8A9E\u9078\u629E FR-Designer_Work_After_Restart_Designer=\u30C7\u30B6\u30A4\u30CA\u30FC\u518D\u8D77\u52D5\u5F8C\u3067\u6709\u52B9 FR-Designer_Setting-Ruler-Units=\u30EB\u30FC\u30E9\u30FC\u5358\u4F4D\u8A2D\u5B9A FR-Designer_PageSetup-mm=\u30DF\u30EA\u30E1\u30FC\u30C8\u30EB -FR-Designer_Unit_CM=\u30BB\u30F3\u30C1\u30E1\u30FC\u30C8\u30EB +FR-Designer_Unit_CM=\u30BB\u30F3\u30C1 FR-Designer_Page-Setup-Scale-Units=\u30DA\u30FC\u30B8\u8A2D\u5B9A\u30EB\u30FC\u30E9\u30FC\u5358\u4F4D FR-Designer_Report-Design-Ruler-Units=\u5E33\u7968\u30C7\u30B6\u30A4\u30F3\u30EB\u30FC\u30E9\u30FC\u5358\u4F4D FR-Designer_Web_Preview_Port_Setting=\u30DD\u30FC\u30C8\u8A2D\u5B9A @@ -459,11 +458,11 @@ FR-Designer_Data_Analysis_Settings=\u30C7\u30FC\u30BF\u5206\u6790\u8A2D\u5B9A FR-Designer_Browser_Background=\u30D6\u30E9\u30A6\u30B6\u80CC\u666F FR-Designer_Import_Css=Css\u5F15\u7528 FR-Designer_Import_JavaScript=JavaScript\u5F15\u7528 -FR-Designer-Datasource-Param_DES=  "${abc}"\u3092\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC\u3068\u3057\u3066\u5165\u529B\u3067\u304D\u307E\u3059\u3002\u3053\u3053\u3067abc\u306F\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC\u3002abc\u306F\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC\u306E\u540D\u524D\u3067\u3059\u3002\u4F8B\u3048\u3070
 select * from table where id\=${abc}\u3002
 select * from table where id\='${abc}'\u3002(\u3082\u3057id\u306F\u6587\u5B57\u5217\u306A\u3089)\uFFFD -FR-Designer-DS-Database_Query=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u30AF\u30A8\u30EA -FR-Designer-LayerPageReport_PageQuery=\u30DA\u30FC\u30B8\u5206\u3051\u30AF\u30A8\u30EA -FR-Designer-LayerPageReport_Define_PageQuerySQL=\u30DA\u30FC\u30B8\u5206\u3051\u30AF\u30A8\u30EA\u6587\u3092\u5B9A\u7FA9 -FR-Designer_Is_Share_DBTableData=\u5171\u6709\u30C7\u30FC\u30BF\u30BB\u30C3\u30C8 +FR-Designer-Datasource-Param_DES=  "${abc}"\u3092\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC\u3068\u3057\u3066\u5165\u529B\u3067\u304D\u307E\u3059\u3002\u3053\u3053\u3067abc\u306F\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC\u3002abc\u306F\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC\u306E\u540D\u524D\u3067\u3059\u3002\u4F8B\u3048\u3070
 select * from table where id\ +FR-Designer-DS-Database_Query=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u30AF\u30A8\u30EA\u30FC +FR-Designer-LayerPageReport_PageQuery=\u30DA\u30FC\u30B8\u5225\u30AF\u30A8\u30EA +FR-Designer-LayerPageReport_Define_PageQuerySQL=\u5B9A\u7FA9\u30DA\u30FC\u30B8\u5225\u30AF\u30A8\u30EAsql +FR-Designer_Is_Share_DBTableData=\u30C7\u30FC\u30BF\u30BB\u30C3\u30C8\u5171\u6709 FR-Designer_Event=\u30A4\u30D9\u30F3\u30C8 FR-Designer_Properties=\u30D7\u30ED\u30D1\u30C6\u30A3 FR-Designer_Permissions_Edition=\u6A29\u9650\u7DE8\u96C6 @@ -489,7 +488,7 @@ FR-Designer_Attribute=\u30D7\u30ED\u30D1\u30C6\u30A3 FR-Designer_Form_Editing_Listeners=\u30A4\u30D9\u30F3\u30C8\u7DE8\u96C6 FR-Designer_Form_Basic_Properties=\u57FA\u672C\u30D7\u30ED\u30D1\u30C6\u30A3 FR-Designer_DS_Dictionary=\u30C7\u30FC\u30BF\u8F9E\u66F8 -FR-Designer_Create_Tree=\u30C4\u30EA\u30FC\u3092\u69CB\u7BC9 +FR-Designer_Create_Tree=\u30C4\u30EA\u30FC\u69CB\u7BC9 FR-Designer_Set_Callback_Function=\u30B3\u30FC\u30EB\u30D0\u30C3\u30AF\u95A2\u6570\u8A2D\u5B9A FR-Designer_ConfirmDialog_Content=tab\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u3092\u524A\u9664\u3057\u307E\u3059\u304B FR-Designer_ConfirmDialog_Title=FineReport 8.0 @@ -534,8 +533,8 @@ FR-Designer_Show_Content=\u5185\u5BB9\u8868\u793A FR-Designer_Auto_Adjust_Size=\u81EA\u52D5\u8ABF\u6574 FR-Designer_Show_As_Download=\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9\u30EA\u30F3\u30AF\u30672\u9032\u6CD5\u306E\u5185\u5BB9\u3092\u8868\u793A\u3059\u308B FR-Designer_File_Name_For_Download=\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9\u30D5\u30A1\u30A4\u30EB\u540D -FR-Designer_No=\u3044\u3044\u3048 -FR-Designer_Pagination=\u6539\u9801 +FR-Designer_No=\u306A\u3057 +FR-Designer_Pagination=\u6539\u30DA\u30FC\u30B8 FR-Designer-Move_Tab_First=\u6700\u521D\u306B\u79FB\u52D5 FR-Designer-Move_Tab_End=\u6700\u5F8C\u306B\u79FB\u52D5 FR-Designer-Move_Tab_Next=\u6B21\u306B\u79FB\u52D5 @@ -581,10 +580,10 @@ FR-Designer_Log=\u30ED\u30B0 FR-Designer_Form-Fit-Tip=\u81EA\u52D5\u9069\u5FDC\u30D7\u30E9\u30B0\u30A4\u30F3 FR-Designer_Button-Cancel=\u53D6\u308A\u6D88\u3057 FR-Designer_LocalWidget=\u30ED\u30FC\u30AB\u30EB\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u30E9\u30A4\u30D6\u30E9\u30EA -FR-Designer_Alert=\u30A2\u30E9\u30FC\u30C8 +FR-Designer_Alert=\u8B66\u544A FR-Designer_TableData-Default-Para=\u30C7\u30FC\u30BF\u30BB\u30C3\u30C8\u306E\u30C7\u30D5\u30A9\u30EB\u30C8\u30D1\u30E9\u30E1\u30FC\u30BF FR-Designer_Edit_Button_ToolBar=\u30DC\u30BF\u30F3\u306E\u30C4\u30FC\u30EB\u30D0\u30FC\u3092\u7DE8\u96C6 -FR-Designer-Plugin_Please_Update_Jar=jar\u30D1\u30C3\u30AF\u3092\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8\u3057\u3066\u304F\u3060\u3055\u3044 +FR-Designer-Plugin_Please_Update_Jar= FR-Designer_Form-Frozen-Tip=\u30D5\u30EA\u30FC\u30BA\u3092\u4F7F\u3046\u6642\u3001\u5F8C\u8A18\u306E\u30D7\u30E9\u30B0\u30A4\u30F3\u3092\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u3057\u3066\u304F\u3060\u3055\u3044\uFF1A FR-Designer_Remove_Button_ToolBar=\u30DC\u30BF\u30F3\u306E\u30C4\u30FC\u30EB\u30D0\u30FC\u3092\u524A\u9664 FR-Designer_Normal=\u6B63\u5E38 @@ -598,36 +597,36 @@ FR-Designer_DoubleLayer_Report=\u4E8C\u968E\u30BF\u30A4\u30C8\u30EB FR-Designer_Validate=\u691C\u8A3C CellWrite-InsertRow_NULL=\u30CC\u30EB DashBoard-ChartFloat=\u30B0\u30E9\u30D5 -contact_info=\u304A\u554F\u3044\u5408\u308F\u305B\u60C5\u5831\uFF08\u30AA\u30D7\u30B7\u30E7\u30F3\uFF09 +contact_info=\u9023\u7D61\u60C5\u5831 Page_Setup=\u30DA\u30FC\u30B8\u8A2D\u5B9A -CellWrite-Print_Export=\u5370\u5237\u3068\u30A8\u30AF\u30B9\u30DD\u30FC\u30C8 +CellWrite-Print_Export=\u5370\u5237\u51FA\u529B Cannot_Get_Date=\u65E5\u4ED8\u3092\u53D6\u5F97\u3067\u304D\u307E\u305B\u3093 -FR-Designer_Modify=\u4FEE\u6B63 +FR-Designer_Modify=\u5909\u66F4 M-Write_Preview=\u66F8\u304D\u8FBC\u307F\u30D7\u30EC\u30D3\u30E5\u30FC -FR-Base_RWA-Key=\u30E1\u30A4\u30F3\u30AD\u30FC +FR-Base_RWA-Key=\u4E3B\u30AD\u30FC China=\u4E2D\u56FD -Set_Legend_Sytle=\u51E1\u4F8B\u306E\u66F8\u5F0F\u8A2D\u5B9A -FR-Designer_Number=\u6570\u5B57 -FR-Designer-Widget-Style_Common=\u666E\u901A -M-Save_As=\u540D\u524D\u3092\u3064\u3051\u3066\u4FDD\u5B58 -Following_parameters_are_not_generated=\u4EE5\u4E0B\u306E\u30D1\u30E9\u30E1\u30FC\u30BF\u306F\u307E\u3060\u751F\u6210\u3055\u308C\u3066\u3044\u307E\u305B\u3093 -FR-Designer-Basic_Activation_Key_Copy_OK=\u30AF\u30EA\u30C3\u30D7\u30DC\u30FC\u30C9\u306B\u30B3\u30D4\u30FC\u3057\u307E\u3057\u305F +Set_Legend_Sytle=\u51E1\u4F8B\u66F8\u5F0F\u8A2D\u5B9A +FR-Designer_Number=\u6570\u5024 +FR-Designer-Widget-Style_Common=\u4E00\u822C +M-Save_As=\u540D\u524D\u3092\u4ED8\u3051\u3066\u4FDD\u5B58 +Following_parameters_are_not_generated=\u4EE5\u4E0B\u306E\u30D1\u30E9\u30E1\u30FC\u30BF\u306F\u4F5C\u6210\u3055\u308C\u3066\u3044\u306A\u3044 +FR-Designer-Basic_Activation_Key_Copy_OK=\u3059\u3067\u306B\u30AF\u30EA\u30C3\u30D7\u30DC\u30FC\u30C9\u306B\u30B3\u30D4\u30FC Utils-Current_Sheet=\u73FE\u5728\u306E\u30B7\u30FC\u30C8 ConditionB-is_less_than=\u3088\u308A\u5C0F\u3055\u3044 -BorderLayout-West=\u897F\u90E8\u306E -AnalysisLine=\u5206\u6790\u30E9\u30A4\u30F3 +BorderLayout-West=\u897F +AnalysisLine=\u5206\u6790\u7DDA Layer_Report_Warnning_info=\u30B0\u30EA\u30C3\u30C9\u578B\u30A8\u30F3\u30B8\u30F3\u306F\u30C7\u30FC\u30BF\u91CF\u304C\u591A\u3044\u5834\u5408\u306B\u9069\u3057\u3066\u3044\u307E\u3059\u3002
\u3053\u306E\u30A8\u30F3\u30B8\u30F3\u3092\u4F7F\u3046\u3068\u3001\u5E33\u7968\u6A5F\u80FD\u306E\u591A\u304F\u304C\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u307E\u305B\u3093\u3002
\u8A73\u3057\u3044\u5185\u5BB9\u306F\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u306E\u95A2\u9023\u500B\u6240\u3092\u3054\u78BA\u8A8D\u304F\u3060\u3055\u3044\u3002 Tree-Width=\u5E45 alert_word=\u884C\u306E\u9AD8\u3055\u3092\u56FA\u5B9A\u305B\u305A\u30A8\u30AF\u30B9\u30DD\u30FC\u30C8\u3059\u308B\u6642\u3001\u30A8\u30AF\u30B9\u30DD\u30FC\u30C8\u3055\u308C\u305Fword\u3067\u30BB\u30EB\u884C\u306E\u9AD8\u3055\u306F\u5185\u5BB9\u306B\u5408\u308F\u305B\u3066\u5927\u304D\u304F\u306A\u308A\u307E\u3059\u3002\u30A8\u30AF\u30B9\u30DD\u30FC\u30C8\u3055\u308C\u305F\u6539\u30DA\u30FC\u30B8\u4F4D\u7F6E\u3068\u30D7\u30EC\u30D3\u30E5\u30FC\u7D50\u679C\u304C\u4E00\u81F4\u3057\u306A\u3044\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059\u3002 -PageSetup-Paper_Size=\u7D19\u306E\u30B5\u30A4\u30BA -M-Page_Setup=\u30DA\u30FC\u30B8\u306E\u8A2D\u5B9A +PageSetup-Paper_Size=\u7528\u7D19\u30B5\u30A4\u30BA +M-Page_Setup=\u30DA\u30FC\u30B8\u8A2D\u5B9A DashBoard-FormBook=\u30C0\u30C3\u30B7\u30E5\u30DC\u30FC\u30C9 X-Coordinate=\u6A2A\u5EA7\u6A19 Style-Line_Spacing=\u884C\u9593 FR-Designer_Plugin_Should_Update_Title=\u30D7\u30E9\u30B0\u30A4\u30F3\u30A2\u30C3\u30D7\u30B0\u30EC\u30FC\u30C9\u6CE8\u610F Server-Define_Data_Connection=\u30C7\u30FC\u30BF\u63A5\u7D9A\u5B9A\u7FA9 BarInside=\u68D2\u306E\u5185\u5074 -Border-Color=\u67A0\u7DDA\u8272 +Border-Color=\u67A0\u306E\u8272 NotAllow=\u9055\u6CD5 Utils-File_type=\u30D5\u30A1\u30A4\u30EB\u306E\u7A2E\u985E FR-Designer-Plugin_Install_From_Local=\u30ED\u30FC\u30AB\u30EB\u30D5\u30A1\u30A4\u30EB\u304B\u3089\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB @@ -635,8 +634,8 @@ Summary_Method=\u96C6\u8A08\u65B9\u5F0F Select_Specified_Grouping=\u30AB\u30B9\u30BF\u30E0\u30B0\u30EB\u30FC\u30D7\u5206\u3051\u3092\u9078\u629E HF-Number_of_Page=\u7DCF\u30DA\u30FC\u30B8\u6570\u633F\u5165 FR-Designer-Tree_Height=\u9AD8\u3055 -Owner=\u30AA\u30FC\u30CA\u30FC -Home=\u30E1\u30A4\u30F3\u30DA\u30FC\u30B8 +Owner=\u30E1\u30A4\u30F3 +Home=\u30DB\u30FC\u30E0\u30DA\u30FC\u30B8 FR-Server_Embedded_Server_Stop=\u7D44\u307F\u8FBC\u307F\u306E\u30B5\u30FC\u30D0-\u505C\u6B62 FR-Designer-Plugin_Detecting_Update=\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8\u691C\u8A3C\u4E2D HF-Whether_to_define_the_selected_type=\u9078\u629E\u3055\u308C\u305F\u30BF\u30A4\u30D7\u306E\u5B9A\u7FA9 @@ -649,7 +648,7 @@ Choose_Role=\u6A29\u9650\u5236\u5FA1 Append_Delete_Row_Message=\u6CE8\u610F\uFF01\u6307\u5B9A\u30BB\u30EB\u306E\u5C55\u958B\u5C5E\u6027\u3092\u8A2D\u5B9A\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059 Form-ComboBox=\u30D7\u30EB\u30C0\u30A6\u30F3\u30DC\u30C3\u30AF\u30B9 PageSetup-Footer=\u30D5\u30C3\u30BF\u30FC -Sorting=\u30BD\u30FC\u30C8 +Sorting=\u30BD\u30FC\u30C8\u4E2D DBCP_TEST_WHILE_IDLE=\u30A2\u30A4\u30C9\u30EB\u72B6\u614B\u306E\u63A5\u7D9A\u6709\u52B9\u6027\u3092\u691C\u8A3C DS-Embedded_TableData=\u7D44\u307F\u8FBC\u307F\u30C7\u30FC\u30BF\u30BB\u30C3\u30C8 FR-Designer_No-Privilege=\u6A29\u9650\u306A\u3057 @@ -663,20 +662,20 @@ Email-Can_Preview_Report_Content=\u5E33\u7968\u306E\u5185\u5BB9\u3092\u30D7\u30E FR-Designer-FRFont_Italic=\u659C\u4F53 CellWrite-Print_Background=\u30BB\u30EB\u80CC\u666F Wizard=\u30AC\u30A4\u30C9 -Preference-Is_Drag_Permited=\u30C9\u30E9\u30C3\u30B0\u3092\u30B5\u30DD\u30FC\u30C8\u3059\u308B +Preference-Is_Drag_Permited=\u30C9\u30E9\u30C3\u30B0\uFF06\u30C9\u30ED\u30C3\u30D7\u3092\u30B5\u30DD\u30FC\u30C8 FR-Designer_Release_Lock=\u30A2\u30F3\u30ED\u30C3\u30AF -Form-Delimiter=\u533A\u5207\u308A\u7B26 -wrong=\u30A8\u30E9\u30FC\u304C\u51FA\u307E\u3057\u305F +Form-Delimiter=\u533A\u5207\u308A\u6587\u5B57 +wrong=\u30A8\u30E9\u30FC\u767A\u751F FR-Menu-Server_Chart_PreStyle=\u30B0\u30E9\u30D5\u4E8B\u524D\u5B9A\u7FA9\u914D\u8272 Form-Button=\u30DC\u30BF\u30F3 -FormulaD-Valid_Formula=\u6709\u52B9\u306A\u6570\u5F0F +FormulaD-Valid_Formula=\u6709\u52B9\u306A\u6570\u5F0F\u3067\u3059 ParameterD-Parameter_Interface=\u30D1\u30E9\u30E1\u30FC\u30BF\u30D1\u30CD\u30EB At_least_one_visual_worksheet=\u30B7\u30FC\u30C8\u3092\u3059\u3079\u3066\u524A\u9664\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093\u3002\u524A\u9664\u524D\u306B\u3001\u30B7\u30FC\u30C8\u3092\u8FFD\u52A0\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002 Need_Min_Value=\u6700\u5C0F\u5024\u5FC5\u8981 Allow_Blank=\u7A7A\u6B04\u3092\u8A31\u53EF CellWrite-InsertRow_DEFAULT=\u30C7\u30D5\u30A9\u30EB\u30C8\u5024 Widget-Load_By_Complete=\u5B8C\u5168\u30ED\u30FC\u30C9 -FR-Designer-Basic_Only_Submit_Current_Sheet=\u3053\u306E\u30B7\u30FC\u30C8\u306E\u307F\u3092\u63D0\u51FA\u3059\u308B +FR-Designer-Basic_Only_Submit_Current_Sheet= Sort-Sort_Order=\u4E26\u3073\u66FF\u3048 File-File_Size_Limit=\u30D5\u30A1\u30A4\u30EB\u30B5\u30A4\u30BA\u306E\u5236\u9650 PrintP-Print=\u5370\u5237(T) @@ -689,7 +688,7 @@ FR-Designer_Plugin_Normal_Update_From_Local=\u30ED\u30FC\u30AB\u30EB\u30D5\u30A1 BackgroundTexture-Canvas=\u30AD\u30E3\u30F3\u30D0\u30B9 BarOutSide=\u68D2\u306E\u5916\u5074 Preview_ToolTips=\u30D7\u30EC\u30D3\u30E5\u30FC\u30D2\u30F3\u30C8 -FRFont-Family=\u540D\u79F0 +FRFont-Family=\u540D\u524D FR-Lic_does_not_Support_Remote=\u304A\u4F7F\u3044\u306Elic\u306F\u30EA\u30E2\u30FC\u30C8\u958B\u767A\u6A5F\u80FD\u3092\u30B5\u30DD\u30FC\u30C8\u3057\u3066\u3044\u307E\u305B\u3093\u3001\u3054\u5229\u7528\u306B\u306FLIC\u3092\u30A2\u30C3\u30D7\u30B0\u30EC\u30FC\u30C9\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059 InterfaceStyle=\u30B9\u30BF\u30A4\u30EB RWA-Key=\u4E3B\u30AD\u30FC @@ -721,24 +720,24 @@ M_Format_A-Cell_Attributes=\u305D\u306E\u4ED6\u306E\u5C5E\u6027 CellWrite-Show_As_Image=\u753B\u50CF\u3067\u5185\u5BB9\u3092\u8868\u793A ShowAsDownload=\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9\u30EA\u30F3\u30AF\u3067\u30D0\u30A4\u30CA\u30EA\u30B3\u30F3\u30C6\u30F3\u30C4\u3092\u8868\u793A Form-ComboCheckBox=\u30D7\u30EB\u30C0\u30A6\u30F3\u30C1\u30A7\u30C3\u30AF\u30DC\u30C3\u30AF\u30B9 -BackgroundTexture-WovenMat=\u7E54\u7269 -BindColumn-Custom_Data_Appearance=\u30AB\u30B9\u30BF\u30DE\u30A4\u30BA\u8868\u793A +BackgroundTexture-WovenMat=\u9EBB +BindColumn-Custom_Data_Appearance=\u30AB\u30B9\u30BF\u30E0\u8868\u793A Actived=\u30A2\u30AF\u30C6\u30A3\u30D6 Env-Local_Directory=\u30ED\u30FC\u30AB\u30EB\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA Form-Colon=\u30B3\u30ED\u30F3 Preference-Vertical_Scroll_Bar_Visible=\u5782\u76F4\u30B9\u30AF\u30ED\u30FC\u30EB\u30D0\u30FC\u3092\u8868\u793A -Utils-Show_Cell_Value=\u30BB\u30EB\u5024\u3092\u8868\u793A +Utils-Show_Cell_Value=\u30BB\u30EB\u5024\u8868\u793A FR-Designer_ReportColumns-Repeat_Row=\u884C\u306E\u9806\u5E8F\u3092\u30B3\u30D4\u30FC SpecifiedG-Specified_Group=\u30AB\u30B9\u30BF\u30E0\u30B0\u30EB\u30FC\u30D7\u5206\u3051 RWA-Smart_Add_Cells=\u30BB\u30EB\u81EA\u52D5\u8FFD\u52A0 HF-Left_Section=\u5DE6\u30A8\u30EA\u30A2 M_Report-Report_Background=\u7528\u7D19\u80CC\u666F Image-Extend=\u62E1\u5927\u8868\u793A -FS_BI=\u610F\u601D\u6C7A\u5B9A\u30B7\u30B9\u30C6\u30E0 +FS_BI=\u610F\u601D\u6C7A\u5B9A\u30D7\u30E9\u30C3\u30C8\u30D5\u30A9\u30FC\u30E0 ToolBar_Bottom=\u4E0B\u90E8\u306E\u30C4\u30FC\u30EB\u30D0\u30FC -Hgap=\u6C34\u5E73\u9593\u9694 -FR-Designer_Enter-New-FileName=\u65B0\u3057\u3044\u30D5\u30A1\u30A4\u30EB\u540D\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044 -Verify_Fail=\u691C\u8A3C\u306B\u5931\u6557\u3057\u307E\u3057\u305F +Hgap=\u6C34\u5E73\u9699\u9593 +FR-Designer_Enter-New-FileName=\u540D\u524D +Verify_Fail=\u691C\u8A3C\u5931\u6557 CellWrite-InsertRow_Policy=\u884C\u633F\u5165\u30DD\u30EA\u30B7\u30FC FR-Designer-Plugin_Illegal_Plugin_Zip=\u5408\u6CD5\u306E\u30D7\u30E9\u30B0\u30A4\u30F3\u30D1\u30C3\u30B1\u30FC\u30B8\u3067\u306F\u306A\u3044 RCodeVersion=\u30D0\u30FC\u30B8\u30E7\u30F3 @@ -748,180 +747,180 @@ FR-Designer-Widget-Style_Preview=\u30D7\u30EC\u30D3\u30E5\u30FC mobile_number=\u643A\u5E2F\u756A\u53F7 FR-Designer_Form-ComboCheckBox=\u30D7\u30EB\u30C0\u30A6\u30F3\u30C1\u30A7\u30C3\u30AF\u30DC\u30C3\u30AF\u30B9 CacheValidateTime=\u5E33\u7968\u30AD\u30E3\u30C3\u30B7\u30E5\u306E\u6709\u52B9\u6642\u9593 -Hyperlink-Extends_Report_Parameters=\u5E33\u7968\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC\u3092\u7D99\u627F\u3059\u308B +Hyperlink-Extends_Report_Parameters=\u5E33\u7968\u306E\u30D1\u30E9\u30E1\u30FC\u30BF\u3092\u7D99\u627F FR-Designer_Values-Editor=\u5024\u30A8\u30C7\u30A3\u30BF Export-Excel=Excel -Utils-Left_to_Right=\u5DE6\u304B\u3089\u53F3\u3078 -ExpandD-Vertical_Extendable=\u7E26\u5E83\u304C\u308B -Utils-Report_Runtime_Env=\u5E33\u7968\u4F5C\u696D\u76EE\u6B21 -Utils-Right_to_Left=\u53F3\u304B\u3089\u5DE6\u3078 -Utils-Beyond_the_top_side_of_Border=\u4E0A\u30DC\u30FC\u30C0\u30FC\u8D85\u3048 +Utils-Left_to_Right=\u6A2A\u65B9\u5411 +ExpandD-Vertical_Extendable=\u7E26\u5C55\u958B +Utils-Report_Runtime_Env=\u5E33\u7968\u4F5C\u696D\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA +Utils-Right_to_Left=\u53F3\u304B\u3089\u5DE6 +Utils-Beyond_the_top_side_of_Border=\u4E0A\u306E\u5883\u754C\u3092\u8D85\u904E\u3057\u3066\u3044\u307E\u3059\u3002\u914D\u7F6E\u3067\u304D\u307E\u305B\u3093\u3002 Exception_StackTrace=\u30A8\u30E9\u30FC\u7570\u5E38\u30B9\u30BF\u30C3\u30AF\u60C5\u5831 -Corresponding_Fields=\u5BFE\u5FDC\u3059\u308B\u30D5\u30A3\u30FC\u30EB\u30C9 -Form-CheckBox=\u30D5\u30EC\u30FC\u30E0\u3092\u8907\u6570\u9078\u629E -Utils-Current_Row=\u30AB\u30EC\u30F3\u30C8\u884C -BuildIn=\u5185\u8535 -BindColumn-Results_Filter=\u7D50\u679C\u30BB\u30C3\u30C8\u306E\u30D5\u30A3\u30EB\u30BF +Corresponding_Fields=\u5BFE\u5FDC\u30D5\u30A3\u30FC\u30EB\u30C9 +Form-CheckBox=\u30C1\u30A7\u30C3\u30AF\u30DC\u30C3\u30AF\u30B9 +Utils-Current_Row=\u73FE\u5728\u306E\u884C +BuildIn=\u7D44\u307F\u8FBC\u307F +BindColumn-Results_Filter=\u7D50\u679C\u30BB\u30C3\u30C8\u30D5\u30A3\u30EB\u30BF FR-Designer-Plugin_Manager=\u30D7\u30E9\u30B0\u30A4\u30F3\u7BA1\u7406 -M_File-Export-CSV=CSV\u66F8\u5F0F(\u30B3\u30F3\u30DE\u3067\u5206\u5272) -Data_Filter=\u30C7\u30FC\u30BF\u9078\u5225 -ReportServerP-Edit_Printer=\u30D7\u30EA\u30F3\u30BF\u30FC\u7DE8\u96C6 -FR-Designer_Datasource-Stored_Procedure=\u30B9\u30C8\u30A2\u30C9 \u30D7\u30ED\u30B7\u30FC\u30B8\u30E3 +M_File-Export-CSV=CSV(\u30AB\u30F3\u30DE\u533A\u5207\u308A) +Data_Filter=\u30C7\u30FC\u30BF\u30D5\u30A3\u30EB\u30BF +ReportServerP-Edit_Printer=\u30D7\u30EA\u30F3\u30BF\u7DE8\u96C6 +FR-Designer_Datasource-Stored_Procedure=\u30D7\u30ED\u30B7\u30FC\u30B8\u30E3 RESTART=\u518D\u8D77\u52D5 FormulaD-Function_name=\u95A2\u6570\u540D -ChooseOneButton=\u30B3\u30F3\u30C8\u30ED\u30FC\u30EB\u3092\u4E00\u3064\u9078\u629E\u3057\u3066\u304B\u3089\u8FFD\u52A0\u3057\u3066\u304F\u3060\u3055\u3044 +ChooseOneButton=\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u3092\u4E00\u3064\u9078\u629E\u3057\u3066\u304B\u3089\u8FFD\u52A0\u3057\u3066\u304F\u3060\u3055\u3044 Priority=\u512A\u5148\u30E9\u30F3\u30AF Datasource-Datasource=\u30C7\u30FC\u30BF\u30BD\u30FC\u30B9 -FR-Designer_Width=\u5E83\u3055 -Cannot-Add_To_This_Area=\u5730\u57DF\u306B\u306F\u8FFD\u52A0\u3067\u304D\u307E\u305B\u3093 -Run=\u904B\u884C -Set_Submit_Condition=\u6761\u4EF6\u3092\u8A2D\u7F6E\u306B\u63D0\u51FA\u3059\u308B\u3053\u3068\u306B\u3057\u305F +FR-Designer_Width=\u5E45 +Cannot-Add_To_This_Area=\u5F53\u8A72\u30A8\u30EA\u30A2\u306B\u8FFD\u52A0\u3067\u304D\u307E\u305B\u3093 +Run=\u5B9F\u884C +Set_Submit_Condition=\u66F8\u304D\u8FBC\u307F\u6761\u4EF6\u8A2D\u5B9A FR-Base_Value=\u5024 -fileLocked_undeleted=\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u304C\u30ED\u30C3\u30AF\u3055\u308C\u3066\u3044\u308B\u3001\u3042\u306A\u305F\u304C\u524A\u9664\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093\uFF01 -Web_Apply=WEB\u30A2\u30D7\u30EA\u30B1\u30FC\u30B7\u30E7\u30F3 -Refresh_Database=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u5237\u65B0 -Set_Row_Title_End=\u91CD\u8907\u3059\u308B\u7D42\u4E86\u884C\u3092\u8A2D\u5B9A -FR-Utils-New_Folder=\u30D5\u30A1\u30A4\u30EB\u65B0\u898F\u4F5C\u6210 -BiasD-From-upper_left_to_lower_right=\u5DE6\u4E0A\u5074\u304B\u3089\u53F3\u4E0B\u5074\u3078\u5E83\u304C\u308B -CapsLock=Caps Lock\u30AD\u30FC\u304C\u30AA\u30F3\u306B\u306A\u3063\u3066\u3044\u308B -StyleFormat-Sample=\u4F8B -RWA-Smart_Add_Cell_Group=\u30A4\u30F3\u30C6\u30EA\u30B8\u30A7\u30F3\u30C8\u6DFB\u52A0\u30EC\u30A4\u30E4\u30FC\u7D44 +fileLocked_undeleted=\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u304C\u30ED\u30C3\u30AF\u3055\u308C\u3066\u3044\u308B\u305F\u3081\u524A\u9664\u3067\u304D\u307E\u305B\u3093\u3002OK\u3092\u30AF\u30EA\u30C3\u30AF\u3057\u3001\u30EA\u30B9\u30C8\u3092\u518D\u8AAD\u307F\u8FBC\u307F\u3057\u3066\u304F\u3060\u3055\u3044\u3002 +Web_Apply=WEB\u30A2\u30D7\u30EA +Refresh_Database=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u66F4\u65B0 +Set_Row_Title_End=\u7E70\u308A\u8FD4\u3057\u7D42\u4E86\u884C\u8A2D\u5B9A +FR-Utils-New_Folder=\u65B0\u898F\u30D5\u30A9\u30EB\u30C0\u306E\u4F5C\u6210 +BiasD-From-upper_left_to_lower_right=\u5DE6\u4E0A\u5074\u304B\u3089\u53F3\u4E0B\u5074\u3078 +CapsLock=Caps Lock\u304C\u30AA\u30F3\u306B\u306A\u3063\u3066\u3044\u308B +StyleFormat-Sample=\u30B5\u30F3\u30D7\u30EB +RWA-Smart_Add_Cell_Group=\u30BB\u30EB\u30B0\u30EB\u30FC\u30D7\u81EA\u52D5\u8FFD\u52A0 MConfig-CancelButton=\u30AD\u30E3\u30F3\u30BB\u30EB -Function-Choose_Function_Class=\u95A2\u6570\u30AF\u30E9\u30B9\u3092\u9078\u629E\u3059\u308B -LatLng=\u5EA7\u6A19 +Function-Choose_Function_Class=\u95A2\u6570\u30AF\u30E9\u30B9\u9078\u629E +LatLng=\u7D4C\u5EA6\u7DEF\u5EA6 DS-Server_TableData=\u30B5\u30FC\u30D0\u30C7\u30FC\u30BF\u30BB\u30C3\u30C8 -BackgroundTexture-GreenMarble=\u7DD1\u8272\u306E\u5927\u7406\u77F3 -read_time_out=\u30ED\u30FC\u30C9\u306E\u30BF\u30A4\u30E0\u30A2\u30A6\u30C8 -JavaScript-Commit_to_Database=\u5165\u5EAB\u63D0\u51FA -DS-Relation_TableData=\u30C7\u30FC\u30BF\u30BB\u30C3\u30C8\u95A2\u9023\u4ED8\u3051 -CellWrite-Page_Before_Row=\u884C\u524D\u306E\u6539\u9801 -FR-Designer-Plugin_Load_Plugins_From_Server=\u30D7\u30E9\u30B0\u30A4\u30F3\u30DE\u30FC\u30B1\u30C3\u30C8\u304B\u3089\u30C7\u30FC\u30BF\u53D6\u5F97\u4E2D -D-Dispaly_Divide_Result_Set_into_Groups=resultset\u306E\u30B0\u30EB\u30FC\u30D7\u5206\u3051 -Closed=\u9589\u9396\u6E08\u307F -RWA-Help=\u8A2D\u7F6E\u5F8C\u306E\u6539\u6B63\u3092\u66F4\u65B0\u3057\u306A\u3044\u3068\u3001\u7533\u544A\u30D7\u30EC\u30D3\u30E5\u30FC\u30EC\u30DD\u30FC\u30C8\u306B\u8A18\u9332\u3055\u308C\u3066\u3044\u306A\u3044\u6240\u5728\u30EC\u30A4\u30E4 -FR-Designer-Widget-Style_Custom= -FR-Designer-Widget-Style_Render_Style=\u307C\u304B\u3057\u30B9\u30BF\u30A4\u30EB +BackgroundTexture-GreenMarble=\u5927\u7406\u77F3(\u7DD1) +read_time_out=\u30ED\u30FC\u30C9\u30BF\u30A4\u30E0\u30A2\u30A6\u30C8 +JavaScript-Commit_to_Database=DB\u306B\u66F8\u304D\u8FBC\u307F +DS-Relation_TableData=\u95A2\u9023\u30C7\u30FC\u30BF\u30BB\u30C3\u30C8 +CellWrite-Page_Before_Row=\u884C\u524D +FR-Designer-Plugin_Load_Plugins_From_Server=\u30D7\u30E9\u30B0\u30A4\u30F3\u30B9\u30C8\u30A2\u304B\u3089\u30C7\u30FC\u30BF\u53D6\u5F97\u4E2D +D-Dispaly_Divide_Result_Set_into_Groups=\u7D50\u679C\u30BB\u30C3\u30C8\u3092\u30B0\u30EB\u30FC\u30D7\u5206\u3051 +Closed=\u9589\u3058\u307E\u3057\u305F +RWA-Help=\u672A\u5909\u66F4\u3067\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8\u3057\u306A\u3044\u3053\u3068\u304C\u8A2D\u5B9A\u3055\u308C\u308B\u3068\u3001\u5E33\u7968\u306E\u4F5C\u6210\u3068\u30D7\u30EC\u30D3\u30E5\u30FC\u3092\u3059\u308B\u6642\u306B\u3001\u8A18\u9332\u5185\u5BB9\u306E\u30BB\u30EB\u306F\u7DE8\u96C6\u3084\u5909\u66F4\u3055\u308C\u306A\u3044\u306E\u3067\u3001\u3053\u306E\u8A18\u9332\u306F\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8\u3055\u308C\u306A\u3044\u3002\n\u30D3\u30C3\u30B0\u30C7\u30FC\u30BF\u91CF\u306E\u691C\u7D22\u304A\u3088\u3073\u57CB\u3081\u623B\u3057\u306E\u5834\u5408\u3001\u3053\u306E\u8A2D\u5B9A\u3092\u6709\u52B9\u306B\u3059\u308C\u3070\u3001\u4F5C\u6210\u3068\u66F8\u304D\u8FBC\u307F\u306E\u6A5F\u80FD\u3092\u9AD8\u3081\u308B\u3053\u3068\u304C\u3067\u304D\u308B\u3002 +FR-Designer-Widget-Style_Custom=\u30AB\u30B9\u30BF\u30E0 +FR-Designer-Widget-Style_Render_Style=\u30EC\u30F3\u30C0\u30EA\u30F3\u30B0\u30B9\u30BF\u30A4\u30EB Highlight-Barcode=\u30D0\u30FC\u30B3\u30FC\u30C9 -FR-Designer_Connect_SQL_Cannot_Null=\u30C7\u30FC\u30BF\u63A5\u7D9A\u3068SQL\u30D1\u30CD\u30EB\u306F\u7A7A\u306B\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093 -trigger=\u6A19\u984C +FR-Designer_Connect_SQL_Cannot_Null=\u30C7\u30FC\u30BF\u63A5\u7D9A\u3068SQL\u30D1\u30CD\u30EB\u306F\u7A7A\u306B\u3067\u304D\u307E\u305B\u3093 +trigger=\u89E6\u767A M-Data_Analysis=\u30C7\u30FC\u30BF\u5206\u6790 -Function-The_selected_file_cannot_be_null=\u9078\u629E\u3055\u308C\u305F\u30D5\u30A1\u30A4\u30EB\u306F\u7A7A\u5024\u306B\u306A\u3063\u3066\u306F\u3044\u3051\u307E\u305B\u3093 -No-Privilege=\u30A2\u30AF\u30BB\u30B9\u304C\u62D2\u5426\u3055\u308C\u307E\u3057\u305F -ReportColumns-Repeat_Column=\u5217\u756A\u53F7\u306E\u7E70\u308A\u8FD4\u3057 -SecondGraduationUnit=\u4E8C\u6B21\u7684\u76EE\u76DB\u308A\u5358\u4F4D +Function-The_selected_file_cannot_be_null=\u30D5\u30A1\u30A4\u30EB\u306F\u7A7A\u306B\u3067\u304D\u307E\u305B\u3093 +No-Privilege=\u6A29\u9650\u306A\u3057 +ReportColumns-Repeat_Column=\u5217\u306E\u9806\u5E8F\u3092\u30B3\u30D4\u30FC +SecondGraduationUnit=\u88DC\u52A9\u76EE\u76DB\u5358\u4F4D Form-Widget_Property_Value=\u5C5E\u6027\u5024 GIVE-NAME=\u547D\u540D -FR-Designer_Rename=\u540D\u79F0\u306E\u5909\u66F4 -Utils-Merge_Cell=\u30BB\u30EB\u3092\u7D50\u5408\u3059\u308B -Style-Spacing_After=\u6BB5\u5F8C +FR-Designer_Rename=\u540D\u524D\u3092\u5909\u66F4 +Utils-Merge_Cell=\u30BB\u30EB\u7D50\u5408 +Style-Spacing_After=\u6BB5\u843D\u5F8C Enlarge_Or_Reduce=\u30BA\u30FC\u30E0 Tree-Height=\u9AD8\u3055 -RCodeErrorCorrect=\u30A8\u30E9\u30FC\u8A02\u6B63 +RCodeErrorCorrect=\u8AA4\u308A\u8A02\u6B63\u80FD\u529B Enter-New-FileName=\u65B0\u3057\u3044\u30D5\u30A1\u30A4\u30EB\u540D\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044 -try_resending=\u30C8\u30EA\u30AC\u30FC\u3055\u308C\u308B -M-Open_Report=\u3092\u958B\u304F... -Please_Select=\u9078\u629E\u3057\u3066\u304F\u3060\u3055\u3044 +try_resending=\u518D\u9001\u4FE1\u3092\u8A66\u3057\u3066\u4E0B\u3055\u3044 +M-Open_Report=\u958B\u304F +Please_Select=\u9078\u629E\u3057\u3066\u4E0B\u3055\u3044 InRow=\u884C(R) -Form-TextArea=\u6587\u66F8\u57DF -FR-Designer_Https_Enable=https\u4F7F\u7528\u958B\u59CB -Widget-Custom_Widget_Config=\u30AB\u30B9\u30BF\u30DE\u30A4\u30BA\u30B3\u30F3\u30C8\u30ED\u30FC\u30EB -already_exists=\u3053\u3053\u306F\u3059\u3067\u306B\u5B58\u5728\u3057\u3066\u3044\u307E\u3059 -Original_Marked_Filed=\u521D\u671F\u30BF\u30B0\u30D5\u30A3\u30FC\u30EB\u30C9 -BackgroundTexture-Sand=\u7802\u6D5C +Form-TextArea=\u30C6\u30AD\u30B9\u30C8\u30A8\u30EA\u30A2 +FR-Designer_Https_Enable=HTTPS\u3092\u6709\u52B9\u306B\u3059\u308B +Widget-Custom_Widget_Config=\u30AB\u30B9\u30BF\u30E0\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8 +already_exists=\u3059\u3067\u306B\u5B58\u5728\u3057\u3066\u3044\u307E\u3059 +Original_Marked_Filed=\u30AA\u30EA\u30B8\u30CA\u30EB\u30BF\u30B0\u30D5\u30A3\u30FC\u30EB\u30C9 +BackgroundTexture-Sand=\u7802 Values=\u5024 -Not_use_a_cell_attribute_table_editing=\u3042\u306A\u305F\u304C\u7DE8\u96C6\u3059\u308B\u30BB\u30EB\u306E\u5C5E\u6027\u30C6\u30FC\u30D6\u30EB\u3092\u4F7F\u7528\u3059\u308B\u3053\u3068 -Root=\u30EB\u30FC\u30C8\u30CE\u30FC\u30C9 +Not_use_a_cell_attribute_table_editing=\u30BB\u30EB\u5C5E\u6027\u8868\u3067\u7DE8\u96C6\u3057\u3066\u306F\u306A\u3089\u306A\u3044 +Root=\u30EB\u30FC\u30C4\u30CE\u30FC\u30C9 cycle=\u5468\u671F -open-new-form-tip=711\u4EE5\u4E0B\u306E\u751F\u7523\u306E\u305F\u3081\u306E\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u306E\u73FE\u5728\u306E\u30D0\u30FC\u30B8\u30E7\u30F3\u306F\u3001\u4E92\u63DB\u6027\u304C\u306A\u3044\u3068 +open-new-form-tip=\u73FE\u5728\u306E\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u306F711\u4EE5\u4E0B\u306E\u30D0\u30FC\u30B8\u30E7\u30F3\u3067\u4F5C\u6210\u3055\u308C\u3066\u3044\u308B\u305F\u3081\u3001\u4E92\u63DB\u6027\u304C\u306A\u304F\u3001\u958B\u304F\u3053\u3068\u304C\u3067\u304D\u307E\u305B\u3093\u3002\u3053\u306E\u30C0\u30C3\u30B7\u30E5\u30DC\u30FC\u30C9\u3092\u7DE8\u96C6\u3059\u308B\u306B\u306F\u3001\u5BFE\u5FDC\u30D0\u30FC\u30B8\u30E7\u30F3\u306E\u30C7\u30B6\u30A4\u30CA\u30FC\u3092\u5229\u7528\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002 Support-Current_Auto_Complete_Shortcut=\u73FE\u5728\u306E\u30B7\u30E7\u30FC\u30C8\u30AB\u30C3\u30C8\u30AD\u30FC -GROUPING_MODE=\u666E\u901A\u30B0\u30EB\u30FC\u30D7\u5206\u3051 -DBCP_MAX_IDLE=\u6700\u5927\u30A2\u30A4\u30C9\u30EB\u63A5\u7D9A\u6570 -BackgroundTexture-BlueTissuePaper=\u9752\u3044\u30B5\u30F3\u30C9\u30DA\u30FC\u30D1\u30FC -ReportD-Export_Hided_Row=\u96A0\u3057\u305F\u884C\u3092\u5C0E\u51FA -FR-Custom_styles_lost=\u30AB\u30B9\u30BF\u30DE\u30A4\u30BA\u30B9\u30BF\u30A4\u30EB\u306F\u5931\u308F\u308C\u307E\u3057\u305F -Env-Des2=Servlet\u306E\u4F4D\u7F6E\u306F\u30DB\u30B9\u30C8\u30B3\u30F3\u30D4\u30E5\u30FC\u30BF\u540D\u3001\u30A4\u30F3\u30BF\u30FC\u30D5\u30A7\u30A4\u30B9\u3001WEB\u30A2\u30D7\u30EA\u30B1\u30FC\u30B7\u30E7\u30F3\u3001 -Env-Des1=\u5E33\u7968\u30B5\u30FC\u30D0\u304C\u3042\u308BWEB-INF\u76EE\u6B21\u3092\u9078\u629E\u3057\u3066\u304F\u3060\u3055\u3044 -PageSetup-Placement_Center_on_Page=\u4E2D\u592E\u63C3\u3048 -sure_to_delete=\u524A\u9664\u3092\u78BA\u8A8D\u3057\u307E\u3059 -Already_exists_not_add_repeat=\u3059\u3067\u306B\u5B58\u5728\u3057\u3066\u3044\u308B\u3001\u30EA\u30D4\u30FC\u30C8\u3092\u8FFD\u52A0\u3057\u306A\u3044\u3067\u304F\u3060\u3055\u3044 -Axis_Title=\u8EF8\u306E\u8868\u984C -FR-Designer-Plugin_Install_Failed=\u30D7\u30E9\u30B0\u30A4\u30F3\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u306B\u5931\u6557\u3057\u307E\u3057\u305F +GROUPING_MODE=\u4E00\u822C\u30B0\u30EB\u30FC\u30D7\u5206\u3051 +DBCP_MAX_IDLE=\u30D7\u30FC\u30EB\u306B\u4FDD\u6301\u3059\u308B\u6700\u5927\u63A5\u7D9A\u6570 +BackgroundTexture-BlueTissuePaper=\u9752\u3044\u753B\u7528\u7D19 +ReportD-Export_Hided_Row=\u975E\u8868\u793A\u884C\u30A8\u30AF\u30B9\u30DD\u30FC\u30C8 +FR-Custom_styles_lost=\u30AB\u30B9\u30BF\u30E0\u30B9\u30BF\u30A4\u30EB\u7D1B\u5931 +Env-Des2=Servlet\u4F4D\u7F6E\u306F\u30DB\u30B9\u30C8\u540D\u3001\u30DD\u30FC\u30C8\u3001WEB\u30A2\u30D7\u30EA\u3068Servlet\u306E\u7D44\u307F\u5408\u308F\u305B\u3002Servlet\u4F4D\u7F6E\u306F\u4E00\u3064\u306EServlet\u3092\u6307\u3059\u3002\u4F8B\uFF1A"http\://localhost\:8080/WebReport/ReportServer" \u30DB\u30B9\u30C8\u540D\u3001\u30DD\u30FC\u30C8\u3001WEB\u30A2\u30D7\u30EA\u3068Servlet\u3092\u8A18\u5165\u3057\u305F\u5F8C\u3001Servlet\u4F4D\u7F6E\u306F\u81EA\u52D5\u7684\u306B\u4F5C\u6210\u3055\u308C\u308B\u3002 +Env-Des1=\u5E33\u7968\u30B5\u30FC\u30D0\u306E\u3042\u308BWEB-INF\u3092\u9078\u629E\u3057\u3066\u304F\u3060\u3055\u3044 +PageSetup-Placement_Center_on_Page=\u4E2D\u592E\u63C3\u3048\u65B9\u5F0F +sure_to_delete=\u524A\u9664\u3057\u307E\u3059\u304B +Already_exists_not_add_repeat=\u3059\u3067\u306B\u5B58\u5728\u3057\u3066\u3044\u307E\u3059 +Axis_Title=\u8EF8\u30E9\u30D9\u30EB +FR-Designer-Plugin_Install_Failed=\u30D7\u30E9\u30B0\u30A4\u30F3\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u5931\u6557 FR-Designer-Widget-Style_Frame=\u30D5\u30EC\u30FC\u30E0 -MainGraduationUnit=\u4E3B\u306A\u76EE\u76DB\u308A\u5358\u4F4D -Second_Axis=\u6B21\u5EA7\u6A19\u8EF8 +MainGraduationUnit=\u4E3B\u76EE\u76DB\u5358\u4F4D +Second_Axis=\u7B2C2\u5EA7\u6A19\u8EF8 Classifier-Ge=\u500B -MSBold=\u5FAE\u8EDF\u96C5\u9ED2 -Form-Design_Size=\u30C7\u30B6\u30A4\u30F3\u30B5\u30A4\u30BA +MSBold=\u30DE\u30A4\u30AF\u30ED\u30BD\u30D5\u30C8\u30E4\u30D8\u30A4 +Form-Design_Size=\u8A2D\u8A08\u306E\u30B5\u30A4\u30BA FR-App-Template_Save=\u4FDD\u5B58 -ExpandD-Horizontal_Extendable=\u6A2A\u5E83\u304C\u308B -RP_Authority_Edit=\u6A29\u9650\u7DE8\u96C6 -Warnning=\u30EA\u30DE\u30A4\u30F3\u30C9 -RoleName_Can_Not_Be_Null=\u5F79\u5272\u540D\u306F\u7A7A\u6B04\u306B\u3059\u308B\u3053\u3068\u304C\u3067\u304D\u305A\u3001\u91CD\u8907\u3059\u308B\u3053\u3068\u3082\u3067\u304D\u307E\u305B\u3093 -Application=\u30A2\u30D7\u30EA\u30B1\u30FC\u30B7\u30E7\u30F3 -Formula_Dictionary_Display_Examples_Html=\u5B9F\u969B\u5024\u7BC4\u56F2\u306F\ +ExpandD-Horizontal_Extendable=\u6A2A\u5C55\u958B +RP_Authority_Edit=\u6A29\u9650 +Warnning=\u6CE8\u610F +RoleName_Can_Not_Be_Null=\u5F79\u5272\u540D\u306F\u7A7A\u6B04\u306B\u3067\u304D\u307E\u305B\u3093\u3001\u307E\u305F\u3001\u91CD\u8907\u3082\u3067\u304D\u307E\u305B\u3093 +Application=\u30A2\u30D7\u30EA +Formula_Dictionary_Display_Examples_Html=Formula_Dictionary_Display_Examples_Html ECP-error_pwd=\u30D1\u30B9\u30EF\u30FC\u30C9\u30A8\u30E9\u30FC FR-Hyperlink_ChartHyperlink=\u30B0\u30E9\u30D5\u30CF\u30A4\u30D1\u30FC\u30EA\u30F3\u30AF -M_Edit-FormatBrush=\u66F8\u5F0F\u30D6\u30E9\u30B7(B) +M_Edit-FormatBrush=\u66F8\u5F0F\u30B3\u30D4\u30FC(B) Indent-Pixel=\u753B\u7D20 -FR-Designer-Widget-Style_Border_Line=\u30D5\u30EC\u30FC\u30E0\u592A\u3055 -Widget-Default_Widget_Config=\u57FA\u672C\u30B3\u30F3\u30C8\u30ED\u30FC\u30EB -Version-does-not-support=\u73FE\u5728\u4F7F\u7528\u3057\u3066\u3044\u308Blic\u306F\u9060\u9694\u30C7\u30B6\u30A4\u30F3\u6A5F\u80FD\u306B\u30B5\u30DD\u30FC\u30C8\u3057\u3066\u3044\u307E\u305B\u3093\u3002 -StyleAlignment-Right_To_Left=\u53F3\u304B\u3089\u5DE6\u3078 -Style-Spacing_Before=\u6BB5\u524D -Has_Existed=\u3059\u3067\u306B\u5B58\u5728\u3057\u3066\u3044\u307E\u3059 -FR-Designer_DisplayNothingBeforeQuery=\u30EC\u30DD\u30FC\u30C8\u304C\u8868\u793A\u3055\u308C\u307E\u305B\u3093\u524D\u306B\u5185\u5BB9\u3092\u78BA\u8A8D\u3059\u308B]\u3092\u30AF\u30EA +FR-Designer-Widget-Style_Border_Line=\u7F6B\u7DDA\u306E\u592A\u3055 +Widget-Default_Widget_Config=\u57FA\u672C\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8 +Version-does-not-support=\u304A\u4F7F\u3044\u306Elic\u306F\u30EA\u30E2\u30FC\u30C8\u958B\u767A\u6A5F\u80FD\u3092\u30B5\u30DD\u30FC\u30C8\u3057\u3066\u3044\u307E\u305B\u3093\u3001\u3054\u5229\u7528\u306B\u306FLIC\u3092\u30A2\u30C3\u30D7\u30B0\u30EC\u30FC\u30C9\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059 +StyleAlignment-Right_To_Left=\u53F3\u304B\u3089\u5DE6 +Style-Spacing_Before=\u6BB5\u843D\u524D +Has_Existed=\u65E2\u306B\u3042\u308B +FR-Designer_DisplayNothingBeforeQuery=\u30AF\u30A8\u30EA\u30AF\u30EA\u30C3\u30AF\u524D\u306B\u5E33\u7968\u5185\u5BB9\u3092\u8868\u793A\u3057\u306A\u3044 Still=\u4F9D\u7136\u3068\u3057\u3066 JS_WARNING2=\ \u4F8B\uFF1Ahttp\://localhost\:8075/WebReport/demo.js -JS_WARNING1= \u76F8\u5BFE\u7684\u5E33\u7968\u5DE5\u7A0B\u306EWebReport\u306E\u76EE\u6B21\u304C\u3001WebReport\\js\u4E0B\u306B\u5F15\u7528\u3059\u308Bjs -Connectionline=\u63A5\u7D9A\u30EF\u30A4\u30E4\u30E2\u30C7\u30EB +JS_WARNING1= +Connectionline=\u63A5\u7D9A\u30E2\u30FC\u30C9 Utils-Insert_Record=\u8A18\u9332\u633F\u5165 -Set-Parameter-Name=\u307E\u305A\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC\u540D\u3092\u8A2D\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044 -More-information=\u8A73\u7D30\u60C5\u5831 -Parameter-Boolean=\u8AD6\u7406\u578B +Set-Parameter-Name=Set-Parameter-Name +More-information=\u3055\u3089\u306B\u8A73\u3057\u3044\u60C5\u5831 +Parameter-Boolean=\u30D6\u30FC\u30EB\u578B FRFont-Strikethrough=\u53D6\u308A\u6D88\u3057\u7DDA -Server-version-tip=\u3042\u306A\u305F\u306F\u3001\u73FE\u5728\u3001\u3042\u306A\u305F\u306F\u3044\u304F\u3064\u304B\u306E\u30D7\u30ED\u30D1\u30C6\u30A3\u304C\u52B9\u679C\u7684\u306B\u4FDD\u5B58\u3059\u308B\u3053\u3068\u304C +Server-version-tip=\u4ECA\u63A5\u7D9A\u3055\u308C\u3066\u3044\u308B\u30B5\u30FC\u30D0\u306E\u30D0\u30FC\u30B8\u30E7\u30F3\u306F\u3054\u4F7F\u7528\u306E\u30C7\u30B6\u30A4\u30CA\u30FC\u306E\u30D0\u30FC\u30B8\u30E7\u30F3\u756A\u53F7\u3088\u308A\u4F4E\u3044\u306E\u3067\u3001\u5F15\u304D\u7D9A\u304D\u63A5\u7D9A\u3059\u308B\u3068\u3001\u7DE8\u96C6\u306E\u3044\u304F\u3064\u304B\u306E\u5C5E\u6027\u306F\u6709\u52B9\u7684\u306B\u4FDD\u5B58\u3067\u304D\u306A\u3044\u304B\u3082\u3057\u308C\u306A\u3044\u3002\u63A5\u7D9A\u3059\u308B\u5FC5\u8981\u304C\u3042\u308C\u3070\u3001\u304A\u4F7F\u3044\u306E\u30C7\u30B6\u30A4\u30CA\u30FC\u306E\u30D0\u30FC\u30B8\u30E7\u30F3\u306F\u30B5\u30FC\u30D0\u306E\u30D0\u30FC\u30B8\u30E7\u30F3\u3068\u30C1\u30A7\u30C3\u30AF\u3057\u3066\u304F\u3060\u3055\u3044 Form-All_Files=\u5168\u3066\u306E\u30D5\u30A1\u30A4\u30EB -DBCP_NUM_TEST_PER_EVCTION_RUN=\u30A2\u30A4\u30C9\u30EB\u63A5\u7D9A\u30EA\u30B5\u30A4\u30AF\u30EB\u691C\u67FB\u6570 +DBCP_NUM_TEST_PER_EVCTION_RUN=1\u56DE\u306E\u691C\u8A3C\u5F53\u305F\u308A\u306E\u5BFE\u8C61\u63A5\u7D9A\u6570 FR-Designer-FRFont_Family=\u540D\u524D -Device=\u8A2D\u5099 +Device=\u30C7\u30D0\u30A4\u30B9 M_Insert-Cell=\u30BB\u30EB\u8981\u7D20 -Present-Formula_Present=\u516C\u5F0F\u30D5\u30A9\u30EB\u30E0 +Present-Formula_Present=\u6570\u5F0F\u5F62\u614B FRFont-Superscript=\u4E0A\u4ED8\u304D -CellWrite-Page_Before_Column=\u5217\u524D\u306E\u6539\u9801 -Golden=\u30B4\u30FC\u30EB\u30C7\u30F3 -Preference-Support_Cell_Editor_Definition=\u30BB\u30EB\u30A8\u30C7\u30A3\u30BF\u30FC\u3092\u30B5\u30DD\u30FC\u30C8\u3059\u308B -M-Page_Preview=\u30DA\u30FC\u30B8\u5225\u30D7\u30EC\u30D3\u30E5\u30FC +CellWrite-Page_Before_Column=\u5217\u524D +Golden=\u91D1\u8272 +Preference-Support_Cell_Editor_Definition=\u30BB\u30EB\u30A8\u30C7\u30A3\u30BF\u3092\u30B5\u30DD\u30FC\u30C8 +M-Page_Preview=\u6539\u30DA\u30FC\u30B8\u30D7\u30EC\u30D3\u30E5\u30FC HJS-CC_to=CC -Tree-Select_Leaf_Only=\u8449\u30CE\u30FC\u30C9\u306B\u623B\u308B -Pointer-A-Tick-Order=\u30DD\u30A4\u30F3\u30BF\u5024\u3068\u76EE\u76DB\u308A\u5024\u306E\u6570\u91CF\u30E9\u30F3\u30AF +Tree-Select_Leaf_Only=\u30EA\u30FC\u30D5\u30CE\u30FC\u30C9\u3060\u3051\u3092\u623B\u308B +Pointer-A-Tick-Order=\u30E1\u30FC\u30BF\u30FC\u3068\u76EE\u76DB\u306E\u8868\u793A\u5358\u4F4D Pink=\u30D4\u30F3\u30AF StyleAlignment-Distibuted=\u5747\u7B49\u5272\u308A\u4ED8\u3051 Odd=\u5947\u6570 -already-saved=\u4FDD\u5B58\u3055\u308C\u3066\u3044\u308B -FR-Hyperlink_Chart_Cell=\u30B0\u30E9\u30D5\u30CF\u30A4\u30D1\u30FC\u30EA\u30F3\u30AF-\u9023\u52D5\u30BB\u30EB +already-saved=\u4FDD\u5B58\u6E08\u307F +FR-Hyperlink_Chart_Cell=\u30B0\u30E9\u30D5\u30CF\u30A4\u30D1\u30FC\u30EA\u30F3\u30AF-\u30BB\u30EB\u9023\u52D5 Style-Left_Indent=\u5DE6\u30A4\u30F3\u30C7\u30F3\u30C8 -Offline=\u79BB\u7EBF +Offline=\u30AA\u30D5\u30E9\u30A4\u30F3 Form-Hierarchy_Tree_Next=\u6B21 -Needle=\u30DD\u30A4\u30F3\u30BF -GoogleMap=Google\u30DE\u30C3\u30D7 -Running=\u904B\u884C\u4E2D -M_Edit-Unmerge_Cell=\u30BB\u30EB\u3092\u5206\u5272\u3059\u308B -Out_Border_Line=\u5916\u5074\u30D5\u30EC\u30FC\u30E0\u30E9\u30A4\u30F3 -Style-Spacing=\u9593\u9694\u8DDD\u96E2 -FR-Utils_Submit=\u63D0\u51FA +Needle=\u30E1\u30FC\u30BF\u30FC +GoogleMap=\u30B0\u30FC\u30B0\u30EB\u30DE\u30C3\u30D7 +Running=\u5B9F\u884C\u4E2D +M_Edit-Unmerge_Cell=\u30BB\u30EB\u7D50\u5408\u306E\u89E3\u9664 +Out_Border_Line=\u5916\u67A0 +Style-Spacing=\u9593\u9694 +FR-Utils_Submit=\u66F8\u304D\u8FBC\u307F ReportServerP-Previous=\u524D\u30DA\u30FC\u30B8 -StyleAlignment-Text_Style=\u30C6\u30AD\u30B9\u30C8\u30B9\u30BF\u30A4\u30EB +StyleAlignment-Text_Style=\u30C6\u30AD\u30B9\u30C8\u5236\u5FA1 RelatedChart=\u30B0\u30E9\u30D5\u9023\u52D5 -ProcessManager=\u30D7\u30ED\u30BB\u30B9\u7BA1\u7406 -Cancel_Repeat_Attributes=\u30EA\u30D4\u30FC\u30C8\u30E9\u30F3\u30AF\u3092\u30AD\u30E3\u30F3\u30BB\u30EB\u3059\u308B\u306B\u306F +ProcessManager=\u30D5\u30ED\u30FC\u7BA1\u7406 +Cancel_Repeat_Attributes=\u91CD\u8907\u884C\u5217\u89E3\u9664 FR-App-File_Message=\u60C5\u5831 -Datasource-Stored_Procedure=\u30B9\u30C8\u30A2\u30C9 \u30D7\u30ED\u30B7\u30FC\u30B8\u30E3 -RWA-Row_Offset=\u884C\u30AA\u30D5\u30BB\u30C3\u30C8 +Datasource-Stored_Procedure=\u30B9\u30C8\u30A2\u30C9\u30D7\u30ED\u30B7\u30FC\u30B8\u30E3 +RWA-Row_Offset=\u884C\u306E\u30AA\u30D5\u30BB\u30C3\u30C8 M_Format-Style=\u30B9\u30BF\u30A4\u30EB -detail_description=\u8A73\u7D30\u306A\u8AAC\u660E -FR-Designer-Widget-Style_Title_Content=\u6A19\u984C\u5185\u5BB9 -ParameterD-Report_Parameter=\u5E33\u7968\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC -HF-Edit_Header=\u30D8\u30C3\u30C0\u7DE8\u96C6 +detail_description=\u8A73\u7D30\u8A18\u8FF0 +FR-Designer-Widget-Style_Title_Content=\u30BF\u30A4\u30C8\u30EB\u5185\u5BB9 +ParameterD-Report_Parameter=\u5E33\u7968\u30D1\u30E9\u30E1\u30FC\u30BF +HF-Edit_Header=\u30D8\u30C3\u30C0\u30FC\u7DE8\u96C6 Sytle-FRFont=\u30D5\u30A9\u30F3\u30C8 FR-Designer_Finish_Export=\u5C0E\u51FA\u5B8C\u4E86 MultiFileUpload=\u8907\u6570\u30D5\u30A1\u30A4\u30EB\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9 @@ -929,979 +928,979 @@ HF-Page_Number=\u30DA\u30FC\u30B8\u756A\u53F7 Style-Right_Indent=\u53F3\u30A4\u30F3\u30C7\u30F3\u30C8 Desktop=\u30C7\u30B9\u30AF\u30C8\u30C3\u30D7 FR-Server-All_Error=\u30A8\u30E9\u30FC -ConditionB-Operator=\u64CD\u4F5C +ConditionB-Operator=\u6F14\u7B97\u5B50 Today=\u4ECA\u65E5 -Form-Widget_Name=\u30B3\u30F3\u30C8\u30ED\u30FC\u30EB\u540D -Covered_All=\u5168\u3066\u8986\u3046 +Form-Widget_Name=\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u540D +Covered_All=\u5168\u3066\u4E0A\u66F8\u304D Day=\u65E5 External=\u5916\u90E8 -Black_Font=\u592A\u5B57 -LOG-Report_Server_IS_Started=\u5E33\u7968\u30B5\u30FC\u30D0\u3082\u3046\u8D77\u52D5\u3055\u308C\u3066\u3044\u307E\u3059 -Tips\:You_Can_Input_B1_To_Input_The_Data_Of_The_First_Row_Second_Column=\u30D2\u30F3\u30C8\:B1\u3092\u5165\u529B -FR-Designer_ChooseOneButton=\u30B3\u30F3\u30C8\u30ED\u30FC\u30EB\u3092\u4E00\u3064\u9078\u629E\u3057\u3066\u304B\u3089\u8FFD\u52A0\u3057\u3066\u304F\u3060\u3055\u3044 -Widget-Sizing=\u5927\u304D\u3055\u8ABF\u6574 -NO_Border_Line=\u30D5\u30EC\u30FC\u30E0\u30E9\u30A4\u30F3\u7121\u3057 +Black_Font=\u9ED2\u4F53 +LOG-Report_Server_IS_Started=\u5E33\u7968\u30B5\u30FC\u30D0\u8D77\u52D5 +Tips\:You_Can_Input_B1_To_Input_The_Data_Of_The_First_Row_Second_Column=\u30D2\u30F3\u30C8\:B1\u306E\u5165\u529B\u3092\u901A\u3058\u3066\u7B2C1\u884C2\u5217\u76EE\u306E\u30C7\u30FC\u30BF\u3092\u66F8\u304D\u8FBC\u3080\u3053\u3068\u304C\u3067\u304D\u308B\u3002 +FR-Designer_ChooseOneButton=\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u3092\u9078\u629E\u3057\u3066\u8FFD\u52A0\u3057\u3066\u4E0B\u3055\u3044 +Widget-Sizing=\u30B5\u30A4\u30BA\u8ABF\u6574 +NO_Border_Line=\u67A0\u7DDA\u306A\u3057 Cell_Data=\u30BB\u30EB\u30C7\u30FC\u30BF -StyleAlignment-Vertical_Text=\u6587\u5B57\u3092\u7E26\u306B\u3059\u308B -Label=\u30BF\u30B0 +StyleAlignment-Vertical_Text=\u6587\u5B57\u7E26\u66F8\u304D +Label=\u30E9\u30D9\u30EB Orange=\u30AA\u30EC\u30F3\u30B8 -zeroMarginWarn=\u30D7\u30EA\u30F3\u30BF\u306F\u5C0F\u3055\u306A\u7F36
\u30B3\u30F3\u30C6\u30F3\u30C4\u4E0D\u8DB3\u3092\u5370\u5237\u3059\u308B\u3053\u3068\u304C\u3067\u304D\u3001\u7269\u7406\u30DE\u30FC\u30B8\u30F3 +zeroMarginWarn=\u30D7\u30EA\u30F3\u30BF\u306F\u7269\u7406\u7684\u306A\u4F59\u767D\u304C\u5FC5\u8981\u306A\u305F\u3081
\u5E33\u7968\u306E\u30DE\u30FC\u30B8\u30F3\u306E\u8A2D\u5B9A\u304C\u5C0F\u3055\u3059\u304E\u308B\u3068
\u5185\u5BB9\u306E\u5370\u5237\u304C\u4E0D\u5B8C\u5168\u306B\u306A\u308B\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059\u3002
  Widget-Date_Selector_Return_Type=\u623B\u308A\u5024\u30BF\u30A4\u30D7 -Utils-Switch_To_Template_Reportlet=\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u30CD\u30C3\u30C8\u30EF\u30FC\u30AF\u5E33\u7968\u306B\u5207\u308A\u66FF\u3048 +Utils-Switch_To_Template_Reportlet=\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u30CD\u30C3\u30C8\u5E33\u7968\u306B\u5207\u308A\u66FF\u3048\u308B satisfy=\u6761\u4EF6\u3092\u6E80\u305F\u3059 -FR-Designer_WidgetDisplyPosition=\u30B3\u30F3\u30C8\u30ED\u30FC\u30EB\u8868\u793A\u4F4D\u7F6E +FR-Designer_WidgetDisplyPosition=\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u8868\u793A\u4F4D\u7F6E FR-Base_Top=\u4E0A -FR-Designer_Form-CheckBox=\u30D5\u30EC\u30FC\u30E0\u3092\u8907\u6570\u9078\u629E -Reportlet-Parameter_Type=\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC\u4F1D\u9054\u65B9\u6CD5 -sending=\u9001\u4FE1\u4E2D... +FR-Designer_Form-CheckBox=\u30C1\u30A7\u30C3\u30AF\u30DC\u30C3\u30AF\u30B9 +Reportlet-Parameter_Type=\u30D1\u30E9\u30E1\u30FC\u30BF\u8EE2\u9001\u65B9\u5F0F +sending=\u8EE2\u9001\u4E2D\u2026 FR-Designer-FRFont_Foreground=\u8272 -FR-Import-Export_SVG=SVG\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8 +FR-Import-Export_SVG=SVG M_Edit-Clear_Contents=\u5185\u5BB9(C) Session=\u30BB\u30C3\u30B7\u30E7\u30F3 -Widget-Load_Type=\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9 -template_unsaved=\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u304C\u4FDD\u5B58\u3067\u304D\u306A\u3044 -check_communication=\u30CD\u30C3\u30C8\u30EF\u30FC\u30AF\u901A\u4FE1\u304C\u6B63\u5E38\u3067\u3042\u308A\u3001\u30B5\u30FC\u30D0\u304C\u52D5\u4F5C\u3057\u3066\u3044\u308B\u3053\u3068\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060 -List-Need_Head=\u30EA\u30B9\u30C8\u30D8\u30C3\u30C9\u304C\u5FC5\u8981\u3067\u3059 -FR-Designer-Plugin_Has_Been_Installed=\u30D7\u30E9\u30B0\u30A4\u30F3\u306F\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u3055\u308C\u3066\u3044\u307E\u3059\u3002\u30D7\u30E9\u30B0\u30A4\u30F3\u3092 -FR-Widget_Tree_And_Table=\u30B3\u30F3\u30C8\u30ED\u30FC\u30EB\u30C4\u30EA\u30FC\u3068\u30B3\u30F3\u30C8\u30ED\u30FC\u30EB\u8868 +Widget-Load_Type=\u30ED\u30FC\u30C9 +template_unsaved=\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u4FDD\u5B58\u3067\u304D\u306A\u3044 +check_communication=\u30CD\u30C3\u30C8\u30EF\u30FC\u30AF\u901A\u4FE1\u3068\u30B5\u30FC\u30D0\u72B6\u614B\u3092\u30C1\u30A7\u30C3\u30AF\u3057\u3066\u304F\u3060\u3055\u3044 +List-Need_Head=\u30EA\u30B9\u30C8\u30D8\u30C3\u30C0\u30FC\u5FC5\u8981 +FR-Designer-Plugin_Has_Been_Installed=\u30D7\u30E9\u30B0\u30A4\u30F3\u306F\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u3055\u308C\u305F\u3002\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8\u3057\u305F\u3044\u5834\u5408\u3001\u30D7\u30E9\u30B0\u30A4\u30F3\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8\u306B\u5207\u308A\u66FF\u3048\u3066\u4E0B\u3055\u3044 +FR-Widget_Tree_And_Table=\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u30C4\u30EA\u30FC\u3068\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u30EA\u30B9\u30C8 FR-Base_Help=\u30D8\u30EB\u30D7 -FR-Designer-Plugin_Update_Successful=\u30D7\u30E9\u30B0\u30A4\u30F3\u30A2\u30C3\u30D7\u30B0\u30EC\u30FC\u30C9\u306B\u6210\u529F\u3057\u307E\u3057\u305F\u3002\u30B5\u30FC\u30D0\u3092 -August=\u516B\u6708 -LOG-Is_Being_Openned=\u958B\u3044\u3066\u3044\u307E\u3059 +FR-Designer-Plugin_Update_Successful=\u30D7\u30E9\u30B0\u30A4\u30F3\u30A2\u30C3\u30D7\u30B0\u30EC\u30FC\u30C8\u7D42\u4E86\u3001\u30B5\u30FC\u30D0\u518D\u8D77\u52D5\u3067\u6709\u52B9\u306B\u3059\u308B +August=8\u6708 +LOG-Is_Being_Openned=\u8AAD\u307F\u8FBC\u307F\u4E2D BackgroundTexture-Oak=\u30AA\u30FC\u30AF Multi_nam_formula=\ \u30C7\u30FC\u30BF\u30BB\u30C3\u30C8\u540D\: \u30C7\u30FC\u30BF\u30BB\u30C3\u30C8\u6761\u4EF6\: -TurnOn=\u8D77\u52D5 -HJS-Send_Successfully=\u9001\u4FE1\u6210\u529F -Mon=\u6708 -Inner_Parameter=\u5185\u8535\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC -Required=\u8A18\u5165\u5FC5\u9808 -Summary=\u6982\u8981 -template_unopened=\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u3092\u958B\u304F\u3053\u3068\u304C\u3067\u304D\u307E\u305B\u3093 +TurnOn=\u30AA\u30F3 +HJS-Send_Successfully=\u9001\u4FE1\u5B8C\u4E86 +Mon=\u6708\u66DC\u65E5 +Inner_Parameter=\u7D44\u307F\u8FBC\u307F\u306E\u30D1\u30E9\u30E1\u30FC\u30BF +Required=\u8A18\u5165\u5FC5\u8981 +Summary=\u96C6\u8A08 +template_unopened=\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u304C\u958B\u3051\u306A\u3044 FR-Base_Bottom=\u4E0B DataFunction-Min=\u6700\u5C0F\u5024 StyleFormat-Percent=\u30D1\u30FC\u30BB\u30F3\u30C6\u30FC\u30B8 -FR-App-All_Custom=\u30AB\u30B9\u30BF\u30DE\u30A4\u30BA +FR-App-All_Custom=\u30AB\u30B9\u30BF\u30E0 M_Insert-Data_Column=\u30C7\u30FC\u30BF\u5217 -PLEASE=\u3057\u3066\u304F\u3060\u3055\u3044 -Numbers=\u6841\u6570 +PLEASE=\u3069\u3046\u305E +Numbers=\u6570 Release_Lock=\u30A2\u30F3\u30ED\u30C3\u30AF Background-Background_is_NULL=\u80CC\u666F\u306A\u3057 FR-Designer_Sytle-FRFont=\u30D5\u30A9\u30F3\u30C8 -Gradation=\u69CB\u6210 -The_current_list_is_empty=\u73FE\u5728\u306E\u30EA\u30B9\u30C8\u306F\u7A7A\u3067\u3059 -Formula_Dictionary_Display_Examples=\ \u5B9F\u969B\u5024\u7BC4\u56F2\u306F\ -Schedule-Template_Parameter=\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC -JSShow=\u52D5\u614B\u8868\u793A -Level_coordinates=\u30EC\u30D9\u30EB\u306E\u5EA7\u6A19 -MainGraduationLine=\u30E1\u30A4\u30F3\u30B9\u30B1\u30FC\u30EB\u30E9\u30A4\u30F3 -Hyperlink-Web_link=\u30A6\u30A7\u30D6\u30EA\u30F3\u30AF -StyleAlignment-between_-90_and_90=-90\u304B\u308990\u307E\u3067\u306E\u7BC4\u56F2\u3067 -FormulaD-Custom_Function=\u30E6\u30FC\u30B6\u5B9A\u7FA9\u95A2\u6570 +Gradation=\u30EC\u30D9\u30EB +The_current_list_is_empty=\u73FE\u5728\u306E\u30EA\u30B9\u30C8\u306F\u7A7A +Formula_Dictionary_Display_Examples=\u5B9F\u969B\u5024\u7BC4\u56F2\u306F \ +Schedule-Template_Parameter=\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u30D1\u30E9\u30E1\u30FC\u30BF +JSShow=\u52D5\u7684\u8868\u793A +Level_coordinates=\u30EC\u30D9\u30EB\u5EA7\u6A19 +MainGraduationLine=\u4E3B\u76EE\u76DB\u7DDA +Hyperlink-Web_link=\u30A6\u30A7\u30D6\u30DA\u30FC\u30B8\u30EA\u30F3\u30AF +StyleAlignment-between_-90_and_90=-90\uFF5E90\u306E\u7BC4\u56F2 +FormulaD-Custom_Function=\u30AB\u30B9\u30BF\u30E0\u95A2\u6570 FR-Designer_Integer=\u6574\u6570 -PageSetup-Finis_Start_Row=\u91CD\u8907\u3059\u308B\u7D42\u4E86\u884C -RWA-Remove_Field=\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u30EA\u30E0\u30FC\u30D6 -Form-Desin_Width=\u30C7\u30B6\u30A4\u30F3\u5E45 -No-tableData=\u623B\u3057\u30C7\u30FC\u30BF\u30BB\u30C3\u30C8\u304C\u3042\u308A\u307E\u305B\u3093 +PageSetup-Finis_Start_Row=\u7E70\u308A\u8FD4\u3057\u7D42\u4E86\u884C +RWA-Remove_Field=\u30D5\u30A3\u30FC\u30EB\u30C9\u524A\u9664 +Form-Desin_Width=\u8A2D\u8A08\u306E\u5E45 +No-tableData=\u30C7\u30FC\u30BF\u30BB\u30C3\u30C8\u306F\u623B\u3063\u3066\u3044\u306A\u3044 Page_Total=\u5408\u8A08 -FR-Designer-Plugin_Connect_Server_Error=\u30D7\u30E9\u30B0\u30A4\u30F3\u30DE\u30FC\u30B1\u30C3\u30C8\u306B\u63A5\u7D9A\u3067\u304D\u307E\u305B\u3093\u3002\uFF0C\u5F8C\u3067\u518D\u5EA6 -Import-Excel_Source=Excel\u30BD\u30FC\u30B9 -Utils-Left_to_Right_a=\u5DE6\u304B\u3089\u53F3\u3078 -ExpandD-Expand_Attribute=\u5C5E\u6027\u3092\u62E1\u5F35\u3059\u308B -Report-Write_Attributes=\u5E33\u7968\u8A18\u5165\u5C5E\u6027 -Utils-Current_Column=\u30AB\u30EC\u30F3\u30C8\u5217 -Need_Max_Value=\u6700\u5927\u5024\u304C\u5FC5\u8981 -Report_Not_Exist=\u9078\u629E\u3057\u305F\u5E33\u7968\u306F\u5B58\u5728\u3057\u307E\u305B\u3093\uFF01 -HF-Insert_Content=\u30B3\u30F3\u30C6\u30F3\u30C4\u3092\u633F\u5165 +FR-Designer-Plugin_Connect_Server_Error=\u30D7\u30E9\u30B0\u30A4\u30F3\u30B9\u30C8\u30A2\u63A5\u7D9A\u5931\u6557\u3001\u5F8C\u3067\u518D\u8A66\u884C\u3057\u3066\u4E0B\u3055\u3044 +Import-Excel_Source=Excel\u30BD\u30FC\u30B9\u30D5\u30A1\u30A4\u30EB +Utils-Left_to_Right_a=\u5DE6\u304B\u3089\u53F3 +ExpandD-Expand_Attribute=\u5C55\u958B\u5C5E\u6027 +Report-Write_Attributes=\u5E33\u7968\u66F8\u304D\u8FBC\u307F\u30D7\u30ED\u30D1\u30C6\u30A3 +Utils-Current_Column=\u73FE\u5728\u306E\u5217 +Need_Max_Value=\u6700\u5927\u5024\u5FC5\u8981 +Report_Not_Exist=\u9078\u629E\u3055\u308C\u305F\u5E33\u7968\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093 +HF-Insert_Content=\u5185\u5BB9 UpParent=\u4E0A\u89AA\u30BB\u30EB PageSetup-Page=\u30DA\u30FC\u30B8 -Utils-Move_Up=\u4E0A\u3078\u79FB\u52D5 -BackgroundTexture-PurpleMesh=\u7D2B\u8272\u306E\u30E1\u30C3\u30B7\u30E5 -Export-Word=Word\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8 -ServerM-Widget_Manager=\u30B3\u30F3\u30C8\u30ED\u30FC\u30EB\u7BA1\u7406 -FR-Designer-Basic_Activation_Key=\u30C7\u30B6\u30A4\u30CA\u30FC\u6574\u7406\u756A\u53F7\uFF1A -FR-App-Template_Report_Not_Exist=\u9078\u629E\u3057\u305F\u5E33\u7968\u306F\u5B58\u5728\u3057\u307E\u305B\u3093\! +Utils-Move_Up=\u4E0A\u3078 +BackgroundTexture-PurpleMesh=\u7D2B\u306E\u30E1\u30C3\u30B7\u30E5 +Export-Word=Word +ServerM-Widget_Manager=\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u7BA1\u7406 +FR-Designer-Basic_Activation_Key=\u30C7\u30B6\u30A4\u30CA\u30FC\u756A\u53F7\uFF1A +FR-App-Template_Report_Not_Exist=\u9078\u629E\u3057\u305F\u5E33\u7968\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\! Protected=\u4FDD\u8B77 -Skip=\u30B9\u30AD\u30C3\u30D7 -FR-Designer_PageSetup-Vertically=\u5782\u76F4\u4E2D\u592E\u63C3\u3048 -revert=\u3084\u308A\u76F4\u3059 -PageSetup-Predefined=\u30D7\u30EC\u5B9A\u7FA9 +Skip=\u30B8\u30E3\u30F3\u30D7 +FR-Designer_PageSetup-Vertically=\u4E0A\u4E0B\u4E2D\u592E\u63C3\u3048 +revert=\u5143\u306B\u623B\u3059 +PageSetup-Predefined=\u4E8B\u524D\u5B9A\u7FA9 Border-Style-Radius=\u89D2\u4E38 IntPart=\u6574\u6570\u90E8\u5206 -ExpandD-Data_Column=\u30C7\u30FC\u30BF\u30B3\u30E9\u30E0 +ExpandD-Data_Column=\u30C7\u30FC\u30BF\u5217 Sort-Ascending=\u6607\u9806 FR-Designer-Widget_Style=\u30B9\u30BF\u30A4\u30EB -parameter_name_exist=\u30D1\u30E9\u30E1\u30FC\u30BF\u540D\u306F\u65E2\u306B\u5B58\u5728\u3057\u3066\u3044\u307E\u3059 -FR-Designer_Layer-Build=\u30D5\u30A1\u30BB\u30C3\u30C8\u7D44\u307F\u7ACB\u3066 -Please_Rename=\u518D\u5EA6\u547D\u540D\u3057\u3066\u304F\u3060\u3055\u3044 -Form-Editing_Listeners=\u30A4\u30D9\u30F3\u30C8\u7DE8\u96C6 -RWA-Smart_Add_Fields=\u30A4\u30F3\u30C6\u30EA\u30B8\u30A7\u30F3\u30C8\u8FFD\u52A0\u30D5\u30A3\u30FC\u30EB\u30C9 +parameter_name_exist=\u6307\u5B9A\u30D1\u30E9\u30E1\u30FC\u30BF\u540D\u306F\u5229\u7528\u3055\u308C\u3066\u3044\u307E\u3059 +FR-Designer_Layer-Build=\u4E00\u822C\u30EC\u30A4\u30E4\u30FC\u5225\u69CB\u7BC9 +Please_Rename=\u540D\u524D\u3092\u5909\u66F4\u3057\u3066\u4E0B\u3055\u3044 +Form-Editing_Listeners=\u30A4\u30D9\u30F3\u30C8\u3092\u7DE8\u96C6 +RWA-Smart_Add_Fields=\u30D5\u30A3\u30FC\u30EB\u30C9\u81EA\u52D5\u8FFD\u52A0 FR-Designer-Tree_Width=\u5E45 Record=\u8A18\u9332 -Poly-Report_Component=\u805A\u5408\u5E33\u7968\u30A2\u30BB\u30F3\u30D6\u30EA +Poly-Report_Component=\u30D6\u30ED\u30C3\u30AF\u5E33\u7968\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8 Options=\u30AA\u30D7\u30B7\u30E7\u30F3 -NS-war-remote=\u30A8\u30E9\u30FC\u30B3\u30FC\u30C9\:1117 \u5727\u7E2E\u914D\u7F6E\u306F\u9060\u9694\u30C7\u30B6\u30A4\u30F3\u306B\u30B5\u30DD\u30FC\u30C8\u3057\u3066\u3044\u307E\u305B\u3093 +NS-war-remote=\u30A8\u30E9\u30FC\u30B3\u30FC\u30C9\:1117 \u30EA\u30E2\u30FC\u30C8\u958B\u767A\u3067\u306F\u3001\u5727\u7E2E\u5C55\u958B\u306F\u30B5\u30DD\u30FC\u30C8\u3057\u3066\u3044\u307E\u305B\u3093 Sche-Minute=\u5206 -Three_Rows_Of_Three_Grid=3\u4E57\u306E3\u3064\u306E\u884C -WorkSheet=\u30EF\u30FC\u30AF\u30B7\u30FC\u30C8 -FR-Designer-Widget_Size=\u5927\u304D\u3055\u30B3\u30F3\u30C8\u30ED\u30FC\u30EB -BindColumn-Select=\u30EA\u30B9\u30C8 +Three_Rows_Of_Three_Grid=3\u884C3\u5217\u306E\u30B0\u30EA\u30C3\u30C9 +WorkSheet=\u30D5\u30EA\u30FC\u5E33\u7968 +FR-Designer-Widget_Size=\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u30B5\u30A4\u30BA +BindColumn-Select=\u4E00\u89A7 FR-Widget_Mobile_Terminal=\u30E2\u30D0\u30A4\u30EB\u7AEF\u672B -FR-Background_Image_Titled=\u5C55\u958B -SetPrinterOffset=\u5B89\u3044\u30D7\u30EA\u30F3\u30BF -FR-Designer-Plugin_Installed=\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u6E08\u307F +FR-Background_Image_Titled=\u4E26\u3079\u3066\u8868\u793A +SetPrinterOffset=\u5370\u5237\u306E\u30AA\u30D5\u30BB\u30C3\u30C8 +FR-Designer-Plugin_Installed=\u3059\u3067\u306B\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB FR-Designer-Hyperlink_Name=\u540D\u524D -FR-Designer_Form-Button=\u30DC\u30BF\u30F3 +FR-Designer_Form-Button=\u62BC\u3057\u30DC\u30BF\u30F3 Black=\u30D6\u30E9\u30C3\u30AF -FR-Designer-Widget-Style_Border_Color=\u30D5\u30EC\u30FC\u30E0\u8272 -Set_Submit_Event=\u63D0\u51FA\u30A4\u30D9\u30F3\u30C8\u3092\u8A2D\u5B9A -PDF-Print_isPopup=\u8A2D\u5B9A\u30A6\u30A3\u30F3\u30C9\u30A6\u3092\u30DD\u30C3\u30D7\u30A2\u30C3\u30D7\u3059\u308B\u304B\u5426\u304B -LayerPageReport_CountPerPage=\u6BCE\u30DA\u30FC\u30B8\u8A18\u9332\u6570 -Display_Modes=\u30E2\u30C7\u30EB\u3092\u8868\u793A -RowSpan=\u884C\u7BC4\u56F2 +FR-Designer-Widget-Style_Border_Color=\u7F6B\u7DDA\u306E\u8272 +Set_Submit_Event=\u63D0\u51FA\u30A4\u30D9\u30F3\u30C8\u8A2D\u5B9A +PDF-Print_isPopup=\u8A2D\u5B9A\u30DC\u30C3\u30AF\u30B9\u3092\u8868\u793A +LayerPageReport_CountPerPage=\u5404\u30DA\u30FC\u30B8\u306E\u8A18\u9332\u6570 +Display_Modes=\u8868\u793A\u30E2\u30FC\u30C9 +RowSpan=\u884C\u30B9\u30D1\u30F3 Datasource-Test_Connection=\u63A5\u7D9A\u30C6\u30B9\u30C8 Function-Function_Manager=\u95A2\u6570\u30DE\u30CD\u30FC\u30B8\u30E3\u30FC -Host_Name=\u30DB\u30B9\u30C8\u30B3\u30F3\u30D4\u30E5\u30FC\u30BF\u540D +Host_Name=\u30DB\u30B9\u30C8\u540D CellWrite-Show_As_HTML=HTML\u3067\u5185\u5BB9\u3092\u8868\u793A -FR-Designer-Widget-Style_Shadow=\u9670\u5F71 +FR-Designer-Widget-Style_Shadow=\u5F71 FR-Designer_Parameter_String=\u6587\u5B57\u5217 -Form-SupportTag=\u30BF\u30B0\u306B\u8868\u793A -ReportD-Report_Write_Attributes=\u5E33\u7968\u66F8\u5F0F\u5C5E\u6027 -DataFunction-Count=\u4EF6\u6570 -Top_And_Thick_Bottom_Border_Line=\u4E0A\u30D5\u30EC\u30FC\u30E0\u30E9\u30A4\u30F3\u3068\u7C97\u4E0B\u30D5\u30EC\u30FC\u30E0\u30E9\u30A4\u30F3 -Client=\u9867\u5BA2\u5074 -BindColumn-Result_Serial_Number_Start_From_1=\u30C7\u30FC\u30BF\u30BB\u30C3\u30C8\u306E\u756A\u53F7\u306F1\u304B\u3089 -History=\u6B74\u53F2 -Already_exists=\u3059\u3067\u306B\u5B58\u5728\u3057\u3066\u3044\u308B\u5834\u5408\u3001\u518D\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044\uFF01 -Datasource-Original_Charset=\u30AA\u30EA\u30B8\u30CA\u30EB\u6587\u5B57\u30B3\u30FC\u30C9 +Form-SupportTag=\u30BF\u30B0\u5F62\u5F0F\u3067\u8868\u793A +ReportD-Report_Write_Attributes=\u5E33\u7968\u66F8\u304D\u8FBC\u307F\u5C5E\u6027 +DataFunction-Count=\u500B\u6570 +Top_And_Thick_Bottom_Border_Line=\u4E0A\u7F6B\u7DDA + \u4E0B\u592A\u7F6B\u7DDA +Client=\u30AF\u30E9\u30A4\u30A2\u30F3\u30C8 +BindColumn-Result_Serial_Number_Start_From_1=\u756A\u53F7\u306F1\u304B\u3089\u59CB\u3081\u308B +History=\u5C65\u6B74 +Already_exists=\u3059\u3067\u306B\u5B58\u5728\u3057\u3066\u3044\u307E\u3059 +Datasource-Original_Charset=\u30AA\u30EA\u30B8\u30CA\u30EB\u30B3\u30FC\u30C9 FR-Base_Left=\u5DE6 ReportServerP-Next=\u6B21\u30DA\u30FC\u30B8 -BindColumn-Top_N=\u524D\u306EN\u500B -Animation_Special=\u7279\u5225\u306B\u826F\u3044\u52B9\u679C -Widget-Chart_Widget_Config=\u30B0\u30E9\u30D5\u30B3\u30F3\u30C8\u30ED\u30FC\u30EB -FR-Designer-Plugin_Cannot_Update_Not_Install=\u30D7\u30E9\u30B0\u30A4\u30F3\u66F4\u65B0\u3092\u3059\u308B\u3053\u3068\u304C\u3067\u304D\u307E\u305B\u3093\u3002\u5F53\u8A72 -After_Changed_Some_Attributes_Are_Different=\u30D7\u30ED\u30D1\u30C6\u30A3\u306E\u3044\u304F\u3064\u304B\u306E\u30B9\u30C6\u30FC\u30C8\u30E1\u30F3\u30C8\u306E\u5F8C\u306B\u5909\u63DB\u304C\u7D99\u7D9A\u3059\u308B\u304B\u3069\u3046\u304B\u3001\u5909\u66F4\u3055\u308C\u307E\u3059 -PieStyle=\u30D1\u30A4 -HF-Are_you_sure_to_delete_it=\u5F53\u8A72\u9805\u76EE\u3092\u524A\u9664\u3057\u3066\u3082\u3088\u308D\u3057\u3044\u3067\u3059\u304B +BindColumn-Top_N=\u4E0A\u4F4DN\u9805\u76EE +Animation_Special=\u7279\u6B8A\u52B9\u679C +Widget-Chart_Widget_Config=\u30B0\u30E9\u30D5\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8 +FR-Designer-Plugin_Cannot_Update_Not_Install=\u30D7\u30E9\u30B0\u30A4\u30F3\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8\u5931\u6557\u3001\u5F53\u30D7\u30E9\u30B0\u30A4\u30F3\u304C\u6B63\u5E38\u306B\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u3055\u308C\u305F\u304B\u3069\u3046\u304B\u30C1\u30A7\u30C3\u30AF\u3057\u3066\u4E0B\u3055\u3044 +After_Changed_Some_Attributes_Are_Different=\u5909\u63DB\u5F8C\u5E33\u7968\u306E\u5C5E\u6027\u304C\u5909\u66F4\u3055\u308C\u307E\u3059\u3001\u7D9A\u3051\u307E\u3059\u304B +PieStyle=\u5186\u72B6 +HF-Are_you_sure_to_delete_it=\u3053\u306E\u8981\u7D20\u3092\u524A\u9664\u3057\u307E\u3059\u304B? Utils-Design-File_Open=\u958B\u304F -FR-Utils_Label=\u30BF\u30B0 -Data-Label=\u30BF\u30B0 +FR-Utils_Label=\u30E9\u30D9\u30EB +Data-Label=\u30E9\u30D9\u30EB M_Insert-Text=\u30C6\u30AD\u30B9\u30C8 Form-View_Tree=\u30D3\u30E5\u30FC\u30C4\u30EA\u30FC -M_Insert-Chart=\u56F3 +M_Insert-Chart=\u30B0\u30E9\u30D5 HF-Even_Page=\u5076\u6570\u30DA\u30FC\u30B8 -ReportServerP-Report_server_parameter=\u5E33\u7968\u30B5\u30FC\u30D0\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC -JavaScript-Form_Submit=\u8868\u63D0\u51FA -Horizontal-Split_Layout=\u6C34\u5E73\u5206\u5272\u914D\u7F6E -BorderLayout-Center=\u4E2D -INFO-Reset_Webapp=\u30A2\u30D7\u30EA\u30B1\u30FC\u30B7\u30E7\u30F3\u30B5\u30FC\u30D0\u306E\u518D\u8A2D\u5B9A +ReportServerP-Report_server_parameter=\u5E33\u7968\u30B5\u30FC\u30D0\u30D1\u30E9\u30E1\u30FC\u30BF +JavaScript-Form_Submit=\u30C0\u30C3\u30B7\u30E5\u30DC\u30FC\u30C9\u66F8\u304D\u8FBC\u307F +Horizontal-Split_Layout=\u6C34\u5E73\u5206\u5272\u30EC\u30A4\u30A2\u30A6\u30C8 +BorderLayout-Center=\u4E2D\u592E +INFO-Reset_Webapp=\u30A2\u30D7\u30EA\u30B5\u30FC\u30D0\u30EA\u30BB\u30C3\u30C8 FR-Designer_Text=\u30C6\u30AD\u30B9\u30C8 -IN_and_INOUT_type_not_as_cursor=IN\u304A\u3088\u3073INOUT\u30BF\u30A4\u30D7\u3067\u306F\u306A\u3044\u30AB\u30FC\u30BD\u30EB\u3068 +IN_and_INOUT_type_not_as_cursor=IN\u3068INOUT\u30BF\u30A4\u30D7\u306F\u30AB\u30FC\u30BD\u30EB\u306B\u3059\u308B\u3053\u3068\u304C\u3067\u304D\u306A\u3044 Main_Axis=\u30E1\u30A4\u30F3\u5EA7\u6A19\u8EF8 M_Edit-Cut=\u5207\u308A\u53D6\u308A(T) -Utils-The_Name_has_been_existed=\u5F53\u8A72\u540D\u79F0\u306F\u65E2\u306B\u5B58\u5728\u3057\u3066\u3044\u307E\u3059 +Utils-The_Name_has_been_existed=\u3053\u306E\u540D\u524D\u306F\u65E2\u306B\u3042\u308A\u307E\u3059 FR-Background_Image=\u753B\u50CF Character=\u6587\u5B57 Unit_Thousand=\u5343 Test=\u30C6\u30B9\u30C8 Utils-Would_you_like_to_save=\u4FDD\u5B58\u3057\u307E\u3059\u304B HF-Header_and_Footer=\u30D8\u30C3\u30C0\u30FC\u3068\u30D5\u30C3\u30BF\u30FC -LIST_MODE=\u30EA\u30B9\u30C8 -HF-Insert_Image=\u753B\u50CF\u3092\u633F\u5165 +LIST_MODE=\u4E00\u89A7 +HF-Insert_Image=\u753B\u50CF FR-Designer-Widget-Style_Standard=\u6A19\u6E96 -FR-Designer_Form-List=\u30EA\u30B9\u30C8 +FR-Designer_Form-List=\u4E00\u89A7 BackgroundTexture-Denim=\u30C7\u30CB\u30E0 -Execute_Report_by_Layer_Engine=\u30E9\u30A4\u30F3\u306E\u30A8\u30F3\u30B8\u30F3\u3067\u5E33\u7968\u3092\u5B9F\u884C\u3059\u308B +Execute_Report_by_Layer_Engine=\u30B0\u30EA\u30C3\u30C9\u578B\u30A8\u30F3\u30B8\u30F3\u3067\u5E33\u7968\u3092\u5B9F\u884C\u3059\u308B M_Edit-Bring_Forward=\u524D\u9762\u3078\u79FB\u52D5(F) Choose_All=\u5168\u9078\u629E Form-RadioGroup=\u30E9\u30B8\u30AA\u30DC\u30BF\u30F3\u30B0\u30EB\u30FC\u30D7 FR-Base_Remove=\u524A\u9664 -FR-Remote_Connect2Server_Again=\u63A5\u7D9A\u304C\u4E2D\u65AD\u3057\u307E\u3057\u305F\u3002\u518D\u5EA6\u30B5\u30FC\u30D0\u306B\u63A5\u7D9A\u3057\u307E\u3059\u304B\u3002 -Semicolon=\u5206\u53F7 +FR-Remote_Connect2Server_Again=\u63A5\u7D9A\u304C\u5207\u65AD\u3055\u308C\u307E\u3057\u305F\u3001\u30B5\u30FC\u30D0\u306B\u518D\u63A5\u7D9A\u3057\u307E\u3059\u304B? +Semicolon=\u30BB\u30DF\u30B3\u30ED\u30F3 StyleFormat-Category=\u5206\u985E -Report_Template=\u5E33\u7968\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8 -Utils-Beyond_the_right_side_of_Border=\u53F3\u9818\u57DF\u3092\u30AA\u30FC\u30D0\u30FC +Report_Template=\u5E33\u7968\u306E\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8 +Utils-Beyond_the_right_side_of_Border=\u53F3\u306E\u306E\u5883\u754C\u3092\u8D85\u904E\u3057\u3066\u3044\u307E\u3059\u3002\u914D\u7F6E\u3067\u304D\u307E\u305B\u3093\u3002 BackgroundTexture-Papyrus=\u7D19 -LayerPageReport_PageEngine=\u30DA\u30FC\u30B8\u5225\u306E\u6F14\u7B97\u3092\u4F7F\u7528\u3057\u3066\u5E33\u7968\u3092\u57F7\u884C -Schedule-The_selected_file_must_be_end_with_filter=\u9078\u629E\u30D5\u30A1\u30A4\u30EB\u306F.cpt\u53C8\u306F.class\u53C8\u306F.frm +LayerPageReport_PageEngine=\u30DA\u30FC\u30B8\u8A08\u7B97\u3092\u5229\u7528\u3057\u305F\u30BB\u30B0\u30E1\u30F3\u30C8\u3067\u5E33\u7968\u3092\u5B9F\u884C +Schedule-The_selected_file_must_be_end_with_filter=\u9078\u629E\u3055\u308C\u305F\u30D5\u30A1\u30A4\u30EB\u306F.cpt\u3084.class\u307E\u305F\u306F.frm\u3067\u7D42\u4E86\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059 Provide=\u63D0\u4F9B -FormulaD-Math_&_Trig=\u6570\u5B66\u95A2\u6570\u3068\u4E09\u89D2\u95A2\u6570 -FR-Designer-StyleAlignment_Right=\u53F3\u5BC4\u305B -Error_TableDataNameRepeat=\u3059\u3067\u306B\u30B5\u30FC\u30D0\u30C7\u30FC\u30BF\u30BB\u30C3\u30C8\u306B\u5B58\u5728\u3059\u308B\u304B\u8907\u6570\u306E\u30C7\u30FC\u30BF\u30BB\u30C3\u30C8\u540D\u304C\u91CD +FormulaD-Math_&_Trig=\u6570\u5B66\u3068\u4E09\u89D2\u95A2\u6570 +FR-Designer-StyleAlignment_Right=\u53F3\u63C3\u3048 +Error_TableDataNameRepeat=\u30B5\u30FC\u30D0\u30C7\u30FC\u30BF\u30BB\u30C3\u30C8\u304C\u65E2\u306B\u5B58\u5728\u3059\u308B\u304B\u3001\u540C\u3058\u540D\u524D\u306E\u30C7\u30FC\u30BF\u30BB\u30C3\u30C8\u304C\u5B58\u5728\u3057\u3066\u3044\u307E\u3059\u3002 Choose_None=\u9078\u629E\u3057\u306A\u3044 File-tree=\u30D5\u30A1\u30A4\u30EB\u30C4\u30EA\u30FC FRFont-bold=\u592A\u5B57 -FR-Designer_Set_Submit_Condition=\u63D0\u51FA\u6761\u4EF6\u3092\u8A2D\u5B9A -Form-Change_Widget_Name=\u30B3\u30F3\u30C8\u30ED\u30FC\u30EB\u540D\u5909\u66F4 -ReportColumns-Report_Columns=\u5E33\u7968\u30B3\u30E9\u30E0 -Can_not_use_FormatBursh=\u8907\u6570\u9078\u629E\u3057\u305F\u30A8\u30EA\u30A2\u3067\u306F\u66F8\u5F0F\u30D6\u30E9\u30B7\u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\! -CellElement-Property_Table=\u30BB\u30EB\u306E\u30D7\u30ED\u30D1\u30C6\u30A3\u00B7\u30B7\u30FC\u30C8 -Dictionary-Dynamic_SQL=\u52D5\u614BSQL -FR-Designer_Form-CheckBoxGroup=\u30D5\u30EC\u30FC\u30E0\u30BB\u30C3\u30C8\u3092\u8907\u6570\u9078\u629E -DBCP_TIME_BETWEEN_EVICTIONRUNSMILLIS=\u30A2\u30A4\u30C9\u30EB\u63A5\u7D9A\u30EA\u30B5\u30A4\u30AF\u30EB\u30E6\u30CB\u30C3\u30C8\u4F11\u7720\u6642\u9593 -ReportD-Export_Hided_Column=\u96A0\u3057\u305F\u5217\u3092\u5C0E\u51FA -Preference-Support_Undo=\u5143\u306B\u623B\u3057\u3092\u30B5\u30DD\u30FC\u30C8\u3059\u308B -FR-mobile_report_analysis=\u5831\u544A\u66F8\u306E\u89E3\u6790 +FR-Designer_Set_Submit_Condition=\u66F8\u304D\u8FBC\u307F\u6761\u4EF6\u8A2D\u5B9A +Form-Change_Widget_Name=\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u540D\u3092\u5909\u66F4\u3059\u308B +ReportColumns-Report_Columns=\u5E33\u7968\u306E\u30B5\u30D6\u30D5\u30A3\u30FC\u30EB\u30C9 +Can_not_use_FormatBursh=\u9023\u7D9A\u3057\u306A\u3044\u8907\u6570\u9818\u57DF\u3067\u306F\u66F8\u5F0F\u30B3\u30D4\u30FC\u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093 +CellElement-Property_Table=\u30BB\u30EB\u5C5E\u6027\u8868 +Dictionary-Dynamic_SQL=\u52D5\u7684SQL +FR-Designer_Form-CheckBoxGroup=\u30C1\u30A7\u30C3\u30AF\u30DC\u30C3\u30AF\u30B9\u30B0\u30EB\u30FC\u30D7 +DBCP_TIME_BETWEEN_EVICTIONRUNSMILLIS=\u30A2\u30A4\u30C9\u30EB\u63A5\u7D9A\u306E\u691C\u8A3C\u9593\u9694 +ReportD-Export_Hided_Column=\u975E\u8868\u793A\u5217\u30A8\u30AF\u30B9\u30DD\u30FC\u30C8 +Preference-Support_Undo=\u5143\u306B\u623B\u3059\u3092\u30B5\u30DD\u30FC\u30C8 +FR-mobile_report_analysis=\u5E33\u7968\u89E3\u6790 Month=\u6708 -Utils-Column_Width=\u5217\u5E45 -Collect-Use_Designer=\u30C7\u30B6\u30A4\u30CA\u30FC\u3092\u4F7F\u7528 -Widget-User_Defined_Editor=\u30D7\u30EC\u5B9A\u7FA9\u30A8\u30C7\u30A3\u30BF\u3067\u3059\u3002\u5F53\u8A72\u30A8\u30C7\u30A3\u30BF\u306F\u30B3\u30F3\u30C8\u30ED\u30FC\u30EB\u7BA1\u7406\u30E1\u30CB\u30E5\u30FC +Utils-Column_Width=\u5217\u306E\u5E45 +Collect-Use_Designer=\u30C7\u30B6\u30A4\u30CA\u30FC\u4F7F\u7528 +Widget-User_Defined_Editor=\u4E8B\u524D\u5B9A\u7FA9\u30A8\u30C7\u30A3\u30BF\u3002\u3053\u306E\u30A8\u30C7\u30A3\u30BF\u306F\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u7BA1\u7406\u30E1\u30CB\u30E5\u30FC\u3060\u3051\u3067\u305D\u306E\u5C5E\u6027\u3092\u5909\u66F4\u3067\u304D\u308B Unit_Ten_Thousand=\u4E07 Data_Setting=\u30C7\u30FC\u30BF\u8A2D\u5B9A -ECP_input_pwd=\u30D1\u30B9\u30EF\u30FC\u30C9\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044\: +ECP_input_pwd=\u30D1\u30B9\u30EF\u30FC\u30C9\u3092\u5165\u529B\: period=\u3002 -Note=\u6CE8 +Note=\u30B3\u30E1\u30F3\u30C8 Multiline=\u8907\u6570\u884C\u7DE8\u96C6 Datasource-Convert_Charset=\u6587\u5B57\u30B3\u30FC\u30C9\u5909\u63DB DashBoard-ConnectionList=\u30C7\u30FC\u30BF\u63A5\u7D9A -Utils-Submit_Forcibly=\u5F37\u884C\u63D0\u51FA +Utils-Submit_Forcibly=\u5F37\u5236\u66F8\u304D\u8FBC\u307F Parent_Marked_Field=\u89AA\u30BF\u30B0\u30D5\u30A3\u30FC\u30EB\u30C9 -Logout=\u9000\u51FA -FR-Designer_Show_Blank_Row=\u7A7A\u767D\u884C\u3092\u88DC\u5145 -FR-Base_Format=\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8 -FR-App-Export_png=PNG\u66F8\u5F0F -Delete_Column=\u5217\u524A\u9664 -SecondGraduationLine=\u5C0F\u3055\u306A\u76EE\u76DB\u308A +Logout=\u30ED\u30B0\u30A2\u30A6\u30C8 +FR-Designer_Show_Blank_Row=\u7A7A\u767D\u884C\u88DC\u5145 +FR-Base_Format=\u66F8\u5F0F +FR-App-Export_png=PNG +Delete_Column=\u5217\u3092\u524A\u9664 +SecondGraduationLine=\u88DC\u52A9\u76EE\u76DB\u7DDA SpecifiedG-Groups=\u30B0\u30EB\u30FC\u30D7 -CONTINUUM_MODE=\u96A3\u63A5\u3057\u305F\u9023\u7D9A\u3057\u305F\u30D1\u30B1\u30C3\u30C8 +CONTINUUM_MODE=\u96A3\u63A5\u9023\u7D9A\u30B0\u30EB\u30FC\u30D7\u5206\u3051 Datasource-Connection_failed=\u63A5\u7D9A\u5931\u6557 -CategoryName=\u30AB\u30C6\u30B4\u30EA\u30FC\u540D -DBCP_INITIAL_SIZE=\u63A5\u7D9A\u6570\u306E\u521D\u671F\u5316 +CategoryName=\u5206\u985E\u540D +DBCP_INITIAL_SIZE=\u30D7\u30FC\u30EB\u306E\u8D77\u52D5\u6642\u306B\u4F5C\u6210\u3055\u308C\u308B\u521D\u671F\u63A5\u7D9A\u6570 Colors=\u8272 -FR-Import-Export_CSV=CSV\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8(\u30B3\u30F3\u30DE\u3067\u5206\u5272) -FR-Designer-StyleAlignment_Left=\u5DE6\u5BC4\u305B +FR-Import-Export_CSV=CSV(\u30AB\u30F3\u30DE\u533A\u5207\u308A) +FR-Designer-StyleAlignment_Left=\u5DE6\u63C3\u3048 BackgroundTexture-PaperBag=\u7D19\u888B -RWA-BuildIn_SQL=\u5185\u8535SQL -SingleLayer=\u5358\u5C64 -Or-you=\u307E\u305F\u306F -FR-Designer_Certificate_Path=\u8A3C\u66F8\u30EB\u30FC\u30C8 -Utils-Last_Page=\u7D42\u4E86\u9801 -BarCodeD-Drawing_Text=\u30D0\u30FC\u30B3\u30FC\u30C9\u30C6\u30AD\u30B9\u30C8\u3092\u8868\u793A\u3059\u308B -Warning-Template_Do_Not_Exsit=\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u306F\u5B58\u5728\u3057\u307E\u305B\u3093 -BindColumn-Group=\u30B0\u30EB\u30FC\u30D7\u5206\u3051 -Export-SVG=SVG\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8 +RWA-BuildIn_SQL=\u7D44\u307F\u8FBC\u307FSQL +SingleLayer=\u30B7\u30F3\u30B0\u30EB\u30EC\u30A4\u30E4\u30FC +Or-you=\u3042\u308B\u3044\u306F +FR-Designer_Certificate_Path=\u30E9\u30A4\u30BB\u30F3\u30B9\u30D1\u30B9 +Utils-Last_Page=\u6700\u7D42\u30DA\u30FC\u30B8 +BarCodeD-Drawing_Text=\u30C6\u30AD\u30B9\u30C8\u3092\u8868\u793A +Warning-Template_Do_Not_Exsit=\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3002 +BindColumn-Group=\u30B0\u30EB\u30FC\u30D7\u5225 +Export-SVG=SVG Plane3D=\u5E73\u97623D -SessionID=sessionID\u306F\u73FE\u5728\u306E\u30A2\u30AF\u30BB\u30B9\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u306E\u4F1A\u8A71\u30BF\u30B0\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC\u3067\u3059\u3002 +SessionID=sessionID\u306F\u4ECA\u30A2\u30AF\u30BB\u30B9\u3059\u308B\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u306E\u30BB\u30C3\u30B7\u30E7\u30F3\u30BF\u30B0\u30D1\u30E9\u30E1\u30FC\u30BF\u3067\u3042\u308B FR-Designer_Height=\u9AD8\u3055 HF-Odd_Page=\u5947\u6570\u30DA\u30FC\u30B8 -About-All_Rights_Reserved=\u5168\u3066\u306E\u6A29\u5229\u3092\u6240\u6709\u3057\u3066\u3044\u308B -Utils-Current_Cell=\u30AB\u30EC\u30F3\u30C8\u30BB\u30EB -Web_Preview_Message=\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u30D5\u30A1\u30A4\u30EB\u3092\u73FE\u5728\u306E\u904B\u884C\u74B0\u5883\u306E\u76EE\u6B21\u4E0B\u306B\u4FDD\u5B58\u3057\u3066\u304F\u3060\u3055\u3044 -FR-Hyperlink_Chart_Float=\u30B0\u30E9\u30D5\u30CF\u30A4\u30D1\u30FC\u30EA\u30F3\u30AF-\u9023\u52D5\u30D5\u30ED\u30FC\u8981\u7D20 -Dic-Data_Query=\u30C7\u30FC\u30BF\u30AF\u30A8\u30EA\u30FC -CellWrite-Print_Content=\u30BB\u30EB\u306E\u4E2D\u8EAB\u3092\u5370\u5237\u3059\u308B -Privilege-Selected_None_Of_Any_Items=\u9805\u76EE\u3092\u3072\u3068\u3064\u3082\u9078\u629E\u3057\u3066\u3044\u307E\u305B\u3093 +About-All_Rights_Reserved=\u5168\u3066\u306E\u6A29\u5229\u3092\u4FDD\u7559 +Utils-Current_Cell=\u73FE\u5728\u306E\u30BB\u30EB +Web_Preview_Message=\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u30D5\u30A1\u30A4\u30EB\u3092\u73FE\u5728\u306E\u5B9F\u884C\u74B0\u5883\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u306B\u4FDD\u5B58\u3057\u3066\u4E0B\u3055\u3044 +FR-Hyperlink_Chart_Float=\u30B0\u30E9\u30D5\u30CF\u30A4\u30D1\u30FC\u30EA\u30F3\u30AF-\u30D5\u30ED\u30FC\u30C6\u30A3\u30F3\u30B0\u8981\u7D20\u9023\u52D5 +Dic-Data_Query=\u30C7\u30FC\u30BF\u30AF\u30A8\u30EA +CellWrite-Print_Content=\u30BB\u30EB\u5185\u5BB9 +Privilege-Selected_None_Of_Any_Items=\u9805\u76EE\u304C\u9078\u629E\u3055\u308C\u3066\u3044\u307E\u305B\u3093 FRFont-Size=\u30B5\u30A4\u30BA -Function-J2EE_server=J2EE_server -FR-Designer_Allow_Blank=\u7A7A\u6B04\u3042\u308A -Build_Tree_Accord_Parent_Marked_Filed=\u89AA\u30BF\u30B0\u30D5\u30A3\u30FC\u30EB\u30C9\u306F\u3001\u69CB\u7BC9\u3055\u308C\u305F\u30C4\u30EA\u30FC\u3092\u8A2D\u5B9A\u3057\u3001\u9078\u629E\u3057\u305F\u30C7\u30FC\u30BF\u306B\u4F9D\u5B58 -Preference-Horizontal_Scroll_Bar_Visible=\u6C34\u5E73\u30B9\u30AF\u30ED\u30FC\u30EB\u30D0\u30FC\u306F\u53EF\u8996 -Scope=\u30B9\u30B3\u30FC\u30D7 -Save_All_Records_In_Memory=\u5168\u3066\u306E\u8A18\u9332\u306F\u30E1\u30E2\u30EA\u306B\u4FDD\u5B58\u3055\u308C\u3066\u3044\u307E\u3059 -FreezeWarning1=\u521D\u671F\u5024\u306F\u6700\u7D42\u5024\u3088\u308A\u5927\u304D\u304F\u3042\u308A\u307E\u305B\u3093 -FlowLayout=\u30D5\u30ED\u30FC\u914D\u7F6E +Function-J2EE_server=J2EE\u30B5\u30FC\u30D0 +FR-Designer_Allow_Blank=\u7A7A\u3092\u8A31\u53EF +Build_Tree_Accord_Parent_Marked_Filed=\u9078\u629E\u3057\u305F\u30C7\u30FC\u30BF\u30BB\u30C3\u30C8\u306E\u89AA\u30DE\u30FC\u30AF\u30D5\u30A3\u30FC\u30EB\u30C9\u3088\u308A\u30C4\u30EA\u30FC\u3092\u69CB\u7BC9\u3059\u308B +Preference-Horizontal_Scroll_Bar_Visible=\u6C34\u5E73\u30B9\u30AF\u30ED\u30FC\u30EB\u30D0\u30FC\u3092\u8868\u793A +Scope=\u7BC4\u56F2 +Save_All_Records_In_Memory=\u5168\u30EC\u30B3\u30FC\u30C9\u30E1\u30E2\u30EA\u30AD\u30E3\u30C3\u30B7\u30E5 +FreezeWarning1=\u521D\u671F\u5024\u306F\u7D42\u4E86\u5024\u4EE5\u4E0B +FlowLayout=\u30D5\u30ED\u30FC\u30EC\u30A4\u30A2\u30A6\u30C8 M_Report-Report_Footer=\u5E33\u7968\u30D5\u30C3\u30BF\u30FC -FR-Action_Add=\u5897\u52A0 +FR-Action_Add=\u8FFD\u52A0 BorderLayout-East=\u6771 -feedback_tip=\u4EE5\u4E0B400\u306E\u5358\u8A9E\u306E\u554F\u984C\u306E\u8AAC\u660E\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044 -FS_Start_Date=\u958B\u59CB\u65E5\u671F +feedback_tip=400\u5B57\u4EE5\u5185 +FS_Start_Date=\u958B\u59CB\u65E5\u4ED8 FR-ConditionB_Operator=\u6F14\u7B97\u5B50 Printer-Alias=\u5225\u540D DS-Class_Name=\u30AF\u30E9\u30B9\u540D -FR-Designer-Plugin_Has_Been_Disabled=\u30D7\u30E9\u30B0\u30A4\u30F3\u306F\u4F7F\u7528\u304C\u7981\u6B62\u3055\u308C\u3066\u3044\u307E\u3059\u3002\u30C7\u30B6\u30A4\u30CA\u30FC\u3068\u30B5 +FR-Designer-Plugin_Has_Been_Disabled=\u30D7\u30E9\u30B0\u30A4\u30F3\u306F\u7981\u6B62\u3055\u308C\u3001\u30C7\u30B6\u30A4\u30CA\u30FC\u3068\u30B5\u30FC\u30D0\u3092\u518D\u8D77\u52D5\u3057\u3066\u6709\u52B9\u306B\u306A\u308A\u3001\u30B5\u30FC\u30D0\u306F\u624B\u52D5\u3067\u518D\u8D77\u52D5\u3057\u3066\u4E0B\u3055\u3044 Sort-Original=\u30BD\u30FC\u30C8\u3057\u306A\u3044 -Utils-Top_to_Bottom_a=\u4E0A\u304B\u3089\u4E0B\u3078 -Parameter-String=\u6587\u5B57\u5217 -InnerRadis=\u5185\u5F84\u306E\u5927\u304D\u3055 -Want_To_Cover_It=\u3053\u308C\u3092\u8986\u3044\u307E\u3059\u304B -Divided_stage=\u5206\u5272\u3055\u308C\u305F\u30B9\u30C6\u30FC\u30B8 -Seriously=\u53B3\u91CD +Utils-Top_to_Bottom_a=\u4E0A\u304B\u3089\u4E0B +Parameter-String=\u6587\u5B57\u578B +InnerRadis=\u5185\u5F84\u30B5\u30A4\u30BA +Want_To_Cover_It=\u4E0A\u66F8\u304D\u3057\u307E\u3059\u304B +Divided_stage=\u30B9\u30C6\u30FC\u30B8\u3092\u5206\u5272 +Seriously=\u91CD\u5927 ReportServerP-PDF=PDF -Utils-Switch_To_Class_Reportlet=\u30D7\u30ED\u30B0\u30E9\u30E0\u30CD\u30C3\u30C8\u30EF\u30FC\u30AF\u5E33\u7968\u306B\u5207\u308A\u66FF\u3048 -FR-Designer_Show_Blank_Column=\u7A7A\u767D\u5217\u3092\u88DC\u5145 -M_Edit-Redo=\u518D\u5B9F\u884C +Utils-Switch_To_Class_Reportlet=\u30D7\u30ED\u30B0\u30E9\u30E0\u30CD\u30C3\u30C8\u5E33\u7968\u306B\u5207\u308A\u66FF\u3048\u308B +FR-Designer_Show_Blank_Column=\u7A7A\u767D\u5217\u88DC\u5145 +M_Edit-Redo=\u3084\u308A\u76F4\u3057 Visibility=\u53EF\u8996\u6027 Series_Use_Default=\u7CFB\u5217\u30C7\u30D5\u30A9\u30EB\u30C8\u4F7F\u7528 -Has_Selected=\u3082\u3046\u9078\u629E -BackgroundTexture-Walnut=\u30AF\u30EB\u30DF +Has_Selected=\u9078\u629E\u3055\u308C\u305F +BackgroundTexture-Walnut=\u304F\u308B\u307F FormulaD-Function_category=\u95A2\u6570\u30BF\u30A4\u30D7 -Interface=\u30A4\u30F3\u30BF\u30FC\u30D5\u30A7\u30A4\u30B9 -FR-Designer-Beyond_Bounds=body\u90E8\u5206\u306E\u30DC\u30FC\u30C0\u30FC\u3092\u8D8A\u3048\u305F\u3001\u30B5\u30A4\u30BA\u3092\u8ABF\u6574\u3067\u304D\u307E\u305B\u3093\u3002 +Interface=\u30A4\u30F3\u30BF\u30FC\u30D5\u30A7\u30FC\u30B9 +FR-Designer-Beyond_Bounds=body\u30DC\u30FC\u30C0\u30FC\u3092\u8D8A\u3048\u305F\u3001\u30B5\u30A4\u30BA\u3092\u8A2D\u5B9A\u3067\u304D\u307E\u305B\u3093 seconds=\u79D2 -Auto-Build=\u81EA\u52D5\u7684\u306B\u30D3\u30EB\u30C9 -FR-Designer-Plugin_Install_Successful=\u5F53\u8A72\u30D7\u30E9\u30B0\u30A4\u30F3\u30C7\u30B6\u30A4\u30CA\u30FC\u3068\u30B5\u30FC\u30D0\u3092\u518D\u8D77\u52D5\u3059\u308B\u969B\u306B -Template_Path=\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u30EB\u30FC\u30C8 -FR-Designer-FRFont_Bold=\u592A\u304F\u3059\u308B -Poly_Name=\u805A\u5408\u30E2\u30B8\u30E5\u30FC\u30EB\u540D +Auto-Build=\u81EA\u52D5\u69CB\u7BC9 +FR-Designer-Plugin_Install_Successful=\u30D7\u30E9\u30B0\u30A4\u30F3\u306F\u3001\u30C7\u30B6\u30A4\u30CA\u30FC\u3068\u30B5\u30FC\u30D0\u306E\u518D\u8D77\u52D5\u5F8C\u306B\u6709\u52B9\u306B\u306A\u308A\u307E\u3059\u3002\u30B5\u30FC\u30D0\u306F\u624B\u52D5\u3067\u518D\u8D77\u52D5\u3057\u3066\u4E0B\u3055\u3044 +Template_Path=\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u30D1\u30B9 +FR-Designer-FRFont_Bold=\u592A\u5B57 +Poly_Name=\u30D6\u30ED\u30C3\u30AF\u540D WorkBook=\u30EF\u30FC\u30AF\u30D6\u30C3\u30AF -Hyperlink-Self_Window=\u73FE\u5728\u306E\u30A6\u30A3\u30F3\u30C9\u30A6 -FR-Designer-Widget-Style_Title=\u6A19\u984C -FR-Designer-FRFont_Size=\u5927\u304D\u3055 +Hyperlink-Self_Window=\u73FE\u30A6\u30A3\u30F3\u30C9\u30A6 +FR-Designer-Widget-Style_Title=\u30BF\u30A4\u30C8\u30EB +FR-Designer-FRFont_Size=\u30B5\u30A4\u30BA M_File-Export-SVG=SVG Capacity=\u5BB9\u91CF Rose_Red=\u30ED\u30FC\u30BA\u30EC\u30C3\u30C9 -StyleAlignment-The_value_of_rotation_must_between_-90_and_90_degrees=\u56DE\u8EE2\u5024\u306F-90\u304B\u308990\u5EA6 -HF-Move_Left=\u5DE6\u3078\u79FB\u52D5\u3059\u308B -Cell_Group=\u30BB\u30EB\u7D44 -Week=\u5468 -PageSetup-Orientation=\u65B9\u5411 -M-Open_Recent=\u6700\u8FD1\u958B\u3044\u305F\u3082\u306E +StyleAlignment-The_value_of_rotation_must_between_-90_and_90_degrees=\u56DE\u8EE2\u89D2\u5EA6\u306F\u5FC5\u305A-90\uFF5E90\u306E\u9593\u306B +HF-Move_Left=\u5DE6\u3078 +Cell_Group=\u30BB\u30EB\u30B0\u30EB\u30FC\u30D7 +Week=\u9031 +PageSetup-Orientation=\u5411\u304D +M-Open_Recent=\u6700\u8FD1\u4F7F\u7528\u3057\u305F NNormal=\u6B63\u5E38 Integer=\u6574\u6570 -Select_The_Source_To_Save=\u8A18\u61B6\u3059\u308B\u9805\u76EE\u3092\u9078\u629E -Transition=\u5206\u679D +Select_The_Source_To_Save=\u4FDD\u5B58\u3057\u305F\u3044\u9805\u76EE\u3092\u9078\u629E +Transition=\u30D6\u30E9\u30F3\u30C1 FR-Designer_Get_Lock=\u30ED\u30C3\u30AF -one_record_exists_in_many_groups=\u4E00\u3064\u306E\u8A18\u9332\u306F\u8907\u6570\u30B0\u30EB\u30FC\u30D7\u5185\u306B\u5B58\u5728\u53EF\u80FD -FR-Designer_Cover_None=\u5168\u3066\u8986\u308F\u306A\u3044 +one_record_exists_in_many_groups=1\u30EC\u30B3\u30FC\u30C9\u8907\u6570\u30B0\u30EB\u30FC\u30D7\u6240\u5C5E +FR-Designer_Cover_None=\u3059\u3079\u3066\u4E0A\u66F8\u304D\u3057\u306A\u3044 DeciPart=\u5C0F\u6570\u90E8\u5206 ExpandD-Up_Father_Cell=\u4E0A\u89AA\u30BB\u30EB Deep=\u6DF1\u3055 FRFont-Shadow=\u5F71 Reportlet=\u30CD\u30C3\u30C8\u5E33\u7968 Calendar=\u30AB\u30EC\u30F3\u30C0\u30FC -DateFormat-Custom_Warning=\u6CE8\uFF1A\u30AB\u30B9\u30BF\u30E0\u65E5\u6642\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8\u30B5\u30DD\u30FC\u30C8\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8\u691C\u67FB -Unit_MM=\u30DF\u30EA\u30E1\u30FC\u30C8\u30EB +DateFormat-Custom_Warning=\u6CE8\u610F\uFF1A\u30AB\u30B9\u30BF\u30E0\u65E5\u4ED8\u66F8\u5F0F\u306F\u66F8\u5F0F\u30C1\u30A7\u30C3\u30AF\u3092\u30B5\u30DD\u30FC\u30C8\u3057\u306A\u3044 +Unit_MM=\u30DF\u30EA Server-Start=\u8D77\u52D5 -CellPage-Can_Break_On_Paginate=\u30DA\u30FC\u30B8\u30F3\u30B0\u304C\u5207\u65AD\u3059\u308B\u3053\u3068\u304C\u3067\u304D\u305F\u3068\u304D -Build_Tree_Accord_Marked_Filed_Length=\u69CB\u7BC9\u30C4\u30EA\u30FC\u3092\u8A2D\u5B9A\u3057\u3001\u9078\u629E\u3057\u305F\u30C7\u30FC\u30BF\u306B\u4F9D\u5B58\u3057\u305F\u30D5\u30A3\u30FC\u30EB\u30C9\u306E\u9577\u3055\u3092\u30DE\u30FC\u30AF +CellPage-Can_Break_On_Paginate=\u6539\u30DA\u30FC\u30B8\u6642\u6539\u6BB5 +Build_Tree_Accord_Marked_Filed_Length=\u9078\u629E\u3057\u305F\u30C7\u30FC\u30BF\u30BB\u30C3\u30C8\u306E\u30DE\u30FC\u30AF\u30D5\u30A3\u30FC\u30EB\u30C9\u306E\u9577\u3055\u3088\u308A\u30C4\u30EA\u30FC\u3092\u69CB\u7BC9\u3059\u308B ComboCheckBox-Start_Symbol=\u958B\u59CB\u6587\u5B57 Real=\u5B9F\u969B -RWA-Batch_Modify_Cells=\u6279\u91CF\u4FEE\u6B63\u30BB\u30EB -FR-Designer_Build-Way=\u69CB\u7BC9\u65B9\u6CD5 -Read=\u8AAD\u307F\u53D6\u308A +RWA-Batch_Modify_Cells=\u30BB\u30EB\u4E00\u62EC\u7DE8\u96C6 +FR-Designer_Build-Way=\u69CB\u7BC9\u65B9\u5F0F +Read=\u8AAD\u307F\u8FBC\u307F StyleAlignment-Degrees=\u5EA6 M_Format_A-Border=\u67A0(B) Utils-Delete_Record=\u8A18\u9332\u524A\u9664 Reload=\u518D\u30ED\u30FC\u30C9 -Image-Select_Picture=\u753B\u50CF\u3092\u9078\u629E -RWA-Submit=\u63D0\u51FA\u3059\u308B -the_template=\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8 -FR-Designer_Component_Scale=\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u30B9\u30B1\u30FC\u30EB +Image-Select_Picture=\u753B\u50CF\u9078\u629E +RWA-Submit=\u66F8\u304D\u8FBC\u307F +the_template=\u5F53\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8 +FR-Designer_Component_Scale=\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u30BA\u30FC\u30E0 FRFont-italic=\u659C\u4F53 Year=\u5E74 -HF-Move_Right=\u53F3\u3078\u79FB\u52D5\u3059\u308B -Data-Check=\u30C7\u30FC\u30BF\u7BA1\u7406\u30B3\u30F3\u30C8\u30ED\u30FC\u30EB +HF-Move_Right=\u53F3\u3078 +Data-Check=\u30C7\u30FC\u30BF\u30C1\u30A7\u30C3\u30AF Unknown=\u672A\u77E5 -Submit_Style=\u63D0\u51FA\u65B9\u6CD5 -Left_Border_Line=\u5DE6\u30D5\u30EC\u30FC\u30E0\u30E9\u30A4\u30F3 -Brown=\u30D6\u30E9\u30A6\u30F3 -Select_A_Tree_DataSource_To_Build=\u30C4\u30EA\u30FC\u30C7\u30FC\u30BF\u30BB\u30C3\u30C8\u3092\u9078\u629E\u3057\u3066\u7D44\u307F\u7ACB\u3066\u3066\u304F\u3060\u3055\u3044 -Overlapping=\u91CD\u306D\u578B -DS-Class_TableData=\u30AF\u30E9\u30B9\u30C7\u30FC\u30BF\u30BD\u30FC\u30B9 -FR-Designer-Plugin_Illegal_Plugin_Zip_Cannot_Be_Install=\u8B58\u5225\u4E0D\u80FD\u306A\u30D7\u30E9\u30B0\u30A4\u30F3\u3067\u3059\u3002\u30A4\u30F3\u30B9 -DisplayNothingBeforeQuery=\u81EA\u52D5\u691C\u7D22\u7121\u3057 +Submit_Style=\u66F8\u304D\u8FBC\u307F\u65B9\u5F0F +Left_Border_Line=\u5DE6\u7F6B\u7DDA +Brown=\u8336\u8272 +Select_A_Tree_DataSource_To_Build=1\u3064\u306E\u30C4\u30EA\u30FC\u30C7\u30FC\u30BF\u30BB\u30C3\u30C8\u3092\u9078\u629E\u3057\u3066\u69CB\u7BC9 +Overlapping=\u91CD\u306A\u308A\u30BF\u30A4\u30D7 +DS-Class_TableData=\u30D7\u30ED\u30B0\u30E9\u30E0\u30C7\u30FC\u30BF\u30BB\u30C3\u30C8 +FR-Designer-Plugin_Illegal_Plugin_Zip_Cannot_Be_Install=\u672A\u5BFE\u5FDC\u306E\u30D7\u30E9\u30B0\u30A4\u30F3\u306E\u305F\u3081\u3001\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u3067\u304D\u307E\u305B\u3093 +DisplayNothingBeforeQuery=\u30AF\u30A8\u30EA\u524D\u5E33\u7968\u5185\u5BB9\u3092\u8868\u793A\u3057\u307E\u305B\u3093 Y_Axis=Y\u8EF8 -FormulaD-Most_Recently_Used=\u5E38\u7528\u95A2\u6570 -FormulaD-Input_formula_in_the_text_area_below=\u30C6\u30AD\u30B9\u30C8\u30DC\u30C3\u30AF\u30B9\u306B\u516C\u5F0F\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044 -Build-Way=\u69CB\u7BC9\u65B9\u6CD5 +FormulaD-Most_Recently_Used=\u3088\u304F\u5229\u7528\u3059\u308B\u95A2\u6570 +FormulaD-Input_formula_in_the_text_area_below=\u4EE5\u4E0B\u306E\u30C6\u30AD\u30B9\u30C8\u30DC\u30C3\u30AF\u30B9\u306B\u6570\u5F0F\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044 +Build-Way=\u69CB\u7BC9\u65B9\u5F0F M_Edit-Undo=\u5143\u306B\u623B\u3059 -Line-Style=\u7DDA\u5F62 +Line-Style=\u7DDA\u306E\u7A2E\u985E Datasource-Other_Attributes=\u305D\u306E\u4ED6\u5C5E\u6027 -M_Server-Global_Parameters=\u30B0\u30ED\u30FC\u30D0\u30EB\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC -Suffix=\u5F8C\u7F00 -Image-Image_Files=\u30A4\u30E1\u30FC\u30B8\u30D5\u30A1\u30A4\u30EB +M_Server-Global_Parameters=\u30B0\u30ED\u30FC\u30D0\u30EB\u30D1\u30E9\u30E1\u30FC\u30BF +Suffix=\u30B5\u30D5\u30A3\u30C3\u30AF\u30B9 +Image-Image_Files=\u753B\u50CF\u30D5\u30A1\u30A4\u30EB EditRC-Entire_row=\u884C(R) -HF-First_Page=\u30C8\u30C3\u30D7\u30DA\u30FC\u30B8 +HF-First_Page=\u5148\u982D\u30DA\u30FC\u30B8 BackgroundTexture-Granite=\u307F\u304B\u3052\u77F3 DataList=\u30C7\u30FC\u30BF\u30C1\u30A7\u30FC\u30F3 -Recursion=\u5E30\u7D0D -BarStyle=\u30B9\u30C8\u30EA\u30C3\u30D7 -FR-Designer-Min_Width= -Utils-Report-Env_Directory=\u5E33\u7968\u4F5C\u696D\u76EE\u6B21 +Recursion=\u518D\u5E30 +BarStyle=\u30D0\u30FC +FR-Designer-Min_Width=\u6700\u5C0F\u5E45\u3055 +Utils-Report-Env_Directory=\u5E33\u7968\u4F5C\u696D\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA D-ChartArea=\u30B0\u30E9\u30D5\u30A8\u30EA\u30A2 -Only=\u305F\u3060 +Only=\u3060\u3051 FR-Base_No=\u3044\u3044\u3048 -SpecifiedG-Put_all_others_together=\u4ED6\u306E\u3059\u3079\u3066\u3092\u7D50\u5408\u3059\u308B +SpecifiedG-Put_all_others_together=\u305D\u306E\u4ED6\u306E\u3059\u3079\u3066\u3092\u7D71\u5408 HF-NewLine_Des=\u4E0A\u306E\u79FB\u52D5\u3068\u524A\u9664\u30DC\u30BF\u30F3\u3092\u30AF\u30EA\u30C3\u30AF\u3057\u3066\u6539\u884C\u30B3\u30FC\u30C9\u3092\u64CD\u4F5C\u3059\u308B -WLayout-Border-ThreeContainer=\u5317\u3001\u897F\u3001\u4E09\u56FD\u5883\u306E\u30EC\u30A4\u30A2\u30A6\u30C8\u30B3\u30F3\u30C6\u30CA\u30FC\u3068\u5E45\u3092\u8ABF\u6574\u3059\u308B\u5FC5\u8981\u304C\u3042 -Parameter_Name=\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC\u540D +WLayout-Border-ThreeContainer=\u5317\u90E8\u3001\u897F\u90E8\u3001\u4E2D\u592E\u90E8\u306E3\u30D6\u30ED\u30C3\u30AF\u306E\u30DC\u30FC\u30C0\u30FC\u30EC\u30A4\u30A2\u30A6\u30C8\u30B3\u30F3\u30C6\u30CA\u3067\u69CB\u6210\u3055\u308C\u308B\u30EC\u30A4\u30A2\u30A6\u30C8\u3002\u5317\u90E8\u30D6\u30ED\u30C3\u30AF\u3067\u306F\u9AD8\u3055\u3092\u3001\u897F\u90E8\u30D6\u30ED\u30C3\u30AF\u3067\u306F\u5E45\u3092\u8ABF\u6574\u3067\u304D\u307E\u3059\u3002 +Parameter_Name=\u30D1\u30E9\u30E1\u30FC\u30BF\u540D FR-Base_Table=\u8868 -Des-Remove_WorkSheet=\u9078\u629E\u3059\u308B\u5E33\u7968\u306B\u306F\u30C7\u30FC\u30BF\u304C\u3042\u308B\u304B\u3082\u3057\u308C\u307E\u305B\u3093\u304C\u3001\u5B8C\u5168\u306B\u524A\u9664\u3059\u308B\u5834\u5408\u3001 +Des-Remove_WorkSheet=\u9078\u629E\u3057\u305F\u30B7\u30FC\u30C8\u306B\u30C7\u30FC\u30BF\u304C\u5B58\u5728\u3059\u308B\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059\u3002\u30C7\u30FC\u30BF\u3092\u5B8C\u5168\u306B\u524A\u9664\u3059\u308B\u306B\u306F\u3001[OK]\u30DC\u30BF\u30F3\u3092\u30AF\u30EA\u30C3\u30AF\u3057\u3066\u304F\u3060\u3055\u3044\u3002 Rotation=\u56DE\u8EE2 Undefined=\u672A\u5B9A\u7FA9 -Support-Auto_Complete_Shortcut=\u81EA\u52D5\u3067\u30B7\u30E7\u30FC\u30C8\u30AB\u30C3\u30C8\u30AD\u30FC\u3092\u88DC\u3046 -Set_Column_Title_End=\u91CD\u8907\u3059\u308B\u7D42\u4E86\u5217\u3092\u8A2D\u5B9A -Submit_Url=\u30A2\u30C9\u30EC\u30B9\u63D0\u51FA -ReportServerP-Are_you_sure_to_delete_the_selected_printer=\u9078\u629E\u3055\u308C\u305F\u30D7\u30EA\u30F3\u30BF\u30FC\u3092\u524A\u9664\u3057\u3066 -long_data_can_not_show_fully=\u9577\u3044\u30C7\u30FC\u30BF\u304C\u5341\u5206\u306B\u767A\u63EE\u3059\u308B\u3053\u3068\u304C\u3067\u304D\u307E\u305B\u3093 -Utils-Beyond_the_bottom_side_of_Border=\u4E0B\u9818\u57DF\u3092\u30AA\u30FC\u30D0\u30FC -FR-Import-Export_PDF=PDF\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8 -Form-CheckBoxGroup=\u30D5\u30EC\u30FC\u30E0\u30BB\u30C3\u30C8\u3092\u8907\u6570\u9078\u629E +Support-Auto_Complete_Shortcut=\u30AA\u30FC\u30C8\u30B3\u30F3\u30D7\u30EA\u30FC\u30C8\u30B7\u30E7\u30FC\u30C8\u30AB\u30C3\u30C8\u30AD\u30FC +Set_Column_Title_End=\u7E70\u308A\u8FD4\u3057\u7D42\u4E86\u5217\u8A2D\u5B9A +Submit_Url=\u66F8\u304D\u8FBC\u307F\u30A2\u30C9\u30EC\u30B9 +ReportServerP-Are_you_sure_to_delete_the_selected_printer=\u9078\u629E\u3055\u308C\u305F\u30D7\u30EA\u30F3\u30BF\u3092\u524A\u9664\u3057\u307E\u3059\u304B +long_data_can_not_show_fully=\u9577\u3044\u30C7\u30FC\u30BF\u306E\u8868\u793A\u306F\u4E0D\u5B8C\u5168 +Utils-Beyond_the_bottom_side_of_Border=\u4E0B\u306E\u306E\u5883\u754C\u3092\u8D85\u904E\u3057\u3066\u3044\u307E\u3059\u3002\u914D\u7F6E\u3067\u304D\u307E\u305B\u3093\u3002 +FR-Import-Export_PDF=PDF +Form-CheckBoxGroup=\u30C1\u30A7\u30C3\u30AF\u30DC\u30C3\u30AF\u30B9\u30B0\u30EB\u30FC\u30D7 Click-Me=\u30AF\u30EA\u30C3\u30AF\u3059\u308B\u3068\u30B5\u30D7\u30E9\u30A4\u30BA\u304C\u3042\u308A\u307E\u3059\u3088\uFF01 -Hyperlink-Self=\u540C\u3058Frame(S) -Tree-Select_Leaf_Only_Tips=\u30C1\u30A7\u30C3\u30AF\u3057\u306A\u3044\u5834\u5408\u3001\u623B\u308A\u5024\u306F\u5F53\u30CE\u30FC\u30C9\u3060\u3051\u3002 -StyleAlignment-Text_Rotation=\u30C6\u30AD\u30B9\u30C8\u65B9\u5411 -Format-Error=\u5165\u529B\u3057\u305F\u5024\u306E\u66F8\u5F0F\u304C\u4E0D\u6B63\u78BA\u3067\u3059 -Server-Stop=\u4E00\u6642\u505C\u6B62 +Hyperlink-Self=\u5143\u306E\u30DA\u30FC\u30B8\u304B\u3089\u30EA\u30F3\u30AF\u3092\u958B\u304F(S) +Tree-Select_Leaf_Only_Tips=(\u3053\u306E\u9805\u76EE\u304C\u30C1\u30A7\u30C3\u30AF\u3057\u306A\u3044\u5834\u5408\u3001\u623B\u308A\u5024\u306F\u30E6\u30FC\u30B6\u30FC\u306B\u3088\u3063\u3066\u30C1\u30A7\u30C3\u30AF\u3055\u308C\u305F\u73FE\u6642\u70B9\u306E\u30CE\u30FC\u30C9\u3060\u3051\u3001\u5B50\u30CE\u30FC\u30C9\u304C\u542B\u307E\u308C\u306A\u3044) +StyleAlignment-Text_Rotation=\u6587\u5B57\u5217\u306E\u65B9\u5411 +Format-Error=\u5165\u529B\u5024\u306E\u66F8\u5F0F\u306F\u4E0D\u6B63\u78BA\u3067\u3059 +Server-Stop=\u505C\u6B62 Preference-Setting_Grid=\u30B0\u30EA\u30C3\u30C9\u8A2D\u5B9A -ReportServerP-Add_Printer=\u30D7\u30EA\u30F3\u30BF\u30FC\u8FFD\u52A0 -FR-Designer-Plugin_Active=\u4F7F\u7528\u958B\u59CB +ReportServerP-Add_Printer=\u30D7\u30EA\u30F3\u30BF\u8FFD\u52A0 +FR-Designer-Plugin_Active=\u6709\u52B9 Utils-File_name=\u30D5\u30A1\u30A4\u30EB\u540D -NOT_NULL_Des=\u3053\u3053\u306F\u7A7A\u6B04\u306B\u3059\u308B\u3053\u3068\u304C\u3067\u304D\u307E\u305B\u3093 -Right_Border_Line=\u53F3\u30D5\u30EC\u30FC\u30E0\u30E9\u30A4\u30F3 +NOT_NULL_Des=\u7A7A\u306B\u3067\u304D\u307E\u305B\u3093 +Right_Border_Line=\u53F3\u7F6B\u7DDA EditRC-Entire_column=\u5217(C) -PageSetup-Top_to_bottom=\u4E0A\u304B\u3089\u4E0B\u3078 -Click-Get_Default_URL=\u30AF\u30EA\u30C3\u30AF\u3057\u3066\u30C7\u30D5\u30A9\u30EB\u30C8\u306EURL\u3092\u53D6\u5F97 -StyleAlignment-Wrap_Text=\u81EA\u52D5\u6298\u308A\u8FD4\u3057 -Remove_All_Button=\u5168\u3066\u306E\u30DC\u30BF\u30F3\u3092\u30AF\u30EA\u30A2 -FR-Designer_Component_Interval=\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u306E\u9593\u9694 -ReportColumns-Columns_vertically=\u5782\u76F4\u65B9\u5411\u5217 -ReportGUI-Print_Background=\u5370\u5237\u80CC\u666F -Export-CSV=CSV (\u30AB\u30F3\u30DE\u533A\u5207\u308A) +PageSetup-Top_to_bottom=\u5DE6\u304B\u3089\u53F3 +Click-Get_Default_URL=\u3053\u306E\u30DC\u30BF\u30F3\u3092\u30AF\u30EA\u30C3\u30AF\u3057\u3066\u65E2\u5B9AURL\u3092\u53D6\u5F97 +StyleAlignment-Wrap_Text=\u81EA\u52D5\u6539\u884C +Remove_All_Button=\u3059\u3079\u3066\u306E\u30DC\u30BF\u30F3\u3092\u30AF\u30EA\u30A2 +FR-Designer_Component_Interval=\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u9593\u9694 +ReportColumns-Columns_vertically=\u5217\u306E\u30B5\u30D6\u30D5\u30A3\u30FC\u30EB\u30C9 +ReportGUI-Print_Background=\u5E33\u7968\u80CC\u666F\u306E\u5370\u5237/\u51FA\u529B +Export-CSV=CSV(\u30AB\u30F3\u30DE\u533A\u5207\u308A) M_Edit-Paste=\u8CBC\u308A\u4ED8\u3051(P) -FR-Designer-Basic_Restart_Designer=\u30C7\u30B6\u30A4\u30CA\u30FC\u3092\u518D\u8D77\u52D5\u3059\u308B -ReportServerP-PDF2-INFO=LINUX/UNIX\u306B\u4E2D\u56FD\u8A9E\u30D5\u30A9\u30F3\u30C8\u304C\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u3055\u308C\u305F\u6642\u306E\u307F\u4F7F\u7528 -FormulaD-Check_Valid=\u6709\u52B9\u6027\u30C1\u30A7\u30C3\u30AF -server_disconnected=\u5207\u65AD\u3055\u308C\u305F -ParameterD-Parameter_name_cannot_be_null=\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC\u540D\u306F\u7A7A\u5024\u306B\u306A\u3063\u3066\u306F\u3044\u3051\u307E\u305B\u3093 -FR-Designer-Plugin_Version_Is_Lower_Than_Current=\u30A2\u30C3\u30D7\u30B0\u30EC\u30FC\u30C9\u30D1\u30C3\u30AF\u306E\u30D7\u30E9\u30B0\u30A4\u30F3\u30D0\u30FC\u30B8 -RWA-NotChange_Unmodified=\u306E\u6539\u6B63\u3092\u66F4\u65B0\u3057\u306A\u3044 -User_Information=\u30E6\u30FC\u30B6\u60C5\u5831 -Custom_styles_lost=\u30AB\u30B9\u30BF\u30DE\u30A4\u30BA\u30B9\u30BF\u30A4\u30EB\u306F\u5931\u308F\u308C\u307E\u3057\u305F -PageSetup-Margin=\u4F59\u767D -M-New_FormBook=\u8868\u3092\u65B0\u898F\u4F5C\u6210 -Widget-TreeNode=\u30C4\u30EA\u30FC\u30CE\u30FC\u30C9\u30DC\u30BF\u30F3 +FR-Designer-Basic_Restart_Designer=\u30C7\u30B6\u30A4\u30CA\u518D\u8D77\u52D5 +ReportServerP-PDF2-INFO=LINUX / UNIX\u306B\u4E2D\u56FD\u8A9E\u30D5\u30A9\u30F3\u30C8\u304C\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u3055\u308C\u3066\u3044\u306A\u3044\u5834\u5408\u3060\u3051\u306B\u4F7F\u3046 +FormulaD-Check_Valid=\u6570\u5F0F\u306E\u691C\u8A3C +server_disconnected=\u63A5\u7D9A\u304C\u5207\u65AD\u3055\u308C\u305F +ParameterD-Parameter_name_cannot_be_null=\u30D1\u30E9\u30E1\u30FC\u30BF\u540D\u306F\u7A7A\u306B\u3067\u304D\u307E\u305B\u3093 +FR-Designer-Plugin_Version_Is_Lower_Than_Current=\u30A2\u30C3\u30D7\u30B0\u30EC\u30FC\u30C9\u30D1\u30C3\u30B1\u30FC\u30B8\u306E\u30D7\u30E9\u30B0\u30A4\u30F3\u30D0\u30FC\u30B8\u30E7\u30F3\u306F\u4ECA\u306E\u30D0\u30FC\u30B8\u30E7\u30F3\u3088\u308A\u4F4E\u3044 +RWA-NotChange_Unmodified=\u5909\u66F4\u6642\u306E\u307F\u66F8\u304D\u8FBC\u307F +User_Information=\u30E6\u30FC\u30B6\u30FC\u60C5\u5831 +Custom_styles_lost=\u30AB\u30B9\u30BF\u30E0\u30B9\u30BF\u30A4\u30EB\u306F\u5931\u308F\u308C\u307E\u3057\u305F +PageSetup-Margin=\u30DE\u30FC\u30B8\u30F3 +M-New_FormBook=\u30C0\u30C3\u30B7\u30E5\u30DC\u30FC\u30C9\u65B0\u898F\u4F5C\u6210 +Widget-TreeNode=\u30C4\u30FC\u30CE\u30FC\u30C9\u30DC\u30BF\u30F3 Form-Url=\u30A2\u30C9\u30EC\u30B9 -Utils-Beyond_the_left_side_of_Border=\u5DE6\u30DC\u30FC\u30C0\u30FC\u8D85\u3048 -Float_Element_Name=\u30D5\u30ED\u30FC\u3068\u8981\u7D20\u540D\u79F0 -Purple=\u8584\u7D2B +Utils-Beyond_the_left_side_of_Border=\u5DE6\u306E\u5883\u754C\u3092\u8D85\u904E\u3057\u3066\u3044\u307E\u3059\u3002\u914D\u7F6E\u3067\u304D\u307E\u305B\u3093\u3002 +Float_Element_Name=\u30D5\u30ED\u30FC\u30C8\u8981\u7D20\u540D +Purple=\u7D2B DashBoard-Potence=\u6A29\u9650 -M-Close_Template=\u5E33\u7968\u3092\u9589\u3058\u308B(C) -paper=\u7D19 -Not_Exsit=\u5E33\u7968\u306B\u5B58\u5728\u3057\u307E\u305B\u3093 +M-Close_Template=\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u30AA\u30D5(C) +paper=\u7528\u7D19 +Not_Exsit=\u5E33\u7968\u306B\u5B58\u5728\u3057\u306A\u3044 Utils-Insert_Row=\u884C\u633F\u5165 Utils-Delete_Row=\u884C\u524A\u9664 -not_support_authority_edit=\u8BE5\u5143\u7D20\u4E0D\u652F\u6301\u6743\u9650\u63A7\u5236 -Formula_Tips=\u5F0F\u306F "\ +not_support_authority_edit=\u3053\u306E\u8981\u7D20\u306F\u6A29\u9650\u5236\u5FA1\u3092\u30B5\u30DD\u30FC\u30C8\u3057\u3066\u3044\u307E\u305B\u3093 +Formula_Tips=\u6570\u5F0F\u306F\u5FC5\u305A" FR-Action_Copy=\u30B3\u30D4\u30FC -Compile_Success=\u7DE8\u96C6\u7FFB\u8A33\u306B\u6210\u529F\u3057\u307E\u3057\u305F +Compile_Success=\u30B3\u30F3\u30D1\u30A4\u30EB\u306B\u6210\u529F\u3057\u305F BackgroundTexture-RecycledPaper=\u518D\u751F\u7D19 -StyleAlignment-Single_Line=\u4E00\u884C\u3067\u8868\u793A -Utils-Move_Down=\u4E0B\u3078\u79FB\u52D5 -Please_Set_Repeat_First=\u307E\u305A\u91CD\u8907\u3059\u308B\u6A19\u984C\u884C\u3068\u5217\u3092\u8A2D\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044 -Writer-ShortCuts_Setting=\u5831\u544A\u30B7\u30E7\u30FC\u30C8\u30AB\u30C3\u30C8\u30AD\u30FC\u8A2D\u5B9A +StyleAlignment-Single_Line=1\u884C\u8868\u793A +Utils-Move_Down=\u4E0B\u3078 +Please_Set_Repeat_First=\u6700\u521D\u306B\u7E70\u308A\u8FD4\u3057\u30BF\u30A4\u30C8\u30EB\u306E\u884C\u3068\u5217\u3092\u8A2D\u5B9A\u3057\u3066\u4E0B\u3055\u3044 +Writer-ShortCuts_Setting=\u66F8\u304D\u8FBC\u307F\u30B7\u30E7\u30FC\u30C8\u30AB\u30C3\u30C8\u30AD\u30FC\u8A2D\u5B9A Verify-Data_Verify=\u30C7\u30FC\u30BF\u691C\u8A3C FR-mobile_analysis_style=\u89E3\u6790\u65B9\u5F0F -Confirm-Delete-File=\u9078\u629E\u3057\u305F\u30D5\u30A1\u30A4\u30EB\u3092\u524A\u9664\u3057\u3066\u3082\u3088\u308D\u3057\u3044\u3067\u3059\u304B\uFF1F -PageSetup-Header=\u30DA\u30FC\u30B8\u30D8\u30C3\u30C0 +Confirm-Delete-File=\u9078\u629E\u3057\u305F\u30D5\u30A1\u30A4\u30EB\u3092\u524A\u9664\u3057\u307E\u3059\u304B? +PageSetup-Header=\u30D8\u30C3\u30C0\u30FC JavaScrit-Asynch=\u975E\u540C\u671F ReportServerP-Toolbar=\u30C4\u30FC\u30EB\u30D0\u30FC Utils-Top_to_Bottom=\u7E26\u65B9\u5411 Platform=\u30D7\u30E9\u30C3\u30C8\u30D5\u30A9\u30FC\u30E0 -FR-Designer-FRFont_Underline=\u30A2\u30F3\u30C0\u30FC\u30E9\u30A4\u30F3 -Show_in_Containing_Folder=\u6240\u5728\u3059\u308B\u30D5\u30A1\u30A4\u30EB\u3092\u958B\u304F +FR-Designer-FRFont_Underline=\u4E0B\u7DDA +Show_in_Containing_Folder=\u30D5\u30A1\u30A4\u30EB\u306E\u5834\u6240\u3092\u958B\u304F BackgroundTexture-WaterDroplets=\u3057\u305A\u304F -FR-Designer-Dependence_Install_Failed=install failed +FR-Designer-Dependence_Install_Failed=\u4F9D\u5B58\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u5931\u6557 Layout-Padding=\u30D1\u30C7\u30A3\u30F3\u30B0 -roles_already_authority_edited=\u69CB\u6210\u3055\u308C\u305F\u5F79\u5272 -WidgetDisplyPosition=\u30B3\u30F3\u30C8\u30ED\u30FC\u30EB\u8868\u793A\u4F4D\u7F6E -SpecifiedG-Force_Group=\u5F37\u5236\u7684\u306B\u30B0\u30EB\u30FC\u30D4\u30F3\u30B0\u3059\u308B -FormulaD-Formula_Definition=\u516C\u5F0F\u5B9A\u7FA9 +roles_already_authority_edited=\u5F79\u5272\u8A2D\u5B9A\u6E08\u307F +WidgetDisplyPosition=\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u8868\u793A\u4F4D\u7F6E +SpecifiedG-Force_Group=\u5F37\u5236\u30B0\u30EB\u30FC\u30D7\u5206\u3051 +FormulaD-Formula_Definition=\u6570\u5F0F\u5B9A\u7FA9 I-xyScatterStyle_Marker=\u6563\u5E03\u56F3 Hour=\u6642\u9593 ColorMatch=\u914D\u8272 -M_Edit-Order=\u9806\u5E8F(O) -BackgroundTexture-Bouquet=\u82B1\u675F -Verify-Error_Information=\u30A8\u30E9\u30FC\u60C5\u5831 -LayerData=\u5E95\u5C42\u6570\u636E -Rename=\u540D\u79F0\u306E\u5909\u66F4 -Widget-Load_By_Async=\u975E\u540C\u671F\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9 +M_Edit-Order=\u7A4D\u307F\u91CD\u306D\u9806\u756A(O) +BackgroundTexture-Bouquet=\u30D6\u30FC\u30B1 +Verify-Error_Information=\u30A8\u30E9\u30FC\u60C5\u5831\u691C\u8A3C +LayerData=\u57FA\u790E\u30EC\u30A4\u30E4\u30FC\u306E\u30C7\u30FC\u30BF +Rename=\u540D\u524D\u3092\u5909\u66F4 +Widget-Load_By_Async=\u975E\u540C\u671F\u30ED\u30FC\u30C9 Shape=\u56F3\u5F62 -BindColumn-This_Condition_has_been_existed=\u5F53\u8A72\u6761\u4EF6\u306F\u5B58\u5728\u3057\u3066\u3044\u307E\u3059 -NS-exception_readError=\u30A8\u30E9\u30FC\u30B3\u30FC\u30C9\:1305 \u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u30D5\u30A1\u30A4\u30EB\u89E3\u6790\u306B\u30A8\u30E9\u30FC\u304C\u3042\u308A\u307E\u3057\u305F -Set_Column_Title_Start=\u91CD\u8907\u3059\u308B\u6A19\u984C\u5217\u3092\u8A2D\u5B9A -Fri=\u91D1 -M_Report-Report_Parameter=\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC -REPORTLETS=\u8907\u6570\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u306E\u30EB\u30FC\u30C8\u306E\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC\u306B\u30A2\u30AF\u30BB\u30B9 -WLayout-Card-ToolTip=\u30AB\u30FC\u30C9\u306E\u30EC\u30A4\u30A2\u30A6\u30C8\u306F\u3001\u30EC\u30A4\u30A2\u30A6\u30C8\u30B3\u30F3\u30C6\u30CA\u5185\u306E\u4ED6\u306E\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u306E\u6570 +BindColumn-This_Condition_has_been_existed=\u3053\u306E\u6761\u4EF6\u306F\u3059\u3067\u306B\u5B58\u5728\u3057\u3066\u3044\u308B +NS-exception_readError=\u30A8\u30E9\u30FC\u30B3\u30FC\u30C9\:1305 \u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u30D5\u30A1\u30A4\u30EB\u89E3\u6790\u30A8\u30E9\u30FC +Set_Column_Title_Start=\u7E70\u308A\u8FD4\u3057\u30BF\u30A4\u30C8\u30EB\u5217\u8A2D\u5B9A +Fri=\u91D1\u66DC\u65E5 +M_Report-Report_Parameter=\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u30D1\u30E9\u30E1\u30FC\u30BF +REPORTLETS=\u8907\u6570\u306E\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u306E\u30D1\u30B9\u306B\u30A2\u30AF\u30BB\u30B9\u3059\u308B\u30D1\u30E9\u30E1\u30FC\u30BF +WLayout-Card-ToolTip=\u30AB\u30FC\u30C9\u578B\u30EC\u30A4\u30A2\u30A6\u30C8\u3002\u3053\u306E\u30EC\u30A4\u30A2\u30A6\u30C8\u30B3\u30F3\u30C6\u30CA\u306B\u8907\u6570\u306E\u4ED6\u306E\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u3092\u8FFD\u52A0\u3067\u304D\u307E\u3059\u3002 M-Popup_ChartType=\u30B0\u30E9\u30D5\u30BF\u30A4\u30D7 -Please-Wait=\u5C11\u3005\u304A\u5F85\u3061\u304F\u3060\u3055\u3044 -FR-Designer-Form-ToolBar_Widget=\u30B3\u30F3\u30C8\u30ED\u30FC\u30EB +Please-Wait=\u304A\u5F85\u3061\u4E0B\u3055\u3044 +FR-Designer-Form-ToolBar_Widget=\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8 Widget-Array=\u914D\u5217 -FieldBinding=\u30D0\u30F3\u30C7\u30A3\u30F3\u30B0\u30D5\u30A3\u30FC\u30EB\u30C9 -Top_Bottom_Border_Line=\u4E0A\u4E0B\u30D5\u30EC\u30FC\u30E0\u30E9\u30A4\u30F3 +FieldBinding=\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u30D0\u30A4\u30F3\u30C9 +Top_Bottom_Border_Line=\u4E0A\u7F6B\u7DDA + \u4E0B\u7F6B\u7DDA M-Others=\u305D\u306E\u4ED6... -Hyperlink-Link_Opened_in=\u30EA\u30F3\u30AF\u306E\u958B\u3051\u65B9 -FR-Utils_WorkBook=\u4F5C\u696D\u7C3F -M_Insert-Float=\u30D5\u30ED\u30FC\u30C8\u8981\u7D20 -Out_Thick_Border_Line=\u30DC\u30C3\u30AF\u30B9\u30D5\u30EC\u30FC\u30E0\u30E9\u30A4\u30F3 +Hyperlink-Link_Opened_in=\u30EA\u30F3\u30AF\u306E\u5B9F\u884C\u65B9\u5F0F +FR-Utils_WorkBook=\u30EF\u30FC\u30AF\u30D6\u30C3\u30AF +M_Insert-Float=\u30D5\u30ED\u30FC\u30C6\u30A3\u30F3\u30B0\u8981\u7D20 +Out_Thick_Border_Line=\u5916\u67A0\u592A\u7F6B\u7DDA FR-App-File_Lookup_range=\u691C\u7D22\u7BC4\u56F2 -ReportColumns-Columns_to=\u306E\u3088\u3046\u306B\u6539\u5217\u3059\u308B +ReportColumns-Columns_to=\u30B5\u30D6\u30D5\u30A3\u30FC\u30EB\u30C9\u7D50\u679C Transparent=\u900F\u660E Parameter-Integer=\u6574\u6570\u578B PDF-Print_Setting=PDF\u5370\u5237\u8A2D\u5B9A -Server-Embedded_Server=\u5185\u8535\u30B5\u30FC\u30D0 -M_Server-Server_Config_Manager=\u30B5\u30FC\u30D0\u914D\u7F6E(S) -FR-Utils-Would_you_like_to_cover_the_current_file=\u30AB\u30EC\u30F3\u30C8\u30D5\u30A1\u30A4\u30EB\u3092\u4E0A\u66F8\u304D\u3057\u307E\u3059\u304B\uFF1F +Server-Embedded_Server=\u7D44\u307F\u8FBC\u307F\u30B5\u30FC\u30D0 +M_Server-Server_Config_Manager=\u30B5\u30FC\u30D0\u8A2D\u5B9A +FR-Utils-Would_you_like_to_cover_the_current_file=\u73FE\u5728\u306E\u30D5\u30A1\u30A4\u30EB\u3092\u4E0A\u66F8\u304D\u3057\u307E\u3059\u304B CellWrite-InsertRow_COPY=\u5143\u306E\u5024 -Edit_String_To_Formula=\u30AD\u30E3\u30E9\u30AF\u30BF\u30FC\u6587\u5B57\u5217\u3092\u7DE8\u96C6\u3057\u3066\u516C\u5F0F\u3068\u3059\u308B\u304B\u5426\u304B +Edit_String_To_Formula=\u6587\u5B57\u5217\u3092\u7DE8\u96C6\u3057\u3066\u6570\u5F0F\u3068\u3059\u308B\u304B\u5426\u304B Edit-Column_Count=\u5217\u6570 Father=\u89AA -ReportColumns-Columns_after=\u8D85\u3048\u308B -FR-Designer_Undo=\u3084\u308A\u76F4\u3059 -DBCP_MIN_IDLE=\u6700\u5C0F\u30A2\u30A4\u30C9\u30EB\u63A5\u7D9A\u6570 +ReportColumns-Columns_after=\u3088\u308A\u5927\u304D\u3044 +FR-Designer_Undo=\u5143\u306B\u623B\u3059 +DBCP_MIN_IDLE=\u30D7\u30FC\u30EB\u306B\u4FDD\u6301\u3059\u308B\u6700\u5C0F\u63A5\u7D9A\u6570 M-Data_Analysis_Settings=\u30C7\u30FC\u30BF\u5206\u6790\u8A2D\u5B9A -M-Form_Preview=\u8868\u30D7\u30EC\u30D3\u30E5\u30FC +M-Form_Preview=\u30C0\u30C3\u30B7\u30E5\u30DC\u30FC\u30C9\u30D7\u30EC\u30D3\u30E5\u30FC Form-Basic_Properties=\u57FA\u672C\u5C5E\u6027 -quote=\u5F15\u7528 +quote=\u53C2\u7167 Thu=\u6728 -Collect-Collect_User_Information=\u30E6\u30FC\u30B6\u60C5\u5831\u3092\u53CE\u96C6\u3059\u308B -Layer-Build=\u30D5\u30A1\u30BB\u30C3\u30C8\u7D44\u307F\u7ACB\u3066 -FR-Designer-FRFont_Line_Style=\u7DDA\u5F62 -BackgroundTexture-BrownMarble=\u8336\u8272\u306E\u5927\u7406\u77F3 +Collect-Collect_User_Information=\u30E6\u30FC\u30B6\u30FC\u60C5\u5831\u3092\u53CE\u96C6 +Layer-Build=\u30EC\u30A4\u30E4\u30FC\u5225\u69CB\u7BC9 +FR-Designer-FRFont_Line_Style=\u7DDA\u306E\u7A2E\u985E +BackgroundTexture-BrownMarble=\u5927\u7406\u77F3(\u8336) PageSetup-Page_Setup=\u30DA\u30FC\u30B8\u8A2D\u5B9A -Form-Semicolon=\u5206\u53F7 -ECP_re_input=\u30D1\u30B9\u30EF\u30FC\u30C9\u304C\u9593\u9055\u3063\u3066\u3044\u307E\u3059\u3002\u518D\u5EA6\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044 -ExpandD-Sort_After_Expand=\u62E1\u5927\u5F8C -FR-Designer-Dependence_Install_Succeed=install succeed -Env-Configure_Workspace=\u4F5C\u696D\u76EE\u6B21\u8A2D\u5B9A +Form-Semicolon=\u30BB\u30DF\u30B3\u30ED\u30F3 +ECP_re_input=\u30D1\u30B9\u30EF\u30FC\u30C9\u30A8\u30E9\u30FC\u3002\u518D\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044 +ExpandD-Sort_After_Expand=\u5C55\u958B\u5F8C +FR-Designer-Dependence_Install_Succeed=\u4F9D\u5B58\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u6210\u529F +Env-Configure_Workspace=\u4F5C\u696D\u30C7\u30A3\u30EC\u30AF\u30C8\u308A\u8A2D\u5B9A feedback_info=\u8CB4\u91CD\u306A\u610F\u898B\u3042\u308A\u304C\u3068\u3046\u3054\u3056\u3044\u307E\u3059\u3002\u79C1\u9054\u306F\u3067\u304D\u308B\u3060\u3051\u65E9\u304F\u3042\u306A\u305F\u3068\u9023\u7D61\u3057\u307E\u3059\u3002 -Ratio=\u6BD4\u7387 -DBCP_TEST_ON_BORROW=\u63A5\u7D9A\u524D\u691C\u67FB\u3092\u53D6\u5F97 +Ratio=\u5272\u5408 +DBCP_TEST_ON_BORROW=\u63A5\u7D9A\u306E\u8CB8\u51FA\u524D\u306B\u63A5\u7D9A\u6709\u52B9\u6027\u3092\u691C\u8A3C FR-Designer_layerIndex=\u4F9D\u5B58\u30EC\u30A4\u30E4\u30FC\u6570 -WEB-Write_Setting=\u5831\u544A\u30DA\u30FC\u30B8\u8A2D\u5B9A -M-New_WorkBook=\u30D6\u30C3\u30AF\u3092\u65B0\u898F\u4F5C\u6210 -FR-Designer-Plugin_Has_Been_Actived=\u30D7\u30E9\u30B0\u30A4\u30F3\u306F\u3059\u3067\u306B\u8D77\u52D5\u3055\u308C\u3066\u3044\u307E\u3059\u3002\u30C7\u30B6\u30A4\u30CA\u30FC\u3068\u30B5\u30FC -Datasource-Maximum_Number_of_Preview_Rows=\u30D7\u30EC\u30D3\u30E5\u30FC\u884C\u6570\u6700\u5927\u5024 -ExpandD-Cell_Expand_Attributes=\u62E1\u5F35\u5C5E\u6027 -Select_the_repeated_row_and_column=\u91CD\u8907\u3059\u308B\u5FC5\u8981\u304C\u3042\u308B\u884C\u5217\u3092\u9078\u629E\u3057\u3066\u304F\u3060\u3055\u3044 -FormulaD-Date_&_Time=\u65E5\u4ED8\u3068\u6642\u523B\u95A2\u6570 -Max-Mem-Row-Count=\u30AD\u30E3\u30C3\u30B7\u30E5\u306E\u78C1\u6C17\u30C7\u30A3\u30B9\u30AF\u8A18\u9332\u6570\u306F\u3000\u4EE5\u4E0A +WEB-Write_Setting=\u66F8\u304D\u8FBC\u307F\u30DA\u30FC\u30B8\u8A2D\u5B9A +M-New_WorkBook=\u30EF\u30FC\u30AF\u30D6\u30C3\u30AF\u65B0\u898F\u4F5C\u6210 +FR-Designer-Plugin_Has_Been_Actived=\u30D7\u30E9\u30B0\u30A4\u30F3\u306F\u3059\u3067\u306B\u8D77\u52D5\u3055\u308C\u3066\u3044\u307E\u3059\u3002\u30C7\u30B6\u30A4\u30CA\u30FC\u3068\u30B5\u30FC\u30D0\u30FC\u3092\u518D\u8D77\u52D5\u3057\u3066\u767A\u52B9\u3055\u305B\u3066\u304F\u3060\u3055\u3044\u3002\u30B5\u30FC\u30D0\u30FC\u306F\u624B\u52D5\u3067\u518D\u8D77\u52D5\u3057\u3066\u304F\u3060\u3055\u3044 +Datasource-Maximum_Number_of_Preview_Rows=\u6700\u5927\u884C\u6570 +ExpandD-Cell_Expand_Attributes=\u5C55\u958B\u5C5E\u6027 +Select_the_repeated_row_and_column=\u7E70\u308A\u8FD4\u3057\u3057\u305F\u3044\u884C\u5217\u3092\u9078\u629E +FormulaD-Date_&_Time=\u65E5\u4ED8\u3068\u6642\u9593\u95A2\u6570 +Max-Mem-Row-Count=\u30C7\u30A3\u30B9\u30AF\u30AD\u30E3\u30C3\u30B7\u30E5 \u6761\u4EF6 : \u8A18\u9332\u6570> BorderLayout-South=\u5357 Export-Text=\u30C6\u30AD\u30B9\u30C8\u30D5\u30A1\u30A4\u30EB(\u30BF\u30D6\u533A\u5207\u308A) JavaScript-Synch=\u540C\u671F FR-App-All_Warning=\u8B66\u544A M_Edit-Send_Backward=\u80CC\u9762\u3078\u79FB\u52D5(B) -Form-Layout=\u914D\u7F6E -FR-Designer-Plugin_Shop_Need_Update=\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u306F\u3001\u66F4\u65B0\u3059\u308B\u304B\u3069\u3046\u304B\u3001\u65B0\u3057\u3044\u30D0\u30FC\u30B8\u30E7\u30F3\u3092\u4FDD\u5B58\u3057\u307E\u3059\u304B\uFF1F +Form-Layout=\u30EC\u30A4\u30A2\u30A6\u30C8 +FR-Designer-Plugin_Shop_Need_Update=\u65B0\u30D0\u30FC\u30B8\u30E7\u30F3\u306E\u30D7\u30E9\u30B0\u30A4\u30F3\u30B9\u30C8\u30A2\u304C\u3042\u308A\u307E\u3059\u3001\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8\u3057\u307E\u3059\u304B? FR-Designer_WorkBook=\u30EF\u30FC\u30AF\u30D6\u30C3\u30AF -UpBarBorderStyleAndColor=\u30B9\u30B1\u30FC\u30EB\u30A2\u30C3\u30D7\u30AB\u30E9\u30E0\u30B9\u30BF\u30A4\u30EB -GridLayout=\u30BB\u30EB\u914D\u7F6E +UpBarBorderStyleAndColor=\u4E0A\u6607\u30B9\u30BF\u30A4\u30EB +GridLayout=\u30B0\u30EA\u30C3\u30C9\u30EC\u30A4\u30A2\u30A6\u30C8 Utils-Default_Value=\u30C7\u30D5\u30A9\u30EB\u30C8\u5024 -Widget-Comb_Widget_Config=\u7D44\u307F\u5408\u308F\u305B\u30B3\u30F3\u30C8\u30ED\u30FC\u30EB -Import-Excel2007_Source=Excel2007\u30EA\u30BD\u30FC\u30B9\u30D5\u30A1\u30A4\u30EB +Widget-Comb_Widget_Config=\u7D44\u307F\u5408\u308F\u305B\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8 +Import-Excel2007_Source=Excel2007\u30BD\u30FC\u30B9\u30D5\u30A1\u30A4\u30EB Y-Coordinate=\u7E26\u5EA7\u6A19 -FR-Base_SimSun_Not_Found=\u5B8B\u4F53\u3092\u898B\u3064\u3051\u308B\u3053\u3068\u304C\u3067\u304D\u306A\u3044\u3001\u73FE\u5728\u306E\u30B7\u30B9\u30C6\u30E0\u306E\u4E0B\u3067\u30C7\u30D5\u30A9\u30EB\u30C8\u8A00\u8A9E\u3092\u9078\u629E\u3057\u3066\u304F\u3060\u3055\u3044\u8BBE\u8BA1\u5668\u30D5\u30A9\u30F3\u30C8\u3068\u3057\u3066 -FR-Designer_Seriously=\u53B3\u91CD +FR-Base_SimSun_Not_Found=\u5B8B\u4F53\u3092\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3002\u5F53\u8A72\u30B7\u30B9\u30C6\u30E0\u306E\u65E2\u5B9A\u8A00\u8A9E\u3092\u30C7\u30B6\u30A4\u30CA\u30FC +FR-Designer_Seriously=\u91CD\u5927 Upload=\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9 Form-Widget_Property_Table=\u5C5E\u6027\u8868 -Des-Merger_Cell=\u9078\u629E\u3055\u308C\u305F\u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u306F\u8907\u6570\u306E\u30C7\u30FC\u30BF\u304C\u542B\u307F\u3001\u30BB\u30EB\u3092\u7D50\u5408\u3057\u305F\u3089\u3001\u5DE6\u4E0A\u5074\u306E\u30C7 -FR-Designer-Basic_Copy_Build_NO=\u30C0\u30D6\u30EB\u30AF\u30EA\u30C3\u30AF\u3057\u3066\u7D44\u307F\u7ACB\u3066\u30D0\u30FC\u30B8\u30E7\u30F3\u756A\u53F7\u3092\u30AF\u30EA\u30C3\u30D7\u30DC\u30FC\u30C9 -FR-Base_TurnOn=\u8D77\u52D5 +Des-Merger_Cell=\u9078\u629E\u7BC4\u56F2\u306B\u8907\u6570\u306E\u30C7\u30FC\u30BF\u5024\u304C\u3042\u308B\u5834\u5408\u30011\u3064\u306E\u30BB\u30EB\u3068\u3057\u3066\u7D50\u5408\u3059\u308B\u3068\u3001\u9078\u629E\u3057\u305F\u30BB\u30EB\u7BC4\u56F2\u306B\u3042\u308B\u6700\u3082\u5DE6\u4E0A\u7AEF\u306B\u3042\u308B\u30C7\u30FC\u30BF\u306E\u307F\u304C\u4FDD\u6301\u3055\u308C\u307E\u3059\u3002 +FR-Designer-Basic_Copy_Build_NO=\u30D3\u30EB\u30C9\u756A\u53F7\u3092\u30C0\u30D6\u30EB\u30AF\u30EA\u30C3\u30AF\u3057\u3066\u30AF\u30EA\u30C3\u30D7\u30DC\u30FC\u30C9\u306B\u30B3\u30D4\u30FC +FR-Base_TurnOn=\u6709\u52B9 FR-Base_Rows=\u884C -Form-Remove_Repeat=\u91CD\u8907\u3059\u308B\u9805\u76EE\u3092\u524A\u9664 +Form-Remove_Repeat=\u91CD\u8907\u9805\u76EE\u3092\u524A\u9664 Yes=\u306F\u3044 Datasource-JNDI_Name=JNDI\u540D Utils-Delete_Column=\u5217\u524A\u9664 HF-Delete_it=\u524A\u9664 -JavaScript-Dynamic_Parameters=\u52D5\u614B\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC +JavaScript-Dynamic_Parameters=\u52D5\u7684\u30D1\u30E9\u30E1\u30FC\u30BF px=\u753B\u7D20 FR-App-Report_Template=\u5E33\u7968\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8 -Verify-Message=\u30A8\u30E9\u30FC\u30E1\u30C3\u30BB\u30FC\u30B8 -Plan=\u30D7\u30E9\u30F3 -Vertical-Split_Layout=\u5782\u76F4\u5206\u5272\u914D\u7F6E -ParameterD-Delay_Playing=\u5831\u544A\u8868\u306E\u5C55\u793A\u3092\u5EF6\u671F\u3057\u307E\u3059 -TurnOff=\u9589\u3058\u308B -FR-Please_Rename=\u518D\u5EA6\u547D\u540D\u3057\u3066\u304F\u3060\u3055\u3044 -Select_Data_Set=\u30C7\u30FC\u30BF\u30BB\u30C3\u30C8\u3092\u9078\u629E +Verify-Message=\u30A8\u30E9\u30FC\u60C5\u5831 +Plan=\u8A08\u753B +Vertical-Split_Layout=\u5782\u76F4\u5206\u5272\u30EC\u30A4\u30A2\u30A6\u30C8 +ParameterD-Delay_Playing=\u691C\u7D22\u30AF\u30EA\u30C3\u30AF\u524D\u306B\u5E33\u7968\u5185\u5BB9\u3092\u8868\u793A\u3057\u306A\u3044 +TurnOff=\u7121\u52B9 +FR-Please_Rename=\u540D\u524D\u3092\u5909\u66F4\u3057\u3066\u4E0B\u3055\u3044 +Select_Data_Set=\u30C7\u30FC\u30BF\u30BB\u30C3\u30C8\u9078\u629E Name_has_Colon=\u540D\u524D\: -ReportColumns-Columns_horizontally=\u6C34\u5E73\u65B9\u5411\u5217 +ReportColumns-Columns_horizontally=\u884C\u306E\u30B5\u30D6\u30D5\u30A3\u30FC\u30EB\u30C9 FR-Base_Yes=\u306F\u3044 -ReportColumns-Repeat_Row=\u884C\u756A\u53F7\u306E\u7E70\u308A\u8FD4\u3057 +ReportColumns-Repeat_Row=\u884C\u306E\u9806\u5E8F\u3092\u30B3\u30D4\u30FC Print_Setting=\u5370\u5237\u8A2D\u5B9A -Registration-User_Name=\u30E6\u30FC\u30B6\u540D -Datasource-User_Defined=\u30E6\u30FC\u30B6\u5B9A\u7FA9 -FR-Designer-Plugin_DownLoadMessage=\u30D7\u30E9\u30B0\u30A4\u30F3\u306F\u4F9D\u5B58\u30D5\u30A1\u30A4\u30EB\u3092\u5FC5\u8981\u3067\u3059\u304C\u3001\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u3057\u307E\u3059\u304B ({R1} m)\uFF1F +Registration-User_Name=\u30E6\u30FC\u30B6\u30FCID +Datasource-User_Defined=\u30AB\u30B9\u30BF\u30E0 +FR-Designer-Plugin_DownLoadMessage=\u30D7\u30E9\u30B0\u30A4\u30F3\u306F\u30B5\u30DD\u30FC\u30C8\u30BD\u30D5\u30C8\u304C\u5FC5\u8981\u3067\u3059\u304C\u3001\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u3057\u307E\u3059\u304B ({R1} m)? Delay=\u9045\u5EF6 -FR-Designer-All_MSBold=\u5FAE\u8EDF\u96C5\u9ED2 -Utils-Now_create_connection=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u3078\u306E\u63A5\u7D9A -FR-Template-Path_chooseRightPath=\u6B63\u78BA\u306A\u30EB\u30FC\u30C8\u3092\u9078\u629E\u3057\u3066\u304F\u3060\u3055\u3044 -FR-Remote_Re_Connect_to_Server=\u30B5\u30FC\u30D0\u306F\u9589\u3058\u3089\u308C\u307E\u3057\u305F\u3002\u518D\u5EA6\u30B5\u30FC\u30D0\u306B\u63A5\u7D9A\u3057\u307E\u3059\u304B? -Nation=\u56FD\u5BB6 -DBCP_MAX_WAIT=\u6700\u5927\u5F85\u3061\u6642\u9593 -FR-App-Template_Form=\u8868 +FR-Designer-All_MSBold=\u30DE\u30A4\u30AF\u30ED\u30BD\u30D5\u30C8\u30E4\u30D8\u30A4 +Utils-Now_create_connection=\u30C7\u30FC\u30BF\u63A5\u7D9A\u69CB\u7BC9\u4E2D +FR-Template-Path_chooseRightPath=\u6B63\u3057\u3044\u30D1\u30B9\u3092\u9078\u629E\u3057\u3066\u304F\u3060\u3055\u3044 +FR-Remote_Re_Connect_to_Server=\u30B5\u30FC\u30D0\u306F\u30AA\u30D5\u3055\u308C\u305F\u304C\u3001\u30B5\u30FC\u30D0\u306B\u518D\u63A5\u7D9A\u3057\u307E\u3059\u304B\uFF1F +Nation=\u56FD +DBCP_MAX_WAIT=\u63A5\u7D9A\u4E0D\u8DB3\u6642\u306E\u6700\u5927\u5F85\u6A5F\u6642\u9593 +FR-App-Template_Form=\u30C0\u30C3\u30B7\u30E5\u30DC\u30FC\u30C9 Address=\u30A2\u30C9\u30EC\u30B9 Sub_Report=\u5B50\u5E33\u7968 -FR-Import-Export_Word=Word\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8 -FR-Server_Version_Tip=\u73FE\u5728\u306E\u63A5\u7D9A\u3057\u3066\u3044\u308B\u30B5\u30FC\u30D0\u306E\u30D0\u30FC\u30B8\u30E7\u30F3\u306F\u4F7F\u7528\u3057\u3066\u3044\u308B\u30C7\u30B6\u30A4\u30CA\u30FC\u306E\u30D0 -StyleAlignment-Left_To_Right=\u5DE6\u304B\u3089\u53F3\u3078 -Verify-ToolTips=\u516C\u5F0F\u304C\u63D0\u793A\u6821\u9A8C\u3082\u6E80\u8DB3\u3057\u3066\u3044\u306A\u3044\u8BEF\u308A\u304C\u60C5\u5831\u3092\u624B\u306B\u5165\u308C\u305F -BackgroundTexture-Stationery=\u4FBF\u7B8B -FR-Designer_RWA-Help=\u8A2D\u5B9A\u3092\u672A\u4FEE\u6B63\u3067\u66F4\u65B0\u305B\u305A\u3001\u30D7\u30EC\u30D3\u30E5\u30FC\u3057\u305F\u5E33\u7968\u3092\u5831\u544A\u3057\u3001\u30BB\u30EB\u306B\u8A18\u9332\u3055\u308C +FR-Import-Export_Word=Word +FR-Server_Version_Tip=\u4ECA\u63A5\u7D9A\u3055\u308C\u3066\u3044\u308B\u30B5\u30FC\u30D0\u306E\u30D0\u30FC\u30B8\u30E7\u30F3\u306F\u3054\u4F7F\u7528\u306E\u30C7\u30B6\u30A4\u30CA\u30FC\u306E\u30D0\u30FC\u30B8\u30E7\u30F3\u756A\u53F7\u3088\u308A\u4F4E\u3044\u306E\u3067\u3001\u5F15\u304D\u7D9A\u304D\u63A5\u7D9A\u3059\u308B\u3068\u3001\u7DE8\u96C6\u306E\u3044\u304F\u3064\u304B\u306E\u5C5E\u6027\u306F\u6709\u52B9\u7684\u306B\u4FDD\u5B58\u3067\u304D\u306A\u3044\u304B\u3082\u3057\u308C\u306A\u3044\u3002\u63A5\u7D9A\u3059\u308B\u5FC5\u8981\u304C\u3042\u308C\u3070\u3001\u304A\u4F7F\u3044\u306E\u30C7\u30B6\u30A4\u30CA\u30FC\u306E\u30D0\u30FC\u30B8\u30E7\u30F3\u306F\u30B5\u30FC\u30D0\u306E\u30D0\u30FC\u30B8\u30E7\u30F3\u3068\u4E00\u81F4\u3057\u3066\u304F\u3060\u3055\u3044 +StyleAlignment-Left_To_Right=\u5DE6\u304B\u3089\u53F3 +Verify-ToolTips=\u6570\u5F0F\u3092\u6E80\u305F\u3055\u306A\u3044\u5834\u5408\u3001\u691C\u8A3C\u30A8\u30E9\u30FC\u60C5\u5831\u3092\u8868\u793A\u3059\u308B +BackgroundTexture-Stationery=\u3072\u306A\u578B +FR-Designer_RWA-Help=\u5909\u66F4\u6642\u306E\u307F\u66F4\u65B0\u3092\u9078\u629E\u3057\u305F\u5834\u5408\u3001\u6539\u30DA\u30FC\u30B8\u30D7\u30EC\u30D3\u30E5\u30FC\u3068\u66F8\u304D\u8FBC\u307F\u30D7\u30EC\u30D3\u30E5\u30FC\u306E\u5834\u5408\u3001\u30EC\u30B3\u30FC\u30C9\u5185\u5BB9\u306E\u30BB\u30EB\u306F\u7DE8\u96C6\u3084\u5909\u66F4\u304C\u3055\u308C\u306A\u3044\u305F\u3081\u3001\u3053\u306E\u30EC\u30B3\u30FC\u30C9\u306F\u66F4\u65B0\u3055\u308C\u306A\u3044\u3002\n\u5927\u91CF\u306E\u30C7\u30FC\u30BF\u306E\u30AF\u30A8\u30EA\u3084\u66F8\u304D\u8FBC\u307F\u3092\u3059\u308B\u5834\u5408\u3001\u3053\u306E\u8A2D\u5B9A\u3092\u6709\u52B9\u306B\u3059\u308B\u3068\u3001\u9AD8\u901F\u5316\u304C\u671F\u5F85\u3067\u304D\u308B\u3002 M_Insert-Barcode=\u30D0\u30FC\u30B3\u30FC\u30C9 Bounds=\u30DC\u30FC\u30C0\u30FC -FR-Designer-Undo_All_Authority_Operations=\u524D\u56DE\u306E\u6A29\u9650\u7DE8\u96C6\u6642\u306E\u5168\u3066\u306E\u30AA\u30DA\u30EC\u30FC\u30B7\u30E7\u30F3\u3092\u64A4\u56DE\u3059 -Datasource-Context=\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8 -CellWrite-Page_After_Column=\u5217\u5F8C\u306E\u6539\u9801 +FR-Designer-Undo_All_Authority_Operations=\u524D\u56DE\u306E\u7DE8\u96C6\u6A29\u9650\u306E\u3059\u3079\u3066\u306E\u64CD\u4F5C\u3092\u53D6\u308A\u6D88\u3059 +Datasource-Context=\u6587\u8108 +CellWrite-Page_After_Column=\u5217\u5F8C FR-Designer_Cancel=\u30AD\u30E3\u30F3\u30BB\u30EB -Button-Group-Display-Columns=\u5217\u306E\u6570\u3092\u8868\u793A\u3059\u308B -Widget-Height=\u30B3\u30F3\u30C8\u30ED\u30FC\u30EB\u9AD8\u3055 +Button-Group-Display-Columns=\u5217\u6570\u3092\u8868\u793A +Widget-Height=\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u9AD8\u3055 Examples=\u4F8B -Formula_Dictionary_Display_Example=\u5B9F\u969B\u5024\u7BC4\u56F2\u306F\ -StyleAlignment-Horizontal=\u6C34\u5E73\u63C3\u3048 +Formula_Dictionary_Display_Example=\u5B9F\u969B\u306E\u5024\u306E\u7BC4\u56F2\u306F Formula_Dictionary_Display_Examples\ +StyleAlignment-Horizontal=\u6A2A\u4F4D\u7F6E HyperLink_Must_Alone_Reset=\u8907\u6570\u306E\u30CF\u30A4\u30D1\u30FC\u30EA\u30F3\u30AF -ExpandD-Expand_Direction=\u62E1\u5F35\u65B9\u5411 -Include=\u542B\u3080 -Export-Excel-Page=\u30DA\u30FC\u30B8 +ExpandD-Expand_Direction=\u5C55\u958B\u65B9\u5411 +Include=\u304C\u542B\u307E\u308C\u308B +Export-Excel-Page=\u6539\u30DA\u30FC\u30B8\u51FA\u529B FR-Designer-Min_Height=\u6700\u5C0F\u9AD8\u3055 Filed=\u30A8\u30EA\u30A2 -ReportServerP-Import_Css=Css\u5F15\u7528 -M_Insert-Formula=\u516C\u5F0F -FR-Designer_Auto-Build=\u81EA\u52D5\u7684\u306B\u30D3\u30EB\u30C9 +ReportServerP-Import_Css=Css\u53C2\u7167 +M_Insert-Formula=\u6570\u5F0F +FR-Designer_Auto-Build=\u81EA\u52D5\u69CB\u7BC9 FRFont-Foreground=\u8272 Bubble-Width=\u30D0\u30D6\u30EB\u306E\u5E45 -Form-Hierarchy_Tree=\u69CB\u9020\u30C4\u30EA\u30FC -WLayout-Border-LayoutContainer=\u4E2D\u90E8\u3068\u5317\u90E82\u30DC\u30FC\u30C0\u30FC\u30EC\u30A4\u30A2\u30A6\u30C8\u30B3\u30F3\u30C6\u30CA\u3068\u5317\u90E8\u30D6\u30ED\u30C3\u30AF\u3092\u542B\u3081 +Form-Hierarchy_Tree=\u30A2\u30FC\u30AD\u30C6\u30AF\u30C1\u30E3\u30C4\u30EA\u30FC +WLayout-Border-LayoutContainer=\u5317\u90E8\u3001\u4E2D\u592E\u90E8\u306E2\u30D6\u30ED\u30C3\u30AF\u306E\u30DC\u30FC\u30C0\u30FC\u30EC\u30A4\u30A2\u30A6\u30C8\u30B3\u30F3\u30C6\u30CA\u3067\u69CB\u6210\u3055\u308C\u308B\u30EC\u30A4\u30A2\u30A6\u30C8\u3002\u5317\u90E8\u30D6\u30ED\u30C3\u30AF\u3067\u306F\u9AD8\u3055\u3092\u8ABF\u6574\u3067\u304D\u307E\u3059\u3002 Preference-JDK_Home=JDK\u30D1\u30B9 Utils-Insert_Column=\u5217\u633F\u5165 -FR-Designer_ToolBar_Top=\u30D8\u30C3\u30C0\u30FC\u30C4\u30FC\u30EB\u30D0\u30FC +FR-Designer_ToolBar_Top=\u4E0A\u90E8\u306E\u30C4\u30FC\u30EB\u30D0\u30FC BindColumn-The_Conditions_of_FatherCell=\u89AA\u30BB\u30EB\u6761\u4EF6 Links=\u30EA\u30F3\u30AF M_Report-Report_Header=\u5E33\u7968\u30D8\u30C3\u30C0\u30FC -Sub_Report_Description=\u5B50\u5E33\u7968\u306F\u89AA\u8868\u904B\u884C\u74B0\u5883\u4E0B\u306B\u5B58\u5728\u3057\u306A\u3051\u308C\u3070\u306A\u3089\u305A\u3001\u4E21\u8005\u306F\u540C\u4E00\u30C6\u30F3\u30D7\u30EC -T_Insert-Float=\u30D5\u30ED\u30FC\u8981\u7D20\u3092\u633F\u5165 -BackgroundTexture-FishFossil=\u9B5A\u5316\u77F3 -My_Computer=\u30DE\u30A4 \u30B3\u30F3\u30D4\u30E5\u30FC\u30BF -FORMLET=\u7570\u306A\u308B\u8868\u306E\u30EB\u30FC\u30C8\u306E\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC\u306B\u30A2\u30AF\u30BB\u30B9 -HF-Undefined=\u672A\u5B9A\u7FA9 -Widget-User_Defined_Widget_Config=\u30D7\u30EC\u5B9A\u7FA9\u30B3\u30F3\u30C8\u30ED\u30FC\u30EB -Report-Write_Attributes_Group_Warning=\u8A2D\u5B9A\u3092\u30AD\u30FC?\u30C1\u30FC\u30E0\u306E\u5404\u30B3\u30E9\u30E0\u306E\u4E2D\u306E\u30AD\u30FC\u4E2A\u6570\u306F\u540C\u3058\u3067 -Form-Single_quote=\u30B7\u30F3\u30B0\u30EB\u30AF\u30A9\u30FC\u30C6\u30FC\u30B7\u30E7\u30F3\u30DE\u30FC\u30AF -Compile_Success_And_Then_Save=\u7DE8\u96C6\u7FFB\u8A33\u6210\u529F\u5F8C\u306B\u4FDD\u5B58\u3067\u304D\u307E\u3059 +Sub_Report_Description=\u5B50\u5E33\u7968\u306F\u3001\u89AA\u5E33\u7968\u3068\u540C\u3058\u5B9F\u884C\u74B0\u5883\u306B\u4FDD\u5B58\u3055\u308C\u3066\u3044\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002\u89AA\u5B50\u306F\u7570\u306A\u308B\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u306E\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002 +T_Insert-Float=\u30D5\u30ED\u30FC\u30C6\u30A3\u30F3\u30B0\u8981\u7D20\u633F\u5165 +BackgroundTexture-FishFossil=\u5316\u77F3 +My_Computer=\u30DE\u30A4\u30B3\u30F3\u30D4\u30E5\u30FC\u30BF +FORMLET=\u7570\u306A\u308B\u30C0\u30C3\u30B7\u30E5\u30DC\u30FC\u30C9\u306B\u30A2\u30AF\u30BB\u30B9\u3059\u308B\u30D1\u30E9\u30E1\u30FC\u30BF +HF-Undefined=\u5B9A\u7FA9\u3055\u308C\u3066\u3044\u306A\u3044 +Widget-User_Defined_Widget_Config=\u30AB\u30B9\u30BF\u30E0\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8 +Report-Write_Attributes_Group_Warning=\u30BB\u30EB\u30B0\u30EB\u30FC\u30D7\u306E\u5404\u30D5\u30A3\u30FC\u30EB\u30C9\u5185\u306E\u30BB\u30EB\u6570\u304C\u540C\u3058\u3067\u306A\u3051\u308C\u3070\u306A\u3089\u306A\u3044\u3053\u3068\u3092\u8A2D\u5B9A +Form-Single_quote=\u5358\u5F15\u7528\u7B26 +Compile_Success_And_Then_Save=\u30B3\u30F3\u30D1\u30A4\u30EB\u6210\u529F\u5F8C\u306B\u4FDD\u5B58\u3067\u304D\u307E\u3059 FR-Designer_Layout-Padding=\u30D1\u30C7\u30A3\u30F3\u30B0 -Layout_Container=\u30EC\u30A4\u30A2\u30A6\u30C8\u30B3\u30F3\u30C6\u30CA +Layout_Container=\u30B3\u30F3\u30C6\u30CA\u30EC\u30A4\u30A2\u30A6\u30C8 Admin=\u7BA1\u7406\u8005 -Form-EC_toolbar=\u5E33\u7968\u30E2\u30B8\u30E5\u30FC\u30EB\u30C4\u30FC\u30EB\u30D0\u30FC +Form-EC_toolbar=\u5E33\u7968\u30D6\u30ED\u30C3\u30AF\u30C4\u30FC\u30EB\u30D0\u30FC FR-App-All_Auto=\u81EA\u52D5 -Utils-Available_Columns=\u9078\u629E\u53EF\u80FD\u306E\u5217 -Form-Change_Widget_Name_Discription=\u65B0\u3057\u3044\u30B3\u30F3\u30C8\u30ED\u30FC\u30EB\u540D\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044 +Utils-Available_Columns=\u30AA\u30D7\u30B7\u30E7\u30F3\u5217 +Form-Change_Widget_Name_Discription=\u65B0\u3057\u3044\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u540D\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044 FR-Module_Designer=\u30C7\u30B6\u30A4\u30CA\u30FC\u30E2\u30B8\u30E5\u30FC\u30EB -FR-Import-Export_Text=\u6587\u66F8\u30D5\u30A1\u30A4\u30EB(\u30BF\u30D6\u6587\u5B57\u5206\u9694) +FR-Import-Export_Text=\u30C6\u30AD\u30B9\u30C8\u30D5\u30A1\u30A4\u30EB(\u30BF\u30D6\u533A\u5207\u308A) Values-Editor=\u5024\u30A8\u30C7\u30A3\u30BF FR-Designer_Yes=\u306F\u3044 -ExpandD-Expandable=\u62E1\u5F35\u6027 -Tree-Return_Full_Path=\u7D50\u679C\u306F\u5B8C\u5168\u306A\u30D1\u30B9\u3092\u623B\u308A\u307E\u3059 +ExpandD-Expandable=\u5C55\u958B +Tree-Return_Full_Path=\u7D50\u679C\u306F\u5B8C\u5168\u306A\u30EC\u30D9\u30EB\u30D1\u30B9\u3092\u623B\u308B FRFont-bolditalic=\u592A\u5B57\u659C\u4F53 FR-Base_StyleFormat_Sample=\u4F8B -Area_Value=\u5730\u57DF\u5024 +Area_Value=\u30A8\u30EA\u30A2\u5024 FR-Designer-Plugin_Disable=\u4F7F\u7528\u7981\u6B62 -Utils-Are_you_sure_to_remove_the_selected_item=\u9078\u629E\u3055\u308C\u305F\u9805\u76EE\u3092\u524A\u9664\u3057\u3066\u3082\u3088\u308D\u3057\u3044\u3067\u3059\u304B -Face_Write=\u5831\u544A -Poly-Report_Block=\u5E33\u7968\u30BF\u30A4\u30D7\u805A\u5408\u30E2\u30B8\u30E5\u30FC\u30EB -Vgap=\u5782\u76F4\u9593\u9699 +Utils-Are_you_sure_to_remove_the_selected_item=\u9805\u76EE\u3092\u524A\u9664\u3057\u307E\u3059\u304B +Face_Write=\u66F8\u304D\u8FBC\u307F +Poly-Report_Block=\u5E33\u7968\u30BF\u30A4\u30D7\u30D6\u30ED\u30C3\u30AF +Vgap=\u5782\u76F4\u9699\u9593 FR-Designer_HyperLink_Must_Alone_Reset=\u8907\u6570\u306E\u30CF\u30A4\u30D1\u30FC\u30EA\u30F3\u30AF DS-Class=\u30D7\u30ED\u30B0\u30E9\u30E0 -FR-Hyperlink_Please_Select_Reportlet=\u30CD\u30C3\u30C8\u30EF\u30FC\u30AF\u5E33\u7968\u3092\u9078\u629E\u3057\u3066\u304F\u3060\u3055\u3044 +FR-Hyperlink_Please_Select_Reportlet=\u30CD\u30C3\u30C8\u5E33\u7968\u3092\u9078\u629E\u3057\u3066\u304F\u3060\u3055\u3044 FS_Report_Type=\u30BF\u30A4\u30D7 HF-New_Line=\u6539\u884C\u30B3\u30FC\u30C9 Privilege=\u6A29\u9650 -Export-Offline-Html=\u30AA\u30D5\u30E9\u30A4\u30F3html\u5E33\u7968\u51FA\u529B -FR-Designer_open-new-form-tip=711\u4EE5\u4E0B\u306E\u751F\u7523\u306E\u305F\u3081\u306E\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u306E\u73FE\u5728\u306E\u30D0\u30FC\u30B8\u30E7\u30F3\u306F\u3001\u4E92 +Export-Offline-Html=\u30AA\u30D5\u30E9\u30A4\u30F3html\u5E33\u7968\u3092\u51FA\u529B +FR-Designer_open-new-form-tip=\u73FE\u5728\u306E\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u306F711\u4EE5\u4E0B\u306E\u30D0\u30FC\u30B8\u30E7\u30F3\u3067\u4F5C\u6210\u3055\u308C\u3066\u3044\u308B\u305F\u3081\u3001\u4E92\u63DB\u6027\u304C\u306A\u304F\u3001\u958B\u304F\u3053\u3068\u304C\u3067\u304D\u307E\u305B\u3093\u3002\u3053\u306E\u30C0\u30C3\u30B7\u30E5\u30DC\u30FC\u30C9\u3092\u7DE8\u96C6\u3059\u308B\u306B\u306F\u3001\u5BFE\u5FDC\u30D0\u30FC\u30B8\u30E7\u30F3\u306E\u30C7\u30B6\u30A4\u30CA\u30FC\u3092\u5229\u7528\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002 FR-Designer-Widget-Style_Frame_Style=\u30D5\u30EC\u30FC\u30E0\u30B9\u30BF\u30A4\u30EB -Present-No_Present=\u30D5\u30A9\u30EB\u30E0\u8A2D\u5B9A\u3092\u30AD\u30E3\u30F3\u30BB\u30EB +Present-No_Present=\u5F62\u614B\u8A2D\u5B9A\u306A\u3057 FR-Designer_Form-Password=\u30D1\u30B9\u30EF\u30FC\u30C9 X_Axis=X\u8EF8 FR-mobile_html_analysis=HTML5\u89E3\u6790 M_Edit-Bring_to_Front=\u6700\u524D\u9762\u3078\u79FB\u52D5(T) -Null_Value_Show=\u7A7A\u5024\u8868\u793A -Datasource-JNDI_DES=\u6CE8\: INITIAL_CONTEXT_FACTORY\u304C\u542B\u3080\u30AF\u30E9\u30B9\u306E.jar\u30D5\u30A1\u30A4\u30EB\u3092lib\u306B\u30B3\u30D4\u30FC +Null_Value_Show=\u6B20\u640D\u5024 +Datasource-JNDI_DES=\u6CE8\u610F\:INITIAL_CONTEXT_FACTORY\u30AF\u30E9\u30B9\u3092\u542B\u3080.jar\u30D5\u30A1\u30A4\u30EB\u3092/lib\u4E0B\u306B\u30B3\u30D4\u30FC\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059 PrintP-Print_Preview=\u5370\u5237\u30D7\u30EC\u30D3\u30E5\u30FC Form-Hierarchy_Tree_Last=\u524D -Has_been_gone=\ \u5931\u308F\u308C\u307E\u3057\u305F\u3002\u5F53\u8A72\u30B9\u30BF\u30A4\u30EB\u3092\u5897\u52A0\u3057\u307E\u3059\u304B\uFF1F -RWA-Add_Field=\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u8FFD\u52A0 -newNode=\u30CE\u30FC\u30C9\u306E\u8FFD\u52A0 -PageSetup-Shrink_to_fit_content=\u30BB\u30EB\u5185\u5BB9\u306B\u3082\u3068\u3065\u3044\u3066\u81EA\u52D5\u8C03\u6574 +Has_been_gone=\u5931\u308F\u308C\u3066\u3044\u307E\u3059\u3002\u3053\u306E\u30B9\u30BF\u30A4\u30EB\u3092\u8FFD\u52A0\u3057\u307E\u3059\u304B\uFF1F +RWA-Add_Field=\u30D5\u30A3\u30FC\u30EB\u30C9\u8FFD\u52A0 +newNode=\u8FFD\u52A0\u30CE\u30FC\u30C9 +PageSetup-Shrink_to_fit_content=\u30BB\u30EB\u5185\u5BB9\u306B\u5FDC\u3058\u3066\u81EA\u52D5\u8ABF\u6574 FR-Designer_Date=\u65E5\u4ED8 Column_Multiple=\u30C7\u30FC\u30BF\u500D\u6570 FR-App-All_File=\u30D5\u30A1\u30A4\u30EB Sort-Descending=\u964D\u9806 FR-Designer-Plugin_Delete=\u524A\u9664 -Above=\u4E0A\u8A18\u306E +Above=\u4EE5\u4E0A\u306E\u30D0\u30FC\u30B8\u30E7\u30F3 Utils-The-Chart=\u30B0\u30E9\u30D5 FRFont-plain=\u6A19\u6E96 Calculating=\u51E6\u7406\u4E2D -Form-Object=\u30D5\u30A9\u30FC\u30E0\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8 -May=\u4E94\u6708 -FR-Designer_Plugin_Normal_Update=\u66F4\u65B0 -FR-Hyperlink_Reportlet=\u30CD\u30C3\u30C8\u30EF\u30FC\u30AF\u5E33\u7968 +Form-Object=\u30C0\u30C3\u30B7\u30E5\u30DC\u30FC\u30C9\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\: +May=5\u6708 +FR-Designer_Plugin_Normal_Update=\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8 +FR-Hyperlink_Reportlet=\u30CD\u30C3\u30C8\u5E33\u7968 M_Edit-Copy=\u30B3\u30D4\u30FC(C) -Sub_Report_Message2=\u89AA\u5E33\u7968\u306F\u73FE\u5728\u306E\u904B\u884C\u74B0\u5883\u4E0B\u306B\u5B58\u5728\u3057\u307E\u305B\u3093 +Sub_Report_Message2=\u89AA\u5E33\u7968\u304C\u5229\u7528\u4E2D\u306E\u5B9F\u884C\u74B0\u5883\u306B\u3042\u308A\u307E\u305B\u3093 Sub_Report_Message3=\u81EA\u8EAB\u3092\u9078\u629E\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093 -Sub_Report_Message1=\u6B63\u78BA\u306A\u30EB\u30FC\u30C8\u3092\u9078\u629E\u3057\u3066\u304F\u3060\u3055\u3044 -Form-Allow_CustomData=\u30AB\u30B9\u30BF\u30DE\u3042\u308A -FR-Server_Version_Tip_MoreInfo=\u6240\u5C5E\u3059\u308B\u30B0\u30EB\u30FC\u30D7\u304C\u4F7F\u7528\u3059\u308BFineReport\u306E\u30C7\u30B6\u30A4\u30CA\u30FC\u306E\u30D0\u30FC\u30B8 -FR-Designer_Server-version-tip-moreInfo=\u79C1\u305F\u3061\u306E\u88FD\u54C1\u306EFineReport Designer\u30D0\u30FC\u30B8\u30E7\u30F3\u756A\u53F7 +Sub_Report_Message1=\u6B63\u3057\u3044\u30D1\u30B9\u3092\u9078\u629E\u3057\u3066\u4E0B\u3055\u3044 +Form-Allow_CustomData=\u30AB\u30B9\u30BF\u30E0 +FR-Server_Version_Tip_MoreInfo=\u30D0\u30FC\u30B8\u30E7\u30F3\u306E\u4E0D\u4E00\u81F4\u306B\u3088\u308B\u554F\u984C\u30EA\u30B9\u30AF\u3092\u907F\u3051\u308B\u305F\u3081\u306B\u3001\u3042\u306A\u305F\u306E\u30C1\u30FC\u30E0\u306B\u3088\u3063\u3066\u4F7F\u7528\u3055\u308C\u308B\u5F53\u793E\u306EFineReport\u88FD\u54C1\u306E\u30C7\u30B6\u30A4\u30CA\u30FC\u30D0\u30FC\u30B8\u30E7\u30F3\u756A\u53F7\u53CA\u3073\u8A2D\u5B9A\u3055\u308C\u308B\u30B5\u30FC\u30D0\u306E\u30D0\u30FC\u30B8\u30E7\u30F3\u756A\u53F7\u304C\u30C1\u30A7\u30C3\u30AF\u3059\u308B\u3053\u3068\u3092\u304A\u52E7\u3081\u3059\u308B\u3002 n\u3088\u308A\u9AD8\u3044\u30C7\u30B6\u30A4\u30CA\u30FC\u3092\u958B\u3044\u3066\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u3092\u4F5C\u6210\u3059\u308C\u3070\u3001\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u305F\u308A\u3001\u5143\u306E\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u5C5E\u6027\u3092\u306A\u304F\u3057\u305F\u308A\u3059\u308B\u6050\u308C\u3082\u3042\u308B\u3002\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u4F5C\u6210\u7528\u306E\u30C7\u30B6\u30A4\u30CA\u30FC\u30D0\u30FC\u30B8\u30E7\u30F3\u306F\u3001\u6700\u7D42\u914D\u7F6E\u7528\u306E\u30B5\u30FC\u30D0\u30D0\u30FC\u30B8\u30E7\u30F3\u3088\u308A\u9AD8\u3044\u5834\u5408\u3001\u30B5\u30FC\u30D0\u306F\u3042\u306A\u305F\u306B\u3088\u3063\u3066\u4F5C\u6210\u3055\u308C\u305F\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u3092\u6B63\u5E38\u306B\u8AAD\u307F\u8FBC\u3080\u3053\u3068\u304C\u3067\u304D\u306A\u3044\u304B\u3082\u3057\u308C\u306A\u3044\u3002 +FR-Designer_Server-version-tip-moreInfo=\u30D0\u30FC\u30B8\u30E7\u30F3\u306E\u4E0D\u4E00\u81F4\u3092\u539F\u56E0\u3068\u3059\u308B\u554F\u984C\u3092\u907F\u3051\u308B\u305F\u3081\u306B\u3001\u958B\u767A\u30C1\u30FC\u30E0\u3067\u5229\u7528\u3057\u3066\u3044\u308BFineReport\u88FD\u54C1\u306E\u30C7\u30B6\u30A4\u30CA\u30FC\u30D0\u30FC\u30B8\u30E7\u30F3\u756A\u53F7\u3001\u53CA\u3073\u8A2D\u5B9A\u3055\u308C\u308B\u30B5\u30FC\u30D0\u306E\u30D0\u30FC\u30B8\u30E7\u30F3\u756A\u53F7\u3092\u30C1\u30A7\u30C3\u30AF\u3059\u308B\u3053\u3068\u3092\u304A\u52E7\u3081\u3044\u305F\u3057\u307E\u3059\u3002n\u3088\u308A\u9AD8\u3044\u30C7\u30B6\u30A4\u30CA\u30FC\u3067\u4F5C\u6210\u3055\u308C\u305F\u30D5\u30A1\u30A4\u30EB\u3092\u958B\u304F\u3068\u30A8\u30E9\u30FC\u306E\u767A\u751F\u539F\u56E0\u3068\u306A\u308B\u307B\u304B\u3001\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u306E\u6A5F\u80FD\u3084\u5C5E\u6027\u306E\u4E00\u90E8\u3092\u5931\u3046\u6050\u308C\u304C\u3042\u308A\u307E\u3059\u3002\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u4F5C\u6210\u7528\u306E\u30C7\u30B6\u30A4\u30CA\u30FC\u30D0\u30FC\u30B8\u30E7\u30F3\u304C\u3001\u6700\u7D42\u7684\u306A\u914D\u7F6E\u5148\u3067\u3042\u308B\u30B5\u30FC\u30D0\u306E\u30D0\u30FC\u30B8\u30E7\u30F3\u3088\u308A\u9AD8\u3044\u5834\u5408\u3001\u30B5\u30FC\u30D0\u30FC\u3067\u5229\u7528\u3055\u308C\u308B\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u306F\u6B63\u5E38\u306B\u52D5\u4F5C\u3057\u306A\u3044\u6050\u308C\u304C\u3042\u308A\u307E\u3059\u3002 Get_Lock=\u30ED\u30C3\u30AF HF-Edit_Footer=\u30D5\u30C3\u30BF\u30FC\u7DE8\u96C6 Datasource-New_Charset=\u65B0\u6587\u5B57\u30B3\u30FC\u30C9 -Preference-Custom=\u30AB\u30B9\u30BF\u30DE\u30A4\u30BA -BackgroundTexture-Newsprint=\u65B0\u805E\u7528\u7D19 -ConditionB-Add_bracket=\u62EC\u5F27\u3092\u8FFD\u52A0\u3059\u308B +Preference-Custom=\u30AB\u30B9\u30BF\u30E0 +BackgroundTexture-Newsprint=\u65B0\u805E\u7D19 +ConditionB-Add_bracket=\u62EC\u5F27\u3092\u8FFD\u52A0 Datasource-Connection_successfully=\u63A5\u7D9A\u6210\u529F -Function-The_class_must_implement_the_interface=\u5F53\u8A72\u30AF\u30E9\u30B9\u306F\u30A4\u30F3\u30BF\u30FC\u30D5\u30A7\u30FC\u30B9\u304B\u3089\u30A4\u30F3\u30D7\u30EC +Function-The_class_must_implement_the_interface=\u30AF\u30E9\u30B9\u306F\u6B21\u306E\u30A4\u30F3\u30BF\u30FC\u30D5\u30A7\u30FC\u30B9\u3092\u5B9F\u88C5\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\uFF1A FR-Designer_ChartF-Transparency=\u900F\u660E -Crimson=\u771F\u7D05 -FR-Hyperlink_Dialog=\u5BFE\u8A71\u30A6\u30A3\u30F3\u30C9\u30A6 -FR-Designer_Covered_All=\u5168\u3066\u8986\u3046 -Hyperlink-New_Window=\u65B0\u30A6\u30A3\u30F3\u30C9\u30A6 +Crimson=\u6DF1\u7D05\u8272 +FR-Hyperlink_Dialog=\u30C0\u30A4\u30A2\u30ED\u30B0\u30DC\u30C3\u30AF\u30B9 +FR-Designer_Covered_All=\u3059\u3079\u3066\u4E0A\u66F8\u304D +Hyperlink-New_Window=\u65B0\u898F\u30A6\u30A3\u30F3\u30C9\u30A6 Style_Name=\u66F8\u5F0F\u540D -CSS_warning= \u305D\u306E\u3088\u3046\u306AWebReport\\ CSS\u30EA\u30D5\u30A1\u30EC\u30F3\u30B9CSS\u30D5\u30A1\u30A4\u30EB\u304C\u5B58\u5728test.css\u306F\u3001css / test.css\u306E\u76F8\u5BFE\u30D1\u30B9\u3068\u3057\u3066
 \u6BD4\u8F03\u7684\u6587\u5DE5\u5B66\u30C7\u30A3\u30EC\u30AF\u30C8\u30EAWebReport\u3001 +CSS_warning=\u4F8B\:WebReport\css\u306Btest.css\u53C2\u7167\u7528\u30D5\u30A1\u30A4\u30EB\u304C\u4FDD\u5B58\u3055\u308C\u3066\u3044\u308B\u5834\u5408\u3001\u76F8\u5BFE\u30D1\u30B9\u306Fcss\test.css\u306B\u306A\u308B\u3002 FR-Base_Column=\u5217 -Three_Rows_Of_Two_Grid=2\u30BB\u30EB\u306E3\u3064\u306E\u884C -DBCP_VALIDATION_QUERY=SQL\u8A8D\u8A3C\u30AF\u30A8\u30EA -M_Edit-Clear_Formats=\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8(F) -Parameter_Setting=\u30D1\u30E9\u30E1\u30FC\u30BF\u8A2D\u5B9A +Three_Rows_Of_Two_Grid=3\u884C2\u5217\u306E\u30B0\u30EA\u30C3\u30C9 +DBCP_VALIDATION_QUERY=\u63A5\u7D9A\u6709\u52B9\u6027\u3092\u691C\u8A3C\u3059\u308BSQL\u30AF\u30A8\u30EA +M_Edit-Clear_Formats=\u66F8\u5F0F(F) +Parameter_Setting=\u30D1\u30E9\u30E1\u30FC\u30BF Related=\u9023\u52D5 BorderLayout-Constraints=\u5834\u6240 -Write_Preview=\u5831\u544A\u30D7\u30EC\u30D3\u30E5\u30FC -PageSetup-Page_Order=\u5370\u5237\u9806 -Verify-Verify_Formula=\u691C\u8A3C\u5F0F +Write_Preview=\u66F8\u304D\u8FBC\u307F\u30D7\u30EC\u30D3\u30E5\u30FC +PageSetup-Page_Order=\u30DA\u30FC\u30B8\u306E\u65B9\u5411 +Verify-Verify_Formula=\u6570\u5F0F\u306E\u691C\u8A3C State=\u7701\u5E02 -FR-Designer-Widget-Style_Body_Background=\u30E1\u30A4\u30F3\u80CC\u666F +FR-Designer-Widget-Style_Body_Background=\u4E3B\u4F53\u80CC\u666F FR-App-Privilege_No=\u6A29\u9650\u304C\u3042\u308A\u307E\u305B\u3093 -Please_Drag_ParaPane= +Please_Drag_ParaPane=Please_Drag_ParaPane Come_True=\u5B9F\u73FE -ISEMPTY=\u7A7A\u6B04 +ISEMPTY=\u7A7A\u306B\u3059\u308B Background-Texture=\u30C6\u30AF\u30B9\u30C1\u30E3 FR-Designer_Verify-Message=\u30A8\u30E9\u30FC\u30E1\u30C3\u30BB\u30FC\u30B8 -Locked=\uFF08\u30ED\u30C3\u30AF\u6E08\u307F\uFF09 +Locked=(\u30ED\u30C3\u30AF\u6E08\u307F) Utils-Design-Action_Cancel=\u30AD\u30E3\u30F3\u30BB\u30EB -Image-Titled=\u5C55\u958B -Gradient-Direction=\u65B9\u5411\u3092\u5F90\u3005\u306B\u5909\u5316 -Green=\u6DF1\u7DD1 +Image-Titled=\u4E26\u3079\u3066\u8868\u793A +Gradient-Direction=\u30B0\u30E9\u30C7\u30FC\u30B7\u30E7\u30F3\u65B9\u5411 +Green=\u9752\u7DD1 Report_Engine=\u5E33\u7968\u30A8\u30F3\u30B8\u30F3 -Return-String=\u30AD\u30E3\u30E9\u30AF\u30BF\u30FC\u6587\u5B57\u5217\u306B\u623B\u308B +Return-String=\u6587\u5B57\u578B\u3092\u623B\u3059 Margin=\u30DE\u30FC\u30B8\u30F3 -Pitch_Percentage=\u30D4\u30C3\u30C1\u306E\u5272\u5408 -FR-Base_TurnOff=\u9589\u3058\u308B -Utils-has_been_existed=\u65E2\u5B58 -HF-Insert_Formula=\u516C\u5F0F\u3092\u633F\u5165 -Utils-Exit_Designer=\u30C7\u30B6\u30A4\u30CA\u30FC\u3092\u7D42\u4E86\u3059\u308B -Formula_Dictionary_Display=\u4E0A\u306E\u5B9F\u969B\u5024\u7BC4\u56F2\u5185\u306E\u3044\u305A\u308C\u306E\u5024($$$)\u306F\u3001\u305D\u306E\u8868\u793A\u5024\u306F -PageSetup-Left_to_right=\u5DE6\u304B\u3089\u53F3\u3078 -Utils-Import_Excel_Data=\u300CExcel]\u30A4\u30F3\u30D7\u30C3\u30C8 +Pitch_Percentage=\u9593\u9694\u30D1\u30FC\u30BB\u30F3\u30C6\u30FC\u30B8 +FR-Base_TurnOff=\u7121\u52B9 +Utils-has_been_existed=\u65E2\u306B\u3042\u308B +HF-Insert_Formula=\u6570\u5F0F +Utils-Exit_Designer=\u30C7\u30B6\u30A4\u30CA\u30FC\u7D42\u4E86 +Formula_Dictionary_Display=\u5B9F\u969B\u306E\u5024\u7BC4\u56F2\u5185\u306E\u5024($$$)\u306B\u5BFE\u3057\u3066\u3001\u305D\u306E\u8868\u793A\u5024\u306F +PageSetup-Left_to_right=\u4E0A\u304B\u3089\u4E0B +Utils-Import_Excel_Data=Excel\u30A4\u30F3\u30DD\u30FC\u30C8 M-Save=\u4FDD\u5B58 -redo=\u3082\u3046\u4E00\u5EA6\u3059\u308B +redo=\u3084\u308A\u76F4\u3057 Status=\u72B6\u614B Draw=\u5236\u4F5C -FR-Designer_Message=\u30E1\u30C3\u30BB\u30FC\u30B8 -Records=\u3064\u306E\u8A18\u9332 -FR-Designer_ComboBox=\u30B3\u30F3\u30DC\u30DC\u30C3\u30AF\u30B9 -Driver=\u30C9\u30E9\u30A4\u30D0\u30FC -Template_Parameters=\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC -Form-Remove_Repeat_Data=\u91CD\u8907\u3059\u308B\u30C7\u30FC\u30BF\u3092\u524A\u9664 -ECP_decode=\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u30A2\u30F3\u30ED\u30C3\u30AF -Area_Name=\u5730\u57DF\u540D +FR-Designer_Message=\u60C5\u5831 +Records=\u4EF6\u306E\u8A18\u9332 +FR-Designer_ComboBox=\u30D7\u30EB\u30C0\u30A6\u30F3\u30DC\u30C3\u30AF\u30B9 +Driver=JDBC\u30C9\u30E9\u30A4\u30D0\u30FC +Template_Parameters=\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u30D1\u30E9\u30E1\u30FC\u30BF +Form-Remove_Repeat_Data=\u91CD\u8907\u30C7\u30FC\u30BF\u3092\u524A\u9664 +ECP_decode=\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u6697\u53F7\u5316\u3092\u89E3\u9664 +Area_Name=\u30A8\u30EA\u30A2\u540D Others=\u305D\u306E\u4ED6 -Merge=\u5408\u4F75\u3059\u308B -BackgroundTexture-Parchment=\u7F8A\u76AE\u7D19 -BindColumn-Bottom_N=\u5F8C\u306EN\u500B +Merge=\u7D71\u5408 +BackgroundTexture-Parchment=\u30BB\u30FC\u30E0\u76AE +BindColumn-Bottom_N=\u4E0B\u4F4DN\u9805\u76EE Frame=\u30D5\u30EC\u30FC\u30E0 -Bottom_Border_Line=\u30DC\u30C8\u30E0\u30DC\u30FC\u30C0\u30FC -Muiti_In=\u591A\u5C64\u53D6\u308A\u30EA\u30F3\u30B0 -FR-Designer-Dependence_Install_Online=install online -Use_Default_ToolBar=\u30C7\u30D5\u30A9\u30EB\u30C8\u30C4\u30FC\u30EB\u30D0\u30FC\u4F7F\u7528 +Bottom_Border_Line=\u4E0B\u7F6B\u7DDA +Muiti_In=\u30DE\u30EB\u30C1\u30EC\u30A4\u30E4\u30FC\u30C9\u30EA\u30EB +FR-Designer-Dependence_Install_Online=\u30AA\u30F3\u30E9\u30A4\u30F3\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u74B0\u5883\u4F9D\u5B58 +Use_Default_ToolBar=\u30C7\u30D5\u30A9\u30EB\u30C8\u30C4\u30FC\u30EB\u30D0\u30FC\u3092\u4F7F\u3046 M_Server-Platform_Manager=\u5E33\u7968\u30D7\u30E9\u30C3\u30C8\u30D5\u30A9\u30FC\u30E0\u7BA1\u7406 PageSetup-inches=\u30A4\u30F3\u30C1 Form-Widget_Property=\u5C5E\u6027\u540D -FR-Layout_Padding=\u5185\u30DE\u30FC\u30B8\u30F3 -Schema=\u30B9\u30AD\u30FC\u30DE -Server_Path=\u30DB\u30B9\u30C8\u30B3\u30F3\u30D4\u30E5\u30FC\u30BF\u4F4D\u7F6E +FR-Layout_Padding=\u30D1\u30C7\u30A3\u30F3\u30B0 +Schema=\u30C6\u30FC\u30DE +Server_Path=\u30DB\u30B9\u30C8\u4F4D\u7F6E Condition_Display=\u6761\u4EF6\u8868\u793A -FR-Server-Design_template_unopened=\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u3092\u958B\u304F\u3053\u3068\u304C\u3067\u304D\u307E\u305B\u3093 +FR-Server-Design_template_unopened=\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u3092\u958B\u3051\u306A\u3044 Function-Function_Class_Name=\u95A2\u6570\u30AF\u30E9\u30B9\u540D Schedule-Template=\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u540D Tree_Data_Field=\u30C4\u30EA\u30FC\u30C7\u30FC\u30BF\u30D5\u30A3\u30FC\u30EB\u30C9 -Border-Style-Normal=\u76F4\u89D2\u306E\u56FD\u5883\u306B -Top_And_Double_Bottom_Border_Line=\u4E0A\u30D5\u30EC\u30FC\u30E0\u30E9\u30A4\u30F3\u3068\u53CC\u4E0B\u30D5\u30EC\u30FC\u30E0\u30E9\u30A4\u30F3 -FR-Server_Embedded_Server_Start=\u5185\u8535\u30B5\u30FC\u30D0-\u958B\u304F -FR-Designer-Basic_Restart_Designer_Later=\u5F8C\u3067\u518D\u8D77\u52D5\u3059\u308B -StyleAlignment-Top=\u4E0A\u8A70\u3081 -ReportServerP-First=\u30C8\u30C3\u30D7\u30DA\u30FC\u30B8 +Border-Style-Normal=\u76F4\u89D2 +Top_And_Double_Bottom_Border_Line=\u4E0A\u67A0\u7DDA\u3068\u4E8C\u91CD\u4E0B\u67A0\u7DDA +FR-Server_Embedded_Server_Start=\u7D44\u307F\u8FBC\u307F\u306E\u30B5\u30FC\u30D0-\u30AA\u30FC\u30D7\u30F3 +FR-Designer-Basic_Restart_Designer_Later=\u5F8C\u3067\u518D\u8D77\u52D5 +StyleAlignment-Top=\u4E0A\u63C3\u3048 +ReportServerP-First=\u5148\u982D\u30DA\u30FC\u30B8 Not_Exist=\u5B58\u5728\u3057\u306A\u3044 -FR-Remote_File_is_Locked=\u958B\u3053\u3046\u3068\u3057\u3066\u3044\u308B\u5E33\u7968\u306F\u73FE\u5728\u4ED6\u306E\u4EBA\u304C\u7DE8\u96C6\u3057\u3066\u3044\u307E\u3059\u3002\u5C11\u3057\u5F85\u3063\u3066\u304B +FR-Remote_File_is_Locked=\u9078\u629E\u5E33\u7968\u306F\u3001\u4ED6\u306E\u30E6\u30FC\u30B6\u30FC\u304C\u7DE8\u96C6\u4E2D\u3067\u3059\u3002\u66AB\u304F\u304A\u5F85\u3061\u4E0B\u3055\u3044 Apply=\u30A2\u30D7\u30EA Sytle-Indentation=\u30A4\u30F3\u30C7\u30F3\u30C8 -Parameter-Float=\u5358\u7CBE\u5EA6\u6D6E\u52D5\u5C0F\u6570\u70B9\u6570\u578B -HF-Center_Section=\u4E2D\u592E\u30BB\u30AF\u30B7\u30E7\u30F3 -Form-Double_quotes=\u30C0\u30D6\u30EB\u30AF\u30AA\u30FC\u30C6\u30FC\u30B7\u30E7\u30F3\u30DE\u30FC\u30AF +Parameter-Float=\u5358\u7CBE\u5EA6\u578B +HF-Center_Section=\u4E2D\u9593\u30A8\u30EA\u30A2 +Form-Double_quotes=\u4E8C\u91CD\u5F15\u7528\u7B26 M_File-Export-Word=Word -M_File-Export-Text=\u30C6\u30AD\u30B9\u30C8\u30D5\u30A1\u30A4\u30EB(\u30BF\u30D6\u533A\u5207\u308A)(T) -PageSetup-First_Page_Number=\u30B9\u30BF\u30FC\u30C8\u306E\u30DA\u30FC\u30B8\u756A\u53F7 +M_File-Export-Text=\u30C6\u30AD\u30B9\u30C8\u30D5\u30A1\u30A4\u30EB(\u30BF\u30D6\u533A\u5207\u308A) +PageSetup-First_Page_Number=\u958B\u59CB\u30DA\u30FC\u30B8 Execute=\u5B9F\u884C Task=\u30BF\u30B9\u30AF -Custom_Button_Type_Submit=\u63D0\u51FA -FR-Designer-Widget_Settings=\u30B3\u30F3\u30C8\u30ED\u30FC\u30EB\u8A2D\u5B9A -IS_Need_Password=\u30D1\u30B9\u30EF\u30FC\u30C9\u304C\u5FC5\u8981\u3067\u3059 +Custom_Button_Type_Submit=\u9001\u4FE1 +FR-Designer-Widget_Settings=\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u8A2D\u5B9A +IS_Need_Password=\u30D1\u30B9\u30EF\u30FC\u30C9\u5FC5\u8981 PageSetup-Horizontally=\u6C34\u5E73\u4E2D\u592E\u63C3\u3048 -No_Editor_Property_Definition=\u5F53\u8A72\u30A8\u30C7\u30A3\u30BF\u306F\u5C5E\u6027\u5B9A\u7FA9\u304C\u3042\u308A\u307E\u305B\u3093 +No_Editor_Property_Definition=\u9078\u629E\u306E\u30A8\u30C7\u30A3\u30BF\u306F\u5C5E\u6027\u5B9A\u7FA9\u304C\u3042\u308A\u307E\u305B\u3093 Env-Remote_Server=\u30EA\u30E2\u30FC\u30C8\u30B5\u30FC\u30D0 FR-Utils_Background=\u80CC\u666F FR-Designer-Plugin_Warning=\u8B66\u544A -Server-version-info=\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u30D5\u30A1\u30A4\u30EB\u306F\u3001\u5F8C\u3067\u8A2D\u8A08\u3084\u5143\u306E\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u5C5E\u6027\u3092\u5931\u3046\u30EA\u30B9\u30AF\u306B -CellWrite-Page_After_Row=\u884C\u5F8C\u306E\u6539\u9801 -HF-Right_Section=\u53F3\u5074\u30BB\u30AF\u30B7\u30E7\u30F3 -PageSetup-Title_Start_Row=\u91CD\u8907\u3059\u308B\u6A19\u984C\u884C -From=\u7B2C\u3000\u304B\u3089 +Server-version-info=\u958B\u3044\u305F\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u30D5\u30A1\u30A4\u30EB\u306F\u3001\u4E0A\u4F4D\u30A8\u30C7\u30A3\u30B7\u30E7\u30F3\u306E\u30C7\u30B6\u30A4\u30CA\u30FC\u3067\u4F5C\u6210\u3055\u308C\u3066\u3044\u307E\u3059\u3002\u4E0A\u4F4D\u30A8\u30C7\u30A3\u30B7\u30E7\u30F3\u3067\u4F5C\u6210\u3055\u308C\u305F\u30D5\u30A1\u30A4\u30EB\u3092\u958B\u304F\u3068\u30A8\u30E9\u30FC\u306E\u767A\u751F\u539F\u56E0\u3068\u306A\u308B\u307B\u304B\u3001\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u306E\u6A5F\u80FD\u3084\u5C5E\u6027\u306E\u4E00\u90E8\u3092\u5931\u3046\u6050\u308C\u304C\u3042\u308A\u307E\u3059\u3002\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u4F5C\u6210\u7528\u306E\u30C7\u30B6\u30A4\u30CA\u30FC\u306E\u30D0\u30FC\u30B8\u30E7\u30F3\u304C\u3001\u914D\u5099\u3055\u308C\u308B\u30A8\u30C7\u30A3\u30B7\u30E7\u30F3\u3088\u308A\u3082\u4E0B\u4F4D\u306E\u30A8\u30C7\u30A3\u30B7\u30E7\u30F3\u3067\u3042\u308B\u3053\u3068\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002 +CellWrite-Page_After_Row=\u884C\u5F8C +HF-Right_Section=\u53F3\u30A8\u30EA\u30A2 +PageSetup-Title_Start_Row=\u7E70\u308A\u8FD4\u3057\u30BF\u30A4\u30C8\u30EB\u884C +From=From Preference-Grid_Line_Color=\u30B0\u30EA\u30C3\u30C9\u7DDA\u306E\u8272 -RowTo=\u884C\u304B\u3089\u7B2C\u307E\u3067 -FR-Designer_ReportColumns-Repeat_Column=\u5217\u9806\u5E8F\u3092\u30B3\u30D4\u30FC +RowTo=~ +FR-Designer_ReportColumns-Repeat_Column=\u5217\u306E\u9806\u5E8F\u3092\u30B3\u30D4\u30FC M_Server-Function_Manager=\u95A2\u6570\u30DE\u30CD\u30FC\u30B8\u30E3\u30FC KeyWord=\u30AD\u30FC\u30EF\u30FC\u30C9 DS-Multi_Dimensional_Database=\u591A\u6B21\u5143\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9 BiasD-Slope_Line=\u659C\u7DDA Tue=\u706B -ReportServerP-Last=\u7D42\u4E86\u9801 +ReportServerP-Last=\u6700\u7D42\u30DA\u30FC\u30B8 FR-Base_Columns=\u5217 -SpecifiedG-Leave_in_their_own_groups=\u5404\u30B0\u30EB\u30FC\u30D7\u5185\u306B\u4FDD\u7559\u3059\u308B -LOG-Please_Wait=\u5C11\u3005\u304A\u5F85\u3061\u304F\u3060\u3055\u3044 -Form-ToolBar=\u8868\u30C4\u30FC\u30EB\u30D0\u30FC -FR-Base_sure_remove_item=\u672C\u5F53\u306B\u9078\u629E\u3057\u305F\u9805\u76EE\u3092\u524A\u9664\u3057\u307E\u3059\u304B -Component_Scale=\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u30B9\u30B1\u30FC\u30EB -Hyperlink-Use_CJK_to_encode_parameter=CJK\u51E6\u7406\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC\u4F7F\u7528 -LOG-Has_Been_Openned=\u958B\u304D\u307E\u3057\u305F -FR-Designer-Dependence= +SpecifiedG-Leave_in_their_own_groups=\u5404\u81EA\u306E\u30B0\u30EB\u30FC\u30D7\u5185\u306B\u6B8B\u308B +LOG-Please_Wait=\u51E6\u7406\u4E2D +Form-ToolBar=\u30C0\u30C3\u30B7\u30E5\u30DC\u30FC\u30C9\u30C4\u30FC\u30EB\u30D0\u30FC +FR-Base_sure_remove_item=\u9078\u629E\u3057\u305F\u9805\u76EE\u3092\u524A\u9664\u3057\u307E\u3059\u304B +Component_Scale=\u30E2\u30B8\u30E5\u30FC\u30EB\u30BA\u30FC\u30E0 +Hyperlink-Use_CJK_to_encode_parameter=CJK\u3067\u30D1\u30E9\u30E1\u30FC\u30BF\u3092\u51E6\u7406 +LOG-Has_Been_Openned=\u8868\u793A +FR-Designer-Dependence=\u74B0\u5883\u4F9D\u5B58 ECP_error_pwd=\u30D1\u30B9\u30EF\u30FC\u30C9\u30A8\u30E9\u30FC -REPORTLET=\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u306E\u30EB\u30FC\u30C8\u306E\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC\u306B\u30A2\u30AF\u30BB\u30B9 -RWA-Column_Offset=\u5217\u30AA\u30D5\u30BB\u30C3\u30C8 +REPORTLET=\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u306E\u30D1\u30B9\u306B\u30A2\u30AF\u30BB\u30B9\u3059\u308B\u30D1\u30E9\u30E1\u30FC\u30BF +RWA-Column_Offset=\u5217\u306E\u30AA\u30D5\u30BB\u30C3\u30C8 Forecast=\u4E88\u6E2C -Light_Orange=\u660E\u308B\u3044\u30AA\u30EC\u30F3\u30B8 -StyleAlignment-Vertical=\u5782\u76F4\u63C3\u3048 -Form-List=\u30EA\u30B9\u30C8 -ParameterD-Show_Parameter_Window=\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC\u30A6\u30A4\u30F3\u30C9\u30A6\u3092\u8868\u793A\u3059\u308B -FR-Designer_Set_Submit_Event=\u63D0\u51FA\u30A4\u30D9\u30F3\u30C8\u3092\u8A2D\u5B9A -Value_Percent=\u5024\u5272\u5408\u4F8B -DBCP_MIN_EVICTABLE_IDLE_TIMEMILLIS=\u30A2\u30A4\u30C9\u30EB\u6700\u5C0F\u6642\u9593\u5024\u4FDD\u6301 -Function-The_class_must_be_located_in=\u5F53\u8A72\u30AF\u30E9\u30B9\u306F\u5B58\u5728\u3057\u306A\u3051\u308C\u3070\u306A\u308A\u307E\u305B\u3093 +Light_Orange=\u30E9\u30A4\u30C8\u30AA\u30EC\u30F3\u30B8 +StyleAlignment-Vertical=\u7E26\u4F4D\u7F6E +Form-List=\u4E00\u89A7 +ParameterD-Show_Parameter_Window=\u30D1\u30E9\u30E1\u30FC\u30BF\u30A6\u30A3\u30F3\u30C9\u30A6\u8868\u793A +FR-Designer_Set_Submit_Event=\u66F8\u304D\u8FBC\u307F\u30A4\u30D9\u30F3\u30C8\u8A2D\u5B9A +Value_Percent=\u5024\u306E\u30D1\u30FC\u30BB\u30F3\u30C6\u30FC\u30B8 +DBCP_MIN_EVICTABLE_IDLE_TIMEMILLIS=\u30A2\u30A4\u30C9\u30EB\u63A5\u7D9A\u306E\u751F\u5B58\u671F\u9593 +Function-The_class_must_be_located_in=\u30AF\u30E9\u30B9\u306E\u4F4D\u7F6E\uFF1A FR-Action_Sort=\u30BD\u30FC\u30C8 DataFunction-Average=\u5E73\u5747 -FR-Designer_Show_in_Containing_Folder=\u6240\u5728\u3059\u308B\u30D5\u30A1\u30A4\u30EB\u3092\u958B\u304F +FR-Designer_Show_in_Containing_Folder=\u30D5\u30A1\u30A4\u30EB\u306E\u5834\u6240\u3092\u958B\u304F M_File-Export-Excel=Excel DataFunction-Max=\u6700\u5927\u5024 -FR-Designer_Form-Widget_Name=\u30B3\u30F3\u30C8\u30ED\u30FC\u30EB\u540D -FS_End_Date=\u7D42\u4E86\u65E5\u671F -Export-Excel-Simple=\u5143 -ColumnTo=\u5217\u306F\u7B2C\u3000\u307E\u3067 -SpecifiedG-Discard_all_others=\u4ED6\u306E\u3059\u3079\u3066\u3092\u7834\u68C4\u3059\u308B -DS-TableData=\u30C7\u30FC\u30BF\u30BD\u30FC\u30B9 -Form-DataTable=\u30C7\u30FC\u30BF\u8868 -Sub_Report_ToolTips=\u5B50\u5E33\u7968\u63D0\u793A +FR-Designer_Form-Widget_Name=\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u540D +FS_End_Date=\u7D42\u4E86\u65E5\u6642 +Export-Excel-Simple=\u6A19\u6E96\u51FA\u529B +ColumnTo=~ +SpecifiedG-Discard_all_others=\u305D\u306E\u4ED6\u306E\u3059\u3079\u3066\u3092\u6368\u3066\u308B +DS-TableData=\u30C7\u30FC\u30BF\u30BB\u30C3\u30C8 +Form-DataTable=\u30C7\u30FC\u30BF\u30C6\u30FC\u30D6\u30EB +Sub_Report_ToolTips=\u5B50\u5E33\u7968\u30D2\u30F3\u30C8 Right_Top=\u53F3\u4E0A -M_Edit-Merge_Cell=\u30BB\u30EB\u3092\u7D50\u5408\u3059\u308B -FR-Designer_Restore_Default=\u30C7\u30D5\u30A9\u30EB\u30C8\u5FA9\u5143 -Component_Interval=\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u306E\u9593\u9694 -Cover_None=\u5168\u3066\u8986\u308F\u306A\u3044 -Datasource-From_Database=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u304B\u3089 -Folder=\u76EE\u6B21 -Form-Allow_Edit=\u76F4\u63A5\u7DE8\u96C6\u3042\u308A +M_Edit-Merge_Cell=\u30BB\u30EB\u7D50\u5408 +FR-Designer_Restore_Default=\u30C7\u30D5\u30A9\u30EB\u30C8\u306B\u623B\u3059 +Component_Interval=\u30E2\u30B8\u30E5\u30FC\u30EB\u9593\u9694 +Cover_None=\u5168\u3066\u4E0A\u66F8\u304D\u3057\u306A\u3044 +Datasource-From_Database=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u8868 +Folder=\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA +Form-Allow_Edit=\u7DE8\u96C6\u3092\u8A31\u53EF M_Edit-Clear=\u30AF\u30EA\u30A2(A) ParentCell_Setting=\u89AA\u30BB\u30EB\u8A2D\u5B9A -Only_selected_cell_can_paste_only=\u30BB\u30EB\u306F\u8CBC\u308A\u4ED8\u3051\u308B\u3053\u3068\u304C\u3067\u304D\u307E\u3059\u9078\u629E\u3055\u308C\u3066\u3044\u308B\u5834\u5408\u306B\u306E\u307F -M_Report-Report_Columns=\u5E33\u7968\u30B3\u30E9\u30E0 +Only_selected_cell_can_paste_only=\u30BB\u30EB\u304C\u9078\u629E\u3055\u308C\u3066\u304B\u3089\u8CBC\u308A\u4ED8\u3051\u3059\u308B\u3053\u3068\u304C\u3067\u304D\u308B +M_Report-Report_Columns=\u5E33\u7968\u30B5\u30D6\u30D5\u30A3\u30FC\u30EB\u30C9 Unit_Hundred=\u767E -FR-Designer_DataTable-Build= -Widget-Form_Widget_Config=\u8868\u30B3\u30F3\u30C8\u30ED\u30FC\u30EB -Server-version-tip-moreInfo=\u79C1\u305F\u3061\u306E\u88FD\u54C1\u306EFineReport Designer\u30D0\u30FC\u30B8\u30E7\u30F3\u756A\u53F7\u3060\u3051\u3067\u306A\u304F\u3001 -Actions=\u30A2\u30AF\u30B7\u30E7\u30F3 -FR-Designer-Dependence_Connect_Server_Error=connect error -High=\u9AD8 +FR-Designer_DataTable-Build=\u9AD8\u901F\u30EC\u30A4\u30E4\u30FC\u5225\u69CB\u7BC9 +Widget-Form_Widget_Config=\u30C0\u30C3\u30B7\u30E5\u30DC\u30FC\u30C9\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8 +Server-version-tip-moreInfo=\u30D0\u30FC\u30B8\u30E7\u30F3\u306E\u4E0D\u4E00\u81F4\u306B\u3088\u308B\u554F\u984C\u30EA\u30B9\u30AF\u3092\u907F\u3051\u308B\u305F\u3081\u306B\u3001\u3042\u306A\u305F\u306E\u30C1\u30FC\u30E0\u306B\u3088\u3063\u3066\u4F7F\u7528\u3055\u308C\u308B\u5F53\u793E\u306EFineReport\u88FD\u54C1\u306E\u30C7\u30B6\u30A4\u30CA\u30FC\u30D0\u30FC\u30B8\u30E7\u30F3\u756A\u53F7\u53CA\u3073\u8A2D\u5B9A\u3055\u308C\u308B\u30B5\u30FC\u30D0\u306E\u30D0\u30FC\u30B8\u30E7\u30F3\u756A\u53F7\u3092\u30C1\u30A7\u30C3\u30AF\u3059\u308B\u3053\u3068\u3092\u304A\u52E7\u3081\u3044\u305F\u3057\u307E\u3059\u3002 n\u3088\u308A\u9AD8\u3044\u30C7\u30B6\u30A4\u30CA\u30FC\u306B\u3088\u3063\u3066\u4F5C\u6210\u3055\u308C\u305F\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u3092\u5229\u7528\u3059\u308B\u5834\u5408\u3001\u30A8\u30E9\u30FC\u767A\u751F\u3084\u3001\u5143\u306E\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u5C5E\u6027\u304C\u5931\u308F\u308C\u308B\u6050\u308C\u304C\u3042\u308A\u307E\u3059\u3002\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u4F5C\u6210\u7528\u306E\u30C7\u30B6\u30A4\u30CA\u30FC\u30D0\u30FC\u30B8\u30E7\u30F3\u304C\u3001\u6700\u7D42\u7684\u306A\u914D\u7F6E\u5148\u3067\u3042\u308B\u30B5\u30FC\u30D0\u306E\u30D0\u30FC\u30B8\u30E7\u30F3\u3088\u308A\u9AD8\u3044\u5834\u5408\u3001\u30B5\u30FC\u30D0\u30FC\u3067\u5229\u7528\u3055\u308C\u308B\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u306F\u6B63\u5E38\u306B\u52D5\u4F5C\u3057\u306A\u3044\u6050\u308C\u304C\u3042\u308A\u307E\u3059\u3002 +Actions=\u30BF\u30B9\u30AF +FR-Designer-Dependence_Connect_Server_Error=\u30B5\u30FC\u30D0\u306B\u63A5\u7D9A\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\u3001\u6642\u9593\u3092\u3042\u3051\u3066\u518D\u8A66\u884C\u3057\u3066\u304F\u3060\u3055\u3044\u3002 +High=\u9AD8\u3055 HJS-Send_Failed=\u9001\u4FE1\u5931\u6557 -HJS-Message=\u30E1\u30C3\u30BB\u30FC\u30B8\u5185\u5BB9 -File-Allow_Upload_Files=\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9\u304C\u8A31\u53EF\u3055\u308C\u305F\u30D5\u30A1\u30A4\u30EB\u30BF\u30A4\u30D7 +HJS-Message=\u5185\u5BB9 +File-Allow_Upload_Files=\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9\u3067\u304D\u308B\u30D5\u30A1\u30A4\u30EB\u30BF\u30A4\u30D7 FR-Designer-Form-ToolBar_Chart=\u30B0\u30E9\u30D5 -Thick_Bottom_Border_Line=\u7C97\u5E95\u30D5\u30EC\u30FC\u30E0\u30E9\u30A4\u30F3 +Thick_Bottom_Border_Line=\u4E0B\u592A\u7F6B\u7DDA FR-Action_Remove=\u524A\u9664 -FRFont-Style=\u30B9\u30BF\u30A4\u30EB -Select_DataColumn=\u30C7\u30FC\u30BF\u5217\u3092\u9078\u629E +FRFont-Style=\u30D5\u30A9\u30F3\u30C8 +Select_DataColumn=\u30C7\u30FC\u30BF\u5217\u9078\u629E StartValue=\u958B\u59CB\u5024 -SINGLE_FILE_UPLOAD=\u5358\u72EC\u30D5\u30A1\u30A4\u30EB\u306E\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9\u306E\u307F\u30B5\u30DD\u30FC\u30C8 -BackgroundTexture-Cork=\u30B3\u30EB\u30AF\u6813 -M_Format-Data_Map=\u30C7\u30FC\u30BF\u30DE\u30C3\u30D7 -FR-mobile_native_analysis=\u4E00\u6B21\u89E3\u6790 +SINGLE_FILE_UPLOAD=\u5358\u4E00\u30D5\u30A1\u30A4\u30EB\u306E\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9\u306E\u307F\u30B5\u30DD\u30FC\u30C8 +BackgroundTexture-Cork=\u30B3\u30EB\u30AF +M_Format-Data_Map=\u30C7\u30FC\u30BF\u8F9E\u66F8 +FR-mobile_native_analysis=\u30CD\u30A4\u30C6\u30A3\u30D6\u89E3\u6790 HighLight=\u30CF\u30A4\u30E9\u30A4\u30C8 -FR-Designer_Dropdown-More-Preview=\u4E0B\u62C9\u83B7\u53D6\u66F4\u591A\u9884\u89C8\u65B9\u5F0F +FR-Designer_Dropdown-More-Preview=\u30D7\u30EB\u30C0\u30A6\u30F3\u3067\u66F4\u306A\u308B\u30D7\u30EC\u30D3\u30E5\u30FC\u65B9\u5F0F\u3092\u53D6\u5F97 local=\u30ED\u30FC\u30AB\u30EB -FR-Designer_Gradation=\u69CB\u6210 -PageSetup-Finis_Start_Column=\u91CD\u8907\u3059\u308B\u7D42\u4E86\u5217 -Env-Invalid_User_and_Password=\u7121\u52B9\u306A\u30E6\u30FC\u30B6\u540D\u307E\u305F\u306F\u30D1\u30B9\u30EF\u30FC\u30C9\u3067\u3059 -FR-Designer-Plugin_All_Plugins=\u5168\u3066\u306E\u30D7\u30E9\u30B0\u30A4\u30F3 +FR-Designer_Gradation=\u30EC\u30D9\u30EB +PageSetup-Finis_Start_Column=\u7E70\u308A\u8FD4\u3057\u7D42\u4E86\u5217 +Env-Invalid_User_and_Password=\u7121\u52B9\u306A\u30E6\u30FC\u30B6\u30FCID\u3084\u30D1\u30B9\u30EF\u30FC\u30C9 +FR-Designer-Plugin_All_Plugins=\u3059\u3079\u3066\u306E\u30D7\u30E9\u30B0\u30A4\u30F3 FR-Designer_Prepare_Export=\u5C0E\u51FA\u3092\u958B\u59CB\u3057\u3066\u3044\u307E\u3059\u3002\u304A\u5F85\u3061\u304F\u3060\u3055\u3044 -DBCP_TEST_ON_RETURN=\u63A5\u7D9A\u524D\u691C\u67FB\u306B\u623B\u308B -no-alternatives=\u5168\u304F\u9078\u629E\u80A2\u304C\u3042\u308A\u307E\u305B\u3093 -FR-Designer_Submmit_WClass=\u30AB\u30B9\u30BF\u30E0\u9001\u4FE1 +DBCP_TEST_ON_RETURN=\u63A5\u7D9A\u306E\u8FD4\u5374\u524D\u306B\u63A5\u7D9A\u6709\u52B9\u6027\u3092\u691C\u8A3C +no-alternatives=\u30AA\u30D7\u30B7\u30E7\u30F3\u306A\u3057 +FR-Designer_Submmit_WClass=\u30AF\u30E9\u30B9\u66F8\u304D\u8FBC\u307F M_Insert-Slope_Line=\u659C\u7DDA FR-Designer-Plugin_Plugin_Description=\u30D7\u30E9\u30B0\u30A4\u30F3\u8AAC\u660E -ExpandD-Not_Expand=\u62E1\u5F35\u3057\u306A\u3044 -Utils-Bottom_to_Top=\u4E0B\u304B\u3089\u4E0A\u3078 -Collect-Click\!_Get_user_information_code=\u30AF\u30EA\u30C3\u30AF\u3057\u3066\!\u30A2\u30AF\u30C6\u30A3\u30D9\u30FC\u30C8\u30B3\u30FC\u30C9\u3092\u53D6\u5F97 -FR-Already_exist=\u73FE\u5728\u306E\u74B0\u5883\u306B\u306F\u5B58\u5728\u3057\u3066\u3044\u307E\u3059\: -Send=\u767A\u9001 -M_Edit-Clear_All=\u5168\u3066\u30AF\u30EA\u30A2(A) -Brown_Orange=\u30D6\u30E9\u30A6\u30F3 +ExpandD-Not_Expand=\u5C55\u958B\u3057\u306A\u3044 +Utils-Bottom_to_Top=\u4E0B\u304B\u3089\u4E0A +Collect-Click\!_Get_user_information_code=\u30AF\u30EA\u30C3\u30AF\!\u30A2\u30AF\u30C6\u30A3\u30D9\u30FC\u30B7\u30E7\u30F3\u30B3\u30FC\u30C9\u3092\u53D6\u5F97 +FR-Already_exist=\u304A\u4F7F\u3044\u306E\u74B0\u5883\u306B\u3059\u3067\u306B\u3042\u308A\u307E\u3059\: +Send=\u8EE2\u9001 +M_Edit-Clear_All=\u3059\u3079\u3066(A) +Brown_Orange=\u30AB\u30FC\u30AD PageSetup-Portrait=\u7E26\u65B9\u5411 FR-Designer_Form-RadioGroup=\u30E9\u30B8\u30AA\u30DC\u30BF\u30F3\u30B0\u30EB\u30FC\u30D7 -FR-Utils-App_AllFiles=\u5168\u3066\u306E\u30D5\u30A1\u30A4\u30EB -Popup=\u30DD\u30C3\u30D7\u30A2\u30C3\u30D7 -Server_Charset=\u30B5\u30FC\u30D0\u30B3\u30FC\u30C7\u30A3\u30F3\u30B0 -CellWrite-Repeat_Content_When_Paging=\u6539\u9801\u3059\u308B\u6642\u7E70\u308A\u8FD4\u3057\u624B\u8868\u793A\u3059\u308B +FR-Utils-App_AllFiles=\u3059\u3079\u3066\u306E\u30D5\u30A1\u30A4\u30EB +Popup=\u8868\u793A +Server_Charset=\u30B5\u30FC\u30D0\u30B3\u30FC\u30C9 +CellWrite-Repeat_Content_When_Paging=\u6539\u30DA\u30FC\u30B8\u6642\u7E70\u308A\u8FD4\u3057\u8868\u793A Utils-No_Pagination=\u6539\u30DA\u30FC\u30B8\u3057\u306A\u3044 -Form-NullLayout=\u7D76\u5BFE\u5B9A\u4F4D -ConditionB-Remove_bracket=\u62EC\u5F27\u3092\u524A\u9664\u3059\u308B +Form-NullLayout=\u7D76\u5BFE\u914D\u7F6E +ConditionB-Remove_bracket=\u62EC\u5F27\u3092\u524A\u9664 email=\u30E1\u30FC\u30EB\u30DC\u30C3\u30AF\u30B9 -Minute=\u5206\u9593 -FR-Designer-Plugin_Update=\u30D7\u30E9\u30B0\u30A4\u30F3\u66F4\u65B0 -alraedy_close=\u3059\u3067\u306B\u30AA\u30D5 -ComboCheckBox-End_Symbol=\u7D42\u7D50\u6587\u5B57 +Minute=\u5206 +FR-Designer-Plugin_Update=\u30D7\u30E9\u30B0\u30A4\u30F3\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8 +alraedy_close=\u9589\u3081\u305F +ComboCheckBox-End_Symbol=\u7D42\u4E86\u6587\u5B57 DataColumn=\u30C7\u30FC\u30BF\u5217 Form-Password=\u30D1\u30B9\u30EF\u30FC\u30C9 -FR-Background_Image_Adjust=\u9069\u5FDC -Export-Excel-PageToSheet=\u30B7\u30FC\u30C8 +FR-Background_Image_Adjust=\u8ABF\u6574 +Export-Excel-PageToSheet=1\u30DA\u30FC\u30B81\u30B7\u30FC\u30C8\u51FA\u529B Edit-Row_Count=\u884C\u6570 DS-Report_TableData=\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u30C7\u30FC\u30BF\u30BB\u30C3\u30C8 Sche-Hour=\u6642 -Group_Count=\u7DCF\u6570\u8868\u793A +Group_Count=\u7DCF\u500B\u6570\u8868\u793A EndValue=\u7D42\u4E86\u5024 FR-Designer_Sytle-Indentation=\u30A4\u30F3\u30C7\u30F3\u30C8 DownBarBorderStyleAndColor=\u30D5\u30A9\u30FC\u30EB\u30AB\u30E9\u30E0\u30B9\u30BF\u30A4\u30EB World=\u4E16\u754C FR-Designer-Basic_Cancel=\u30AD\u30E3\u30F3\u30BB\u30EB Finally=\u6700\u5F8C -Low=\u4F4E -Please_Input_The_Key=\u5BFE\u5FDC\u3059\u308B\u30DE\u30C3\u30D7\u306B\u4F7F\u7528\u3059\u308Bkey\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044 -Smart=\u30A4\u30F3\u30C6\u30EA\u30B8\u30A7\u30F3\u30C8 -Preference-Predefined=\u30D7\u30EC\u5B9A\u7FA9 -Current_custom_global=\u73FE\u5728\u306E\u5E33\u7968\u304C\u7528\u3044\u308B\u30AB\u30B9\u30BF\u30DE\u30A4\u30BA\u5168\u5C40\u30B9\u30BF\u30A4\u30EB -FR-Designer-Plugin_Shop_Need_Install=\u3042\u306A\u305F\u304C\u30A2\u30C9\u30AA\u30F3\u3055\u308C\u3066\u3044\u306A\u3044\u30EA\u30BD\u30FC\u30B9\u306E\u5E97\u8217\u3092\u3001\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9\u3059\u308B\u304B\u3069\u3046\u304B\uFF1F -WEB-Pagination_Setting=\u30DA\u30FC\u30B8\u5225\u30D7\u30EC\u30D3\u30E5\u30FC\u8A2D\u5B9A +Low=\u4F4E\u3044 +Please_Input_The_Key=\u5BFE\u5FDC\u306E\u30DE\u30C3\u30D7\u306B\u4F7F\u308F\u308C\u308B\u30AD\u30FC\u3092\u5165\u529B\u3057\u3066\u4E0B\u3055\u3044 +Smart=\u30B9\u30DE\u30FC\u30C8 +Preference-Predefined=\u4E8B\u524D\u5B9A\u7FA9 +Current_custom_global=\u73FE\u5728\u30AB\u30B9\u30BF\u30E0\u30B0\u30ED\u30FC\u30D0\u30EB\u30B9\u30BF\u30A4\u30EB +FR-Designer-Plugin_Shop_Need_Install=\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9\u3057\u307E\u3059\u304B? +WEB-Pagination_Setting=\u6539\u30DA\u30FC\u30B8\u30D7\u30EC\u30D3\u30E5\u30FC\u8A2D\u5B9A RCodeDrawPix=\u753B\u7D20 FR-Designer-Widget-Style_Alpha=\u4E0D\u900F\u660E\u5EA6 BorderLayout-North=\u5317 -HJS-Current_Page=\u30AB\u30EC\u30F3\u30C8\u30DA\u30FC\u30B8 -Compile=\u7DE8\u96C6\u7FFB\u8A33 -Show_Blank_Row=\u7A7A\u767D\u884C\u3092\u88DC\u5145 -TableData_Dynamic_Parameter_Setting=\u30C0\u30A4\u30CA\u30DF\u30C3\u30AF\u30D1\u30E9\u30E1\u30FC\u30BF +HJS-Current_Page=\u73FE\u5728\u306E\u30DA\u30FC\u30B8 +Compile=\u30B3\u30F3\u30D1\u30A4\u30EB +Show_Blank_Row=\u7A7A\u767D\u884C\u88DC\u5145 +TableData_Dynamic_Parameter_Setting=\u52D5\u7684\u30D1\u30E9\u30E1\u30FC\u30BF\u6CE8\u5165 FR-Background_Image_Default=\u30C7\u30D5\u30A9\u30EB\u30C8 -BackgroundTexture-WhiteMarble=\u767D\u3044\u5927\u7406\u77F3 +BackgroundTexture-WhiteMarble=\u5927\u7406\u77F3(\u767D) DataFunction-Sum=\u5408\u8A08 -Collect-The_user_information_code_is_invalid=\u3053\u306E\u30A2\u30AF\u30C6\u30A3\u30D9\u30FC\u30C8\u30B3\u30FC\u30C9\u306F\u7121\u52B9\u3067\u3059\u3002\u516C\u5F0F\u30DB\u30FC\u30E0\u30DA\u30FC\u30B8\u3067\u7533\u8ACB\u3057\u306A\u304A\u3057\u3066\u304F\u3060\u3055\u3044 -Preference-Locale=\u56FD\u969B\u5316 +Collect-The_user_information_code_is_invalid=\u3053\u306E\u30A2\u30AF\u30C6\u30A3\u30D9\u30FC\u30B7\u30E7\u30F3\u30B3\u30FC\u30C9\u306F\u7121\u52B9\u3067\u3059\u3001\u516C\u5F0F\u30B5\u30A4\u30C8\u3067\u7533\u8ACB\u3057\u3066\u304F\u3060\u3055\u3044 +Preference-Locale=\u30B0\u30ED\u30FC\u30D0\u30EB\u5316 M_File-Export-PDF=PDF -BiasD-From-lower_left_to_upper_right=\u5DE6\u4E0B\u5074\u304B\u3089\u53F3\u4E0A\u5074\u3078\u5E83\u304C\u308B -Border-Style=\u67A0\u7DDA\u306E\u30B9\u30BF\u30A4\u30EB +BiasD-From-lower_left_to_upper_right=\u5DE6\u4E0B\u5074\u304B\u3089\u53F3\u4E0A\u5074\u3078 +Border-Style=\u67A0\u306E\u30B9\u30BF\u30A4\u30EB Sort=\u30BD\u30FC\u30C8 -Image-Image_Layout=\u30A4\u30E1\u30FC\u30B8\u30EC\u30A4\u30A2\u30A6\u30C8 +Image-Image_Layout=\u753B\u50CF\u30EC\u30A4\u30A2\u30A6\u30C8 Panel=\u30D1\u30CD\u30EB -FR-Designer-Basic_Copy_Build_NO_OK=\u7D44\u307F\u7ACB\u3066\u30D0\u30FC\u30B8\u30E7\u30F3\u756A\u53F7\u306B\u30B3\u30D4\u30FC\u3057\u307E\u3057\u305F -All_Border_Line=\u3059\u3079\u3066\u306E\u5883\u754C -FR-Utils-Please_Input_a_New_Name=\u65B0\u3057\u3044\u540D\u79F0\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044 +FR-Designer-Basic_Copy_Build_NO_OK=\u30D3\u30EB\u30C9\u756A\u53F7\u306F\u65E2\u306B\u30AF\u30EA\u30C3\u30D7\u30DC\u30FC\u30C9\u306B\u30B3\u30D4\u30FC +All_Border_Line=\u67A0\u7DDA +FR-Utils-Please_Input_a_New_Name=\u65B0\u3057\u3044\u540D\u524D\u3092\u5165\u529B\u3057\u3066\u4E0B\u3055\u3044 FR-Base_Formula_Plugin=\u30D7\u30E9\u30B0\u30A4\u30F3\u95A2\u6570 -Two_Rows_Of_Three_Grid=3\u30BB\u30EB\u306E\u4E8C\u5217 -FR-Designer_Certificate_Pass=https\u30B7\u30FC\u30AF\u30EC\u30C3\u30C8\u30AD\u30FC +Two_Rows_Of_Three_Grid=2\u884C3\u5217\u306E\u30B0\u30EA\u30C3\u30C9 +FR-Designer_Certificate_Pass=https\u306E\u9375 Bubble-Series_Name=\u7CFB\u5217\u540D -M-New_Multi_Report=\u7D71\u8A08\u5E33\u7968\u3092\u65B0\u898F\u4F5C\u6210(M) +M-New_Multi_Report=\u30D6\u30ED\u30C3\u30AF\u5E33\u7968\u65B0\u898F\u4F5C\u6210(M) BackgroundTexture-PinkTissuePaper=\u30D4\u30F3\u30AF\u306E\u753B\u7528\u7D19 Preference-Support_Default_Parent_Calculate=\u30C7\u30D5\u30A9\u30EB\u30C8\u89AA\u30BB\u30EB\u306E\u8A08\u7B97 Show_Blank_Column=\u7A7A\u767D\u5217\u88DC\u5145 -BaiduMap=\u767E\u5EA6\u30DE\u30C3\u30D7 +BaiduMap=\u767E\u5EA6\u5730\u56F3 Report-Web_Attributes=\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8Web\u5C5E\u6027 FR-Designer_StyleAlignment-Wrap_Text=\u81EA\u52D5\u6539\u884C Need=\u5FC5\u8981 @@ -1946,11 +1945,11 @@ ServerM-Predefined_Styles=\u4E8B\u524D\u5B9A\u7FA9\u30B9\u30BF\u30A4\u30EB is_need_word_adjust=\u51FA\u529B\u6642\u306B\u3001\u884C\u306E\u9AD8\u3055\u3092\u56FA\u5B9A\u3057\u306A\u3044 Background-Null=\u80CC\u666F\u306A\u3057 PageSetup-Vertically=\u5782\u76F4\u4E2D\u592E\u63C3\u3048 -FR-Designer_Root=\u30EB\u30FC\u30C8\u30CE\u30FC\u30C9 +FR-Designer_Root=\u30EB\u30FC\u30C4\u30CE\u30FC\u30C9 FR-Designer_Form-TextArea=\u30C6\u30AD\u30B9\u30C8\u30A8\u30EA\u30A2 ReportServerP-Import_JavaScript=JavaScript\u53C2\u7167 -Form-TableTree=\u30C6\u30FC\u30D6\u30EB\u30C4\u30EA\u30FC -Opened=\u6709\u52B9\u306B\u306A\u3063\u3066\u3044\u307E\u3059 +Form-TableTree=\u8868\u30C4\u30EA\u30FC +Opened=\u3059\u3067\u306B\u6709\u52B9\u5316\u306B M_Edit-Delete=\u524A\u9664(D) Widget-Form_Widget_Container=\u30C0\u30C3\u30B7\u30E5\u30DC\u30FC\u30C9\u30B3\u30F3\u30C6\u30CA BindColumn-Summary=\u96C6\u8A08 @@ -1958,17 +1957,17 @@ Sche-Second=\u79D2 Server-Open_Service_Manager=\u30B5\u30FC\u30D3\u30B9\u30DE\u30CD\u30FC\u30B8\u30E3\u3092\u958B\u304F FRFont-Effects=\u6587\u5B57\u98FE\u308A OtherGroup_Name=\u4ED6\u306E\u30B0\u30EB\u30FC\u30D7\u540D -Specify=\u6307\u5B9A\u3059\u308B +Specify=\u6307\u5B9A Highlight-Click_to_Choose_Property_To_Modify=\u5909\u3048\u305F\u3044\u5C5E\u6027\u3092\u30AF\u30EA\u30C3\u30AF\u3057\u3066\u9078\u629E triggered=\u89E6\u767A\u3055\u308C\u305F Double_Bottom_BorderLine=\u4E0B\u4E8C\u91CD\u7F6B\u7DDA -M_Insert-Sub_Report=\u30B5\u30D6\u5E33\u7968 +M_Insert-Sub_Report=\u5B50\u5E33\u7968 Unit_Ten=\u5341 Polybolck=\u30D6\u30ED\u30C3\u30AF Select_sort_order=\u30BD\u30FC\u30C8\u9806\u9078\u629E HJS-Mail_to=\u5B9B\u5148 StyleAlignment-Left=\u5DE6\u63C3\u3048 -Two_Rows_Of_Two_Grid=2\u884C2\u5217\u306E\u30BB\u30EB +Two_Rows_Of_Two_Grid=2\u884C2\u5217\u306E\u30B0\u30EA\u30C3\u30C9 FR-Designer-Form-Please_Drag_ParaPane=\u30D1\u30E9\u30E1\u30FC\u30BF\u30D1\u30CD\u30EB\u306B\u30C9\u30E9\u30C3\u30B0\u3057\u3066\u4E0B\u3055\u3044 Milliseconds=\u30DF\u30EA\u79D2 DataFunction-None=\u306A\u3057 @@ -1979,10 +1978,10 @@ Read_failure=\u8AAD\u307F\u53D6\u308A\u5931\u6557\u3002\u30BD\u30FC\u30B9\u30D5\ Verify-Verify=\u30C7\u30FC\u30BF\u691C\u8A3C FR-Designer-Widget-Style_Title_Format=\u30BF\u30A4\u30C8\u30EB\u66F8\u5F0F FR-Designer_Edit_String_To_Formula=\u6587\u5B57\u5217\u3092\u6570\u5F0F\u306B\u7DE8\u96C6\u3059\u308B\u304B -FR-Base_UnSignIn=\ \u672A\u30ED\u30B0\u30A4\u30F3 -Every=\u5404 -CellWrite-Preview_Cell_Content=\u30BB\u30EB\u306E\u5185\u5BB9\u3092\u30D7\u30EC\u30D3\u30E5\u30FC\u3059\u308B -FormulaD-Data_Fields=\u30C7\u30FC\u30BF\u30D5\u30A3\u30FC\u30EB\u30C9 +FR-Base_UnSignIn=\ \u672A\u30ED\u30B0\u30A4\u30F3 +Every=\u6BCE +CellWrite-Preview_Cell_Content=\u30BB\u30EB\u5185\u5BB9 +FormulaD-Data_Fields=\u30C7\u30FC\u30BF\u9805\u76EE FR-Designer_Permissions=\u6A29\u9650 FR-Designer_Form_Button=\u30DC\u30BF\u30F3 FR-Designer_WF_Name=\u540D\u79F0 diff --git a/designer_base/src/com/fr/design/locale/designer_ko_KR.properties b/designer_base/src/com/fr/design/locale/designer_ko_KR.properties index c0f6fbdb76..a5fa641cba 100644 --- a/designer_base/src/com/fr/design/locale/designer_ko_KR.properties +++ b/designer_base/src/com/fr/design/locale/designer_ko_KR.properties @@ -1,4 +1,3 @@ -# 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 @@ -12,7 +11,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=\uC0C9\uB354\uBCF4\uAE30... +FR-Designer-Basic_More_Color=\uB354\uBCF4\uAE30\uC0C9 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 @@ -76,7 +75,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 @@ -106,7 +105,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=\uC0C9 +FR-Designer_Foreground=\uBE44\uC804 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) @@ -162,7 +161,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=\uC140\uB098\uB204\uAE30 +FR-Designer_ReportColumns-Columns=\uC5F4\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 @@ -357,7 +356,7 @@ FR-Designer-Series_Dismenber_As_Single=\uC5F0\uC18D\uB41C\uAD6C\uBD84\uC790\uB29 FR-Designer_KeyPoint=\uD575\uC2EC\uB178\uB4DC FR-Designer_loadedTreeModel=\uB85C\uB529\uC5D0\uC2E4\uD328\uD558\uC600\uC2B5\uB2C8\uB2E4.\uAC80\uC0AC\uD6C4\uB2E4\uC2DC\uC2DC\uB3C4\uD574\uC8FC\uC2ED\uC2DC\uC624. FR-Designer-Failed_to_load_the_plugin=\uD50C\uB7EC\uADF8\uC778\uC744\uB85C\uB529\uD560\uC218\uC5C6\uC2B5\uB2C8\uB2E4.\uD50C\uB7EC\uADF8\uC778\uC744\uC5C5\uB370\uC774\uD2B8\uD574\uC8FC\uC138\uC694. -FR-Designer-Plugin_Please_Update_Jar=Jar\uD329\uC744\uC5C5\uB370\uC774\uD2B8\uD574\uC8FC\uC138\uC694.\uD50C\uB7EC\uADF8\uC778\uC740\uCD5C\uC800\uBC84\uC804\uC774\uC788\uC5B4\uC57C\uD569\uB2C8\uB2E4. +FR-Designer-Plugin_Please_Update_Jar= FR-Designer_Get-CubeGetting=cube\uD68D\uB4DD FR-Designer_XMLA_Database=\uB370\uC774\uD130\uBCA0\uC774\uC2A4 FR-Designer_XMLA_UserName=\uC0AC\uC6A9\uC790\uC774\uB984 @@ -454,7 +453,7 @@ FR-Designer_Data_Analysis_Settings=\uB370\uC774\uD130\uBD84\uC11D\uC124\uC815 FR-Designer_Browser_Background=\uC6F9\uBE0C\uB77C\uC6B0\uC800\uBC30\uACBD FR-Designer_Import_Css=Css\uC778\uC6A9 FR-Designer_Import_JavaScript=JavaScript\uC778\uC6A9 -FR-Designer-Datasource-Param_DES= , "${abc}"\uB97C\uB9E4\uAC1C\uBCC0\uC218\uB85C\uC785\uB825\uD560\uC218\uC788\uC73C\uBA70,abc\uB294\uB9E4\uAC1C\uBCC0\uC218\uC758\uBA85\uCE6D\uC785\uB2C8\uB2E4. \uC608\uFF1A
 select * from table where id\='${abc}'. (id\uD544\uB4DC\uAC00\uBB38\uC790\uC5F4\uC720\uD615\uC77C\uACBD\uC6B0) +FR-Designer-Datasource-Param_DES= , "${abc}"\uB97C\uB9E4\uAC1C\uBCC0\uC218\uB85C\uC785\uB825\uD560\uC218\uC788\uC73C\uBA70,abc\uB294\uB9E4\uAC1C\uBCC0\uC218\uC758\uBA85\uCE6D\uC785\uB2C8\uB2E4. \uC608\uFF1A
 select * from table where id\ FR-Designer-DS-Database_Query=\uB370\uC774\uD130\uBCA0\uC774\uC2A4\uCC3E\uC544\uBCF4\uAE30 FR-Designer_Is_Share_DBTableData=\uB370\uC774\uD130\uC138\uD2B8\uACF5\uC720 FR-Designer-LayerPageReport_PageQuery=\uD398\uC774\uC9C0\uB098\uB204\uAE30\uCC3E\uC544\uBCF4\uAE30 @@ -471,7 +470,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= +FR-Designer_JavaScript=\uC790\uBC14\uC2A4\uD06C\uB9BD\uD2B8 FR-Designer_JavaScript_Form_Submit= FR-Designer_JavaScript_Commit_to_Database= FR-Designer_JavaScript_Custom= @@ -484,7 +483,7 @@ FR-Designer_Attribute= FR-Designer_Form_Editing_Listeners= FR-Designer_Form_Basic_Properties= FR-Designer_DS_Dictionary= -FR-Designer_Create_Tree= +FR-Designer_Create_Tree=\uD2B8\uB9AC\uC0DD\uC131 FR-Designer_Set_Callback_Function= FR-Designer_ConfirmDialog_Content= FR-Designer_ConfirmDialog_Title= diff --git a/designer_base/src/com/fr/design/locale/designer_zh_CN.properties b/designer_base/src/com/fr/design/locale/designer_zh_CN.properties index a110fc2f64..1347e7ec39 100644 --- a/designer_base/src/com/fr/design/locale/designer_zh_CN.properties +++ b/designer_base/src/com/fr/design/locale/designer_zh_CN.properties @@ -1,4 +1,3 @@ -# 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 @@ -12,7 +11,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 @@ -76,7 +75,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 @@ -96,7 +95,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\u677F +FR-Designer_FS_Close_Other_Templates=\u5173\u95ED\u5176\u4ED6\u6A21\u7248 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 @@ -106,7 +105,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=\u989C\u8272 +FR-Designer_Foreground=\u524D\u666F 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) @@ -163,7 +162,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=\u5206\u680F +FR-Designer_ReportColumns-Columns=\u5217\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 @@ -358,7 +357,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, \u63D2\u4EF6\u9700\u6C42\u6700\u4F4E\u7248\u672C +FR-Designer-Plugin_Please_Update_Jar=\u8BF7\u66F4\u65B0Jar\u5305\u81F3\: FR-Designer-Invalid_Page_Number=\u65E0\u6548\u9875\u7801 FR-Designer_Get-CubeGetting=\u83B7\u53D6cube FR-Designer_XMLA_Database=\u6570\u636E\u5E93 @@ -485,7 +484,7 @@ FR-Designer_Data_Analysis_Settings=\u6570\u636E\u5206\u6790\u8BBE\u7F6E FR-Designer_Browser_Background=\u6D4F\u89C8\u5668\u80CC\u666F FR-Designer_Import_Css=\u5F15\u7528Css FR-Designer_Import_JavaScript=\u5F15\u7528JavaScript -FR-Designer-Datasource-Param_DES= \u60A8\u53EF\u4EE5\u952E\u5165"${abc}"\u505A\u4E3A\u4E00\u4E2A\u53C2\u6570\uFF0C\u8FD9\u91CCabc\u662F\u53C2\u6570\u7684\u540D\u79F0\u3002\u4F8B\u5982\uFF1A
 select * from table where id\=${abc}\u3002
 select * from table where id\='${abc}'\u3002(\u5982\u679Cid\u5B57\u6BB5\u4E3A\u5B57\u7B26\u4E32\u7C7B\u578B) +FR-Designer-Datasource-Param_DES= \u60A8\u53EF\u4EE5\u952E\u5165"${abc}"\u505A\u4E3A\u4E00\u4E2A\u53C2\u6570\uFF0C\u8FD9\u91CCabc\u662F\u53C2\u6570\u7684\u540D\u79F0\u3002\u4F8B\u5982\uFF1A
 select * from table where id\ FR-Designer-DS-Database_Query=\u6570\u636E\u5E93\u67E5\u8BE2 FR-Designer-LayerPageReport_PageQuery=\u5206\u9875\u67E5\u8BE2 FR-Designer-LayerPageReport_Define_PageQuerySQL=\u5B9A\u4E49\u5206\u9875\u67E5\u8BE2sql diff --git a/designer_base/src/com/fr/design/locale/designer_zh_TW.properties b/designer_base/src/com/fr/design/locale/designer_zh_TW.properties index 0ad9d28a15..4c1dd14a2d 100644 --- a/designer_base/src/com/fr/design/locale/designer_zh_TW.properties +++ b/designer_base/src/com/fr/design/locale/designer_zh_TW.properties @@ -1,4 +1,3 @@ -# 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 @@ -12,7 +11,7 @@ FR-Designer-BBSLogin_Switch-Account=\u5207\u63DB\u5E33\u865F FR-Designer-BBSLogin_Privite-Message=\u79C1\u4EBA\u8A0A\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=More colors FR-Designer-Estate_Any=\u4E0D\u9650 FR-Designer-Estate_Default_Font=\u9810\u8A2D\u5B57\u9AD4 FR-Designer-Estate_Default_Null=\u9810\u8A2D\u70BA\u7A7A @@ -106,7 +105,7 @@ 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=\u984F\u8272 +FR-Designer_Foreground=\u5B57\u5F62\u8272\u5F69 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 @@ -122,7 +121,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=\u8F38\u5165\u898F\u5247 +FR-Designer_Input_Rule=\u586B\u5BEB\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 @@ -152,7 +151,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=\u7576\u4E0B +FR-Designer_Present=\u6A21\u5F0F FR-Designer_Preview=\u9810\u89BD FR-Designer_Preview-Data-Confusion=\u6DF7\u6DC6\u8CC7\u6599\u9810\u89BD FR-Designer_Product_Demo=\u7522\u54C1\u5C55\u793A @@ -162,9 +161,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=\u5831\u8868\u6B04\u4F4D +FR-Designer_ReportColumns-Columns=\u6B04\u5206\u6B04 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 @@ -195,7 +194,7 @@ 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=\u5C0F\u5DE5\u5177 +FR-Designer_Widget=\u63A7\u5236\u9805 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\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 @@ -357,7 +356,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, \u63D2\u4EF6\u9700\u6C42\u6700\u4F4E\u7248\u672C +FR-Designer-Plugin_Please_Update_Jar=\u8ACB\u66F4\u65B0Jar\u5305\u81F3\: FR-Designer-Invalid_Page_Number=\u7121\u6548\u9801\u78BC FR-Designer_Get-CubeGetting=\u7372\u53D6cube FR-Designer_XMLA_Database=\u8CC7\u6599\u5EAB @@ -473,7 +472,7 @@ FR-Designer_Data_Analysis_Settings=\u8CC7\u6599\u5206\u6790\u8A2D\u5B9A FR-Designer_Browser_Background=\u700F\u89BD\u5668\u80CC\u666F FR-Designer_Import_Css=\u5F15\u7528Css FR-Designer_Import_JavaScript=\u5F15\u7528JavaScript -FR-Designer-Datasource-Param_DES= \u60A8\u53EF\u4EE5\u9375\u5165"${abc}"\u505A\u70BA\u4E00\u500B\u53C3\u6578\uFF0C\u9019\u91CCabc\u662F\u53C3\u6578\u7684\u540D\u7A31\u3002\u4F8B\u5982\uFF1A
 select * from table where idDatasource-Procedurewaring\=\u7CFB\u7D71\u4E0D\u80FD\u81EA\u52D5\u7372\u53D6\u8A72\u5B58\u5132\u7A0B\u5E8F\u7684\u53C3\u6578\uFF0C\u8ACB\u624B\u52D5\u65B0\u589E\! +FR-Designer-Datasource-Param_DES= \u60A8\u53EF\u4EE5\u9375\u5165"${abc}"\u505A\u70BA\u4E00\u500B\u53C3\u6578\uFF0C\u9019\u91CCabc\u662F\u53C3\u6578\u7684\u540D\u7A31\u3002\u4F8B\u5982\uFF1A
 select * from table where idDatasource-Procedurewaring\ FR-Designer-DS-Database_Query=\u8CC7\u6599\u5EAB\u67E5\u8A62 FR-Designer-LayerPageReport_PageQuery=\u5206\u9801\u67E5\u8A62 FR-Designer-LayerPageReport_Define_PageQuerySQL=\u5B9A\u7FA9\u5206\u9801\u67E5\u8A62sql @@ -1358,7 +1357,7 @@ 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\u5EFA\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 @@ -1658,7 +1657,7 @@ 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=is empty Background-Texture=\u7D0B\u7406 From 19934d8f12070b4f19e1ecfbe9470db7b83497ba Mon Sep 17 00:00:00 2001 From: plough Date: Wed, 10 May 2017 11:25:10 +0800 Subject: [PATCH 71/72] =?UTF-8?q?=E6=97=A0JIRA=E4=BB=BB=E5=8A=A1=EF=BC=8C?= =?UTF-8?q?=E5=9B=BD=E9=99=85=E5=8C=96=E7=BF=BB=E8=AF=91=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/fr/design/locale/designer.properties | 51 +- .../design/locale/designer_en_US.properties | 67 +- .../design/locale/designer_ja_JP.properties | 1655 ++++++++--------- .../design/locale/designer_ko_KR.properties | 15 +- .../design/locale/designer_zh_CN.properties | 15 +- .../design/locale/designer_zh_TW.properties | 21 +- 6 files changed, 909 insertions(+), 915 deletions(-) diff --git a/designer_base/src/com/fr/design/locale/designer.properties b/designer_base/src/com/fr/design/locale/designer.properties index c31dca1101..04adf59115 100644 --- a/designer_base/src/com/fr/design/locale/designer.properties +++ b/designer_base/src/com/fr/design/locale/designer.properties @@ -1,4 +1,3 @@ -# 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= @@ -12,7 +11,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= +FR-Designer-Basic_More_Color=More colors FR-Designer-Estate_Any= FR-Designer-Estate_Default_Font= FR-Designer-Estate_Default_Null= @@ -87,18 +86,18 @@ FR-Designer_Currency_Line= FR-Designer_Current_tab= FR-Designer_Custom= FR-Designer_Custom-Angle= -FR-Designer_DS-Dictionary= +FR-Designer_DS-Dictionary=Dictionary FR-Designer_Data-confusion= FR-Designer_Data_Type= FR-Designer_Double_Click_Edit_OR_Clear= -FR-Designer_Email= +FR-Designer_Email=email FR-Designer_Enabled= FR-Designer_End-Date= FR-Designer_ExportAndOutput= FR-Designer_FRFont= -FR-Designer_FS_Close_Other_Templates= -FR-Designer_File= -FR-Designer_Filter_Conditions= +FR-Designer_FS_Close_Other_Templates=close other templates +FR-Designer_File=File +FR-Designer_Filter_Conditions=Filter Conditions FR-Designer_Finish-Modify-Share= FR-Designer_Fit= FR-Designer_Fit-App= @@ -106,7 +105,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= +FR-Designer_Foreground=Foreground FR-Designer_Form-AuthorityEdited_Cannot_be_Supported=Form authority editing can not be supported FR-Designer_Form-Report= FR-Designer_Form_EmbeddedTD= @@ -117,12 +116,12 @@ FR-Designer_Forum= FR-Designer_Get-Cube= FR-Designer_Help= FR-Designer_Hide= -FR-Designer_Hyperlink= +FR-Designer_Hyperlink=Hyperlink FR-Designer_Hyperlink-Form_link= FR-Designer_IDCard= FR-Designer_Icon= FR-Designer_Index= -FR-Designer_Input_Rule= +FR-Designer_Input_Rule=Input Rule FR-Designer_Language_Default= FR-Designer_Layout= FR-Designer_Layout-HBox= @@ -143,7 +142,7 @@ FR-Designer_M_Help-Tutorial= FR-Designer_Max_Value= FR-Designer_Min_Value= FR-Designer_MobilePhone= -FR-Designer_New_Value= +FR-Designer_New_Value=New_Value FR-Designer_None= FR-Designer_PaperSize-Mobile= FR-Designer_PaperSize-Mobile-Large= @@ -152,12 +151,12 @@ FR-Designer_Para-Body= FR-Designer_Parameters= FR-Designer_Phone= FR-Designer_PostCode= -FR-Designer_Present= -FR-Designer_Preview= +FR-Designer_Present=Present +FR-Designer_Preview=Preview FR-Designer_Preview-Data-Confusion= FR-Designer_Product_Demo= FR-Designer_Query_Type= -FR-Designer_Refresh= +FR-Designer_Refresh=Refresh FR-Designer_Refresh_Parameter_In_SQL= FR-Designer_Reg_Expressions= FR-Designer_Reg_Max_Length= @@ -195,8 +194,8 @@ FR-Designer_Vertical-RightToLeft= FR-Designer_VerticalBoxLayout= FR-Designer_Visible= FR-Designer_WLayout-Border-ToolTips= -FR-Designer_WaterMark= -FR-Designer_Widget= +FR-Designer_WaterMark=WaterMark +FR-Designer_Widget=Widget FR-Designer_Widget-Settings= FR-Designer_Widget-Visible= FR-Designer_XMLA_Explain= @@ -401,14 +400,14 @@ FR-Designer_Choose_Language= FR-Designer_Work_After_Restart_Designer= FR-Designer_Setting-Ruler-Units= FR-Designer_PageSetup-mm= -FR-Designer_Unit_CM= +FR-Designer_Unit_CM=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= +FR-Designer_Unit_INCH=INCH FR-Designer_Web_Preview_Port= -FR-Designer_Unit_PT= +FR-Designer_Unit_PT=PT FR-Designer-Write_Auto_Stash=auto stash FR-Designer_Printer_Native_Button= FR-Designer_Event_ShowWidgets= @@ -482,11 +481,11 @@ FR-Designer_Data_Analysis_Settings=Data Analysis Settings FR-Designer_Browser_Background=Browser Background FR-Designer_Import_Css=Import Css FR-Designer_Import_JavaScript=Import JavaScript -FR-Designer-Datasource-Param_DES= you can type "${abc}" as a parameter, here, abc is a parameter name.
 for example\: select * from table where id\=${abc}.
 select * from table where id\='${abc}'.(if the field id is typeof string) -FR-Designer-DS-Database_Query= -FR-Designer_Is_Share_DBTableData= -FR-Designer-LayerPageReport_PageQuery= -FR-Designer-LayerPageReport_Define_PageQuerySQL= +FR-Designer-Datasource-Param_DES= you can type "${abc}" as a parameter, here, abc is a parameter name.
 for example\: select * from table where id\ +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_Event= FR-Designer_Properties= FR-Designer_Permissions_Edition=Permissions Edition @@ -512,7 +511,7 @@ FR-Designer_Attribute= FR-Designer_Form_Editing_Listeners= FR-Designer_Form_Basic_Properties= FR-Designer_DS_Dictionary= -FR-Designer_Create_Tree= +FR-Designer_Create_Tree=Create Tree FR-Designer_Set_Callback_Function= FR-Designer_ConfirmDialog_Content= FR-Designer_ConfirmDialog_Title= @@ -558,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=Page Break +FR-Designer_Pagination=Pagination 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. diff --git a/designer_base/src/com/fr/design/locale/designer_en_US.properties b/designer_base/src/com/fr/design/locale/designer_en_US.properties index fd8971395d..c25016ea9a 100644 --- a/designer_base/src/com/fr/design/locale/designer_en_US.properties +++ b/designer_base/src/com/fr/design/locale/designer_en_US.properties @@ -1,4 +1,3 @@ -# 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 @@ -12,16 +11,16 @@ FR-Designer-BBSLogin_Switch-Account=Switch Account FR-Designer-BBSLogin_Privite-Message=Private Message FR-Designer-BBSLogin_Times=times FR-Designer-BBSLogin_Username-Empty-Tip=User name can not be null -FR-Designer-Basic_More_Color=More Color... +FR-Designer-Basic_More_Color=More colors 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) @@ -68,7 +67,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 @@ -91,20 +90,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=Mail +FR-Designer_Email=Email 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 condition +FR-Designer_File=File +FR-Designer_Filter_Conditions=Filter Conditions 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 @@ -135,7 +134,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 @@ -143,7 +142,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 @@ -152,7 +151,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 @@ -162,7 +161,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=Multi-columns/lines +FR-Designer_ReportColumns-Columns=Fixed columns per line FR-Designer_Return-Date=Return Date FR-Designer_RichText=Insert Rich Text FR-Designer_RichTextEditor=Rich Text Editor @@ -173,7 +172,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 @@ -182,7 +181,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 +FR-Designer_Thanks-To=Thanks To FR-Designer_Title=Title FR-Designer_Total=Total FR-Designer_UnSignIn=Not Sign In @@ -240,7 +239,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=FieldName +FR-Designer_Chart_Field_Name=Field Name FR-Designer_FormulaD-Text=Text FR-Designer_FormulaD-Logical=Logical Function FR-Designer_FormulaD-Array=Array @@ -249,13 +248,13 @@ FR-Designer_FormulaD-Other=Other Functions FR-Designer_FormulaD-All=All Functions FR-Designer_Function=Function FR-Designer_Select=Sel -FR-Designer_Edit=Edit +FR-Designer_Edit=Edt 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=Tree Combobox -FR-Designer_Form-Iframe=Iframe +FR-Designer_Tree-ComboBox=Drop-down Tree +FR-Designer_Form-Iframe=WebView FR-Designer_Type=Type FR-Designer_User-defined=User_defined FR-Designer_Simple_general_forV6=Simple general for Version6+ @@ -287,8 +286,8 @@ 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=Tooltips -FR-Designer_Remove=Remove +FR-Designer_Tooltips=Tip +FR-Designer_Remove=Delete 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. @@ -357,7 +356,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 +FR-Designer-Plugin_Please_Update_Jar=Please Update Jar To\: FR-Designer-Invalid_Page_Number=Invalid Page Number FR-Designer_XMLA_Database=DB FR-Designer_XMLA_UserName=User name @@ -482,7 +481,7 @@ FR-Designer_Import_Css=Reference Css FR-Designer_Import_JavaScript=Reference JavaScript FR-Designer-LayerPageReport_PageQuery=Page Break query FR-Designer-LayerPageReport_Define_PageQuerySQL=Define sql for page break query -FR-Designer-Datasource-Param_DES= You can type "${abc}" as a parameter, here, abc is a parameter name.
 for example\: select * from table where id\=${abc}.
 select * from table where id\='${abc}'.(if the type of id is string) +FR-Designer-Datasource-Param_DES= You can type "${abc}" as a parameter, here, abc is a parameter name.
 for example\: select * from table where id\ FR-Designer-DS-Database_Query=DB Query FR-Designer_Is_Share_DBTableData=Shared data set FR-Designer_Event=Event @@ -616,9 +615,9 @@ Utils-Current_Sheet=Current Sheet ConditionB-is_less_than=less than BorderLayout-West=West AnalysisLine=Line -Layer_Report_Warnning_info=Line report engine is suitable for large data.
Many report features will no longer support if use it,
more information in helpdoc. +Layer_Report_Warnning_info=Line report engine is suitable for large data.
Many report features will no longer support if use it,
more information in helpdocument. 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 @@ -698,7 +697,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 @@ -798,7 +797,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 @@ -949,7 +948,7 @@ zeroMarginWarn=The printer exist the physical margins
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 @@ -967,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 @@ -1126,7 +1125,7 @@ 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 @@ -1144,7 +1143,7 @@ FR-mobile_report_analysis=report analysis Month=Month Utils-Column_Width=Column-W Collect-Use_Designer=Use Designer -Widget-User_Defined_Editor=Predefine editor, you can only change its properties in control management menu. +Widget-User_Defined_Editor=Predefine editor, you can only change its properties in control mangement menu. Unit_Ten_Thousand=Ten Thousand Data_Setting=Data Setting ECP_input_pwd=Enter your password\: @@ -1162,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 @@ -1176,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 @@ -1290,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 diff --git a/designer_base/src/com/fr/design/locale/designer_ja_JP.properties b/designer_base/src/com/fr/design/locale/designer_ja_JP.properties index c900c62e1e..f30ec0d694 100644 --- a/designer_base/src/com/fr/design/locale/designer_ja_JP.properties +++ b/designer_base/src/com/fr/design/locale/designer_ja_JP.properties @@ -1,4 +1,3 @@ -# generated time: \u661F\u671F\u56DB \u5341\u4E00\u6708 24 12:02:51 CST 2016 FR-Designer-BBSLogin_Account=\u30E6\u30FC\u30B6ID FR-Designer-BBSLogin_Connection-Failure=\u30CD\u30C3\u30C8\u63A5\u7D9A\u5931\u6557\u3001\u30CD\u30C3\u30C8\u72B6\u614B\u3054\u78BA\u8A8D\u4E0B\u3055\u3044 FR-Designer-BBSLogin_Connection-Failure-Tip=\u30D2\u30F3\u30C8 @@ -12,7 +11,7 @@ FR-Designer-BBSLogin_Switch-Account=\u30A2\u30AB\u30A6\u30F3\u30C8\u5207\u308A\u FR-Designer-BBSLogin_Privite-Message=\u500B\u4EBA\u30E1\u30C3\u30BB\u30FC\u30B8 FR-Designer-BBSLogin_Times=\u56DE FR-Designer-BBSLogin_Username-Empty-Tip=\u30E6\u30FC\u30B6\u30FCID\u306F\u7A7A\u306B\u3067\u304D\u307E\u305B\u3093 -FR-Designer-Basic_More_Color=\u3082\u3063\u3068\u591A\u3044 +FR-Designer-Basic_More_Color=\u8A73\u7D30 FR-Designer-Estate_Any=\u5236\u9650\u306A\u3057 FR-Designer-Estate_Default_Font=\u30C7\u30D5\u30A9\u30EB\u30C8\u30D5\u30A9\u30F3\u30C8 FR-Designer-Estate_Default_Null=\u30C7\u30D5\u30A9\u30EB\u30C8\u306F\u7A7A @@ -91,14 +90,14 @@ FR-Designer_DS-Dictionary=\u30C7\u30FC\u30BF\u8F9E\u66F8 FR-Designer_Data-confusion=\u30C7\u30FC\u30BF\u6DF7\u4E71 FR-Designer_Data_Type=\u30C7\u30FC\u30BF\u30BF\u30A4\u30D7 FR-Designer_Double_Click_Edit_OR_Clear=\u30C0\u30D6\u30EB\u30AF\u30EA\u30C3\u30AF\u3057\u3066\u7DE8\u96C6\u307E\u305F\u306F\u30AF\u30EA\u30A2\u3059\u308B -FR-Designer_Email=\u30E1\u30FC\u30EB +FR-Designer_Email=E\u30E1\u30FC\u30EB FR-Designer_Enabled=\u4F7F\u7528\u53EF\u80FD FR-Designer_End-Date=\u7D42\u4E86\u65E5\u671F FR-Designer_ExportAndOutput=\u51FA\u529B FR-Designer_FRFont=\u30D5\u30A9\u30F3\u30C8 FR-Designer_FS_Close_Other_Templates=\u4ED6\u306E\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u3092\u9589\u3058\u308B FR-Designer_File=\u30D5\u30A1\u30A4\u30EB -FR-Designer_Filter_Conditions=\u30D5\u30A3\u30EB\u30BF\u30FC\u6761\u4EF6 +FR-Designer_Filter_Conditions=\u30D5\u30A3\u30EB\u30BF\u6761\u4EF6 FR-Designer_Finish-Modify-Share=\u4FEE\u6B63\u3092\u5B8C\u4E86\u3057\u3066\u5171\u6709\u3057\u307E\u3059 FR-Designer_Fit-App=App\u81EA\u52D5\u9069\u5FDC FR-Designer_Fit=\u81EA\u52D5\u9069\u5FDC @@ -122,7 +121,7 @@ FR-Designer_Hyperlink-Form_link=\u73FE\u5728\u306E\u30C0\u30C3\u30B7\u30E5\u30DC FR-Designer_IDCard=\u8EAB\u5206\u8A3C\u660E\u66F8 FR-Designer_Icon=\u30A2\u30A4\u30B3\u30F3 FR-Designer_Index=\u5217\u8EF8/\u6307\u6A19 -FR-Designer_Input_Rule=\u66F8\u304D\u8FBC\u307F\u898F\u5247 +FR-Designer_Input_Rule=\u5165\u529B\u898F\u5247 FR-Designer_Language_Default=\u30C7\u30D5\u30A9\u30EB\u30C8 FR-Designer_Layout=\u30EC\u30A4\u30A2\u30A6\u30C8 FR-Designer_Layout-HBox=\u6C34\u5E73\u30B1\u30FC\u30B9\u30EC\u30A4\u30A2\u30A6\u30C8 @@ -143,7 +142,7 @@ FR-Designer_M_Help-Tutorial=\u30D8\u30EB\u30D7\u30C9\u30AD\u30E5\u30E1\u30F3\u30 FR-Designer_Max_Value=\u6700\u5927\u5024 FR-Designer_Min_Value=\u6700\u5C0F\u5024 FR-Designer_MobilePhone=\u30B9\u30DE\u30FC\u30C8\u30D5\u30A9\u30F3 -FR-Designer_New_Value=\u65B0\u5024 +FR-Designer_New_Value=\u65B0\u3057\u3044\u5024 FR-Designer_None=\u7121\u3057 FR-Designer_PaperSize-Mobile=\u30B9\u30DE\u30FC\u30C8\u30D5\u30A9\u30F3 FR-Designer_PaperSize-Mobile-Large=\u5927\u304D\u3044\u30B9\u30AF\u30EA\u30FC\u30F3 @@ -162,7 +161,7 @@ FR-Designer_Refresh_Parameter_In_SQL=SQL\u4E2D\u306E\u30D1\u30E9\u30E1\u30FC\u30 FR-Designer_Reg_Expressions=\u6B63\u5247\u8868\u73FE\u5F0F FR-Designer_Reg_Max_Length=\u6700\u5927\u9577\u3055 FR-Designer_Reg_Min_Length=\u6700\u5C0F\u9577\u3055 -FR-Designer_ReportColumns-Columns=\u30B3\u30E9\u30E0\u5206\u3051 +FR-Designer_ReportColumns-Columns=\u30B5\u30D6\u30D5\u30A3\u30FC\u30EB\u30C9 FR-Designer_Return-Date=\u65E5\u4ED8\u306B\u623B\u308B FR-Designer_RichText=\u30EA\u30C3\u30C1\u30C6\u30AD\u30B9\u30C8\u633F\u5165 FR-Designer_RichTextEditor=\u30EA\u30C3\u30C1\u30C6\u30AD\u30B9\u30C8\u30A8\u30C7\u30A3\u30BF @@ -261,7 +260,7 @@ FR-Designer_Role_changed_isRefresh=\u30ED\u30FC\u30EB\u306F\u5909\u66F4\u3057\u3 FR-Designer_FS_Name=\u610F\u601D\u6C7A\u5B9A\u30B7\u30B9\u30C6\u30E0 FR-Designer_Datasource-Parameter=\u30C7\u30FC\u30BF\u30BD\u30FC\u30B9\u30D1\u30E9\u30E1\u30FC\u30BF FR-Designer_Tree-ComboBox=\u30D7\u30EB\u30C0\u30A6\u30F3\u30C4\u30EA\u30FC -FR-Designer_Form-Iframe= +FR-Designer_Form-Iframe=\u30DA\u30FC\u30B8\u30DC\u30C3\u30AF\u30B9 FR-Designer_Type=\u30BF\u30A4\u30D7 FR-Designer_User-defined=\u30AB\u30B9\u30BF\u30DE\u30A4\u30BA FR-Designer_Simple_general_forV6=\u6C4E\u7528\u30AF\u30A8\u30EA(ECC 6\u4EE5\u4E0A\u306E\u30D0\u30FC\u30B8\u30E7\u30F3\u306B\u9069\u7528) @@ -393,7 +392,7 @@ FR-Designer_Choose_Language=\u8A00\u8A9E\u9078\u629E FR-Designer_Work_After_Restart_Designer=\u30C7\u30B6\u30A4\u30CA\u30FC\u518D\u8D77\u52D5\u5F8C\u3067\u6709\u52B9 FR-Designer_Setting-Ruler-Units=\u30EB\u30FC\u30E9\u30FC\u5358\u4F4D\u8A2D\u5B9A FR-Designer_PageSetup-mm=\u30DF\u30EA\u30E1\u30FC\u30C8\u30EB -FR-Designer_Unit_CM=\u30BB\u30F3\u30C1\u30E1\u30FC\u30C8\u30EB +FR-Designer_Unit_CM=\u30BB\u30F3\u30C1 FR-Designer_Page-Setup-Scale-Units=\u30DA\u30FC\u30B8\u8A2D\u5B9A\u30EB\u30FC\u30E9\u30FC\u5358\u4F4D FR-Designer_Report-Design-Ruler-Units=\u5E33\u7968\u30C7\u30B6\u30A4\u30F3\u30EB\u30FC\u30E9\u30FC\u5358\u4F4D FR-Designer_Web_Preview_Port_Setting=\u30DD\u30FC\u30C8\u8A2D\u5B9A @@ -459,11 +458,11 @@ FR-Designer_Data_Analysis_Settings=\u30C7\u30FC\u30BF\u5206\u6790\u8A2D\u5B9A FR-Designer_Browser_Background=\u30D6\u30E9\u30A6\u30B6\u80CC\u666F FR-Designer_Import_Css=Css\u5F15\u7528 FR-Designer_Import_JavaScript=JavaScript\u5F15\u7528 -FR-Designer-Datasource-Param_DES=  "${abc}"\u3092\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC\u3068\u3057\u3066\u5165\u529B\u3067\u304D\u307E\u3059\u3002\u3053\u3053\u3067abc\u306F\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC\u3002abc\u306F\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC\u306E\u540D\u524D\u3067\u3059\u3002\u4F8B\u3048\u3070
 select * from table where id\=${abc}\u3002
 select * from table where id\='${abc}'\u3002(\u3082\u3057id\u306F\u6587\u5B57\u5217\u306A\u3089)\uFFFD -FR-Designer-DS-Database_Query=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u30AF\u30A8\u30EA -FR-Designer-LayerPageReport_PageQuery=\u30DA\u30FC\u30B8\u5206\u3051\u30AF\u30A8\u30EA -FR-Designer-LayerPageReport_Define_PageQuerySQL=\u30DA\u30FC\u30B8\u5206\u3051\u30AF\u30A8\u30EA\u6587\u3092\u5B9A\u7FA9 -FR-Designer_Is_Share_DBTableData=\u5171\u6709\u30C7\u30FC\u30BF\u30BB\u30C3\u30C8 +FR-Designer-Datasource-Param_DES=  "${abc}"\u3092\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC\u3068\u3057\u3066\u5165\u529B\u3067\u304D\u307E\u3059\u3002\u3053\u3053\u3067abc\u306F\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC\u3002abc\u306F\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC\u306E\u540D\u524D\u3067\u3059\u3002\u4F8B\u3048\u3070
 select * from table where id\ +FR-Designer-DS-Database_Query=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u30AF\u30A8\u30EA\u30FC +FR-Designer-LayerPageReport_PageQuery=\u30DA\u30FC\u30B8\u5225\u30AF\u30A8\u30EA +FR-Designer-LayerPageReport_Define_PageQuerySQL=\u5B9A\u7FA9\u30DA\u30FC\u30B8\u5225\u30AF\u30A8\u30EAsql +FR-Designer_Is_Share_DBTableData=\u30C7\u30FC\u30BF\u30BB\u30C3\u30C8\u5171\u6709 FR-Designer_Event=\u30A4\u30D9\u30F3\u30C8 FR-Designer_Properties=\u30D7\u30ED\u30D1\u30C6\u30A3 FR-Designer_Permissions_Edition=\u6A29\u9650\u7DE8\u96C6 @@ -489,7 +488,7 @@ FR-Designer_Attribute=\u30D7\u30ED\u30D1\u30C6\u30A3 FR-Designer_Form_Editing_Listeners=\u30A4\u30D9\u30F3\u30C8\u7DE8\u96C6 FR-Designer_Form_Basic_Properties=\u57FA\u672C\u30D7\u30ED\u30D1\u30C6\u30A3 FR-Designer_DS_Dictionary=\u30C7\u30FC\u30BF\u8F9E\u66F8 -FR-Designer_Create_Tree=\u30C4\u30EA\u30FC\u3092\u69CB\u7BC9 +FR-Designer_Create_Tree=\u30C4\u30EA\u30FC\u69CB\u7BC9 FR-Designer_Set_Callback_Function=\u30B3\u30FC\u30EB\u30D0\u30C3\u30AF\u95A2\u6570\u8A2D\u5B9A FR-Designer_ConfirmDialog_Content=tab\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u3092\u524A\u9664\u3057\u307E\u3059\u304B FR-Designer_ConfirmDialog_Title=FineReport 8.0 @@ -534,8 +533,8 @@ FR-Designer_Show_Content=\u5185\u5BB9\u8868\u793A FR-Designer_Auto_Adjust_Size=\u81EA\u52D5\u8ABF\u6574 FR-Designer_Show_As_Download=\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9\u30EA\u30F3\u30AF\u30672\u9032\u6CD5\u306E\u5185\u5BB9\u3092\u8868\u793A\u3059\u308B FR-Designer_File_Name_For_Download=\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9\u30D5\u30A1\u30A4\u30EB\u540D -FR-Designer_No=\u3044\u3044\u3048 -FR-Designer_Pagination=\u6539\u9801 +FR-Designer_No=\u306A\u3057 +FR-Designer_Pagination=\u6539\u30DA\u30FC\u30B8 FR-Designer-Move_Tab_First=\u6700\u521D\u306B\u79FB\u52D5 FR-Designer-Move_Tab_End=\u6700\u5F8C\u306B\u79FB\u52D5 FR-Designer-Move_Tab_Next=\u6B21\u306B\u79FB\u52D5 @@ -581,7 +580,7 @@ FR-Designer_Log=\u30ED\u30B0 FR-Designer_Form-Fit-Tip=\u81EA\u52D5\u9069\u5FDC\u30D7\u30E9\u30B0\u30A4\u30F3 FR-Designer_Button-Cancel=\u53D6\u308A\u6D88\u3057 FR-Designer_LocalWidget=\u30ED\u30FC\u30AB\u30EB\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u30E9\u30A4\u30D6\u30E9\u30EA -FR-Designer_Alert=\u30A2\u30E9\u30FC\u30C8 +FR-Designer_Alert=\u8B66\u544A FR-Designer_TableData-Default-Para=\u30C7\u30FC\u30BF\u30BB\u30C3\u30C8\u306E\u30C7\u30D5\u30A9\u30EB\u30C8\u30D1\u30E9\u30E1\u30FC\u30BF FR-Designer_Edit_Button_ToolBar=\u30DC\u30BF\u30F3\u306E\u30C4\u30FC\u30EB\u30D0\u30FC\u3092\u7DE8\u96C6 FR-Designer-Plugin_Please_Update_Jar=jar\u30D1\u30C3\u30AF\u3092\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8\u3057\u3066\u304F\u3060\u3055\u3044 @@ -598,36 +597,36 @@ FR-Designer_DoubleLayer_Report=\u4E8C\u968E\u30BF\u30A4\u30C8\u30EB FR-Designer_Validate=\u691C\u8A3C CellWrite-InsertRow_NULL=\u30CC\u30EB DashBoard-ChartFloat=\u30B0\u30E9\u30D5 -contact_info=\u304A\u554F\u3044\u5408\u308F\u305B\u60C5\u5831\uFF08\u30AA\u30D7\u30B7\u30E7\u30F3\uFF09 +contact_info=\u9023\u7D61\u60C5\u5831 Page_Setup=\u30DA\u30FC\u30B8\u8A2D\u5B9A -CellWrite-Print_Export=\u5370\u5237\u3068\u30A8\u30AF\u30B9\u30DD\u30FC\u30C8 +CellWrite-Print_Export=\u5370\u5237\u51FA\u529B Cannot_Get_Date=\u65E5\u4ED8\u3092\u53D6\u5F97\u3067\u304D\u307E\u305B\u3093 -FR-Designer_Modify=\u4FEE\u6B63 +FR-Designer_Modify=\u5909\u66F4 M-Write_Preview=\u66F8\u304D\u8FBC\u307F\u30D7\u30EC\u30D3\u30E5\u30FC -FR-Base_RWA-Key=\u30E1\u30A4\u30F3\u30AD\u30FC +FR-Base_RWA-Key=\u4E3B\u30AD\u30FC China=\u4E2D\u56FD -Set_Legend_Sytle=\u51E1\u4F8B\u306E\u66F8\u5F0F\u8A2D\u5B9A -FR-Designer_Number=\u6570\u5B57 -FR-Designer-Widget-Style_Common=\u666E\u901A -M-Save_As=\u540D\u524D\u3092\u3064\u3051\u3066\u4FDD\u5B58 -Following_parameters_are_not_generated=\u4EE5\u4E0B\u306E\u30D1\u30E9\u30E1\u30FC\u30BF\u306F\u307E\u3060\u751F\u6210\u3055\u308C\u3066\u3044\u307E\u305B\u3093 -FR-Designer-Basic_Activation_Key_Copy_OK=\u30AF\u30EA\u30C3\u30D7\u30DC\u30FC\u30C9\u306B\u30B3\u30D4\u30FC\u3057\u307E\u3057\u305F +Set_Legend_Sytle=\u51E1\u4F8B\u66F8\u5F0F\u8A2D\u5B9A +FR-Designer_Number=\u6570\u5024 +FR-Designer-Widget-Style_Common=\u4E00\u822C +M-Save_As=\u540D\u524D\u3092\u4ED8\u3051\u3066\u4FDD\u5B58 +Following_parameters_are_not_generated=\u4EE5\u4E0B\u306E\u30D1\u30E9\u30E1\u30FC\u30BF\u306F\u4F5C\u6210\u3055\u308C\u3066\u3044\u306A\u3044 +FR-Designer-Basic_Activation_Key_Copy_OK=\u3059\u3067\u306B\u30AF\u30EA\u30C3\u30D7\u30DC\u30FC\u30C9\u306B\u30B3\u30D4\u30FC Utils-Current_Sheet=\u73FE\u5728\u306E\u30B7\u30FC\u30C8 ConditionB-is_less_than=\u3088\u308A\u5C0F\u3055\u3044 -BorderLayout-West=\u897F\u90E8\u306E -AnalysisLine=\u5206\u6790\u30E9\u30A4\u30F3 +BorderLayout-West=\u897F +AnalysisLine=\u5206\u6790\u7DDA Layer_Report_Warnning_info=\u30B0\u30EA\u30C3\u30C9\u578B\u30A8\u30F3\u30B8\u30F3\u306F\u30C7\u30FC\u30BF\u91CF\u304C\u591A\u3044\u5834\u5408\u306B\u9069\u3057\u3066\u3044\u307E\u3059\u3002
\u3053\u306E\u30A8\u30F3\u30B8\u30F3\u3092\u4F7F\u3046\u3068\u3001\u5E33\u7968\u6A5F\u80FD\u306E\u591A\u304F\u304C\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u307E\u305B\u3093\u3002
\u8A73\u3057\u3044\u5185\u5BB9\u306F\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u306E\u95A2\u9023\u500B\u6240\u3092\u3054\u78BA\u8A8D\u304F\u3060\u3055\u3044\u3002 Tree-Width=\u5E45 alert_word=\u884C\u306E\u9AD8\u3055\u3092\u56FA\u5B9A\u305B\u305A\u30A8\u30AF\u30B9\u30DD\u30FC\u30C8\u3059\u308B\u6642\u3001\u30A8\u30AF\u30B9\u30DD\u30FC\u30C8\u3055\u308C\u305Fword\u3067\u30BB\u30EB\u884C\u306E\u9AD8\u3055\u306F\u5185\u5BB9\u306B\u5408\u308F\u305B\u3066\u5927\u304D\u304F\u306A\u308A\u307E\u3059\u3002\u30A8\u30AF\u30B9\u30DD\u30FC\u30C8\u3055\u308C\u305F\u6539\u30DA\u30FC\u30B8\u4F4D\u7F6E\u3068\u30D7\u30EC\u30D3\u30E5\u30FC\u7D50\u679C\u304C\u4E00\u81F4\u3057\u306A\u3044\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059\u3002 -PageSetup-Paper_Size=\u7D19\u306E\u30B5\u30A4\u30BA -M-Page_Setup=\u30DA\u30FC\u30B8\u306E\u8A2D\u5B9A +PageSetup-Paper_Size=\u7528\u7D19\u30B5\u30A4\u30BA +M-Page_Setup=\u30DA\u30FC\u30B8\u8A2D\u5B9A DashBoard-FormBook=\u30C0\u30C3\u30B7\u30E5\u30DC\u30FC\u30C9 X-Coordinate=\u6A2A\u5EA7\u6A19 Style-Line_Spacing=\u884C\u9593 FR-Designer_Plugin_Should_Update_Title=\u30D7\u30E9\u30B0\u30A4\u30F3\u30A2\u30C3\u30D7\u30B0\u30EC\u30FC\u30C9\u6CE8\u610F Server-Define_Data_Connection=\u30C7\u30FC\u30BF\u63A5\u7D9A\u5B9A\u7FA9 BarInside=\u68D2\u306E\u5185\u5074 -Border-Color=\u67A0\u7DDA\u8272 +Border-Color=\u67A0\u306E\u8272 NotAllow=\u9055\u6CD5 Utils-File_type=\u30D5\u30A1\u30A4\u30EB\u306E\u7A2E\u985E FR-Designer-Plugin_Install_From_Local=\u30ED\u30FC\u30AB\u30EB\u30D5\u30A1\u30A4\u30EB\u304B\u3089\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB @@ -635,8 +634,8 @@ Summary_Method=\u96C6\u8A08\u65B9\u5F0F Select_Specified_Grouping=\u30AB\u30B9\u30BF\u30E0\u30B0\u30EB\u30FC\u30D7\u5206\u3051\u3092\u9078\u629E HF-Number_of_Page=\u7DCF\u30DA\u30FC\u30B8\u6570\u633F\u5165 FR-Designer-Tree_Height=\u9AD8\u3055 -Owner=\u30AA\u30FC\u30CA\u30FC -Home=\u30E1\u30A4\u30F3\u30DA\u30FC\u30B8 +Owner=\u30E1\u30A4\u30F3 +Home=\u30DB\u30FC\u30E0\u30DA\u30FC\u30B8 FR-Server_Embedded_Server_Stop=\u7D44\u307F\u8FBC\u307F\u306E\u30B5\u30FC\u30D0-\u505C\u6B62 FR-Designer-Plugin_Detecting_Update=\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8\u691C\u8A3C\u4E2D HF-Whether_to_define_the_selected_type=\u9078\u629E\u3055\u308C\u305F\u30BF\u30A4\u30D7\u306E\u5B9A\u7FA9 @@ -649,7 +648,7 @@ Choose_Role=\u6A29\u9650\u5236\u5FA1 Append_Delete_Row_Message=\u6CE8\u610F\uFF01\u6307\u5B9A\u30BB\u30EB\u306E\u5C55\u958B\u5C5E\u6027\u3092\u8A2D\u5B9A\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059 Form-ComboBox=\u30D7\u30EB\u30C0\u30A6\u30F3\u30DC\u30C3\u30AF\u30B9 PageSetup-Footer=\u30D5\u30C3\u30BF\u30FC -Sorting=\u30BD\u30FC\u30C8 +Sorting=\u30BD\u30FC\u30C8\u4E2D DBCP_TEST_WHILE_IDLE=\u30A2\u30A4\u30C9\u30EB\u72B6\u614B\u306E\u63A5\u7D9A\u6709\u52B9\u6027\u3092\u691C\u8A3C DS-Embedded_TableData=\u7D44\u307F\u8FBC\u307F\u30C7\u30FC\u30BF\u30BB\u30C3\u30C8 FR-Designer_No-Privilege=\u6A29\u9650\u306A\u3057 @@ -663,13 +662,13 @@ Email-Can_Preview_Report_Content=\u5E33\u7968\u306E\u5185\u5BB9\u3092\u30D7\u30E FR-Designer-FRFont_Italic=\u659C\u4F53 CellWrite-Print_Background=\u30BB\u30EB\u80CC\u666F Wizard=\u30AC\u30A4\u30C9 -Preference-Is_Drag_Permited=\u30C9\u30E9\u30C3\u30B0\u3092\u30B5\u30DD\u30FC\u30C8\u3059\u308B +Preference-Is_Drag_Permited=\u30C9\u30E9\u30C3\u30B0\uFF06\u30C9\u30ED\u30C3\u30D7\u3092\u30B5\u30DD\u30FC\u30C8 FR-Designer_Release_Lock=\u30A2\u30F3\u30ED\u30C3\u30AF -Form-Delimiter=\u533A\u5207\u308A\u7B26 -wrong=\u30A8\u30E9\u30FC\u304C\u51FA\u307E\u3057\u305F +Form-Delimiter=\u533A\u5207\u308A\u6587\u5B57 +wrong=\u30A8\u30E9\u30FC\u767A\u751F FR-Menu-Server_Chart_PreStyle=\u30B0\u30E9\u30D5\u4E8B\u524D\u5B9A\u7FA9\u914D\u8272 Form-Button=\u30DC\u30BF\u30F3 -FormulaD-Valid_Formula=\u6709\u52B9\u306A\u6570\u5F0F +FormulaD-Valid_Formula=\u6709\u52B9\u306A\u6570\u5F0F\u3067\u3059 ParameterD-Parameter_Interface=\u30D1\u30E9\u30E1\u30FC\u30BF\u30D1\u30CD\u30EB At_least_one_visual_worksheet=\u30B7\u30FC\u30C8\u3092\u3059\u3079\u3066\u524A\u9664\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093\u3002\u524A\u9664\u524D\u306B\u3001\u30B7\u30FC\u30C8\u3092\u8FFD\u52A0\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002 Need_Min_Value=\u6700\u5C0F\u5024\u5FC5\u8981 @@ -689,7 +688,7 @@ FR-Designer_Plugin_Normal_Update_From_Local=\u30ED\u30FC\u30AB\u30EB\u30D5\u30A1 BackgroundTexture-Canvas=\u30AD\u30E3\u30F3\u30D0\u30B9 BarOutSide=\u68D2\u306E\u5916\u5074 Preview_ToolTips=\u30D7\u30EC\u30D3\u30E5\u30FC\u30D2\u30F3\u30C8 -FRFont-Family=\u540D\u79F0 +FRFont-Family=\u540D\u524D FR-Lic_does_not_Support_Remote=\u304A\u4F7F\u3044\u306Elic\u306F\u30EA\u30E2\u30FC\u30C8\u958B\u767A\u6A5F\u80FD\u3092\u30B5\u30DD\u30FC\u30C8\u3057\u3066\u3044\u307E\u305B\u3093\u3001\u3054\u5229\u7528\u306B\u306FLIC\u3092\u30A2\u30C3\u30D7\u30B0\u30EC\u30FC\u30C9\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059 InterfaceStyle=\u30B9\u30BF\u30A4\u30EB RWA-Key=\u4E3B\u30AD\u30FC @@ -721,24 +720,24 @@ M_Format_A-Cell_Attributes=\u305D\u306E\u4ED6\u306E\u5C5E\u6027 CellWrite-Show_As_Image=\u753B\u50CF\u3067\u5185\u5BB9\u3092\u8868\u793A ShowAsDownload=\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9\u30EA\u30F3\u30AF\u3067\u30D0\u30A4\u30CA\u30EA\u30B3\u30F3\u30C6\u30F3\u30C4\u3092\u8868\u793A Form-ComboCheckBox=\u30D7\u30EB\u30C0\u30A6\u30F3\u30C1\u30A7\u30C3\u30AF\u30DC\u30C3\u30AF\u30B9 -BackgroundTexture-WovenMat=\u7E54\u7269 -BindColumn-Custom_Data_Appearance=\u30AB\u30B9\u30BF\u30DE\u30A4\u30BA\u8868\u793A +BackgroundTexture-WovenMat=\u9EBB +BindColumn-Custom_Data_Appearance=\u30AB\u30B9\u30BF\u30E0\u8868\u793A Actived=\u30A2\u30AF\u30C6\u30A3\u30D6 Env-Local_Directory=\u30ED\u30FC\u30AB\u30EB\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA Form-Colon=\u30B3\u30ED\u30F3 Preference-Vertical_Scroll_Bar_Visible=\u5782\u76F4\u30B9\u30AF\u30ED\u30FC\u30EB\u30D0\u30FC\u3092\u8868\u793A -Utils-Show_Cell_Value=\u30BB\u30EB\u5024\u3092\u8868\u793A +Utils-Show_Cell_Value=\u30BB\u30EB\u5024\u8868\u793A FR-Designer_ReportColumns-Repeat_Row=\u884C\u306E\u9806\u5E8F\u3092\u30B3\u30D4\u30FC SpecifiedG-Specified_Group=\u30AB\u30B9\u30BF\u30E0\u30B0\u30EB\u30FC\u30D7\u5206\u3051 RWA-Smart_Add_Cells=\u30BB\u30EB\u81EA\u52D5\u8FFD\u52A0 HF-Left_Section=\u5DE6\u30A8\u30EA\u30A2 M_Report-Report_Background=\u7528\u7D19\u80CC\u666F Image-Extend=\u62E1\u5927\u8868\u793A -FS_BI=\u610F\u601D\u6C7A\u5B9A\u30B7\u30B9\u30C6\u30E0 +FS_BI=\u610F\u601D\u6C7A\u5B9A\u30D7\u30E9\u30C3\u30C8\u30D5\u30A9\u30FC\u30E0 ToolBar_Bottom=\u4E0B\u90E8\u306E\u30C4\u30FC\u30EB\u30D0\u30FC -Hgap=\u6C34\u5E73\u9593\u9694 -FR-Designer_Enter-New-FileName=\u65B0\u3057\u3044\u30D5\u30A1\u30A4\u30EB\u540D\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044 -Verify_Fail=\u691C\u8A3C\u306B\u5931\u6557\u3057\u307E\u3057\u305F +Hgap=\u6C34\u5E73\u9699\u9593 +FR-Designer_Enter-New-FileName=\u540D\u524D +Verify_Fail=\u691C\u8A3C\u5931\u6557 CellWrite-InsertRow_Policy=\u884C\u633F\u5165\u30DD\u30EA\u30B7\u30FC FR-Designer-Plugin_Illegal_Plugin_Zip=\u5408\u6CD5\u306E\u30D7\u30E9\u30B0\u30A4\u30F3\u30D1\u30C3\u30B1\u30FC\u30B8\u3067\u306F\u306A\u3044 RCodeVersion=\u30D0\u30FC\u30B8\u30E7\u30F3 @@ -748,180 +747,180 @@ FR-Designer-Widget-Style_Preview=\u30D7\u30EC\u30D3\u30E5\u30FC mobile_number=\u643A\u5E2F\u756A\u53F7 FR-Designer_Form-ComboCheckBox=\u30D7\u30EB\u30C0\u30A6\u30F3\u30C1\u30A7\u30C3\u30AF\u30DC\u30C3\u30AF\u30B9 CacheValidateTime=\u5E33\u7968\u30AD\u30E3\u30C3\u30B7\u30E5\u306E\u6709\u52B9\u6642\u9593 -Hyperlink-Extends_Report_Parameters=\u5E33\u7968\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC\u3092\u7D99\u627F\u3059\u308B +Hyperlink-Extends_Report_Parameters=\u5E33\u7968\u306E\u30D1\u30E9\u30E1\u30FC\u30BF\u3092\u7D99\u627F FR-Designer_Values-Editor=\u5024\u30A8\u30C7\u30A3\u30BF Export-Excel=Excel -Utils-Left_to_Right=\u5DE6\u304B\u3089\u53F3\u3078 -ExpandD-Vertical_Extendable=\u7E26\u5E83\u304C\u308B -Utils-Report_Runtime_Env=\u5E33\u7968\u4F5C\u696D\u76EE\u6B21 -Utils-Right_to_Left=\u53F3\u304B\u3089\u5DE6\u3078 -Utils-Beyond_the_top_side_of_Border=\u4E0A\u30DC\u30FC\u30C0\u30FC\u8D85\u3048 +Utils-Left_to_Right=\u6A2A\u65B9\u5411 +ExpandD-Vertical_Extendable=\u7E26\u5C55\u958B +Utils-Report_Runtime_Env=\u5E33\u7968\u4F5C\u696D\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA +Utils-Right_to_Left=\u53F3\u304B\u3089\u5DE6 +Utils-Beyond_the_top_side_of_Border=\u4E0A\u306E\u5883\u754C\u3092\u8D85\u904E\u3057\u3066\u3044\u307E\u3059\u3002\u914D\u7F6E\u3067\u304D\u307E\u305B\u3093\u3002 Exception_StackTrace=\u30A8\u30E9\u30FC\u7570\u5E38\u30B9\u30BF\u30C3\u30AF\u60C5\u5831 -Corresponding_Fields=\u5BFE\u5FDC\u3059\u308B\u30D5\u30A3\u30FC\u30EB\u30C9 -Form-CheckBox=\u30D5\u30EC\u30FC\u30E0\u3092\u8907\u6570\u9078\u629E -Utils-Current_Row=\u30AB\u30EC\u30F3\u30C8\u884C -BuildIn=\u5185\u8535 -BindColumn-Results_Filter=\u7D50\u679C\u30BB\u30C3\u30C8\u306E\u30D5\u30A3\u30EB\u30BF +Corresponding_Fields=\u5BFE\u5FDC\u30D5\u30A3\u30FC\u30EB\u30C9 +Form-CheckBox=\u30C1\u30A7\u30C3\u30AF\u30DC\u30C3\u30AF\u30B9 +Utils-Current_Row=\u73FE\u5728\u306E\u884C +BuildIn=\u7D44\u307F\u8FBC\u307F +BindColumn-Results_Filter=\u7D50\u679C\u30BB\u30C3\u30C8\u30D5\u30A3\u30EB\u30BF FR-Designer-Plugin_Manager=\u30D7\u30E9\u30B0\u30A4\u30F3\u7BA1\u7406 -M_File-Export-CSV=CSV\u66F8\u5F0F(\u30B3\u30F3\u30DE\u3067\u5206\u5272) -Data_Filter=\u30C7\u30FC\u30BF\u9078\u5225 -ReportServerP-Edit_Printer=\u30D7\u30EA\u30F3\u30BF\u30FC\u7DE8\u96C6 -FR-Designer_Datasource-Stored_Procedure=\u30B9\u30C8\u30A2\u30C9 \u30D7\u30ED\u30B7\u30FC\u30B8\u30E3 +M_File-Export-CSV=CSV(\u30AB\u30F3\u30DE\u533A\u5207\u308A) +Data_Filter=\u30C7\u30FC\u30BF\u30D5\u30A3\u30EB\u30BF +ReportServerP-Edit_Printer=\u30D7\u30EA\u30F3\u30BF\u7DE8\u96C6 +FR-Designer_Datasource-Stored_Procedure=\u30D7\u30ED\u30B7\u30FC\u30B8\u30E3 RESTART=\u518D\u8D77\u52D5 FormulaD-Function_name=\u95A2\u6570\u540D -ChooseOneButton=\u30B3\u30F3\u30C8\u30ED\u30FC\u30EB\u3092\u4E00\u3064\u9078\u629E\u3057\u3066\u304B\u3089\u8FFD\u52A0\u3057\u3066\u304F\u3060\u3055\u3044 +ChooseOneButton=\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u3092\u4E00\u3064\u9078\u629E\u3057\u3066\u304B\u3089\u8FFD\u52A0\u3057\u3066\u304F\u3060\u3055\u3044 Priority=\u512A\u5148\u30E9\u30F3\u30AF Datasource-Datasource=\u30C7\u30FC\u30BF\u30BD\u30FC\u30B9 -FR-Designer_Width=\u5E83\u3055 -Cannot-Add_To_This_Area=\u5730\u57DF\u306B\u306F\u8FFD\u52A0\u3067\u304D\u307E\u305B\u3093 -Run=\u904B\u884C -Set_Submit_Condition=\u6761\u4EF6\u3092\u8A2D\u7F6E\u306B\u63D0\u51FA\u3059\u308B\u3053\u3068\u306B\u3057\u305F +FR-Designer_Width=\u5E45 +Cannot-Add_To_This_Area=\u5F53\u8A72\u30A8\u30EA\u30A2\u306B\u8FFD\u52A0\u3067\u304D\u307E\u305B\u3093 +Run=\u5B9F\u884C +Set_Submit_Condition=\u66F8\u304D\u8FBC\u307F\u6761\u4EF6\u8A2D\u5B9A FR-Base_Value=\u5024 -fileLocked_undeleted=\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u304C\u30ED\u30C3\u30AF\u3055\u308C\u3066\u3044\u308B\u3001\u3042\u306A\u305F\u304C\u524A\u9664\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093\uFF01 -Web_Apply=WEB\u30A2\u30D7\u30EA\u30B1\u30FC\u30B7\u30E7\u30F3 -Refresh_Database=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u5237\u65B0 -Set_Row_Title_End=\u91CD\u8907\u3059\u308B\u7D42\u4E86\u884C\u3092\u8A2D\u5B9A -FR-Utils-New_Folder=\u30D5\u30A1\u30A4\u30EB\u65B0\u898F\u4F5C\u6210 -BiasD-From-upper_left_to_lower_right=\u5DE6\u4E0A\u5074\u304B\u3089\u53F3\u4E0B\u5074\u3078\u5E83\u304C\u308B -CapsLock=Caps Lock\u30AD\u30FC\u304C\u30AA\u30F3\u306B\u306A\u3063\u3066\u3044\u308B -StyleFormat-Sample=\u4F8B -RWA-Smart_Add_Cell_Group=\u30A4\u30F3\u30C6\u30EA\u30B8\u30A7\u30F3\u30C8\u6DFB\u52A0\u30EC\u30A4\u30E4\u30FC\u7D44 +fileLocked_undeleted=\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u304C\u30ED\u30C3\u30AF\u3055\u308C\u3066\u3044\u308B\u305F\u3081\u524A\u9664\u3067\u304D\u307E\u305B\u3093\u3002OK\u3092\u30AF\u30EA\u30C3\u30AF\u3057\u3001\u30EA\u30B9\u30C8\u3092\u518D\u8AAD\u307F\u8FBC\u307F\u3057\u3066\u304F\u3060\u3055\u3044\u3002 +Web_Apply=WEB\u30A2\u30D7\u30EA +Refresh_Database=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u66F4\u65B0 +Set_Row_Title_End=\u7E70\u308A\u8FD4\u3057\u7D42\u4E86\u884C\u8A2D\u5B9A +FR-Utils-New_Folder=\u65B0\u898F\u30D5\u30A9\u30EB\u30C0\u306E\u4F5C\u6210 +BiasD-From-upper_left_to_lower_right=\u5DE6\u4E0A\u5074\u304B\u3089\u53F3\u4E0B\u5074\u3078 +CapsLock=Caps Lock\u304C\u30AA\u30F3\u306B\u306A\u3063\u3066\u3044\u308B +StyleFormat-Sample=\u30B5\u30F3\u30D7\u30EB +RWA-Smart_Add_Cell_Group=\u30BB\u30EB\u30B0\u30EB\u30FC\u30D7\u81EA\u52D5\u8FFD\u52A0 MConfig-CancelButton=\u30AD\u30E3\u30F3\u30BB\u30EB -Function-Choose_Function_Class=\u95A2\u6570\u30AF\u30E9\u30B9\u3092\u9078\u629E\u3059\u308B -LatLng=\u5EA7\u6A19 +Function-Choose_Function_Class=\u95A2\u6570\u30AF\u30E9\u30B9\u9078\u629E +LatLng=\u7D4C\u5EA6\u7DEF\u5EA6 DS-Server_TableData=\u30B5\u30FC\u30D0\u30C7\u30FC\u30BF\u30BB\u30C3\u30C8 -BackgroundTexture-GreenMarble=\u7DD1\u8272\u306E\u5927\u7406\u77F3 -read_time_out=\u30ED\u30FC\u30C9\u306E\u30BF\u30A4\u30E0\u30A2\u30A6\u30C8 -JavaScript-Commit_to_Database=\u5165\u5EAB\u63D0\u51FA -DS-Relation_TableData=\u30C7\u30FC\u30BF\u30BB\u30C3\u30C8\u95A2\u9023\u4ED8\u3051 -CellWrite-Page_Before_Row=\u884C\u524D\u306E\u6539\u9801 -FR-Designer-Plugin_Load_Plugins_From_Server=\u30D7\u30E9\u30B0\u30A4\u30F3\u30DE\u30FC\u30B1\u30C3\u30C8\u304B\u3089\u30C7\u30FC\u30BF\u53D6\u5F97\u4E2D -D-Dispaly_Divide_Result_Set_into_Groups=resultset\u306E\u30B0\u30EB\u30FC\u30D7\u5206\u3051 -Closed=\u9589\u9396\u6E08\u307F -RWA-Help=\u8A2D\u7F6E\u5F8C\u306E\u6539\u6B63\u3092\u66F4\u65B0\u3057\u306A\u3044\u3068\u3001\u7533\u544A\u30D7\u30EC\u30D3\u30E5\u30FC\u30EC\u30DD\u30FC\u30C8\u306B\u8A18\u9332\u3055\u308C\u3066\u3044\u306A\u3044\u6240\u5728\u30EC\u30A4\u30E4 -FR-Designer-Widget-Style_Custom= -FR-Designer-Widget-Style_Render_Style=\u307C\u304B\u3057\u30B9\u30BF\u30A4\u30EB +BackgroundTexture-GreenMarble=\u5927\u7406\u77F3(\u7DD1) +read_time_out=\u30ED\u30FC\u30C9\u30BF\u30A4\u30E0\u30A2\u30A6\u30C8 +JavaScript-Commit_to_Database=DB\u306B\u66F8\u304D\u8FBC\u307F +DS-Relation_TableData=\u95A2\u9023\u30C7\u30FC\u30BF\u30BB\u30C3\u30C8 +CellWrite-Page_Before_Row=\u884C\u524D +FR-Designer-Plugin_Load_Plugins_From_Server=\u30D7\u30E9\u30B0\u30A4\u30F3\u30B9\u30C8\u30A2\u304B\u3089\u30C7\u30FC\u30BF\u53D6\u5F97\u4E2D +D-Dispaly_Divide_Result_Set_into_Groups=\u7D50\u679C\u30BB\u30C3\u30C8\u3092\u30B0\u30EB\u30FC\u30D7\u5206\u3051 +Closed=\u9589\u3058\u307E\u3057\u305F +RWA-Help=\u672A\u5909\u66F4\u3067\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8\u3057\u306A\u3044\u3053\u3068\u304C\u8A2D\u5B9A\u3055\u308C\u308B\u3068\u3001\u5E33\u7968\u306E\u4F5C\u6210\u3068\u30D7\u30EC\u30D3\u30E5\u30FC\u3092\u3059\u308B\u6642\u306B\u3001\u8A18\u9332\u5185\u5BB9\u306E\u30BB\u30EB\u306F\u7DE8\u96C6\u3084\u5909\u66F4\u3055\u308C\u306A\u3044\u306E\u3067\u3001\u3053\u306E\u8A18\u9332\u306F\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8\u3055\u308C\u306A\u3044\u3002\n\u30D3\u30C3\u30B0\u30C7\u30FC\u30BF\u91CF\u306E\u691C\u7D22\u304A\u3088\u3073\u57CB\u3081\u623B\u3057\u306E\u5834\u5408\u3001\u3053\u306E\u8A2D\u5B9A\u3092\u6709\u52B9\u306B\u3059\u308C\u3070\u3001\u4F5C\u6210\u3068\u66F8\u304D\u8FBC\u307F\u306E\u6A5F\u80FD\u3092\u9AD8\u3081\u308B\u3053\u3068\u304C\u3067\u304D\u308B\u3002 +FR-Designer-Widget-Style_Custom=\u30AB\u30B9\u30BF\u30E0 +FR-Designer-Widget-Style_Render_Style=\u30EC\u30F3\u30C0\u30EA\u30F3\u30B0\u30B9\u30BF\u30A4\u30EB Highlight-Barcode=\u30D0\u30FC\u30B3\u30FC\u30C9 -FR-Designer_Connect_SQL_Cannot_Null=\u30C7\u30FC\u30BF\u63A5\u7D9A\u3068SQL\u30D1\u30CD\u30EB\u306F\u7A7A\u306B\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093 -trigger=\u6A19\u984C +FR-Designer_Connect_SQL_Cannot_Null=\u30C7\u30FC\u30BF\u63A5\u7D9A\u3068SQL\u30D1\u30CD\u30EB\u306F\u7A7A\u306B\u3067\u304D\u307E\u305B\u3093 +trigger=\u89E6\u767A M-Data_Analysis=\u30C7\u30FC\u30BF\u5206\u6790 -Function-The_selected_file_cannot_be_null=\u9078\u629E\u3055\u308C\u305F\u30D5\u30A1\u30A4\u30EB\u306F\u7A7A\u5024\u306B\u306A\u3063\u3066\u306F\u3044\u3051\u307E\u305B\u3093 -No-Privilege=\u30A2\u30AF\u30BB\u30B9\u304C\u62D2\u5426\u3055\u308C\u307E\u3057\u305F -ReportColumns-Repeat_Column=\u5217\u756A\u53F7\u306E\u7E70\u308A\u8FD4\u3057 -SecondGraduationUnit=\u4E8C\u6B21\u7684\u76EE\u76DB\u308A\u5358\u4F4D +Function-The_selected_file_cannot_be_null=\u30D5\u30A1\u30A4\u30EB\u306F\u7A7A\u306B\u3067\u304D\u307E\u305B\u3093 +No-Privilege=\u6A29\u9650\u306A\u3057 +ReportColumns-Repeat_Column=\u5217\u306E\u9806\u5E8F\u3092\u30B3\u30D4\u30FC +SecondGraduationUnit=\u88DC\u52A9\u76EE\u76DB\u5358\u4F4D Form-Widget_Property_Value=\u5C5E\u6027\u5024 GIVE-NAME=\u547D\u540D -FR-Designer_Rename=\u540D\u79F0\u306E\u5909\u66F4 -Utils-Merge_Cell=\u30BB\u30EB\u3092\u7D50\u5408\u3059\u308B -Style-Spacing_After=\u6BB5\u5F8C +FR-Designer_Rename=\u540D\u524D\u3092\u5909\u66F4 +Utils-Merge_Cell=\u30BB\u30EB\u7D50\u5408 +Style-Spacing_After=\u6BB5\u843D\u5F8C Enlarge_Or_Reduce=\u30BA\u30FC\u30E0 Tree-Height=\u9AD8\u3055 -RCodeErrorCorrect=\u30A8\u30E9\u30FC\u8A02\u6B63 +RCodeErrorCorrect=\u8AA4\u308A\u8A02\u6B63\u80FD\u529B Enter-New-FileName=\u65B0\u3057\u3044\u30D5\u30A1\u30A4\u30EB\u540D\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044 -try_resending=\u30C8\u30EA\u30AC\u30FC\u3055\u308C\u308B -M-Open_Report=\u3092\u958B\u304F... -Please_Select=\u9078\u629E\u3057\u3066\u304F\u3060\u3055\u3044 +try_resending=\u518D\u9001\u4FE1\u3092\u8A66\u3057\u3066\u4E0B\u3055\u3044 +M-Open_Report=\u958B\u304F +Please_Select=\u9078\u629E\u3057\u3066\u4E0B\u3055\u3044 InRow=\u884C(R) -Form-TextArea=\u6587\u66F8\u57DF -FR-Designer_Https_Enable=https\u4F7F\u7528\u958B\u59CB -Widget-Custom_Widget_Config=\u30AB\u30B9\u30BF\u30DE\u30A4\u30BA\u30B3\u30F3\u30C8\u30ED\u30FC\u30EB -already_exists=\u3053\u3053\u306F\u3059\u3067\u306B\u5B58\u5728\u3057\u3066\u3044\u307E\u3059 -Original_Marked_Filed=\u521D\u671F\u30BF\u30B0\u30D5\u30A3\u30FC\u30EB\u30C9 -BackgroundTexture-Sand=\u7802\u6D5C +Form-TextArea=\u30C6\u30AD\u30B9\u30C8\u30A8\u30EA\u30A2 +FR-Designer_Https_Enable=HTTPS\u3092\u6709\u52B9\u306B\u3059\u308B +Widget-Custom_Widget_Config=\u30AB\u30B9\u30BF\u30E0\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8 +already_exists=\u3059\u3067\u306B\u5B58\u5728\u3057\u3066\u3044\u307E\u3059 +Original_Marked_Filed=\u30AA\u30EA\u30B8\u30CA\u30EB\u30BF\u30B0\u30D5\u30A3\u30FC\u30EB\u30C9 +BackgroundTexture-Sand=\u7802 Values=\u5024 -Not_use_a_cell_attribute_table_editing=\u3042\u306A\u305F\u304C\u7DE8\u96C6\u3059\u308B\u30BB\u30EB\u306E\u5C5E\u6027\u30C6\u30FC\u30D6\u30EB\u3092\u4F7F\u7528\u3059\u308B\u3053\u3068 -Root=\u30EB\u30FC\u30C8\u30CE\u30FC\u30C9 +Not_use_a_cell_attribute_table_editing=\u30BB\u30EB\u5C5E\u6027\u8868\u3067\u7DE8\u96C6\u3057\u3066\u306F\u306A\u3089\u306A\u3044 +Root=\u30EB\u30FC\u30C4\u30CE\u30FC\u30C9 cycle=\u5468\u671F -open-new-form-tip=711\u4EE5\u4E0B\u306E\u751F\u7523\u306E\u305F\u3081\u306E\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u306E\u73FE\u5728\u306E\u30D0\u30FC\u30B8\u30E7\u30F3\u306F\u3001\u4E92\u63DB\u6027\u304C\u306A\u3044\u3068 +open-new-form-tip=\u73FE\u5728\u306E\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u306F711\u4EE5\u4E0B\u306E\u30D0\u30FC\u30B8\u30E7\u30F3\u3067\u4F5C\u6210\u3055\u308C\u3066\u3044\u308B\u305F\u3081\u3001\u4E92\u63DB\u6027\u304C\u306A\u304F\u3001\u958B\u304F\u3053\u3068\u304C\u3067\u304D\u307E\u305B\u3093\u3002\u3053\u306E\u30C0\u30C3\u30B7\u30E5\u30DC\u30FC\u30C9\u3092\u7DE8\u96C6\u3059\u308B\u306B\u306F\u3001\u5BFE\u5FDC\u30D0\u30FC\u30B8\u30E7\u30F3\u306E\u30C7\u30B6\u30A4\u30CA\u30FC\u3092\u5229\u7528\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002 Support-Current_Auto_Complete_Shortcut=\u73FE\u5728\u306E\u30B7\u30E7\u30FC\u30C8\u30AB\u30C3\u30C8\u30AD\u30FC -GROUPING_MODE=\u666E\u901A\u30B0\u30EB\u30FC\u30D7\u5206\u3051 -DBCP_MAX_IDLE=\u6700\u5927\u30A2\u30A4\u30C9\u30EB\u63A5\u7D9A\u6570 -BackgroundTexture-BlueTissuePaper=\u9752\u3044\u30B5\u30F3\u30C9\u30DA\u30FC\u30D1\u30FC -ReportD-Export_Hided_Row=\u96A0\u3057\u305F\u884C\u3092\u5C0E\u51FA -FR-Custom_styles_lost=\u30AB\u30B9\u30BF\u30DE\u30A4\u30BA\u30B9\u30BF\u30A4\u30EB\u306F\u5931\u308F\u308C\u307E\u3057\u305F -Env-Des2=Servlet\u306E\u4F4D\u7F6E\u306F\u30DB\u30B9\u30C8\u30B3\u30F3\u30D4\u30E5\u30FC\u30BF\u540D\u3001\u30A4\u30F3\u30BF\u30FC\u30D5\u30A7\u30A4\u30B9\u3001WEB\u30A2\u30D7\u30EA\u30B1\u30FC\u30B7\u30E7\u30F3\u3001 -Env-Des1=\u5E33\u7968\u30B5\u30FC\u30D0\u304C\u3042\u308BWEB-INF\u76EE\u6B21\u3092\u9078\u629E\u3057\u3066\u304F\u3060\u3055\u3044 -PageSetup-Placement_Center_on_Page=\u4E2D\u592E\u63C3\u3048 -sure_to_delete=\u524A\u9664\u3092\u78BA\u8A8D\u3057\u307E\u3059 -Already_exists_not_add_repeat=\u3059\u3067\u306B\u5B58\u5728\u3057\u3066\u3044\u308B\u3001\u30EA\u30D4\u30FC\u30C8\u3092\u8FFD\u52A0\u3057\u306A\u3044\u3067\u304F\u3060\u3055\u3044 -Axis_Title=\u8EF8\u306E\u8868\u984C -FR-Designer-Plugin_Install_Failed=\u30D7\u30E9\u30B0\u30A4\u30F3\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u306B\u5931\u6557\u3057\u307E\u3057\u305F +GROUPING_MODE=\u4E00\u822C\u30B0\u30EB\u30FC\u30D7\u5206\u3051 +DBCP_MAX_IDLE=\u30D7\u30FC\u30EB\u306B\u4FDD\u6301\u3059\u308B\u6700\u5927\u63A5\u7D9A\u6570 +BackgroundTexture-BlueTissuePaper=\u9752\u3044\u753B\u7528\u7D19 +ReportD-Export_Hided_Row=\u975E\u8868\u793A\u884C\u30A8\u30AF\u30B9\u30DD\u30FC\u30C8 +FR-Custom_styles_lost=\u30AB\u30B9\u30BF\u30E0\u30B9\u30BF\u30A4\u30EB\u7D1B\u5931 +Env-Des2=Servlet\u4F4D\u7F6E\u306F\u30DB\u30B9\u30C8\u540D\u3001\u30DD\u30FC\u30C8\u3001WEB\u30A2\u30D7\u30EA\u3068Servlet\u306E\u7D44\u307F\u5408\u308F\u305B\u3002Servlet\u4F4D\u7F6E\u306F\u4E00\u3064\u306EServlet\u3092\u6307\u3059\u3002\u4F8B\uFF1A"http\://localhost\:8080/WebReport/ReportServer" \u30DB\u30B9\u30C8\u540D\u3001\u30DD\u30FC\u30C8\u3001WEB\u30A2\u30D7\u30EA\u3068Servlet\u3092\u8A18\u5165\u3057\u305F\u5F8C\u3001Servlet\u4F4D\u7F6E\u306F\u81EA\u52D5\u7684\u306B\u4F5C\u6210\u3055\u308C\u308B\u3002 +Env-Des1=\u5E33\u7968\u30B5\u30FC\u30D0\u306E\u3042\u308BWEB-INF\u3092\u9078\u629E\u3057\u3066\u304F\u3060\u3055\u3044 +PageSetup-Placement_Center_on_Page=\u4E2D\u592E\u63C3\u3048\u65B9\u5F0F +sure_to_delete=\u524A\u9664\u3057\u307E\u3059\u304B +Already_exists_not_add_repeat=\u3059\u3067\u306B\u5B58\u5728\u3057\u3066\u3044\u307E\u3059 +Axis_Title=\u8EF8\u30E9\u30D9\u30EB +FR-Designer-Plugin_Install_Failed=\u30D7\u30E9\u30B0\u30A4\u30F3\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u5931\u6557 FR-Designer-Widget-Style_Frame=\u30D5\u30EC\u30FC\u30E0 -MainGraduationUnit=\u4E3B\u306A\u76EE\u76DB\u308A\u5358\u4F4D -Second_Axis=\u6B21\u5EA7\u6A19\u8EF8 +MainGraduationUnit=\u4E3B\u76EE\u76DB\u5358\u4F4D +Second_Axis=\u7B2C2\u5EA7\u6A19\u8EF8 Classifier-Ge=\u500B -MSBold=\u5FAE\u8EDF\u96C5\u9ED2 -Form-Design_Size=\u30C7\u30B6\u30A4\u30F3\u30B5\u30A4\u30BA +MSBold=\u30DE\u30A4\u30AF\u30ED\u30BD\u30D5\u30C8\u30E4\u30D8\u30A4 +Form-Design_Size=\u8A2D\u8A08\u306E\u30B5\u30A4\u30BA FR-App-Template_Save=\u4FDD\u5B58 -ExpandD-Horizontal_Extendable=\u6A2A\u5E83\u304C\u308B -RP_Authority_Edit=\u6A29\u9650\u7DE8\u96C6 -Warnning=\u30EA\u30DE\u30A4\u30F3\u30C9 -RoleName_Can_Not_Be_Null=\u5F79\u5272\u540D\u306F\u7A7A\u6B04\u306B\u3059\u308B\u3053\u3068\u304C\u3067\u304D\u305A\u3001\u91CD\u8907\u3059\u308B\u3053\u3068\u3082\u3067\u304D\u307E\u305B\u3093 -Application=\u30A2\u30D7\u30EA\u30B1\u30FC\u30B7\u30E7\u30F3 -Formula_Dictionary_Display_Examples_Html=\u5B9F\u969B\u5024\u7BC4\u56F2\u306F\ +ExpandD-Horizontal_Extendable=\u6A2A\u5C55\u958B +RP_Authority_Edit=\u6A29\u9650 +Warnning=\u6CE8\u610F +RoleName_Can_Not_Be_Null=\u5F79\u5272\u540D\u306F\u7A7A\u6B04\u306B\u3067\u304D\u307E\u305B\u3093\u3001\u307E\u305F\u3001\u91CD\u8907\u3082\u3067\u304D\u307E\u305B\u3093 +Application=\u30A2\u30D7\u30EA +Formula_Dictionary_Display_Examples_Html=Formula_Dictionary_Display_Examples_Html ECP-error_pwd=\u30D1\u30B9\u30EF\u30FC\u30C9\u30A8\u30E9\u30FC FR-Hyperlink_ChartHyperlink=\u30B0\u30E9\u30D5\u30CF\u30A4\u30D1\u30FC\u30EA\u30F3\u30AF -M_Edit-FormatBrush=\u66F8\u5F0F\u30D6\u30E9\u30B7(B) +M_Edit-FormatBrush=\u66F8\u5F0F\u30B3\u30D4\u30FC(B) Indent-Pixel=\u753B\u7D20 -FR-Designer-Widget-Style_Border_Line=\u30D5\u30EC\u30FC\u30E0\u592A\u3055 -Widget-Default_Widget_Config=\u57FA\u672C\u30B3\u30F3\u30C8\u30ED\u30FC\u30EB -Version-does-not-support=\u73FE\u5728\u4F7F\u7528\u3057\u3066\u3044\u308Blic\u306F\u9060\u9694\u30C7\u30B6\u30A4\u30F3\u6A5F\u80FD\u306B\u30B5\u30DD\u30FC\u30C8\u3057\u3066\u3044\u307E\u305B\u3093\u3002 -StyleAlignment-Right_To_Left=\u53F3\u304B\u3089\u5DE6\u3078 -Style-Spacing_Before=\u6BB5\u524D -Has_Existed=\u3059\u3067\u306B\u5B58\u5728\u3057\u3066\u3044\u307E\u3059 -FR-Designer_DisplayNothingBeforeQuery=\u30EC\u30DD\u30FC\u30C8\u304C\u8868\u793A\u3055\u308C\u307E\u305B\u3093\u524D\u306B\u5185\u5BB9\u3092\u78BA\u8A8D\u3059\u308B]\u3092\u30AF\u30EA +FR-Designer-Widget-Style_Border_Line=\u7F6B\u7DDA\u306E\u592A\u3055 +Widget-Default_Widget_Config=\u57FA\u672C\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8 +Version-does-not-support=\u304A\u4F7F\u3044\u306Elic\u306F\u30EA\u30E2\u30FC\u30C8\u958B\u767A\u6A5F\u80FD\u3092\u30B5\u30DD\u30FC\u30C8\u3057\u3066\u3044\u307E\u305B\u3093\u3001\u3054\u5229\u7528\u306B\u306FLIC\u3092\u30A2\u30C3\u30D7\u30B0\u30EC\u30FC\u30C9\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059 +StyleAlignment-Right_To_Left=\u53F3\u304B\u3089\u5DE6 +Style-Spacing_Before=\u6BB5\u843D\u524D +Has_Existed=\u65E2\u306B\u3042\u308B +FR-Designer_DisplayNothingBeforeQuery=\u30AF\u30A8\u30EA\u30AF\u30EA\u30C3\u30AF\u524D\u306B\u5E33\u7968\u5185\u5BB9\u3092\u8868\u793A\u3057\u306A\u3044 Still=\u4F9D\u7136\u3068\u3057\u3066 JS_WARNING2=\ \u4F8B\uFF1Ahttp\://localhost\:8075/WebReport/demo.js JS_WARNING1= \u76F8\u5BFE\u7684\u5E33\u7968\u5DE5\u7A0B\u306EWebReport\u306E\u76EE\u6B21\u304C\u3001WebReport\\js\u4E0B\u306B\u5F15\u7528\u3059\u308Bjs -Connectionline=\u63A5\u7D9A\u30EF\u30A4\u30E4\u30E2\u30C7\u30EB +Connectionline=\u63A5\u7D9A\u30E2\u30FC\u30C9 Utils-Insert_Record=\u8A18\u9332\u633F\u5165 -Set-Parameter-Name=\u307E\u305A\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC\u540D\u3092\u8A2D\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044 -More-information=\u8A73\u7D30\u60C5\u5831 -Parameter-Boolean=\u8AD6\u7406\u578B +Set-Parameter-Name=Set-Parameter-Name +More-information=\u3055\u3089\u306B\u8A73\u3057\u3044\u60C5\u5831 +Parameter-Boolean=\u30D6\u30FC\u30EB\u578B FRFont-Strikethrough=\u53D6\u308A\u6D88\u3057\u7DDA -Server-version-tip=\u3042\u306A\u305F\u306F\u3001\u73FE\u5728\u3001\u3042\u306A\u305F\u306F\u3044\u304F\u3064\u304B\u306E\u30D7\u30ED\u30D1\u30C6\u30A3\u304C\u52B9\u679C\u7684\u306B\u4FDD\u5B58\u3059\u308B\u3053\u3068\u304C +Server-version-tip=\u4ECA\u63A5\u7D9A\u3055\u308C\u3066\u3044\u308B\u30B5\u30FC\u30D0\u306E\u30D0\u30FC\u30B8\u30E7\u30F3\u306F\u3054\u4F7F\u7528\u306E\u30C7\u30B6\u30A4\u30CA\u30FC\u306E\u30D0\u30FC\u30B8\u30E7\u30F3\u756A\u53F7\u3088\u308A\u4F4E\u3044\u306E\u3067\u3001\u5F15\u304D\u7D9A\u304D\u63A5\u7D9A\u3059\u308B\u3068\u3001\u7DE8\u96C6\u306E\u3044\u304F\u3064\u304B\u306E\u5C5E\u6027\u306F\u6709\u52B9\u7684\u306B\u4FDD\u5B58\u3067\u304D\u306A\u3044\u304B\u3082\u3057\u308C\u306A\u3044\u3002\u63A5\u7D9A\u3059\u308B\u5FC5\u8981\u304C\u3042\u308C\u3070\u3001\u304A\u4F7F\u3044\u306E\u30C7\u30B6\u30A4\u30CA\u30FC\u306E\u30D0\u30FC\u30B8\u30E7\u30F3\u306F\u30B5\u30FC\u30D0\u306E\u30D0\u30FC\u30B8\u30E7\u30F3\u3068\u30C1\u30A7\u30C3\u30AF\u3057\u3066\u304F\u3060\u3055\u3044 Form-All_Files=\u5168\u3066\u306E\u30D5\u30A1\u30A4\u30EB -DBCP_NUM_TEST_PER_EVCTION_RUN=\u30A2\u30A4\u30C9\u30EB\u63A5\u7D9A\u30EA\u30B5\u30A4\u30AF\u30EB\u691C\u67FB\u6570 +DBCP_NUM_TEST_PER_EVCTION_RUN=1\u56DE\u306E\u691C\u8A3C\u5F53\u305F\u308A\u306E\u5BFE\u8C61\u63A5\u7D9A\u6570 FR-Designer-FRFont_Family=\u540D\u524D -Device=\u8A2D\u5099 +Device=\u30C7\u30D0\u30A4\u30B9 M_Insert-Cell=\u30BB\u30EB\u8981\u7D20 -Present-Formula_Present=\u516C\u5F0F\u30D5\u30A9\u30EB\u30E0 +Present-Formula_Present=\u6570\u5F0F\u5F62\u614B FRFont-Superscript=\u4E0A\u4ED8\u304D -CellWrite-Page_Before_Column=\u5217\u524D\u306E\u6539\u9801 -Golden=\u30B4\u30FC\u30EB\u30C7\u30F3 -Preference-Support_Cell_Editor_Definition=\u30BB\u30EB\u30A8\u30C7\u30A3\u30BF\u30FC\u3092\u30B5\u30DD\u30FC\u30C8\u3059\u308B -M-Page_Preview=\u30DA\u30FC\u30B8\u5225\u30D7\u30EC\u30D3\u30E5\u30FC +CellWrite-Page_Before_Column=\u5217\u524D +Golden=\u91D1\u8272 +Preference-Support_Cell_Editor_Definition=\u30BB\u30EB\u30A8\u30C7\u30A3\u30BF\u3092\u30B5\u30DD\u30FC\u30C8 +M-Page_Preview=\u6539\u30DA\u30FC\u30B8\u30D7\u30EC\u30D3\u30E5\u30FC HJS-CC_to=CC -Tree-Select_Leaf_Only=\u8449\u30CE\u30FC\u30C9\u306B\u623B\u308B -Pointer-A-Tick-Order=\u30DD\u30A4\u30F3\u30BF\u5024\u3068\u76EE\u76DB\u308A\u5024\u306E\u6570\u91CF\u30E9\u30F3\u30AF +Tree-Select_Leaf_Only=\u30EA\u30FC\u30D5\u30CE\u30FC\u30C9\u3060\u3051\u3092\u623B\u308B +Pointer-A-Tick-Order=\u30E1\u30FC\u30BF\u30FC\u3068\u76EE\u76DB\u306E\u8868\u793A\u5358\u4F4D Pink=\u30D4\u30F3\u30AF StyleAlignment-Distibuted=\u5747\u7B49\u5272\u308A\u4ED8\u3051 Odd=\u5947\u6570 -already-saved=\u4FDD\u5B58\u3055\u308C\u3066\u3044\u308B -FR-Hyperlink_Chart_Cell=\u30B0\u30E9\u30D5\u30CF\u30A4\u30D1\u30FC\u30EA\u30F3\u30AF-\u9023\u52D5\u30BB\u30EB +already-saved=\u4FDD\u5B58\u6E08\u307F +FR-Hyperlink_Chart_Cell=\u30B0\u30E9\u30D5\u30CF\u30A4\u30D1\u30FC\u30EA\u30F3\u30AF-\u30BB\u30EB\u9023\u52D5 Style-Left_Indent=\u5DE6\u30A4\u30F3\u30C7\u30F3\u30C8 -Offline=\u79BB\u7EBF +Offline=\u30AA\u30D5\u30E9\u30A4\u30F3 Form-Hierarchy_Tree_Next=\u6B21 -Needle=\u30DD\u30A4\u30F3\u30BF -GoogleMap=Google\u30DE\u30C3\u30D7 -Running=\u904B\u884C\u4E2D -M_Edit-Unmerge_Cell=\u30BB\u30EB\u3092\u5206\u5272\u3059\u308B -Out_Border_Line=\u5916\u5074\u30D5\u30EC\u30FC\u30E0\u30E9\u30A4\u30F3 -Style-Spacing=\u9593\u9694\u8DDD\u96E2 -FR-Utils_Submit=\u63D0\u51FA +Needle=\u30E1\u30FC\u30BF\u30FC +GoogleMap=\u30B0\u30FC\u30B0\u30EB\u30DE\u30C3\u30D7 +Running=\u5B9F\u884C\u4E2D +M_Edit-Unmerge_Cell=\u30BB\u30EB\u7D50\u5408\u306E\u89E3\u9664 +Out_Border_Line=\u5916\u67A0 +Style-Spacing=\u9593\u9694 +FR-Utils_Submit=\u66F8\u304D\u8FBC\u307F ReportServerP-Previous=\u524D\u30DA\u30FC\u30B8 -StyleAlignment-Text_Style=\u30C6\u30AD\u30B9\u30C8\u30B9\u30BF\u30A4\u30EB +StyleAlignment-Text_Style=\u30C6\u30AD\u30B9\u30C8\u5236\u5FA1 RelatedChart=\u30B0\u30E9\u30D5\u9023\u52D5 -ProcessManager=\u30D7\u30ED\u30BB\u30B9\u7BA1\u7406 -Cancel_Repeat_Attributes=\u30EA\u30D4\u30FC\u30C8\u30E9\u30F3\u30AF\u3092\u30AD\u30E3\u30F3\u30BB\u30EB\u3059\u308B\u306B\u306F +ProcessManager=\u30D5\u30ED\u30FC\u7BA1\u7406 +Cancel_Repeat_Attributes=\u91CD\u8907\u884C\u5217\u89E3\u9664 FR-App-File_Message=\u60C5\u5831 -Datasource-Stored_Procedure=\u30B9\u30C8\u30A2\u30C9 \u30D7\u30ED\u30B7\u30FC\u30B8\u30E3 -RWA-Row_Offset=\u884C\u30AA\u30D5\u30BB\u30C3\u30C8 +Datasource-Stored_Procedure=\u30B9\u30C8\u30A2\u30C9\u30D7\u30ED\u30B7\u30FC\u30B8\u30E3 +RWA-Row_Offset=\u884C\u306E\u30AA\u30D5\u30BB\u30C3\u30C8 M_Format-Style=\u30B9\u30BF\u30A4\u30EB -detail_description=\u8A73\u7D30\u306A\u8AAC\u660E -FR-Designer-Widget-Style_Title_Content=\u6A19\u984C\u5185\u5BB9 -ParameterD-Report_Parameter=\u5E33\u7968\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC -HF-Edit_Header=\u30D8\u30C3\u30C0\u7DE8\u96C6 +detail_description=\u8A73\u7D30\u8A18\u8FF0 +FR-Designer-Widget-Style_Title_Content=\u30BF\u30A4\u30C8\u30EB\u5185\u5BB9 +ParameterD-Report_Parameter=\u5E33\u7968\u30D1\u30E9\u30E1\u30FC\u30BF +HF-Edit_Header=\u30D8\u30C3\u30C0\u30FC\u7DE8\u96C6 Sytle-FRFont=\u30D5\u30A9\u30F3\u30C8 FR-Designer_Finish_Export=\u5C0E\u51FA\u5B8C\u4E86 MultiFileUpload=\u8907\u6570\u30D5\u30A1\u30A4\u30EB\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9 @@ -929,979 +928,979 @@ HF-Page_Number=\u30DA\u30FC\u30B8\u756A\u53F7 Style-Right_Indent=\u53F3\u30A4\u30F3\u30C7\u30F3\u30C8 Desktop=\u30C7\u30B9\u30AF\u30C8\u30C3\u30D7 FR-Server-All_Error=\u30A8\u30E9\u30FC -ConditionB-Operator=\u64CD\u4F5C +ConditionB-Operator=\u6F14\u7B97\u5B50 Today=\u4ECA\u65E5 -Form-Widget_Name=\u30B3\u30F3\u30C8\u30ED\u30FC\u30EB\u540D -Covered_All=\u5168\u3066\u8986\u3046 +Form-Widget_Name=\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u540D +Covered_All=\u5168\u3066\u4E0A\u66F8\u304D Day=\u65E5 External=\u5916\u90E8 -Black_Font=\u592A\u5B57 -LOG-Report_Server_IS_Started=\u5E33\u7968\u30B5\u30FC\u30D0\u3082\u3046\u8D77\u52D5\u3055\u308C\u3066\u3044\u307E\u3059 -Tips\:You_Can_Input_B1_To_Input_The_Data_Of_The_First_Row_Second_Column=\u30D2\u30F3\u30C8\:B1\u3092\u5165\u529B -FR-Designer_ChooseOneButton=\u30B3\u30F3\u30C8\u30ED\u30FC\u30EB\u3092\u4E00\u3064\u9078\u629E\u3057\u3066\u304B\u3089\u8FFD\u52A0\u3057\u3066\u304F\u3060\u3055\u3044 -Widget-Sizing=\u5927\u304D\u3055\u8ABF\u6574 -NO_Border_Line=\u30D5\u30EC\u30FC\u30E0\u30E9\u30A4\u30F3\u7121\u3057 +Black_Font=\u9ED2\u4F53 +LOG-Report_Server_IS_Started=\u5E33\u7968\u30B5\u30FC\u30D0\u8D77\u52D5 +Tips\:You_Can_Input_B1_To_Input_The_Data_Of_The_First_Row_Second_Column=\u30D2\u30F3\u30C8\:B1\u306E\u5165\u529B\u3092\u901A\u3058\u3066\u7B2C1\u884C2\u5217\u76EE\u306E\u30C7\u30FC\u30BF\u3092\u66F8\u304D\u8FBC\u3080\u3053\u3068\u304C\u3067\u304D\u308B\u3002 +FR-Designer_ChooseOneButton=\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u3092\u9078\u629E\u3057\u3066\u8FFD\u52A0\u3057\u3066\u4E0B\u3055\u3044 +Widget-Sizing=\u30B5\u30A4\u30BA\u8ABF\u6574 +NO_Border_Line=\u67A0\u7DDA\u306A\u3057 Cell_Data=\u30BB\u30EB\u30C7\u30FC\u30BF -StyleAlignment-Vertical_Text=\u6587\u5B57\u3092\u7E26\u306B\u3059\u308B -Label=\u30BF\u30B0 +StyleAlignment-Vertical_Text=\u6587\u5B57\u7E26\u66F8\u304D +Label=\u30E9\u30D9\u30EB Orange=\u30AA\u30EC\u30F3\u30B8 -zeroMarginWarn=\u30D7\u30EA\u30F3\u30BF\u306F\u5C0F\u3055\u306A\u7F36
\u30B3\u30F3\u30C6\u30F3\u30C4\u4E0D\u8DB3\u3092\u5370\u5237\u3059\u308B\u3053\u3068\u304C\u3067\u304D\u3001\u7269\u7406\u30DE\u30FC\u30B8\u30F3 +zeroMarginWarn=\u30D7\u30EA\u30F3\u30BF\u306F\u7269\u7406\u7684\u306A\u4F59\u767D\u304C\u5FC5\u8981\u306A\u305F\u3081
\u5E33\u7968\u306E\u30DE\u30FC\u30B8\u30F3\u306E\u8A2D\u5B9A\u304C\u5C0F\u3055\u3059\u304E\u308B\u3068
\u5185\u5BB9\u306E\u5370\u5237\u304C\u4E0D\u5B8C\u5168\u306B\u306A\u308B\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059\u3002
  Widget-Date_Selector_Return_Type=\u623B\u308A\u5024\u30BF\u30A4\u30D7 -Utils-Switch_To_Template_Reportlet=\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u30CD\u30C3\u30C8\u30EF\u30FC\u30AF\u5E33\u7968\u306B\u5207\u308A\u66FF\u3048 +Utils-Switch_To_Template_Reportlet=\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u30CD\u30C3\u30C8\u5E33\u7968\u306B\u5207\u308A\u66FF\u3048\u308B satisfy=\u6761\u4EF6\u3092\u6E80\u305F\u3059 -FR-Designer_WidgetDisplyPosition=\u30B3\u30F3\u30C8\u30ED\u30FC\u30EB\u8868\u793A\u4F4D\u7F6E +FR-Designer_WidgetDisplyPosition=\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u8868\u793A\u4F4D\u7F6E FR-Base_Top=\u4E0A -FR-Designer_Form-CheckBox=\u30D5\u30EC\u30FC\u30E0\u3092\u8907\u6570\u9078\u629E -Reportlet-Parameter_Type=\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC\u4F1D\u9054\u65B9\u6CD5 -sending=\u9001\u4FE1\u4E2D... +FR-Designer_Form-CheckBox=\u30C1\u30A7\u30C3\u30AF\u30DC\u30C3\u30AF\u30B9 +Reportlet-Parameter_Type=\u30D1\u30E9\u30E1\u30FC\u30BF\u8EE2\u9001\u65B9\u5F0F +sending=\u8EE2\u9001\u4E2D\u2026 FR-Designer-FRFont_Foreground=\u8272 -FR-Import-Export_SVG=SVG\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8 +FR-Import-Export_SVG=SVG M_Edit-Clear_Contents=\u5185\u5BB9(C) Session=\u30BB\u30C3\u30B7\u30E7\u30F3 -Widget-Load_Type=\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9 -template_unsaved=\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u304C\u4FDD\u5B58\u3067\u304D\u306A\u3044 -check_communication=\u30CD\u30C3\u30C8\u30EF\u30FC\u30AF\u901A\u4FE1\u304C\u6B63\u5E38\u3067\u3042\u308A\u3001\u30B5\u30FC\u30D0\u304C\u52D5\u4F5C\u3057\u3066\u3044\u308B\u3053\u3068\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060 -List-Need_Head=\u30EA\u30B9\u30C8\u30D8\u30C3\u30C9\u304C\u5FC5\u8981\u3067\u3059 -FR-Designer-Plugin_Has_Been_Installed=\u30D7\u30E9\u30B0\u30A4\u30F3\u306F\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u3055\u308C\u3066\u3044\u307E\u3059\u3002\u30D7\u30E9\u30B0\u30A4\u30F3\u3092 -FR-Widget_Tree_And_Table=\u30B3\u30F3\u30C8\u30ED\u30FC\u30EB\u30C4\u30EA\u30FC\u3068\u30B3\u30F3\u30C8\u30ED\u30FC\u30EB\u8868 +Widget-Load_Type=\u30ED\u30FC\u30C9 +template_unsaved=\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u4FDD\u5B58\u3067\u304D\u306A\u3044 +check_communication=\u30CD\u30C3\u30C8\u30EF\u30FC\u30AF\u901A\u4FE1\u3068\u30B5\u30FC\u30D0\u72B6\u614B\u3092\u30C1\u30A7\u30C3\u30AF\u3057\u3066\u304F\u3060\u3055\u3044 +List-Need_Head=\u30EA\u30B9\u30C8\u30D8\u30C3\u30C0\u30FC\u5FC5\u8981 +FR-Designer-Plugin_Has_Been_Installed=\u30D7\u30E9\u30B0\u30A4\u30F3\u306F\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u3055\u308C\u305F\u3002\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8\u3057\u305F\u3044\u5834\u5408\u3001\u30D7\u30E9\u30B0\u30A4\u30F3\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8\u306B\u5207\u308A\u66FF\u3048\u3066\u4E0B\u3055\u3044 +FR-Widget_Tree_And_Table=\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u30C4\u30EA\u30FC\u3068\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u30EA\u30B9\u30C8 FR-Base_Help=\u30D8\u30EB\u30D7 -FR-Designer-Plugin_Update_Successful=\u30D7\u30E9\u30B0\u30A4\u30F3\u30A2\u30C3\u30D7\u30B0\u30EC\u30FC\u30C9\u306B\u6210\u529F\u3057\u307E\u3057\u305F\u3002\u30B5\u30FC\u30D0\u3092 -August=\u516B\u6708 -LOG-Is_Being_Openned=\u958B\u3044\u3066\u3044\u307E\u3059 +FR-Designer-Plugin_Update_Successful=\u30D7\u30E9\u30B0\u30A4\u30F3\u30A2\u30C3\u30D7\u30B0\u30EC\u30FC\u30C8\u7D42\u4E86\u3001\u30B5\u30FC\u30D0\u518D\u8D77\u52D5\u3067\u6709\u52B9\u306B\u3059\u308B +August=8\u6708 +LOG-Is_Being_Openned=\u8AAD\u307F\u8FBC\u307F\u4E2D BackgroundTexture-Oak=\u30AA\u30FC\u30AF Multi_nam_formula=\ \u30C7\u30FC\u30BF\u30BB\u30C3\u30C8\u540D\: \u30C7\u30FC\u30BF\u30BB\u30C3\u30C8\u6761\u4EF6\: -TurnOn=\u8D77\u52D5 -HJS-Send_Successfully=\u9001\u4FE1\u6210\u529F -Mon=\u6708 -Inner_Parameter=\u5185\u8535\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC -Required=\u8A18\u5165\u5FC5\u9808 -Summary=\u6982\u8981 -template_unopened=\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u3092\u958B\u304F\u3053\u3068\u304C\u3067\u304D\u307E\u305B\u3093 +TurnOn=\u30AA\u30F3 +HJS-Send_Successfully=\u9001\u4FE1\u5B8C\u4E86 +Mon=\u6708\u66DC\u65E5 +Inner_Parameter=\u7D44\u307F\u8FBC\u307F\u306E\u30D1\u30E9\u30E1\u30FC\u30BF +Required=\u8A18\u5165\u5FC5\u8981 +Summary=\u96C6\u8A08 +template_unopened=\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u304C\u958B\u3051\u306A\u3044 FR-Base_Bottom=\u4E0B DataFunction-Min=\u6700\u5C0F\u5024 StyleFormat-Percent=\u30D1\u30FC\u30BB\u30F3\u30C6\u30FC\u30B8 -FR-App-All_Custom=\u30AB\u30B9\u30BF\u30DE\u30A4\u30BA +FR-App-All_Custom=\u30AB\u30B9\u30BF\u30E0 M_Insert-Data_Column=\u30C7\u30FC\u30BF\u5217 -PLEASE=\u3057\u3066\u304F\u3060\u3055\u3044 -Numbers=\u6841\u6570 +PLEASE=\u3069\u3046\u305E +Numbers=\u6570 Release_Lock=\u30A2\u30F3\u30ED\u30C3\u30AF Background-Background_is_NULL=\u80CC\u666F\u306A\u3057 FR-Designer_Sytle-FRFont=\u30D5\u30A9\u30F3\u30C8 -Gradation=\u69CB\u6210 -The_current_list_is_empty=\u73FE\u5728\u306E\u30EA\u30B9\u30C8\u306F\u7A7A\u3067\u3059 -Formula_Dictionary_Display_Examples=\ \u5B9F\u969B\u5024\u7BC4\u56F2\u306F\ -Schedule-Template_Parameter=\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC -JSShow=\u52D5\u614B\u8868\u793A -Level_coordinates=\u30EC\u30D9\u30EB\u306E\u5EA7\u6A19 -MainGraduationLine=\u30E1\u30A4\u30F3\u30B9\u30B1\u30FC\u30EB\u30E9\u30A4\u30F3 -Hyperlink-Web_link=\u30A6\u30A7\u30D6\u30EA\u30F3\u30AF -StyleAlignment-between_-90_and_90=-90\u304B\u308990\u307E\u3067\u306E\u7BC4\u56F2\u3067 -FormulaD-Custom_Function=\u30E6\u30FC\u30B6\u5B9A\u7FA9\u95A2\u6570 +Gradation=\u30EC\u30D9\u30EB +The_current_list_is_empty=\u73FE\u5728\u306E\u30EA\u30B9\u30C8\u306F\u7A7A +Formula_Dictionary_Display_Examples=\u5B9F\u969B\u5024\u7BC4\u56F2\u306F \ +Schedule-Template_Parameter=\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u30D1\u30E9\u30E1\u30FC\u30BF +JSShow=\u52D5\u7684\u8868\u793A +Level_coordinates=\u30EC\u30D9\u30EB\u5EA7\u6A19 +MainGraduationLine=\u4E3B\u76EE\u76DB\u7DDA +Hyperlink-Web_link=\u30A6\u30A7\u30D6\u30DA\u30FC\u30B8\u30EA\u30F3\u30AF +StyleAlignment-between_-90_and_90=-90\uFF5E90\u306E\u7BC4\u56F2 +FormulaD-Custom_Function=\u30AB\u30B9\u30BF\u30E0\u95A2\u6570 FR-Designer_Integer=\u6574\u6570 -PageSetup-Finis_Start_Row=\u91CD\u8907\u3059\u308B\u7D42\u4E86\u884C -RWA-Remove_Field=\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u30EA\u30E0\u30FC\u30D6 -Form-Desin_Width=\u30C7\u30B6\u30A4\u30F3\u5E45 -No-tableData=\u623B\u3057\u30C7\u30FC\u30BF\u30BB\u30C3\u30C8\u304C\u3042\u308A\u307E\u305B\u3093 +PageSetup-Finis_Start_Row=\u7E70\u308A\u8FD4\u3057\u7D42\u4E86\u884C +RWA-Remove_Field=\u30D5\u30A3\u30FC\u30EB\u30C9\u524A\u9664 +Form-Desin_Width=\u8A2D\u8A08\u306E\u5E45 +No-tableData=\u30C7\u30FC\u30BF\u30BB\u30C3\u30C8\u306F\u623B\u3063\u3066\u3044\u306A\u3044 Page_Total=\u5408\u8A08 -FR-Designer-Plugin_Connect_Server_Error=\u30D7\u30E9\u30B0\u30A4\u30F3\u30DE\u30FC\u30B1\u30C3\u30C8\u306B\u63A5\u7D9A\u3067\u304D\u307E\u305B\u3093\u3002\uFF0C\u5F8C\u3067\u518D\u5EA6 -Import-Excel_Source=Excel\u30BD\u30FC\u30B9 -Utils-Left_to_Right_a=\u5DE6\u304B\u3089\u53F3\u3078 -ExpandD-Expand_Attribute=\u5C5E\u6027\u3092\u62E1\u5F35\u3059\u308B -Report-Write_Attributes=\u5E33\u7968\u8A18\u5165\u5C5E\u6027 -Utils-Current_Column=\u30AB\u30EC\u30F3\u30C8\u5217 -Need_Max_Value=\u6700\u5927\u5024\u304C\u5FC5\u8981 -Report_Not_Exist=\u9078\u629E\u3057\u305F\u5E33\u7968\u306F\u5B58\u5728\u3057\u307E\u305B\u3093\uFF01 -HF-Insert_Content=\u30B3\u30F3\u30C6\u30F3\u30C4\u3092\u633F\u5165 +FR-Designer-Plugin_Connect_Server_Error=\u30D7\u30E9\u30B0\u30A4\u30F3\u30B9\u30C8\u30A2\u63A5\u7D9A\u5931\u6557\u3001\u5F8C\u3067\u518D\u8A66\u884C\u3057\u3066\u4E0B\u3055\u3044 +Import-Excel_Source=Excel\u30BD\u30FC\u30B9\u30D5\u30A1\u30A4\u30EB +Utils-Left_to_Right_a=\u5DE6\u304B\u3089\u53F3 +ExpandD-Expand_Attribute=\u5C55\u958B\u5C5E\u6027 +Report-Write_Attributes=\u5E33\u7968\u66F8\u304D\u8FBC\u307F\u30D7\u30ED\u30D1\u30C6\u30A3 +Utils-Current_Column=\u73FE\u5728\u306E\u5217 +Need_Max_Value=\u6700\u5927\u5024\u5FC5\u8981 +Report_Not_Exist=\u9078\u629E\u3055\u308C\u305F\u5E33\u7968\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093 +HF-Insert_Content=\u5185\u5BB9 UpParent=\u4E0A\u89AA\u30BB\u30EB PageSetup-Page=\u30DA\u30FC\u30B8 -Utils-Move_Up=\u4E0A\u3078\u79FB\u52D5 -BackgroundTexture-PurpleMesh=\u7D2B\u8272\u306E\u30E1\u30C3\u30B7\u30E5 -Export-Word=Word\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8 -ServerM-Widget_Manager=\u30B3\u30F3\u30C8\u30ED\u30FC\u30EB\u7BA1\u7406 -FR-Designer-Basic_Activation_Key=\u30C7\u30B6\u30A4\u30CA\u30FC\u6574\u7406\u756A\u53F7\uFF1A -FR-App-Template_Report_Not_Exist=\u9078\u629E\u3057\u305F\u5E33\u7968\u306F\u5B58\u5728\u3057\u307E\u305B\u3093\! +Utils-Move_Up=\u4E0A\u3078 +BackgroundTexture-PurpleMesh=\u7D2B\u306E\u30E1\u30C3\u30B7\u30E5 +Export-Word=Word +ServerM-Widget_Manager=\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u7BA1\u7406 +FR-Designer-Basic_Activation_Key=\u30C7\u30B6\u30A4\u30CA\u30FC\u756A\u53F7\uFF1A +FR-App-Template_Report_Not_Exist=\u9078\u629E\u3057\u305F\u5E33\u7968\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\! Protected=\u4FDD\u8B77 -Skip=\u30B9\u30AD\u30C3\u30D7 -FR-Designer_PageSetup-Vertically=\u5782\u76F4\u4E2D\u592E\u63C3\u3048 -revert=\u3084\u308A\u76F4\u3059 -PageSetup-Predefined=\u30D7\u30EC\u5B9A\u7FA9 +Skip=\u30B8\u30E3\u30F3\u30D7 +FR-Designer_PageSetup-Vertically=\u4E0A\u4E0B\u4E2D\u592E\u63C3\u3048 +revert=\u5143\u306B\u623B\u3059 +PageSetup-Predefined=\u4E8B\u524D\u5B9A\u7FA9 Border-Style-Radius=\u89D2\u4E38 IntPart=\u6574\u6570\u90E8\u5206 -ExpandD-Data_Column=\u30C7\u30FC\u30BF\u30B3\u30E9\u30E0 +ExpandD-Data_Column=\u30C7\u30FC\u30BF\u5217 Sort-Ascending=\u6607\u9806 FR-Designer-Widget_Style=\u30B9\u30BF\u30A4\u30EB -parameter_name_exist=\u30D1\u30E9\u30E1\u30FC\u30BF\u540D\u306F\u65E2\u306B\u5B58\u5728\u3057\u3066\u3044\u307E\u3059 -FR-Designer_Layer-Build=\u30D5\u30A1\u30BB\u30C3\u30C8\u7D44\u307F\u7ACB\u3066 -Please_Rename=\u518D\u5EA6\u547D\u540D\u3057\u3066\u304F\u3060\u3055\u3044 -Form-Editing_Listeners=\u30A4\u30D9\u30F3\u30C8\u7DE8\u96C6 -RWA-Smart_Add_Fields=\u30A4\u30F3\u30C6\u30EA\u30B8\u30A7\u30F3\u30C8\u8FFD\u52A0\u30D5\u30A3\u30FC\u30EB\u30C9 +parameter_name_exist=\u6307\u5B9A\u30D1\u30E9\u30E1\u30FC\u30BF\u540D\u306F\u5229\u7528\u3055\u308C\u3066\u3044\u307E\u3059 +FR-Designer_Layer-Build=\u4E00\u822C\u30EC\u30A4\u30E4\u30FC\u5225\u69CB\u7BC9 +Please_Rename=\u540D\u524D\u3092\u5909\u66F4\u3057\u3066\u4E0B\u3055\u3044 +Form-Editing_Listeners=\u30A4\u30D9\u30F3\u30C8\u3092\u7DE8\u96C6 +RWA-Smart_Add_Fields=\u30D5\u30A3\u30FC\u30EB\u30C9\u81EA\u52D5\u8FFD\u52A0 FR-Designer-Tree_Width=\u5E45 Record=\u8A18\u9332 -Poly-Report_Component=\u805A\u5408\u5E33\u7968\u30A2\u30BB\u30F3\u30D6\u30EA +Poly-Report_Component=\u30D6\u30ED\u30C3\u30AF\u5E33\u7968\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8 Options=\u30AA\u30D7\u30B7\u30E7\u30F3 -NS-war-remote=\u30A8\u30E9\u30FC\u30B3\u30FC\u30C9\:1117 \u5727\u7E2E\u914D\u7F6E\u306F\u9060\u9694\u30C7\u30B6\u30A4\u30F3\u306B\u30B5\u30DD\u30FC\u30C8\u3057\u3066\u3044\u307E\u305B\u3093 +NS-war-remote=\u30A8\u30E9\u30FC\u30B3\u30FC\u30C9\:1117 \u30EA\u30E2\u30FC\u30C8\u958B\u767A\u3067\u306F\u3001\u5727\u7E2E\u5C55\u958B\u306F\u30B5\u30DD\u30FC\u30C8\u3057\u3066\u3044\u307E\u305B\u3093 Sche-Minute=\u5206 -Three_Rows_Of_Three_Grid=3\u4E57\u306E3\u3064\u306E\u884C -WorkSheet=\u30EF\u30FC\u30AF\u30B7\u30FC\u30C8 -FR-Designer-Widget_Size=\u5927\u304D\u3055\u30B3\u30F3\u30C8\u30ED\u30FC\u30EB -BindColumn-Select=\u30EA\u30B9\u30C8 +Three_Rows_Of_Three_Grid=3\u884C3\u5217\u306E\u30B0\u30EA\u30C3\u30C9 +WorkSheet=\u30D5\u30EA\u30FC\u5E33\u7968 +FR-Designer-Widget_Size=\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u30B5\u30A4\u30BA +BindColumn-Select=\u4E00\u89A7 FR-Widget_Mobile_Terminal=\u30E2\u30D0\u30A4\u30EB\u7AEF\u672B -FR-Background_Image_Titled=\u5C55\u958B -SetPrinterOffset=\u5B89\u3044\u30D7\u30EA\u30F3\u30BF -FR-Designer-Plugin_Installed=\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u6E08\u307F +FR-Background_Image_Titled=\u4E26\u3079\u3066\u8868\u793A +SetPrinterOffset=\u5370\u5237\u306E\u30AA\u30D5\u30BB\u30C3\u30C8 +FR-Designer-Plugin_Installed=\u3059\u3067\u306B\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB FR-Designer-Hyperlink_Name=\u540D\u524D -FR-Designer_Form-Button=\u30DC\u30BF\u30F3 +FR-Designer_Form-Button=\u62BC\u3057\u30DC\u30BF\u30F3 Black=\u30D6\u30E9\u30C3\u30AF -FR-Designer-Widget-Style_Border_Color=\u30D5\u30EC\u30FC\u30E0\u8272 -Set_Submit_Event=\u63D0\u51FA\u30A4\u30D9\u30F3\u30C8\u3092\u8A2D\u5B9A -PDF-Print_isPopup=\u8A2D\u5B9A\u30A6\u30A3\u30F3\u30C9\u30A6\u3092\u30DD\u30C3\u30D7\u30A2\u30C3\u30D7\u3059\u308B\u304B\u5426\u304B -LayerPageReport_CountPerPage=\u6BCE\u30DA\u30FC\u30B8\u8A18\u9332\u6570 -Display_Modes=\u30E2\u30C7\u30EB\u3092\u8868\u793A -RowSpan=\u884C\u7BC4\u56F2 +FR-Designer-Widget-Style_Border_Color=\u7F6B\u7DDA\u306E\u8272 +Set_Submit_Event=\u63D0\u51FA\u30A4\u30D9\u30F3\u30C8\u8A2D\u5B9A +PDF-Print_isPopup=\u8A2D\u5B9A\u30DC\u30C3\u30AF\u30B9\u3092\u8868\u793A +LayerPageReport_CountPerPage=\u5404\u30DA\u30FC\u30B8\u306E\u8A18\u9332\u6570 +Display_Modes=\u8868\u793A\u30E2\u30FC\u30C9 +RowSpan=\u884C\u30B9\u30D1\u30F3 Datasource-Test_Connection=\u63A5\u7D9A\u30C6\u30B9\u30C8 Function-Function_Manager=\u95A2\u6570\u30DE\u30CD\u30FC\u30B8\u30E3\u30FC -Host_Name=\u30DB\u30B9\u30C8\u30B3\u30F3\u30D4\u30E5\u30FC\u30BF\u540D +Host_Name=\u30DB\u30B9\u30C8\u540D CellWrite-Show_As_HTML=HTML\u3067\u5185\u5BB9\u3092\u8868\u793A -FR-Designer-Widget-Style_Shadow=\u9670\u5F71 +FR-Designer-Widget-Style_Shadow=\u5F71 FR-Designer_Parameter_String=\u6587\u5B57\u5217 -Form-SupportTag=\u30BF\u30B0\u306B\u8868\u793A -ReportD-Report_Write_Attributes=\u5E33\u7968\u66F8\u5F0F\u5C5E\u6027 -DataFunction-Count=\u4EF6\u6570 -Top_And_Thick_Bottom_Border_Line=\u4E0A\u30D5\u30EC\u30FC\u30E0\u30E9\u30A4\u30F3\u3068\u7C97\u4E0B\u30D5\u30EC\u30FC\u30E0\u30E9\u30A4\u30F3 -Client=\u9867\u5BA2\u5074 -BindColumn-Result_Serial_Number_Start_From_1=\u30C7\u30FC\u30BF\u30BB\u30C3\u30C8\u306E\u756A\u53F7\u306F1\u304B\u3089 -History=\u6B74\u53F2 -Already_exists=\u3059\u3067\u306B\u5B58\u5728\u3057\u3066\u3044\u308B\u5834\u5408\u3001\u518D\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044\uFF01 -Datasource-Original_Charset=\u30AA\u30EA\u30B8\u30CA\u30EB\u6587\u5B57\u30B3\u30FC\u30C9 +Form-SupportTag=\u30BF\u30B0\u5F62\u5F0F\u3067\u8868\u793A +ReportD-Report_Write_Attributes=\u5E33\u7968\u66F8\u304D\u8FBC\u307F\u5C5E\u6027 +DataFunction-Count=\u500B\u6570 +Top_And_Thick_Bottom_Border_Line=\u4E0A\u7F6B\u7DDA + \u4E0B\u592A\u7F6B\u7DDA +Client=\u30AF\u30E9\u30A4\u30A2\u30F3\u30C8 +BindColumn-Result_Serial_Number_Start_From_1=\u756A\u53F7\u306F1\u304B\u3089\u59CB\u3081\u308B +History=\u5C65\u6B74 +Already_exists=\u3059\u3067\u306B\u5B58\u5728\u3057\u3066\u3044\u307E\u3059 +Datasource-Original_Charset=\u30AA\u30EA\u30B8\u30CA\u30EB\u30B3\u30FC\u30C9 FR-Base_Left=\u5DE6 ReportServerP-Next=\u6B21\u30DA\u30FC\u30B8 -BindColumn-Top_N=\u524D\u306EN\u500B -Animation_Special=\u7279\u5225\u306B\u826F\u3044\u52B9\u679C -Widget-Chart_Widget_Config=\u30B0\u30E9\u30D5\u30B3\u30F3\u30C8\u30ED\u30FC\u30EB -FR-Designer-Plugin_Cannot_Update_Not_Install=\u30D7\u30E9\u30B0\u30A4\u30F3\u66F4\u65B0\u3092\u3059\u308B\u3053\u3068\u304C\u3067\u304D\u307E\u305B\u3093\u3002\u5F53\u8A72 -After_Changed_Some_Attributes_Are_Different=\u30D7\u30ED\u30D1\u30C6\u30A3\u306E\u3044\u304F\u3064\u304B\u306E\u30B9\u30C6\u30FC\u30C8\u30E1\u30F3\u30C8\u306E\u5F8C\u306B\u5909\u63DB\u304C\u7D99\u7D9A\u3059\u308B\u304B\u3069\u3046\u304B\u3001\u5909\u66F4\u3055\u308C\u307E\u3059 -PieStyle=\u30D1\u30A4 -HF-Are_you_sure_to_delete_it=\u5F53\u8A72\u9805\u76EE\u3092\u524A\u9664\u3057\u3066\u3082\u3088\u308D\u3057\u3044\u3067\u3059\u304B +BindColumn-Top_N=\u4E0A\u4F4DN\u9805\u76EE +Animation_Special=\u7279\u6B8A\u52B9\u679C +Widget-Chart_Widget_Config=\u30B0\u30E9\u30D5\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8 +FR-Designer-Plugin_Cannot_Update_Not_Install=\u30D7\u30E9\u30B0\u30A4\u30F3\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8\u5931\u6557\u3001\u5F53\u30D7\u30E9\u30B0\u30A4\u30F3\u304C\u6B63\u5E38\u306B\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u3055\u308C\u305F\u304B\u3069\u3046\u304B\u30C1\u30A7\u30C3\u30AF\u3057\u3066\u4E0B\u3055\u3044 +After_Changed_Some_Attributes_Are_Different=\u5909\u63DB\u5F8C\u5E33\u7968\u306E\u5C5E\u6027\u304C\u5909\u66F4\u3055\u308C\u307E\u3059\u3001\u7D9A\u3051\u307E\u3059\u304B +PieStyle=\u5186\u72B6 +HF-Are_you_sure_to_delete_it=\u3053\u306E\u8981\u7D20\u3092\u524A\u9664\u3057\u307E\u3059\u304B? Utils-Design-File_Open=\u958B\u304F -FR-Utils_Label=\u30BF\u30B0 -Data-Label=\u30BF\u30B0 +FR-Utils_Label=\u30E9\u30D9\u30EB +Data-Label=\u30E9\u30D9\u30EB M_Insert-Text=\u30C6\u30AD\u30B9\u30C8 Form-View_Tree=\u30D3\u30E5\u30FC\u30C4\u30EA\u30FC -M_Insert-Chart=\u56F3 +M_Insert-Chart=\u30B0\u30E9\u30D5 HF-Even_Page=\u5076\u6570\u30DA\u30FC\u30B8 -ReportServerP-Report_server_parameter=\u5E33\u7968\u30B5\u30FC\u30D0\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC -JavaScript-Form_Submit=\u8868\u63D0\u51FA -Horizontal-Split_Layout=\u6C34\u5E73\u5206\u5272\u914D\u7F6E -BorderLayout-Center=\u4E2D -INFO-Reset_Webapp=\u30A2\u30D7\u30EA\u30B1\u30FC\u30B7\u30E7\u30F3\u30B5\u30FC\u30D0\u306E\u518D\u8A2D\u5B9A +ReportServerP-Report_server_parameter=\u5E33\u7968\u30B5\u30FC\u30D0\u30D1\u30E9\u30E1\u30FC\u30BF +JavaScript-Form_Submit=\u30C0\u30C3\u30B7\u30E5\u30DC\u30FC\u30C9\u66F8\u304D\u8FBC\u307F +Horizontal-Split_Layout=\u6C34\u5E73\u5206\u5272\u30EC\u30A4\u30A2\u30A6\u30C8 +BorderLayout-Center=\u4E2D\u592E +INFO-Reset_Webapp=\u30A2\u30D7\u30EA\u30B5\u30FC\u30D0\u30EA\u30BB\u30C3\u30C8 FR-Designer_Text=\u30C6\u30AD\u30B9\u30C8 -IN_and_INOUT_type_not_as_cursor=IN\u304A\u3088\u3073INOUT\u30BF\u30A4\u30D7\u3067\u306F\u306A\u3044\u30AB\u30FC\u30BD\u30EB\u3068 +IN_and_INOUT_type_not_as_cursor=IN\u3068INOUT\u30BF\u30A4\u30D7\u306F\u30AB\u30FC\u30BD\u30EB\u306B\u3059\u308B\u3053\u3068\u304C\u3067\u304D\u306A\u3044 Main_Axis=\u30E1\u30A4\u30F3\u5EA7\u6A19\u8EF8 M_Edit-Cut=\u5207\u308A\u53D6\u308A(T) -Utils-The_Name_has_been_existed=\u5F53\u8A72\u540D\u79F0\u306F\u65E2\u306B\u5B58\u5728\u3057\u3066\u3044\u307E\u3059 +Utils-The_Name_has_been_existed=\u3053\u306E\u540D\u524D\u306F\u65E2\u306B\u3042\u308A\u307E\u3059 FR-Background_Image=\u753B\u50CF Character=\u6587\u5B57 Unit_Thousand=\u5343 Test=\u30C6\u30B9\u30C8 Utils-Would_you_like_to_save=\u4FDD\u5B58\u3057\u307E\u3059\u304B HF-Header_and_Footer=\u30D8\u30C3\u30C0\u30FC\u3068\u30D5\u30C3\u30BF\u30FC -LIST_MODE=\u30EA\u30B9\u30C8 -HF-Insert_Image=\u753B\u50CF\u3092\u633F\u5165 +LIST_MODE=\u4E00\u89A7 +HF-Insert_Image=\u753B\u50CF FR-Designer-Widget-Style_Standard=\u6A19\u6E96 -FR-Designer_Form-List=\u30EA\u30B9\u30C8 +FR-Designer_Form-List=\u4E00\u89A7 BackgroundTexture-Denim=\u30C7\u30CB\u30E0 -Execute_Report_by_Layer_Engine=\u30E9\u30A4\u30F3\u306E\u30A8\u30F3\u30B8\u30F3\u3067\u5E33\u7968\u3092\u5B9F\u884C\u3059\u308B +Execute_Report_by_Layer_Engine=\u30B0\u30EA\u30C3\u30C9\u578B\u30A8\u30F3\u30B8\u30F3\u3067\u5E33\u7968\u3092\u5B9F\u884C\u3059\u308B M_Edit-Bring_Forward=\u524D\u9762\u3078\u79FB\u52D5(F) Choose_All=\u5168\u9078\u629E Form-RadioGroup=\u30E9\u30B8\u30AA\u30DC\u30BF\u30F3\u30B0\u30EB\u30FC\u30D7 FR-Base_Remove=\u524A\u9664 -FR-Remote_Connect2Server_Again=\u63A5\u7D9A\u304C\u4E2D\u65AD\u3057\u307E\u3057\u305F\u3002\u518D\u5EA6\u30B5\u30FC\u30D0\u306B\u63A5\u7D9A\u3057\u307E\u3059\u304B\u3002 -Semicolon=\u5206\u53F7 +FR-Remote_Connect2Server_Again=\u63A5\u7D9A\u304C\u5207\u65AD\u3055\u308C\u307E\u3057\u305F\u3001\u30B5\u30FC\u30D0\u306B\u518D\u63A5\u7D9A\u3057\u307E\u3059\u304B? +Semicolon=\u30BB\u30DF\u30B3\u30ED\u30F3 StyleFormat-Category=\u5206\u985E -Report_Template=\u5E33\u7968\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8 -Utils-Beyond_the_right_side_of_Border=\u53F3\u9818\u57DF\u3092\u30AA\u30FC\u30D0\u30FC +Report_Template=\u5E33\u7968\u306E\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8 +Utils-Beyond_the_right_side_of_Border=\u53F3\u306E\u306E\u5883\u754C\u3092\u8D85\u904E\u3057\u3066\u3044\u307E\u3059\u3002\u914D\u7F6E\u3067\u304D\u307E\u305B\u3093\u3002 BackgroundTexture-Papyrus=\u7D19 -LayerPageReport_PageEngine=\u30DA\u30FC\u30B8\u5225\u306E\u6F14\u7B97\u3092\u4F7F\u7528\u3057\u3066\u5E33\u7968\u3092\u57F7\u884C -Schedule-The_selected_file_must_be_end_with_filter=\u9078\u629E\u30D5\u30A1\u30A4\u30EB\u306F.cpt\u53C8\u306F.class\u53C8\u306F.frm +LayerPageReport_PageEngine=\u30DA\u30FC\u30B8\u8A08\u7B97\u3092\u5229\u7528\u3057\u305F\u30BB\u30B0\u30E1\u30F3\u30C8\u3067\u5E33\u7968\u3092\u5B9F\u884C +Schedule-The_selected_file_must_be_end_with_filter=\u9078\u629E\u3055\u308C\u305F\u30D5\u30A1\u30A4\u30EB\u306F.cpt\u3084.class\u307E\u305F\u306F.frm\u3067\u7D42\u4E86\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059 Provide=\u63D0\u4F9B -FormulaD-Math_&_Trig=\u6570\u5B66\u95A2\u6570\u3068\u4E09\u89D2\u95A2\u6570 -FR-Designer-StyleAlignment_Right=\u53F3\u5BC4\u305B -Error_TableDataNameRepeat=\u3059\u3067\u306B\u30B5\u30FC\u30D0\u30C7\u30FC\u30BF\u30BB\u30C3\u30C8\u306B\u5B58\u5728\u3059\u308B\u304B\u8907\u6570\u306E\u30C7\u30FC\u30BF\u30BB\u30C3\u30C8\u540D\u304C\u91CD +FormulaD-Math_&_Trig=\u6570\u5B66\u3068\u4E09\u89D2\u95A2\u6570 +FR-Designer-StyleAlignment_Right=\u53F3\u63C3\u3048 +Error_TableDataNameRepeat=\u30B5\u30FC\u30D0\u30C7\u30FC\u30BF\u30BB\u30C3\u30C8\u304C\u65E2\u306B\u5B58\u5728\u3059\u308B\u304B\u3001\u540C\u3058\u540D\u524D\u306E\u30C7\u30FC\u30BF\u30BB\u30C3\u30C8\u304C\u5B58\u5728\u3057\u3066\u3044\u307E\u3059\u3002 Choose_None=\u9078\u629E\u3057\u306A\u3044 File-tree=\u30D5\u30A1\u30A4\u30EB\u30C4\u30EA\u30FC FRFont-bold=\u592A\u5B57 -FR-Designer_Set_Submit_Condition=\u63D0\u51FA\u6761\u4EF6\u3092\u8A2D\u5B9A -Form-Change_Widget_Name=\u30B3\u30F3\u30C8\u30ED\u30FC\u30EB\u540D\u5909\u66F4 -ReportColumns-Report_Columns=\u5E33\u7968\u30B3\u30E9\u30E0 -Can_not_use_FormatBursh=\u8907\u6570\u9078\u629E\u3057\u305F\u30A8\u30EA\u30A2\u3067\u306F\u66F8\u5F0F\u30D6\u30E9\u30B7\u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\! -CellElement-Property_Table=\u30BB\u30EB\u306E\u30D7\u30ED\u30D1\u30C6\u30A3\u00B7\u30B7\u30FC\u30C8 -Dictionary-Dynamic_SQL=\u52D5\u614BSQL -FR-Designer_Form-CheckBoxGroup=\u30D5\u30EC\u30FC\u30E0\u30BB\u30C3\u30C8\u3092\u8907\u6570\u9078\u629E -DBCP_TIME_BETWEEN_EVICTIONRUNSMILLIS=\u30A2\u30A4\u30C9\u30EB\u63A5\u7D9A\u30EA\u30B5\u30A4\u30AF\u30EB\u30E6\u30CB\u30C3\u30C8\u4F11\u7720\u6642\u9593 -ReportD-Export_Hided_Column=\u96A0\u3057\u305F\u5217\u3092\u5C0E\u51FA -Preference-Support_Undo=\u5143\u306B\u623B\u3057\u3092\u30B5\u30DD\u30FC\u30C8\u3059\u308B -FR-mobile_report_analysis=\u5831\u544A\u66F8\u306E\u89E3\u6790 +FR-Designer_Set_Submit_Condition=\u66F8\u304D\u8FBC\u307F\u6761\u4EF6\u8A2D\u5B9A +Form-Change_Widget_Name=\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u540D\u3092\u5909\u66F4\u3059\u308B +ReportColumns-Report_Columns=\u5E33\u7968\u306E\u30B5\u30D6\u30D5\u30A3\u30FC\u30EB\u30C9 +Can_not_use_FormatBursh=\u9023\u7D9A\u3057\u306A\u3044\u8907\u6570\u9818\u57DF\u3067\u306F\u66F8\u5F0F\u30B3\u30D4\u30FC\u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093 +CellElement-Property_Table=\u30BB\u30EB\u5C5E\u6027\u8868 +Dictionary-Dynamic_SQL=\u52D5\u7684SQL +FR-Designer_Form-CheckBoxGroup=\u30C1\u30A7\u30C3\u30AF\u30DC\u30C3\u30AF\u30B9\u30B0\u30EB\u30FC\u30D7 +DBCP_TIME_BETWEEN_EVICTIONRUNSMILLIS=\u30A2\u30A4\u30C9\u30EB\u63A5\u7D9A\u306E\u691C\u8A3C\u9593\u9694 +ReportD-Export_Hided_Column=\u975E\u8868\u793A\u5217\u30A8\u30AF\u30B9\u30DD\u30FC\u30C8 +Preference-Support_Undo=\u5143\u306B\u623B\u3059\u3092\u30B5\u30DD\u30FC\u30C8 +FR-mobile_report_analysis=\u5E33\u7968\u89E3\u6790 Month=\u6708 -Utils-Column_Width=\u5217\u5E45 -Collect-Use_Designer=\u30C7\u30B6\u30A4\u30CA\u30FC\u3092\u4F7F\u7528 -Widget-User_Defined_Editor=\u30D7\u30EC\u5B9A\u7FA9\u30A8\u30C7\u30A3\u30BF\u3067\u3059\u3002\u5F53\u8A72\u30A8\u30C7\u30A3\u30BF\u306F\u30B3\u30F3\u30C8\u30ED\u30FC\u30EB\u7BA1\u7406\u30E1\u30CB\u30E5\u30FC +Utils-Column_Width=\u5217\u306E\u5E45 +Collect-Use_Designer=\u30C7\u30B6\u30A4\u30CA\u30FC\u4F7F\u7528 +Widget-User_Defined_Editor=\u4E8B\u524D\u5B9A\u7FA9\u30A8\u30C7\u30A3\u30BF\u3002\u3053\u306E\u30A8\u30C7\u30A3\u30BF\u306F\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u7BA1\u7406\u30E1\u30CB\u30E5\u30FC\u3060\u3051\u3067\u305D\u306E\u5C5E\u6027\u3092\u5909\u66F4\u3067\u304D\u308B Unit_Ten_Thousand=\u4E07 Data_Setting=\u30C7\u30FC\u30BF\u8A2D\u5B9A -ECP_input_pwd=\u30D1\u30B9\u30EF\u30FC\u30C9\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044\: +ECP_input_pwd=\u30D1\u30B9\u30EF\u30FC\u30C9\u3092\u5165\u529B\: period=\u3002 -Note=\u6CE8 +Note=\u30B3\u30E1\u30F3\u30C8 Multiline=\u8907\u6570\u884C\u7DE8\u96C6 Datasource-Convert_Charset=\u6587\u5B57\u30B3\u30FC\u30C9\u5909\u63DB DashBoard-ConnectionList=\u30C7\u30FC\u30BF\u63A5\u7D9A -Utils-Submit_Forcibly=\u5F37\u884C\u63D0\u51FA +Utils-Submit_Forcibly=\u5F37\u5236\u66F8\u304D\u8FBC\u307F Parent_Marked_Field=\u89AA\u30BF\u30B0\u30D5\u30A3\u30FC\u30EB\u30C9 -Logout=\u9000\u51FA -FR-Designer_Show_Blank_Row=\u7A7A\u767D\u884C\u3092\u88DC\u5145 -FR-Base_Format=\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8 -FR-App-Export_png=PNG\u66F8\u5F0F -Delete_Column=\u5217\u524A\u9664 -SecondGraduationLine=\u5C0F\u3055\u306A\u76EE\u76DB\u308A +Logout=\u30ED\u30B0\u30A2\u30A6\u30C8 +FR-Designer_Show_Blank_Row=\u7A7A\u767D\u884C\u88DC\u5145 +FR-Base_Format=\u66F8\u5F0F +FR-App-Export_png=PNG +Delete_Column=\u5217\u3092\u524A\u9664 +SecondGraduationLine=\u88DC\u52A9\u76EE\u76DB\u7DDA SpecifiedG-Groups=\u30B0\u30EB\u30FC\u30D7 -CONTINUUM_MODE=\u96A3\u63A5\u3057\u305F\u9023\u7D9A\u3057\u305F\u30D1\u30B1\u30C3\u30C8 +CONTINUUM_MODE=\u96A3\u63A5\u9023\u7D9A\u30B0\u30EB\u30FC\u30D7\u5206\u3051 Datasource-Connection_failed=\u63A5\u7D9A\u5931\u6557 -CategoryName=\u30AB\u30C6\u30B4\u30EA\u30FC\u540D -DBCP_INITIAL_SIZE=\u63A5\u7D9A\u6570\u306E\u521D\u671F\u5316 +CategoryName=\u5206\u985E\u540D +DBCP_INITIAL_SIZE=\u30D7\u30FC\u30EB\u306E\u8D77\u52D5\u6642\u306B\u4F5C\u6210\u3055\u308C\u308B\u521D\u671F\u63A5\u7D9A\u6570 Colors=\u8272 -FR-Import-Export_CSV=CSV\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8(\u30B3\u30F3\u30DE\u3067\u5206\u5272) -FR-Designer-StyleAlignment_Left=\u5DE6\u5BC4\u305B +FR-Import-Export_CSV=CSV(\u30AB\u30F3\u30DE\u533A\u5207\u308A) +FR-Designer-StyleAlignment_Left=\u5DE6\u63C3\u3048 BackgroundTexture-PaperBag=\u7D19\u888B -RWA-BuildIn_SQL=\u5185\u8535SQL -SingleLayer=\u5358\u5C64 -Or-you=\u307E\u305F\u306F -FR-Designer_Certificate_Path=\u8A3C\u66F8\u30EB\u30FC\u30C8 -Utils-Last_Page=\u7D42\u4E86\u9801 -BarCodeD-Drawing_Text=\u30D0\u30FC\u30B3\u30FC\u30C9\u30C6\u30AD\u30B9\u30C8\u3092\u8868\u793A\u3059\u308B -Warning-Template_Do_Not_Exsit=\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u306F\u5B58\u5728\u3057\u307E\u305B\u3093 -BindColumn-Group=\u30B0\u30EB\u30FC\u30D7\u5206\u3051 -Export-SVG=SVG\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8 +RWA-BuildIn_SQL=\u7D44\u307F\u8FBC\u307FSQL +SingleLayer=\u30B7\u30F3\u30B0\u30EB\u30EC\u30A4\u30E4\u30FC +Or-you=\u3042\u308B\u3044\u306F +FR-Designer_Certificate_Path=\u30E9\u30A4\u30BB\u30F3\u30B9\u30D1\u30B9 +Utils-Last_Page=\u6700\u7D42\u30DA\u30FC\u30B8 +BarCodeD-Drawing_Text=\u30C6\u30AD\u30B9\u30C8\u3092\u8868\u793A +Warning-Template_Do_Not_Exsit=\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3002 +BindColumn-Group=\u30B0\u30EB\u30FC\u30D7\u5225 +Export-SVG=SVG Plane3D=\u5E73\u97623D -SessionID=sessionID\u306F\u73FE\u5728\u306E\u30A2\u30AF\u30BB\u30B9\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u306E\u4F1A\u8A71\u30BF\u30B0\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC\u3067\u3059\u3002 +SessionID=sessionID\u306F\u4ECA\u30A2\u30AF\u30BB\u30B9\u3059\u308B\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u306E\u30BB\u30C3\u30B7\u30E7\u30F3\u30BF\u30B0\u30D1\u30E9\u30E1\u30FC\u30BF\u3067\u3042\u308B FR-Designer_Height=\u9AD8\u3055 HF-Odd_Page=\u5947\u6570\u30DA\u30FC\u30B8 -About-All_Rights_Reserved=\u5168\u3066\u306E\u6A29\u5229\u3092\u6240\u6709\u3057\u3066\u3044\u308B -Utils-Current_Cell=\u30AB\u30EC\u30F3\u30C8\u30BB\u30EB -Web_Preview_Message=\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u30D5\u30A1\u30A4\u30EB\u3092\u73FE\u5728\u306E\u904B\u884C\u74B0\u5883\u306E\u76EE\u6B21\u4E0B\u306B\u4FDD\u5B58\u3057\u3066\u304F\u3060\u3055\u3044 -FR-Hyperlink_Chart_Float=\u30B0\u30E9\u30D5\u30CF\u30A4\u30D1\u30FC\u30EA\u30F3\u30AF-\u9023\u52D5\u30D5\u30ED\u30FC\u8981\u7D20 -Dic-Data_Query=\u30C7\u30FC\u30BF\u30AF\u30A8\u30EA\u30FC -CellWrite-Print_Content=\u30BB\u30EB\u306E\u4E2D\u8EAB\u3092\u5370\u5237\u3059\u308B -Privilege-Selected_None_Of_Any_Items=\u9805\u76EE\u3092\u3072\u3068\u3064\u3082\u9078\u629E\u3057\u3066\u3044\u307E\u305B\u3093 +About-All_Rights_Reserved=\u5168\u3066\u306E\u6A29\u5229\u3092\u4FDD\u7559 +Utils-Current_Cell=\u73FE\u5728\u306E\u30BB\u30EB +Web_Preview_Message=\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u30D5\u30A1\u30A4\u30EB\u3092\u73FE\u5728\u306E\u5B9F\u884C\u74B0\u5883\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u306B\u4FDD\u5B58\u3057\u3066\u4E0B\u3055\u3044 +FR-Hyperlink_Chart_Float=\u30B0\u30E9\u30D5\u30CF\u30A4\u30D1\u30FC\u30EA\u30F3\u30AF-\u30D5\u30ED\u30FC\u30C6\u30A3\u30F3\u30B0\u8981\u7D20\u9023\u52D5 +Dic-Data_Query=\u30C7\u30FC\u30BF\u30AF\u30A8\u30EA +CellWrite-Print_Content=\u30BB\u30EB\u5185\u5BB9 +Privilege-Selected_None_Of_Any_Items=\u9805\u76EE\u304C\u9078\u629E\u3055\u308C\u3066\u3044\u307E\u305B\u3093 FRFont-Size=\u30B5\u30A4\u30BA -Function-J2EE_server=J2EE_server -FR-Designer_Allow_Blank=\u7A7A\u6B04\u3042\u308A -Build_Tree_Accord_Parent_Marked_Filed=\u89AA\u30BF\u30B0\u30D5\u30A3\u30FC\u30EB\u30C9\u306F\u3001\u69CB\u7BC9\u3055\u308C\u305F\u30C4\u30EA\u30FC\u3092\u8A2D\u5B9A\u3057\u3001\u9078\u629E\u3057\u305F\u30C7\u30FC\u30BF\u306B\u4F9D\u5B58 -Preference-Horizontal_Scroll_Bar_Visible=\u6C34\u5E73\u30B9\u30AF\u30ED\u30FC\u30EB\u30D0\u30FC\u306F\u53EF\u8996 -Scope=\u30B9\u30B3\u30FC\u30D7 -Save_All_Records_In_Memory=\u5168\u3066\u306E\u8A18\u9332\u306F\u30E1\u30E2\u30EA\u306B\u4FDD\u5B58\u3055\u308C\u3066\u3044\u307E\u3059 -FreezeWarning1=\u521D\u671F\u5024\u306F\u6700\u7D42\u5024\u3088\u308A\u5927\u304D\u304F\u3042\u308A\u307E\u305B\u3093 -FlowLayout=\u30D5\u30ED\u30FC\u914D\u7F6E +Function-J2EE_server=J2EE\u30B5\u30FC\u30D0 +FR-Designer_Allow_Blank=\u7A7A\u3092\u8A31\u53EF +Build_Tree_Accord_Parent_Marked_Filed=\u9078\u629E\u3057\u305F\u30C7\u30FC\u30BF\u30BB\u30C3\u30C8\u306E\u89AA\u30DE\u30FC\u30AF\u30D5\u30A3\u30FC\u30EB\u30C9\u3088\u308A\u30C4\u30EA\u30FC\u3092\u69CB\u7BC9\u3059\u308B +Preference-Horizontal_Scroll_Bar_Visible=\u6C34\u5E73\u30B9\u30AF\u30ED\u30FC\u30EB\u30D0\u30FC\u3092\u8868\u793A +Scope=\u7BC4\u56F2 +Save_All_Records_In_Memory=\u5168\u30EC\u30B3\u30FC\u30C9\u30E1\u30E2\u30EA\u30AD\u30E3\u30C3\u30B7\u30E5 +FreezeWarning1=\u521D\u671F\u5024\u306F\u7D42\u4E86\u5024\u4EE5\u4E0B +FlowLayout=\u30D5\u30ED\u30FC\u30EC\u30A4\u30A2\u30A6\u30C8 M_Report-Report_Footer=\u5E33\u7968\u30D5\u30C3\u30BF\u30FC -FR-Action_Add=\u5897\u52A0 +FR-Action_Add=\u8FFD\u52A0 BorderLayout-East=\u6771 -feedback_tip=\u4EE5\u4E0B400\u306E\u5358\u8A9E\u306E\u554F\u984C\u306E\u8AAC\u660E\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044 -FS_Start_Date=\u958B\u59CB\u65E5\u671F +feedback_tip=400\u5B57\u4EE5\u5185 +FS_Start_Date=\u958B\u59CB\u65E5\u4ED8 FR-ConditionB_Operator=\u6F14\u7B97\u5B50 Printer-Alias=\u5225\u540D DS-Class_Name=\u30AF\u30E9\u30B9\u540D -FR-Designer-Plugin_Has_Been_Disabled=\u30D7\u30E9\u30B0\u30A4\u30F3\u306F\u4F7F\u7528\u304C\u7981\u6B62\u3055\u308C\u3066\u3044\u307E\u3059\u3002\u30C7\u30B6\u30A4\u30CA\u30FC\u3068\u30B5 +FR-Designer-Plugin_Has_Been_Disabled=\u30D7\u30E9\u30B0\u30A4\u30F3\u306F\u7981\u6B62\u3055\u308C\u3001\u30C7\u30B6\u30A4\u30CA\u30FC\u3068\u30B5\u30FC\u30D0\u3092\u518D\u8D77\u52D5\u3057\u3066\u6709\u52B9\u306B\u306A\u308A\u3001\u30B5\u30FC\u30D0\u306F\u624B\u52D5\u3067\u518D\u8D77\u52D5\u3057\u3066\u4E0B\u3055\u3044 Sort-Original=\u30BD\u30FC\u30C8\u3057\u306A\u3044 -Utils-Top_to_Bottom_a=\u4E0A\u304B\u3089\u4E0B\u3078 -Parameter-String=\u6587\u5B57\u5217 -InnerRadis=\u5185\u5F84\u306E\u5927\u304D\u3055 -Want_To_Cover_It=\u3053\u308C\u3092\u8986\u3044\u307E\u3059\u304B -Divided_stage=\u5206\u5272\u3055\u308C\u305F\u30B9\u30C6\u30FC\u30B8 -Seriously=\u53B3\u91CD +Utils-Top_to_Bottom_a=\u4E0A\u304B\u3089\u4E0B +Parameter-String=\u6587\u5B57\u578B +InnerRadis=\u5185\u5F84\u30B5\u30A4\u30BA +Want_To_Cover_It=\u4E0A\u66F8\u304D\u3057\u307E\u3059\u304B +Divided_stage=\u30B9\u30C6\u30FC\u30B8\u3092\u5206\u5272 +Seriously=\u91CD\u5927 ReportServerP-PDF=PDF -Utils-Switch_To_Class_Reportlet=\u30D7\u30ED\u30B0\u30E9\u30E0\u30CD\u30C3\u30C8\u30EF\u30FC\u30AF\u5E33\u7968\u306B\u5207\u308A\u66FF\u3048 -FR-Designer_Show_Blank_Column=\u7A7A\u767D\u5217\u3092\u88DC\u5145 -M_Edit-Redo=\u518D\u5B9F\u884C +Utils-Switch_To_Class_Reportlet=\u30D7\u30ED\u30B0\u30E9\u30E0\u30CD\u30C3\u30C8\u5E33\u7968\u306B\u5207\u308A\u66FF\u3048\u308B +FR-Designer_Show_Blank_Column=\u7A7A\u767D\u5217\u88DC\u5145 +M_Edit-Redo=\u3084\u308A\u76F4\u3057 Visibility=\u53EF\u8996\u6027 Series_Use_Default=\u7CFB\u5217\u30C7\u30D5\u30A9\u30EB\u30C8\u4F7F\u7528 -Has_Selected=\u3082\u3046\u9078\u629E -BackgroundTexture-Walnut=\u30AF\u30EB\u30DF +Has_Selected=\u9078\u629E\u3055\u308C\u305F +BackgroundTexture-Walnut=\u304F\u308B\u307F FormulaD-Function_category=\u95A2\u6570\u30BF\u30A4\u30D7 -Interface=\u30A4\u30F3\u30BF\u30FC\u30D5\u30A7\u30A4\u30B9 -FR-Designer-Beyond_Bounds=body\u90E8\u5206\u306E\u30DC\u30FC\u30C0\u30FC\u3092\u8D8A\u3048\u305F\u3001\u30B5\u30A4\u30BA\u3092\u8ABF\u6574\u3067\u304D\u307E\u305B\u3093\u3002 +Interface=\u30A4\u30F3\u30BF\u30FC\u30D5\u30A7\u30FC\u30B9 +FR-Designer-Beyond_Bounds=body\u30DC\u30FC\u30C0\u30FC\u3092\u8D8A\u3048\u305F\u3001\u30B5\u30A4\u30BA\u3092\u8A2D\u5B9A\u3067\u304D\u307E\u305B\u3093 seconds=\u79D2 -Auto-Build=\u81EA\u52D5\u7684\u306B\u30D3\u30EB\u30C9 -FR-Designer-Plugin_Install_Successful=\u5F53\u8A72\u30D7\u30E9\u30B0\u30A4\u30F3\u30C7\u30B6\u30A4\u30CA\u30FC\u3068\u30B5\u30FC\u30D0\u3092\u518D\u8D77\u52D5\u3059\u308B\u969B\u306B -Template_Path=\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u30EB\u30FC\u30C8 -FR-Designer-FRFont_Bold=\u592A\u304F\u3059\u308B -Poly_Name=\u805A\u5408\u30E2\u30B8\u30E5\u30FC\u30EB\u540D +Auto-Build=\u81EA\u52D5\u69CB\u7BC9 +FR-Designer-Plugin_Install_Successful=\u30D7\u30E9\u30B0\u30A4\u30F3\u306F\u3001\u30C7\u30B6\u30A4\u30CA\u30FC\u3068\u30B5\u30FC\u30D0\u306E\u518D\u8D77\u52D5\u5F8C\u306B\u6709\u52B9\u306B\u306A\u308A\u307E\u3059\u3002\u30B5\u30FC\u30D0\u306F\u624B\u52D5\u3067\u518D\u8D77\u52D5\u3057\u3066\u4E0B\u3055\u3044 +Template_Path=\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u30D1\u30B9 +FR-Designer-FRFont_Bold=\u592A\u5B57 +Poly_Name=\u30D6\u30ED\u30C3\u30AF\u540D WorkBook=\u30EF\u30FC\u30AF\u30D6\u30C3\u30AF -Hyperlink-Self_Window=\u73FE\u5728\u306E\u30A6\u30A3\u30F3\u30C9\u30A6 -FR-Designer-Widget-Style_Title=\u6A19\u984C -FR-Designer-FRFont_Size=\u5927\u304D\u3055 +Hyperlink-Self_Window=\u73FE\u30A6\u30A3\u30F3\u30C9\u30A6 +FR-Designer-Widget-Style_Title=\u30BF\u30A4\u30C8\u30EB +FR-Designer-FRFont_Size=\u30B5\u30A4\u30BA M_File-Export-SVG=SVG Capacity=\u5BB9\u91CF Rose_Red=\u30ED\u30FC\u30BA\u30EC\u30C3\u30C9 -StyleAlignment-The_value_of_rotation_must_between_-90_and_90_degrees=\u56DE\u8EE2\u5024\u306F-90\u304B\u308990\u5EA6 -HF-Move_Left=\u5DE6\u3078\u79FB\u52D5\u3059\u308B -Cell_Group=\u30BB\u30EB\u7D44 -Week=\u5468 -PageSetup-Orientation=\u65B9\u5411 -M-Open_Recent=\u6700\u8FD1\u958B\u3044\u305F\u3082\u306E +StyleAlignment-The_value_of_rotation_must_between_-90_and_90_degrees=\u56DE\u8EE2\u89D2\u5EA6\u306F\u5FC5\u305A-90\uFF5E90\u306E\u9593\u306B +HF-Move_Left=\u5DE6\u3078 +Cell_Group=\u30BB\u30EB\u30B0\u30EB\u30FC\u30D7 +Week=\u9031 +PageSetup-Orientation=\u5411\u304D +M-Open_Recent=\u6700\u8FD1\u4F7F\u7528\u3057\u305F NNormal=\u6B63\u5E38 Integer=\u6574\u6570 -Select_The_Source_To_Save=\u8A18\u61B6\u3059\u308B\u9805\u76EE\u3092\u9078\u629E -Transition=\u5206\u679D +Select_The_Source_To_Save=\u4FDD\u5B58\u3057\u305F\u3044\u9805\u76EE\u3092\u9078\u629E +Transition=\u30D6\u30E9\u30F3\u30C1 FR-Designer_Get_Lock=\u30ED\u30C3\u30AF -one_record_exists_in_many_groups=\u4E00\u3064\u306E\u8A18\u9332\u306F\u8907\u6570\u30B0\u30EB\u30FC\u30D7\u5185\u306B\u5B58\u5728\u53EF\u80FD -FR-Designer_Cover_None=\u5168\u3066\u8986\u308F\u306A\u3044 +one_record_exists_in_many_groups=1\u30EC\u30B3\u30FC\u30C9\u8907\u6570\u30B0\u30EB\u30FC\u30D7\u6240\u5C5E +FR-Designer_Cover_None=\u3059\u3079\u3066\u4E0A\u66F8\u304D\u3057\u306A\u3044 DeciPart=\u5C0F\u6570\u90E8\u5206 ExpandD-Up_Father_Cell=\u4E0A\u89AA\u30BB\u30EB Deep=\u6DF1\u3055 FRFont-Shadow=\u5F71 Reportlet=\u30CD\u30C3\u30C8\u5E33\u7968 Calendar=\u30AB\u30EC\u30F3\u30C0\u30FC -DateFormat-Custom_Warning=\u6CE8\uFF1A\u30AB\u30B9\u30BF\u30E0\u65E5\u6642\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8\u30B5\u30DD\u30FC\u30C8\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8\u691C\u67FB -Unit_MM=\u30DF\u30EA\u30E1\u30FC\u30C8\u30EB +DateFormat-Custom_Warning=\u6CE8\u610F\uFF1A\u30AB\u30B9\u30BF\u30E0\u65E5\u4ED8\u66F8\u5F0F\u306F\u66F8\u5F0F\u30C1\u30A7\u30C3\u30AF\u3092\u30B5\u30DD\u30FC\u30C8\u3057\u306A\u3044 +Unit_MM=\u30DF\u30EA Server-Start=\u8D77\u52D5 -CellPage-Can_Break_On_Paginate=\u30DA\u30FC\u30B8\u30F3\u30B0\u304C\u5207\u65AD\u3059\u308B\u3053\u3068\u304C\u3067\u304D\u305F\u3068\u304D -Build_Tree_Accord_Marked_Filed_Length=\u69CB\u7BC9\u30C4\u30EA\u30FC\u3092\u8A2D\u5B9A\u3057\u3001\u9078\u629E\u3057\u305F\u30C7\u30FC\u30BF\u306B\u4F9D\u5B58\u3057\u305F\u30D5\u30A3\u30FC\u30EB\u30C9\u306E\u9577\u3055\u3092\u30DE\u30FC\u30AF +CellPage-Can_Break_On_Paginate=\u6539\u30DA\u30FC\u30B8\u6642\u6539\u6BB5 +Build_Tree_Accord_Marked_Filed_Length=\u9078\u629E\u3057\u305F\u30C7\u30FC\u30BF\u30BB\u30C3\u30C8\u306E\u30DE\u30FC\u30AF\u30D5\u30A3\u30FC\u30EB\u30C9\u306E\u9577\u3055\u3088\u308A\u30C4\u30EA\u30FC\u3092\u69CB\u7BC9\u3059\u308B ComboCheckBox-Start_Symbol=\u958B\u59CB\u6587\u5B57 Real=\u5B9F\u969B -RWA-Batch_Modify_Cells=\u6279\u91CF\u4FEE\u6B63\u30BB\u30EB -FR-Designer_Build-Way=\u69CB\u7BC9\u65B9\u6CD5 -Read=\u8AAD\u307F\u53D6\u308A +RWA-Batch_Modify_Cells=\u30BB\u30EB\u4E00\u62EC\u7DE8\u96C6 +FR-Designer_Build-Way=\u69CB\u7BC9\u65B9\u5F0F +Read=\u8AAD\u307F\u8FBC\u307F StyleAlignment-Degrees=\u5EA6 M_Format_A-Border=\u67A0(B) Utils-Delete_Record=\u8A18\u9332\u524A\u9664 Reload=\u518D\u30ED\u30FC\u30C9 -Image-Select_Picture=\u753B\u50CF\u3092\u9078\u629E -RWA-Submit=\u63D0\u51FA\u3059\u308B -the_template=\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8 -FR-Designer_Component_Scale=\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u30B9\u30B1\u30FC\u30EB +Image-Select_Picture=\u753B\u50CF\u9078\u629E +RWA-Submit=\u66F8\u304D\u8FBC\u307F +the_template=\u5F53\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8 +FR-Designer_Component_Scale=\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u30BA\u30FC\u30E0 FRFont-italic=\u659C\u4F53 Year=\u5E74 -HF-Move_Right=\u53F3\u3078\u79FB\u52D5\u3059\u308B -Data-Check=\u30C7\u30FC\u30BF\u7BA1\u7406\u30B3\u30F3\u30C8\u30ED\u30FC\u30EB +HF-Move_Right=\u53F3\u3078 +Data-Check=\u30C7\u30FC\u30BF\u30C1\u30A7\u30C3\u30AF Unknown=\u672A\u77E5 -Submit_Style=\u63D0\u51FA\u65B9\u6CD5 -Left_Border_Line=\u5DE6\u30D5\u30EC\u30FC\u30E0\u30E9\u30A4\u30F3 -Brown=\u30D6\u30E9\u30A6\u30F3 -Select_A_Tree_DataSource_To_Build=\u30C4\u30EA\u30FC\u30C7\u30FC\u30BF\u30BB\u30C3\u30C8\u3092\u9078\u629E\u3057\u3066\u7D44\u307F\u7ACB\u3066\u3066\u304F\u3060\u3055\u3044 -Overlapping=\u91CD\u306D\u578B -DS-Class_TableData=\u30AF\u30E9\u30B9\u30C7\u30FC\u30BF\u30BD\u30FC\u30B9 -FR-Designer-Plugin_Illegal_Plugin_Zip_Cannot_Be_Install=\u8B58\u5225\u4E0D\u80FD\u306A\u30D7\u30E9\u30B0\u30A4\u30F3\u3067\u3059\u3002\u30A4\u30F3\u30B9 -DisplayNothingBeforeQuery=\u81EA\u52D5\u691C\u7D22\u7121\u3057 +Submit_Style=\u66F8\u304D\u8FBC\u307F\u65B9\u5F0F +Left_Border_Line=\u5DE6\u7F6B\u7DDA +Brown=\u8336\u8272 +Select_A_Tree_DataSource_To_Build=1\u3064\u306E\u30C4\u30EA\u30FC\u30C7\u30FC\u30BF\u30BB\u30C3\u30C8\u3092\u9078\u629E\u3057\u3066\u69CB\u7BC9 +Overlapping=\u91CD\u306A\u308A\u30BF\u30A4\u30D7 +DS-Class_TableData=\u30D7\u30ED\u30B0\u30E9\u30E0\u30C7\u30FC\u30BF\u30BB\u30C3\u30C8 +FR-Designer-Plugin_Illegal_Plugin_Zip_Cannot_Be_Install=\u672A\u5BFE\u5FDC\u306E\u30D7\u30E9\u30B0\u30A4\u30F3\u306E\u305F\u3081\u3001\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u3067\u304D\u307E\u305B\u3093 +DisplayNothingBeforeQuery=\u30AF\u30A8\u30EA\u524D\u5E33\u7968\u5185\u5BB9\u3092\u8868\u793A\u3057\u307E\u305B\u3093 Y_Axis=Y\u8EF8 -FormulaD-Most_Recently_Used=\u5E38\u7528\u95A2\u6570 -FormulaD-Input_formula_in_the_text_area_below=\u30C6\u30AD\u30B9\u30C8\u30DC\u30C3\u30AF\u30B9\u306B\u516C\u5F0F\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044 -Build-Way=\u69CB\u7BC9\u65B9\u6CD5 +FormulaD-Most_Recently_Used=\u3088\u304F\u5229\u7528\u3059\u308B\u95A2\u6570 +FormulaD-Input_formula_in_the_text_area_below=\u4EE5\u4E0B\u306E\u30C6\u30AD\u30B9\u30C8\u30DC\u30C3\u30AF\u30B9\u306B\u6570\u5F0F\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044 +Build-Way=\u69CB\u7BC9\u65B9\u5F0F M_Edit-Undo=\u5143\u306B\u623B\u3059 -Line-Style=\u7DDA\u5F62 +Line-Style=\u7DDA\u306E\u7A2E\u985E Datasource-Other_Attributes=\u305D\u306E\u4ED6\u5C5E\u6027 -M_Server-Global_Parameters=\u30B0\u30ED\u30FC\u30D0\u30EB\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC -Suffix=\u5F8C\u7F00 -Image-Image_Files=\u30A4\u30E1\u30FC\u30B8\u30D5\u30A1\u30A4\u30EB +M_Server-Global_Parameters=\u30B0\u30ED\u30FC\u30D0\u30EB\u30D1\u30E9\u30E1\u30FC\u30BF +Suffix=\u30B5\u30D5\u30A3\u30C3\u30AF\u30B9 +Image-Image_Files=\u753B\u50CF\u30D5\u30A1\u30A4\u30EB EditRC-Entire_row=\u884C(R) -HF-First_Page=\u30C8\u30C3\u30D7\u30DA\u30FC\u30B8 +HF-First_Page=\u5148\u982D\u30DA\u30FC\u30B8 BackgroundTexture-Granite=\u307F\u304B\u3052\u77F3 DataList=\u30C7\u30FC\u30BF\u30C1\u30A7\u30FC\u30F3 -Recursion=\u5E30\u7D0D -BarStyle=\u30B9\u30C8\u30EA\u30C3\u30D7 -FR-Designer-Min_Width= -Utils-Report-Env_Directory=\u5E33\u7968\u4F5C\u696D\u76EE\u6B21 +Recursion=\u518D\u5E30 +BarStyle=\u30D0\u30FC +FR-Designer-Min_Width=\u6700\u5C0F\u5E45\u3055 +Utils-Report-Env_Directory=\u5E33\u7968\u4F5C\u696D\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA D-ChartArea=\u30B0\u30E9\u30D5\u30A8\u30EA\u30A2 -Only=\u305F\u3060 +Only=\u3060\u3051 FR-Base_No=\u3044\u3044\u3048 -SpecifiedG-Put_all_others_together=\u4ED6\u306E\u3059\u3079\u3066\u3092\u7D50\u5408\u3059\u308B +SpecifiedG-Put_all_others_together=\u305D\u306E\u4ED6\u306E\u3059\u3079\u3066\u3092\u7D71\u5408 HF-NewLine_Des=\u4E0A\u306E\u79FB\u52D5\u3068\u524A\u9664\u30DC\u30BF\u30F3\u3092\u30AF\u30EA\u30C3\u30AF\u3057\u3066\u6539\u884C\u30B3\u30FC\u30C9\u3092\u64CD\u4F5C\u3059\u308B -WLayout-Border-ThreeContainer=\u5317\u3001\u897F\u3001\u4E09\u56FD\u5883\u306E\u30EC\u30A4\u30A2\u30A6\u30C8\u30B3\u30F3\u30C6\u30CA\u30FC\u3068\u5E45\u3092\u8ABF\u6574\u3059\u308B\u5FC5\u8981\u304C\u3042 -Parameter_Name=\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC\u540D +WLayout-Border-ThreeContainer=\u5317\u90E8\u3001\u897F\u90E8\u3001\u4E2D\u592E\u90E8\u306E3\u30D6\u30ED\u30C3\u30AF\u306E\u30DC\u30FC\u30C0\u30FC\u30EC\u30A4\u30A2\u30A6\u30C8\u30B3\u30F3\u30C6\u30CA\u3067\u69CB\u6210\u3055\u308C\u308B\u30EC\u30A4\u30A2\u30A6\u30C8\u3002\u5317\u90E8\u30D6\u30ED\u30C3\u30AF\u3067\u306F\u9AD8\u3055\u3092\u3001\u897F\u90E8\u30D6\u30ED\u30C3\u30AF\u3067\u306F\u5E45\u3092\u8ABF\u6574\u3067\u304D\u307E\u3059\u3002 +Parameter_Name=\u30D1\u30E9\u30E1\u30FC\u30BF\u540D FR-Base_Table=\u8868 -Des-Remove_WorkSheet=\u9078\u629E\u3059\u308B\u5E33\u7968\u306B\u306F\u30C7\u30FC\u30BF\u304C\u3042\u308B\u304B\u3082\u3057\u308C\u307E\u305B\u3093\u304C\u3001\u5B8C\u5168\u306B\u524A\u9664\u3059\u308B\u5834\u5408\u3001 +Des-Remove_WorkSheet=\u9078\u629E\u3057\u305F\u30B7\u30FC\u30C8\u306B\u30C7\u30FC\u30BF\u304C\u5B58\u5728\u3059\u308B\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059\u3002\u30C7\u30FC\u30BF\u3092\u5B8C\u5168\u306B\u524A\u9664\u3059\u308B\u306B\u306F\u3001[OK]\u30DC\u30BF\u30F3\u3092\u30AF\u30EA\u30C3\u30AF\u3057\u3066\u304F\u3060\u3055\u3044\u3002 Rotation=\u56DE\u8EE2 Undefined=\u672A\u5B9A\u7FA9 -Support-Auto_Complete_Shortcut=\u81EA\u52D5\u3067\u30B7\u30E7\u30FC\u30C8\u30AB\u30C3\u30C8\u30AD\u30FC\u3092\u88DC\u3046 -Set_Column_Title_End=\u91CD\u8907\u3059\u308B\u7D42\u4E86\u5217\u3092\u8A2D\u5B9A -Submit_Url=\u30A2\u30C9\u30EC\u30B9\u63D0\u51FA -ReportServerP-Are_you_sure_to_delete_the_selected_printer=\u9078\u629E\u3055\u308C\u305F\u30D7\u30EA\u30F3\u30BF\u30FC\u3092\u524A\u9664\u3057\u3066 -long_data_can_not_show_fully=\u9577\u3044\u30C7\u30FC\u30BF\u304C\u5341\u5206\u306B\u767A\u63EE\u3059\u308B\u3053\u3068\u304C\u3067\u304D\u307E\u305B\u3093 -Utils-Beyond_the_bottom_side_of_Border=\u4E0B\u9818\u57DF\u3092\u30AA\u30FC\u30D0\u30FC -FR-Import-Export_PDF=PDF\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8 -Form-CheckBoxGroup=\u30D5\u30EC\u30FC\u30E0\u30BB\u30C3\u30C8\u3092\u8907\u6570\u9078\u629E +Support-Auto_Complete_Shortcut=\u30AA\u30FC\u30C8\u30B3\u30F3\u30D7\u30EA\u30FC\u30C8\u30B7\u30E7\u30FC\u30C8\u30AB\u30C3\u30C8\u30AD\u30FC +Set_Column_Title_End=\u7E70\u308A\u8FD4\u3057\u7D42\u4E86\u5217\u8A2D\u5B9A +Submit_Url=\u66F8\u304D\u8FBC\u307F\u30A2\u30C9\u30EC\u30B9 +ReportServerP-Are_you_sure_to_delete_the_selected_printer=\u9078\u629E\u3055\u308C\u305F\u30D7\u30EA\u30F3\u30BF\u3092\u524A\u9664\u3057\u307E\u3059\u304B +long_data_can_not_show_fully=\u9577\u3044\u30C7\u30FC\u30BF\u306E\u8868\u793A\u306F\u4E0D\u5B8C\u5168 +Utils-Beyond_the_bottom_side_of_Border=\u4E0B\u306E\u306E\u5883\u754C\u3092\u8D85\u904E\u3057\u3066\u3044\u307E\u3059\u3002\u914D\u7F6E\u3067\u304D\u307E\u305B\u3093\u3002 +FR-Import-Export_PDF=PDF +Form-CheckBoxGroup=\u30C1\u30A7\u30C3\u30AF\u30DC\u30C3\u30AF\u30B9\u30B0\u30EB\u30FC\u30D7 Click-Me=\u30AF\u30EA\u30C3\u30AF\u3059\u308B\u3068\u30B5\u30D7\u30E9\u30A4\u30BA\u304C\u3042\u308A\u307E\u3059\u3088\uFF01 -Hyperlink-Self=\u540C\u3058Frame(S) -Tree-Select_Leaf_Only_Tips=\u30C1\u30A7\u30C3\u30AF\u3057\u306A\u3044\u5834\u5408\u3001\u623B\u308A\u5024\u306F\u5F53\u30CE\u30FC\u30C9\u3060\u3051\u3002 -StyleAlignment-Text_Rotation=\u30C6\u30AD\u30B9\u30C8\u65B9\u5411 -Format-Error=\u5165\u529B\u3057\u305F\u5024\u306E\u66F8\u5F0F\u304C\u4E0D\u6B63\u78BA\u3067\u3059 -Server-Stop=\u4E00\u6642\u505C\u6B62 +Hyperlink-Self=\u5143\u306E\u30DA\u30FC\u30B8\u304B\u3089\u30EA\u30F3\u30AF\u3092\u958B\u304F(S) +Tree-Select_Leaf_Only_Tips=(\u3053\u306E\u9805\u76EE\u304C\u30C1\u30A7\u30C3\u30AF\u3057\u306A\u3044\u5834\u5408\u3001\u623B\u308A\u5024\u306F\u30E6\u30FC\u30B6\u30FC\u306B\u3088\u3063\u3066\u30C1\u30A7\u30C3\u30AF\u3055\u308C\u305F\u73FE\u6642\u70B9\u306E\u30CE\u30FC\u30C9\u3060\u3051\u3001\u5B50\u30CE\u30FC\u30C9\u304C\u542B\u307E\u308C\u306A\u3044) +StyleAlignment-Text_Rotation=\u6587\u5B57\u5217\u306E\u65B9\u5411 +Format-Error=\u5165\u529B\u5024\u306E\u66F8\u5F0F\u306F\u4E0D\u6B63\u78BA\u3067\u3059 +Server-Stop=\u505C\u6B62 Preference-Setting_Grid=\u30B0\u30EA\u30C3\u30C9\u8A2D\u5B9A -ReportServerP-Add_Printer=\u30D7\u30EA\u30F3\u30BF\u30FC\u8FFD\u52A0 -FR-Designer-Plugin_Active=\u4F7F\u7528\u958B\u59CB +ReportServerP-Add_Printer=\u30D7\u30EA\u30F3\u30BF\u8FFD\u52A0 +FR-Designer-Plugin_Active=\u6709\u52B9 Utils-File_name=\u30D5\u30A1\u30A4\u30EB\u540D -NOT_NULL_Des=\u3053\u3053\u306F\u7A7A\u6B04\u306B\u3059\u308B\u3053\u3068\u304C\u3067\u304D\u307E\u305B\u3093 -Right_Border_Line=\u53F3\u30D5\u30EC\u30FC\u30E0\u30E9\u30A4\u30F3 +NOT_NULL_Des=\u7A7A\u306B\u3067\u304D\u307E\u305B\u3093 +Right_Border_Line=\u53F3\u7F6B\u7DDA EditRC-Entire_column=\u5217(C) -PageSetup-Top_to_bottom=\u4E0A\u304B\u3089\u4E0B\u3078 -Click-Get_Default_URL=\u30AF\u30EA\u30C3\u30AF\u3057\u3066\u30C7\u30D5\u30A9\u30EB\u30C8\u306EURL\u3092\u53D6\u5F97 -StyleAlignment-Wrap_Text=\u81EA\u52D5\u6298\u308A\u8FD4\u3057 -Remove_All_Button=\u5168\u3066\u306E\u30DC\u30BF\u30F3\u3092\u30AF\u30EA\u30A2 -FR-Designer_Component_Interval=\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u306E\u9593\u9694 -ReportColumns-Columns_vertically=\u5782\u76F4\u65B9\u5411\u5217 -ReportGUI-Print_Background=\u5370\u5237\u80CC\u666F -Export-CSV=CSV (\u30AB\u30F3\u30DE\u533A\u5207\u308A) +PageSetup-Top_to_bottom=\u5DE6\u304B\u3089\u53F3 +Click-Get_Default_URL=\u3053\u306E\u30DC\u30BF\u30F3\u3092\u30AF\u30EA\u30C3\u30AF\u3057\u3066\u65E2\u5B9AURL\u3092\u53D6\u5F97 +StyleAlignment-Wrap_Text=\u81EA\u52D5\u6539\u884C +Remove_All_Button=\u3059\u3079\u3066\u306E\u30DC\u30BF\u30F3\u3092\u30AF\u30EA\u30A2 +FR-Designer_Component_Interval=\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u9593\u9694 +ReportColumns-Columns_vertically=\u5217\u306E\u30B5\u30D6\u30D5\u30A3\u30FC\u30EB\u30C9 +ReportGUI-Print_Background=\u5E33\u7968\u80CC\u666F\u306E\u5370\u5237/\u51FA\u529B +Export-CSV=CSV(\u30AB\u30F3\u30DE\u533A\u5207\u308A) M_Edit-Paste=\u8CBC\u308A\u4ED8\u3051(P) -FR-Designer-Basic_Restart_Designer=\u30C7\u30B6\u30A4\u30CA\u30FC\u3092\u518D\u8D77\u52D5\u3059\u308B -ReportServerP-PDF2-INFO=LINUX/UNIX\u306B\u4E2D\u56FD\u8A9E\u30D5\u30A9\u30F3\u30C8\u304C\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u3055\u308C\u305F\u6642\u306E\u307F\u4F7F\u7528 -FormulaD-Check_Valid=\u6709\u52B9\u6027\u30C1\u30A7\u30C3\u30AF -server_disconnected=\u5207\u65AD\u3055\u308C\u305F -ParameterD-Parameter_name_cannot_be_null=\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC\u540D\u306F\u7A7A\u5024\u306B\u306A\u3063\u3066\u306F\u3044\u3051\u307E\u305B\u3093 -FR-Designer-Plugin_Version_Is_Lower_Than_Current=\u30A2\u30C3\u30D7\u30B0\u30EC\u30FC\u30C9\u30D1\u30C3\u30AF\u306E\u30D7\u30E9\u30B0\u30A4\u30F3\u30D0\u30FC\u30B8 -RWA-NotChange_Unmodified=\u306E\u6539\u6B63\u3092\u66F4\u65B0\u3057\u306A\u3044 -User_Information=\u30E6\u30FC\u30B6\u60C5\u5831 -Custom_styles_lost=\u30AB\u30B9\u30BF\u30DE\u30A4\u30BA\u30B9\u30BF\u30A4\u30EB\u306F\u5931\u308F\u308C\u307E\u3057\u305F -PageSetup-Margin=\u4F59\u767D -M-New_FormBook=\u8868\u3092\u65B0\u898F\u4F5C\u6210 -Widget-TreeNode=\u30C4\u30EA\u30FC\u30CE\u30FC\u30C9\u30DC\u30BF\u30F3 +FR-Designer-Basic_Restart_Designer=\u30C7\u30B6\u30A4\u30CA\u518D\u8D77\u52D5 +ReportServerP-PDF2-INFO=LINUX / UNIX\u306B\u4E2D\u56FD\u8A9E\u30D5\u30A9\u30F3\u30C8\u304C\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u3055\u308C\u3066\u3044\u306A\u3044\u5834\u5408\u3060\u3051\u306B\u4F7F\u3046 +FormulaD-Check_Valid=\u6570\u5F0F\u306E\u691C\u8A3C +server_disconnected=\u63A5\u7D9A\u304C\u5207\u65AD\u3055\u308C\u305F +ParameterD-Parameter_name_cannot_be_null=\u30D1\u30E9\u30E1\u30FC\u30BF\u540D\u306F\u7A7A\u306B\u3067\u304D\u307E\u305B\u3093 +FR-Designer-Plugin_Version_Is_Lower_Than_Current=\u30A2\u30C3\u30D7\u30B0\u30EC\u30FC\u30C9\u30D1\u30C3\u30B1\u30FC\u30B8\u306E\u30D7\u30E9\u30B0\u30A4\u30F3\u30D0\u30FC\u30B8\u30E7\u30F3\u306F\u4ECA\u306E\u30D0\u30FC\u30B8\u30E7\u30F3\u3088\u308A\u4F4E\u3044 +RWA-NotChange_Unmodified=\u5909\u66F4\u6642\u306E\u307F\u66F8\u304D\u8FBC\u307F +User_Information=\u30E6\u30FC\u30B6\u30FC\u60C5\u5831 +Custom_styles_lost=\u30AB\u30B9\u30BF\u30E0\u30B9\u30BF\u30A4\u30EB\u306F\u5931\u308F\u308C\u307E\u3057\u305F +PageSetup-Margin=\u30DE\u30FC\u30B8\u30F3 +M-New_FormBook=\u30C0\u30C3\u30B7\u30E5\u30DC\u30FC\u30C9\u65B0\u898F\u4F5C\u6210 +Widget-TreeNode=\u30C4\u30FC\u30CE\u30FC\u30C9\u30DC\u30BF\u30F3 Form-Url=\u30A2\u30C9\u30EC\u30B9 -Utils-Beyond_the_left_side_of_Border=\u5DE6\u30DC\u30FC\u30C0\u30FC\u8D85\u3048 -Float_Element_Name=\u30D5\u30ED\u30FC\u3068\u8981\u7D20\u540D\u79F0 -Purple=\u8584\u7D2B +Utils-Beyond_the_left_side_of_Border=\u5DE6\u306E\u5883\u754C\u3092\u8D85\u904E\u3057\u3066\u3044\u307E\u3059\u3002\u914D\u7F6E\u3067\u304D\u307E\u305B\u3093\u3002 +Float_Element_Name=\u30D5\u30ED\u30FC\u30C8\u8981\u7D20\u540D +Purple=\u7D2B DashBoard-Potence=\u6A29\u9650 -M-Close_Template=\u5E33\u7968\u3092\u9589\u3058\u308B(C) -paper=\u7D19 -Not_Exsit=\u5E33\u7968\u306B\u5B58\u5728\u3057\u307E\u305B\u3093 +M-Close_Template=\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u30AA\u30D5(C) +paper=\u7528\u7D19 +Not_Exsit=\u5E33\u7968\u306B\u5B58\u5728\u3057\u306A\u3044 Utils-Insert_Row=\u884C\u633F\u5165 Utils-Delete_Row=\u884C\u524A\u9664 -not_support_authority_edit=\u8BE5\u5143\u7D20\u4E0D\u652F\u6301\u6743\u9650\u63A7\u5236 -Formula_Tips=\u5F0F\u306F "\ +not_support_authority_edit=\u3053\u306E\u8981\u7D20\u306F\u6A29\u9650\u5236\u5FA1\u3092\u30B5\u30DD\u30FC\u30C8\u3057\u3066\u3044\u307E\u305B\u3093 +Formula_Tips=\u6570\u5F0F\u306F\u5FC5\u305A" FR-Action_Copy=\u30B3\u30D4\u30FC -Compile_Success=\u7DE8\u96C6\u7FFB\u8A33\u306B\u6210\u529F\u3057\u307E\u3057\u305F +Compile_Success=\u30B3\u30F3\u30D1\u30A4\u30EB\u306B\u6210\u529F\u3057\u305F BackgroundTexture-RecycledPaper=\u518D\u751F\u7D19 -StyleAlignment-Single_Line=\u4E00\u884C\u3067\u8868\u793A -Utils-Move_Down=\u4E0B\u3078\u79FB\u52D5 -Please_Set_Repeat_First=\u307E\u305A\u91CD\u8907\u3059\u308B\u6A19\u984C\u884C\u3068\u5217\u3092\u8A2D\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044 -Writer-ShortCuts_Setting=\u5831\u544A\u30B7\u30E7\u30FC\u30C8\u30AB\u30C3\u30C8\u30AD\u30FC\u8A2D\u5B9A +StyleAlignment-Single_Line=1\u884C\u8868\u793A +Utils-Move_Down=\u4E0B\u3078 +Please_Set_Repeat_First=\u6700\u521D\u306B\u7E70\u308A\u8FD4\u3057\u30BF\u30A4\u30C8\u30EB\u306E\u884C\u3068\u5217\u3092\u8A2D\u5B9A\u3057\u3066\u4E0B\u3055\u3044 +Writer-ShortCuts_Setting=\u66F8\u304D\u8FBC\u307F\u30B7\u30E7\u30FC\u30C8\u30AB\u30C3\u30C8\u30AD\u30FC\u8A2D\u5B9A Verify-Data_Verify=\u30C7\u30FC\u30BF\u691C\u8A3C FR-mobile_analysis_style=\u89E3\u6790\u65B9\u5F0F -Confirm-Delete-File=\u9078\u629E\u3057\u305F\u30D5\u30A1\u30A4\u30EB\u3092\u524A\u9664\u3057\u3066\u3082\u3088\u308D\u3057\u3044\u3067\u3059\u304B\uFF1F -PageSetup-Header=\u30DA\u30FC\u30B8\u30D8\u30C3\u30C0 +Confirm-Delete-File=\u9078\u629E\u3057\u305F\u30D5\u30A1\u30A4\u30EB\u3092\u524A\u9664\u3057\u307E\u3059\u304B? +PageSetup-Header=\u30D8\u30C3\u30C0\u30FC JavaScrit-Asynch=\u975E\u540C\u671F ReportServerP-Toolbar=\u30C4\u30FC\u30EB\u30D0\u30FC Utils-Top_to_Bottom=\u7E26\u65B9\u5411 Platform=\u30D7\u30E9\u30C3\u30C8\u30D5\u30A9\u30FC\u30E0 -FR-Designer-FRFont_Underline=\u30A2\u30F3\u30C0\u30FC\u30E9\u30A4\u30F3 -Show_in_Containing_Folder=\u6240\u5728\u3059\u308B\u30D5\u30A1\u30A4\u30EB\u3092\u958B\u304F +FR-Designer-FRFont_Underline=\u4E0B\u7DDA +Show_in_Containing_Folder=\u30D5\u30A1\u30A4\u30EB\u306E\u5834\u6240\u3092\u958B\u304F BackgroundTexture-WaterDroplets=\u3057\u305A\u304F -FR-Designer-Dependence_Install_Failed=install failed +FR-Designer-Dependence_Install_Failed=\u4F9D\u5B58\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u5931\u6557 Layout-Padding=\u30D1\u30C7\u30A3\u30F3\u30B0 -roles_already_authority_edited=\u69CB\u6210\u3055\u308C\u305F\u5F79\u5272 -WidgetDisplyPosition=\u30B3\u30F3\u30C8\u30ED\u30FC\u30EB\u8868\u793A\u4F4D\u7F6E -SpecifiedG-Force_Group=\u5F37\u5236\u7684\u306B\u30B0\u30EB\u30FC\u30D4\u30F3\u30B0\u3059\u308B -FormulaD-Formula_Definition=\u516C\u5F0F\u5B9A\u7FA9 +roles_already_authority_edited=\u5F79\u5272\u8A2D\u5B9A\u6E08\u307F +WidgetDisplyPosition=\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u8868\u793A\u4F4D\u7F6E +SpecifiedG-Force_Group=\u5F37\u5236\u30B0\u30EB\u30FC\u30D7\u5206\u3051 +FormulaD-Formula_Definition=\u6570\u5F0F\u5B9A\u7FA9 I-xyScatterStyle_Marker=\u6563\u5E03\u56F3 Hour=\u6642\u9593 ColorMatch=\u914D\u8272 -M_Edit-Order=\u9806\u5E8F(O) -BackgroundTexture-Bouquet=\u82B1\u675F -Verify-Error_Information=\u30A8\u30E9\u30FC\u60C5\u5831 -LayerData=\u5E95\u5C42\u6570\u636E -Rename=\u540D\u79F0\u306E\u5909\u66F4 -Widget-Load_By_Async=\u975E\u540C\u671F\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9 +M_Edit-Order=\u7A4D\u307F\u91CD\u306D\u9806\u756A(O) +BackgroundTexture-Bouquet=\u30D6\u30FC\u30B1 +Verify-Error_Information=\u30A8\u30E9\u30FC\u60C5\u5831\u691C\u8A3C +LayerData=\u57FA\u790E\u30EC\u30A4\u30E4\u30FC\u306E\u30C7\u30FC\u30BF +Rename=\u540D\u524D\u3092\u5909\u66F4 +Widget-Load_By_Async=\u975E\u540C\u671F\u30ED\u30FC\u30C9 Shape=\u56F3\u5F62 -BindColumn-This_Condition_has_been_existed=\u5F53\u8A72\u6761\u4EF6\u306F\u5B58\u5728\u3057\u3066\u3044\u307E\u3059 -NS-exception_readError=\u30A8\u30E9\u30FC\u30B3\u30FC\u30C9\:1305 \u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u30D5\u30A1\u30A4\u30EB\u89E3\u6790\u306B\u30A8\u30E9\u30FC\u304C\u3042\u308A\u307E\u3057\u305F -Set_Column_Title_Start=\u91CD\u8907\u3059\u308B\u6A19\u984C\u5217\u3092\u8A2D\u5B9A -Fri=\u91D1 -M_Report-Report_Parameter=\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC -REPORTLETS=\u8907\u6570\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u306E\u30EB\u30FC\u30C8\u306E\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC\u306B\u30A2\u30AF\u30BB\u30B9 -WLayout-Card-ToolTip=\u30AB\u30FC\u30C9\u306E\u30EC\u30A4\u30A2\u30A6\u30C8\u306F\u3001\u30EC\u30A4\u30A2\u30A6\u30C8\u30B3\u30F3\u30C6\u30CA\u5185\u306E\u4ED6\u306E\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u306E\u6570 +BindColumn-This_Condition_has_been_existed=\u3053\u306E\u6761\u4EF6\u306F\u3059\u3067\u306B\u5B58\u5728\u3057\u3066\u3044\u308B +NS-exception_readError=\u30A8\u30E9\u30FC\u30B3\u30FC\u30C9\:1305 \u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u30D5\u30A1\u30A4\u30EB\u89E3\u6790\u30A8\u30E9\u30FC +Set_Column_Title_Start=\u7E70\u308A\u8FD4\u3057\u30BF\u30A4\u30C8\u30EB\u5217\u8A2D\u5B9A +Fri=\u91D1\u66DC\u65E5 +M_Report-Report_Parameter=\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u30D1\u30E9\u30E1\u30FC\u30BF +REPORTLETS=\u8907\u6570\u306E\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u306E\u30D1\u30B9\u306B\u30A2\u30AF\u30BB\u30B9\u3059\u308B\u30D1\u30E9\u30E1\u30FC\u30BF +WLayout-Card-ToolTip=\u30AB\u30FC\u30C9\u578B\u30EC\u30A4\u30A2\u30A6\u30C8\u3002\u3053\u306E\u30EC\u30A4\u30A2\u30A6\u30C8\u30B3\u30F3\u30C6\u30CA\u306B\u8907\u6570\u306E\u4ED6\u306E\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u3092\u8FFD\u52A0\u3067\u304D\u307E\u3059\u3002 M-Popup_ChartType=\u30B0\u30E9\u30D5\u30BF\u30A4\u30D7 -Please-Wait=\u5C11\u3005\u304A\u5F85\u3061\u304F\u3060\u3055\u3044 -FR-Designer-Form-ToolBar_Widget=\u30B3\u30F3\u30C8\u30ED\u30FC\u30EB +Please-Wait=\u304A\u5F85\u3061\u4E0B\u3055\u3044 +FR-Designer-Form-ToolBar_Widget=\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8 Widget-Array=\u914D\u5217 -FieldBinding=\u30D0\u30F3\u30C7\u30A3\u30F3\u30B0\u30D5\u30A3\u30FC\u30EB\u30C9 -Top_Bottom_Border_Line=\u4E0A\u4E0B\u30D5\u30EC\u30FC\u30E0\u30E9\u30A4\u30F3 +FieldBinding=\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u30D0\u30A4\u30F3\u30C9 +Top_Bottom_Border_Line=\u4E0A\u7F6B\u7DDA + \u4E0B\u7F6B\u7DDA M-Others=\u305D\u306E\u4ED6... -Hyperlink-Link_Opened_in=\u30EA\u30F3\u30AF\u306E\u958B\u3051\u65B9 -FR-Utils_WorkBook=\u4F5C\u696D\u7C3F -M_Insert-Float=\u30D5\u30ED\u30FC\u30C8\u8981\u7D20 -Out_Thick_Border_Line=\u30DC\u30C3\u30AF\u30B9\u30D5\u30EC\u30FC\u30E0\u30E9\u30A4\u30F3 +Hyperlink-Link_Opened_in=\u30EA\u30F3\u30AF\u306E\u5B9F\u884C\u65B9\u5F0F +FR-Utils_WorkBook=\u30EF\u30FC\u30AF\u30D6\u30C3\u30AF +M_Insert-Float=\u30D5\u30ED\u30FC\u30C6\u30A3\u30F3\u30B0\u8981\u7D20 +Out_Thick_Border_Line=\u5916\u67A0\u592A\u7F6B\u7DDA FR-App-File_Lookup_range=\u691C\u7D22\u7BC4\u56F2 -ReportColumns-Columns_to=\u306E\u3088\u3046\u306B\u6539\u5217\u3059\u308B +ReportColumns-Columns_to=\u30B5\u30D6\u30D5\u30A3\u30FC\u30EB\u30C9\u7D50\u679C Transparent=\u900F\u660E Parameter-Integer=\u6574\u6570\u578B PDF-Print_Setting=PDF\u5370\u5237\u8A2D\u5B9A -Server-Embedded_Server=\u5185\u8535\u30B5\u30FC\u30D0 -M_Server-Server_Config_Manager=\u30B5\u30FC\u30D0\u914D\u7F6E(S) -FR-Utils-Would_you_like_to_cover_the_current_file=\u30AB\u30EC\u30F3\u30C8\u30D5\u30A1\u30A4\u30EB\u3092\u4E0A\u66F8\u304D\u3057\u307E\u3059\u304B\uFF1F +Server-Embedded_Server=\u7D44\u307F\u8FBC\u307F\u30B5\u30FC\u30D0 +M_Server-Server_Config_Manager=\u30B5\u30FC\u30D0\u8A2D\u5B9A +FR-Utils-Would_you_like_to_cover_the_current_file=\u73FE\u5728\u306E\u30D5\u30A1\u30A4\u30EB\u3092\u4E0A\u66F8\u304D\u3057\u307E\u3059\u304B CellWrite-InsertRow_COPY=\u5143\u306E\u5024 -Edit_String_To_Formula=\u30AD\u30E3\u30E9\u30AF\u30BF\u30FC\u6587\u5B57\u5217\u3092\u7DE8\u96C6\u3057\u3066\u516C\u5F0F\u3068\u3059\u308B\u304B\u5426\u304B +Edit_String_To_Formula=\u6587\u5B57\u5217\u3092\u7DE8\u96C6\u3057\u3066\u6570\u5F0F\u3068\u3059\u308B\u304B\u5426\u304B Edit-Column_Count=\u5217\u6570 Father=\u89AA -ReportColumns-Columns_after=\u8D85\u3048\u308B -FR-Designer_Undo=\u3084\u308A\u76F4\u3059 -DBCP_MIN_IDLE=\u6700\u5C0F\u30A2\u30A4\u30C9\u30EB\u63A5\u7D9A\u6570 +ReportColumns-Columns_after=\u3088\u308A\u5927\u304D\u3044 +FR-Designer_Undo=\u5143\u306B\u623B\u3059 +DBCP_MIN_IDLE=\u30D7\u30FC\u30EB\u306B\u4FDD\u6301\u3059\u308B\u6700\u5C0F\u63A5\u7D9A\u6570 M-Data_Analysis_Settings=\u30C7\u30FC\u30BF\u5206\u6790\u8A2D\u5B9A -M-Form_Preview=\u8868\u30D7\u30EC\u30D3\u30E5\u30FC +M-Form_Preview=\u30C0\u30C3\u30B7\u30E5\u30DC\u30FC\u30C9\u30D7\u30EC\u30D3\u30E5\u30FC Form-Basic_Properties=\u57FA\u672C\u5C5E\u6027 -quote=\u5F15\u7528 +quote=\u53C2\u7167 Thu=\u6728 -Collect-Collect_User_Information=\u30E6\u30FC\u30B6\u60C5\u5831\u3092\u53CE\u96C6\u3059\u308B -Layer-Build=\u30D5\u30A1\u30BB\u30C3\u30C8\u7D44\u307F\u7ACB\u3066 -FR-Designer-FRFont_Line_Style=\u7DDA\u5F62 -BackgroundTexture-BrownMarble=\u8336\u8272\u306E\u5927\u7406\u77F3 +Collect-Collect_User_Information=\u30E6\u30FC\u30B6\u30FC\u60C5\u5831\u3092\u53CE\u96C6 +Layer-Build=\u30EC\u30A4\u30E4\u30FC\u5225\u69CB\u7BC9 +FR-Designer-FRFont_Line_Style=\u7DDA\u306E\u7A2E\u985E +BackgroundTexture-BrownMarble=\u5927\u7406\u77F3(\u8336) PageSetup-Page_Setup=\u30DA\u30FC\u30B8\u8A2D\u5B9A -Form-Semicolon=\u5206\u53F7 -ECP_re_input=\u30D1\u30B9\u30EF\u30FC\u30C9\u304C\u9593\u9055\u3063\u3066\u3044\u307E\u3059\u3002\u518D\u5EA6\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044 -ExpandD-Sort_After_Expand=\u62E1\u5927\u5F8C -FR-Designer-Dependence_Install_Succeed=install succeed -Env-Configure_Workspace=\u4F5C\u696D\u76EE\u6B21\u8A2D\u5B9A +Form-Semicolon=\u30BB\u30DF\u30B3\u30ED\u30F3 +ECP_re_input=\u30D1\u30B9\u30EF\u30FC\u30C9\u30A8\u30E9\u30FC\u3002\u518D\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044 +ExpandD-Sort_After_Expand=\u5C55\u958B\u5F8C +FR-Designer-Dependence_Install_Succeed=\u4F9D\u5B58\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u6210\u529F +Env-Configure_Workspace=\u4F5C\u696D\u30C7\u30A3\u30EC\u30AF\u30C8\u308A\u8A2D\u5B9A feedback_info=\u8CB4\u91CD\u306A\u610F\u898B\u3042\u308A\u304C\u3068\u3046\u3054\u3056\u3044\u307E\u3059\u3002\u79C1\u9054\u306F\u3067\u304D\u308B\u3060\u3051\u65E9\u304F\u3042\u306A\u305F\u3068\u9023\u7D61\u3057\u307E\u3059\u3002 -Ratio=\u6BD4\u7387 -DBCP_TEST_ON_BORROW=\u63A5\u7D9A\u524D\u691C\u67FB\u3092\u53D6\u5F97 +Ratio=\u5272\u5408 +DBCP_TEST_ON_BORROW=\u63A5\u7D9A\u306E\u8CB8\u51FA\u524D\u306B\u63A5\u7D9A\u6709\u52B9\u6027\u3092\u691C\u8A3C FR-Designer_layerIndex=\u4F9D\u5B58\u30EC\u30A4\u30E4\u30FC\u6570 -WEB-Write_Setting=\u5831\u544A\u30DA\u30FC\u30B8\u8A2D\u5B9A -M-New_WorkBook=\u30D6\u30C3\u30AF\u3092\u65B0\u898F\u4F5C\u6210 -FR-Designer-Plugin_Has_Been_Actived=\u30D7\u30E9\u30B0\u30A4\u30F3\u306F\u3059\u3067\u306B\u8D77\u52D5\u3055\u308C\u3066\u3044\u307E\u3059\u3002\u30C7\u30B6\u30A4\u30CA\u30FC\u3068\u30B5\u30FC -Datasource-Maximum_Number_of_Preview_Rows=\u30D7\u30EC\u30D3\u30E5\u30FC\u884C\u6570\u6700\u5927\u5024 -ExpandD-Cell_Expand_Attributes=\u62E1\u5F35\u5C5E\u6027 -Select_the_repeated_row_and_column=\u91CD\u8907\u3059\u308B\u5FC5\u8981\u304C\u3042\u308B\u884C\u5217\u3092\u9078\u629E\u3057\u3066\u304F\u3060\u3055\u3044 -FormulaD-Date_&_Time=\u65E5\u4ED8\u3068\u6642\u523B\u95A2\u6570 -Max-Mem-Row-Count=\u30AD\u30E3\u30C3\u30B7\u30E5\u306E\u78C1\u6C17\u30C7\u30A3\u30B9\u30AF\u8A18\u9332\u6570\u306F\u3000\u4EE5\u4E0A +WEB-Write_Setting=\u66F8\u304D\u8FBC\u307F\u30DA\u30FC\u30B8\u8A2D\u5B9A +M-New_WorkBook=\u30EF\u30FC\u30AF\u30D6\u30C3\u30AF\u65B0\u898F\u4F5C\u6210 +FR-Designer-Plugin_Has_Been_Actived=\u30D7\u30E9\u30B0\u30A4\u30F3\u306F\u3059\u3067\u306B\u8D77\u52D5\u3055\u308C\u3066\u3044\u307E\u3059\u3002\u30C7\u30B6\u30A4\u30CA\u30FC\u3068\u30B5\u30FC\u30D0\u30FC\u3092\u518D\u8D77\u52D5\u3057\u3066\u767A\u52B9\u3055\u305B\u3066\u304F\u3060\u3055\u3044\u3002\u30B5\u30FC\u30D0\u30FC\u306F\u624B\u52D5\u3067\u518D\u8D77\u52D5\u3057\u3066\u304F\u3060\u3055\u3044 +Datasource-Maximum_Number_of_Preview_Rows=\u6700\u5927\u884C\u6570 +ExpandD-Cell_Expand_Attributes=\u5C55\u958B\u5C5E\u6027 +Select_the_repeated_row_and_column=\u7E70\u308A\u8FD4\u3057\u3057\u305F\u3044\u884C\u5217\u3092\u9078\u629E +FormulaD-Date_&_Time=\u65E5\u4ED8\u3068\u6642\u9593\u95A2\u6570 +Max-Mem-Row-Count=\u30C7\u30A3\u30B9\u30AF\u30AD\u30E3\u30C3\u30B7\u30E5 \u6761\u4EF6 : \u8A18\u9332\u6570> BorderLayout-South=\u5357 Export-Text=\u30C6\u30AD\u30B9\u30C8\u30D5\u30A1\u30A4\u30EB(\u30BF\u30D6\u533A\u5207\u308A) JavaScript-Synch=\u540C\u671F FR-App-All_Warning=\u8B66\u544A M_Edit-Send_Backward=\u80CC\u9762\u3078\u79FB\u52D5(B) -Form-Layout=\u914D\u7F6E -FR-Designer-Plugin_Shop_Need_Update=\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u306F\u3001\u66F4\u65B0\u3059\u308B\u304B\u3069\u3046\u304B\u3001\u65B0\u3057\u3044\u30D0\u30FC\u30B8\u30E7\u30F3\u3092\u4FDD\u5B58\u3057\u307E\u3059\u304B\uFF1F +Form-Layout=\u30EC\u30A4\u30A2\u30A6\u30C8 +FR-Designer-Plugin_Shop_Need_Update=\u65B0\u30D0\u30FC\u30B8\u30E7\u30F3\u306E\u30D7\u30E9\u30B0\u30A4\u30F3\u30B9\u30C8\u30A2\u304C\u3042\u308A\u307E\u3059\u3001\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8\u3057\u307E\u3059\u304B? FR-Designer_WorkBook=\u30EF\u30FC\u30AF\u30D6\u30C3\u30AF -UpBarBorderStyleAndColor=\u30B9\u30B1\u30FC\u30EB\u30A2\u30C3\u30D7\u30AB\u30E9\u30E0\u30B9\u30BF\u30A4\u30EB -GridLayout=\u30BB\u30EB\u914D\u7F6E +UpBarBorderStyleAndColor=\u4E0A\u6607\u30B9\u30BF\u30A4\u30EB +GridLayout=\u30B0\u30EA\u30C3\u30C9\u30EC\u30A4\u30A2\u30A6\u30C8 Utils-Default_Value=\u30C7\u30D5\u30A9\u30EB\u30C8\u5024 -Widget-Comb_Widget_Config=\u7D44\u307F\u5408\u308F\u305B\u30B3\u30F3\u30C8\u30ED\u30FC\u30EB -Import-Excel2007_Source=Excel2007\u30EA\u30BD\u30FC\u30B9\u30D5\u30A1\u30A4\u30EB +Widget-Comb_Widget_Config=\u7D44\u307F\u5408\u308F\u305B\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8 +Import-Excel2007_Source=Excel2007\u30BD\u30FC\u30B9\u30D5\u30A1\u30A4\u30EB Y-Coordinate=\u7E26\u5EA7\u6A19 -FR-Base_SimSun_Not_Found=\u5B8B\u4F53\u3092\u898B\u3064\u3051\u308B\u3053\u3068\u304C\u3067\u304D\u306A\u3044\u3001\u73FE\u5728\u306E\u30B7\u30B9\u30C6\u30E0\u306E\u4E0B\u3067\u30C7\u30D5\u30A9\u30EB\u30C8\u8A00\u8A9E\u3092\u9078\u629E\u3057\u3066\u304F\u3060\u3055\u3044\u8BBE\u8BA1\u5668\u30D5\u30A9\u30F3\u30C8\u3068\u3057\u3066 -FR-Designer_Seriously=\u53B3\u91CD +FR-Base_SimSun_Not_Found=\u5B8B\u4F53\u3092\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3002\u5F53\u8A72\u30B7\u30B9\u30C6\u30E0\u306E\u65E2\u5B9A\u8A00\u8A9E\u3092\u30C7\u30B6\u30A4\u30CA\u30FC +FR-Designer_Seriously=\u91CD\u5927 Upload=\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9 Form-Widget_Property_Table=\u5C5E\u6027\u8868 -Des-Merger_Cell=\u9078\u629E\u3055\u308C\u305F\u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u306F\u8907\u6570\u306E\u30C7\u30FC\u30BF\u304C\u542B\u307F\u3001\u30BB\u30EB\u3092\u7D50\u5408\u3057\u305F\u3089\u3001\u5DE6\u4E0A\u5074\u306E\u30C7 -FR-Designer-Basic_Copy_Build_NO=\u30C0\u30D6\u30EB\u30AF\u30EA\u30C3\u30AF\u3057\u3066\u7D44\u307F\u7ACB\u3066\u30D0\u30FC\u30B8\u30E7\u30F3\u756A\u53F7\u3092\u30AF\u30EA\u30C3\u30D7\u30DC\u30FC\u30C9 -FR-Base_TurnOn=\u8D77\u52D5 +Des-Merger_Cell=\u9078\u629E\u7BC4\u56F2\u306B\u8907\u6570\u306E\u30C7\u30FC\u30BF\u5024\u304C\u3042\u308B\u5834\u5408\u30011\u3064\u306E\u30BB\u30EB\u3068\u3057\u3066\u7D50\u5408\u3059\u308B\u3068\u3001\u9078\u629E\u3057\u305F\u30BB\u30EB\u7BC4\u56F2\u306B\u3042\u308B\u6700\u3082\u5DE6\u4E0A\u7AEF\u306B\u3042\u308B\u30C7\u30FC\u30BF\u306E\u307F\u304C\u4FDD\u6301\u3055\u308C\u307E\u3059\u3002 +FR-Designer-Basic_Copy_Build_NO=\u30D3\u30EB\u30C9\u756A\u53F7\u3092\u30C0\u30D6\u30EB\u30AF\u30EA\u30C3\u30AF\u3057\u3066\u30AF\u30EA\u30C3\u30D7\u30DC\u30FC\u30C9\u306B\u30B3\u30D4\u30FC +FR-Base_TurnOn=\u6709\u52B9 FR-Base_Rows=\u884C -Form-Remove_Repeat=\u91CD\u8907\u3059\u308B\u9805\u76EE\u3092\u524A\u9664 +Form-Remove_Repeat=\u91CD\u8907\u9805\u76EE\u3092\u524A\u9664 Yes=\u306F\u3044 Datasource-JNDI_Name=JNDI\u540D Utils-Delete_Column=\u5217\u524A\u9664 HF-Delete_it=\u524A\u9664 -JavaScript-Dynamic_Parameters=\u52D5\u614B\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC +JavaScript-Dynamic_Parameters=\u52D5\u7684\u30D1\u30E9\u30E1\u30FC\u30BF px=\u753B\u7D20 FR-App-Report_Template=\u5E33\u7968\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8 -Verify-Message=\u30A8\u30E9\u30FC\u30E1\u30C3\u30BB\u30FC\u30B8 -Plan=\u30D7\u30E9\u30F3 -Vertical-Split_Layout=\u5782\u76F4\u5206\u5272\u914D\u7F6E -ParameterD-Delay_Playing=\u5831\u544A\u8868\u306E\u5C55\u793A\u3092\u5EF6\u671F\u3057\u307E\u3059 -TurnOff=\u9589\u3058\u308B -FR-Please_Rename=\u518D\u5EA6\u547D\u540D\u3057\u3066\u304F\u3060\u3055\u3044 -Select_Data_Set=\u30C7\u30FC\u30BF\u30BB\u30C3\u30C8\u3092\u9078\u629E +Verify-Message=\u30A8\u30E9\u30FC\u60C5\u5831 +Plan=\u8A08\u753B +Vertical-Split_Layout=\u5782\u76F4\u5206\u5272\u30EC\u30A4\u30A2\u30A6\u30C8 +ParameterD-Delay_Playing=\u691C\u7D22\u30AF\u30EA\u30C3\u30AF\u524D\u306B\u5E33\u7968\u5185\u5BB9\u3092\u8868\u793A\u3057\u306A\u3044 +TurnOff=\u7121\u52B9 +FR-Please_Rename=\u540D\u524D\u3092\u5909\u66F4\u3057\u3066\u4E0B\u3055\u3044 +Select_Data_Set=\u30C7\u30FC\u30BF\u30BB\u30C3\u30C8\u9078\u629E Name_has_Colon=\u540D\u524D\: -ReportColumns-Columns_horizontally=\u6C34\u5E73\u65B9\u5411\u5217 +ReportColumns-Columns_horizontally=\u884C\u306E\u30B5\u30D6\u30D5\u30A3\u30FC\u30EB\u30C9 FR-Base_Yes=\u306F\u3044 -ReportColumns-Repeat_Row=\u884C\u756A\u53F7\u306E\u7E70\u308A\u8FD4\u3057 +ReportColumns-Repeat_Row=\u884C\u306E\u9806\u5E8F\u3092\u30B3\u30D4\u30FC Print_Setting=\u5370\u5237\u8A2D\u5B9A -Registration-User_Name=\u30E6\u30FC\u30B6\u540D -Datasource-User_Defined=\u30E6\u30FC\u30B6\u5B9A\u7FA9 -FR-Designer-Plugin_DownLoadMessage=\u30D7\u30E9\u30B0\u30A4\u30F3\u306F\u4F9D\u5B58\u30D5\u30A1\u30A4\u30EB\u3092\u5FC5\u8981\u3067\u3059\u304C\u3001\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u3057\u307E\u3059\u304B ({R1} m)\uFF1F +Registration-User_Name=\u30E6\u30FC\u30B6\u30FCID +Datasource-User_Defined=\u30AB\u30B9\u30BF\u30E0 +FR-Designer-Plugin_DownLoadMessage=\u30D7\u30E9\u30B0\u30A4\u30F3\u306F\u30B5\u30DD\u30FC\u30C8\u30BD\u30D5\u30C8\u304C\u5FC5\u8981\u3067\u3059\u304C\u3001\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u3057\u307E\u3059\u304B ({R1} m)? Delay=\u9045\u5EF6 -FR-Designer-All_MSBold=\u5FAE\u8EDF\u96C5\u9ED2 -Utils-Now_create_connection=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u3078\u306E\u63A5\u7D9A -FR-Template-Path_chooseRightPath=\u6B63\u78BA\u306A\u30EB\u30FC\u30C8\u3092\u9078\u629E\u3057\u3066\u304F\u3060\u3055\u3044 -FR-Remote_Re_Connect_to_Server=\u30B5\u30FC\u30D0\u306F\u9589\u3058\u3089\u308C\u307E\u3057\u305F\u3002\u518D\u5EA6\u30B5\u30FC\u30D0\u306B\u63A5\u7D9A\u3057\u307E\u3059\u304B? -Nation=\u56FD\u5BB6 -DBCP_MAX_WAIT=\u6700\u5927\u5F85\u3061\u6642\u9593 -FR-App-Template_Form=\u8868 +FR-Designer-All_MSBold=\u30DE\u30A4\u30AF\u30ED\u30BD\u30D5\u30C8\u30E4\u30D8\u30A4 +Utils-Now_create_connection=\u30C7\u30FC\u30BF\u63A5\u7D9A\u69CB\u7BC9\u4E2D +FR-Template-Path_chooseRightPath=\u6B63\u3057\u3044\u30D1\u30B9\u3092\u9078\u629E\u3057\u3066\u304F\u3060\u3055\u3044 +FR-Remote_Re_Connect_to_Server=\u30B5\u30FC\u30D0\u306F\u30AA\u30D5\u3055\u308C\u305F\u304C\u3001\u30B5\u30FC\u30D0\u306B\u518D\u63A5\u7D9A\u3057\u307E\u3059\u304B\uFF1F +Nation=\u56FD +DBCP_MAX_WAIT=\u63A5\u7D9A\u4E0D\u8DB3\u6642\u306E\u6700\u5927\u5F85\u6A5F\u6642\u9593 +FR-App-Template_Form=\u30C0\u30C3\u30B7\u30E5\u30DC\u30FC\u30C9 Address=\u30A2\u30C9\u30EC\u30B9 Sub_Report=\u5B50\u5E33\u7968 -FR-Import-Export_Word=Word\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8 -FR-Server_Version_Tip=\u73FE\u5728\u306E\u63A5\u7D9A\u3057\u3066\u3044\u308B\u30B5\u30FC\u30D0\u306E\u30D0\u30FC\u30B8\u30E7\u30F3\u306F\u4F7F\u7528\u3057\u3066\u3044\u308B\u30C7\u30B6\u30A4\u30CA\u30FC\u306E\u30D0 -StyleAlignment-Left_To_Right=\u5DE6\u304B\u3089\u53F3\u3078 -Verify-ToolTips=\u516C\u5F0F\u304C\u63D0\u793A\u6821\u9A8C\u3082\u6E80\u8DB3\u3057\u3066\u3044\u306A\u3044\u8BEF\u308A\u304C\u60C5\u5831\u3092\u624B\u306B\u5165\u308C\u305F -BackgroundTexture-Stationery=\u4FBF\u7B8B -FR-Designer_RWA-Help=\u8A2D\u5B9A\u3092\u672A\u4FEE\u6B63\u3067\u66F4\u65B0\u305B\u305A\u3001\u30D7\u30EC\u30D3\u30E5\u30FC\u3057\u305F\u5E33\u7968\u3092\u5831\u544A\u3057\u3001\u30BB\u30EB\u306B\u8A18\u9332\u3055\u308C +FR-Import-Export_Word=Word +FR-Server_Version_Tip=\u4ECA\u63A5\u7D9A\u3055\u308C\u3066\u3044\u308B\u30B5\u30FC\u30D0\u306E\u30D0\u30FC\u30B8\u30E7\u30F3\u306F\u3054\u4F7F\u7528\u306E\u30C7\u30B6\u30A4\u30CA\u30FC\u306E\u30D0\u30FC\u30B8\u30E7\u30F3\u756A\u53F7\u3088\u308A\u4F4E\u3044\u306E\u3067\u3001\u5F15\u304D\u7D9A\u304D\u63A5\u7D9A\u3059\u308B\u3068\u3001\u7DE8\u96C6\u306E\u3044\u304F\u3064\u304B\u306E\u5C5E\u6027\u306F\u6709\u52B9\u7684\u306B\u4FDD\u5B58\u3067\u304D\u306A\u3044\u304B\u3082\u3057\u308C\u306A\u3044\u3002\u63A5\u7D9A\u3059\u308B\u5FC5\u8981\u304C\u3042\u308C\u3070\u3001\u304A\u4F7F\u3044\u306E\u30C7\u30B6\u30A4\u30CA\u30FC\u306E\u30D0\u30FC\u30B8\u30E7\u30F3\u306F\u30B5\u30FC\u30D0\u306E\u30D0\u30FC\u30B8\u30E7\u30F3\u3068\u4E00\u81F4\u3057\u3066\u304F\u3060\u3055\u3044 +StyleAlignment-Left_To_Right=\u5DE6\u304B\u3089\u53F3 +Verify-ToolTips=\u6570\u5F0F\u3092\u6E80\u305F\u3055\u306A\u3044\u5834\u5408\u3001\u691C\u8A3C\u30A8\u30E9\u30FC\u60C5\u5831\u3092\u8868\u793A\u3059\u308B +BackgroundTexture-Stationery=\u3072\u306A\u578B +FR-Designer_RWA-Help=\u5909\u66F4\u6642\u306E\u307F\u66F4\u65B0\u3092\u9078\u629E\u3057\u305F\u5834\u5408\u3001\u6539\u30DA\u30FC\u30B8\u30D7\u30EC\u30D3\u30E5\u30FC\u3068\u66F8\u304D\u8FBC\u307F\u30D7\u30EC\u30D3\u30E5\u30FC\u306E\u5834\u5408\u3001\u30EC\u30B3\u30FC\u30C9\u5185\u5BB9\u306E\u30BB\u30EB\u306F\u7DE8\u96C6\u3084\u5909\u66F4\u304C\u3055\u308C\u306A\u3044\u305F\u3081\u3001\u3053\u306E\u30EC\u30B3\u30FC\u30C9\u306F\u66F4\u65B0\u3055\u308C\u306A\u3044\u3002\n\u5927\u91CF\u306E\u30C7\u30FC\u30BF\u306E\u30AF\u30A8\u30EA\u3084\u66F8\u304D\u8FBC\u307F\u3092\u3059\u308B\u5834\u5408\u3001\u3053\u306E\u8A2D\u5B9A\u3092\u6709\u52B9\u306B\u3059\u308B\u3068\u3001\u9AD8\u901F\u5316\u304C\u671F\u5F85\u3067\u304D\u308B\u3002 M_Insert-Barcode=\u30D0\u30FC\u30B3\u30FC\u30C9 Bounds=\u30DC\u30FC\u30C0\u30FC -FR-Designer-Undo_All_Authority_Operations=\u524D\u56DE\u306E\u6A29\u9650\u7DE8\u96C6\u6642\u306E\u5168\u3066\u306E\u30AA\u30DA\u30EC\u30FC\u30B7\u30E7\u30F3\u3092\u64A4\u56DE\u3059 -Datasource-Context=\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8 -CellWrite-Page_After_Column=\u5217\u5F8C\u306E\u6539\u9801 +FR-Designer-Undo_All_Authority_Operations=\u524D\u56DE\u306E\u7DE8\u96C6\u6A29\u9650\u306E\u3059\u3079\u3066\u306E\u64CD\u4F5C\u3092\u53D6\u308A\u6D88\u3059 +Datasource-Context=\u6587\u8108 +CellWrite-Page_After_Column=\u5217\u5F8C FR-Designer_Cancel=\u30AD\u30E3\u30F3\u30BB\u30EB -Button-Group-Display-Columns=\u5217\u306E\u6570\u3092\u8868\u793A\u3059\u308B -Widget-Height=\u30B3\u30F3\u30C8\u30ED\u30FC\u30EB\u9AD8\u3055 +Button-Group-Display-Columns=\u5217\u6570\u3092\u8868\u793A +Widget-Height=\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u9AD8\u3055 Examples=\u4F8B -Formula_Dictionary_Display_Example=\u5B9F\u969B\u5024\u7BC4\u56F2\u306F\ -StyleAlignment-Horizontal=\u6C34\u5E73\u63C3\u3048 +Formula_Dictionary_Display_Example=\u5B9F\u969B\u306E\u5024\u306E\u7BC4\u56F2\u306F Formula_Dictionary_Display_Examples\ +StyleAlignment-Horizontal=\u6A2A\u4F4D\u7F6E HyperLink_Must_Alone_Reset=\u8907\u6570\u306E\u30CF\u30A4\u30D1\u30FC\u30EA\u30F3\u30AF -ExpandD-Expand_Direction=\u62E1\u5F35\u65B9\u5411 -Include=\u542B\u3080 -Export-Excel-Page=\u30DA\u30FC\u30B8 +ExpandD-Expand_Direction=\u5C55\u958B\u65B9\u5411 +Include=\u304C\u542B\u307E\u308C\u308B +Export-Excel-Page=\u6539\u30DA\u30FC\u30B8\u51FA\u529B FR-Designer-Min_Height=\u6700\u5C0F\u9AD8\u3055 Filed=\u30A8\u30EA\u30A2 -ReportServerP-Import_Css=Css\u5F15\u7528 -M_Insert-Formula=\u516C\u5F0F -FR-Designer_Auto-Build=\u81EA\u52D5\u7684\u306B\u30D3\u30EB\u30C9 +ReportServerP-Import_Css=Css\u53C2\u7167 +M_Insert-Formula=\u6570\u5F0F +FR-Designer_Auto-Build=\u81EA\u52D5\u69CB\u7BC9 FRFont-Foreground=\u8272 Bubble-Width=\u30D0\u30D6\u30EB\u306E\u5E45 -Form-Hierarchy_Tree=\u69CB\u9020\u30C4\u30EA\u30FC -WLayout-Border-LayoutContainer=\u4E2D\u90E8\u3068\u5317\u90E82\u30DC\u30FC\u30C0\u30FC\u30EC\u30A4\u30A2\u30A6\u30C8\u30B3\u30F3\u30C6\u30CA\u3068\u5317\u90E8\u30D6\u30ED\u30C3\u30AF\u3092\u542B\u3081 +Form-Hierarchy_Tree=\u30A2\u30FC\u30AD\u30C6\u30AF\u30C1\u30E3\u30C4\u30EA\u30FC +WLayout-Border-LayoutContainer=\u5317\u90E8\u3001\u4E2D\u592E\u90E8\u306E2\u30D6\u30ED\u30C3\u30AF\u306E\u30DC\u30FC\u30C0\u30FC\u30EC\u30A4\u30A2\u30A6\u30C8\u30B3\u30F3\u30C6\u30CA\u3067\u69CB\u6210\u3055\u308C\u308B\u30EC\u30A4\u30A2\u30A6\u30C8\u3002\u5317\u90E8\u30D6\u30ED\u30C3\u30AF\u3067\u306F\u9AD8\u3055\u3092\u8ABF\u6574\u3067\u304D\u307E\u3059\u3002 Preference-JDK_Home=JDK\u30D1\u30B9 Utils-Insert_Column=\u5217\u633F\u5165 -FR-Designer_ToolBar_Top=\u30D8\u30C3\u30C0\u30FC\u30C4\u30FC\u30EB\u30D0\u30FC +FR-Designer_ToolBar_Top=\u4E0A\u90E8\u306E\u30C4\u30FC\u30EB\u30D0\u30FC BindColumn-The_Conditions_of_FatherCell=\u89AA\u30BB\u30EB\u6761\u4EF6 Links=\u30EA\u30F3\u30AF M_Report-Report_Header=\u5E33\u7968\u30D8\u30C3\u30C0\u30FC -Sub_Report_Description=\u5B50\u5E33\u7968\u306F\u89AA\u8868\u904B\u884C\u74B0\u5883\u4E0B\u306B\u5B58\u5728\u3057\u306A\u3051\u308C\u3070\u306A\u3089\u305A\u3001\u4E21\u8005\u306F\u540C\u4E00\u30C6\u30F3\u30D7\u30EC -T_Insert-Float=\u30D5\u30ED\u30FC\u8981\u7D20\u3092\u633F\u5165 -BackgroundTexture-FishFossil=\u9B5A\u5316\u77F3 -My_Computer=\u30DE\u30A4 \u30B3\u30F3\u30D4\u30E5\u30FC\u30BF -FORMLET=\u7570\u306A\u308B\u8868\u306E\u30EB\u30FC\u30C8\u306E\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC\u306B\u30A2\u30AF\u30BB\u30B9 -HF-Undefined=\u672A\u5B9A\u7FA9 -Widget-User_Defined_Widget_Config=\u30D7\u30EC\u5B9A\u7FA9\u30B3\u30F3\u30C8\u30ED\u30FC\u30EB -Report-Write_Attributes_Group_Warning=\u8A2D\u5B9A\u3092\u30AD\u30FC?\u30C1\u30FC\u30E0\u306E\u5404\u30B3\u30E9\u30E0\u306E\u4E2D\u306E\u30AD\u30FC\u4E2A\u6570\u306F\u540C\u3058\u3067 -Form-Single_quote=\u30B7\u30F3\u30B0\u30EB\u30AF\u30A9\u30FC\u30C6\u30FC\u30B7\u30E7\u30F3\u30DE\u30FC\u30AF -Compile_Success_And_Then_Save=\u7DE8\u96C6\u7FFB\u8A33\u6210\u529F\u5F8C\u306B\u4FDD\u5B58\u3067\u304D\u307E\u3059 +Sub_Report_Description=\u5B50\u5E33\u7968\u306F\u3001\u89AA\u5E33\u7968\u3068\u540C\u3058\u5B9F\u884C\u74B0\u5883\u306B\u4FDD\u5B58\u3055\u308C\u3066\u3044\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002\u89AA\u5B50\u306F\u7570\u306A\u308B\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u306E\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002 +T_Insert-Float=\u30D5\u30ED\u30FC\u30C6\u30A3\u30F3\u30B0\u8981\u7D20\u633F\u5165 +BackgroundTexture-FishFossil=\u5316\u77F3 +My_Computer=\u30DE\u30A4\u30B3\u30F3\u30D4\u30E5\u30FC\u30BF +FORMLET=\u7570\u306A\u308B\u30C0\u30C3\u30B7\u30E5\u30DC\u30FC\u30C9\u306B\u30A2\u30AF\u30BB\u30B9\u3059\u308B\u30D1\u30E9\u30E1\u30FC\u30BF +HF-Undefined=\u5B9A\u7FA9\u3055\u308C\u3066\u3044\u306A\u3044 +Widget-User_Defined_Widget_Config=\u30AB\u30B9\u30BF\u30E0\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8 +Report-Write_Attributes_Group_Warning=\u30BB\u30EB\u30B0\u30EB\u30FC\u30D7\u306E\u5404\u30D5\u30A3\u30FC\u30EB\u30C9\u5185\u306E\u30BB\u30EB\u6570\u304C\u540C\u3058\u3067\u306A\u3051\u308C\u3070\u306A\u3089\u306A\u3044\u3053\u3068\u3092\u8A2D\u5B9A +Form-Single_quote=\u5358\u5F15\u7528\u7B26 +Compile_Success_And_Then_Save=\u30B3\u30F3\u30D1\u30A4\u30EB\u6210\u529F\u5F8C\u306B\u4FDD\u5B58\u3067\u304D\u307E\u3059 FR-Designer_Layout-Padding=\u30D1\u30C7\u30A3\u30F3\u30B0 -Layout_Container=\u30EC\u30A4\u30A2\u30A6\u30C8\u30B3\u30F3\u30C6\u30CA +Layout_Container=\u30B3\u30F3\u30C6\u30CA\u30EC\u30A4\u30A2\u30A6\u30C8 Admin=\u7BA1\u7406\u8005 -Form-EC_toolbar=\u5E33\u7968\u30E2\u30B8\u30E5\u30FC\u30EB\u30C4\u30FC\u30EB\u30D0\u30FC +Form-EC_toolbar=\u5E33\u7968\u30D6\u30ED\u30C3\u30AF\u30C4\u30FC\u30EB\u30D0\u30FC FR-App-All_Auto=\u81EA\u52D5 -Utils-Available_Columns=\u9078\u629E\u53EF\u80FD\u306E\u5217 -Form-Change_Widget_Name_Discription=\u65B0\u3057\u3044\u30B3\u30F3\u30C8\u30ED\u30FC\u30EB\u540D\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044 +Utils-Available_Columns=\u30AA\u30D7\u30B7\u30E7\u30F3\u5217 +Form-Change_Widget_Name_Discription=\u65B0\u3057\u3044\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u540D\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044 FR-Module_Designer=\u30C7\u30B6\u30A4\u30CA\u30FC\u30E2\u30B8\u30E5\u30FC\u30EB -FR-Import-Export_Text=\u6587\u66F8\u30D5\u30A1\u30A4\u30EB(\u30BF\u30D6\u6587\u5B57\u5206\u9694) +FR-Import-Export_Text=\u30C6\u30AD\u30B9\u30C8\u30D5\u30A1\u30A4\u30EB(\u30BF\u30D6\u533A\u5207\u308A) Values-Editor=\u5024\u30A8\u30C7\u30A3\u30BF FR-Designer_Yes=\u306F\u3044 -ExpandD-Expandable=\u62E1\u5F35\u6027 -Tree-Return_Full_Path=\u7D50\u679C\u306F\u5B8C\u5168\u306A\u30D1\u30B9\u3092\u623B\u308A\u307E\u3059 +ExpandD-Expandable=\u5C55\u958B +Tree-Return_Full_Path=\u7D50\u679C\u306F\u5B8C\u5168\u306A\u30EC\u30D9\u30EB\u30D1\u30B9\u3092\u623B\u308B FRFont-bolditalic=\u592A\u5B57\u659C\u4F53 FR-Base_StyleFormat_Sample=\u4F8B -Area_Value=\u5730\u57DF\u5024 +Area_Value=\u30A8\u30EA\u30A2\u5024 FR-Designer-Plugin_Disable=\u4F7F\u7528\u7981\u6B62 -Utils-Are_you_sure_to_remove_the_selected_item=\u9078\u629E\u3055\u308C\u305F\u9805\u76EE\u3092\u524A\u9664\u3057\u3066\u3082\u3088\u308D\u3057\u3044\u3067\u3059\u304B -Face_Write=\u5831\u544A -Poly-Report_Block=\u5E33\u7968\u30BF\u30A4\u30D7\u805A\u5408\u30E2\u30B8\u30E5\u30FC\u30EB -Vgap=\u5782\u76F4\u9593\u9699 +Utils-Are_you_sure_to_remove_the_selected_item=\u9805\u76EE\u3092\u524A\u9664\u3057\u307E\u3059\u304B +Face_Write=\u66F8\u304D\u8FBC\u307F +Poly-Report_Block=\u5E33\u7968\u30BF\u30A4\u30D7\u30D6\u30ED\u30C3\u30AF +Vgap=\u5782\u76F4\u9699\u9593 FR-Designer_HyperLink_Must_Alone_Reset=\u8907\u6570\u306E\u30CF\u30A4\u30D1\u30FC\u30EA\u30F3\u30AF DS-Class=\u30D7\u30ED\u30B0\u30E9\u30E0 -FR-Hyperlink_Please_Select_Reportlet=\u30CD\u30C3\u30C8\u30EF\u30FC\u30AF\u5E33\u7968\u3092\u9078\u629E\u3057\u3066\u304F\u3060\u3055\u3044 +FR-Hyperlink_Please_Select_Reportlet=\u30CD\u30C3\u30C8\u5E33\u7968\u3092\u9078\u629E\u3057\u3066\u304F\u3060\u3055\u3044 FS_Report_Type=\u30BF\u30A4\u30D7 HF-New_Line=\u6539\u884C\u30B3\u30FC\u30C9 Privilege=\u6A29\u9650 -Export-Offline-Html=\u30AA\u30D5\u30E9\u30A4\u30F3html\u5E33\u7968\u51FA\u529B -FR-Designer_open-new-form-tip=711\u4EE5\u4E0B\u306E\u751F\u7523\u306E\u305F\u3081\u306E\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u306E\u73FE\u5728\u306E\u30D0\u30FC\u30B8\u30E7\u30F3\u306F\u3001\u4E92 +Export-Offline-Html=\u30AA\u30D5\u30E9\u30A4\u30F3html\u5E33\u7968\u3092\u51FA\u529B +FR-Designer_open-new-form-tip=\u73FE\u5728\u306E\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u306F711\u4EE5\u4E0B\u306E\u30D0\u30FC\u30B8\u30E7\u30F3\u3067\u4F5C\u6210\u3055\u308C\u3066\u3044\u308B\u305F\u3081\u3001\u4E92\u63DB\u6027\u304C\u306A\u304F\u3001\u958B\u304F\u3053\u3068\u304C\u3067\u304D\u307E\u305B\u3093\u3002\u3053\u306E\u30C0\u30C3\u30B7\u30E5\u30DC\u30FC\u30C9\u3092\u7DE8\u96C6\u3059\u308B\u306B\u306F\u3001\u5BFE\u5FDC\u30D0\u30FC\u30B8\u30E7\u30F3\u306E\u30C7\u30B6\u30A4\u30CA\u30FC\u3092\u5229\u7528\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002 FR-Designer-Widget-Style_Frame_Style=\u30D5\u30EC\u30FC\u30E0\u30B9\u30BF\u30A4\u30EB -Present-No_Present=\u30D5\u30A9\u30EB\u30E0\u8A2D\u5B9A\u3092\u30AD\u30E3\u30F3\u30BB\u30EB +Present-No_Present=\u5F62\u614B\u8A2D\u5B9A\u306A\u3057 FR-Designer_Form-Password=\u30D1\u30B9\u30EF\u30FC\u30C9 X_Axis=X\u8EF8 FR-mobile_html_analysis=HTML5\u89E3\u6790 M_Edit-Bring_to_Front=\u6700\u524D\u9762\u3078\u79FB\u52D5(T) -Null_Value_Show=\u7A7A\u5024\u8868\u793A -Datasource-JNDI_DES=\u6CE8\: INITIAL_CONTEXT_FACTORY\u304C\u542B\u3080\u30AF\u30E9\u30B9\u306E.jar\u30D5\u30A1\u30A4\u30EB\u3092lib\u306B\u30B3\u30D4\u30FC +Null_Value_Show=\u6B20\u640D\u5024 +Datasource-JNDI_DES=\u6CE8\u610F\:INITIAL_CONTEXT_FACTORY\u30AF\u30E9\u30B9\u3092\u542B\u3080.jar\u30D5\u30A1\u30A4\u30EB\u3092/lib\u4E0B\u306B\u30B3\u30D4\u30FC\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059 PrintP-Print_Preview=\u5370\u5237\u30D7\u30EC\u30D3\u30E5\u30FC Form-Hierarchy_Tree_Last=\u524D -Has_been_gone=\ \u5931\u308F\u308C\u307E\u3057\u305F\u3002\u5F53\u8A72\u30B9\u30BF\u30A4\u30EB\u3092\u5897\u52A0\u3057\u307E\u3059\u304B\uFF1F -RWA-Add_Field=\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u8FFD\u52A0 -newNode=\u30CE\u30FC\u30C9\u306E\u8FFD\u52A0 -PageSetup-Shrink_to_fit_content=\u30BB\u30EB\u5185\u5BB9\u306B\u3082\u3068\u3065\u3044\u3066\u81EA\u52D5\u8C03\u6574 +Has_been_gone=\u5931\u308F\u308C\u3066\u3044\u307E\u3059\u3002\u3053\u306E\u30B9\u30BF\u30A4\u30EB\u3092\u8FFD\u52A0\u3057\u307E\u3059\u304B\uFF1F +RWA-Add_Field=\u30D5\u30A3\u30FC\u30EB\u30C9\u8FFD\u52A0 +newNode=\u8FFD\u52A0\u30CE\u30FC\u30C9 +PageSetup-Shrink_to_fit_content=\u30BB\u30EB\u5185\u5BB9\u306B\u5FDC\u3058\u3066\u81EA\u52D5\u8ABF\u6574 FR-Designer_Date=\u65E5\u4ED8 Column_Multiple=\u30C7\u30FC\u30BF\u500D\u6570 FR-App-All_File=\u30D5\u30A1\u30A4\u30EB Sort-Descending=\u964D\u9806 FR-Designer-Plugin_Delete=\u524A\u9664 -Above=\u4E0A\u8A18\u306E +Above=\u4EE5\u4E0A\u306E\u30D0\u30FC\u30B8\u30E7\u30F3 Utils-The-Chart=\u30B0\u30E9\u30D5 FRFont-plain=\u6A19\u6E96 Calculating=\u51E6\u7406\u4E2D -Form-Object=\u30D5\u30A9\u30FC\u30E0\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8 -May=\u4E94\u6708 -FR-Designer_Plugin_Normal_Update=\u66F4\u65B0 -FR-Hyperlink_Reportlet=\u30CD\u30C3\u30C8\u30EF\u30FC\u30AF\u5E33\u7968 +Form-Object=\u30C0\u30C3\u30B7\u30E5\u30DC\u30FC\u30C9\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\: +May=5\u6708 +FR-Designer_Plugin_Normal_Update=\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8 +FR-Hyperlink_Reportlet=\u30CD\u30C3\u30C8\u5E33\u7968 M_Edit-Copy=\u30B3\u30D4\u30FC(C) -Sub_Report_Message2=\u89AA\u5E33\u7968\u306F\u73FE\u5728\u306E\u904B\u884C\u74B0\u5883\u4E0B\u306B\u5B58\u5728\u3057\u307E\u305B\u3093 +Sub_Report_Message2=\u89AA\u5E33\u7968\u304C\u5229\u7528\u4E2D\u306E\u5B9F\u884C\u74B0\u5883\u306B\u3042\u308A\u307E\u305B\u3093 Sub_Report_Message3=\u81EA\u8EAB\u3092\u9078\u629E\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093 -Sub_Report_Message1=\u6B63\u78BA\u306A\u30EB\u30FC\u30C8\u3092\u9078\u629E\u3057\u3066\u304F\u3060\u3055\u3044 -Form-Allow_CustomData=\u30AB\u30B9\u30BF\u30DE\u3042\u308A -FR-Server_Version_Tip_MoreInfo=\u6240\u5C5E\u3059\u308B\u30B0\u30EB\u30FC\u30D7\u304C\u4F7F\u7528\u3059\u308BFineReport\u306E\u30C7\u30B6\u30A4\u30CA\u30FC\u306E\u30D0\u30FC\u30B8 -FR-Designer_Server-version-tip-moreInfo=\u79C1\u305F\u3061\u306E\u88FD\u54C1\u306EFineReport Designer\u30D0\u30FC\u30B8\u30E7\u30F3\u756A\u53F7 +Sub_Report_Message1=\u6B63\u3057\u3044\u30D1\u30B9\u3092\u9078\u629E\u3057\u3066\u4E0B\u3055\u3044 +Form-Allow_CustomData=\u30AB\u30B9\u30BF\u30E0 +FR-Server_Version_Tip_MoreInfo=\u30D0\u30FC\u30B8\u30E7\u30F3\u306E\u4E0D\u4E00\u81F4\u306B\u3088\u308B\u554F\u984C\u30EA\u30B9\u30AF\u3092\u907F\u3051\u308B\u305F\u3081\u306B\u3001\u3042\u306A\u305F\u306E\u30C1\u30FC\u30E0\u306B\u3088\u3063\u3066\u4F7F\u7528\u3055\u308C\u308B\u5F53\u793E\u306EFineReport\u88FD\u54C1\u306E\u30C7\u30B6\u30A4\u30CA\u30FC\u30D0\u30FC\u30B8\u30E7\u30F3\u756A\u53F7\u53CA\u3073\u8A2D\u5B9A\u3055\u308C\u308B\u30B5\u30FC\u30D0\u306E\u30D0\u30FC\u30B8\u30E7\u30F3\u756A\u53F7\u304C\u30C1\u30A7\u30C3\u30AF\u3059\u308B\u3053\u3068\u3092\u304A\u52E7\u3081\u3059\u308B\u3002 n\u3088\u308A\u9AD8\u3044\u30C7\u30B6\u30A4\u30CA\u30FC\u3092\u958B\u3044\u3066\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u3092\u4F5C\u6210\u3059\u308C\u3070\u3001\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u305F\u308A\u3001\u5143\u306E\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u5C5E\u6027\u3092\u306A\u304F\u3057\u305F\u308A\u3059\u308B\u6050\u308C\u3082\u3042\u308B\u3002\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u4F5C\u6210\u7528\u306E\u30C7\u30B6\u30A4\u30CA\u30FC\u30D0\u30FC\u30B8\u30E7\u30F3\u306F\u3001\u6700\u7D42\u914D\u7F6E\u7528\u306E\u30B5\u30FC\u30D0\u30D0\u30FC\u30B8\u30E7\u30F3\u3088\u308A\u9AD8\u3044\u5834\u5408\u3001\u30B5\u30FC\u30D0\u306F\u3042\u306A\u305F\u306B\u3088\u3063\u3066\u4F5C\u6210\u3055\u308C\u305F\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u3092\u6B63\u5E38\u306B\u8AAD\u307F\u8FBC\u3080\u3053\u3068\u304C\u3067\u304D\u306A\u3044\u304B\u3082\u3057\u308C\u306A\u3044\u3002 +FR-Designer_Server-version-tip-moreInfo=\u30D0\u30FC\u30B8\u30E7\u30F3\u306E\u4E0D\u4E00\u81F4\u3092\u539F\u56E0\u3068\u3059\u308B\u554F\u984C\u3092\u907F\u3051\u308B\u305F\u3081\u306B\u3001\u958B\u767A\u30C1\u30FC\u30E0\u3067\u5229\u7528\u3057\u3066\u3044\u308BFineReport\u88FD\u54C1\u306E\u30C7\u30B6\u30A4\u30CA\u30FC\u30D0\u30FC\u30B8\u30E7\u30F3\u756A\u53F7\u3001\u53CA\u3073\u8A2D\u5B9A\u3055\u308C\u308B\u30B5\u30FC\u30D0\u306E\u30D0\u30FC\u30B8\u30E7\u30F3\u756A\u53F7\u3092\u30C1\u30A7\u30C3\u30AF\u3059\u308B\u3053\u3068\u3092\u304A\u52E7\u3081\u3044\u305F\u3057\u307E\u3059\u3002n\u3088\u308A\u9AD8\u3044\u30C7\u30B6\u30A4\u30CA\u30FC\u3067\u4F5C\u6210\u3055\u308C\u305F\u30D5\u30A1\u30A4\u30EB\u3092\u958B\u304F\u3068\u30A8\u30E9\u30FC\u306E\u767A\u751F\u539F\u56E0\u3068\u306A\u308B\u307B\u304B\u3001\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u306E\u6A5F\u80FD\u3084\u5C5E\u6027\u306E\u4E00\u90E8\u3092\u5931\u3046\u6050\u308C\u304C\u3042\u308A\u307E\u3059\u3002\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u4F5C\u6210\u7528\u306E\u30C7\u30B6\u30A4\u30CA\u30FC\u30D0\u30FC\u30B8\u30E7\u30F3\u304C\u3001\u6700\u7D42\u7684\u306A\u914D\u7F6E\u5148\u3067\u3042\u308B\u30B5\u30FC\u30D0\u306E\u30D0\u30FC\u30B8\u30E7\u30F3\u3088\u308A\u9AD8\u3044\u5834\u5408\u3001\u30B5\u30FC\u30D0\u30FC\u3067\u5229\u7528\u3055\u308C\u308B\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u306F\u6B63\u5E38\u306B\u52D5\u4F5C\u3057\u306A\u3044\u6050\u308C\u304C\u3042\u308A\u307E\u3059\u3002 Get_Lock=\u30ED\u30C3\u30AF HF-Edit_Footer=\u30D5\u30C3\u30BF\u30FC\u7DE8\u96C6 Datasource-New_Charset=\u65B0\u6587\u5B57\u30B3\u30FC\u30C9 -Preference-Custom=\u30AB\u30B9\u30BF\u30DE\u30A4\u30BA -BackgroundTexture-Newsprint=\u65B0\u805E\u7528\u7D19 -ConditionB-Add_bracket=\u62EC\u5F27\u3092\u8FFD\u52A0\u3059\u308B +Preference-Custom=\u30AB\u30B9\u30BF\u30E0 +BackgroundTexture-Newsprint=\u65B0\u805E\u7D19 +ConditionB-Add_bracket=\u62EC\u5F27\u3092\u8FFD\u52A0 Datasource-Connection_successfully=\u63A5\u7D9A\u6210\u529F -Function-The_class_must_implement_the_interface=\u5F53\u8A72\u30AF\u30E9\u30B9\u306F\u30A4\u30F3\u30BF\u30FC\u30D5\u30A7\u30FC\u30B9\u304B\u3089\u30A4\u30F3\u30D7\u30EC +Function-The_class_must_implement_the_interface=\u30AF\u30E9\u30B9\u306F\u6B21\u306E\u30A4\u30F3\u30BF\u30FC\u30D5\u30A7\u30FC\u30B9\u3092\u5B9F\u88C5\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\uFF1A FR-Designer_ChartF-Transparency=\u900F\u660E -Crimson=\u771F\u7D05 -FR-Hyperlink_Dialog=\u5BFE\u8A71\u30A6\u30A3\u30F3\u30C9\u30A6 -FR-Designer_Covered_All=\u5168\u3066\u8986\u3046 -Hyperlink-New_Window=\u65B0\u30A6\u30A3\u30F3\u30C9\u30A6 +Crimson=\u6DF1\u7D05\u8272 +FR-Hyperlink_Dialog=\u30C0\u30A4\u30A2\u30ED\u30B0\u30DC\u30C3\u30AF\u30B9 +FR-Designer_Covered_All=\u3059\u3079\u3066\u4E0A\u66F8\u304D +Hyperlink-New_Window=\u65B0\u898F\u30A6\u30A3\u30F3\u30C9\u30A6 Style_Name=\u66F8\u5F0F\u540D -CSS_warning= \u305D\u306E\u3088\u3046\u306AWebReport\\ CSS\u30EA\u30D5\u30A1\u30EC\u30F3\u30B9CSS\u30D5\u30A1\u30A4\u30EB\u304C\u5B58\u5728test.css\u306F\u3001css / test.css\u306E\u76F8\u5BFE\u30D1\u30B9\u3068\u3057\u3066
 \u6BD4\u8F03\u7684\u6587\u5DE5\u5B66\u30C7\u30A3\u30EC\u30AF\u30C8\u30EAWebReport\u3001 +CSS_warning=\u4F8B\:WebReport\css\u306Btest.css\u53C2\u7167\u7528\u30D5\u30A1\u30A4\u30EB\u304C\u4FDD\u5B58\u3055\u308C\u3066\u3044\u308B\u5834\u5408\u3001\u76F8\u5BFE\u30D1\u30B9\u306Fcss\test.css\u306B\u306A\u308B\u3002 FR-Base_Column=\u5217 -Three_Rows_Of_Two_Grid=2\u30BB\u30EB\u306E3\u3064\u306E\u884C -DBCP_VALIDATION_QUERY=SQL\u8A8D\u8A3C\u30AF\u30A8\u30EA -M_Edit-Clear_Formats=\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8(F) -Parameter_Setting=\u30D1\u30E9\u30E1\u30FC\u30BF\u8A2D\u5B9A +Three_Rows_Of_Two_Grid=3\u884C2\u5217\u306E\u30B0\u30EA\u30C3\u30C9 +DBCP_VALIDATION_QUERY=\u63A5\u7D9A\u6709\u52B9\u6027\u3092\u691C\u8A3C\u3059\u308BSQL\u30AF\u30A8\u30EA +M_Edit-Clear_Formats=\u66F8\u5F0F(F) +Parameter_Setting=\u30D1\u30E9\u30E1\u30FC\u30BF Related=\u9023\u52D5 BorderLayout-Constraints=\u5834\u6240 -Write_Preview=\u5831\u544A\u30D7\u30EC\u30D3\u30E5\u30FC -PageSetup-Page_Order=\u5370\u5237\u9806 -Verify-Verify_Formula=\u691C\u8A3C\u5F0F +Write_Preview=\u66F8\u304D\u8FBC\u307F\u30D7\u30EC\u30D3\u30E5\u30FC +PageSetup-Page_Order=\u30DA\u30FC\u30B8\u306E\u65B9\u5411 +Verify-Verify_Formula=\u6570\u5F0F\u306E\u691C\u8A3C State=\u7701\u5E02 -FR-Designer-Widget-Style_Body_Background=\u30E1\u30A4\u30F3\u80CC\u666F +FR-Designer-Widget-Style_Body_Background=\u4E3B\u4F53\u80CC\u666F FR-App-Privilege_No=\u6A29\u9650\u304C\u3042\u308A\u307E\u305B\u3093 -Please_Drag_ParaPane= +Please_Drag_ParaPane=Please_Drag_ParaPane Come_True=\u5B9F\u73FE -ISEMPTY=\u7A7A\u6B04 +ISEMPTY=\u7A7A\u306B\u3059\u308B Background-Texture=\u30C6\u30AF\u30B9\u30C1\u30E3 FR-Designer_Verify-Message=\u30A8\u30E9\u30FC\u30E1\u30C3\u30BB\u30FC\u30B8 -Locked=\uFF08\u30ED\u30C3\u30AF\u6E08\u307F\uFF09 +Locked=(\u30ED\u30C3\u30AF\u6E08\u307F) Utils-Design-Action_Cancel=\u30AD\u30E3\u30F3\u30BB\u30EB -Image-Titled=\u5C55\u958B -Gradient-Direction=\u65B9\u5411\u3092\u5F90\u3005\u306B\u5909\u5316 -Green=\u6DF1\u7DD1 +Image-Titled=\u4E26\u3079\u3066\u8868\u793A +Gradient-Direction=\u30B0\u30E9\u30C7\u30FC\u30B7\u30E7\u30F3\u65B9\u5411 +Green=\u9752\u7DD1 Report_Engine=\u5E33\u7968\u30A8\u30F3\u30B8\u30F3 -Return-String=\u30AD\u30E3\u30E9\u30AF\u30BF\u30FC\u6587\u5B57\u5217\u306B\u623B\u308B +Return-String=\u6587\u5B57\u578B\u3092\u623B\u3059 Margin=\u30DE\u30FC\u30B8\u30F3 -Pitch_Percentage=\u30D4\u30C3\u30C1\u306E\u5272\u5408 -FR-Base_TurnOff=\u9589\u3058\u308B -Utils-has_been_existed=\u65E2\u5B58 -HF-Insert_Formula=\u516C\u5F0F\u3092\u633F\u5165 -Utils-Exit_Designer=\u30C7\u30B6\u30A4\u30CA\u30FC\u3092\u7D42\u4E86\u3059\u308B -Formula_Dictionary_Display=\u4E0A\u306E\u5B9F\u969B\u5024\u7BC4\u56F2\u5185\u306E\u3044\u305A\u308C\u306E\u5024($$$)\u306F\u3001\u305D\u306E\u8868\u793A\u5024\u306F -PageSetup-Left_to_right=\u5DE6\u304B\u3089\u53F3\u3078 -Utils-Import_Excel_Data=\u300CExcel]\u30A4\u30F3\u30D7\u30C3\u30C8 +Pitch_Percentage=\u9593\u9694\u30D1\u30FC\u30BB\u30F3\u30C6\u30FC\u30B8 +FR-Base_TurnOff=\u7121\u52B9 +Utils-has_been_existed=\u65E2\u306B\u3042\u308B +HF-Insert_Formula=\u6570\u5F0F +Utils-Exit_Designer=\u30C7\u30B6\u30A4\u30CA\u30FC\u7D42\u4E86 +Formula_Dictionary_Display=\u5B9F\u969B\u306E\u5024\u7BC4\u56F2\u5185\u306E\u5024($$$)\u306B\u5BFE\u3057\u3066\u3001\u305D\u306E\u8868\u793A\u5024\u306F +PageSetup-Left_to_right=\u4E0A\u304B\u3089\u4E0B +Utils-Import_Excel_Data=Excel\u30A4\u30F3\u30DD\u30FC\u30C8 M-Save=\u4FDD\u5B58 -redo=\u3082\u3046\u4E00\u5EA6\u3059\u308B +redo=\u3084\u308A\u76F4\u3057 Status=\u72B6\u614B Draw=\u5236\u4F5C -FR-Designer_Message=\u30E1\u30C3\u30BB\u30FC\u30B8 -Records=\u3064\u306E\u8A18\u9332 -FR-Designer_ComboBox=\u30B3\u30F3\u30DC\u30DC\u30C3\u30AF\u30B9 -Driver=\u30C9\u30E9\u30A4\u30D0\u30FC -Template_Parameters=\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC -Form-Remove_Repeat_Data=\u91CD\u8907\u3059\u308B\u30C7\u30FC\u30BF\u3092\u524A\u9664 -ECP_decode=\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u30A2\u30F3\u30ED\u30C3\u30AF -Area_Name=\u5730\u57DF\u540D +FR-Designer_Message=\u60C5\u5831 +Records=\u4EF6\u306E\u8A18\u9332 +FR-Designer_ComboBox=\u30D7\u30EB\u30C0\u30A6\u30F3\u30DC\u30C3\u30AF\u30B9 +Driver=JDBC\u30C9\u30E9\u30A4\u30D0\u30FC +Template_Parameters=\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u30D1\u30E9\u30E1\u30FC\u30BF +Form-Remove_Repeat_Data=\u91CD\u8907\u30C7\u30FC\u30BF\u3092\u524A\u9664 +ECP_decode=\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u6697\u53F7\u5316\u3092\u89E3\u9664 +Area_Name=\u30A8\u30EA\u30A2\u540D Others=\u305D\u306E\u4ED6 -Merge=\u5408\u4F75\u3059\u308B -BackgroundTexture-Parchment=\u7F8A\u76AE\u7D19 -BindColumn-Bottom_N=\u5F8C\u306EN\u500B +Merge=\u7D71\u5408 +BackgroundTexture-Parchment=\u30BB\u30FC\u30E0\u76AE +BindColumn-Bottom_N=\u4E0B\u4F4DN\u9805\u76EE Frame=\u30D5\u30EC\u30FC\u30E0 -Bottom_Border_Line=\u30DC\u30C8\u30E0\u30DC\u30FC\u30C0\u30FC -Muiti_In=\u591A\u5C64\u53D6\u308A\u30EA\u30F3\u30B0 -FR-Designer-Dependence_Install_Online=install online -Use_Default_ToolBar=\u30C7\u30D5\u30A9\u30EB\u30C8\u30C4\u30FC\u30EB\u30D0\u30FC\u4F7F\u7528 +Bottom_Border_Line=\u4E0B\u7F6B\u7DDA +Muiti_In=\u30DE\u30EB\u30C1\u30EC\u30A4\u30E4\u30FC\u30C9\u30EA\u30EB +FR-Designer-Dependence_Install_Online=\u30AA\u30F3\u30E9\u30A4\u30F3\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u74B0\u5883\u4F9D\u5B58 +Use_Default_ToolBar=\u30C7\u30D5\u30A9\u30EB\u30C8\u30C4\u30FC\u30EB\u30D0\u30FC\u3092\u4F7F\u3046 M_Server-Platform_Manager=\u5E33\u7968\u30D7\u30E9\u30C3\u30C8\u30D5\u30A9\u30FC\u30E0\u7BA1\u7406 PageSetup-inches=\u30A4\u30F3\u30C1 Form-Widget_Property=\u5C5E\u6027\u540D -FR-Layout_Padding=\u5185\u30DE\u30FC\u30B8\u30F3 -Schema=\u30B9\u30AD\u30FC\u30DE -Server_Path=\u30DB\u30B9\u30C8\u30B3\u30F3\u30D4\u30E5\u30FC\u30BF\u4F4D\u7F6E +FR-Layout_Padding=\u30D1\u30C7\u30A3\u30F3\u30B0 +Schema=\u30C6\u30FC\u30DE +Server_Path=\u30DB\u30B9\u30C8\u4F4D\u7F6E Condition_Display=\u6761\u4EF6\u8868\u793A -FR-Server-Design_template_unopened=\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u3092\u958B\u304F\u3053\u3068\u304C\u3067\u304D\u307E\u305B\u3093 +FR-Server-Design_template_unopened=\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u3092\u958B\u3051\u306A\u3044 Function-Function_Class_Name=\u95A2\u6570\u30AF\u30E9\u30B9\u540D Schedule-Template=\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u540D Tree_Data_Field=\u30C4\u30EA\u30FC\u30C7\u30FC\u30BF\u30D5\u30A3\u30FC\u30EB\u30C9 -Border-Style-Normal=\u76F4\u89D2\u306E\u56FD\u5883\u306B -Top_And_Double_Bottom_Border_Line=\u4E0A\u30D5\u30EC\u30FC\u30E0\u30E9\u30A4\u30F3\u3068\u53CC\u4E0B\u30D5\u30EC\u30FC\u30E0\u30E9\u30A4\u30F3 -FR-Server_Embedded_Server_Start=\u5185\u8535\u30B5\u30FC\u30D0-\u958B\u304F -FR-Designer-Basic_Restart_Designer_Later=\u5F8C\u3067\u518D\u8D77\u52D5\u3059\u308B -StyleAlignment-Top=\u4E0A\u8A70\u3081 -ReportServerP-First=\u30C8\u30C3\u30D7\u30DA\u30FC\u30B8 +Border-Style-Normal=\u76F4\u89D2 +Top_And_Double_Bottom_Border_Line=\u4E0A\u67A0\u7DDA\u3068\u4E8C\u91CD\u4E0B\u67A0\u7DDA +FR-Server_Embedded_Server_Start=\u7D44\u307F\u8FBC\u307F\u306E\u30B5\u30FC\u30D0-\u30AA\u30FC\u30D7\u30F3 +FR-Designer-Basic_Restart_Designer_Later=\u5F8C\u3067\u518D\u8D77\u52D5 +StyleAlignment-Top=\u4E0A\u63C3\u3048 +ReportServerP-First=\u5148\u982D\u30DA\u30FC\u30B8 Not_Exist=\u5B58\u5728\u3057\u306A\u3044 -FR-Remote_File_is_Locked=\u958B\u3053\u3046\u3068\u3057\u3066\u3044\u308B\u5E33\u7968\u306F\u73FE\u5728\u4ED6\u306E\u4EBA\u304C\u7DE8\u96C6\u3057\u3066\u3044\u307E\u3059\u3002\u5C11\u3057\u5F85\u3063\u3066\u304B +FR-Remote_File_is_Locked=\u9078\u629E\u5E33\u7968\u306F\u3001\u4ED6\u306E\u30E6\u30FC\u30B6\u30FC\u304C\u7DE8\u96C6\u4E2D\u3067\u3059\u3002\u66AB\u304F\u304A\u5F85\u3061\u4E0B\u3055\u3044 Apply=\u30A2\u30D7\u30EA Sytle-Indentation=\u30A4\u30F3\u30C7\u30F3\u30C8 -Parameter-Float=\u5358\u7CBE\u5EA6\u6D6E\u52D5\u5C0F\u6570\u70B9\u6570\u578B -HF-Center_Section=\u4E2D\u592E\u30BB\u30AF\u30B7\u30E7\u30F3 -Form-Double_quotes=\u30C0\u30D6\u30EB\u30AF\u30AA\u30FC\u30C6\u30FC\u30B7\u30E7\u30F3\u30DE\u30FC\u30AF +Parameter-Float=\u5358\u7CBE\u5EA6\u578B +HF-Center_Section=\u4E2D\u9593\u30A8\u30EA\u30A2 +Form-Double_quotes=\u4E8C\u91CD\u5F15\u7528\u7B26 M_File-Export-Word=Word -M_File-Export-Text=\u30C6\u30AD\u30B9\u30C8\u30D5\u30A1\u30A4\u30EB(\u30BF\u30D6\u533A\u5207\u308A)(T) -PageSetup-First_Page_Number=\u30B9\u30BF\u30FC\u30C8\u306E\u30DA\u30FC\u30B8\u756A\u53F7 +M_File-Export-Text=\u30C6\u30AD\u30B9\u30C8\u30D5\u30A1\u30A4\u30EB(\u30BF\u30D6\u533A\u5207\u308A) +PageSetup-First_Page_Number=\u958B\u59CB\u30DA\u30FC\u30B8 Execute=\u5B9F\u884C Task=\u30BF\u30B9\u30AF -Custom_Button_Type_Submit=\u63D0\u51FA -FR-Designer-Widget_Settings=\u30B3\u30F3\u30C8\u30ED\u30FC\u30EB\u8A2D\u5B9A -IS_Need_Password=\u30D1\u30B9\u30EF\u30FC\u30C9\u304C\u5FC5\u8981\u3067\u3059 +Custom_Button_Type_Submit=\u9001\u4FE1 +FR-Designer-Widget_Settings=\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u8A2D\u5B9A +IS_Need_Password=\u30D1\u30B9\u30EF\u30FC\u30C9\u5FC5\u8981 PageSetup-Horizontally=\u6C34\u5E73\u4E2D\u592E\u63C3\u3048 -No_Editor_Property_Definition=\u5F53\u8A72\u30A8\u30C7\u30A3\u30BF\u306F\u5C5E\u6027\u5B9A\u7FA9\u304C\u3042\u308A\u307E\u305B\u3093 +No_Editor_Property_Definition=\u9078\u629E\u306E\u30A8\u30C7\u30A3\u30BF\u306F\u5C5E\u6027\u5B9A\u7FA9\u304C\u3042\u308A\u307E\u305B\u3093 Env-Remote_Server=\u30EA\u30E2\u30FC\u30C8\u30B5\u30FC\u30D0 FR-Utils_Background=\u80CC\u666F FR-Designer-Plugin_Warning=\u8B66\u544A -Server-version-info=\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u30D5\u30A1\u30A4\u30EB\u306F\u3001\u5F8C\u3067\u8A2D\u8A08\u3084\u5143\u306E\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u5C5E\u6027\u3092\u5931\u3046\u30EA\u30B9\u30AF\u306B -CellWrite-Page_After_Row=\u884C\u5F8C\u306E\u6539\u9801 -HF-Right_Section=\u53F3\u5074\u30BB\u30AF\u30B7\u30E7\u30F3 -PageSetup-Title_Start_Row=\u91CD\u8907\u3059\u308B\u6A19\u984C\u884C -From=\u7B2C\u3000\u304B\u3089 +Server-version-info=\u958B\u3044\u305F\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u30D5\u30A1\u30A4\u30EB\u306F\u3001\u4E0A\u4F4D\u30A8\u30C7\u30A3\u30B7\u30E7\u30F3\u306E\u30C7\u30B6\u30A4\u30CA\u30FC\u3067\u4F5C\u6210\u3055\u308C\u3066\u3044\u307E\u3059\u3002\u4E0A\u4F4D\u30A8\u30C7\u30A3\u30B7\u30E7\u30F3\u3067\u4F5C\u6210\u3055\u308C\u305F\u30D5\u30A1\u30A4\u30EB\u3092\u958B\u304F\u3068\u30A8\u30E9\u30FC\u306E\u767A\u751F\u539F\u56E0\u3068\u306A\u308B\u307B\u304B\u3001\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u306E\u6A5F\u80FD\u3084\u5C5E\u6027\u306E\u4E00\u90E8\u3092\u5931\u3046\u6050\u308C\u304C\u3042\u308A\u307E\u3059\u3002\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u4F5C\u6210\u7528\u306E\u30C7\u30B6\u30A4\u30CA\u30FC\u306E\u30D0\u30FC\u30B8\u30E7\u30F3\u304C\u3001\u914D\u5099\u3055\u308C\u308B\u30A8\u30C7\u30A3\u30B7\u30E7\u30F3\u3088\u308A\u3082\u4E0B\u4F4D\u306E\u30A8\u30C7\u30A3\u30B7\u30E7\u30F3\u3067\u3042\u308B\u3053\u3068\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002 +CellWrite-Page_After_Row=\u884C\u5F8C +HF-Right_Section=\u53F3\u30A8\u30EA\u30A2 +PageSetup-Title_Start_Row=\u7E70\u308A\u8FD4\u3057\u30BF\u30A4\u30C8\u30EB\u884C +From=From Preference-Grid_Line_Color=\u30B0\u30EA\u30C3\u30C9\u7DDA\u306E\u8272 -RowTo=\u884C\u304B\u3089\u7B2C\u307E\u3067 -FR-Designer_ReportColumns-Repeat_Column=\u5217\u9806\u5E8F\u3092\u30B3\u30D4\u30FC +RowTo=~ +FR-Designer_ReportColumns-Repeat_Column=\u5217\u306E\u9806\u5E8F\u3092\u30B3\u30D4\u30FC M_Server-Function_Manager=\u95A2\u6570\u30DE\u30CD\u30FC\u30B8\u30E3\u30FC KeyWord=\u30AD\u30FC\u30EF\u30FC\u30C9 DS-Multi_Dimensional_Database=\u591A\u6B21\u5143\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9 BiasD-Slope_Line=\u659C\u7DDA Tue=\u706B -ReportServerP-Last=\u7D42\u4E86\u9801 +ReportServerP-Last=\u6700\u7D42\u30DA\u30FC\u30B8 FR-Base_Columns=\u5217 -SpecifiedG-Leave_in_their_own_groups=\u5404\u30B0\u30EB\u30FC\u30D7\u5185\u306B\u4FDD\u7559\u3059\u308B -LOG-Please_Wait=\u5C11\u3005\u304A\u5F85\u3061\u304F\u3060\u3055\u3044 -Form-ToolBar=\u8868\u30C4\u30FC\u30EB\u30D0\u30FC -FR-Base_sure_remove_item=\u672C\u5F53\u306B\u9078\u629E\u3057\u305F\u9805\u76EE\u3092\u524A\u9664\u3057\u307E\u3059\u304B -Component_Scale=\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u30B9\u30B1\u30FC\u30EB -Hyperlink-Use_CJK_to_encode_parameter=CJK\u51E6\u7406\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC\u4F7F\u7528 -LOG-Has_Been_Openned=\u958B\u304D\u307E\u3057\u305F -FR-Designer-Dependence= +SpecifiedG-Leave_in_their_own_groups=\u5404\u81EA\u306E\u30B0\u30EB\u30FC\u30D7\u5185\u306B\u6B8B\u308B +LOG-Please_Wait=\u51E6\u7406\u4E2D +Form-ToolBar=\u30C0\u30C3\u30B7\u30E5\u30DC\u30FC\u30C9\u30C4\u30FC\u30EB\u30D0\u30FC +FR-Base_sure_remove_item=\u9078\u629E\u3057\u305F\u9805\u76EE\u3092\u524A\u9664\u3057\u307E\u3059\u304B +Component_Scale=\u30E2\u30B8\u30E5\u30FC\u30EB\u30BA\u30FC\u30E0 +Hyperlink-Use_CJK_to_encode_parameter=CJK\u3067\u30D1\u30E9\u30E1\u30FC\u30BF\u3092\u51E6\u7406 +LOG-Has_Been_Openned=\u8868\u793A +FR-Designer-Dependence=\u74B0\u5883\u4F9D\u5B58 ECP_error_pwd=\u30D1\u30B9\u30EF\u30FC\u30C9\u30A8\u30E9\u30FC -REPORTLET=\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u306E\u30EB\u30FC\u30C8\u306E\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC\u306B\u30A2\u30AF\u30BB\u30B9 -RWA-Column_Offset=\u5217\u30AA\u30D5\u30BB\u30C3\u30C8 +REPORTLET=\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u306E\u30D1\u30B9\u306B\u30A2\u30AF\u30BB\u30B9\u3059\u308B\u30D1\u30E9\u30E1\u30FC\u30BF +RWA-Column_Offset=\u5217\u306E\u30AA\u30D5\u30BB\u30C3\u30C8 Forecast=\u4E88\u6E2C -Light_Orange=\u660E\u308B\u3044\u30AA\u30EC\u30F3\u30B8 -StyleAlignment-Vertical=\u5782\u76F4\u63C3\u3048 -Form-List=\u30EA\u30B9\u30C8 -ParameterD-Show_Parameter_Window=\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC\u30A6\u30A4\u30F3\u30C9\u30A6\u3092\u8868\u793A\u3059\u308B -FR-Designer_Set_Submit_Event=\u63D0\u51FA\u30A4\u30D9\u30F3\u30C8\u3092\u8A2D\u5B9A -Value_Percent=\u5024\u5272\u5408\u4F8B -DBCP_MIN_EVICTABLE_IDLE_TIMEMILLIS=\u30A2\u30A4\u30C9\u30EB\u6700\u5C0F\u6642\u9593\u5024\u4FDD\u6301 -Function-The_class_must_be_located_in=\u5F53\u8A72\u30AF\u30E9\u30B9\u306F\u5B58\u5728\u3057\u306A\u3051\u308C\u3070\u306A\u308A\u307E\u305B\u3093 +Light_Orange=\u30E9\u30A4\u30C8\u30AA\u30EC\u30F3\u30B8 +StyleAlignment-Vertical=\u7E26\u4F4D\u7F6E +Form-List=\u4E00\u89A7 +ParameterD-Show_Parameter_Window=\u30D1\u30E9\u30E1\u30FC\u30BF\u30A6\u30A3\u30F3\u30C9\u30A6\u8868\u793A +FR-Designer_Set_Submit_Event=\u66F8\u304D\u8FBC\u307F\u30A4\u30D9\u30F3\u30C8\u8A2D\u5B9A +Value_Percent=\u5024\u306E\u30D1\u30FC\u30BB\u30F3\u30C6\u30FC\u30B8 +DBCP_MIN_EVICTABLE_IDLE_TIMEMILLIS=\u30A2\u30A4\u30C9\u30EB\u63A5\u7D9A\u306E\u751F\u5B58\u671F\u9593 +Function-The_class_must_be_located_in=\u30AF\u30E9\u30B9\u306E\u4F4D\u7F6E\uFF1A FR-Action_Sort=\u30BD\u30FC\u30C8 DataFunction-Average=\u5E73\u5747 -FR-Designer_Show_in_Containing_Folder=\u6240\u5728\u3059\u308B\u30D5\u30A1\u30A4\u30EB\u3092\u958B\u304F +FR-Designer_Show_in_Containing_Folder=\u30D5\u30A1\u30A4\u30EB\u306E\u5834\u6240\u3092\u958B\u304F M_File-Export-Excel=Excel DataFunction-Max=\u6700\u5927\u5024 -FR-Designer_Form-Widget_Name=\u30B3\u30F3\u30C8\u30ED\u30FC\u30EB\u540D -FS_End_Date=\u7D42\u4E86\u65E5\u671F -Export-Excel-Simple=\u5143 -ColumnTo=\u5217\u306F\u7B2C\u3000\u307E\u3067 -SpecifiedG-Discard_all_others=\u4ED6\u306E\u3059\u3079\u3066\u3092\u7834\u68C4\u3059\u308B -DS-TableData=\u30C7\u30FC\u30BF\u30BD\u30FC\u30B9 -Form-DataTable=\u30C7\u30FC\u30BF\u8868 -Sub_Report_ToolTips=\u5B50\u5E33\u7968\u63D0\u793A +FR-Designer_Form-Widget_Name=\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8\u540D +FS_End_Date=\u7D42\u4E86\u65E5\u6642 +Export-Excel-Simple=\u6A19\u6E96\u51FA\u529B +ColumnTo=~ +SpecifiedG-Discard_all_others=\u305D\u306E\u4ED6\u306E\u3059\u3079\u3066\u3092\u6368\u3066\u308B +DS-TableData=\u30C7\u30FC\u30BF\u30BB\u30C3\u30C8 +Form-DataTable=\u30C7\u30FC\u30BF\u30C6\u30FC\u30D6\u30EB +Sub_Report_ToolTips=\u5B50\u5E33\u7968\u30D2\u30F3\u30C8 Right_Top=\u53F3\u4E0A -M_Edit-Merge_Cell=\u30BB\u30EB\u3092\u7D50\u5408\u3059\u308B -FR-Designer_Restore_Default=\u30C7\u30D5\u30A9\u30EB\u30C8\u5FA9\u5143 -Component_Interval=\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u306E\u9593\u9694 -Cover_None=\u5168\u3066\u8986\u308F\u306A\u3044 -Datasource-From_Database=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u304B\u3089 -Folder=\u76EE\u6B21 -Form-Allow_Edit=\u76F4\u63A5\u7DE8\u96C6\u3042\u308A +M_Edit-Merge_Cell=\u30BB\u30EB\u7D50\u5408 +FR-Designer_Restore_Default=\u30C7\u30D5\u30A9\u30EB\u30C8\u306B\u623B\u3059 +Component_Interval=\u30E2\u30B8\u30E5\u30FC\u30EB\u9593\u9694 +Cover_None=\u5168\u3066\u4E0A\u66F8\u304D\u3057\u306A\u3044 +Datasource-From_Database=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u8868 +Folder=\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA +Form-Allow_Edit=\u7DE8\u96C6\u3092\u8A31\u53EF M_Edit-Clear=\u30AF\u30EA\u30A2(A) ParentCell_Setting=\u89AA\u30BB\u30EB\u8A2D\u5B9A -Only_selected_cell_can_paste_only=\u30BB\u30EB\u306F\u8CBC\u308A\u4ED8\u3051\u308B\u3053\u3068\u304C\u3067\u304D\u307E\u3059\u9078\u629E\u3055\u308C\u3066\u3044\u308B\u5834\u5408\u306B\u306E\u307F -M_Report-Report_Columns=\u5E33\u7968\u30B3\u30E9\u30E0 +Only_selected_cell_can_paste_only=\u30BB\u30EB\u304C\u9078\u629E\u3055\u308C\u3066\u304B\u3089\u8CBC\u308A\u4ED8\u3051\u3059\u308B\u3053\u3068\u304C\u3067\u304D\u308B +M_Report-Report_Columns=\u5E33\u7968\u30B5\u30D6\u30D5\u30A3\u30FC\u30EB\u30C9 Unit_Hundred=\u767E -FR-Designer_DataTable-Build= -Widget-Form_Widget_Config=\u8868\u30B3\u30F3\u30C8\u30ED\u30FC\u30EB -Server-version-tip-moreInfo=\u79C1\u305F\u3061\u306E\u88FD\u54C1\u306EFineReport Designer\u30D0\u30FC\u30B8\u30E7\u30F3\u756A\u53F7\u3060\u3051\u3067\u306A\u304F\u3001 -Actions=\u30A2\u30AF\u30B7\u30E7\u30F3 -FR-Designer-Dependence_Connect_Server_Error=connect error -High=\u9AD8 +FR-Designer_DataTable-Build=\u9AD8\u901F\u30EC\u30A4\u30E4\u30FC\u5225\u69CB\u7BC9 +Widget-Form_Widget_Config=\u30C0\u30C3\u30B7\u30E5\u30DC\u30FC\u30C9\u30A6\u30A3\u30B8\u30A7\u30C3\u30C8 +Server-version-tip-moreInfo=\u30D0\u30FC\u30B8\u30E7\u30F3\u306E\u4E0D\u4E00\u81F4\u306B\u3088\u308B\u554F\u984C\u30EA\u30B9\u30AF\u3092\u907F\u3051\u308B\u305F\u3081\u306B\u3001\u3042\u306A\u305F\u306E\u30C1\u30FC\u30E0\u306B\u3088\u3063\u3066\u4F7F\u7528\u3055\u308C\u308B\u5F53\u793E\u306EFineReport\u88FD\u54C1\u306E\u30C7\u30B6\u30A4\u30CA\u30FC\u30D0\u30FC\u30B8\u30E7\u30F3\u756A\u53F7\u53CA\u3073\u8A2D\u5B9A\u3055\u308C\u308B\u30B5\u30FC\u30D0\u306E\u30D0\u30FC\u30B8\u30E7\u30F3\u756A\u53F7\u3092\u30C1\u30A7\u30C3\u30AF\u3059\u308B\u3053\u3068\u3092\u304A\u52E7\u3081\u3044\u305F\u3057\u307E\u3059\u3002 n\u3088\u308A\u9AD8\u3044\u30C7\u30B6\u30A4\u30CA\u30FC\u306B\u3088\u3063\u3066\u4F5C\u6210\u3055\u308C\u305F\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u3092\u5229\u7528\u3059\u308B\u5834\u5408\u3001\u30A8\u30E9\u30FC\u767A\u751F\u3084\u3001\u5143\u306E\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u5C5E\u6027\u304C\u5931\u308F\u308C\u308B\u6050\u308C\u304C\u3042\u308A\u307E\u3059\u3002\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u4F5C\u6210\u7528\u306E\u30C7\u30B6\u30A4\u30CA\u30FC\u30D0\u30FC\u30B8\u30E7\u30F3\u304C\u3001\u6700\u7D42\u7684\u306A\u914D\u7F6E\u5148\u3067\u3042\u308B\u30B5\u30FC\u30D0\u306E\u30D0\u30FC\u30B8\u30E7\u30F3\u3088\u308A\u9AD8\u3044\u5834\u5408\u3001\u30B5\u30FC\u30D0\u30FC\u3067\u5229\u7528\u3055\u308C\u308B\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u306F\u6B63\u5E38\u306B\u52D5\u4F5C\u3057\u306A\u3044\u6050\u308C\u304C\u3042\u308A\u307E\u3059\u3002 +Actions=\u30BF\u30B9\u30AF +FR-Designer-Dependence_Connect_Server_Error=\u30B5\u30FC\u30D0\u306B\u63A5\u7D9A\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\u3001\u6642\u9593\u3092\u3042\u3051\u3066\u518D\u8A66\u884C\u3057\u3066\u304F\u3060\u3055\u3044\u3002 +High=\u9AD8\u3055 HJS-Send_Failed=\u9001\u4FE1\u5931\u6557 -HJS-Message=\u30E1\u30C3\u30BB\u30FC\u30B8\u5185\u5BB9 -File-Allow_Upload_Files=\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9\u304C\u8A31\u53EF\u3055\u308C\u305F\u30D5\u30A1\u30A4\u30EB\u30BF\u30A4\u30D7 +HJS-Message=\u5185\u5BB9 +File-Allow_Upload_Files=\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9\u3067\u304D\u308B\u30D5\u30A1\u30A4\u30EB\u30BF\u30A4\u30D7 FR-Designer-Form-ToolBar_Chart=\u30B0\u30E9\u30D5 -Thick_Bottom_Border_Line=\u7C97\u5E95\u30D5\u30EC\u30FC\u30E0\u30E9\u30A4\u30F3 +Thick_Bottom_Border_Line=\u4E0B\u592A\u7F6B\u7DDA FR-Action_Remove=\u524A\u9664 -FRFont-Style=\u30B9\u30BF\u30A4\u30EB -Select_DataColumn=\u30C7\u30FC\u30BF\u5217\u3092\u9078\u629E +FRFont-Style=\u30D5\u30A9\u30F3\u30C8 +Select_DataColumn=\u30C7\u30FC\u30BF\u5217\u9078\u629E StartValue=\u958B\u59CB\u5024 -SINGLE_FILE_UPLOAD=\u5358\u72EC\u30D5\u30A1\u30A4\u30EB\u306E\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9\u306E\u307F\u30B5\u30DD\u30FC\u30C8 -BackgroundTexture-Cork=\u30B3\u30EB\u30AF\u6813 -M_Format-Data_Map=\u30C7\u30FC\u30BF\u30DE\u30C3\u30D7 -FR-mobile_native_analysis=\u4E00\u6B21\u89E3\u6790 +SINGLE_FILE_UPLOAD=\u5358\u4E00\u30D5\u30A1\u30A4\u30EB\u306E\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9\u306E\u307F\u30B5\u30DD\u30FC\u30C8 +BackgroundTexture-Cork=\u30B3\u30EB\u30AF +M_Format-Data_Map=\u30C7\u30FC\u30BF\u8F9E\u66F8 +FR-mobile_native_analysis=\u30CD\u30A4\u30C6\u30A3\u30D6\u89E3\u6790 HighLight=\u30CF\u30A4\u30E9\u30A4\u30C8 -FR-Designer_Dropdown-More-Preview=\u4E0B\u62C9\u83B7\u53D6\u66F4\u591A\u9884\u89C8\u65B9\u5F0F +FR-Designer_Dropdown-More-Preview=\u30D7\u30EB\u30C0\u30A6\u30F3\u3067\u66F4\u306A\u308B\u30D7\u30EC\u30D3\u30E5\u30FC\u65B9\u5F0F\u3092\u53D6\u5F97 local=\u30ED\u30FC\u30AB\u30EB -FR-Designer_Gradation=\u69CB\u6210 -PageSetup-Finis_Start_Column=\u91CD\u8907\u3059\u308B\u7D42\u4E86\u5217 -Env-Invalid_User_and_Password=\u7121\u52B9\u306A\u30E6\u30FC\u30B6\u540D\u307E\u305F\u306F\u30D1\u30B9\u30EF\u30FC\u30C9\u3067\u3059 -FR-Designer-Plugin_All_Plugins=\u5168\u3066\u306E\u30D7\u30E9\u30B0\u30A4\u30F3 +FR-Designer_Gradation=\u30EC\u30D9\u30EB +PageSetup-Finis_Start_Column=\u7E70\u308A\u8FD4\u3057\u7D42\u4E86\u5217 +Env-Invalid_User_and_Password=\u7121\u52B9\u306A\u30E6\u30FC\u30B6\u30FCID\u3084\u30D1\u30B9\u30EF\u30FC\u30C9 +FR-Designer-Plugin_All_Plugins=\u3059\u3079\u3066\u306E\u30D7\u30E9\u30B0\u30A4\u30F3 FR-Designer_Prepare_Export=\u5C0E\u51FA\u3092\u958B\u59CB\u3057\u3066\u3044\u307E\u3059\u3002\u304A\u5F85\u3061\u304F\u3060\u3055\u3044 -DBCP_TEST_ON_RETURN=\u63A5\u7D9A\u524D\u691C\u67FB\u306B\u623B\u308B -no-alternatives=\u5168\u304F\u9078\u629E\u80A2\u304C\u3042\u308A\u307E\u305B\u3093 -FR-Designer_Submmit_WClass=\u30AB\u30B9\u30BF\u30E0\u9001\u4FE1 +DBCP_TEST_ON_RETURN=\u63A5\u7D9A\u306E\u8FD4\u5374\u524D\u306B\u63A5\u7D9A\u6709\u52B9\u6027\u3092\u691C\u8A3C +no-alternatives=\u30AA\u30D7\u30B7\u30E7\u30F3\u306A\u3057 +FR-Designer_Submmit_WClass=\u30AF\u30E9\u30B9\u66F8\u304D\u8FBC\u307F M_Insert-Slope_Line=\u659C\u7DDA FR-Designer-Plugin_Plugin_Description=\u30D7\u30E9\u30B0\u30A4\u30F3\u8AAC\u660E -ExpandD-Not_Expand=\u62E1\u5F35\u3057\u306A\u3044 -Utils-Bottom_to_Top=\u4E0B\u304B\u3089\u4E0A\u3078 -Collect-Click\!_Get_user_information_code=\u30AF\u30EA\u30C3\u30AF\u3057\u3066\!\u30A2\u30AF\u30C6\u30A3\u30D9\u30FC\u30C8\u30B3\u30FC\u30C9\u3092\u53D6\u5F97 -FR-Already_exist=\u73FE\u5728\u306E\u74B0\u5883\u306B\u306F\u5B58\u5728\u3057\u3066\u3044\u307E\u3059\: -Send=\u767A\u9001 -M_Edit-Clear_All=\u5168\u3066\u30AF\u30EA\u30A2(A) -Brown_Orange=\u30D6\u30E9\u30A6\u30F3 +ExpandD-Not_Expand=\u5C55\u958B\u3057\u306A\u3044 +Utils-Bottom_to_Top=\u4E0B\u304B\u3089\u4E0A +Collect-Click\!_Get_user_information_code=\u30AF\u30EA\u30C3\u30AF\!\u30A2\u30AF\u30C6\u30A3\u30D9\u30FC\u30B7\u30E7\u30F3\u30B3\u30FC\u30C9\u3092\u53D6\u5F97 +FR-Already_exist=\u304A\u4F7F\u3044\u306E\u74B0\u5883\u306B\u3059\u3067\u306B\u3042\u308A\u307E\u3059\: +Send=\u8EE2\u9001 +M_Edit-Clear_All=\u3059\u3079\u3066(A) +Brown_Orange=\u30AB\u30FC\u30AD PageSetup-Portrait=\u7E26\u65B9\u5411 FR-Designer_Form-RadioGroup=\u30E9\u30B8\u30AA\u30DC\u30BF\u30F3\u30B0\u30EB\u30FC\u30D7 -FR-Utils-App_AllFiles=\u5168\u3066\u306E\u30D5\u30A1\u30A4\u30EB -Popup=\u30DD\u30C3\u30D7\u30A2\u30C3\u30D7 -Server_Charset=\u30B5\u30FC\u30D0\u30B3\u30FC\u30C7\u30A3\u30F3\u30B0 -CellWrite-Repeat_Content_When_Paging=\u6539\u9801\u3059\u308B\u6642\u7E70\u308A\u8FD4\u3057\u624B\u8868\u793A\u3059\u308B +FR-Utils-App_AllFiles=\u3059\u3079\u3066\u306E\u30D5\u30A1\u30A4\u30EB +Popup=\u8868\u793A +Server_Charset=\u30B5\u30FC\u30D0\u30B3\u30FC\u30C9 +CellWrite-Repeat_Content_When_Paging=\u6539\u30DA\u30FC\u30B8\u6642\u7E70\u308A\u8FD4\u3057\u8868\u793A Utils-No_Pagination=\u6539\u30DA\u30FC\u30B8\u3057\u306A\u3044 -Form-NullLayout=\u7D76\u5BFE\u5B9A\u4F4D -ConditionB-Remove_bracket=\u62EC\u5F27\u3092\u524A\u9664\u3059\u308B +Form-NullLayout=\u7D76\u5BFE\u914D\u7F6E +ConditionB-Remove_bracket=\u62EC\u5F27\u3092\u524A\u9664 email=\u30E1\u30FC\u30EB\u30DC\u30C3\u30AF\u30B9 -Minute=\u5206\u9593 -FR-Designer-Plugin_Update=\u30D7\u30E9\u30B0\u30A4\u30F3\u66F4\u65B0 -alraedy_close=\u3059\u3067\u306B\u30AA\u30D5 -ComboCheckBox-End_Symbol=\u7D42\u7D50\u6587\u5B57 +Minute=\u5206 +FR-Designer-Plugin_Update=\u30D7\u30E9\u30B0\u30A4\u30F3\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8 +alraedy_close=\u9589\u3081\u305F +ComboCheckBox-End_Symbol=\u7D42\u4E86\u6587\u5B57 DataColumn=\u30C7\u30FC\u30BF\u5217 Form-Password=\u30D1\u30B9\u30EF\u30FC\u30C9 -FR-Background_Image_Adjust=\u9069\u5FDC -Export-Excel-PageToSheet=\u30B7\u30FC\u30C8 +FR-Background_Image_Adjust=\u8ABF\u6574 +Export-Excel-PageToSheet=1\u30DA\u30FC\u30B81\u30B7\u30FC\u30C8\u51FA\u529B Edit-Row_Count=\u884C\u6570 DS-Report_TableData=\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u30C7\u30FC\u30BF\u30BB\u30C3\u30C8 Sche-Hour=\u6642 -Group_Count=\u7DCF\u6570\u8868\u793A +Group_Count=\u7DCF\u500B\u6570\u8868\u793A EndValue=\u7D42\u4E86\u5024 FR-Designer_Sytle-Indentation=\u30A4\u30F3\u30C7\u30F3\u30C8 DownBarBorderStyleAndColor=\u30D5\u30A9\u30FC\u30EB\u30AB\u30E9\u30E0\u30B9\u30BF\u30A4\u30EB World=\u4E16\u754C FR-Designer-Basic_Cancel=\u30AD\u30E3\u30F3\u30BB\u30EB Finally=\u6700\u5F8C -Low=\u4F4E -Please_Input_The_Key=\u5BFE\u5FDC\u3059\u308B\u30DE\u30C3\u30D7\u306B\u4F7F\u7528\u3059\u308Bkey\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044 -Smart=\u30A4\u30F3\u30C6\u30EA\u30B8\u30A7\u30F3\u30C8 -Preference-Predefined=\u30D7\u30EC\u5B9A\u7FA9 -Current_custom_global=\u73FE\u5728\u306E\u5E33\u7968\u304C\u7528\u3044\u308B\u30AB\u30B9\u30BF\u30DE\u30A4\u30BA\u5168\u5C40\u30B9\u30BF\u30A4\u30EB -FR-Designer-Plugin_Shop_Need_Install=\u3042\u306A\u305F\u304C\u30A2\u30C9\u30AA\u30F3\u3055\u308C\u3066\u3044\u306A\u3044\u30EA\u30BD\u30FC\u30B9\u306E\u5E97\u8217\u3092\u3001\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9\u3059\u308B\u304B\u3069\u3046\u304B\uFF1F -WEB-Pagination_Setting=\u30DA\u30FC\u30B8\u5225\u30D7\u30EC\u30D3\u30E5\u30FC\u8A2D\u5B9A +Low=\u4F4E\u3044 +Please_Input_The_Key=\u5BFE\u5FDC\u306E\u30DE\u30C3\u30D7\u306B\u4F7F\u308F\u308C\u308B\u30AD\u30FC\u3092\u5165\u529B\u3057\u3066\u4E0B\u3055\u3044 +Smart=\u30B9\u30DE\u30FC\u30C8 +Preference-Predefined=\u4E8B\u524D\u5B9A\u7FA9 +Current_custom_global=\u73FE\u5728\u30AB\u30B9\u30BF\u30E0\u30B0\u30ED\u30FC\u30D0\u30EB\u30B9\u30BF\u30A4\u30EB +FR-Designer-Plugin_Shop_Need_Install=\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9\u3057\u307E\u3059\u304B? +WEB-Pagination_Setting=\u6539\u30DA\u30FC\u30B8\u30D7\u30EC\u30D3\u30E5\u30FC\u8A2D\u5B9A RCodeDrawPix=\u753B\u7D20 FR-Designer-Widget-Style_Alpha=\u4E0D\u900F\u660E\u5EA6 BorderLayout-North=\u5317 -HJS-Current_Page=\u30AB\u30EC\u30F3\u30C8\u30DA\u30FC\u30B8 -Compile=\u7DE8\u96C6\u7FFB\u8A33 -Show_Blank_Row=\u7A7A\u767D\u884C\u3092\u88DC\u5145 -TableData_Dynamic_Parameter_Setting=\u30C0\u30A4\u30CA\u30DF\u30C3\u30AF\u30D1\u30E9\u30E1\u30FC\u30BF +HJS-Current_Page=\u73FE\u5728\u306E\u30DA\u30FC\u30B8 +Compile=\u30B3\u30F3\u30D1\u30A4\u30EB +Show_Blank_Row=\u7A7A\u767D\u884C\u88DC\u5145 +TableData_Dynamic_Parameter_Setting=\u52D5\u7684\u30D1\u30E9\u30E1\u30FC\u30BF\u6CE8\u5165 FR-Background_Image_Default=\u30C7\u30D5\u30A9\u30EB\u30C8 -BackgroundTexture-WhiteMarble=\u767D\u3044\u5927\u7406\u77F3 +BackgroundTexture-WhiteMarble=\u5927\u7406\u77F3(\u767D) DataFunction-Sum=\u5408\u8A08 -Collect-The_user_information_code_is_invalid=\u3053\u306E\u30A2\u30AF\u30C6\u30A3\u30D9\u30FC\u30C8\u30B3\u30FC\u30C9\u306F\u7121\u52B9\u3067\u3059\u3002\u516C\u5F0F\u30DB\u30FC\u30E0\u30DA\u30FC\u30B8\u3067\u7533\u8ACB\u3057\u306A\u304A\u3057\u3066\u304F\u3060\u3055\u3044 -Preference-Locale=\u56FD\u969B\u5316 +Collect-The_user_information_code_is_invalid=\u3053\u306E\u30A2\u30AF\u30C6\u30A3\u30D9\u30FC\u30B7\u30E7\u30F3\u30B3\u30FC\u30C9\u306F\u7121\u52B9\u3067\u3059\u3001\u516C\u5F0F\u30B5\u30A4\u30C8\u3067\u7533\u8ACB\u3057\u3066\u304F\u3060\u3055\u3044 +Preference-Locale=\u30B0\u30ED\u30FC\u30D0\u30EB\u5316 M_File-Export-PDF=PDF -BiasD-From-lower_left_to_upper_right=\u5DE6\u4E0B\u5074\u304B\u3089\u53F3\u4E0A\u5074\u3078\u5E83\u304C\u308B -Border-Style=\u67A0\u7DDA\u306E\u30B9\u30BF\u30A4\u30EB +BiasD-From-lower_left_to_upper_right=\u5DE6\u4E0B\u5074\u304B\u3089\u53F3\u4E0A\u5074\u3078 +Border-Style=\u67A0\u306E\u30B9\u30BF\u30A4\u30EB Sort=\u30BD\u30FC\u30C8 -Image-Image_Layout=\u30A4\u30E1\u30FC\u30B8\u30EC\u30A4\u30A2\u30A6\u30C8 +Image-Image_Layout=\u753B\u50CF\u30EC\u30A4\u30A2\u30A6\u30C8 Panel=\u30D1\u30CD\u30EB -FR-Designer-Basic_Copy_Build_NO_OK=\u7D44\u307F\u7ACB\u3066\u30D0\u30FC\u30B8\u30E7\u30F3\u756A\u53F7\u306B\u30B3\u30D4\u30FC\u3057\u307E\u3057\u305F -All_Border_Line=\u3059\u3079\u3066\u306E\u5883\u754C -FR-Utils-Please_Input_a_New_Name=\u65B0\u3057\u3044\u540D\u79F0\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044 +FR-Designer-Basic_Copy_Build_NO_OK=\u30D3\u30EB\u30C9\u756A\u53F7\u306F\u65E2\u306B\u30AF\u30EA\u30C3\u30D7\u30DC\u30FC\u30C9\u306B\u30B3\u30D4\u30FC +All_Border_Line=\u67A0\u7DDA +FR-Utils-Please_Input_a_New_Name=\u65B0\u3057\u3044\u540D\u524D\u3092\u5165\u529B\u3057\u3066\u4E0B\u3055\u3044 FR-Base_Formula_Plugin=\u30D7\u30E9\u30B0\u30A4\u30F3\u95A2\u6570 -Two_Rows_Of_Three_Grid=3\u30BB\u30EB\u306E\u4E8C\u5217 -FR-Designer_Certificate_Pass=https\u30B7\u30FC\u30AF\u30EC\u30C3\u30C8\u30AD\u30FC +Two_Rows_Of_Three_Grid=2\u884C3\u5217\u306E\u30B0\u30EA\u30C3\u30C9 +FR-Designer_Certificate_Pass=https\u306E\u9375 Bubble-Series_Name=\u7CFB\u5217\u540D -M-New_Multi_Report=\u7D71\u8A08\u5E33\u7968\u3092\u65B0\u898F\u4F5C\u6210(M) +M-New_Multi_Report=\u30D6\u30ED\u30C3\u30AF\u5E33\u7968\u65B0\u898F\u4F5C\u6210(M) BackgroundTexture-PinkTissuePaper=\u30D4\u30F3\u30AF\u306E\u753B\u7528\u7D19 Preference-Support_Default_Parent_Calculate=\u30C7\u30D5\u30A9\u30EB\u30C8\u89AA\u30BB\u30EB\u306E\u8A08\u7B97 Show_Blank_Column=\u7A7A\u767D\u5217\u88DC\u5145 -BaiduMap=\u767E\u5EA6\u30DE\u30C3\u30D7 +BaiduMap=\u767E\u5EA6\u5730\u56F3 Report-Web_Attributes=\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8Web\u5C5E\u6027 FR-Designer_StyleAlignment-Wrap_Text=\u81EA\u52D5\u6539\u884C Need=\u5FC5\u8981 @@ -1946,11 +1945,11 @@ ServerM-Predefined_Styles=\u4E8B\u524D\u5B9A\u7FA9\u30B9\u30BF\u30A4\u30EB is_need_word_adjust=\u51FA\u529B\u6642\u306B\u3001\u884C\u306E\u9AD8\u3055\u3092\u56FA\u5B9A\u3057\u306A\u3044 Background-Null=\u80CC\u666F\u306A\u3057 PageSetup-Vertically=\u5782\u76F4\u4E2D\u592E\u63C3\u3048 -FR-Designer_Root=\u30EB\u30FC\u30C8\u30CE\u30FC\u30C9 +FR-Designer_Root=\u30EB\u30FC\u30C4\u30CE\u30FC\u30C9 FR-Designer_Form-TextArea=\u30C6\u30AD\u30B9\u30C8\u30A8\u30EA\u30A2 ReportServerP-Import_JavaScript=JavaScript\u53C2\u7167 -Form-TableTree=\u30C6\u30FC\u30D6\u30EB\u30C4\u30EA\u30FC -Opened=\u6709\u52B9\u306B\u306A\u3063\u3066\u3044\u307E\u3059 +Form-TableTree=\u8868\u30C4\u30EA\u30FC +Opened=\u3059\u3067\u306B\u6709\u52B9\u5316\u306B M_Edit-Delete=\u524A\u9664(D) Widget-Form_Widget_Container=\u30C0\u30C3\u30B7\u30E5\u30DC\u30FC\u30C9\u30B3\u30F3\u30C6\u30CA BindColumn-Summary=\u96C6\u8A08 @@ -1958,17 +1957,17 @@ Sche-Second=\u79D2 Server-Open_Service_Manager=\u30B5\u30FC\u30D3\u30B9\u30DE\u30CD\u30FC\u30B8\u30E3\u3092\u958B\u304F FRFont-Effects=\u6587\u5B57\u98FE\u308A OtherGroup_Name=\u4ED6\u306E\u30B0\u30EB\u30FC\u30D7\u540D -Specify=\u6307\u5B9A\u3059\u308B +Specify=\u6307\u5B9A Highlight-Click_to_Choose_Property_To_Modify=\u5909\u3048\u305F\u3044\u5C5E\u6027\u3092\u30AF\u30EA\u30C3\u30AF\u3057\u3066\u9078\u629E triggered=\u89E6\u767A\u3055\u308C\u305F Double_Bottom_BorderLine=\u4E0B\u4E8C\u91CD\u7F6B\u7DDA -M_Insert-Sub_Report=\u30B5\u30D6\u5E33\u7968 +M_Insert-Sub_Report=\u5B50\u5E33\u7968 Unit_Ten=\u5341 Polybolck=\u30D6\u30ED\u30C3\u30AF Select_sort_order=\u30BD\u30FC\u30C8\u9806\u9078\u629E HJS-Mail_to=\u5B9B\u5148 StyleAlignment-Left=\u5DE6\u63C3\u3048 -Two_Rows_Of_Two_Grid=2\u884C2\u5217\u306E\u30BB\u30EB +Two_Rows_Of_Two_Grid=2\u884C2\u5217\u306E\u30B0\u30EA\u30C3\u30C9 FR-Designer-Form-Please_Drag_ParaPane=\u30D1\u30E9\u30E1\u30FC\u30BF\u30D1\u30CD\u30EB\u306B\u30C9\u30E9\u30C3\u30B0\u3057\u3066\u4E0B\u3055\u3044 Milliseconds=\u30DF\u30EA\u79D2 DataFunction-None=\u306A\u3057 @@ -1979,10 +1978,10 @@ Read_failure=\u8AAD\u307F\u53D6\u308A\u5931\u6557\u3002\u30BD\u30FC\u30B9\u30D5\ Verify-Verify=\u30C7\u30FC\u30BF\u691C\u8A3C FR-Designer-Widget-Style_Title_Format=\u30BF\u30A4\u30C8\u30EB\u66F8\u5F0F FR-Designer_Edit_String_To_Formula=\u6587\u5B57\u5217\u3092\u6570\u5F0F\u306B\u7DE8\u96C6\u3059\u308B\u304B -FR-Base_UnSignIn=\ \u672A\u30ED\u30B0\u30A4\u30F3 -Every=\u5404 -CellWrite-Preview_Cell_Content=\u30BB\u30EB\u306E\u5185\u5BB9\u3092\u30D7\u30EC\u30D3\u30E5\u30FC\u3059\u308B -FormulaD-Data_Fields=\u30C7\u30FC\u30BF\u30D5\u30A3\u30FC\u30EB\u30C9 +FR-Base_UnSignIn=\ \u672A\u30ED\u30B0\u30A4\u30F3 +Every=\u6BCE +CellWrite-Preview_Cell_Content=\u30BB\u30EB\u5185\u5BB9 +FormulaD-Data_Fields=\u30C7\u30FC\u30BF\u9805\u76EE FR-Designer_Permissions=\u6A29\u9650 FR-Designer_Form_Button=\u30DC\u30BF\u30F3 FR-Designer_WF_Name=\u540D\u79F0 diff --git a/designer_base/src/com/fr/design/locale/designer_ko_KR.properties b/designer_base/src/com/fr/design/locale/designer_ko_KR.properties index c0f6fbdb76..dfda9c4c93 100644 --- a/designer_base/src/com/fr/design/locale/designer_ko_KR.properties +++ b/designer_base/src/com/fr/design/locale/designer_ko_KR.properties @@ -1,4 +1,3 @@ -# 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 @@ -12,7 +11,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=\uC0C9\uB354\uBCF4\uAE30... +FR-Designer-Basic_More_Color=\uB354\uBCF4\uAE30\uC0C9 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 @@ -76,7 +75,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 @@ -106,7 +105,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=\uC0C9 +FR-Designer_Foreground=\uBE44\uC804 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) @@ -162,7 +161,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=\uC140\uB098\uB204\uAE30 +FR-Designer_ReportColumns-Columns=\uC5F4\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 @@ -454,7 +453,7 @@ FR-Designer_Data_Analysis_Settings=\uB370\uC774\uD130\uBD84\uC11D\uC124\uC815 FR-Designer_Browser_Background=\uC6F9\uBE0C\uB77C\uC6B0\uC800\uBC30\uACBD FR-Designer_Import_Css=Css\uC778\uC6A9 FR-Designer_Import_JavaScript=JavaScript\uC778\uC6A9 -FR-Designer-Datasource-Param_DES= , "${abc}"\uB97C\uB9E4\uAC1C\uBCC0\uC218\uB85C\uC785\uB825\uD560\uC218\uC788\uC73C\uBA70,abc\uB294\uB9E4\uAC1C\uBCC0\uC218\uC758\uBA85\uCE6D\uC785\uB2C8\uB2E4. \uC608\uFF1A
 select * from table where id\='${abc}'. (id\uD544\uB4DC\uAC00\uBB38\uC790\uC5F4\uC720\uD615\uC77C\uACBD\uC6B0) +FR-Designer-Datasource-Param_DES= , "${abc}"\uB97C\uB9E4\uAC1C\uBCC0\uC218\uB85C\uC785\uB825\uD560\uC218\uC788\uC73C\uBA70,abc\uB294\uB9E4\uAC1C\uBCC0\uC218\uC758\uBA85\uCE6D\uC785\uB2C8\uB2E4. \uC608\uFF1A
 select * from table where id\ FR-Designer-DS-Database_Query=\uB370\uC774\uD130\uBCA0\uC774\uC2A4\uCC3E\uC544\uBCF4\uAE30 FR-Designer_Is_Share_DBTableData=\uB370\uC774\uD130\uC138\uD2B8\uACF5\uC720 FR-Designer-LayerPageReport_PageQuery=\uD398\uC774\uC9C0\uB098\uB204\uAE30\uCC3E\uC544\uBCF4\uAE30 @@ -471,7 +470,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= +FR-Designer_JavaScript=\uC790\uBC14\uC2A4\uD06C\uB9BD\uD2B8 FR-Designer_JavaScript_Form_Submit= FR-Designer_JavaScript_Commit_to_Database= FR-Designer_JavaScript_Custom= @@ -484,7 +483,7 @@ FR-Designer_Attribute= FR-Designer_Form_Editing_Listeners= FR-Designer_Form_Basic_Properties= FR-Designer_DS_Dictionary= -FR-Designer_Create_Tree= +FR-Designer_Create_Tree=\uD2B8\uB9AC\uC0DD\uC131 FR-Designer_Set_Callback_Function= FR-Designer_ConfirmDialog_Content= FR-Designer_ConfirmDialog_Title= diff --git a/designer_base/src/com/fr/design/locale/designer_zh_CN.properties b/designer_base/src/com/fr/design/locale/designer_zh_CN.properties index a110fc2f64..1347e7ec39 100644 --- a/designer_base/src/com/fr/design/locale/designer_zh_CN.properties +++ b/designer_base/src/com/fr/design/locale/designer_zh_CN.properties @@ -1,4 +1,3 @@ -# 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 @@ -12,7 +11,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 @@ -76,7 +75,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 @@ -96,7 +95,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\u677F +FR-Designer_FS_Close_Other_Templates=\u5173\u95ED\u5176\u4ED6\u6A21\u7248 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 @@ -106,7 +105,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=\u989C\u8272 +FR-Designer_Foreground=\u524D\u666F 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) @@ -163,7 +162,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=\u5206\u680F +FR-Designer_ReportColumns-Columns=\u5217\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 @@ -358,7 +357,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, \u63D2\u4EF6\u9700\u6C42\u6700\u4F4E\u7248\u672C +FR-Designer-Plugin_Please_Update_Jar=\u8BF7\u66F4\u65B0Jar\u5305\u81F3\: FR-Designer-Invalid_Page_Number=\u65E0\u6548\u9875\u7801 FR-Designer_Get-CubeGetting=\u83B7\u53D6cube FR-Designer_XMLA_Database=\u6570\u636E\u5E93 @@ -485,7 +484,7 @@ FR-Designer_Data_Analysis_Settings=\u6570\u636E\u5206\u6790\u8BBE\u7F6E FR-Designer_Browser_Background=\u6D4F\u89C8\u5668\u80CC\u666F FR-Designer_Import_Css=\u5F15\u7528Css FR-Designer_Import_JavaScript=\u5F15\u7528JavaScript -FR-Designer-Datasource-Param_DES= \u60A8\u53EF\u4EE5\u952E\u5165"${abc}"\u505A\u4E3A\u4E00\u4E2A\u53C2\u6570\uFF0C\u8FD9\u91CCabc\u662F\u53C2\u6570\u7684\u540D\u79F0\u3002\u4F8B\u5982\uFF1A
 select * from table where id\=${abc}\u3002
 select * from table where id\='${abc}'\u3002(\u5982\u679Cid\u5B57\u6BB5\u4E3A\u5B57\u7B26\u4E32\u7C7B\u578B) +FR-Designer-Datasource-Param_DES= \u60A8\u53EF\u4EE5\u952E\u5165"${abc}"\u505A\u4E3A\u4E00\u4E2A\u53C2\u6570\uFF0C\u8FD9\u91CCabc\u662F\u53C2\u6570\u7684\u540D\u79F0\u3002\u4F8B\u5982\uFF1A
 select * from table where id\ FR-Designer-DS-Database_Query=\u6570\u636E\u5E93\u67E5\u8BE2 FR-Designer-LayerPageReport_PageQuery=\u5206\u9875\u67E5\u8BE2 FR-Designer-LayerPageReport_Define_PageQuerySQL=\u5B9A\u4E49\u5206\u9875\u67E5\u8BE2sql diff --git a/designer_base/src/com/fr/design/locale/designer_zh_TW.properties b/designer_base/src/com/fr/design/locale/designer_zh_TW.properties index 0ad9d28a15..6680c4e265 100644 --- a/designer_base/src/com/fr/design/locale/designer_zh_TW.properties +++ b/designer_base/src/com/fr/design/locale/designer_zh_TW.properties @@ -1,4 +1,3 @@ -# 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 @@ -12,7 +11,7 @@ FR-Designer-BBSLogin_Switch-Account=\u5207\u63DB\u5E33\u865F FR-Designer-BBSLogin_Privite-Message=\u79C1\u4EBA\u8A0A\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=More colors FR-Designer-Estate_Any=\u4E0D\u9650 FR-Designer-Estate_Default_Font=\u9810\u8A2D\u5B57\u9AD4 FR-Designer-Estate_Default_Null=\u9810\u8A2D\u70BA\u7A7A @@ -106,7 +105,7 @@ 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=\u984F\u8272 +FR-Designer_Foreground=\u5B57\u5F62\u8272\u5F69 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 @@ -122,7 +121,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=\u8F38\u5165\u898F\u5247 +FR-Designer_Input_Rule=\u586B\u5BEB\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 @@ -152,7 +151,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=\u7576\u4E0B +FR-Designer_Present=\u6A21\u5F0F FR-Designer_Preview=\u9810\u89BD FR-Designer_Preview-Data-Confusion=\u6DF7\u6DC6\u8CC7\u6599\u9810\u89BD FR-Designer_Product_Demo=\u7522\u54C1\u5C55\u793A @@ -162,9 +161,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=\u5831\u8868\u6B04\u4F4D +FR-Designer_ReportColumns-Columns=\u6B04\u5206\u6B04 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 @@ -195,7 +194,7 @@ 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=\u5C0F\u5DE5\u5177 +FR-Designer_Widget=\u63A7\u5236\u9805 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\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 @@ -357,7 +356,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, \u63D2\u4EF6\u9700\u6C42\u6700\u4F4E\u7248\u672C +FR-Designer-Plugin_Please_Update_Jar=\u8ACB\u66F4\u65B0Jar\u5305\u81F3\: FR-Designer-Invalid_Page_Number=\u7121\u6548\u9801\u78BC FR-Designer_Get-CubeGetting=\u7372\u53D6cube FR-Designer_XMLA_Database=\u8CC7\u6599\u5EAB @@ -473,7 +472,7 @@ FR-Designer_Data_Analysis_Settings=\u8CC7\u6599\u5206\u6790\u8A2D\u5B9A FR-Designer_Browser_Background=\u700F\u89BD\u5668\u80CC\u666F FR-Designer_Import_Css=\u5F15\u7528Css FR-Designer_Import_JavaScript=\u5F15\u7528JavaScript -FR-Designer-Datasource-Param_DES= \u60A8\u53EF\u4EE5\u9375\u5165"${abc}"\u505A\u70BA\u4E00\u500B\u53C3\u6578\uFF0C\u9019\u91CCabc\u662F\u53C3\u6578\u7684\u540D\u7A31\u3002\u4F8B\u5982\uFF1A
 select * from table where idDatasource-Procedurewaring\=\u7CFB\u7D71\u4E0D\u80FD\u81EA\u52D5\u7372\u53D6\u8A72\u5B58\u5132\u7A0B\u5E8F\u7684\u53C3\u6578\uFF0C\u8ACB\u624B\u52D5\u65B0\u589E\! +FR-Designer-Datasource-Param_DES= \u60A8\u53EF\u4EE5\u9375\u5165"${abc}"\u505A\u70BA\u4E00\u500B\u53C3\u6578\uFF0C\u9019\u91CCabc\u662F\u53C3\u6578\u7684\u540D\u7A31\u3002\u4F8B\u5982\uFF1A
 select * from table where idDatasource-Procedurewaring\ FR-Designer-DS-Database_Query=\u8CC7\u6599\u5EAB\u67E5\u8A62 FR-Designer-LayerPageReport_PageQuery=\u5206\u9801\u67E5\u8A62 FR-Designer-LayerPageReport_Define_PageQuerySQL=\u5B9A\u7FA9\u5206\u9801\u67E5\u8A62sql @@ -1358,7 +1357,7 @@ 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\u5EFA\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 From bc4c93cdd666feaeae36ef64a4f654642b908557 Mon Sep 17 00:00:00 2001 From: plough Date: Wed, 10 May 2017 11:34:02 +0800 Subject: [PATCH 72/72] =?UTF-8?q?=E5=9B=BD=E9=99=85=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../design/locale/designer_zh_TW.properties | 124 +++++++++--------- 1 file changed, 62 insertions(+), 62 deletions(-) diff --git a/designer_base/src/com/fr/design/locale/designer_zh_TW.properties b/designer_base/src/com/fr/design/locale/designer_zh_TW.properties index 6680c4e265..8e9eeb4a14 100644 --- a/designer_base/src/com/fr/design/locale/designer_zh_TW.properties +++ b/designer_base/src/com/fr/design/locale/designer_zh_TW.properties @@ -11,7 +11,7 @@ FR-Designer-BBSLogin_Switch-Account=\u5207\u63DB\u5E33\u865F FR-Designer-BBSLogin_Privite-Message=\u79C1\u4EBA\u8A0A\u606F FR-Designer-BBSLogin_Times=\u6B21 FR-Designer-BBSLogin_Username-Empty-Tip=\u4F7F\u7528\u8005\u70BA\u7A7A\u63D0\u793A -FR-Designer-Basic_More_Color=More colors +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 @@ -610,7 +610,7 @@ 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=Key has been copy to clipboard +FR-Designer-Basic_Activation_Key_Copy_OK=\u5DF2\u8907\u88FD\u5230\u526A\u8CBC\u677F Utils-Current_Sheet=\u7576\u524D\u7684Sheet ConditionB-is_less_than=\u5C0F\u65BC BorderLayout-West=\u897F @@ -623,13 +623,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=Warning +FR-Designer_Plugin_Should_Update_Title=\u63D2\u4EF6\u5347\u7D1A\u63D0\u9192 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=Install plugin from local file +FR-Designer-Plugin_Install_From_Local=\u5F9E\u672C\u5730\u6587\u4EF6\u5B89\u88DD 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 +637,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=Detecting update +FR-Designer-Plugin_Detecting_Update=\u6B63\u5728\u6AA2\u6E2C\u66F4\u65B0 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=Search +FR-Designer-Plugin_Search=\u641C\u7D22 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 @@ -675,7 +675,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= +FR-Designer-Basic_Only_Submit_Current_Sheet=\u53EA\u63D0\u4EA4\u7576\u524Dsheet Sort-Sort_Order=\u6392\u5217\u9806\u5E8F File-File_Size_Limit=\u6A94\u6848\u5927\u5C0F\u9650\u5236 PrintP-Print=\u5217\u5370(T) @@ -684,7 +684,7 @@ 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=Update from local file +FR-Designer_Plugin_Normal_Update_From_Local=\u5F9E\u672C\u5730\u6A94\u6848\u66F4\u65B0 BackgroundTexture-Canvas=\u756B\u5E03 BarOutSide=\u67F1\u5B50\u5916\u5074 Preview_ToolTips=\u9810\u89BD\u63D0\u793A @@ -714,7 +714,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=Error to read plugin list +FR-Designer-Plugin_Read_Plugin_List_Error=\u53BB\u8B80\u63D2\u4EF6\u5217\u8868\u6642\u767C\u751F\u932F\u8AA4 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 +739,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=Illegal plugin zip +FR-Designer-Plugin_Illegal_Plugin_Zip=\u4E0D\u662F\u5408\u6CD5\u7684\u63D2\u4EF6\u5305 RCodeVersion=\u7248\u672C Convert=\u8F49\u63DB Please_Drag=\u8ACB\u62D6\u5165\u5217\u6B04\u6B04\u4F4D\u3001\u532F\u7E3D\u6B04\u4F4D @@ -794,7 +794,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=Loading plugins from store +FR-Designer-Plugin_Load_Plugins_From_Server=\u6B63\u5728\u5F9E\u63D2\u4EF6\u5546\u5E97\u7372\u53D6\u6578\u64DA 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 +809,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=Give Name +GIVE-NAME=\u547D\u540D FR-Designer_Rename=\u91CD\u547D\u540D Utils-Merge_Cell=\u5408\u5E76\u5132\u5B58\u683C Style-Spacing_After=\u6BB5\u5F8C @@ -832,7 +832,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=Current Shortcut +Support-Current_Auto_Complete_Shortcut=\u7576\u524D\u5FEB\u6377\u9375 GROUPING_MODE=\u666E\u901A\u5206\u7D44 DBCP_MAX_IDLE=\u6700\u5927\u7A7A\u9591\u9023\u63A5\u6578 BackgroundTexture-BlueTissuePaper=\u85CD\u8272\u7802\u7D19 @@ -844,7 +844,7 @@ 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=Install failed +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,7 +857,7 @@ 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= +Formula_Dictionary_Display_Examples_Html=\u5BE6\u969B\u503C\u7BC4\u570D\u70BA \ ECP-error_pwd=\u5BC6\u78BC\u932F\u8AA4 FR-Hyperlink_ChartHyperlink=\u5716\u8868\u8D85\u93C8 M_Edit-FormatBrush=\u8907\u88FD\u683C\u5F0F(B) @@ -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\u93C8\u63A5\u56DE\u6536\u6AA2\u67E5\u6578 +DBCP_NUM_TEST_PER_EVCTION_RUN=\u7A7A\u9591\u9023\u63A5\u56DE\u6536\u6AA2\u67E5\u6578 FR-Designer-FRFont_Family=\u540D\u5B57 Device=\u8A2D\u5099 M_Insert-Cell=\u5132\u5B58\u683C\u5143\u7D20 @@ -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=Plugin has been installed +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-Widget_Tree_And_Table=\u63A7\u5236\u9805\u6A39\u548C\u63A7\u5236\u9805\u8868 FR-Base_Help=\u8AAA\u660E -FR-Designer-Plugin_Update_Successful=Update successfully +FR-Designer-Plugin_Update_Successful=\u63D2\u4EF6\u5347\u7D1A\u6210\u529F\uFF0C\u91CD\u555F\u4F3A\u670D\u5668\u4EE5\u751F\u6548 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=Inner Parameter +Inner_Parameter=\u5167\u7F6E\u53C3\u6578 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=Please +PLEASE=\u8ACB 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= +Formula_Dictionary_Display_Examples=\ \u5BE6\u969B\u503C\u7BC4\u570D\u70BA \ 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=Error to connect plugin store +FR-Designer-Plugin_Connect_Server_Error=\u7121\u6CD5\u9023\u63A5\u63D2\u4EF6\u5546\u5E97\uFF0C\u8ACB\u7A0D\u5F8C\u518D\u8A66 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=Activation Key\: +FR-Designer-Basic_Activation_Key=\u8A2D\u8A08\u5668\u7DE8\u865F\: FR-App-Template_Report_Not_Exist=\u6240\u9078\u5831\u8868\u4E0D\u5B58\u5728 Protected=\u4FDD\u8B77 Skip=\u8DF3\u904E @@ -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=Installed +FR-Designer-Plugin_Installed=\u5DF2\u5B89\u88DD 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\u93C8\u63A5 +Datasource-Test_Connection=\u6E2C\u8A66\u9023\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=Client +Client=\u5BA2\u6236\u7AEF 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\u5C0D\u9F4A +FR-Designer-StyleAlignment_Right=\u9760\u53F3 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 @@ -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=\u93C8\u63A5\u5931\u6557 +Datasource-Connection_failed=\u9023\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\u5C0D\u9F4A +FR-Designer-StyleAlignment_Left=\u9760\u5DE6 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=Plugin has been disabled +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 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=Install successful +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 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=Capacity +Capacity=\u5BB9\u91CF 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 @@ -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=Illegal plugin,cannot be installed +FR-Designer-Plugin_Illegal_Plugin_Zip_Cannot_Be_Install=\u4E0D\u53EF\u8B58\u5225\u7684\u63D2\u4EF6\uFF0C\u7121\u6CD5\u5B89\u88DD 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=Auto Complete Shortcut +Support-Auto_Complete_Shortcut=\u81EA\u52D5\u88DC\u5168\u5FEB\u6377\u9375 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=Active +FR-Designer-Plugin_Active=\u555F\u7528 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=Restart designer +FR-Designer-Basic_Restart_Designer=\u91CD\u555F\u8A2D\u8A08\u5668 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=The version of plugin is lower than current +FR-Designer-Plugin_Version_Is_Lower_Than_Current=\u5347\u7D1A\u5305\u7684\u63D2\u4EF6\u7248\u672C\u6C92\u6709\u6BD4\u7576\u524D\u7684\u9AD8 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=\u5EFA\u7ACB\u65B0\u5831\u8868 +M-New_FormBook=\u65B0\u589E\u8868\u55AE\uFF08\u6C7A\u7B56\u8868\uFF09 Widget-TreeNode=\u6A39\u7BC0\u9EDE\u6309\u9215 Form-Url=\u5730\u5740 Utils-Beyond_the_left_side_of_Border=\u8D85\u51FA\u5DE6\u908A\u754C @@ -1372,7 +1372,7 @@ Utils-Delete_Row=\u522A\u9664\u5217 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=Compile Success +Compile_Success=\u7DE8\u8B6F\u6210\u529F BackgroundTexture-RecycledPaper=\u518D\u751F\u7D19 StyleAlignment-Single_Line=\u55AE\u5217\u986F\u793A Utils-Move_Down=\u4E0B\u79FB @@ -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=Plugin is now active +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 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 @@ -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=Compile Success And Then Save +Compile_Success_And_Then_Save=\u7DE8\u8B6F\u6210\u529F\u624D\u80FD\u6B63\u78BA\u5132\u5B58 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=Disable +FR-Designer-Plugin_Disable=\u7981\u7528 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=\u8F38\u51FA\u96E2\u7DDAhtml\u5831\u8868 +Export-Offline-Html=\u532F\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=Delete +FR-Designer-Plugin_Delete=\u522A\u9664 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=Update +FR-Designer_Plugin_Normal_Update=\u66F4\u65B0 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=Custom +Preference-Custom=\u81EA\u5B9A\u7FA9 BackgroundTexture-Newsprint=\u65B0\u805E\u7D19 ConditionB-Add_bracket=\u65B0\u589E\u62EC\u865F -Datasource-Connection_successfully=\u93C8\u63A5\u6210\u529F +Datasource-Connection_successfully=\u9023\u63A5\u6210\u529F Function-The_class_must_implement_the_interface=\u6539\u985E\u5FC5\u9808\u5BE6\u73FE\u4ECB\u9762 FR-Designer_ChartF-Transparency=\u900F\u660E Crimson=\u6DF1\u7D05 @@ -1659,7 +1659,7 @@ 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 Come_True=\u5BE6\u73FE -ISEMPTY=is empty +ISEMPTY=\u70BA\u7A7A 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=Restart later +FR-Designer-Basic_Restart_Designer_Later=\u7A0D\u5F8C\u91CD\u555F 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=Warning +FR-Designer-Plugin_Warning=\u8B66\u544A 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 @@ -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=All plugins +FR-Designer-Plugin_All_Plugins=\u5168\u90E8\u63D2\u4EF6 FR-Designer_Prepare_Export=\u958B\u59CB\u532F\u51FA\uFF0C\u8ACB\u7A0D\u5019 -DBCP_TEST_ON_RETURN=\u6B78\u9084\u93C8\u63A5\u524D\u6AA2\u9A57 +DBCP_TEST_ON_RETURN=\u6B78\u9084\u9023\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=Description +FR-Designer-Plugin_Plugin_Description=\u63D2\u4EF6\u63CF\u8FF0 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=Plugins to update +FR-Designer-Plugin_Update=\u63D2\u4EF6\u66F4\u65B0 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=Group Count +Group_Count=\u8868\u793A\u7E3D\u500B\u6578 EndValue=\u7D50\u675F\u503C FR-Designer_Sytle-Indentation=\u7E2E\u9032 DownBarBorderStyleAndColor=\u8DCC\u67F1\u6A23\u5F0F World=\u4E16\u754C -FR-Designer-Basic_Cancel=Cancel +FR-Designer-Basic_Cancel=\u53D6\u6D88 Finally=\u6700\u5F8C Low=\u4F4E Please_Input_The_Key=\u8ACB\u8F38\u5165\u5C0D\u61C9\u5730\u5716\u4F7F\u7528\u7684key Smart=\u667A\u80FD -Preference-Predefined=Predefined +Preference-Predefined=\u9810\u5B9A\u7FA9 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=Compile +Compile=\u7DE8\u8B6F 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=Locale +Preference-Locale=\u570B\u969B\u5316 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=Double click to copy key to clipboard +FR-Designer-Basic_Copy_Activation_Key=\u96D9\u64CA\u8A2D\u8A08\u5668\u7DE8\u865F\u53EF\u8907\u88FD\u5230\u526A\u8CBC\u677F 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=Delete plugin +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 FormulaD-Functions=\u51FD\u6578 Mobile_Terminal=\u884C\u52D5\u8A2D\u5099 CheckBox=\u5FA9\u9078\u6846 -FR-Designer-Plugin_Install=Install +FR-Designer-Plugin_Install=\u5B89\u88DD Sun=\u65E5 FR-Designer_ToolBar_Bottom=\u5E95\u90E8\u5DE5\u5177\u6B04 Widget-Width=\u63A7\u5236\u9805\u5BEC\u5EA6