package api;
import java.awt.Color;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import javax.imageio.ImageIO;
import com.fr.base.ChartEmptyDataStyleConf;
import com.fr.base.ChartPreStyleConfig;
import com.fr.base.ConfigManager;
import com.fr.base.CoreDecimalFormat;
import com.fr.base.Formula;
import com.fr.base.Margin;
import com.fr.base.PaperSize;
import com.fr.base.Parameter;
import com.fr.base.ParameterConfig;
import com.fr.base.Style;
import com.fr.base.background.ColorBackground;
import com.fr.base.print.NativePrintAttr;
import com.fr.base.print.NoClientPrintAttr;
import com.fr.base.print.PrintSettingsAttrMark;
import com.fr.base.print.NativePrintAttr.PageType;
import com.fr.config.PrintConfig;
import com.fr.config.ServerPreferenceConfig;
import com.fr.file.FunctionConfig;
import com.fr.form.ui.UserDefinedWidgetConfig;
import com.fr.form.ui.WebContentUtils;
import com.fr.form.ui.WidgetInfoConfig;
import com.fr.general.FRFont;
import com.fr.js.JavaScriptImpl;
import com.fr.report.stable.ReportConstants;
import com.fr.report.web.Location;
import com.fr.report.web.ToolBarManager;
import com.fr.report.web.WebPage;
import com.fr.report.web.WebView;
import com.fr.report.web.WebWrite;
import com.fr.report.web.button.form.DefaultListener;
import com.fr.stable.Constants;
import com.fr.stable.script.FunctionDef;
import com.fr.stable.unit.MM;
import com.fr.third.com.lowagie.text.Font;
import com.fr.transaction.CallBackAdaptor;
import com.fr.transaction.Configurations;
import com.fr.transaction.WorkerFacade;
import com.fr.web.attr.ReportWebAttr;
import com.fr.workspace.WorkContext;
/**
* 服务器全局配置
*
* @author Administrator
*/
public class GlobalConfig {
@SuppressWarnings("unchecked")
public static void main(String[] args) {
try {
ServerConnector.remote();
} catch (Exception e) {
e.printStackTrace();
return;
}
if (!WorkContext.getCurrent().isLocal()) {
Configurations.modify((new WorkerFacade(ServerPreferenceConfig.class, new Class[0]) {
@Override
public void run() {
ArrayList<Parameter> list = new ArrayList<Parameter>();
Parameter op = null;
Parameter np = new Parameter("p1", "133");
for (Parameter p : ParameterConfig.getInstance().getGlobalParameters()) {
if (p.getName().equals(np.getName())) {
op = p;
list.add(np);
} else {
list.add(p);
}
}
if (op == null) {
list.add(np);
}
ParameterConfig.getInstance().setGlobeParameters(list.toArray(new Parameter[0]));
}
}).addCallBack(new CallBackAdaptor() {
public void afterCommit() {
System.out.println("modify over");
}
}));
}
ServerConnector.disconnect();
}
/**
* 图表空数据提示
*/
public static void chartEmptyDataStyle() {
ChartEmptyDataStyleConf s = ChartEmptyDataStyleConf.getInstance();
// 开启提示
s.setOpenEmptyDataStyle(true);
// 自定义
s.setCustomEmptyDataStyle(true);
// 图片
try {
s.setEmptyDataImage(ImageIO.read(new File("d:/系统.bmp")));
} catch (IOException e) {
e.printStackTrace();
}
// 适应
s.setAdjust(true);
}
/**
* 图表预定义颜色
*/
public static void chartPreStyle() {
ChartPreStyleConfig.getInstance().putPreStyle("自定义颜色组合", new com.fr.base.ChartColorMatching(
java.util.Arrays.asList(new Color[] { Color.red, Color.blue, Color.green })));
}
/**
* 预定义控件
*/
public static void preWidget() {
UserDefinedWidgetConfig wc = new UserDefinedWidgetConfig();
wc.setWidget(CellWidget.getTextEditor());
WidgetInfoConfig.getInstance().putWidgetConfig("自定义控件", wc);
}
/**
* 预定义样式
*/
public static void preStyle() {
Style style = Style.getInstance();
// 格式
style = style.deriveFormat(CoreDecimalFormat.getPercentInstance());
// 对齐
style = style.deriveHorizontalAlignment(Constants.LEFT);
style = style.deriveVerticalAlignment(Constants.BOTTOM);
style = style.deriveTextStyle(Style.TEXTSTYLE_SINGLELINE);
style = style.deriveVerticalText(Style.VERTICALTEXT).deriveTextDirection(Style.LEFT_TO_RIGHT);
style = style.deriveVerticalText(Style.HORIZONTALTEXT).deriveRotation(45);
style = style.derivePadding(0, 7);
style = style.deriveSpacingAfter(10);
// 字体
style = style.deriveFRFont(FRFont.getInstance("黑体", Font.BOLD, 12));
// 边框
style = style.deriveBorderBottom(Constants.LINE_THICK, Color.blue);
// 背景
style = style.deriveBackground(ColorBackground.getInstance(Color.pink));
ConfigManager.getInstance().putStyle("自定义样式", style);
}
/**
* 全局参数
*/
public static void globalParameter() {
ParameterConfig.getInstance().setGlobeParameters(new Parameter[] { new Parameter("p1", 123) });
}
/**
* 自定义函数
*/
public static void myFunction() {
FunctionConfig.getInstance().addFunctionDef(new FunctionDef("my_function", "自定义测试函数", "custom.MyFunction"));
}
/**
* 服务器配置
*/
public static void serverConfig() {
JavaScriptImpl j = new JavaScriptImpl("alert(ddd);");
j.setParameters(new Parameter[] { new Parameter("ddd", new Formula("now()")) });
j.addJSImort("scripts/js/my.js");
ReportWebAttr web = ReportWebAttr.getInstance();
/*
* 分页预览设置
*/
WebPage page = web.getWebPage();
page.setViewAtCenter(true);
page.setShowAsImage(true);
page.setAutoScaleWhenEmbeddedInIframe(true);
page.setTDHeavy(true);
ToolBarManager toolbarManager = ToolBarManager.createDefaultToolBar();
toolbarManager.getToolBar().removeWidget(0);
toolbarManager.setToolBarLocation(Location.createBottomEmbedLocation());
page.setToolBarManagers(new ToolBarManager[] { toolbarManager });
page.addListener(new DefaultListener(WebContentUtils.EVENT_AFTERLOAD, j));
/*
* 数据分析设置
*/
WebView view = web.getWebView();
view.setSortFuncCheck(false);
view.setConditionFuncCheck(false);
view.setListFuncCheck(false);
toolbarManager = ToolBarManager.createDefaultViewToolBar();
toolbarManager.getToolBar().removeWidget(0);
toolbarManager.setToolBarLocation(Location.createTopEmbedLocation());
view.setToolBarManagers(new ToolBarManager[] { toolbarManager });
view.addListener(new DefaultListener(WebContentUtils.EVENT_AFTERLOAD, j));
/*
* 填报页面设置
*/
WebWrite write = web.getWebWrite();
// sheet标签页显示位置
write.setSheetPosition(Constants.TOP);
// 报表显示位置
write.setViewAtLeft(false);
// 填报当前行背景
write.setEditRowColor(true);
write.setSelectedColor(Color.red);
// 未提交离开提示
write.setUnloadCheck(false);
// 直接显示控件
write.setShowWidgets(true);
// 自动暂存
write.setAutoStash(true);
toolbarManager = ToolBarManager.createDefaultWriteToolBar();
toolbarManager.getToolBar().removeWidget(0);
toolbarManager.setToolBarLocation(Location.createTopEmbedLocation());
write.setToolBarManagers(new ToolBarManager[] { toolbarManager });
write.addListener(new DefaultListener(WebContentUtils.EVENT_AFTERLOAD, j));
/*
* 引用CSS
*/
web.addCSSImport("scripts/css/shop.css");
/*
* 引用JavaScript
*/
web.addJSImport("scripts/js/fr_my.js");
/*
* 出错模板设置
*/
ConfigManager.getInstance().setErrorTemplate("WorkBook1.cpt");
/*
* 打印设置
*/
PrintConfig print = PrintConfig.getInstance();
PrintSettingsAttrMark printAttr = print.getPrintSettings();
printAttr.setValid(true);
/*
* 零客户端打印
*/
printAttr.setPrintType(PrintSettingsAttrMark.NO_CLIENT_PRINT);
NoClientPrintAttr ncp = printAttr.getNoClientPrintAttr();
// 打印时可设置打印边距
ncp.setSetMarginOnPrint(true);
// IE浏览器中不显示打印设置
ncp.setIeQuietPrint(true);
// 针式打印优化
ncp.setNeedlePrinterOptimize(true);
// 继承页面边距设置
ncp.setInheritPageMarginSetting(false);
ncp.setMargin(new Margin(new MM(5), new MM(5), new MM(5), new MM(5)));
/*
* 本地软件打印
*/
printAttr.setPrintType(PrintSettingsAttrMark.NATIVE_PRINT);
NativePrintAttr np = printAttr.getNativePrintAttr();
// 打印时需要打印设置窗口
np.setShowDialog(true);
// 打印需要设置指定sheet
np.setNeedSelectSheet(true);
// 打印机
np.setPrinterName("printer_name");
// 份数
np.setCopy(2);
// 页码
np.setPageType(PageType.ALL_PAGES);
np.setPageType(PageType.CURRENT_PAGE);
np.setPageType(PageType.SPECIFIED_PAGES);
np.setArea("1-3");
np.setPageType(PageType.ODD_PAGES);
np.setPageType(PageType.EVEN_PAGES);
// 纸张
np.setInheritPagePaperSetting(false);
np.setPaperSize(PaperSize.PAPERSIZE_A4);
np.setPaperSize(new PaperSize(new MM(100), new MM(150)));
// 布局
np.setInheritPageLayoutSetting(false);
np.setOrientation(ReportConstants.LANDSCAPE);
// 边距
np.setInheritPageMarginSetting(false);
np.setMargin(new Margin(new MM(6), new MM(6), new MM(6), new MM(6)));
// 缩放
np.setFitPaperSize(false);
np.setScalePercent(95);
}
}
服务器全局配置
最新推荐文章于 2021-08-03 12:21:31 发布