concatDlg.js 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203
  1. /****************************************************************
  2. ** Licensed Materials - Property of IBM
  3. **
  4. ** BI and PM: qs
  5. **
  6. ** (C) Copyright IBM Corp. 2001, 2015
  7. **
  8. ** US Government Users Restricted Rights - Use, duplication or
  9. ** disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
  10. *****************************************************************/
  11. // Copyright (C) 2008 Cognos ULC, an IBM Company. All Rights Reserved.
  12. // Cognos and the Cognos logo are trademarks of Cognos ULC (formerly Cognos Incorporated) in the United States and/or other countries. IBM and the IBM logo are trademarks of International Business Machines Corporation in the United States, or other countries, or both. Other company, product, or service names may be trademarks or service marks of others.
  13. function generateText(listSeparator)
  14. {
  15. if (document.f.repSel.length == 0)
  16. {
  17. return "";
  18. }
  19. var sFirst = "";
  20. var sSecond = "";
  21. var sMiddle = "";
  22. var sCalcExpr = document.f.repSel.options[0].value;
  23. var sTextBoxString1 = document.f.firsttext.value;
  24. var sTextBoxString2 = document.f.secondtext.value;
  25. var sTextBoxString3 = document.f.middletext.value;
  26. var sFirstText = "";
  27. var sSecondText = "";
  28. var sMiddleText = "";
  29. if (document.f.preceding.checked)
  30. {
  31. if (document.getElementById("textBoxString1").style.display != "none")
  32. sFirstText = sTextBoxString1;
  33. else
  34. sFirstText = substVarValuePreceding;
  35. }
  36. if (document.f.following.checked)
  37. {
  38. if (document.getElementById("textBoxString2").style.display != "none")
  39. sSecondText = sTextBoxString2;
  40. else
  41. sSecondText = substVarValueFollowing;
  42. }
  43. if (document.f.middletext)
  44. {
  45. if (document.getElementById("textBoxString3").style.display != "none")
  46. sMiddleText = sTextBoxString3;
  47. else
  48. sMiddleText = substVarValueMiddle;
  49. }
  50. if (document.f.preceding.checked && sFirstText != "")
  51. {
  52. if (document.getElementById("textBoxString1").style.display != "none")
  53. {
  54. sFirstText = sFirstText.replace(/'/g, "''");
  55. sFirst += "'" + sFirstText + "'";
  56. }
  57. else
  58. sFirst += sFirstText;
  59. }
  60. if (document.f.following.checked && sSecondText != "")
  61. {
  62. if (document.getElementById("textBoxString2").style.display != "none")
  63. {
  64. sSecondText = sSecondText.replace(/'/g, "''");
  65. sSecond += "'" + sSecondText + "'";
  66. }
  67. else
  68. sSecond += sSecondText;
  69. }
  70. if (document.f.middletext && document.f.middle[1].checked == true)
  71. {
  72. sMiddle += "' '";
  73. }
  74. else if (document.f.middletext && document.f.middle[2].checked && sMiddleText != "")
  75. {
  76. if (document.getElementById("textBoxString3").style.display != "none")
  77. {
  78. sMiddleText = sMiddleText.replace(/'/g, "''");
  79. sMiddle += "'" + sMiddleText + "'";
  80. }
  81. else
  82. {
  83. sMiddle += sMiddleText;
  84. }
  85. }
  86. var iColumnCount = document.f.repSel.options.length;
  87. if (iColumnCount == 1)
  88. {
  89. var sOtherwise = "";
  90. if (sFirst !== "")
  91. {
  92. sCalcExpr = sFirst + " || " + sCalcExpr;
  93. sOtherwise = sFirstText;
  94. }
  95. if (sSecond !== "")
  96. {
  97. sCalcExpr += " || " + sSecond;
  98. sOtherwise += sSecondText;
  99. }
  100. if (sOtherwise !== "")
  101. {
  102. sCalcExpr = "COALESCE((" + sCalcExpr + ")" + listSeparator + " '" + sOtherwise + "')";
  103. }
  104. }
  105. else
  106. {
  107. var sBeginExpr = "";
  108. var sMiddleExpr = "";
  109. var sEndExpr = "";
  110. var iCurrentColumn = 0;
  111. if (sFirst !== "")
  112. {
  113. sBeginExpr = "COALESCE((" + sFirst + " || " + document.f.repSel.options[iCurrentColumn].value + ")" + listSeparator + " '" + sFirstText + "') || ";
  114. iCurrentColumn++;
  115. }
  116. if (sSecond !== "")
  117. {
  118. sEndExpr = "COALESCE((" + document.f.repSel.options[document.f.repSel.options.length - 1].value + " || " + sSecond + ")" + listSeparator + " '" + sSecondText + "')";
  119. iColumnCount--;
  120. }
  121. sCalcExpr = "";
  122. if (sMiddle !== "")
  123. {
  124. if (iCurrentColumn == iColumnCount)
  125. {
  126. sCalcExpr = sMiddle;
  127. }
  128. else
  129. {
  130. sMiddleExpr = "COALESCE((" + sMiddle + " || QSCONCATTEMPPLACEHOLDER)" + listSeparator + " " + sMiddle + ")";
  131. }
  132. }
  133. else
  134. {
  135. sMiddleExpr = "QSCONCATTEMPPLACEHOLDER";
  136. }
  137. for (var i = iCurrentColumn; i < iColumnCount; i++)
  138. {
  139. if (i != iCurrentColumn)
  140. {
  141. sCalcExpr += " || ";
  142. }
  143. if (sMiddleExpr !== "")
  144. {
  145. if (i == iCurrentColumn && sBeginExpr === "")
  146. {
  147. if (sMiddle !== "")
  148. {
  149. if (iColumnCount >= 2)
  150. {
  151. sCalcExpr += "QSCONCATTEMPPLACEHOLDER";
  152. }
  153. else
  154. {
  155. sCalcExpr += "COALESCE((QSCONCATTEMPPLACEHOLDER || " + sMiddle + ")" + listSeparator + " " + sMiddle + ")";
  156. }
  157. }
  158. else
  159. {
  160. sCalcExpr += sMiddleExpr;
  161. }
  162. sCalcExpr = sCalcExpr.replace(/QSCONCATTEMPPLACEHOLDER/, document.f.repSel.options[i].value);
  163. }
  164. else
  165. {
  166. sCalcExpr += sMiddleExpr.replace(/QSCONCATTEMPPLACEHOLDER/, document.f.repSel.options[i].value);
  167. }
  168. }
  169. }
  170. sCalcExpr = sBeginExpr + sCalcExpr;
  171. if (sEndExpr !== "")
  172. {
  173. if (sCalcExpr === sBeginExpr)
  174. {
  175. if (iColumnCount >= 2 && sMiddle !== "")
  176. {
  177. sCalcExpr += sMiddle + " || ";
  178. }
  179. sCalcExpr += sEndExpr;
  180. }
  181. else
  182. {
  183. if (iColumnCount >= 2 && sMiddle !== "")
  184. {
  185. sCalcExpr += " || " + sMiddle;
  186. }
  187. sCalcExpr += " || " + sEndExpr;
  188. }
  189. }
  190. }
  191. return sCalcExpr;
  192. };