服务器全局配置

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);
	}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值