compile subroutine rds_react_no_valid(ConvType, DataIo, Branch, ReturnedValue) begin condition pre: post: end condition declare function msg, get_property, set_property, utility, key_sort, fieldcount declare subroutine update_index, extract_si_keys, btree.extract $insert logical $insert quote_equ $insert msg_equates $insert rds_equ equ valid$ to 0 ;* successful equ invalid_msg$ to 1 ;* bad data - print error message window equ invalid_conv$ to 2 ;* bad conversion - " " equ invalid_nomsg$ to 3 ;* bad but do not print the error message window equ CrLf$ to char(13):char(10) **************** THIS IS NOT USED ANYMORE ************************8 ReturnedValue = DataIo status() = Valid$ begin case case ConvType = 'ICONV' CurRecipeInfo = get_property( @window:'.RECIPE_INFO', 'ARRAY' ) RecipeKey = 'RECIPE*':get_property( @window:'.REACTOR', 'TEXT' ):'*':CurRecipeInfo<1,1> OvrParams = xlate( 'CONFIG', RecipeKey, '', 'X' ) if len( OvrParams ) then * load the override paramaters * first load the recipe paramaters for the main layer FLInfo = OvrParams<1> RlInfo = OvrParams<2> * do everything except <1>recipe_no; <3>epi_time; <6>epi_source * and <7>epi_inject CurRecipeInfo<2> = FLInfo<1,2> CurRecipeInfo<4> = FLInfo<1,4> CurRecipeInfo<5> = FLInfo<1,5> CurRecipeInfo<8> = FLInfo<1,8> CurRecipeInfo<9> = FLInfo<1,9> CurRecipeInfo<10> = FLInfo<1,10> CurRecipeInfo<11> = FLInfo<1,11> CurRecipeInfo<12> = FLInfo<1,12> CurRecipeInfo<13> = FLInfo<1,13> CurRecipeInfo<14> = FLInfo<1,14> CurRecipeInfo<15> = FLInfo<1,15> CurRecipeInfo<16> = FLInfo<1,16> CurRecipeInfo<17> = FLInfo<1,17> CurRecipeInfo<18> = FLInfo<1,18> CurRecipeInfo<19> = FLInfo<1,19> CurRecipeInfo = set_property( @window:'.RECIPE_INFO', 'ARRAY', CurRecipeInfo ) * RlInfo = OvrParams<2> CurLayInfo = get_property( @window:'.LAYER_INFO', 'TEXT' ) LayCnt = fieldcount( CurLayInfo, char(248) ) * only include as many layers as defined originally by the recipe * when the RDS was created; cause if someone overrides and adds * a layer it would carry forward and we want the number of layers * to come from recipe NewLayers = '' for i = 1 to LayCnt ThisRlInfo = field( RlInfo, char(248), i ) ThisCurLay = field( CurLayInfo, char(248), i ) * do everything except <1-5>concentration min target max units and recipe no * <7>epi_time; <10>epi_source; <11>epi_inject * <24-31> ThisCurLay<1,6> = ThisRlInfo<1,6> ThisCurLay<1,8> = ThisRlInfo<1,8> ThisCurLay<1,9> = ThisRlInfo<1,9> ThisCurLay<1,12> = ThisRlInfo<1,12> ThisCurLay<1,13> = ThisRlInfo<1,13> ThisCurLay<1,14> = ThisRlInfo<1,14> ThisCurLay<1,15> = ThisRlInfo<1,15> ThisCurLay<1,16> = ThisRlInfo<1,16> ThisCurLay<1,17> = ThisRlInfo<1,17> ThisCurLay<1,18> = ThisRlInfo<1,18> ThisCurLay<1,19> = ThisRlInfo<1,19> ThisCurLay<1,20> = ThisRlInfo<1,20> ThisCurLay<1,21> = ThisRlInfo<1,21> ThisCurLay<1,22> = ThisRlInfo<1,22> ThisCurLay<1,23> = ThisRlInfo<1,23> NewLayers := ThisCurLay:char(248) next i Newlayers[-1,1] = '' if Newlayers then Void = set_property( @window:'.LAYER_INFO', 'TEXT', NewLayers ) end end Void = utility( 'CURSOR', 'A' ) case ConvType = 'OCONV' * no output ReturnedValue = DataIo case otherwise$ ReturnedValue = '' status() = invalid_conv$ end case return