Click to See Complete Forum and Search --> : Calculation .................Help me!!!
joelo
08-29-2003, 06:23 AM
Please Could somebody help me out on translate the following cal. formula to java function (in array)
1.)
If IsNull(x_LowOperatingRange.value) OR x_LowOperatingRange.value = "NA" OR ((InStr(x_DeviceID.value, "PSH") > 0) And x_HighOperatingRange.value <= 30 Then
PRE_SetPointPressure_.value + 5
ElseIf ((InStr(x_DeviceID.value, "PSH") > 0) And Round(x_HighOperatingRange.value * 1.15,0) > x_MAWP.value * 0.95 Then
PRE_SetPointPressure_.value = x_MAWP.value * 0.95
ElseIf ((InStr(x_DeviceID.value, "PSH") > 0) Then
PRE_idSetPointPressure_.value = Round(1.15 * x_HighOperatingRange.value,0)
ElseIf IsNull(x_LowOperatingRange.value) OR x_LowOperatingRange.value = "NA" OR ((InStr(x_DeviceID.value, "PAH") > 0) And Round(1.075 * x_HighOperatingRange.value,0) > 0.95 * x_MAWP.value Then
PRE_idSetPointPressure_.value = x_MAWP.value * 0.95
ElseIf ((InStr(x_DeviceID.value, "PAH") > 0) Then
PRE_SetPointPressure_.value = Round(1.075 * x_HighOperatingRange.value,0)
ElseIf IsNull(x_HighOperatingRange.value) OR x_LowOperatingRange.value = "NA" OR ((InStr(x_DeviceID.value, "PSL") > 0) And x_LowOperatingRange.value <= 30 Then
PRE_SetPointPressure_.value = x_LowOperatingRange.value - 5
ElseIf ((InStr(x_DeviceID.value, "PSL") > 0) And x_LowOperatingRange.value >= 31 Then
PRE_SetPointPressure_.value = Round(x_LowOperatingRange.value * 0.85,0)
ElseIf IsNull(x_HighOperatingRange.value) OR x_LowOperatingRange.value = "NA" OR ((InStr(x_DeviceID.value, "PSH") > 0) Then
PRE_SetPointPressure_.value = Round(0.925 * x_LowOperatingRange.value,0)
End If
Thanxs in advance
This is a JavaScript forum not a Java forum. There is a difference.
joelo
08-29-2003, 07:31 AM
sorry about that......I meant Javascript
if( !SomeValue || SomeValue==="NA" || Somevalue > 0 && SomeValue <= 30) {
DoSomething;
}
else if( ....bla, bla ) {
DoSomething;
}
else {
DoSomething;
}
Start learning (http://www.w3schools.com/js/default.asp)
joelo
08-29-2003, 11:19 AM
Please could anybody help me with array on this...... Please see if the correctly done....I am so confused
thanx in advance
function calculation(){
if( !x_LowOperatingRange.value || x_LowOperatingRange.value==="NA" || (x_DeviceID.value.match("PSH")) && x_HighOperatingRange.value <= 30) {
PRE_SetPointPressure_.value + 5;
}
else if(x_DeviceID.value.match("PSH")) && Math.floor(x_HighOperatingRange.value) * 115/100) > x_MAWP.value * 0.95) {
PRE_SetPointPressure_.value = x_MAWP.value * 0.95;
}
else if(x_DeviceID.value.match("PSH")) {
PRE_idSetPointPressure_.value = Math.floor(x_HighOperatingRange.value) * 115/100);
}
if( !x_LowOperatingRange.value || x_LowOperatingRange.value==="NA" || (x_DeviceID.value.match("PAH")) && Math.floor(x_HighOperatingRange.value)*107.5/100) > 0.95 * x_MAWP.value) {
PRE_idSetPointPressure_.value = x_MAWP.value * 0.95;
}
else if(x_DeviceID.value.match("PAH")) {
PRE_SetPointPressure_.value = Math.floor(x_HighOperatingRange.value)*107.5/100);
}
if( !x_x_HighOperatingRange.value || x_HighOperatingRange.value==="NA" || (x_DeviceID.value.match("PSL")) && x_LowOperatingRange.value <= 30) {
PRE_SetPointPressure_.value = x_LowOperatingRange.value - 5;
}
else if(x_DeviceID.value.match("PSL")) && x_LowOperatingRange.value >= 31) {
PRE_SetPointPressure_.value = Math.ceil(x_LowOperatingRange.value)*85/100);
}
if( !x_x_HighOperatingRange.value || x_x_HighOperatingRange.value==="NA" || (x_DeviceID.value.match("PAL"))) {
PRE_SetPointPressure_.value = Math.ceil(x_LowOperatingRange.value)*92.5/100);
}
}
This is valid JavaScript. Wheather the logic is correct is something you will have to check.
function calculation(){
if( !x_LowOperatingRange.value || x_LowOperatingRange.value==="NA" || (x_DeviceID.value.match("PSH")) && x_HighOperatingRange.value <= 30) {
PRE_SetPointPressure_.value += 5;
}
else if(x_DeviceID.value.match("PSH") && (Math.floor(x_HighOperatingRange.value) * 115/100) > x_MAWP.value * 0.95) {
PRE_SetPointPressure_.value = x_MAWP.value * 0.95;
}
else if(x_DeviceID.value.match("PSH")) {
PRE_idSetPointPressure_.value = Math.floor(x_HighOperatingRange.value) * 115/100;
}
if( !x_LowOperatingRange.value || x_LowOperatingRange.value==="NA" || x_DeviceID.value.match("PAH") && (Math.floor(x_HighOperatingRange.value)*107.5/100) > 0.95 * x_MAWP.value) {
PRE_idSetPointPressure_.value = x_MAWP.value * 0.95;
}
else if(x_DeviceID.value.match("PAH")) {
PRE_SetPointPressure_.value = Math.floor(x_HighOperatingRange.value)*107.5/100;
}
if( !x_x_HighOperatingRange.value || x_HighOperatingRange.value==="NA" || x_DeviceID.value.match("PSL") && x_LowOperatingRange.value <= 30) {
PRE_SetPointPressure_.value = x_LowOperatingRange.value - 5;
}
else if(x_DeviceID.value.match("PSL") && x_LowOperatingRange.value >= 31) {
PRE_SetPointPressure_.value = Math.ceil(x_LowOperatingRange.value)*85/100;
}
if( !x_x_HighOperatingRange.value || x_x_HighOperatingRange.value==="NA" || x_DeviceID.value.match("PAL")) {
PRE_SetPointPressure_.value = Math.ceil(x_LowOperatingRange.value)*92.5/100;
}
}
joelo
08-29-2003, 04:36 PM
Please anybody help out on how to echo Ext_Record_count (record count Number) into the below function from the form
function calculation() {
for (num=0; num< <%=Ext_Record_Count%>; num++) {
if( !x_LowOperatingRange.value || x_LowOperatingRange.value=="NA" || (document.getElementById('PRE_DEVICEID_'+num).value.match("PSH")) && x_HighOperatingRange.value <= 30) {
document.getElementById('PRE_SetPointPressure_'+num).value + 5;
}
else if(document.getElementById('PRE_DEVICEID_'+num).value.match("PSH")) && Math.floor(x_HighOperatingRange.value) * 115/100) > x_MAWP.value * 0.95) {
document.getElementById('PRE_SetPointPressure_'+num).value = x_MAWP.value * 0.95;
}
else if(document.getElementById('PRE_DEVICEID_'+num).value.match("PSH")) {
document.getElementById(PRE_SetPointPressure_.value = Math.floor(x_HighOperatingRange.value)) * 115/100);
}
if( !x_LowOperatingRange.value || x_LowOperatingRange.value=="NA" || (document.getElementById('PRE_DEVICEID_'+num).value.match("PAH")) && Math.floor(x_HighOperatingRange.value)*107.5/100) > (0.95 * x_MAWP.value)) {
document.getElementById('PRE_SetPointPressure_'+num).value = x_MAWP.value * 0.95;
}
else if(document.getElementById('PRE_DEVICEID_'+num).value.match("PAH")) {
document.getElementById('PRE_SetPointPressure_'+num).value = Math.floor(x_HighOperatingRange.value)*107.5/100);
}
if( !x_HighOperatingRange.value || x_HighOperatingRange.value=="NA" || (document.getElementById('PRE_DEVICEID_'+num).value.match("PSL")) && x_LowOperatingRange.value <= 30) {
document.getElementById('PRE_SetPointPressure_'+num).value = x_LowOperatingRange.value - 5;
}
else if(document.getElementById('PRE_DEVICEID_'+num).value.match("PSL")) && x_LowOperatingRange.value >= 31) {
document.getElementById('PRE_SetPointPressure_'+num).value = Math.ceil(x_LowOperatingRange.value)*85/100);
}
if( !x_HighOperatingRange.value || x_HighOperatingRange.value=="NA" || (document.getElementById('PRE_DEVICEID_'+num).value.match("PAL"))) {
document.getElementById('PRE_SetPointPressure_'+num).value = Math.ceil(x_LowOperatingRange.value)*92.5/100);
}
}
}
This is the form
*************
<tr id="trow_<%=Ext_Record_Count%>" name="ntrow_<%=Ext_Record_Count%>">
<td class="data" height="58" bgcolor="#F5F5F5"> <input type="text" id="PRE_idDEVICEID_<%=Ext_Record_Count%>" name="PRE_DEVICEID_<%=Ext_Record_Count%>" value="<%=trim(Rs_Ext("DEVICEID")) %>" size=15 maxlength=10>
</td>
<td class="data" bgcolor="#F5F5F5"> <input type="text" id="PRE_idSETPOINTPRESSURE_<%=Ext_Record_Count%>" name="PRE_SETPOINTPRESSURE_<%=Ext_Record_Count%>" value="<%=trim(Rs_Ext("SETPOINTPRESSURE")) %>"size=6 maxlength=8>
</td>
<td class="data" bgcolor="#F5F5F5"> <input type="text" id="PRE_idFOUNDPRESSURE_<%=Ext_Record_Count%>" name="PRE_FOUNDPRESSURE_<%=Ext_Record_Count%>" value="<%=trim(Rs_Ext("FOUNDPRESSURE")) %>" size=6 maxlength=8>
</td>
<td class="data" bgcolor="#F5F5F5"> <input type="text" id="PRE_idLEFTPRESSURE_" name="PRE_LEFTPRESSURE_<%=Ext_Record_Count%>" value="<%=trim(Rs_Ext("LEFTPRESSURE")) %>" size=6 maxlength=8 onBlur="CyJS_Utils_isNumber(this);">
</td>
Its value is entered by the asp tag <%=Ext_Record_Count%>,
unless the value is changed by the user in the input.
joelo
08-30-2003, 03:17 AM
I keep get the following error
A Runtime Error has Occurred
Line 33:
Syntax Error
Line 33:
for (num=0; num< <%=Ext_Record_Count%>; num++) {
Please could anybody help me out I am confused
joelo
08-30-2003, 07:35 AM
anybody please help me out........
This is an ASP question, try in the that forum.
joelo
08-31-2003, 01:41 AM
Hey Fang,
I got the <%=Ext_Record_Count%>; working now .........But I still get Errors
Please could help me out .......going thru to see if I missed something.......I can't seem to see what I am doing wrong.
function calculation() {
for (num=0; num< <%=Ext_Record_Count%>; num++) {
if( !x_LowOperatingRange.value || x_LowOperatingRange.value=="NA" || (document.getElementById('PRE_DEVICEID_'+num).value.match("PSH")) && (x_HighOperatingRange.value <= 30)) {
document.getElementById('PRE_SetPointPressure_'+num).value + 5;
}
else if(document.getElementById('PRE_DEVICEID_'+num.value.match("PSH")) && (Math.floor(x_HighOperatingRange.value) * 115/100) > (x_MAWP.value * 0.95)) {
document.getElementById('PRE_SetPointPressure_'+num).value = x_MAWP.value * 0.95;
}
else if(document.getElementById('PRE_DEVICEID_'+num).value.match("PSH")) {
document.getElementById(PRE_SetPointPressure_).value = Math.floor(x_HighOperatingRange.value) * 115/100;
}
if( !x_LowOperatingRange.value || x_LowOperatingRange.value=="NA" || (document.getElementById('PRE_DEVICEID_'+num).value.match("PAH")) && (Math.floor(x_HighOperatingRange.value)*107.5/100) > (0.95 * x_MAWP.value)) {
document.getElementById('PRE_SetPointPressure_'+num).value = x_MAWP.value * 0.95;
}
else if(document.getElementById('PRE_DEVICEID_'+num).value.match("PAH")) {
document.getElementById('PRE_SetPointPressure_'+num).value = Math.floor(x_HighOperatingRange.value)*107.5/100;
}
if( !x_HighOperatingRange.value || x_HighOperatingRange.value=="NA" || (document.getElementById('PRE_DEVICEID_'+num).value.match("PSL")) && (x_LowOperatingRange.value <= 30)) {
document.getElementById('PRE_SetPointPressure_'+num).value = x_LowOperatingRange.value - 5;
}
else if(document.getElementById('PRE_DEVICEID_'+num).value.match("PSL")) && (x_LowOperatingRange.value >= 31)) {
document.getElementById('PRE_SetPointPressure_'+num).value = Math.ceil(x_LowOperatingRange.value)*85/100;
}
if( !x_HighOperatingRange.value || x_HighOperatingRange.value=="NA" || (document.getElementById('PRE_DEVICEID_'+num).value.match("PAL"))) {
document.getElementById('PRE_SetPointPressure_'+num).value = Math.ceil(x_LowOperatingRange.value)*92.5/100;
}
}
}
changed:
.match("PSH") to =="PSH" (is equal to)
('PRE_SetPointPressure_'+num).value = 5; to ('PRE_SetPointPressure_'+num).value += 5; (add 5 to exsisting value of variable
I have a reservation as to the logic of:
(Math.floor(x_HighOperatingRange.value) * 115/100)
should not the Math.floor (round down) be applied to the final calculation?
There is no fall-through; what happens if none of the criteria are met?
The code is valid JavaScript, but does not mean the function produces the desired result.
function calculation() {
for (num=0; num< <%=Ext_Record_Count%>; num++) {
if( !x_LowOperatingRange.value || x_LowOperatingRange.value=="NA" || document.getElementById('PRE_DEVICEID_'+num).value=="PSH" && x_HighOperatingRange.value <= 30) {
document.getElementById('PRE_SetPointPressure_'+num).value += 5;
}
else if(document.getElementById('PRE_DEVICEID_'+num).value=="PSH" && (Math.floor(x_HighOperatingRange.value) * 115/100) > (x_MAWP.value * 0.95)) {
document.getElementById('PRE_SetPointPressure_'+num).value = x_MAWP.value * 0.95;
}
else if(document.getElementById('PRE_DEVICEID_'+num).value=="PSH") {
document.getElementById('PRE_SetPointPressure_'+num).value = Math.floor(x_HighOperatingRange.value) * 115/100;
}
if( !x_LowOperatingRange.value || x_LowOperatingRange.value=="NA" || document.getElementById('PRE_DEVICEID_'+num).value=="PAH" && (Math.floor(x_HighOperatingRange.value)*107.5/100) > (0.95 * x_MAWP.value)) {
document.getElementById('PRE_SetPointPressure_'+num).value = x_MAWP.value * 0.95;
}
else if(document.getElementById('PRE_DEVICEID_'+num).value=="PAH") {
document.getElementById('PRE_SetPointPressure_'+num).value = Math.floor(x_HighOperatingRange.value)*107.5/100;
}
if( !x_HighOperatingRange.value || x_HighOperatingRange.value=="NA" || document.getElementById('PRE_DEVICEID_'+num).value=="PSL" && (x_LowOperatingRange.value <= 30)) {
document.getElementById('PRE_SetPointPressure_'+num).value = x_LowOperatingRange.value - 5;
}
else if(document.getElementById('PRE_DEVICEID_'+num).value=="PSL" && (x_LowOperatingRange.value >= 31)) {
document.getElementById('PRE_SetPointPressure_'+num).value = Math.ceil(x_LowOperatingRange.value)*85/100;
}
if( !x_HighOperatingRange.value || x_HighOperatingRange.value=="NA" || document.getElementById('PRE_DEVICEID_'+num).value=="PAL") {
document.getElementById('PRE_SetPointPressure_'+num).value = Math.ceil(x_LowOperatingRange.value)*92.5/100;
}
}
}
joelo
08-31-2003, 04:29 AM
Hey Fang,
The reason why I used match("PSH") is that My PRE_DEVICEID_.value contents "PF-200-PSH-200" .....and so on
It needs a regular expression within the brackets.
Easier is:
document.getElementById('PRE_DEVICEID_'+num).value.indexOf("PSH")!=-1
if the string is found a value of between 0 and length of string
if not found -1 is returned, therefore not equal to -1 equates to string found.
Or reg.ex. :
document.getElementById('PRE_DEVICEID_'+num).value.match(/PSH/g)
reg.ex. are slower.