budgetActualspreadjsdemo.jsp 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471
  1. <%@ page language="java" contentType="text/html; charset=UTF-8"
  2. pageEncoding="UTF-8"%>
  3. <%@include file="/context/mytags.jsp"%>
  4. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  5. <t:base type="jquery,easyui,tools,DatePicker"></t:base>
  6. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  7. <head>
  8. <meta name="spreadjs culture" content="zh-cn" />
  9. <meta charset="utf-8" />
  10. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  11. <link rel="stylesheet" type="text/css" href="plug-in/SpreadJS/css/gc.spread.sheets.excel2016colorful.13.1.0.css">
  12. <script src="plug-in/SpreadJS/scripts/gc.spread.sheets.all.13.1.0.min.js" type="text/javascript"></script>
  13. <script src="plug-in/SpreadJS/scripts/resources/zh/gc.spread.sheets.resources.zh.13.1.0.min.js" type="text/javascript"></script>
  14. <script src = "webpage/cn/com/lzt/budget/tempsheet/dataDetail.js" type="text/javascript"></script>
  15. <script src="plug-in/SpreadJS/license.js" type="text/javascript"></script>
  16. <style>
  17. .sample-tutorial {
  18. position: relative;
  19. height: 100%;
  20. overflow: hidden;
  21. }
  22. .sample-spreadsheets {
  23. width: calc(100%);
  24. height: 100%;
  25. overflow: hidden;
  26. float: left;
  27. }
  28. .options-container {
  29. float: right;
  30. width: 40%;
  31. /* padding: 12px; */
  32. padding-left: 12px;
  33. padding-right: 12px;
  34. height: 100%;
  35. box-sizing: border-box;
  36. background: #fbfbfb;
  37. overflow: auto;
  38. }
  39. .option-row {
  40. font-size: 14px;
  41. margin-top: 10px;
  42. }
  43. label {
  44. margin-bottom: 6px;
  45. }
  46. input {
  47. padding: 4px 6px;
  48. }
  49. input[type=button] {
  50. margin-top: 6px;
  51. }
  52. .buttonStyle{
  53. width:240px;
  54. height:30px;
  55. }
  56. .colorPickerContent{
  57. width: 100%;
  58. background-color:white;
  59. }
  60. .colorDom{
  61. width: 14px;
  62. height: 14px;
  63. margin:0 0 0 6px;
  64. display: inline-block;
  65. border: solid 1px #333333;
  66. vertical-align: top;
  67. }
  68. body {
  69. position: absolute;
  70. top: 0;
  71. bottom: 0;
  72. left: 0;
  73. right: 0;
  74. }
  75. </style>
  76. </head>
  77. <body style="background:#FFFFFF">
  78. <!-- <form id="form1" runat="server"> -->
  79. <div>
  80. <div id="div2">
  81. <%--查询框begin --%>
  82. <table cellpadding="0" cellspacing="1" class="formtable" style="position:fixed;top:5px;"> <!-- bottom -->
  83. <tr >
  84. <td align="right" width="600px" style="text-align: left;">
  85. <label class="Validform_label">预算主体: </label>
  86. <!-- </td>
  87. <td class="value" nowrap> -->
  88. <input id="warehouseId" name="warehouseId" type="hidden" >
  89. <input name="warehouseName" type="text" class="inputxt" style="width: 150px" id="warehouseName" readonly="readonly" />
  90. <span class="Validform_checktip"></span>
  91. <label class="Validform_label" style="display: none;">领料点</label>
  92. <t:choose hiddenName="warehouseId" hiddenid="id" url="pOrdersController.do?selectReferWareHouse&classname=cn.com.lzt.warehouse.entity.WarehouseEntity&codefield=warehouseCode&namefield=warehouseName" name="list"
  93. left="40%" width="450px" height="700px" icon="icon-search" title="领料点" textname="warehouseName" isclear="true" isInit="true" ></t:choose>
  94. </td>
  95. </tr>
  96. <tr>
  97. <td class="value">
  98. <span class="spancon" title="attType">预算年度:</span>
  99. </span>
  100. <input type="text" id="attYear" name="attYear" style="width: 94px;" class="Wdate" onclick="WdatePicker({readOnly:true,enableKeyboard:false,enableInputMask:false,lang:'zh-cn',dateFmt:'yyyy'})">
  101. <span style="display:-moz-inline-box;display:inline-block;width: 20px;text-align:center;">年</span>
  102. <input type="text" id="attMonth" name="period" style="width: 94px;" class="Wdate" onclick="WdatePicker({readOnly:true,enableKeyboard:false,enableInputMask:false,lang:'zh-cn',dateFmt:'MM'})">
  103. <span style="display:-moz-inline-box;display:inline-block;width: 20px;text-align:center;">月</span>
  104. </td>
  105. <span style="float: left;padding-left: 750px;padding-top: 34px;" >
  106. <td height="50px" align="right" colspan="8" valign="top">
  107. <a href="#" class="easyui-linkbutton l-btn" iconcls="icon-search" onclick="btn_query()">保存</a>
  108. <a href="#" class="easyui-linkbutton l-btn" iconcls="icon-putout" onclick="btn_output()">导出excel</a>
  109. </td>
  110. </span>
  111. </tr>
  112. </table>
  113. <%--查询框end --%>
  114. </div>
  115. <br/><br/><br/>
  116. <div class="sample-tutorial" style="top: 20px;width:calc(100vw - 80px); height: calc(100vh - 120px);">
  117. <div id="ss" class="sample-spreadsheets" ></div>
  118. <!-- <div id="detail" class="options-container"> -->
  119. <!-- <div class="option-row">
  120. 操作<br/>
  121. <div class="option-row">
  122. <input id="addBackgroundColorMenuSelection" type="checkbox" />
  123. <label for="addBackgroundColorMenuSelection">Add background color menu selection</label>
  124. </div>
  125. </div> -->
  126. </div>
  127. </div>
  128. <script>
  129. var spreadNS = GC.Spread.Sheets;
  130. window.onload = function () {
  131. var spread = new GC.Spread.Sheets.Workbook(document.getElementById("ss"), { sheetCount: 1 });
  132. initSpread(spread);
  133. //initEvents(spread);
  134. initMenu(spread);
  135. };
  136. function initMenu(spread){
  137. var commandManager = spread.commandManager();
  138. var selectActualDetailbtn = {
  139. text: "实际发生明细",
  140. name: "selectActualDetail" ,
  141. workArea: "viewport",
  142. command: "selectActualDetailcommand"
  143. };
  144. //清空原有按钮
  145. spread.contextMenu.menuData = new Array();
  146. //添加自定义按钮
  147. spread.contextMenu.menuData.push(selectActualDetailbtn);
  148. //响应事件在这里写代码
  149. var selectActualDetailCommand = {
  150. canUndo: false,
  151. execute: function (spread, options) {
  152. showBudgetSub();
  153. /* var sheet = spread.getSheetFromName(options.sheetName);
  154. var cell = sheet.getCell(options.selections[0].row, options.selections[0].col);
  155. var spreadDetail = new GC.Spread.Sheets.Workbook(document.getElementById('detail'), {
  156. sheetCount: 1
  157. });
  158. var sd = detaildataSource;
  159. var actSheet = spreadDetail.getActiveSheet();
  160. if (sd.length > 0) {
  161. actSheet.setDataSource(sd);
  162. }
  163. actSheet.setColumnWidth(0, 120);
  164. actSheet.setColumnWidth(1, 80);
  165. actSheet.setColumnWidth(2, 80);
  166. actSheet.setColumnWidth(3, 80);
  167. actSheet.setColumnWidth(4, 100);
  168. actSheet.setColumnWidth(6, 110);
  169. var border = new GC.Spread.Sheets.LineBorder();
  170. var styleInfo = new GC.Spread.Sheets.Tables.TableStyle('red', 'black', '10px arial', border, border, border, border, border, border);
  171. var tableStyle = new GC.Spread.Sheets.Tables.TableTheme();
  172. tableStyle.name('tableStyle1');
  173. tableStyle.headerRowStyle(styleInfo)
  174. var mystyle = spreadNS.Tables.TableThemes.light1;
  175. var table = actSheet.tables.add('table1', 0, 0, 44, 5, spreadNS.Tables.TableThemes.medium2); */
  176. return true;
  177. }
  178. };
  179. commandManager.register("selectActualDetailcommand", selectActualDetailCommand, null, false, false, false, false);
  180. }
  181. function initSpread(spread) {
  182. var sheet = spread.getSheet(0);
  183. // 自定义命令替换右键菜单命令
  184. spread.commandManager().register("customInsertRows",
  185. {
  186. canUndo: true,
  187. execute: function (context, options, isUndo) {
  188. var Commands = GC.Spread.Sheets.Commands;
  189. // 在此加cmd
  190. options.cmd = "customInsertRows";
  191. if (isUndo) {
  192. Commands.undoTransaction(context, options);
  193. return true;
  194. } else {
  195. Commands.startTransaction(context, options);
  196. spread.commandManager().execute({
  197. cmd: "gc.spread.contextMenu.insertRows",
  198. sheetName: sheet.name(),
  199. activeRow: options.activeRow,
  200. activeCol: options.activeCol,
  201. selections: options.selections
  202. });
  203. // 在此定义用户自己的逻辑
  204. var colCount = sheet.getColumnCount();
  205. for(var i = 0; i < colCount; i++){
  206. sheet.getCell(options.activeRow, i).locked(false);
  207. }
  208. Commands.endTransaction(context, options);
  209. return true;
  210. }
  211. }
  212. });
  213. sheet.suspendPaint();
  214. var cfs = sheet.conditionalFormats ;
  215. //11
  216. var table = sheet.tables.add("tblOperatingExpenses2", 4, 1, 51, 6, new spreadNS.Tables.TableTheme());
  217. table.showFooter(true);
  218. var dataTable = [];
  219. dataTable[0] = new Array("状态", "预算指标", "预算金额", "实际发生额", "差额 (¥)", "差率 (%)");
  220. dataTable[1] = new Array(0, "管理人员薪资及附加", 600, 545, 0, 0);
  221. dataTable[2] = new Array(0, " 工资", 125, 150, 0, 0);
  222. dataTable[3] = new Array(0, " 社保", 100, 100, 0, 0);
  223. dataTable[4] = new Array(0, " 公积金", 100, 90, 0, 0);
  224. dataTable[5] = new Array(0, " 福利费", 150, 145, 0, 0);
  225. dataTable[6] = new Array(0, " 员工补助", 1000, 1000, 0, 0);
  226. dataTable[7] = new Array(0, " 节日福利费", 500, 630, 0, 0);
  227. dataTable[8] = new Array(0, " 团队建设费", 350, 375, 0, 0);
  228. dataTable[9] = new Array(0, "经济补偿及附加", 400, 370, 0, 0);
  229. dataTable[10] = new Array(0, " 劳动关系纠纷", 500, 435, 0, 0);
  230. dataTable[11] = new Array(0, " 工伤医疗", 600, 545, 0, 0);
  231. dataTable[12] = new Array(0, " 案件服务费", 125, 150, 0, 0);
  232. dataTable[13] = new Array(0, "管理培训费", 100, 100, 0, 0);
  233. dataTable[14] = new Array(0, " 资格证书", 100, 90, 0, 0);
  234. dataTable[15] = new Array(0, " 复证费", 150, 145, 0, 0);
  235. dataTable[16] = new Array(0, " 培训课程及书籍", 1000, 1000, 0, 0);
  236. dataTable[17] = new Array(0, " 培训差旅餐费", 500, 630, 0, 0);
  237. dataTable[18] = new Array(0, " 在职培训", 350, 375, 0, 0);
  238. dataTable[19] = new Array(0, "固定资产", 400, 370, 0, 0);
  239. dataTable[20] = new Array(0, " 专业设备", 500, 435, 0, 0);
  240. dataTable[21] = new Array(0, " 电子设备", 600, 545, 0, 0);
  241. dataTable[22] = new Array(0, " 运输工具", 125, 150, 0, 0);
  242. dataTable[23] = new Array(0, " 办公家具电器", 100, 100, 0, 0);
  243. dataTable[24] = new Array(0, " 房屋", 100, 90, 0, 0);
  244. dataTable[25] = new Array(0, "场地租赁及附加", 150, 145, 0, 0);
  245. dataTable[26] = new Array(0, " 厂房和仓库", 1000, 1000, 0, 0);
  246. dataTable[27] = new Array(0, " 办公场地", 500, 630, 0, 0);
  247. dataTable[28] = new Array(0, " 员工宿舍", 350, 375, 0, 0);
  248. dataTable[29] = new Array(0, "办公杂费", 400, 370, 0, 0);
  249. dataTable[30] = new Array(0, " 办公用品费", 500, 435, 0, 0);
  250. dataTable[31] = new Array(0, " 差旅费", 600, 545, 0, 0);
  251. dataTable[32] = new Array(0, " 印刷、纸张", 125, 150, 0, 0);
  252. dataTable[33] = new Array(0, " 物业费", 100, 100, 0, 0);
  253. dataTable[34] = new Array(0, " 维护修理", 100, 90, 0, 0);
  254. dataTable[35] = new Array(0, " 办公室用水", 150, 145, 0, 0);
  255. dataTable[36] = new Array(0, " 快递费", 1000, 1000, 0, 0);
  256. dataTable[37] = new Array(0, " 会务费", 500, 630, 0, 0);
  257. dataTable[38] = new Array(0, " 设备检测费", 350, 375, 0, 0);
  258. dataTable[39] = new Array(0, " 绿植费", 400, 370, 0, 0);
  259. dataTable[40] = new Array(0, " 网络费", 500, 435, 0, 0);
  260. dataTable[41] = new Array(0, " 水费", 600, 545, 0, 0);
  261. dataTable[42] = new Array(0, " 电费", 125, 150, 0, 0);
  262. dataTable[43] = new Array(0, " 煤气费", 100, 100, 0, 0);
  263. dataTable[44] = new Array(0, "绩效评价指标",null ,null, null, null);
  264. dataTable[45] = new Array(0, " 劳动纠纷发生率", 2.00, 1.28, 0, 0);
  265. dataTable[46] = new Array(0, " 经济补偿率", 2.00, 1.89, 0, 0);
  266. dataTable[47] = new Array(0, " 特困使用率", 2.00, 2.1, 0, 0);
  267. dataTable[48] = new Array(0, " 缴金率", 2.00, 1.33, 0, 0);
  268. dataTable[49] = new Array(0, " 节税比例", 2.00, 3.58, 0, 0);
  269. dataTable[50] = new Array(0, " 外包服务节本率", 2.00, 3.58, 0, 0);
  270. dataTable[51] = new Array(0, "合计", 0, 0, 0, 0);
  271. sheet.addSpan(0, 1, 1, 4);
  272. sheet.addSpan(0, 5, 1, 2);
  273. sheet.addSpan(1, 1, 1, 6);
  274. sheet.addSpan(2, 1, 1, 6);
  275. sheet.addSpan(3, 1, 1, 2);
  276. // sheet.addSpan(16, 1, 1, 6);
  277. // sheet.addSpan(17, 1, 1, 6);
  278. sheet.getDefaultStyle().vAlign = spreadNS.VerticalAlign.center;
  279. sheet.getDefaultStyle().font = "lighter 10pt Calibri";
  280. sheet.getDefaultStyle().foreColor = "rgb(68, 84, 106)";
  281. sheet.options.gridline = { showVerticalGridline: false, showHorizontalGridline: false };
  282. sheet.getCell(0, 1).value("预算执行明细表").font("lighter 28pt Calibri");
  283. sheet.getCell(0, 5).value("美都环卫物业-人力资源部, 2020").font("11pt Calibri").foreColor("rgb(64, 64, 64)")
  284. .hAlign(spreadNS.HorizontalAlign.right).vAlign(spreadNS.VerticalAlign.bottom);
  285. sheet.getCell(3, 1).value("指标预算").font("bold 13pt Calibri ").foreColor("rgb(64, 64, 64)");
  286. sheet.getRange(4, 1, 1, 6).font("bold 10pt Calibri")
  287. .borderTop(new spreadNS.LineBorder("rgb(217,217,217)", spreadNS.LineStyle.thin));
  288. //15
  289. sheet.getRange(55, 1, 1, 6).font("bold 10pt Calibri")
  290. .borderBottom(new spreadNS.LineBorder("rgb(217,217,217)", spreadNS.LineStyle.thin));
  291. sheet.getRange(3, 1, 1, 2)
  292. .borderLeft(new spreadNS.LineBorder("rgb(217,217,217)", spreadNS.LineStyle.thin))
  293. .borderTop(new spreadNS.LineBorder("rgb(217,217,217)", spreadNS.LineStyle.thin))
  294. .borderRight(new spreadNS.LineBorder("rgb(217,217,217)", spreadNS.LineStyle.thin));
  295. //12 getRange (row col rowcount colcount)
  296. sheet.getRange(4, 1, 52, 1).borderLeft(new spreadNS.LineBorder("rgb(217,217,217)", spreadNS.LineStyle.thin)).hAlign(spreadNS.HorizontalAlign.center);
  297. //12
  298. sheet.getRange(4, 6, 52, 1).borderRight(new spreadNS.LineBorder("rgb(217,217,217)", spreadNS.LineStyle.thin));
  299. //10
  300. sheet.getRange(5, 1, 50, 6).borderBottom(new spreadNS.LineBorder("rgb(217,217,217)", spreadNS.LineStyle.dashed));;
  301. //16
  302. for (var row = 4; row < 56; row++) {
  303. for (var col = 1; col < 7; col++) {
  304. sheet.setValue(row, col, dataTable[row - 4][col - 1]);
  305. }
  306. }
  307. var rowHeights = new Array(74, 4, 20);
  308. for (var row = 0; row < 3; row++) {
  309. sheet.setRowHeight(row, rowHeights[row]);
  310. }
  311. //
  312. for (var row = 3; row < 56; row++) {
  313. sheet.setRowHeight(row, 24);
  314. }
  315. //
  316. sheet.setRowHeight(56, 4);
  317. //var colWidths = new Array(18, 83, 111, 84, 85, 126, 129);
  318. var colWidths = new Array(18, 120, 200, 150, 150, 150, 129);
  319. for (var col = 0; col < 7; col++) {
  320. sheet.setColumnWidth(col, colWidths[col]);
  321. }
  322. sheet.getRange(1, 1, 1, 6)
  323. .borderTop(new spreadNS.LineBorder("rgb(217,217,217)", spreadNS.LineStyle.thick))
  324. .borderBottom(new spreadNS.LineBorder("rgb(217,217,217)", spreadNS.LineStyle.thin));
  325. //17
  326. sheet.getRange(56, 1, 1, 6)
  327. .borderTop(new spreadNS.LineBorder("rgb(217,217,217)", spreadNS.LineStyle.thick))
  328. .borderBottom(new spreadNS.LineBorder("rgb(217,217,217)", spreadNS.LineStyle.thin));
  329. //13
  330. sheet.getRange(3, 3, 45, 3).formatter('"¥"#,##0.00');
  331. sheet.getRange(49, 3, 6, 3).formatter('##0.00"%"');
  332. //12
  333. sheet.getRange(3, 6, 52, 1).formatter('0%');
  334. //15
  335. sheet.getCell(55, 6).formatter('0.0%');
  336. //
  337. sheet.getCell(5, 3).formula('=SUM(D7:D10)');
  338. sheet.getCell(5, 4).formula('=SUM(E7:E10)');
  339. sheet.getCell(9, 3).formula('=SUM(D11:D13)');
  340. sheet.getCell(9, 4).formula('=SUM(E11:E13)');
  341. var iconSetRule1 = new spreadNS.ConditionalFormatting.IconSetRule();
  342. //15
  343. iconSetRule1.ranges([new spreadNS.Range(55, 1, 1, 1)]);
  344. iconSetRule1.iconSetType(spreadNS.ConditionalFormatting.IconSetType.threeSymbolsCircled)
  345. .showIconOnly(true);
  346. var icons = iconSetRule1.iconCriteria();
  347. icons[0] = new spreadNS.ConditionalFormatting.IconCriterion(false, spreadNS.ConditionalFormatting.IconValueType.number, -1);
  348. icons[1] = new spreadNS.ConditionalFormatting.IconCriterion(true, spreadNS.ConditionalFormatting.IconValueType.number, 1);
  349. cfs.addRule(iconSetRule1);
  350. var style = new spreadNS.Style();
  351. style.foreColor = "red";
  352. //15
  353. cfs.addCellValueRule(spreadNS.ConditionalFormatting.ComparisonOperators.lessThan, 0, 0, style, [new spreadNS.Range(55, 5, 1, 2)]);
  354. var dataBarRule1 = new spreadNS.ConditionalFormatting.DataBarRule();
  355. dataBarRule1.minType(spreadNS.ConditionalFormatting.ScaleValueType.automin);
  356. dataBarRule1.maxType(spreadNS.ConditionalFormatting.ScaleValueType.automax);
  357. //10
  358. dataBarRule1.ranges([new spreadNS.Range(5, 4, 50, 1)]);
  359. dataBarRule1.color("orange").showBorder(true).borderColor("orange").dataBarDirection(spreadNS.ConditionalFormatting.BarDirection.rightToLeft);
  360. cfs.addRule(dataBarRule1);
  361. var dataBarRule2 = new spreadNS.ConditionalFormatting.DataBarRule();
  362. dataBarRule2.minType(spreadNS.ConditionalFormatting.ScaleValueType.automin);
  363. dataBarRule2.maxType(spreadNS.ConditionalFormatting.ScaleValueType.automax);
  364. //10
  365. dataBarRule2.ranges([new spreadNS.Range(5, 3, 50, 1)]);
  366. dataBarRule2.color("rgb(0,138,239)").showBorder(true).borderColor("rgb(0,138,239)");
  367. cfs.addRule(dataBarRule2);
  368. var dataBarRule3 = new spreadNS.ConditionalFormatting.DataBarRule();
  369. dataBarRule3.minType(spreadNS.ConditionalFormatting.ScaleValueType.lowestValue);
  370. dataBarRule3.maxType(spreadNS.ConditionalFormatting.ScaleValueType.highestValue);
  371. //10
  372. dataBarRule3.ranges([new spreadNS.Range(5, 6, 50, 1)]);
  373. dataBarRule3.color("rgb(91,155,213)").showBorder(true).borderColor("rgb(91,155,213)")
  374. .negativeFillColor("rgb(237,125,49)").useNegativeBorderColor(true).negativeBorderColor("rgb(237,125,49)")
  375. .axisPosition(spreadNS.ConditionalFormatting.DataBarAxisPosition.cellMidPoint);
  376. cfs.addRule(dataBarRule3);
  377. var iconSetRule2 = new spreadNS.ConditionalFormatting.IconSetRule();
  378. //10
  379. iconSetRule2.ranges([new spreadNS.Range(5, 1, 50, 1)]);
  380. iconSetRule2.iconSetType(spreadNS.ConditionalFormatting.IconSetType.threeSymbolsUncircled)
  381. .reverseIconOrder(true)
  382. .showIconOnly(true);
  383. cfs.addRule(iconSetRule2);
  384. table.setColumnFormula(0, "=tblOperatingExpenses2[[#Totals],[差率 (%)]]");
  385. table.setColumnFormula(2, "=SUBTOTAL(109,[预算金额])");
  386. table.setColumnFormula(3, "=SUBTOTAL(109,[实际发生额])");
  387. table.setColumnFormula(4, "=SUBTOTAL(109,[差额 (¥)])");
  388. table.setColumnFormula(5, '=IFERROR(SUM(tblOperatingExpenses2[[#Totals],[差额 (¥)]]/tblOperatingExpenses2[[#Totals],[预算金额]]),"")');
  389. table.setColumnDataFormula(0, '=IFERROR([@实际发生额]/[@预算金额],"")');
  390. table.setColumnDataFormula(4, '=[@预算金额]-[@实际发生额]');
  391. //去掉一个单元格的公式
  392. sheet.getCell(48,5).formula('').text('');
  393. table.setColumnDataFormula(5, '=IFERROR([@[差额 (¥)]]/[@预算金额],"")');
  394. sheet.frozenRowCount(5);
  395. sheet.resumePaint();
  396. }
  397. function showBudgetSub(){
  398. var url = 'budgetTempSheetController.do?budgetActualSubspreadjsdemo';
  399. $.dialog({
  400. title:'预实明细',
  401. content: 'url:'+ url,
  402. zIndex: getzIndex(),
  403. lock: true,
  404. width: window.top.document.body.offsetWidth ,
  405. height: window.top.document.body.offsetHeight-100,
  406. cache:false,
  407. button: [
  408. {
  409. name: '<t:mutiLang langKey="common.confirm"/>',
  410. callback: function(){
  411. },
  412. focus: true
  413. },
  414. {
  415. name: '<t:mutiLang langKey="common.cancel"/>',
  416. callback: function(){
  417. //refresh();
  418. }
  419. }
  420. ]
  421. });
  422. }
  423. </script>
  424. </body>
  425. </html>