123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200 |
- function buildCustomRangesCalcExpression()
- {
- var sColExp = cf.dlgGlobalGetParm('xxColumnExpression');
- var sDecimalSeparator = goDialogManager.getMiniQueryManager().getDecimalSeparator();
- var sListSeparator = goDialogManager.getMiniQueryManager().getListSeparator();
- var sCalcExpr = "";
- var bIsFirst = true;
- var bIfOutput = false;
- for (var i = 0; i < customRangeNames.length; i++)
- {
- var oRangeLiteral = new CRangeLiteral(customRangeValues[i], customRangeNames[i]);
- var iRangeType = oRangeLiteral.getFilterType();
- if (bIsFirst)
- {
- sCalcExpr = "if (";
- bIsFirst = false;
- }
- else
- {
- sCalcExpr += " else if (";
- }
-
- if (cf.dlgGlobalGetParm('xxCustomType') == '1' && cf.dlgGlobalGetParm('xxAggregateType') != null)
- {
- sCalcExpr += cf.dlgGlobalGetParm('xxAggregateType') + "(" + sColExp + ")";
- }
- else if (cf.dlgGlobalGetParm('xxCustomType') != '0')
- {
- sCalcExpr += sColExp;
- }
- if (cf.dlgGlobalGetParm('xxCustomType') == '0')
- {
- switch (iRangeType)
- {
- case 0:
- sCalcExpr += "substring(" + sColExp + ", 1, " + oRangeLiteral.getFirstValue().length + ") in_range {'" + oRangeLiteral.getFirstValue().replace(/'/g, "''").replace("\.", sDecimalSeparator) + "'}";
- break;
- case 1:
- sCalcExpr += "substring(" + sColExp + ", 1, " + oRangeLiteral.getFirstValue().length + ") in_range {'" + oRangeLiteral.getFirstValue().replace(/'/g, "''").replace("\.", sDecimalSeparator) + "':}";
- break;
- case 2:
- sCalcExpr += "substring(" + sColExp + ", 1, " + oRangeLiteral.getSecondValue().length + ") in_range {:'" + oRangeLiteral.getSecondValue().replace(/'/g, "''").replace("\.", sDecimalSeparator) + "'}";
- break;
- case 3:
- sCalcExpr += "substring(" + sColExp + ", 1, " + oRangeLiteral.getSecondValue().length + ") in_range {'" + oRangeLiteral.getFirstValue().replace(/'/g, "''").replace("\.", sDecimalSeparator) + "' : '" + oRangeLiteral.getSecondValue().replace(/'/g, "''").replace("\.", sDecimalSeparator) + "'}";
- break;
- default:
- return;
- }
- }
- else
- {
- var sFirstValue = oRangeLiteral.getFirstValue();
- var sSecondValue = oRangeLiteral.getSecondValue();
- if ((cf.dlgGlobalGetParm('xxCustomType') != '3') && (cf.dlgGlobalGetParm('xxCustomType') != '4') && (cf.dlgGlobalGetParm('xxCustomType') != '5'))
- {
-
- if (sFirstValue)
- {
- sFirstValue = sFirstValue.replace("\.", sDecimalSeparator);
- }
- if (sSecondValue)
- {
- sSecondValue = sSecondValue.replace("\.", sDecimalSeparator);
- }
- }
- switch (iRangeType)
- {
- case 0:
- sCalcExpr += " in_range {" + sFirstValue + "}";
- break;
- case 1:
- sCalcExpr += " in_range {" + sFirstValue + ":}";
- break;
- case 2:
- sCalcExpr += " in_range {:" + sSecondValue + "}";
- break;
- case 3:
- sCalcExpr += " in_range {" + sFirstValue + " : " + sSecondValue + "}";
- break;
- default:
- return;
- }
- }
- sCalcExpr += ") then ('" + customRangeNames[i].replace(/'/g, "''") + "')";
- bIfOutput = true;
- }
-
- var oMQMgr = goDialogManager.getMiniQueryManager();
- if (bIfOutput)
- {
- sCalcExpr += " else (";
- }
- else if (customRangeNames.length == 0)
- {
- var oMQCols = oMQMgr.getElementsByAttribute("expression", sColExp);
- if (oMQCols.length > 0 && oMQMgr.isNumeric(oMQCols[0]))
- {
- sCalcExpr = "if (" + sColExp + " in_range {1:0}) then (null) else (";
- }
- else
- {
- sCalcExpr = "if (" + sColExp + " in ('')) then (null) else (";
- }
- }
- if (sCalcExpr != "")
- {
-
- if (document.f.remaining_values_options[0].checked == true)
- {
- if (cf.dlgGlobalGetParm('xxCustomType') == '0')
- {
- sCalcExpr += sColExp;
- }
- else if (cf.dlgGlobalGetParm('xxCustomType') == '1')
- {
- var iNumDecs
- var iColumnIdx = cf.dlgGlobalGetParm('xxColumnIndex');
- var colDataType = oMQMgr.getDataType(iColumnIdx);
-
-
-
- if(colDataType == 3 || colDataType == 20 || colDataType == 30 || colDataType == 31 || colDataType == 32)
- {
- iNumDecs = (cf.dlgGlobalGetParm('xxNumDecimals') ? cf.dlgGlobalGetParm('xxNumDecimals') : 2);
- }
- else
- {
- iNumDecs = (cf.dlgGlobalGetParm('xxNumDecimals') ? cf.dlgGlobalGetParm('xxNumDecimals') : 0);
- }
-
- if (parseInt(iNumDecs) > 6)
- {
- iNumDecs = 6;
- }
- if (cf.dlgGlobalGetParm('xxAggregateType') == null)
- {
-
- if(gsCustomGroups == "TRUE")
- sCalcExpr += "CAST(CAST((" + sColExp + ") as decimal(20" + sListSeparator + iNumDecs + ")) as varchar(20))";
- else
- sCalcExpr += "CAST(CAST((" + sColExp + ") as decimal(20" + sListSeparator + iNumDecs + ")) as nvarchar(20))";
- }
- else
- {
-
- if(gsCustomGroups == "TRUE")
- sCalcExpr += "CAST(CAST(" + cf.dlgGlobalGetParm('xxAggregateType') + "(" + sColExp + ") as decimal(20" + sListSeparator + iNumDecs + ")) as varchar(20))";
- else
- sCalcExpr += "CAST(CAST(" + cf.dlgGlobalGetParm('xxAggregateType') + "(" + sColExp + ") as decimal(20" + sListSeparator + iNumDecs + ")) as nvarchar(20))";
- }
- }
- else
- {
-
- if(gsCustomGroups == "TRUE")
- sCalcExpr += "CAST(" + sColExp + " as varchar(30))";
- else
- sCalcExpr += "CAST(" + sColExp + " as nvarchar(30))";
- }
- }
- else if ((document.f.remaining_values_options[1].checked == true) || (document.f.remaining_values_options[2].checked == true && document.f.range_name_text.value == ""))
- {
- sCalcExpr += "null";
- }
- else
- {
-
- if(gsCustomGroups == "TRUE")
- sCalcExpr += "CAST('" + document.f.range_name_text.value.replace(/'/g, "''") + "' as varchar(30))";
- else
- sCalcExpr += "CAST('" + document.f.range_name_text.value.replace(/'/g, "''") + "' as nvarchar(30))";
- }
- sCalcExpr += ")";
- }
- return sCalcExpr;
- };
|