📄 main.js
字号:
var div_alias = grid_in.rows[1].addCell({align:OAT.GridData.ALIGN_CENTER},ni); var input_alias = OAT.Dom.create("input",{font:"menu",border:"none",textAlign:"center"}); input_alias.setAttribute("type","text"); input_alias.value = alias; div_alias.appendChild(input_alias); var div_show = grid_in.rows[2].addCell({align:OAT.GridData.ALIGN_CENTER},ni); var check_show = OAT.Dom.create("input"); check_show.setAttribute("type","checkbox"); div_show.appendChild(check_show); check_show.checked = (show ? true : false); var div_order = grid_in.rows[3].addCell({align:OAT.GridData.ALIGN_CENTER},ni); var select_order = OAT.Dom.create("select",{font:"menu",boder:"none"}); OAT.Dom.option("[none]",0,select_order); OAT.Dom.option("Ascending",1,select_order); OAT.Dom.option("Descending",2,select_order); select_order.selectedIndex = order; div_order.appendChild(select_order); var div_conds_1 = []; for (var i=0;i<global_data.conds_1_count;i++) { div_conds_1.push(grid_in.rows[4+i].addCell({align:OAT.GridData.ALIGN_CENTER},ni)); } Columns.createConds(div_conds_1,conds_1,1); var div_group = grid_in.rows[4+global_data.conds_1_count].addCell({align:OAT.GridData.ALIGN_CENTER},ni); var check_group = OAT.Dom.create("input"); check_group.setAttribute("type","checkbox"); div_group.appendChild(check_group); check_group.checked = (group ? true : false); var div_conds_2 = []; for (var i=0;i<global_data.conds_2_count;i++) { div_conds_2.push(grid_in.rows[5+global_data.conds_1_count+i].addCell({align:OAT.GridData.ALIGN_CENTER},ni)); } Columns.createConds(div_conds_2,conds_2,2); Columns.updateCombos(); }, init:function(num_1,num_2) { global_data.conds_1_count = num_1; global_data.conds_2_count = num_2; grid_in = new OAT.Grid("grid_in",0); grid_in.createHeader([{value:" Query columns ",sortable:0,draggable:0,align:OAT.GridData.ALIGN_CENTER}]); var a = OAT.Dom.create("a"); a.setAttribute("href","#"); a.innerHTML = "clear"; OAT.Dom.attach(a,"click",function(){Columns.init(1,1);}); grid_in.header.cells[0].value.appendChild(a); grid_in.createRow(["Column"]); grid_in.createRow(["Alias"]); grid_in.createRow(["Show"]); grid_in.createRow(["Sort"]); grid_in.createRow(["Where conditions"]); for (var i=1;i<num_1;i++) { grid_in.createRow([".."]); } grid_in.createRow(["Group by"]); grid_in.createRow(["Having conditions"]); for (var i=1;i<num_2;i++) { grid_in.createRow([".."]); } Columns.blank(); }}function init() { /* xslt path */ $("options_xslt").value = OAT.Preferences.xsltPath; /* ajax */ dialogs.ajax = new OAT.Dialog("Please wait","ajax_alert",{width:240,modal:0,zIndex:1001,resize:0}); dialogs.ajax.ok = dialogs.ajax.hide; dialogs.ajax.cancel = dialogs.ajax.hide; OAT.Ajax.setCancel(dialogs.ajax.cancelBtn); OAT.Ajax.setStart(function() { if ($("options_ajax").checked) {dialogs.ajax.show();} }); OAT.Ajax.setEnd(dialogs.ajax.hide); /* ajax http errors */ $("options_http").checked = (OAT.Preferences.httpError == 1 ? true : false); OAT.Ajax.httpError = OAT.Preferences.httpError; OAT.Dom.attach("options_http","change",function(){OAT.Ajax.httpError = ($("options_http").checked ? 1 : 0);}); /* connection */ dialogs.connection = new OAT.Dialog("XMLA Data Provider Connection Setup","connection",{width:500,modal:1,buttons:1}); OAT.Dom.attach("endpoint","blur",Connection.discover_dsn); OAT.Dom.attach("endpoint","keyup",function(e) { if (e.keyCode == 13) { Connection.discover_dsn(); }}); OAT.Dom.attach("dsn","click",function(){if ($("dsn").childNodes.length == 0) { Connection.discover_dsn(); }}); OAT.Dom.attach("login_put_type","change",function(){if ($("dsn").childNodes.length == 0) { Connection.discover_dsn(); }}); dialogs.connection.ok = function(){Connection.use_dsn(1);}; dialogs.connection.cancel = dialogs.connection.hide; dialogs.connection.okBtn.setAttribute("disabled","disabled"); /* tabs */ tab = new OAT.Tab("content"); tab.add("tab_design","design"); tab.add("tab_query","query"); tab.add("tab_results","results"); tab.add("tab_pivot","pivot"); tab.go(0); /* columns grid */ Columns.init(1,1); /* relation edit */ dialogs.rel_props = new OAT.Dialog("Relation properties","rel_props",{modal:1,resize:0,width:400}); var rel_change = function() { dialogs.rel_props.object.type = $("rel_type").selectedIndex; } var rel_remove = function() { dialogs.rel_props.object.remove(); dialogs.rel_props.hide() } dialogs.rel_props.ok = dialogs.rel_props.hide; dialogs.rel_props.cancel = dialogs.rel_props.hide; OAT.Dom.attach("rel_type","change",rel_change); OAT.Dom.attach("rel_remove","click",rel_remove); /* save */ dialogs.save = new OAT.Dialog("Save","save",{width:400,modal:1}); dialogs.save.ok = function() { IO.lastQName = $v("save_name"); IO.save_type = $v("options_savetype"); dialogs.save.hide(); IO.save_q(); } dialogs.save.cancel = dialogs.save.hide; /* options */ dialogs.options = new OAT.Dialog("Options","options",{width:400,modal:1}); dialogs.options.ok = dialogs.options.hide; dialogs.options.cancel = dialogs.options.hide; /* pivot design */ dialogs.pivot_design = new OAT.Dialog("Pivot table design","pivot_design",{width:600,height:0,modal:1}); dialogs.pivot_design.ok = pivot_create; dialogs.pivot_design.cancel = dialogs.pivot_design.hide; /* tree tablelist */ dialogs.tablelist = new OAT.Window({title:"Tables", close:0, min:0, max:0, width:200, height:320, x:-20,y:10}); dialogs.tablelist.move._Drag_movers[0][1].restrictionFunction = function(l,t) { return l < 0 || t < 0; } $("design_area").appendChild(dialogs.tablelist.div); dialogs.tablelist.content.appendChild($("tablefilter")); dialogs.tablelist.content.appendChild($("tablelist")); dialogs.tablelist.list = $("tablelist"); /* drag'n'drop */ gd = new OAT.GhostDrag(); /* tables -> design */ gd.addTarget("design"); gd2 = new OAT.GhostDrag(); /* columns -> query */ gd2.addTarget("design_columns"); pivot_gd = new OAT.GhostDrag(); /* pivot design */ pivot_gd.addTarget("pivot_design_data"); pivot_gd.addTarget("pivot_design_headerrow"); pivot_gd.addTarget("pivot_design_headercol"); pivot_gd.addTarget("pivot_design_page"); pivot_gd.addTarget("pivot_design_base"); /* menu */ var m = new OAT.Menu(); m.noCloseFilter = "noclose"; m.createFromUL("menu"); OAT.Dom.attach("menu_about","click",function(){alert('Assembly date: '+OAT.Preferences.version);}); OAT.Dom.attach("menu_savep","click",function(){IO.save_p(pivot,false);}); OAT.Dom.attach("menu_saveasp","click",function(){IO.save_p(pivot,true);}); OAT.Dom.attach("menu_saveq","click",IO.save_q); OAT.Dom.attach("menu_saveasq","click",dialogs.save.show); OAT.Dom.attach("menu_loadq","click",IO.load_q); OAT.Dom.attach("menu_loadp","click",IO.load_p); OAT.Dom.attach("menu_pivot","click",function(){ pivot_design_prepare(); dialogs.pivot_design.show();}); OAT.Dom.attach("menu_pivot_refresh","click",pivot_refresh); OAT.Dom.attach("menu_options","click",dialogs.options.show); OAT.Dom.attach("menu_clear","click",function(){Tables.clear(); Columns.init(1,1);}); OAT.Dom.attach("menu_create","click",function(){Query.create(OAT.SqlQueryData.TYPE_SQL); tab.go(1); }); OAT.Dom.attach("menu_addcol","click",function() {tab.go(0); Columns.blank();}); var execRef = function(){ /* post-process by adding TOP (when selected), but only when SQL Passthrough is not active */ var q = $v("q"); if (!($("passthrough").checked) && !OAT.Preferences.useCursors) { q = q.replace(/[\n\r]/g," "); if ($("options_dolimit").checked && !(q.match(/^ *select +top/i))) { var part = q.match(/^ *select(.*)/i)[1]; q = "SELECT TOP "+$v("options_limit")+" "+part; } } query(q); } OAT.Dom.attach("menu_exec","click",execRef); OAT.Dom.attach("btn_exec","click",execRef); /* grid & nav */ var g = new OAT.FormObject["grid"](0,0,0); g.showAll = true; var n = new OAT.FormObject["nav"](0,0,0); $("grid_out").appendChild(g.elm); $("nav").appendChild(n.elm); g.elm.style.width = "100%"; g.init(); n.init(); datasource.bindRecord(n.bindRecordCallback); datasource.bindRecord(g.bindRecordCallback); datasource.bindPage(g.bindPageCallback); datasource.bindHeader(g.bindHeaderCallback); OAT.Dom.attach(n.first,"click",function() { datasource.advanceRecord(0); }); OAT.Dom.attach(n.prevp,"click",function() { datasource.advanceRecord(datasource.recordIndex - datasource.pageSize); }); OAT.Dom.attach(n.prev,"click",function() { datasource.advanceRecord("-1"); }); OAT.Dom.attach(n.next,"click",function() { datasource.advanceRecord("+1"); }); OAT.Dom.attach(n.nextp,"click",function() { datasource.advanceRecord(datasource.recordIndex + datasource.pageSize); });// OAT.Dom.attach(n.last,"click",function() { datasource.advanceRecord(parseInt(n.total.innerHTML)-1); }); OAT.Dom.attach(n.current,"keyup",function(event) { if (event.keyCode != 13) { return; } var value = parseInt($v(n.current)); datasource.advanceRecord(value-1); }); /* pivot aggregation */ var aggRef = function() { pivot.options.agg = parseInt($v("pivot_agg")); pivot.go(); } /* create agg function list */ OAT.Dom.clear("pivot_agg"); for (var i=0;i<OAT.Statistics.list.length;i++) { var item = OAT.Statistics.list[i]; OAT.Dom.option(item.shortDesc,i,"pivot_agg"); } $("pivot_agg").selectedIndex = 1; OAT.Dom.attach("pivot_agg","change",aggRef); /* resizing */ OAT.Resize.create("resizer_area","design_area",OAT.Resize.TYPE_Y); OAT.Resize.create("resizer_area","design_columns",-OAT.Resize.TYPE_Y); /* file name for saving */ var fileRef = function() { if ($("options_type_http").checked) { var name = OAT.Dav_old.getNewFile("/DAV/home/"+OAT.Ajax.user,".xml","xml"); if (!name) { return; } if (name.slice(name.length-4).toLowerCase() != ".xml") { name += ".xml"; } $("save_name").value = name; } if ($("options_type_dav").checked) { var options = { mode:'browser', onOKClick:function(path,fname){ var name = path + fname; $("save_name").value = name; }, user:OAT.Xmla.user, pass:OAT.Xmla.password, pathDefault:"/DAV/home/"+OAT.Xmla.user+"/", file_ext:'xml', onSaveClick:function() { return xml;} }; OAT.WebDav.open(options); } } OAT.Dom.attach("btn_browse","click",fileRef); var tabChangeRef = function(oldIndex,newIndex) { if (oldIndex == 0 && newIndex == 1) { Query.create(OAT.SqlQueryData.TYPE_SQL); } if (newIndex >= 1 && newIndex <= 3) { OAT.Dom.show("webclip"); } else { OAT.Dom.hide("webclip"); } } tab.goCallback = tabChangeRef; OAT.Dom.hide("webclip"); /* MS Live clipboard */ var onRef = function() {} var outRef = function() {} var genRef = function() { switch (tab.selectedIndex) { case 1: if (Query.obj) { return Query.glue(OAT.SqlQueryData.TYPE_SQL); } else { return ""; } break; case 2: return (lastQuery ? lastQuery : ""); break; case 3: if (pivot) { return pivot.toXML("",$("options_uid").checked,$v("q")); } else { return ""; } break; } } var pasteRef = function(xmlStr){ switch (tab.selectedIndex) { case 1: IO.loadProcess(xmlStr); break; case 2: query(xmlStr); break; case 3: pivot_design_load(xmlStr); break; } } var typeRef = function() { switch (tab.selectedIndex) { case 1: return "ol_query"; case 2: return "ol_grid"; case 3: return "ol_pivot"; } } OAT.WebClipBindings.bind("webclip", typeRef, genRef, pasteRef, onRef, outRef); /* query returning */ var returnRef = function() { window.__inherited.callback($v("q")); window.close(); } OAT.Dom.attach("btn_return","click",returnRef); /* DAV Browser init */ var options = { imagePath:'../images/', imageExt:'gif' }; OAT.WebDav.init(options); if (window.__inherited) { OAT.Xmla.user = window.__inherited.user; OAT.Xmla.password = window.__inherited.password; OAT.Xmla.endpoint = window.__inherited.endpoint; OAT.Xmla.dsn = window.__inherited.dsn; var h = $('options_type_http'); var d = $('options_type_dav'); h.checked = (window.__inherited.type == "http"); d.checked = (window.__inherited.type == "dav"); h.__checked = (h.checked ? "1" : "0"); d.__checked = (d.checked ? "1" : "0"); OAT.Dom.show("btn_return"); var cb = function() {} if (window.__inherited.query != "") { cb = function() { IO.loadProcess(window.__inherited.query); } } Connection.use_dsn(0,cb); } else { OAT.Dom.hide("btn_return"); dialogs.connection.show(); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -