SQL editor script error
When opening the sql editor I get an Internet Explorer script error:
Line: 4438
Char: 1
Error: Object expected
Code: 0
URL: http://osldep2.agra.int:50100/VCRes/webContent/VisualComposer/6.00/bin/14463730.htm?2882006.935
Any ideas?
Henning
OK. I'm reaching here, but maybe this is it. The SQL Editor requires that you have specified that you have permissions to run this in the Visual Administrator. If this isn't done, then it pops up a window saying this isn't enabled. If you have a popup blocker, this could cause such a message.
Similar Messages
-
My scripts all contain relative file paths e.g.
@@../directory1/file1.sql
Is there a way of setting the current working directory in SQL Developer to make this work?
In SQL*Plus for windows you simply opened the file but this does not seem to work.As I said, run them in SQL*Plus.
SQL*Developer is a development tool and database browser, not a SQLPLus clone.
It has its own methods of extracting data which may or may not suit your output requirements. You don't need col statements as much if you are viewing data in a grid, for example. [1]
I don't know what you use the sqlplus scripts for, but they could be replaced over time with some combination of Apex, SQLDeveloper reports and straight sqldeveloper queries.
As for SQL*PLus being greyed out on the menu, there are some known issues about that. I think one of them is that you need to be using tns connections. However, the sqlplus menu item is gone in sqldeveloper 1.5 so don't rely on it. Learn to run if from the command line.
[1] Despite that, I would arguethat SQLDeveloper should support all (with tiny exceptions) SQLPlus commands. Not because I see it as a sqlplus replacement, but so it can be used to develop scripts which can then be run in SQL*Plus without amendment (without the hassle of switching back and forth during development) -
Function list for pl/sql package script in file editor
Hello,
i am editing a pl/sql package file in the editor an run this script to activate my changes. is there an possibility to see the functions and procedures list which exists in this file ?
Regards
SaschaNo, you have to use the PL/SQL editor for that, so once you have your code in the DB, open it through the navigator tree.
FWIW, there's a request to use the same editor for file based PL/SQL at the Exchange, where you can vote on (http://htmldb.oracle.com/pls/otn/f?p=42626:39:966831210668515::NO::P39_ID:3262).
This will enable procedure breakdown, run/debug, clickable compilation errors, ...
Regards,
K. -
ORA-00936 error from SQL expression in SQL*Loader script
I am getting the above error on the following line in my SQL*Loader script:
DIA_CLM_RES_OID DECIMAL EXTERNAL
"SELECT N_ORG_ENTY_ID FROM TESTG4.ORG_ENTITY
WHERE N_USER_ID =
(SELECT UNIQUE WSR_NT_ID FROM CONV_CLM_RESOURCE
WHERE CLM_RES_OID = :DIA_CLM_RES_OID)",
What I am basically trying to do is a 2-table lookup of a value:
1. Find a row in table CONV_CLM_RESOURCE where the value in column CLM_RES_OID matches the value in the input file in field DIA_CLM_RES_OID.
2. Take the value of field WSR_NT_ID from that row and use it to find a row in table TESTG4.ORG_ENTITY.
3. Take the value of field WSR_NT_ID from that row and set it in the target table in field DIA_CLM_RES_OID.
In other words, I am essentially trying to translate the input value by using two other tables to lookup the value to translate to. However, no matter how I arrange it, I keep getting the "ORA-00936: missing expression" error on this statement.
Can anyone see what I am doing wrong, or perhaps suggest a better way of accomplishing a two-table translation of a value?
Thanks!Still not sure why this doesn't work, but I was able to create and use a function to do this instead, which is probably a better approach anyway.
-
SQL*Loader-523 error in solaris sh script
I have a SQLLdr script that I want to call from a unix shell (sh) script. We are running on Solaris 8. When we run from the command line the Sqlldr works, when we run from within a shell script, we are getting an STD ERR -2 error. I have tried running SQLldr with the -s (silent option) and silent = all but it doesn't seem to be helping.
I pasted the error that I am getting below.
Thanks,
Greg
SQL*Loader: Release 8.1.5.0.0 - Production on Wed Jul 19 15:20:48 2000
(c) Copyright 1999 Oracle Corporation. All rights reserved.
SQL*Loader-523: error -2 writing to file (STDERR)...Ugh, it was working for about 5 seconds on my test page, but now it's just giving me an exit status of 137(Anyone have any clue what this means? I can't find anything that tells me what these exit number means and it's really starting to bug me) after I commented and uncommented a few lines to check to see what caused it to work...Hah! Works again. New Question time:
LD_PRELOAD, what does this variable have to do with SQL*Loader, since I'm using it in the apache start-up to do some stuff with oci8[No idea if it's necessary] and when I, assumedly, set it to "null" it works, but when it keeps my initial value it breaks and gives me my 137 error status with my original errors. -
Error on using CLOB in Report's PL/SQL Editor
Hi Guys,
I am using the Reports 9i (2.9.0.1.0) and using a field in Format Trigger to check is null or not. Field's datatype is CLOB. I am getting error on using this field in PL/SQL Editor otherwise data is showing on Layout Editor nicely.
Does CLOB is not support in PL/SQL in Report Writer? Any Solution or work around?
Thanks in Adv.I see Scott,
well, the tricky bit is in that one must guess the maximum number of elements as one cannot just truncate the string somewhere because it is made up of html tags.
What is the maximum string length permitted inside substitution strings?
May be I can work around the problem by using substitution strings placed inside the "custom heading", instead of using the PL/SQL heading.
That would also make the heading easier to maintain, by separating each column logically.
At any rate, I'd say that CLOBs are a possible alternative that you should be willing to support in a future release of HTML DB.
Thanks and bye,
Flavio -
Adcrtbsp.sql scripts error ora-01119
Step-6 AD preparation scripts for up-gradation to release-12.
I have download patch 5726010.
I am trying to run scripts adcrtbsp.sql but it is giving following error.
sqlplus system/pwd @adcrtbsp.sql
CREATE TABLESPACE
ERROR at line 1:
ORA-01119: error in creating database file 'f:/oracle/dbf/transaction_table.dbf'
ORA-27040: skgfrcre: create error, unable to create file
OSD-04002: unable to open file
O/S-Error: (OS 3) The system cannot find the path specified.
Anybody can guide ??ORA-01119: error in creating database file 'f:/oracle/dbf/transaction_table.dbf' Is this a valid path? Please verify.
-
MS IE Script Error in Skin Editor
When I try to edit a skin, the Skin edit window opens and the
follow error message displays:
Internet Explorer Script Error
!!! An error has occured in the script on this page.
Line: 222
Char: 3
Error: An automation server can't create object
Code: 0
URL: file//C:\Documents and Settings\Local
Settings\Temp\skinpreview_1\whskin_pdhtml.htm
Do you want to continue running the scripts on this page?
Yes/No
If I continue, the editor seems to function normally.
However, strange things happen in the WebHelp systems published on
a file system (local and on the LAN). The Table of Contents does
not display on some instances of MS IE. The "highlight search
results" demo does not highlight the search term in the topics.
I thought these issues were connected to a recent push of
Windows XP SP 2. However, site support completely uninstalled
RoboHelp from my computer and did a clean reinstall, according to
the Adboe TechNote.
I am wondering if they are connected or not, and how I can
get rid of the error message.
TextI have tried the javascript edit in http://forums.adobe.com/message/3826014#3826014#3826014.
Both of the forum posts you referenced are addressing the issue in RoboHelp 9. I know there was an patch for chrome in 9 (http://helpx.adobe.com/robohelp/kb/enter-key-doesnt-launch-search.html).
I'm running 8.0.2 and I work in a company where I cannot get IT to unistall the plug-in companywide.
Just an update to my previoud post: I did realize the javascript edits I made were written over by another publish. With the edit in place however, my output still isn't working.
Editing the .js in the webhelp folder hasn't worked to fix the functioning of the TOC and Search and why the error in the Skin Editor at all? -
ReportServer Manager Script Error
Hi All,
I have been using ssrs for quite some time now.And All of a sudden, I have started getting
scripts errors in reportingservices.js.
Error:"Uncaught TypeError: Cannot set property 'className' of null
Now I am not able to deploy new rdl files
Many Thanks
DeepakHI All,
Actually I have found the answer for that,thought that some one might get useful with this.ReportingServices.js in the path"C:\Program Files\Microsoft SQL Server\MSRS11.MSSQLSERVER20122012\Reporting Services\ReportManager\js"
was causing the problem.Kindly replace the script with the following one
var checkBoxCount;
var checkBoxId;
var checkBoxHead;
// Context menu
var _divContextMenu; // The container for the context menu
var _selectedIdHiddenField; // The id of the item that opened th context menu
var _timeOutLimit = 3000; // How long the context menu stays for after the cursor in no longer over it
var _timeOutTimer; // The timout for the context menu
var _itemSelected = false;
var _mouseOverContext = false; // If the mouse is over the context menu
var _contextMenusIds; // The array of the diffrent context menus
var _fadeTimeouts; // The array of timouts used for the fade effect
var _onLink = false; // If the user is over a name link
var _selectedItemId;
var _tabFocusedItem = '';
var _mouseOverItem = '';
var _unselectedItemStyle;
var _currentContextMenuId; // ID of currently displayed context menu
var _currentMenuItemId = null; // ID of currently selected context menu item
// Search bar
var _searchTextBoxID;
var _defaultSearchValue; // The value that the box defaults to.
// start chris edit
// new functions to find firstChild and lastChild but skipping whitespace elements
function firstChildNoWS(element) {
var child = element.firstChild;
while (child != null && child.isElementContentWhitespace) {
child = child.nextSibling;
return child;
function lastChildNoWS(element) {
var child = element.lastChild;
while (child != null && child.isElementContentWhitespace) {
child = child.previousSibling;
return child;
// end chris edit
function ToggleItem(itemId) {
var item = document.getElementById(itemId);
if (item.style.display == 'none')
item.style.display = 'inline';
else
item.style.display = 'none';
function ToggleButtonImage(image1ID, image2ID) {
var image1 = document.getElementById(image1ID);
var image2 = document.getElementById(image2ID);
if (image1.style.display == 'none') {
image1.style.display = 'inline-block';
image2.style.display = 'none';
else {
image1.style.display = 'none';
image2.style.display = 'inline-block';
function SetFocus(id) {
var obj = document.getElementById(id);
if (obj != null && !obj.disabled)
obj.focus();
// Validates that an extension has been selected
function ValidateDropDownSelection(source, args) {
var obj = document.getElementById(source.controltovalidate);
if (obj.options[0].selected && !obj.disabled)
args.IsValid = false;
else
args.IsValid = true;
/// selectAll
/// selects all the checkBoxes with the given id
function selectAll() {
var i;
var id;
var checked = checkBoxHead.checked;
for (i = 0; i < checkBoxCount; i++) {
id = checkBoxId + i;
document.getElementById(id).checked = checked;
/// onSglCheck
/// performs actions when a single checkBox is checked or unchecked
/// cb -> the checkBox generating the event
/// topId -> id of the "select all" checkBox
function onSglCheck() {
// uncheck the top checkBox
checkBoxHead.checked = false;
/// ToggleButton
/// Toggle a buttons enable state
function ToggleButton(id, disabled) {
if (document.getElementById(id) != null)
document.getElementById(id).disabled = disabled;
function ToggleValidator(id, enabled) {
document.getElementById(id).enabled = enabled;
function SetCbVars(cbid, count, cbh) {
checkBoxCount = count;
checkBoxId = cbid;
checkBoxHead = cbh;
/// Check to see if any check boxes should disable
/// a control
/// cbid -> id prefix of the checkBoxes
/// cbCount -> total checkBoxes to check
/// hidden -> input to look for
/// display -> control to disable
function CheckCheckBoxes(cbid, hidden, display) {
var i;
var id;
var disable;
disable = false;
for (i = 0; i < checkBoxCount; i++) {
id = cbid + i;
if (document.getElementById(id).checked) {
id = hidden + id;
if (document.getElementById(id) != null) {
disable = true;
break;
ToggleButton(display, disable);
function HiddenCheckClickHandler(hiddenID, promptID, promptStringID) {
var hiddenChk = document.getElementById(hiddenID);
var promptChk = document.getElementById(promptID);
// prompt should be in opposite state of hidden
promptChk.checked = !hiddenChk.checked;
function validateSaveRole(source, args) {
var i;
var id;
var c = 0;
for (i = 0; i < checkBoxCount; i++) {
id = checkBoxId + i;
if (document.getElementById(id).checked) c++;
if (0 == c)
args.IsValid = false;
else
args.IsValid = true;
/// Pad an integer less then 10 with a leading zero
function PadIntWithZero(val) {
var s = val.toString();
if (val < 10 && val >= 0) {
if (s.length == 1)
s = "0" + s;
else if (s.length > 2)
s = s.substring(s.length - 2, s.length);
return s;
/// Pad the contents of an input with leading zeros if necesarry
function PadInputInteger(id) {
document.getElementById(id).value = PadIntWithZero(document.getElementById(id).value);
/// text of confirmation popup when a single item is selected for deletion
/// e.g. "Are you sure you want to delete this item"
var confirmSingle;
/// text of confirmation popup when multiple items are selected for deletion
/// e.g. "Are you sure you want to delete these items"
var confirmMultiple;
function SetDeleteTxt(single, multiple) {
confirmSingle = single;
confirmMultiple = multiple;
/// doCmDel: DoConfirmDelete
/// Given a number of checked items, confirm their deletion
/// return true if OK was clicked; false otherwise
function doCmDel(checkedCount) {
var confirmTxt = confirmSingle;
if (checkedCount == 0)
return false;
if (checkedCount > 1)
confirmTxt = confirmMultiple;
return confirm(confirmTxt);
/// on non-Netscape browsers, confirm deletion of 0 or more items
function confirmDelete() {
return doCmDel(getChkCount());
/// confirm deletion of policies
function confirmDeletePlcies(alertString) {
var count = getChkCount();
if (count >= checkBoxCount) {
alert(alertString);
return false;
return doCmDel(count);
/// counts whether 0, 1, or more than 1 checkboxes are checked
/// returns 0, 1, or 2
function getChkCount() {
var checkedCount = 0;
for (i = 0; i < checkBoxCount && checkedCount < 2; i++) {
if (document.getElementById(checkBoxId + i).checked) {
checkedCount++;
return checkedCount;
function ToggleButtonBasedOnCheckBox(checkBoxId, toggleId, reverse) {
var chkb = document.getElementById(checkBoxId);
if (chkb != null) {
if (chkb.checked == true)
ToggleButton(toggleId, reverse); // enable if reverse == false
else
ToggleButton(toggleId, !reverse); // disable if reverse == false
function ToggleButtonBasedOnCheckBoxWithOverride(checkBoxId, toggleId, overrideToDisabled, reverse) {
if (overrideToDisabled == true)
ToggleButton(toggleId, true); // disable
else
ToggleButtonBasedOnCheckBox(checkBoxId, toggleId, reverse);
function ToggleButtonBasedOnCheckBoxes(checkBoxId, checkboxId2, toggleId) {
var chkb = document.getElementById(checkBoxId);
if (chkb != null) {
if (chkb.checked == true)
ToggleButtonBasedOnCheckBox(checkboxId2, toggleId, false);
else
ToggleButton(toggleId, true); // disable
function ToggleButtonBasedOnCheckBoxesWithOverride(checkBoxId, checkboxId2, toggleId, overrideToDisabled) {
if (overrideToDisabled == true)
ToggleButton(toggleId, true); // disable
else
ToggleButtonBasedOnCheckBoxes(checkBoxId, checkboxId2, toggleId);
function ToggleValidatorBasedOnCheckBoxWithOverride(checkBoxId, toggleId, overrideToDisabled, reverse) {
if (overrideToDisabled == true)
ToggleValidator(toggleId, false);
else {
var chkb = document.getElementById(checkBoxId);
if (chkb != null) {
ToggleValidator(toggleId, chkb.checked != reverse);
function ToggleValidatorBasedOnCheckBoxesWithOverride(checkBoxId, checkBoxId2, toggleId, overrideToDisabled, reverse) {
if (overrideToDisabled == true)
ToggleValidator(toggleId, false);
else {
var chkb = document.getElementById(checkBoxId);
if (chkb != null) {
if (chkb.checked == reverse)
ToggleValidator(toggleId, false);
else
ToggleValidatorBasedOnCheckBoxWithOverride(checkBoxId2, toggleId, overrideToDisabled, reverse);
function CheckButton(buttonID, shouldCheck) {
document.getElementById(buttonID).checked = shouldCheck;
function EnableMultiButtons(prefix) {
// If there are no multibuttons, there is no reason to iterate the
// list of checkboxes.
if (checkBoxCount == 0 || multiButtonList.length == 0)
return;
var enableMultiButtons = false;
var multipleCheckboxesSelected = false;
// If the top level check box is checked, we know the state of all
// of the checkboxes
var headerCheckBox = document.getElementById(prefix + "ch");
if (headerCheckBox != null && headerCheckBox.checked) {
enableMultiButtons = true;
multipleCheckboxesSelected = checkBoxCount > 1;
else {
// Look at each checkbox. If any one of them is checked,
// enable the multi buttons.
var foundOneChecked = false;
var i;
for (i = 0; i < checkBoxCount; i++) {
var checkBox = document.getElementById(prefix + 'cb' + i);
if (checkBox.checked) {
if (foundOneChecked) {
multipleCheckboxesSelected = true;
break;
else {
enableMultiButtons = true;
foundOneChecked = true;
// Enable/disable each of the multi buttons
var j;
for (j = 0; j < multiButtonList.length; j++) {
var button = document.getElementById(multiButtonList[j]);
if (button.allowMultiSelect)
button.disabled = !enableMultiButtons;
else
button.disabled = !enableMultiButtons || multipleCheckboxesSelected;
//function ShadowCopyPassword(suffix)
function MarkPasswordFieldChanged(suffix) {
if (event.propertyName == "value") {
var pwdField = document.getElementById("ui_txtStoredPwd" + suffix);
//var shadowField = document.getElementById("ui_shadowPassword" + suffix);
var shadowChanged = document.getElementById("ui_shadowPasswordChanged" + suffix);
// Don't shadow copy during initialization
if (pwdField.IsInit) {
//shadowField.value = pwdField.value;
//pwdField.UserEnteredPassword = "true";
shadowChanged.value = "true";
// Update validator state (there is no validator on the data driven subscription page)
var validator = document.getElementById("ui_validatorPassword" + suffix)
if (validator != null)
ValidatorValidate(validator);
function InitDataSourcePassword(suffix) {
var pwdField = document.getElementById("ui_txtStoredPwd" + suffix);
var shadowChanged = document.getElementById("ui_shadowPasswordChanged" + suffix);
// var shadowField = document.getElementById("ui_shadowPassword" + suffix);
var storedRadioButton = document.getElementById("ui_rdoStored" + suffix);
var pwdValidator = document.getElementById("ui_validatorPassword" + suffix);
pwdField.IsInit = false;
// Initialize the field to the shadow value (for when the user clicks back/forward)
// Or to a junk initial value.
if (pwdValidator != null && storedRadioButton.checked) {
/* if (shadowField.value.length > 0)
pwdField.value = shadowField.value;
else*/
pwdField.value = "********";
else
shadowChanged.value = "true"; // shadowChanged will be ignored if the page is submitted without storedRadioButton.checked
// Now that the initial value is set, track changes to the password field
pwdField.IsInit = true;
// There is no validator on the data driven subscription page (no stored radio button either)
if (pwdValidator != null)
ValidatorValidate(pwdValidator);
function SetNeedPassword(suffix) {
// Set a flag indicating that we need the password
var pwdField = document.getElementById("ui_txtStoredPwd" + suffix);
pwdField.NeedPassword = "true";
// Make the validator visible
ValidatorValidate(document.getElementById("ui_validatorPassword" + suffix));
function UpdateValidator(src, validatorID) {
if (src.checked) {
var validator = document.getElementById(validatorID);
ValidatorValidate(validator);
function ReEnterPasswordValidation(source, arguments) // source = validator
var validatorIdPrefix = "ui_validatorPassword"
var suffix = source.id.substr(validatorIdPrefix.length, source.id.length - validatorIdPrefix.length);
var storedRadioButton = document.getElementById("ui_rdoStored" + suffix);
var pwdField = document.getElementById("ui_txtStoredPwd" + suffix);
var shadowChanged = document.getElementById("ui_shadowPasswordChanged" + suffix);
var customDataSourceRadioButton = document.getElementById("ui_rdoCustomDataSource" + suffix);
var isCustomSelected = true;
if (customDataSourceRadioButton != null)
isCustomSelected = customDataSourceRadioButton.checked;
if (!isCustomSelected || // If the custom (vs shared) data source radio button exists and is not selected, we don't need the pwd.
storedRadioButton.checked == false || // If the data source is not using stored credentials, we don't need the password
pwdField.UserEnteredPassword == "true" || // If the password has changed, we don't need to get it from the user
pwdField.NeedPassword != "true" || // If no credentials have changed, we don't need the password
shadowChanged.value == "true") // If the user has typed a password
arguments.IsValid = true;
else
arguments.IsValid = false;
function ValidateDataSourceSelected(source, arguments) {
var validatorIdPrefix = "ui_sharedDSSelectedValidator"
var suffix = source.id.substr(validatorIdPrefix.length, source.id.length - validatorIdPrefix.length);
var sharedRadioButton = document.getElementById("ui_rdoSharedDataSource" + suffix);
var hiddenField = document.getElementById("ui_hiddenSharedDS" + suffix);
arguments.IsValid = (sharedRadioButton != null && !sharedRadioButton.checked) || hiddenField.value != "NotSelected";
// MultiValueParamClass
function MultiValueParamClass(thisID, visibleTextBoxID, floatingEditorID, floatingIFrameID, paramObject,
hasValidValues, allowBlank, doPostbackOnHide, postbackScript) {
this.m_thisID = thisID;
this.m_visibleTextBoxID = visibleTextBoxID;
this.m_floatingEditorID = floatingEditorID;
this.m_floatingIFrameID = floatingIFrameID;
this.m_paramObject = paramObject;
this.m_hasValidValues = hasValidValues;
this.m_allowBlank = allowBlank;
this.m_doPostbackOnHide = doPostbackOnHide;
this.m_postbackScript = postbackScript;
this.UpdateSummaryString();
function ToggleVisibility() {
var floatingEditor = GetControl(this.m_floatingEditorID);
if (floatingEditor.style.display != "inline")
this.Show();
else
this.Hide();
MultiValueParamClass.prototype.ToggleVisibility = ToggleVisibility;
function Show() {
var floatingEditor = GetControl(this.m_floatingEditorID);
if (floatingEditor.style.display == "inline")
return;
// Set the correct size of the floating editor - no more than
// 150 pixels high and no less than the width of the text box
var visibleTextBox = GetControl(this.m_visibleTextBoxID);
if (this.m_hasValidValues) {
if (floatingEditor.offsetHeight > 150)
floatingEditor.style.height = 150;
floatingEditor.style.width = visibleTextBox.offsetWidth;
var newEditorPosition = this.GetNewFloatingEditorPosition();
floatingEditor.style.left = newEditorPosition.Left;
floatingEditor.style.top = newEditorPosition.Top;
floatingEditor.style.display = "inline";
var floatingIFrame = GetControl(this.m_floatingIFrameID);
floatingIFrame.style.left = floatingEditor.style.left;
floatingIFrame.style.top = floatingEditor.style.top;
floatingIFrame.style.width = floatingEditor.offsetWidth;
floatingIFrame.style.height = floatingEditor.offsetHeight;
floatingIFrame.style.display = "inline";
// If another multi value is open, close it first
if (this.m_paramObject.ActiveMultValue != this && this.m_paramObject.ActiveMultiValue != null)
ControlClicked(this.m_paramObject.id);
this.m_paramObject.ActiveMultiValue = this;
if (floatingEditor.childNodes[0].focus) floatingEditor.childNodes[0].focus();
this.StartPolling();
MultiValueParamClass.prototype.Show = Show;
function Hide() {
var floatingEditor = GetControl(this.m_floatingEditorID);
var floatingIFrame = GetControl(this.m_floatingIFrameID);
// Hide the editor
floatingEditor.style.display = "none";
floatingIFrame.style.display = "none";
this.UpdateSummaryString();
if (this.m_doPostbackOnHide)
eval(this.m_postbackScript);
// Check that the reference is still us in case event ordering
// caused another multivalue to click open
if (this.m_paramObject.ActiveMultiValue == this)
this.m_paramObject.ActiveMultiValue = null;
MultiValueParamClass.prototype.Hide = Hide;
function GetNewFloatingEditorPosition() {
// Make the editor visible
var visibleTextBox = GetControl(this.m_visibleTextBoxID);
var textBoxPosition = GetObjectPosition(visibleTextBox);
return { Left: textBoxPosition.Left, Top: textBoxPosition.Top + visibleTextBox.offsetHeight };
MultiValueParamClass.prototype.GetNewFloatingEditorPosition = GetNewFloatingEditorPosition;
function UpdateSummaryString() {
var summaryString;
if (this.m_hasValidValues)
summaryString = GetValueStringFromValidValueList(this.m_floatingEditorID);
else
summaryString = GetValueStringFromTextEditor(this.m_floatingEditorID, false, this.m_allowBlank);
var visibleTextBox = GetControl(this.m_visibleTextBoxID);
visibleTextBox.value = summaryString;
MultiValueParamClass.prototype.UpdateSummaryString = UpdateSummaryString;
function StartPolling() {
setTimeout(this.m_thisID + ".PollingCallback();", 100);
MultiValueParamClass.prototype.StartPolling = StartPolling;
function PollingCallback() {
// If the editor isn't visible, no more events.
var floatingEditor = GetControl(this.m_floatingEditorID);
if (floatingEditor.style.display != "inline")
return;
// If the text box moved, something on the page resized, so close the editor
var expectedEditorPos = this.GetNewFloatingEditorPosition();
if (floatingEditor.style.left != expectedEditorPos.Left + "px" ||
floatingEditor.style.top != expectedEditorPos.Top + "px") {
this.Hide();
else {
this.StartPolling();
MultiValueParamClass.prototype.PollingCallback = PollingCallback;
function GetObjectPosition(obj) {
var totalTop = 0;
var totalLeft = 0;
while (obj != document.body) {
// Add up the position
totalTop += obj.offsetTop;
totalLeft += obj.offsetLeft;
// Prepare for next iteration
obj = obj.offsetParent;
totalTop += obj.offsetTop;
totalLeft += obj.offsetLeft;
return { Left: totalLeft, Top: totalTop };
function GetValueStringFromTextEditor(floatingEditorID, asRaw, allowBlank) {
var span = GetControl(floatingEditorID);
var editor = span.childNodes[0];
var valueString = editor.value;
// Remove the blanks
if (!allowBlank) {
// Break down the text box string to the individual lines
var valueArray = valueString.split("\r\n");
var delimiter;
if (asRaw)
delimiter = "\r\n";
else
delimiter = ", ";
var finalValue = "";
for (var i = 0; i < valueArray.length; i++) {
// If the string is non-blank, add it
if (valueArray[i].length > 0) {
if (finalValue.length > 0)
finalValue += delimiter;
finalValue += valueArray[i];
return finalValue;
else {
if (asRaw)
return valueString;
else
return valueString.replace(/\r\n/g, ", ");
function GetValueStringFromValidValueList(editorID) {
var valueString = "";
// Get the table
var div = GetControl(editorID);
var table = div.childNodes[0];
if (table.nodeName != "TABLE") // Skip whitespace if needed
table = div.childNodes[1];
// If there is only one element, it is a real value, not the select all option
var startIndex = 0;
if (table.rows.length > 1)
startIndex = 1;
for (var i = startIndex; i < table.rows.length; i++)
// Get the first cell of the row
var firstCell = table.rows[i].cells[0];
var span = firstCell.childNodes[0];
var checkBox = span.childNodes[0];
var label = span.childNodes[1];
if (checkBox.checked) {
if (valueString.length > 0)
valueString += ", ";
// chris edit - valueString += label.firstChild.nodeValue;
valueString += firstChildNoWS(label).nodeValue;
return valueString;
function MultiValidValuesSelectAll(src, editorID)
// Get the table
var div = GetControl(editorID);
var table = div.childNodes[0];
if (table.nodeName != "TABLE")
table = div.childNodes[1];
for (var i = 1; i < table.rows.length; i++)
// Get the first cell of the row
var firstCell = table.rows[i].cells[0];
var span = firstCell.childNodes[0];
var checkBox = span.childNodes[0];
checkBox.checked = src.checked;
function ValidateMultiValidValue(editorID, errMsg)
var summaryString = GetValueStringFromValidValueList(editorID);
var isValid = summaryString.length > 0;
if (!isValid)
alert(errMsg)
return isValid;
function ValidateMultiEditValue(editorID, errMsg) {
// Need to check for a value specified. This code only runs if not allow blank.
// GetValueStringFromTextEditor filters out blank strings. So if it was all blank,
// the final string will be length 0
var summaryString = GetValueStringFromTextEditor(editorID, true, false)
var isValid = false;
if (summaryString.length > 0)
isValid = true;
if (!isValid)
alert(errMsg);
return isValid;
function GetControl(controlID) {
var control = document.getElementById(controlID);
if (control == null)
alert("Unable to locate control: " + controlID);
return control;
function ControlClicked(formID) {
var form = GetControl(formID);
if (form.ActiveMultiValue != null)
form.ActiveMultiValue.Hide();
// --- Context Menu ---
// This function is called in the onload event of the body.
// It hooks the context menus up to the Javascript code.
// divContextMenuId, is the id of the div that contains the context menus
// selectedIdHiddenFieldId, is the id of the field used to post back the name of the item clicked
// contextMenusIds, is an array of the ids of the context menus
// searchTextBox ID, is the id of the search box
// defaultSearchValue. the value the search box has by default
function InitContextMenu(divContextMenuId, selectedIdHiddenFieldId, contextMenusIds, searchTextBoxID, defaultSearchValue ) {
ResetSearchBar( searchTextBoxID, defaultSearchValue );
_divContextMenu = document.getElementById(divContextMenuId);
_selectedIdHiddenField = document.getElementById(selectedIdHiddenFieldId);
_contextMenusIds = contextMenusIds;
_divContextMenu.onmouseover = function() { _mouseOverContext = true; };
_divContextMenu.onmouseout = function() {
if (_mouseOverContext == true) {
_mouseOverContext = false;
if (_timeOutTimer == null) {
_timeOutTimer = setTimeout(TimeOutAction, _timeOutLimit);
document.body.onmousedown = ContextMouseDown;
AddKeyDownListener();
// This handler stops bubling when arrow keys Up or Down pressed to prevent scrolling window
function KeyDownHandler(e)
// Cancel window scrolling only when menu is opened
if(_currentContextMenuId == null)
return true;
if(!e)
e = window.event;
var key = e.keyCode;
if(key == 38 || key == 40)
return false;
else
return true;
function AddKeyDownListener()
if(document.addEventListener)
document.addEventListener('keydown', KeyDownHandler, false);
else
document.onkeydown = KeyDownHandler;
// This function starts the context menu timeout process
function TimeOutAction() {
if (_mouseOverContext == false) {
UnSelectedMenuItem()
_timeOutTimer = null;
// This function is called when a name tag is clicked, it displays the contextmenu for a given item.
function Clicked(event, contextMenuId) {
if (!_onLink) {
ClearTimeouts();
SelectContextMenuFromColletion(contextMenuId);
_itemSelected = true;
// **Cross browser compatibility code**
// Some browsers will not pass the event so we need to get it from the window instead.
if (event == null)
event = window.event;
var selectedElement = event.target != null ? event.target : event.srcElement;
var outerTableElement = GetOuterElementOfType(selectedElement, 'table');
var elementPosition = GetElementPosition(outerTableElement);
_selectedItemId = outerTableElement.id;
// chris edit - _selectedIdHiddenField.value = outerTableElement.value;
_selectedIdHiddenField.value = outerTableElement.attributes["value"].value;
outerTableElement.className = "msrs-SelectedItem";
ResetContextMenu();
var contextMenuHeight = _divContextMenu.offsetHeight;
var contextMenuWidth = _divContextMenu.offsetWidth;
var boxHeight = outerTableElement.offsetHeight;
var boxWidth = outerTableElement.offsetWidth;
var boxXcoordinate = elementPosition.left;
var boxYcooridnate = elementPosition.top;
var pageWidth = 0, pageHeight = 0;
// **Cross browser compatibility code**
if (typeof (window.innerWidth) == 'number') {
//Non-IE
pageWidth = window.innerWidth;
pageHeight = window.innerHeight;
} else if (document.documentElement && (document.documentElement.clientWidth || document.documentElement.clientHeight)) {
//IE 6+ in 'standards compliant mode'
pageWidth = document.documentElement.clientWidth;
pageHeight = document.documentElement.clientHeight;
} else if (document.body && (document.body.clientWidth || document.body.clientHeight)) {
//IE 4 compatible
pageWidth = document.body.clientWidth;
pageHeight = document.body.clientHeight;
// **Cross browser compatibility code**
var iebody = (document.compatMode && document.compatMode != "BackCompat") ? document.documentElement : document.body
var pageXOffSet = document.all ? iebody.scrollLeft : pageXOffset
var pageYOffSet = document.all ? iebody.scrollTop : pageYOffset
_divContextMenu.style.left = SetContextMenuHorizonatalPosition(pageWidth, pageXOffSet, boxXcoordinate, contextMenuWidth, boxWidth) + 'px';
_divContextMenu.style.top = SetContextMenuVerticalPosition(pageHeight, pageYOffSet, boxYcooridnate, contextMenuHeight, boxHeight) + 'px';
ChangeOpacityForElement(100, _divContextMenu.id);
// chris edit - document.getElementById(_currentContextMenuId).firstChild.focus();
firstChildNoWS(document.getElementById(_currentContextMenuId)).focus();
// Context menu keyboard navigation
// Opens context menu via keyboard. Context menu
// is opened by selecting an item and pressing
// Alt + Down.
function OpenMenuKeyPress(e, contextMenuId)
// Alt key was pressed
if (e.altKey)
var keyCode;
if (window.event)
keyCode = e.keyCode;
else
keyCode = e.which;
// Down key was pressed
if (keyCode == 40)
// Open context menu.
Clicked(event, contextMenuId);
// Highlight the first selectable item
// in the context menu.
HighlightContextMenuItem(true);
// Performs keyboard navigation within
// opened context menu.
function NavigateMenuKeyPress(e)
var keyCode;
if (window.event)
keyCode = e.keyCode;
else
keyCode = e.which;
// Down key moves down to the next context menu item
if (keyCode == 40)
HighlightContextMenuItem(true);
// Up key moves up to the previous context menu item
else if (keyCode == 38)
HighlightContextMenuItem(false);
// Escape key closes context menu
else if (keyCode == 27)
// Close context menu
UnSelectedMenuItem();
// Make sure focus is given to the catalog item
// in the folder view.
document.getElementById(_selectedItemId).focus();
// Highlights context menu item.
// Parameter: highlightNext
// - If true, highlights menu item below current menu item.
// If current menu item is the last item, wraps around and
// highlights first menu item.
// - If false, highlights menu item above current menu item.
// If current menu item is the first item, wraps around and
// highlights last menu item.
function HighlightContextMenuItem(highlightNext)
var contextMenu = document.getElementById(_currentContextMenuId);
// chris edit - var table = contextMenu.lastChild;
var table = lastChildNoWS(contextMenu);
var currentMenuItemIndex = -1;
if (_currentMenuItemId != null)
currentMenuItemIndex = document.getElementById(_currentMenuItemId).parentNode.rowIndex;
var index = currentMenuItemIndex;
while (true)
if (highlightNext)
index++;
// If the index is out of range,
// reset it to the beginning
if (index < 0 || index >= table.cells.length)
index = 0;
else
index--;
// If the index is out of range,
// reset it to the end
if (index < 0 || index >= table.cells.length)
index = table.cells.length - 1;
// Each context menu item has an associated
// group ID. Make sure the table cell has a valid
// group ID, otherwise it is not a menu item (e.g.
// an underline separator).
if (table.cells[index].group >= 0)
FocusContextMenuItem(table.cells[index].id, 'msrs-MenuUIItemTableHover', 'msrs-MenuUIItemTableCell');
break;
// If we reach the orignal index, that means we looped
// through all table cells and did not find a valid context
// menu item. In that case, stop searching.
if (index == currentMenuItemIndex)
break;
// *** End keyboard navigation ***
// This function resets the context menus shape and size.
function ResetContextMenu() {
_divContextMenu.style.height = 'auto';
_divContextMenu.style.width = 'auto';
_divContextMenu.style.overflowY = 'visible';
_divContextMenu.style.overflowX = 'visible';
_divContextMenu.style.overflow = 'visible';
_divContextMenu.style.display = 'block';
// This function sets the horizontal position of the context menu.
// It also sets is the context menu has vertical scroll bars.
function SetContextMenuHorizonatalPosition(pageWidth, pageXOffSet, boxXcoordinate, contextMenuWidth, boxWidth) {
var menuXCoordinate = boxXcoordinate + boxWidth - contextMenuWidth;
var spaceRightBox = (pageWidth + pageXOffSet) - menuXCoordinate;
var spaceLeftBox = menuXCoordinate - pageXOffSet;
var returnValue;
if ((contextMenuWidth < spaceRightBox) && (pageXOffSet < menuXCoordinate)) {
returnValue = menuXCoordinate;
else if ((contextMenuWidth < spaceRightBox)) {
returnValue = pageXOffSet;
else if (contextMenuWidth < spaceLeftBox) {
returnValue = menuXCoordinate - (contextMenuWidth - (pageWidth + pageXOffSet - menuXCoordinate));
else {
_divContextMenu.style.overflowX = "scroll";
if (spaceLeftBox < spaceRightBox) {
_divContextMenu.style.width = spaceRightBox;
returnValue = pageXOffSet;
else {
_divContextMenu.style.width = spaceLeftBox;
returnValue = menuXCoordinate - (spaceLeftBox - (pageWidth + pageXOffSet - menuXCoordinate));
return returnValue;
// This function sets the vertical position of the context menu.
// It also sets is the context menu has horizontal scroll bars.
function SetContextMenuVerticalPosition(pageHeight, pageYOffSet, boxYcooridnate, contextMenuHeight, boxHeight) {
var spaceBelowBox = (pageHeight + pageYOffSet) - (boxYcooridnate + boxHeight);
var spaceAboveBox = boxYcooridnate - pageYOffSet;
var returnValue;
if (contextMenuHeight < spaceBelowBox) {
returnValue = (boxYcooridnate + boxHeight);
else if (contextMenuHeight < spaceAboveBox) {
returnValue = (boxYcooridnate - contextMenuHeight);
else if (spaceBelowBox > spaceAboveBox) {
_divContextMenu.style.height = spaceBelowBox;
_divContextMenu.style.overflowY = "scroll";
returnValue = (boxYcooridnate + boxHeight);
else {
_divContextMenu.style.height = spaceAboveBox;
_divContextMenu.style.overflowY = "scroll";
returnValue = (boxYcooridnate - spaceAboveBox);
return returnValue;
// This function displays a context menu given its id and then hides the others
function SelectContextMenuFromColletion(contextMenuConfigString) {
var contextMenuId = SplitContextMenuConfigString(contextMenuConfigString);
for (i = 0; i < _contextMenusIds.length; i++) {
var cm = document.getElementById(_contextMenusIds[i]);
if (cm.id == contextMenuId) {
cm.style.visibility = 'visible';
cm.style.display = 'block';
_currentContextMenuId = contextMenuId;
else {
cm.style.visibility = 'hidden';
cm.style.display = 'none';
function SplitContextMenuConfigString(contextMenuConfigString) {
var contextMenuEnd = contextMenuConfigString.indexOf(":");
var contextMenuId = contextMenuConfigString;
var contextMenuHiddenItems;
if (contextMenuEnd != -1)
contextMenuId = contextMenuConfigString.substr(0, contextMenuEnd);
var cm = document.getElementById(contextMenuId);
// chris edit - var table = cm.firstChild;
var table = firstChildNoWS(cm);
var groupItemCount = []; // The items in each group
var groupUnderlineId = []; // The Id's of the underlines.
// Enable all menu items counting the number of groups,
// number of items in the groups and underlines for the groups as we go.
// start chris edit
/* for (i = 0; i < table.cells.length; i++)
table.cells[i].style.visibility = 'visible';
table.cells[i].style.display = 'block'
if ((groupItemCount.length - 1) < table.cells[i].group) {
groupItemCount.push(1);
groupUnderlineId.push(table.cells[i].underline);
else {
groupItemCount[table.cells[i].group]++;
AlterVisibilityOfAssociatedUnderline(table.cells[i], true)
if (table != null && table.rows != null)
for (r = 0; r < table.rows.length; r++) {
for (i = 0; i < table.rows[r].cells.length; i++)
table.rows[r].cells[i].style.visibility = 'visible';
table.rows[r].cells[i].style.display = 'block'
if ((groupItemCount.length - 1) < table.rows[r].cells[i].group) {
groupItemCount.push(1);
groupUnderlineId.push(table.rows[r].cells[i].underline);
else {
groupItemCount[table.rows[r].cells[i].group]++;
AlterVisibilityOfAssociatedUnderline(table.rows[r].cells[i], true)
// end chris edit
// If hidden items are listed, remove them from the context menu
if (contextMenuEnd != -1)
contextMenuHiddenItems = contextMenuConfigString.substr((contextMenuEnd + 1), (contextMenuConfigString.length - 1)).split("-");
var groupsToHide = groupItemCount;
// Hide the hidden items
for (i = 0; i < contextMenuHiddenItems.length; i++)
var item = document.getElementById(contextMenuHiddenItems[i]);
item.style.visibility = 'hidden';
item.style.display = 'none'
groupsToHide[item.group]--;
var allHidden = true;
// Work back through the groups hiding the underlines as required.
for (i = (groupsToHide.length - 1); i > -1; i--) {
if (groupsToHide[i] == 0) {
AlterVisibilityOfAssociatedUnderline(groupUnderlineId[i], false);
else if (allHidden && i == (groupsToHide.length - 1)) {
allHidden = false;
// If all the items have been hidden so far hide the last underline too.
else if (allHidden) {
allHidden = false;
AlterVisibilityOfAssociatedUnderline(groupUnderlineId[i], false);
return contextMenuId;
function AlterVisibilityOfAssociatedUnderline(underLineId, visibility) {
if (underLineId != null && underLineId != "") {
var underlineElement = document.getElementById(underLineId);
if (underlineElement != null) {
if (visibility) {
underlineElement.style.visibility = 'visible';
underlineElement.style.display = 'block'
else {
underlineElement.style.visibility = 'hidden';
underlineElement.style.display = 'none'
function ClearTimeouts() {
if (_fadeTimeouts != null) {
for (i = 0; i < _fadeTimeouts.length; i++) {
clearTimeout(_fadeTimeouts[i]);
_fadeTimeouts = [];
// This function chnages an elements opacity given its id.
function FadeOutElement(id, opacStart, opacEnd, millisec) {
ClearTimeouts();
//speed for each frame
var speed = Math.round(millisec / 100);
var timer = 0;
for (i = opacStart; i >= opacEnd; i--) {
_fadeTimeouts.push(setTimeout("ChangeOpacityForElement(" + i + ",'" + id + "')", (timer * speed)));
timer++;
// This function changes the opacity of an elemnent given it's id.
// Works across browsers for different browsers
function ChangeOpacityForElement(opacity, id) {
var object = document.getElementById(id).style;
if (opacity != 0) {
// **Cross browser compatibility code**
object.opacity = (opacity / 100);
object.MozOpacity = (opacity / 100);
object.KhtmlOpacity = (opacity / 100);
object.filter = "alpha(opacity=" + opacity + ")";
else {
object.display = 'none';
// This function is the click for the body of the document
function ContextMouseDown() {
if (_mouseOverContext) {
return;
else {
HideMenu()
// This function fades out the context menu and then unselects the associated name control
function UnSelectedMenuItem() {
if (_itemSelected) {
FadeOutElement(_divContextMenu.id, 100, 0, 300);
UnselectCurrentMenuItem();
// Hides context menu without fading effect
function HideMenu()
if (_itemSelected)
ChangeOpacityForElement(0, _divContextMenu.id);
UnselectCurrentMenuItem();
function UnselectCurrentMenuItem()
_itemSelected = false;
_currentContextMenuId = null;
SwapStyle(_currentMenuItemId, 'msrs-MenuUIItemTableCell');
_currentMenuItemId = null;
ChangeReportItemStyle(_selectedItemId, "msrs-UnSelectedItem");
// This function walks back up the DOM tree until it finds the first occurrence
// of a given element. It then returns this element
function GetOuterElementOfType(element, type) {
while (element.tagName.toLowerCase() != type) {
element = element.parentNode;
return element;
// This function gets the corrdinates of the top left corner of a given element
function GetElementPosition(element) {
element = GetOuterElementOfType(element, 'table');
var left, top;
left = top = 0;
if (element.offsetParent) {
do {
left += element.offsetLeft;
top += element.offsetTop;
} while (element = element.offsetParent);
return { left: left, top: top };
function FocusContextMenuItem(menuItemId, focusStyle, blurStyle)
SwapStyle(_currentMenuItemId, blurStyle);
SwapStyle(menuItemId, focusStyle);
// chrid edit - document.getElementById(menuItemId).firstChild.focus();
firstChildNoWS(document.getElementById(menuItemId)).focus();
_currentMenuItemId = menuItemId;
// This function swaps the style using the id of a given element
function SwapStyle(id, style) {
if (document.getElementById) {
var selectedElement = document.getElementById(id);
if (selectedElement != null)
selectedElement.className = style;
// This function changes the style using the id of a given element
// and should only be called for catalog items in the tile or details view
function ChangeReportItemStyle(id, style)
if (!_itemSelected)
if (document.getElementById)
var selectedElement = document.getElementById(id);
selectedElement.className = style;
// Change the style on the end cell by drilling into the table.
if (selectedElement.tagName.toLowerCase() == "table")
// chris edit - var tbody = selectedElement.lastChild;
var tbody = lastChildNoWS(selectedElement);
if (tbody != null)
// chris edit - var tr = tbody.lastChild;
var tr = lastChildNoWS(tbody);
if (tr != null)
// chris edit - tr.lastChild.className = style + 'End';
trLastChild = lastChildNoWS(tr);
if (trLastChild != null)
trLastChild.className = style + 'End';
function ChangeReportItemStyleOnFocus(id, currentStyle, unselectedStyle)
_unselectedItemStyle = unselectedStyle;
_tabFocusedItem = id;
// We should unselect selected by mouse over item if there is one
if(_mouseOverItem != '')
ChangeReportItemStyle(_mouseOverItem, _unselectedItemStyle);
_mouseOverItem = '';
ChangeReportItemStyle(id, currentStyle);
function ChangeReportItemStyleOnBlur(id, style)
ChangeReportItemStyle(id, style);
_tabFocusedItem = '';
function ChangeReportItemStyleOnMouseOver(id, currentStyle, unselectedStyle)
_unselectedItemStyle = unselectedStyle;
_mouseOverItem = id;
// We should unselect tabbed item if there is one
if(_tabFocusedItem != '')
ChangeReportItemStyle(_tabFocusedItem, _unselectedItemStyle);
_tabFocusedItem = '';
ChangeReportItemStyle(id, currentStyle);
function ChangeReportItemStyleOnMouseOut(id, style)
ChangeReportItemStyle(id, style);
_mouseOverItem = '';
// This function is used to set the style of the search bar on the onclick event.
function SearchBarClicked(id, defaultText, style) {
var selectedElement = document.getElementById(id);
if (selectedElement.value == defaultText) {
selectedElement.value = "";
selectedElement.className = style;
// This function is used to set the style of the search bar on the onblur event.
function SearchBarBlured(id, defaultText, style) {
var selectedElement = document.getElementById(id);
if (selectedElement.value == "") {
selectedElement.value = defaultText;
selectedElement.className = style;
function ResetSearchBar(searchTextBoxID,defaultSearchValue) {
var selectedElement = document.getElementById(searchTextBoxID);
if (selectedElement != null) {
if (selectedElement.value == defaultSearchValue) {
selectedElement.className = 'msrs-searchDefaultFont';
else {
selectedElement.className = 'msrs-searchBarNoBorder';
function OnLink()
_onLink = true;
function OffLink()
_onLink = false;
function ShouldDelete(confirmMessage) {
if (_selectedIdHiddenField.value != null || _selectedIdHiddenField.value != "") {
var message = confirmMessage.replace("{0}", _selectedIdHiddenField.value);
var result = confirm(message);
if (result == true) {
return true;
else {
return false;
else {
return false;
function UpdateValidationButtonState(promptCredsRdoBtnId, typesDropDownId, forbiddenTypesConfigString, validateButtonId)
var dropdown = document.getElementById(typesDropDownId);
if(dropdown == null)
return;
var selectedValue = dropdown.options[dropdown.selectedIndex].value;
var forbiddenTypes = forbiddenTypesConfigString.split(":");
var chosenForbiddenType = false;
for (i = 0; i < forbiddenTypes.length; i++)
if(forbiddenTypes[i] == selectedValue)
chosenForbiddenType = true;
var isDisabled = chosenForbiddenType || IsRadioButtonChecked(promptCredsRdoBtnId);
ChangeDisabledButtonState(validateButtonId, isDisabled);
function ChangeDisabledButtonState(buttonId, isDisabled)
var button = document.getElementById(buttonId);
if(button != null)
button.disabled = isDisabled;
function IsRadioButtonChecked(radioButtonId)
var rbtn = document.getElementById(radioButtonId);
if(rbtn != null && rbtn.checked)
return true;
return false;
For More info refer this
http://stackoverflow.com/questions/7837259/ssrs-report-manager-javascript-fails-in-non-ie-browsers-for-drop-down-menus -
IE Script error when double clicking on a view in Abap Webdynpro component
Hello experts,
I am running mini SAP trial version 2004 with Internet explorer 7.0 and also installed gui patch 23.
I am making a sample application in SE80 and when double clicking on a view in Abap Webdynpro component I get following error:
<b>Internet Explorer Script Error</b>
An error has occured in the script on this page.
Line: 1
Char: 1
Error: 'wdp_show_menu' is undefined
Code: 0
URL: http://satellite5200:8000/sap/bc/wdvd/painting.html?_vdrespkey=EOJ6V1JQMX0VLTQ7AP6DQM64Y&_vdframe=painting&sap-client=000
Do you want to continue running scripts on this page?
Thanks in advance.
BhupendraHi Bhupendra,
If you are seeing this error in the Se 80 editor , i guess you can ignoire that ...While running the application it will not show any error.
Thanks
Anzy -
Pl/sql editor navigation bar
hi!
Is it possible to have the navigation bar for pl/sql editor in Visual Studio inside an Oracle Database Project?
The navigation bar is visible if I open a package body from server explorer, but not if I open the generated create script.
The navigation bar option is disabled in Tools / Options / Text Editor / Oracle pl/sql
Any hints?
thx in advance,
BalintCreate an application item and select your real user name into it within the post authentication process (part of your authentication process). Reference &APP_ITEM. instead of &APP_USER.
Denes Kubicek
http://deneskubicek.blogspot.com/
http://www.opal-consulting.de/training
http://apex.oracle.com/pls/otn/f?p=31517:1
http://www.amazon.de/Oracle-APEX-XE-Praxis/dp/3826655494
------------------------------------------------------------------- -
Running reports in SCCM: ActiveX Script Error
When I try to run some reports, I authenticate then it throws a Script Error. Error: ActiveX component can't create object: 'Microsoft.XMLDOM'.
This only happens on some reports and it only happens remotely. If I try to run the same reports on the local server, there aren't any issues.Have enabled remote errors?
http://be.enhansoft.com/post/2013/01/16/Enabling-Remote-Errors-in-SQL.aspx
What exactly is the error that your are getting!
http://www.enhansoft.com/ -
How to make a file to be opened in PL-SQL Editor of SQL Developer
How to open a package file (.pkg) in sql Developer's PL-SQL Editor?
Tried creating a new file type with Extension as .pkg and file type as PlSqlNode.
Could open the file and found some of the features of plsql editor, such as find, compile... but could not differentiate the font colors.
How should we go about in having the file opened with different font colors (for identifier, builtin....?
Thanks.
K.Nataraja Suthan,I guess you're running into another known bug in this file-based battlefield.
Opening files won't colour the code until having opened some code from the DB first. Can you try that?
On a sidenote, I've had really bad experiences with external files (both compiling to DB and saving to file incorrectly, not showing errors, etc.). In the end the only safe thing to do is work directly on the DB, saving your progress now and then to file.
Regards,
K. -
PLSQL script error - 10g enterprise edition
Hi,
I designed the following pl/sql program/script. It completed successfully but skips one record ( I dont know first or last ) only in the middle for loop. I did this on 10g or 11g ( dont remember exactly but one of these two ) enterprise edition. But when I tried the same code shown after this code on my personal laptop express edition, it inserted all the records correctly. Can anybody please explain the reason. There are 3 for loops one nested below another loop to load vendors, vendor sites, vendor contacts. If there were 1000 vendors, 1500 vendor sites, 900 contacts to load. The code below has loaded 1000 vendors, 1499 vendor sites ( skipped one record ) and 900 contacts.
CREATE OR REPLACE PROCEDURE APPS.p_create_vendor5 as
--Declare
cursor main_vendors is
select pov.vendor_id,
pov.segment1,
pov.vendor_name
from
po.po_vendors;
cursor vendor_sites ( vendor_id_in number ) is
select povs.vendor_id,
povs.vendor_site_id,
povs.vendor_site_code site_name
from
po.po_vendor_sites_all povs
where povs.vendor_id = vendor_id_in;
cursor vendor_contacts ( vendor_site_id_in number ) is
select povc.vendor_contact_id,
povc.inactive_date,
povc.first_name,
povc.middle_name,
povc.last_name
from
po.po_vendor_contacts povc
where povc.vendor_site_id = vendor_site_id_in;
l_input_vendor_seq number;
l_input_site_seq number;
l_input_site_contact_seq number;
l_site_name VARCHAR2(115);
begin
for rec in main_vendors loop
Begin
select AP_SUPPLIERS_INT_S.NEXTVAL
into l_input_vendor_seq
from DUAL;
insert into ap_suppliers_int
(vendor_interface_id,
vendor_name,
created_by,
creation_date,
status )
VALUES
(l_input_vendor_seq, ----------AP_SUPPLIERS_INT_S.NEXTVAL,
rec.vendor_name,
-1,
trunc(sysdate),
'NEW');
dbms_output.put_line('Inserted AP_SUPPLIERS_INT record for vendor (' || rec.vendor_name || '), id=' || to_char(l_input_vendor_seq) || ') ');
exception --- error logging for the Vendor Record
when others then
dbms_output.put_line('ERROR Inserting AP_SUPPLIERS_INT record for vendor (' ||
rec.vendor_name || '), id=' || to_char (l_input_vendor_seq) || ') || ');
dbms_output.put_line(nvl(fnd_message.get, SQLERRM));
dbms_output.new_line;
-- rollback;
END; --- Vendor Record
Begin
For site in vendor_sites (rec.vendor_id ) loop
insert into ap_supplier_sites_int
(vendor_interface_id,
vendor_id,
vendor_site_code,
VALUES
(l_input_vendor_seq,
site.vendor_id,
site.site_name
dbms_output.put_line('Inserted AP_SUPPLIER_SITES_INT record for vendor (' ||
rec.vendor_name || '), id=' || to_char(l_input_vendor_seq) || '), )');
Begin
For contact in vendor_contacts (site.vendor_site_id ) loop
insert into ap_sup_site_contact_int
( vendor_site_id,
--vendor_site_code,
inactive_date,
first_name,
middle_name,
last_name
VALUES
site.vendor_site_id ,
--Contact.vendor_site_code,
Contact.inactive_date,
Contact.first_name,
Contact.middle_name,
Contact.last_name
dbms_output.put_line('Inserted AP_SUP_SITE_CONTACT_INT record for vendor (' ||
rec.vendor_name || '), id=' || to_char(l_input_vendor_seq) || '), )');
end loop;
exception --- for the vendor site contact record
when others then
dbms_output.put_line('ERROR inserting AP_SUP_SITE_CONTACT_INT record for vendor (' ||
rec.vendor_name || '), Site=' || to_char('') || ') )');
dbms_output.put_line(nvl(fnd_message.get, SQLERRM));
dbms_output.new_line;
rollback;
end;
end loop;
exception --- for the Vendor Site Record
when others then
dbms_output.put_line('ERROR inserting AP_SUPPLIER_SITES_INT record for vendor (' ||
rec.vendor_name || '), id=' || to_char(l_input_vendor_seq) || ')');
dbms_output.put_line(nvl(fnd_message.get, SQLERRM));
dbms_output.new_line;
rollback;
end;
end loop;
commit;
exception
when others then
dbms_output.put_line('Fatal Error!');
dbms_output.put_line(nvl(fnd_message.get, SQLERRM));
dbms_output.put_line(dbms_utility.format_error_backtrace);
Rollback;
end;
/---The code that worked correctly on my personal laptop with express edition. This was not created as a procedure like above because there is no procedural option installed/enabled on my laptop. To override that error I ran it as pl/sql script. But in above case even running it as a script like below skipped on record. I mean if there were 1000 vendors, 1500 vendor sites, 900 contacts. The code below loaded everything correctly but the code above loaded 1000 vendors correctly but it only loaded 1499 vendor sites ( skipped one site ) and loaded 900 contacts correctly.
declare
cursor main_vendors is
select *
from
po_headers_all;
cursor vendor_sites ( hdr_id number ) is
select *
from
po_lines_all b
where b.po_header_id = hdr_id;
cursor vendor_contacts (lin_id number) is
select * from po_line_locations_all where po_line_id = lin_id;
l_input_vendor_seq number;
l_input_site_seq number;
l_input_site_contact_seq number;
l_site_name VARCHAR2(115);
--payment_term_v ap.AP_TERMS_TL.name%type;
--payment_term_id_v ap.AP_TERMS_TL.term_id%type;
begin
for rec in main_vendors loop
Begin
select AP_SUPPLIERS_INT_S.NEXTVAL
into l_input_vendor_seq
from DUAL;
insert into po_headers_all_int
( po_header_id,
segment1,
po_type_lookup_code,
vendor_name,
attribute1,
po_date,
po_description,
attribute2
VALUES
(l_input_vendor_seq, ----------AP_SUPPLIERS_INT_S.NEXTVAL,
--rec.po_header_id,
rec.segment1,
rec.po_type_lookup_code,
rec.vendor_name,
rec.attribute1,
rec.po_date,
rec.po_description,
rec.attribute2
dbms_output.put_line('Inserted AP_SUPPLIERS_INT record for vendor (' || rec.vendor_name || '), id=' || to_char (l_input_vendor_seq) || ') ');
exception --- error logging for the Vendor Record
when others then
dbms_output.put_line('ERROR Inserting AP_SUPPLIERS_INT record for vendor (' ||
rec.vendor_name || '), id=' || to_char (l_input_vendor_seq) || ') || ');
--dbms_output.put_line(nvl(fnd_message.get, SQLERRM));
dbms_output.new_line;
-- rollback;
END; --- Vendor Record
Begin
For site in vendor_sites (rec.po_header_id ) loop
insert into po_lines_all_int
(po_header_id,
po_line_id,
quantity,
unit_price,
line_num,
line_description,
--creation_date,
created_by
VALUES
(l_input_vendor_seq,
--rec.po_header_id,
site.po_line_id,
site.quantity,
site.unit_price,
site.line_num,
site.line_description,
--'09-AUG-2010',
1
dbms_output.put_line('Inserted AP_SUPPLIER_SITES_INT record for vendor (' ||
site.line_num || '), id=' || to_char(l_input_vendor_seq) || '), )');
Begin
For contact in vendor_contacts (site.po_line_id ) loop
insert into po_line_locations_all_int ( po_header_id, po_line_id, line_location_id, shipment_num, description, quantity )
values (l_input_vendor_seq, site.po_line_id, contact.line_location_id, contact.shipment_num, contact.description, contact.quantity );
end loop;
end;
end loop;
exception --- for the Vendor Site Record
when others then
dbms_output.put_line('ERROR inserting AP_SUPPLIER_SITES_INT record for vendor (' ||
rec.vendor_name || '), id=' || to_char(l_input_vendor_seq) || ')');
--dbms_output.put_line(nvl(fnd_message.get, SQLERRM));
dbms_output.new_line;
rollback;
end;
end loop;
commit;
exception
when others then
dbms_output.put_line('Fatal Error!');
-- dbms_output.put_line(nvl(fnd_message.get, SQLERRM));
dbms_output.put_line(dbms_utility.format_error_backtrace);
Rollback;
end;Edited by: user13301132 on 24-Aug-2010 11:21 AM
Edited by: user13301132 on 24-Aug-2010 12:05 PM
Edited by: user13301132 on 24-Aug-2010 12:07 PM
Edited by: user13301132 on 25-Aug-2010 9:53 AMI know this doesn't answer your question directly, but is there any reason why you have gone with loop processing like this instead of far more efficient and easier to maintain INSERT ... INTO ... SELECT ... FROM blocks?
There's no reason for example that
For site in vendor_sites (rec.vendor_id ) loop
insert into ap_supplier_sites_int
(vendor_interface_id,
vendor_id,
vendor_site_code,
VALUES
(l_input_vendor_seq,
site.vendor_id,
site.site_name
);(which has a bug in it by the way - you have an extraneous comma).
cannot be
insert into ap_supplier_sites_int (vendor_interface_id,
vendor_id,
vendor_site_code)
select input_vendor_seq.nextval,
povs.vendor_id,
povs.vendor_site_code site_name
from
po.po_vendor_sites_all povs
where povs.vendor_id = vendor_id_in;also I just noticed you may want to look at your cursor declarations:
po.po_vendor_sites_all povs;
where povs.vendor_id = vendor_id_in;looks like you've been messing around with it trying to get it to work, but have forgotton to remove a semi-colon. -
SQL*Loader-929: Error
Hi
I am getting following error
SQL*Loader-929: Error parsing insert statement for table XXEEG.XXCONV_NOR_OKS_CON_HEADERS.
ORA-00947: not enough values
while running SQL*Loader. I have same number and types of columns in target table, data file and in control file even after I am getting this error. One thing I want to mention is that there are some fields in my data file which are NULL. But I think this should not create any problem.
Please If any one can give the answer then it will be very helpful for me.Hi,
I am generating control file using a shell script and that shell script runs SQL*LOADER using that generated control file. The following control file is generating.
Control file:
OPTIONS (SKIP=1)
load data
INFILE '/home/C9976680/xxconv_nordic_oks_header.csv'
TRUNCATE
into table xxeeg.XXCONV_NOR_OKS_CON_HEADERS
fields terminated by "," optionally enclosed by '"' trailing nullcols
ID "xxconv_nordic_contract_pkg.get_seq_val('HDR')",
BATCH_NUMBER "xxconv_nordic_contract_pkg.get_batch_no(to_date(:START_DATE,'MM/DD/YYYY'),to_date(:END_DATE,'MM/DD/YYYY'))",
CONTRACT_NUMBER,
CONTRACT_VERSION,
ORACLE_CONTRACT_NUMBER "xxconv_nordic_contract_pkg.get_orcl_kno(:CONTRACT_NUMBER,CONTRACT_VERSION))",
START_DATE "to_date(:START_DATE,'MM/DD/YYYY')",
END_DATE "to_date(:END_DATE,'MM/DD/YYYY')",
STATUS,
PARTY_ID,
BILL_TO_ID,
SHIP_TO_ID,
ACCOUNTING_RULE_TYPE,
INVOICE_RULE_TYPE,
PAYMENT_TERMS,
INT_SALESREP_NAME,
EXT_SALESREP_NAME,
RENEWAL_CONTACT_NAME,
ISR_ZONE,
ORBITAL_PROFILE_ID,
CCHOLDER_NAME,
CC_ZIP,
CUST_PO,
CC_NO,
CC_EXPIRY_DATE,
ERROR_MESSAGE,
INTERFACED_STATUS_FLAG CONSTANT "N",
ERROR_STACK
Log file:
SQL*Loader: Release 8.0.6.3.0 - Production on Wed Feb 13 02:01:11 2008
(c) Copyright 1999 Oracle Corporation. All rights reserved.
Control File: /opt/egapmdev/ebmdappl/xxeeg/bin/xxconv_nordic_oks_header.ctl
Data File: /home/C9976680/xxconv_nordic_oks_header.csv
Bad File: /opt/egapmdev/ebmdappl/xxeeg/bin/xxconv_nordic_oks_header.bad
Discard File: none specified
(Allow all discards)
Number to load: ALL
Number to skip: 1
Errors allowed: 50
Bind array: 64 rows, maximum of 65536 bytes
Continuation: none specified
Path used: Conventional
Table XXEEG.XXCONV_NOR_OKS_CON_HEADERS, loaded from every logical record.
Insert option in effect for this table: TRUNCATE
TRAILING NULLCOLS option in effect
Column Name Position Len Term Encl Datatype
ID FIRST * , O(") CHARACTER
BATCH_NUMBER NEXT * , O(") CHARACTER
CONTRACT_NUMBER NEXT * , O(") CHARACTER
CONTRACT_VERSION NEXT * , O(") CHARACTER
ORACLE_CONTRACT_NUMBER NEXT * , O(") CHARACTER
START_DATE NEXT * , O(") CHARACTER
END_DATE NEXT * , O(") CHARACTER
STATUS NEXT * , O(") CHARACTER
PARTY_ID NEXT * , O(") CHARACTER
BILL_TO_ID NEXT * , O(") CHARACTER
SHIP_TO_ID NEXT * , O(") CHARACTER
ACCOUNTING_RULE_TYPE NEXT * , O(") CHARACTER
INVOICE_RULE_TYPE NEXT * , O(") CHARACTER
PAYMENT_TERMS NEXT * , O(") CHARACTER
INT_SALESREP_NAME NEXT * , O(") CHARACTER
EXT_SALESREP_NAME NEXT * , O(") CHARACTER
RENEWAL_CONTACT_NAME NEXT * , O(") CHARACTER
ISR_ZONE NEXT * , O(") CHARACTER
ORBITAL_PROFILE_ID NEXT * , O(") CHARACTER
CCHOLDER_NAME NEXT * , O(") CHARACTER
CC_ZIP NEXT * , O(") CHARACTER
CUST_PO NEXT * , O(") CHARACTER
CC_NO NEXT * , O(") CHARACTER
CC_EXPIRY_DATE NEXT * , O(") CHARACTER
ERROR_MESSAGE NEXT * , O(") CHARACTER
ERROR_STACK NEXT * , O(") CHARACTER
INTERFACED_STATUS_FLAG CONSTANT 'N'
Column ID had SQL string
"xxconv_nordic_contract_pkg.get_seq_val('HDR')"
applied to it.
Column BATCH_NUMBER had SQL string
"xxconv_nordic_contract_pkg.get_batch_no(to_date(:START_DATE,'MM/DD/YYYY'),to_date(:END_DATE,'MM/DD/YYYY'))"
applied to it.
Column ORACLE_CONTRACT_NUMBER had SQL string
"xxconv_nordic_contract_pkg.get_orcl_kno(:CONTRACT_NUMBER),to_char(:CONTRACT_VERSION))"
applied to it.
Column START_DATE had SQL string
"to_date(:START_DATE,'MM/DD/YYYY')"
applied to it.
Column END_DATE had SQL string
"to_date(:END_DATE,'MM/DD/YYYY')"
applied to it.
SQL*Loader-929: Error parsing insert statement for table XXEEG.XXCONV_NOR_OKS_CON_HEADERS.
ORA-00947: not enough values
Table Structure:
CREATE TABLE XXEEG.XXCONV_NOR_OKS_CON_HEADERS
( ID NUMBER CONSTRAINT HEAD_ID_PK PRIMARY KEY,
BATCH_NUMBER NUMBER,
CONTRACT_NUMBER VARCHAR2(50),
CONTRACT_VERSION NUMBER,
ORACLE_CONTRACT_NUMBER VARCHAR2(300),
START_DATE varchar2(20),
END_DATE varchar2(20),
STATUS VARCHAR2(20),
PARTY_ID NUMBER,
BILL_TO_ID NUMBER,
SHIP_TO_ID NUMBER,
ACCOUNTING_RULE_TYPE VARCHAR2(50),
INVOICE_RULE_TYPE VARCHAR2(50),
PAYMENT_TERMS VARCHAR2(50),
INT_SALESREP_NAME VARCHAR2(50),
EXT_SALESREP_NAME VARCHAR2(50),
RENEWAL_CONTACT_NAME VARCHAR2(50),
ISR_ZONE VARCHAR2(50),
ORBITAL_PROFILE_ID VARCHAR2(50),
CCHOLDER_NAME VARCHAR2(50),
CC_ZIP NUMBER,
CUST_PO VARCHAR2(50),
CC_NO NUMBER,
CC_EXPIRY_DATE varchar2(20),
ERROR_MESSAGE VARCHAR2(1000),
INTERFACED_STATUS_FLAG VARCHAR2(1),
ERROR_STACK VARCHAR2(2000)
Functions used above:
FUNCTION get_batch_no(p_start_date DATE, p_end_date DATE) RETURN NUMBER IS
BEGIN
RETURN 1;
END get_batch_no;
FUNCTION get_orcl_kno(p_contract_number VARCHAR2, p_contract_version NUMBER) RETURN VARCHAR2 IS
BEGIN
RETURN 'M'||p_contract_number||'v'||p_contract_version;
END get_orcl_kno;
FUNCTION get_seq_val (p_seqtype VARCHAR2) RETURN NUMBER IS
v_seqno NUMBER;
BEGIN
IF UPPER(p_seqtype) = 'HDR' THEN
SELECT XXCONV_NOR_HDR_S.NEXTVAL
INTO v_seqno
FROM dual;
RETURN v_seqno;
END IF;
IF UPPER(p_seqtype) = 'LINE' THEN
SELECT XXCONV_NOR_LINE_S.NEXTVAL
INTO v_seqno
FROM dual;
RETURN v_seqno;
END IF;
IF UPPER(p_seqtype) = 'SUBLINE' THEN
SELECT XXCONV_NOR_SUBLINE_S.NEXTVAL
INTO v_seqno
FROM dual;
RETURN v_seqno;
END IF;
IF UPPER(p_seqtype) = 'BILL_SCH' THEN
SELECT XXCONV_NOR_BILL_SCH_S.NEXTVAL
INTO v_seqno
FROM dual;
RETURN v_seqno;
END IF;
IF UPPER(p_seqtype) = 'PMS' THEN
SELECT XXCONV_NOR_PMS_S.NEXTVAL
INTO v_seqno
FROM dual;
RETURN v_seqno;
END IF;
IF UPPER(p_seqtype) = 'TEST' THEN
SELECT XXCONV_NOR_WARRANTY_S.NEXTVAL
INTO v_seqno
FROM dual;
RETURN v_seqno;
END IF;
END get_seq_val;
-----------------------------------
Maybe you are looking for
-
Cannot get recovery disk to work on CQ58
Model Compaq CQ58 Product number is C2M29UA#ABA Purchased 11/22/2012 Windows 8 preinstalled. Turned laptop on and it came up with "No operating system found on HDD. I inserted my recovery disc's and chose to install operating system and drivers image
-
Hi, Can Any one tell me the performance tuning techniques we can do in OBIEE Answers side?not RPD
-
Hi, I'm having problems with importing the following: import javax.swing.*; import javax.crypto.* I am currently using JDK1.3.1_01. I've looked in the main java folder there is no 'javax' folder, hence thats why the error message appears: package jav
-
can't figure out how to fix this problem
-
Since I install CS-6 on my computers; I 've notice my Adobe Professor does not work and I cannot open the program; nor create any pdf files. I uninstall and re installed. Any suggestion? Thanks