msgutil.js 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. // Licensed Materials - Property of IBM
  2. //
  3. // IBM Cognos Products: pps
  4. //
  5. // (C) Copyright IBM Corp. 2005, 2017
  6. //
  7. // US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
  8. // Message Utilities
  9. function CMsgUtil() {};
  10. // perform message substitution
  11. // message text contains %x where x defines the parameter number to be substituted
  12. CMsgUtil.SubstituteMessage = function (msgText, parm0, parm1, parm2, parm3, parm4, parm5, parm6)
  13. {
  14. // build parameter array
  15. var parmArray = new Array();
  16. for (var i = 0; i < 7; ++i) {
  17. var parmName = 'parm' + i;
  18. if (typeof eval(parmName) != 'undefined') {
  19. parmArray[i] = eval('parm' + i);
  20. }
  21. }
  22. // break the message up into pre-insertion parts
  23. // split for '%' followed by a single digit
  24. // store the substring and message parm index
  25. var msgParts = new Array();
  26. var parmRegExp = /%\d\b/;
  27. var testText = msgText;
  28. var splice = testText.match(parmRegExp);
  29. var idx = 0;
  30. while (splice != null) {
  31. msgParts[idx] = new Object();
  32. msgParts[idx].value = testText.substring(0, splice.index);
  33. msgParts[idx].msgNum = parseInt(splice[0].charAt(1));
  34. testText = testText.substring(splice.index + splice[0].length);
  35. splice = testText.match(parmRegExp);
  36. ++idx;
  37. }
  38. var last = new Object();
  39. last.value = testText;
  40. last.msgNum = 999; // choose invalid index for last string
  41. msgParts[msgParts.length] = last;
  42. // now generate result message
  43. var _result = "";
  44. for (var i = 0; i < msgParts.length; ++i) {
  45. _result += msgParts[i].value;
  46. if (msgParts[i].msgNum < parmArray.length) {
  47. _result += parmArray[msgParts[i].msgNum];
  48. }
  49. }
  50. return _result;
  51. }