123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172 |
- function CPaste()
- {
- };
- CPaste.prototype = new AFeatureObject();
- CPaste.prototype.setup = function (aFeatureParams)
- {
- paste();
- };
- function paste()
- {
- var oMQMgr = goApplicationManager.getMiniQueryManager();
- var rf = getReportFrame();
- if (cfgSize("CutColumns") == 0)
- return;
- if (oMQMgr.getAllColumns().length == cfgSize("CutColumns"))
- {
- goApplicationManager.getSelectionController().setCutColumns(false);
- return;
- }
- doPaste();
- };
- function createOrderListForPaste()
- {
- var oMQMgr = goApplicationManager.getMiniQueryManager();
- var orderList = new Array();
- var bInserted = false;
- var bInsertAtEnd = (cfgSize("SelColumns") == 0);
- var i, j;
- for (i = 0; i < oMQMgr.getAllColumns().length; i++)
- {
- if (!bInserted && !bInsertAtEnd)
- {
- if ((i == 0 && oMQMgr.isReportExpression(cfgGetAt("SelColumns", 0))) || cfgGetAt("SelColumns", 0) == i)
- {
- for (j = 0; j < cfgSize("CutColumns"); j++)
- orderList[orderList.length] = cfgGetAt("CutColumns", j);
- bInserted = true;
- }
- }
- if (cfgIndexOf("CutColumns", i) == -1)
- orderList[orderList.length] = i;
- }
- if (bInsertAtEnd)
- {
- for (j = 0; j < cfgSize("CutColumns"); j++)
- orderList[orderList.length] = cfgGetAt("CutColumns", j);
- }
- return orderList;
- };
- function doPaste()
- {
- var oMQMgr = goApplicationManager.getMiniQueryManager();
- var cmd = "";
- var cmdArray = new Array();
- if (oMQMgr.hasGroupedColumns() || oMQMgr.hasPivottedColumns())
- {
-
- var insertColRole;
- var prevColRole;
- if (cfgSize("SelColumns") == 0)
- {
- insertColRole = oMQMgr.getColumnRole(oMQMgr.getAllColumns().length - 1);
- prevColRole = insertColRole;
- }
- else if (oMQMgr.isReportExpression(cfgGetAt("SelColumns", 0)) || cfgGetAt("SelColumns",0) == 0)
- {
- insertColRole = oMQMgr.getColumnRole(0);
- prevColRole = insertColRole;
- }
- else
- {
- insertColRole = oMQMgr.getColumnRole(cfgGetAt("SelColumns",0));
- prevColRole = oMQMgr.getColumnRole(cfgGetAt("SelColumns",0)-1);
-
-
- if (oMQMgr.hasPivottedColumns() && insertColRole === MINI_QUERY_GROUP_PIVOT)
- {
- prevColRole = insertColRole;
- }
- }
- var groupType;
- if (insertColRole == prevColRole)
- {
- groupType = getGroupTypeFromRole(insertColRole);
- cmdArray[0] = escapeParam(groupType);
- for (j = 0; j < cfgSize("CutColumns"); j++)
- cmdArray[cmdArray.length] = escapeParam(oMQMgr.getColumnId(cfgGetAt("CutColumns", j)));
- cmd = createCommand("M","G",cmdArray);
- }
- else
- {
-
- var n = 0;
- for (j = 0; j < cfgSize("CutColumns"); j++)
- if (cfgGetAt("CutColumns", j) < cfgGetAt("SelColumns", 0))
- n++;
- if (n > 0)
- {
- groupType = getGroupTypeFromRole(prevColRole);
- cmdArray[0] = groupType;
- for (j = 0; j < cfgSize("CutColumns"); j++)
- {
- if (cfgGetAt("CutColumns", j) < cfgGetAt("SelColumns", 0))
- cmdArray[cmdArray.length] = escapeParam(oMQMgr.getColumnId(cfgGetAt("CutColumns", j)));
- }
- }
- else if (n < cfgSize("CutColumns"))
- {
- groupType = getGroupTypeFromRole(insertColRole);
- cmdArray[0] = escapeParam(groupType);
- for (j = 0; j < cfgSize("CutColumns"); j++)
- {
- if (cfgGetAt("CutColumns", j) >= cfgGetAt("SelColumns", 0))
- cmdArray[cmdArray.length] = escapeParam(oMQMgr.getColumnId(cfgGetAt("CutColumns", j)));
- }
- }
- cmd = createCommand("M","G",cmdArray);
- }
- }
-
- var orderList = new Array();
- cmdArray = new Array();
- orderList = createOrderListForPaste();
- if (cmd.length > 0)
- cmd += ";";
- for (i = 0; i < orderList.length; i++)
- cmdArray[cmdArray.length] = escapeParam(oMQMgr.getColumnId(orderList[i]));
- cmd += createCommand("O","R",cmdArray);
- sendCmd(cmd, "", true);
- };
- function getGroupTypeFromRole(role)
- {
- switch (role)
- {
- case MINI_QUERY_GROUP_SECTION:
- return "headergroup";
- case MINI_QUERY_GROUP_LIST:
- return "colgroup";
- case MINI_QUERY_GROUP_PIVOT:
- return "pivotgroup";
- case MINI_QUERY_NONE_STR:
- return "nogroup";
- }
- };
|