165 lines
4.7 KiB
Plaintext
165 lines
4.7 KiB
Plaintext
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
|
|
*==============================================================================================*
|