added LSL2 stored procedures
This commit is contained in:
164
LSL2/STPROC/RDS_CALCULATOR_COMM.txt
Normal file
164
LSL2/STPROC/RDS_CALCULATOR_COMM.txt
Normal file
@ -0,0 +1,164 @@
|
||||
function rds_calculator_comm(Branch)
|
||||
|
||||
declare function set_property, fieldcount, get_property, msg, dialog_box, entid, findwindow
|
||||
declare function memberof, send_event, post_event, repository, start_window, utility, popup
|
||||
declare function security_check, send_message
|
||||
declare subroutine make.list, yield, security_err_msg
|
||||
|
||||
begin condition
|
||||
pre:
|
||||
post:
|
||||
end condition
|
||||
|
||||
ReturnVar = 0
|
||||
Branches = 'CALC_STAT_INFO'
|
||||
convert ',' to @fm in Branches
|
||||
locate Branch in Branches using @fm setting Bpos then
|
||||
on Bpos gosub CALC_STAT_INFO
|
||||
end else
|
||||
Void = msg( '', 'Invalid Branch ':Bpos:' passed to rds_calculator_comm' )
|
||||
end
|
||||
return ReturnVar
|
||||
*==============================================================================================*
|
||||
CALC_STAT_INFO:
|
||||
ReturnVar = str( @vm, 9 )
|
||||
* thickness average
|
||||
ThickReadings = iconv( get_property( @window:'.THICKNESS_READINGS', 'ARRAY' ), 'MD2' )
|
||||
ThickAvg = ''
|
||||
ThickStdev = ''
|
||||
ResRHOStDev = ''
|
||||
ThickCp = ''
|
||||
ResRHOAvg = ''
|
||||
ResRHOCp = ''
|
||||
Counter = 0
|
||||
Ans = ''
|
||||
LowThickRead = 9999
|
||||
HighThickRead = 0
|
||||
for i = 1 to 17
|
||||
ThisThickRead = ThickReadings<1,i>
|
||||
if ThisThickRead <> "" then
|
||||
Counter += 1
|
||||
Ans += ThisThickRead
|
||||
if ThisThickRead < LowThickRead then
|
||||
LowThickRead = ThisThickRead
|
||||
end
|
||||
if ThisThickRead > HighThickRead then
|
||||
HighThickRead = ThisThickRead
|
||||
end
|
||||
end
|
||||
next i
|
||||
if Counter then
|
||||
ThickAvg = Ans/Counter
|
||||
ReturnVar<1,1> = oconv( ThickAvg, 'MD2' )
|
||||
end
|
||||
NumDp = Counter
|
||||
SumDp = Ans
|
||||
* resistivity average
|
||||
LowResRHORead = 99999999999
|
||||
HighResRHORead = 0
|
||||
Counter = ''
|
||||
Ans = ''
|
||||
if get_property( @window:'.CALC_TYPE', 'VALUE' ) = 'S' then
|
||||
* ohm squared use Sheet RHO
|
||||
ResRHOReadings = iconv( get_property( @window:'.SHEETRHO_READINGS', 'ARRAY' ), 'MD2' )
|
||||
for i = 1 to 17
|
||||
TVar = ResRHOReadings<1,i>
|
||||
if Tvar <> "" then
|
||||
Tvar = Tvar * 10
|
||||
ResRHOReadings<1,i> = Tvar
|
||||
end
|
||||
next i
|
||||
end else
|
||||
ResRHOReadings = iconv( get_property( @window:'.RES_READINGS', 'ARRAY' ), 'MD3' )
|
||||
end
|
||||
for i=1 to 17
|
||||
ThisResRHORead = ResRHOReadings<1,i>
|
||||
if ThisResRHORead <> "" and ThisResRHORead <> 0 then
|
||||
Counter += 1
|
||||
Ans += ThisResRHORead
|
||||
if ThisResRHORead < LowResRHORead then
|
||||
LowResRHORead = ThisResRHORead
|
||||
end
|
||||
if ThisResRHORead > HighResRHORead then
|
||||
HighResRHORead = ThisResRHORead
|
||||
end
|
||||
end
|
||||
next i
|
||||
if Counter then
|
||||
ResRHOAvg = Ans/Counter
|
||||
ReturnVar<1,2> = oconv( ResRHOAvg, 'MD3' )
|
||||
end
|
||||
RNumDp = Counter
|
||||
RSumDp = Ans
|
||||
|
||||
* thickness stdev
|
||||
SumDiffSq = 0
|
||||
Mean = ''
|
||||
if SumDp and NumDp then
|
||||
Mean = SumDp/NumDp
|
||||
end
|
||||
for i = 1 to 17
|
||||
ThisThickRead = ThickReadings<1,i>
|
||||
if ThisThickRead <> "" then
|
||||
*SumDiffSq += ( ThisThickRead - Mean )**2
|
||||
SumDiffSq += ( ThisThickRead - Mean ) * ( ThisThickRead - Mean )
|
||||
end
|
||||
next i
|
||||
if SumDiffSq and NumDp then
|
||||
Ans = sqrt( SumDiffSq/NumDp )
|
||||
Ans = Ans * 10
|
||||
ThickStDev = Ans
|
||||
ReturnVar<1,3> = oconv( Ans, 'MD3' )
|
||||
end
|
||||
|
||||
* resistivity stdev
|
||||
SumDiffSq = 0
|
||||
Mean = ''
|
||||
if RSumDp and RNumDp then
|
||||
Mean = RSumDp/RNumDp
|
||||
end
|
||||
for i = 1 to 17
|
||||
ThisResRHORead = ResRHOReadings<1,i>
|
||||
if ThisResRHORead <> "" and ThisResRHORead <> 0 then
|
||||
*SumDiffSq += ( ThisResRHORead - Mean )**2
|
||||
SumDiffSq += ( ThisResRHORead - Mean ) * ( ThisResRHORead - Mean )
|
||||
end
|
||||
next i
|
||||
if SumDiffSq and RNumDp then
|
||||
Ans = sqrt( SumDiffSq/RNumDp )
|
||||
*Ans = Ans * 10
|
||||
ResRHOStDev = Ans
|
||||
ReturnVar<1,4> = oconv( Ans, 'MD3' )
|
||||
end
|
||||
|
||||
* thickness and resistivity minimum and maximum
|
||||
if HighThickRead <> 0 then
|
||||
ReturnVar<1,5> = oconv( HighThickRead, 'MD2' )
|
||||
end else
|
||||
ReturnVar<1,5> = ''
|
||||
end
|
||||
if HighResRHORead <> 0 then
|
||||
ReturnVar<1,6> = oconv( HighResRHORead, 'MD3' )
|
||||
end else
|
||||
ReturnVar<1,6> = ''
|
||||
end
|
||||
if LowThickRead = 9999 then
|
||||
* they did not enter any so blank out cause it was set in code above to 9999
|
||||
LowThickRead = ''
|
||||
end
|
||||
ReturnVar<1,7> = oconv( LowThickRead, 'MD2' )
|
||||
if LowResRHORead = 99999999999 then
|
||||
* they did not enter any so blank out cause it was set in code above to 99999999999
|
||||
LowResRHORead = ''
|
||||
end
|
||||
ReturnVar<1,8> = oconv( LowResRHORead, 'MD3' )
|
||||
|
||||
* thickness and resistivity uniformity
|
||||
if HighThickRead and LowThickRead then
|
||||
ReturnVar<1,9> = oconv(((HighThickRead - LowThickRead)/(HighThickRead + LowThickRead))*10000, 'MD2' )
|
||||
end
|
||||
if ( HighResRHORead - LowResRHORead ) and ( HighResRHORead + LowResRHORead ) then
|
||||
ReturnVar<1,10>= oconv(((HighResRHORead - LowResRHORead)/(HighResRHORead + LowResRHORead))*10000, 'MD2' )
|
||||
end
|
||||
return
|
||||
*==============================================================================================*
|
Reference in New Issue
Block a user