datalistPrint.jsp 8.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250
  1. <%@ page language="java" contentType="text/html; charset=utf-8"
  2. pageEncoding="utf-8"%>
  3. <%
  4. String path = request.getContextPath();
  5. String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
  6. %>
  7. <!DOCTYPE html>
  8. <html>
  9. <head>
  10. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  11. <link rel="stylesheet" type="text/css" href="<%=basePath %>resource/ext/resources/css/ext-all-gray.css"/>
  12. <link rel="stylesheet" href="<%=basePath %>resource/css/main.css" type="text/css"></link>
  13. <script type="text/javascript" src="<%=basePath %>resource/ext/ext-all.js"></script>
  14. <script type="text/javascript" src="<%=basePath %>resource/i18n/i18n.js"></script>
  15. <script type="text/javascript" src="<%=basePath %>resource/ux/grid/GridHeaderFilters.js"></script>
  16. <script type="text/javascript" src="<%=basePath %>resource/ux/data/PagingMemoryProxy.js"></script>
  17. <script type="text/javascript" src="<%=basePath %>resource/ux/grid/Export.js"></script>
  18. <script type="text/javascript">
  19. Ext.Loader.setConfig({
  20. enabled: true
  21. });//开启动态加载
  22. //自定义控制层,其它的调用公共datalist配置。
  23. Ext.application({
  24. name: 'erp',//为应用程序起一个名字,相当于命名空间
  25. appFolder: basePath+'app',//app文件夹所在路径
  26. controllers: [//声明所用到的控制层
  27. 'common.datalistPrint'
  28. ],
  29. launch: function() {
  30. Ext.create('erp.view.common.datalist.Viewport');
  31. }
  32. });
  33. var caller = getUrlParam('whoami');
  34. var printType='<%=session.getAttribute("en_admin")%>';
  35. //var caller = '';
  36. var condition = '';
  37. var parentDoc = getUrlParam('parentDoc');// 对于Ext.window嵌套的datalist.jsp,可以将window的id传入,以便操作
  38. var page = 1;
  39. var value = 0;
  40. var total = 0;
  41. var dataCount = 0;//结果总数
  42. var msg = '';
  43. var height = window.innerHeight;
  44. if(Ext.isIE){//ie不支持window.innerHeight;document.documentElement.clientHeight == 0
  45. height = screen.height*0.73;
  46. }
  47. var pageSize = parseInt(height*0.7/23);
  48. var keyField = "";
  49. var pfField = "";
  50. var url = "";
  51. var relative = null;
  52. var Contextvalue="";
  53. var LastValue="";
  54. var _self=null;
  55. //给datalist加上ctrl+alt+s键盘事件,自动跳转datalist配置界面
  56. function onDatalistKeyDown(){
  57. if(Ext.isIE && !Ext.isIE11){
  58. document.body.attachEvent('onkeydown', function(){//ie的事件名称不同,也不支持addEventListener
  59. if(window.event.altKey && window.event.ctrlKey && window.event.keyCode == 83){
  60. openTable('DataList维护(' + caller + ')', "jsps/ma/dataList.jsp?formCondition=dl_callerIS'" + caller + "'" +
  61. "&gridCondition=dld_callerIS'" + caller + "'");
  62. }
  63. });
  64. } else {
  65. document.body.addEventListener("keydown", function(e){
  66. if(Ext.isFF5){//firefox不支持window.event
  67. e = e || window.event;
  68. }
  69. if(e.altKey && e.ctrlKey && e.keyCode == 83){
  70. openTable('DataList维护(' + caller + ')', "jsps/ma/dataList.jsp?formCondition=dl_callerIS'" + caller + "'" +
  71. "&gridCondition=dld_callerIS'" + caller + "'");
  72. }
  73. });
  74. }
  75. }
  76. function openTable(title, url){
  77. var main = parent.Ext.getCmp("content-panel");
  78. if(!main){
  79. var main = parent.parent.Ext.getCmp("content-panel");
  80. }
  81. //@goua 针对问题反馈2017010379,通过activeTab.id来设置唯一id
  82. var id = main.activeTab.id+"_"+caller;
  83. var panel = parent.Ext.getCmp(id);
  84. if(!panel){
  85. panel = {
  86. id:id,
  87. title : caller,
  88. tag : 'iframe',
  89. tabConfig:{tooltip: title},
  90. frame : true,
  91. border : false,
  92. layout : 'fit',
  93. iconCls : 'x-tree-icon-tab-tab',
  94. html : '<iframe id="iframe_maindetail_pageSet" src="' + basePath + url + '" height="100%" width="100%" frameborder="0" scrolling="no"></iframe>',
  95. closable : true,
  96. listeners : {
  97. close : function(){
  98. main.setActiveTab(main.getActiveTab().id);
  99. }
  100. }
  101. };
  102. var p = main.add(panel);
  103. main.setActiveTab(p);
  104. }else{
  105. main.setActiveTab(panel);
  106. }
  107. }
  108. function openTable1(id, caller, title, link, key, detailKey, condition,relateMaster,limit){console.log(101);
  109. var main = parent.Ext.getCmp("content-panel");
  110. var item=main.items.items[0];
  111. var panel = Ext.getCmp('' + id);
  112. var url = parseUrl(link);
  113. if(id){
  114. if(caller){
  115. panel = Ext.getCmp(caller + id);
  116. if(url.indexOf('?')>0) {
  117. url = link + '&whoami=' + caller;
  118. }
  119. else url = link + '?whoami=' + caller;
  120. url = url + '&formCondition=' + key + '=' + id + '&gridCondition=' + detailKey + '=' + id;
  121. }
  122. } else {
  123. if(condition != null){
  124. url += '&urlcondition=' + parseUrl(condition);
  125. }
  126. }
  127. if(!limit){
  128. if(url.indexOf('?') > 0)
  129. url += '&_noc=1';
  130. else
  131. url += '?_noc=1';
  132. }
  133. if(relateMaster && relateMaster!='null'){
  134. url+='&newMaster='+relateMaster;
  135. }
  136. if( relateMaster && relateMaster!='null' ){
  137. var currentMaster = parent.window.sob;
  138. if ( currentMaster/* && currentMaster != relateMaster */) {// 无论账套是否一致都创建临时会话
  139. if (parent.Ext) {
  140. Ext.Ajax.request({
  141. url: basePath + 'common/changeMaster.action',
  142. params: {
  143. to: relateMaster
  144. },
  145. callback: function(opt, s, r) {
  146. if (s) {
  147. url+='&_center=1';
  148. var localJson = new Ext.decode(r.responseText);
  149. var win = parent.Ext.create('Ext.Window', {
  150. width: '100%',
  151. height: '100%',
  152. draggable: false,
  153. closable: false,
  154. modal: true,
  155. title: '创建到账套 ' + localJson.currentMaster + ' 的临时会话',
  156. id:'modalwindow',
  157. historyMaster:currentMaster,
  158. relateMaster:relateMaster,
  159. html : '<iframe src="' + url + '" height="100%" width="100%" frameborder="0" style="border-width: 0px;padding: 0px;" scrolling="auto"></iframe>',
  160. buttonAlign: 'center',
  161. buttons: [{
  162. text: $I18N.common.button.erpCloseButton,
  163. cls: 'x-btn-blue',
  164. id: 'close',
  165. handler: function(b) {
  166. Ext.Ajax.request({
  167. url: basePath + 'common/changeMaster.action',
  168. params: {
  169. to: currentMaster
  170. },
  171. callback: function(opt, s, r) {
  172. if (s) {
  173. b.up('window').close();
  174. } else {
  175. alert('切换到原账套失败!');
  176. }
  177. }
  178. });
  179. }
  180. }]
  181. });
  182. win.show();
  183. } else {
  184. alert('无法创建到账套' + relateMaster + '的临时会话!');
  185. }
  186. }
  187. });
  188. }
  189. return;
  190. }
  191. }
  192. if(!panel){
  193. panel = {
  194. title : title.substring(0, title.toString().length > 5 ? 5 : title.toString().length),
  195. tag : 'iframe',
  196. tabConfig:{tooltip: title},
  197. border : false,
  198. layout : 'fit',
  199. iconCls : 'x-tree-icon-tab-tab',
  200. html : '<iframe id="iframe" src="' + basePath + url + '" height="100%" width="100%" frameborder="0" scrolling="auto"></iframe>',
  201. closable : true,
  202. listeners : {
  203. close : function(){
  204. main.setActiveTab(main.getActiveTab().id);
  205. }
  206. }
  207. };
  208. openTab(panel, panel.id);
  209. }else{
  210. main.setActiveTab(panel);
  211. }
  212. }
  213. function parseUrl(url) {
  214. var id = url.substring(url.lastIndexOf('?')+1);
  215. if (id == null) {
  216. id = url.substring(0,url.lastIndexOf('.'));
  217. }
  218. if(contains(url, 'session:em_uu', true)){
  219. url = url.replace(/session:em_uu/,em_uu);
  220. }
  221. if(contains(url, 'session:em_code', true)){
  222. url = url.replace(/session:em_code/, "'" + em_code + "'");
  223. }
  224. if(contains(url, 'sysdate', true)){
  225. url = url.replace(/sysdate/, "to_date('" + Ext.Date.toString(new Date()) + "','yyyy-mm-dd')");
  226. }
  227. if(contains(url, 'session:em_name', true)){
  228. url = url.replace(/session:em_name/,"'"+em_name+"'" );
  229. }
  230. return url;
  231. }
  232. function openTab(panel, id){
  233. var o = (typeof panel == "string" ? panel : id || panel.id);
  234. var main = parent.Ext.getCmp("content-panel");
  235. var tab = main.getComponent(o);
  236. if (tab) {
  237. main.setActiveTab(tab);
  238. } else if(typeof panel!="string"){
  239. panel.id = o;
  240. var p = main.add(panel);
  241. main.setActiveTab(p);
  242. }
  243. }
  244. </script>
  245. </head>
  246. <body onload="onDatalistKeyDown()">
  247. </body>
  248. </html>