You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

488 lines
22 KiB

4 days ago
  1. @{
  2. ViewBag.Title = "Form";
  3. Layout = "~/Views/Shared/_Form.cshtml";
  4. }
  5. <link href="~/Content/css/CommonReport/CommonReport.css" rel="stylesheet" />
  6. <script src="~/Content/js/CommonReport/CommonReport.js"></script>
  7. <link href="~/Content/css/bootstrap/bootstrap-select.css" rel="stylesheet" />
  8. <script src="~/Content/js/bootstrap/bootstrap-select.min.js"></script>
  9. <style>
  10. * {
  11. box-sizing: border-box;
  12. }
  13. .form-control {
  14. width:95%
  15. }
  16. </style>
  17. <script>
  18. var SourceID = $.request("SourceID");
  19. var MenuID = $.request("MenuID");
  20. var DataTypeString = new Array();
  21. var NewLine = 0;
  22. var MaxPaiXu = 0;
  23. var FirstShow = 0;
  24. $(function () {
  25. debugger;
  26. DataTypeString = GetDataTypeString();
  27. gridList();
  28. $(window).resize(function () {
  29. $("#gridList").setGridWidth($(window).width() * 0.99);
  30. $("#gridList").setGridWidth(document.body.clientWidth * 0.99);
  31. $("#gridList").setGridHeight($(window).height() - 96);
  32. $("#gridList").setGridHeight(document.body.clientHeight - 96);
  33. });
  34. });
  35. function gridList() {
  36. document.getElementsByClassName("gridPanel")[0].innerHTML = ' <table id="gridList"></table>';
  37. var $gridList = $("#gridList");
  38. $gridList.dataGrid({
  39. url: "/SystemManage/CommonReport/GetCols?" + Math.random(),
  40. postData: { SourceID: SourceID },
  41. height: $(window).height() - 96,
  42. width:"100%",
  43. colModel: [//IDStr 显示名称 字段名称 数据类型 小数点位数 字段宽度
  44. //合并相同项 合并相同项Key 汇总 从属表头 显示 显示顺序 允许排序 自定义项 自定义公式
  45. //ColCaption ColFiledName DataType DefineFlag FunctionString DeciamlNum
  46. //ColWidth ColMerFlag ColMerKeyFlag ColSumFlag HeaderId COrder VisbleFlag SortFlag
  47. {
  48. label: 'IDStr', name: 'IDStr', width: 80, align: 'left', sortable: false,
  49. },
  50. { label: 'ColCaption', name: 'ColCaption', hidden: true, },
  51. { label: 'ColFiledName', name: 'ColFiledName', hidden: true, },
  52. { label: 'DataType', name: 'DataType', hidden: true, },
  53. { label: 'DefineFlag', name: 'DefineFlag', hidden: true, },
  54. { label: 'FunctionString', name: 'FunctionString', hidden: true, },
  55. { label: 'DeciamlNum', name: 'DeciamlNum', hidden: true, },
  56. { label: 'ColWidth', name: 'ColWidth', hidden: true, },
  57. { label: 'ColMerFlag', name: 'ColMerFlag', hidden: true, },
  58. { label: 'ColMerKeyFlag', name: 'ColMerKeyFlag', hidden: true, },
  59. { label: 'ColSumFlag', name: 'ColSumFlag', hidden: true, },
  60. { label: 'HeaderId', name: 'HeaderId', hidden: true, },
  61. { label: 'COrder', name: 'COrder', hidden: true, },
  62. { label: 'VisbleFlag', name: 'VisbleFlag', hidden: true, },
  63. { label: 'SortFlag', name: 'SortFlag', hidden: true, },
  64. {
  65. label: '显示名称', name: '显示名称', width: 130, align: 'left', sortable: false,
  66. formatter: function (cellvalue, options, rowObject) {
  67. var str_retrun = '<input type="text" class="form-control" id="ColCaption_' + rowObject.IDStr + '" value="' + cellvalue + '" />';
  68. return cellvalue = str_retrun;
  69. },
  70. },
  71. {
  72. label: '字段名称', name: '字段名称', width: 130, align: 'left', sortable: false,
  73. formatter: function (cellvalue, options, rowObject) {
  74. var str_retrun = '<input type="text" class="form-control" id="ColFiledName_' + rowObject.IDStr + '" value="' + cellvalue + '" />';
  75. return cellvalue = str_retrun;
  76. },
  77. },
  78. {
  79. label: '数据类型', name: '数据类型', width: 120, align: 'left', sortable: false,
  80. formatter: function (cellvalue, options, rowObject) {
  81. var str_retrun = '<select class="selectpicker" id="selDataType_' + rowObject.IDStr + '" Title="" data-width="90px" > ';
  82. str_retrun += "<option value=''></option>";
  83. for (var i = 0; i < DataTypeString.length; i++) {
  84. str_retrun += "<option value=\"" + DataTypeString[i].value + "\">" + DataTypeString[i].Str + "</option>";
  85. }
  86. str_retrun += '</select>';
  87. return cellvalue = str_retrun;
  88. }
  89. },
  90. {
  91. label: '小数点位数', name: '小数点位数', width: 80, align: 'left', sortable: false,
  92. formatter: function (cellvalue, options, rowObject) {
  93. var str_retrun = '<input type="text" class="form-control" id="DeciamlNum_' + rowObject.IDStr + '" value="' + cellvalue + '" />';
  94. return cellvalue = str_retrun;
  95. },
  96. },
  97. {
  98. label: '字段宽度', name: '字段宽度', width: 80, align: 'left', sortable: false,
  99. formatter: function (cellvalue, options, rowObject) {
  100. var str_retrun = '<input type="text" class="form-control" id="ColWidth_' + rowObject.IDStr + '" value="' + cellvalue + '" />';
  101. return cellvalue = str_retrun;
  102. },
  103. },
  104. {
  105. label: '合并相同项', name: '合并相同项', width: 80, align: 'left', sortable: false,
  106. formatter: function (cellvalue, options, rowObject) {
  107. var str_retrun = '<input type="checkbox" name="ColMerFlag_' + rowObject.IDStr + '" ';
  108. str_retrun += ' id="ColMerFlag_' + rowObject.IDStr + '" value="' + cellvalue + '" ';
  109. return cellvalue = str_retrun;
  110. }
  111. }, {
  112. label: '合并相同项Key', name: '合并相同项Key', width: 80, align: 'left', sortable: false,
  113. formatter: function (cellvalue, options, rowObject) {
  114. var str_retrun = '<input type="checkbox" name="ColMerKeyFlag_' + rowObject.IDStr + '" ';
  115. str_retrun += ' id="ColMerKeyFlag_' + rowObject.IDStr + '" value="' + cellvalue + '" ';
  116. return cellvalue = str_retrun;
  117. }
  118. },{
  119. label: '汇总', name: '汇总', width: 80, align: 'left', sortable: false,
  120. formatter: function (cellvalue, options, rowObject) {
  121. var str_retrun = '<input type="checkbox" name="ColSumFlag_' + rowObject.IDStr + '" ';
  122. str_retrun += ' id="ColSumFlag_' + rowObject.IDStr + '" value="' + cellvalue + '" ';
  123. return cellvalue = str_retrun;
  124. }
  125. },
  126. {
  127. label: '从属表头', name: '从属表头', width: 90, align: 'left', sortable: false,
  128. formatter: function (cellvalue, options, rowObject) {
  129. var str_retrun = '<input type="text" class="form-control" id="HeaderId_' + rowObject.IDStr + '" value="' + cellvalue + '" />';
  130. return cellvalue = str_retrun;
  131. },
  132. }, {
  133. label: '显示', name: '显示', width: 80, align: 'left', sortable: false,
  134. formatter: function (cellvalue, options, rowObject) {
  135. var str_retrun = '<input type="checkbox" name="VisbleFlag_' + rowObject.IDStr + '" ';
  136. str_retrun += ' id="VisbleFlag_' + rowObject.IDStr + '" value="' + cellvalue + '" ';
  137. return cellvalue = str_retrun;
  138. }
  139. },
  140. {
  141. label: '显示顺序', name: '显示顺序', width: 80, align: 'left', sortable: false,
  142. formatter: function (cellvalue, options, rowObject) {
  143. var str_retrun = '<input type="text" class="form-control" id="COrder_' + rowObject.IDStr + '" value="' + cellvalue + '" />';
  144. return cellvalue = str_retrun;
  145. },
  146. }, {
  147. label: '允许排序', name: '允许排序', width: 80, align: 'left', sortable: false,
  148. formatter: function (cellvalue, options, rowObject) {
  149. var str_retrun = '<input type="checkbox" name="SortFlag_' + rowObject.IDStr + '" ';
  150. str_retrun += ' id="SortFlag_' + rowObject.IDStr + '" value="' + cellvalue + '" ';
  151. return cellvalue = str_retrun;
  152. }
  153. }, {
  154. label: '自定义项', name: '自定义项', width: 60, align: 'left', sortable: false,
  155. formatter: function (cellvalue, options, rowObject) {
  156. var str_retrun = '<input type="checkbox" name="DefineFlag_' + rowObject.IDStr + '" ';
  157. str_retrun+=' id="DefineFlag_' + rowObject.IDStr + '" value="' + cellvalue + '" ';
  158. return cellvalue = str_retrun;
  159. }
  160. }, {
  161. label: '自定义公式', name: '自定义公式', width: 200, align: 'left', sortable: false,
  162. formatter: function (cellvalue, options, rowObject) {
  163. var str_retrun = '<input type="text" class="form-control" id="FunctionString_' + rowObject.IDStr + '" value="' + cellvalue + '" />';
  164. return cellvalue = str_retrun;
  165. },
  166. },
  167. ],
  168. // pager: "#gridPager",
  169. //sortname: '显示顺序',
  170. //// rowNum: -1,
  171. //sortorder: 'asc',
  172. viewrecords: true,
  173. rownumbers: true,
  174. multiselect: true,
  175. rowNum: 500,
  176. // cellEdit: false,
  177. // multiboxonly: true,
  178. // multikey:'shiftKey',
  179. gridComplete: function () {
  180. $("#gridList").setGridParam().hideCol("IDStr");//隐藏ID列
  181. $("#gridList").setGridParam().hideCol("自定义项");//隐藏ID列
  182. $("#gridList").setGridParam().hideCol("自定义公式");//隐藏ID列
  183. var strIds = $("#gridList").jqGrid("getDataIDs");
  184. if (FirstShow == 0) {
  185. for (var i = 0; i < strIds.length; i++) {
  186. var IDStr = $("#gridList").jqGrid("getCell", strIds[i], "IDStr");
  187. //DataType
  188. var selDataType = $("#gridList").jqGrid("getCell", strIds[i], "DataType");
  189. $("#selDataType_" + IDStr).selectpicker('refresh');
  190. $("#selDataType_" + IDStr).selectpicker('val', selDataType);
  191. //DefineFlag
  192. var DefineFlag = $("#gridList").jqGrid("getCell", strIds[i], "DefineFlag");
  193. if (DefineFlag == "false") {
  194. document.getElementById("DefineFlag_" + IDStr).checked = false;
  195. }
  196. else {
  197. document.getElementById("DefineFlag_" + IDStr).checked = true;
  198. }
  199. //ColMerFlag
  200. var ColMerFlag = $("#gridList").jqGrid("getCell", strIds[i], "ColMerFlag");
  201. if (ColMerFlag == "false") {
  202. document.getElementById("ColMerFlag_" + IDStr).checked = false;
  203. }
  204. else
  205. {
  206. document.getElementById("ColMerFlag_" + IDStr).checked = true;
  207. }
  208. //ColMerKeyFlag
  209. var ColMerKeyFlag = $("#gridList").jqGrid("getCell", strIds[i], "ColMerKeyFlag");
  210. if (ColMerKeyFlag == "false") {
  211. document.getElementById("ColMerKeyFlag_" + IDStr).checked = false;
  212. }
  213. else {
  214. document.getElementById("ColMerKeyFlag_" + IDStr).checked = true;
  215. }
  216. //ColSumFlag
  217. var ColSumFlag = $("#gridList").jqGrid("getCell", strIds[i], "ColSumFlag");
  218. if (ColSumFlag == "false") {
  219. document.getElementById("ColSumFlag_" + IDStr).checked = false;
  220. }
  221. else {
  222. document.getElementById("ColSumFlag_" + IDStr).checked = true;
  223. }
  224. //VisbleFlag
  225. var VisbleFlag = $("#gridList").jqGrid("getCell", strIds[i], "VisbleFlag");
  226. if (VisbleFlag == "false") {
  227. document.getElementById("VisbleFlag_" + IDStr).checked = false;
  228. }
  229. else {
  230. document.getElementById("VisbleFlag_" + IDStr).checked = true;
  231. }
  232. //SortFlag
  233. var SortFlag = $("#gridList").jqGrid("getCell", strIds[i], "SortFlag");
  234. if (SortFlag == "false") {
  235. document.getElementById("SortFlag_" + IDStr).checked = false;
  236. }
  237. else {
  238. document.getElementById("SortFlag_" + IDStr).checked = true;
  239. }
  240. }
  241. FirstShow = 1;
  242. }
  243. NewLine = strIds.length;
  244. $("#gridList").jqGrid('hideCol', 'cb');//隐藏勾选框 //勾选框选中的时候 与行选中有异常,所以隐藏
  245. },
  246. });
  247. }
  248. function SHowcols(colname) {
  249. $("#gridList").setGridParam().showCol(colname);
  250. }
  251. function Hiddencols(colname) {
  252. $("#gridList").setGridParam().hideCol(colname);
  253. }
  254. //添加新增列
  255. function btn_ReSet()
  256. {
  257. $.ajax({
  258. url: "/SystemManage/CommonReport/ReSetCols" + "?" + Math.random(),
  259. type: "post",
  260. data: { MenuID: MenuID },
  261. async: false,
  262. success: function (data) {
  263. alert(data);
  264. NewLine = 0;
  265. MaxPaiXu = 0;
  266. FirstShow = 0;
  267. gridList();
  268. },
  269. error: function (aa) {
  270. //alert("异常:" + aa.responseText);
  271. $.modalAlertNew("WMS00015", aa.responseText);
  272. }
  273. });
  274. }
  275. //新增一行
  276. function btn_ADD() {
  277. NewLine = NewLine + 1;
  278. MaxPaiXu = MaxPaiXu + 1;
  279. var ids = jQuery("#gridList").jqGrid('getDataIDs');
  280. if (ids.length == 0) {
  281. ids = [0];
  282. }
  283. //获得当前最大行号(数据编号)
  284. var rowid = Math.max.apply(Math, ids);
  285. //获得新添加行的行号(数据编号)
  286. var newrowid = rowid + 1;
  287. $("#gridList").addRowData(newrowid,
  288. {//IDStr 显示名称 字段名称 数据类型 小数点位数 字段宽度
  289. //合并相同项 合并相同项Key 汇总 从属表头 显示 显示顺序 允许排序 自定义项 自定义公式
  290. //ColCaption ColFiledName DataType DefineFlag FunctionString DeciamlNum
  291. //ColWidth ColMerFlag ColMerKeyFlag ColSumFlag HeaderId COrder VisbleFlag SortFlag
  292. "IDStr": NewLine.toString(),
  293. "ColCaption": "",
  294. "ColFiledName": "",
  295. "DataType": "",
  296. "DeciamlNum": "",
  297. "ColWidth": "",
  298. "ColMerFlag": "",
  299. "ColMerKeyFlag": "",
  300. "ColSumFlag": "",
  301. "HeaderId": "",
  302. "VisbleFlag": "",
  303. "COrder": MaxPaiXu,
  304. "SortFlag": "",
  305. "DefineFlag": "",
  306. "FunctionString": "",
  307. "显示名称": "",
  308. "字段名称": "",
  309. "数据类型": "",
  310. "小数点位数": "",
  311. "字段宽度": "",
  312. "合并相同项": "",
  313. "合并相同项Key": "",
  314. "汇总": "",
  315. "从属表头": "",
  316. "显示": "",
  317. "显示顺序": "",
  318. "允许排序": "",
  319. "自定义项": "",
  320. "自定义公式": "",
  321. },
  322. "last");
  323. var unwritten = document.getElementsByClassName("unwritten")[0];
  324. if (unwritten != null && unwritten != 'undefined') {
  325. unwritten.style.display = "none";
  326. }
  327. // $(".unwritten").attr("display", "none");
  328. //刷新下拉框 select
  329. var strIds = $("#gridList").jqGrid("getDataIDs");
  330. var rr = strIds.length - 1;
  331. var IDStr = $("#gridList").jqGrid("getCell", strIds[rr], "IDStr");
  332. //DataType
  333. var selDataType = $("#gridList").jqGrid("getCell", strIds[rr], "DataType");
  334. $("#selDataType_" + IDStr).selectpicker('refresh');
  335. $("#selDataType_" + IDStr).selectpicker('val', selDataType);
  336. }
  337. //删除选中行
  338. function btn_Del() {
  339. var selectedRowIds = $("#gridList").jqGrid("getGridParam", "selarrrow");
  340. var len = selectedRowIds.length;
  341. for (var i = 0; i < len ; i++) {
  342. $("#gridList").jqGrid("delRowData", selectedRowIds[i]);
  343. }
  344. var selectedRowIds = $("#gridList").jqGrid("getGridParam", "selarrrow");
  345. var len = selectedRowIds.length;
  346. for (var i = 0; i < len ; i++) {
  347. $("#gridList").jqGrid("delRowData", selectedRowIds[i]);
  348. }
  349. }
  350. function submitForm() {
  351. var SubmitLine = new Array();
  352. var strIds = $("#gridList").jqGrid("getDataIDs");
  353. for (var i = 0; i < strIds.length; i++) {
  354. //IDStr 显示名称 字段名称 数据类型 小数点位数 字段宽度
  355. //合并相同项 合并相同项Key 汇总 从属表头 显示 显示顺序 允许排序 自定义项 自定义公式
  356. //ColCaption ColFiledName DataType DefineFlag FunctionString DeciamlNum
  357. //ColWidth ColMerFlag ColMerKeyFlag ColSumFlag HeaderId COrder VisbleFlag SortFlag
  358. var IDStr = $("#gridList").jqGrid("getCell", strIds[i], "IDStr");
  359. var ColCaption = $("#ColCaption_" + IDStr).val();
  360. var ColFiledName = $("#ColFiledName_" + IDStr).val();
  361. var ColCaption = $("#ColCaption_" + IDStr).val();
  362. var DataType = $("#selDataType_" + IDStr).val();
  363. var DefineFlag = checkboxToNumStr(document.getElementById("DefineFlag_" + IDStr));
  364. var FunctionString = $("#FunctionString_" + IDStr).val();
  365. var DeciamlNum = $("#DeciamlNum_" + IDStr).val();
  366. var ColWidth = $("#ColWidth_" + IDStr).val();
  367. var ColMerFlag = checkboxToNumStr(document.getElementById("ColMerFlag_" + IDStr));
  368. var ColMerKeyFlag = checkboxToNumStr(document.getElementById("ColMerKeyFlag_" + IDStr));
  369. var ColSumFlag = checkboxToNumStr(document.getElementById("ColSumFlag_" + IDStr));
  370. var HeaderId = $("#HeaderId_" + IDStr).val();
  371. var COrder = $("#COrder_" + IDStr).val();
  372. var VisbleFlag = checkboxToNumStr(document.getElementById("VisbleFlag_" + IDStr));
  373. var SortFlag = checkboxToNumStr(document.getElementById("SortFlag_" + IDStr));
  374. var obj = {
  375. Id:IDStr,
  376. ColCaption: ColCaption,
  377. ColFiledName: ColFiledName,
  378. DataType: DataType,
  379. DefineFlag: DefineFlag,
  380. FunctionString: FunctionString,
  381. DeciamlNum: DeciamlNum,
  382. ColWidth: ColWidth,
  383. ColMerFlag: ColMerFlag,
  384. ColMerKeyFlag: ColMerKeyFlag,
  385. ColSumFlag: ColSumFlag,
  386. HeaderId: HeaderId,
  387. COrder: COrder,
  388. VisbleFlag: VisbleFlag,
  389. SortFlag: SortFlag,
  390. }
  391. SubmitLine.push(obj);
  392. }
  393. $.ajax({
  394. url: "/SystemManage/CommonReport/SetCols" + "?" + Math.random(),
  395. type: "post",
  396. data: { SourceID: SourceID, List_Cols: JSON.stringify(SubmitLine), },
  397. async: false,
  398. success: function (data) {
  399. alert(data);
  400. $.modalClose();
  401. },
  402. error: function (aa) {
  403. //alert("异常:" + aa.responseText);
  404. $.modalAlertNew("WMS00015", aa.responseText);
  405. }
  406. });
  407. }
  408. </script>
  409. <form id="form1">
  410. <div style="margin-top: 10px; margin-left: 10px; margin-right: 10px;">
  411. <div class="form-group" style="height:40px;margin-bottom:5px">
  412. <div class="btn-group">
  413. <a id="Btn_ReSet" authorize="yes" class="btn btn-primary dropdown-text" onclick="btn_ReSet()"><i class="fa fa-plus"></i>添加新增列</a>
  414. @*<a id="Btn_ADD" authorize="yes" class="btn btn-primary dropdown-text" onclick="btn_ADD()"><i class="fa fa-plus"></i>新增</a>*@
  415. <a id="Btn_Del" authorize="yes" class="btn btn-primary dropdown-text" onclick="btn_Del()"><i class="fa fa-minus"></i>删除</a>
  416. </div>
  417. </div>
  418. <div class="gridPanel">
  419. <table id="gridList"></table>
  420. @*<div id="gridPager"></div>*@
  421. </div>
  422. </div>
  423. </form>