HDR*PowerBuilder0600ŴU7PBL for RAPIDS consistency checkerFRE*NOD*/ 8 ENT*0600glAu_cc_process.udoENT*0600(].b?u_cc_source.sruENT*0600vE.b?u_cc_process.sruENT*0600 |lAu_cc_source.udoENT*0600lA u_cc_geo.udoENT*06009A.b?u_cc_stream.sruENT*0600R.b? u_cc_geo.sruENT*0600NjBlAu_cc_stream.udoENT*0600uRmAu_cc_device.udoENT*0600n.b? u_dw.sruENT*0600=.b?u_cc_device.sruENT*0600"lA u_dw.udoENT*0600vBlAu_cc_base.udoENT*0600:.b?q u_level.sruENT*0600NY&.b?u_cc_base.sruENT*0600 NMmA u_level.udoENT*0600(mAstr_level.strENT*0600(!.b?u_log_file.sruENT*0600F.b?Bstr_level.srsENT*060004mAu_log_file.udoENT*0600@7mAstr_errors.strENT*0600.b?$u_ref_code_table_dddw.sruENT*0600>.b?str_errors.srsENT*0600L mAu_ref_code_table_dddw.udoENT*0600* .b?"f_unit_convert.srfENT*0600G .b?4u_stringency_level_select.sruENT*0600 mAf_unit_convert.funENT*0600dmAu_stringency_level_select.udoENT*060089d_streams_cc_2.srdENT*0600.b?'u_time_period_select.sruENT*06009Ad_streams_cc_2.dwoENT*0600,mAu_time_period_select.udoENT*06009d_streams_cc.srdENT*0600.b?5w_ccheck_parameters.srwENT*060009Ad_streams_cc.dwoENT*0600 mAw_ccheck_parameters.winENT*0600[>@09d_process_cc.srdENT*0600G.b?w_concheck_edit.srwENT*0600L&99Ad_process_cc.dwoENT*0600&-mAw_concheck_edit.winENT*0600/9d_device_cc.srdENT*0600.b?w_concheck_export.srwENT*060019Ad_device_cc.dwoENT*0600mAw_concheck_export.winENT*06002d_concheck_edit.srdENT*0600.b?w_concheck_view.srwENT*0600 9Ad_concheck_edit.dwoENT*0600pC1mAw_concheck_view.winENT*0600-2d_concheck.srdENT*0600r* .b?w_logstat.srwENT*06009Ad_concheck.dwoENT*0600mAw_logstat.winENT*0600LA2d_activities.srdENT*0600.b?'w_select_level.srwENT*0600<9Ad_activities.dwoENT*0600nAw_select_level.winDAT*PDW0800pdw+ZY````) F$&nnaaDAT* @I`"DAT* rid_t< $0%  MS Sans SerifMS Sans Serif$ 2$-8$700$1$ 536870912$DAT*8388608$ 9$8$553$<274% !RidRid`+# $&(creation_date_time_t$%@%293$'E581%)*Creation Date TimeCreation Date Time`4"DAT*, -/1metric_code_t$.r882$0x%549%23 Metric Code Metric Code`=+5 68:metric_level_type_t$7;1440$9w 544%;<Metric Level TypeDAT*Metric Level Type`F4> ?AC ref_rid_t$@1993$B<274%DERef RidRef Rid`O=G HJLstart_date_time_t$I2277$Kh475%MNDAT*Start Date TimeStart Date Time`XFP QSU user_id_t$R\ 2761$T0219%VWWhoWho`aOY Z\^value_t$[ 2990$]x%549%_`DAT* ValueValue`jXb cegcomment_text_t$d 3547$f2194%hi Comments Comments`sak lnpconfidential_flag_t$mw5751$oOi361%qrDAT*" Confidential Confidential`|jt uwy data_code_t$v;6121$xE;315%z{ Data Code Data Code`s} ~end_date_time_t$.6446$x%549%DAT*$End Date TimeEnd Date Time`| material_code_t$[7003$x%549%Material CodeMaterial Code` method_type_t$v7561$UDAT*&389% Method Type Method Type` reference_code_t$7959$x%549%Reference CodeReference Code` reference_type_t$GE!851DAT*(7$i480%Reference TypeReference Type`  value_amt_t$.#9006$658% Value Amount Value Amount`  value_type_t$DAT**D%9673$JR338% Value Type Value Type` value_unit_code_t$%'10021$k489%Value Unit CodeValue Unit Code@@URDAT*, (rid$ 9$A65$<275& [general] [general](crDAT*.eation_date_time$@%293$E581&[shortdate] [time][shortdate] [time]( metric_code$r882$x%549& [general] [general]DAT*0((metric_level_type$;1440$w!5452(ref_rid$1993$<275DAT*2<(start_date_time$2277$h476F(user_id$\ 2761$0220 DAT*4P( value$ 2990$x%549    Z( comment_text$  3547$2195 DAT*6 d(confidential_flag$w5751$Oj362 n( data_code$;6121$E<316% DAT*8" x($end_date_time$!.6446$#x%549,&') (+ material_code$([7003$*x%5493%-.DAT*:0(2 method_type$/v7561$1U389:,457(9 reference_code$67959$8x%549A3;<>DAT*<(@reference_type$=GE!8517$?i481K:BCEG(J value_amt$D.#9006$F659&HI [general] [general]RALDAT*>MO(Q value_type$ND%9673$PJS339KSTV(Xvalue_unit_code$U%'10021$Wk490@DAT*@[]`_cab @fde @iDAT*Bgh ljkomn rpq ust@xvw @{ yz @~|} @DAT*D  % ,@3 :@A@KDAT*FR @ \  :arg_rid ^arg_ridrap_activities  ridrap_activities.ridcreation_date_time"rap_activities.creation_date_time metric_coderap_activities.metric_codemetric_level_type!rap_activities.metric_level_typeref_ridrap_activities.ref_ridDAT*Hstart_date_timerap_activities.start_date_timeuser_idrap_activities.user_idvaluerap_activities.value comment_textrap_activities.comment_text confidential_flag!rap_activities.confidential_flag data_coderap_activities.data_codeend_date_timerap_activities.end_date_timematerial_coderDAT*Jap_activities.material_code% method_typerap_activities.method_type,reference_coderap_activities.reference_code3reference_typerap_activities.reference_type: value_amtrap_activities.value_amtA value_typerap_activities.value_typeKvalue_unit_coderap_activities.value_unit_codeRPBSELECT( VERSION(400) TABLE(NAME=DAT*"rap_activities" ) COLUMN(NAME="rap_activities.rid") COLUMN(NAME="rap_activities.creation_date_time") COLUMN(NAME="rap_activities.metric_code") COLUMN(NAME="rap_activities.metric_level_type") COLUMN(NAME="rap_activities.ref_rid") COLUMN(NAME="rap_activities.start_date_time") COLUMN(NAME="rap_activities.user_id") COLUMN(NAME="rap_activities.value") COLUMN(NAME="rap_activities.comment_text") COLUMN(NAME="rap_activities.confidential_flag") COLUMN(NAME="rap_activities.data_code") COLUMN(NAME="rap_actiDAT*Nrelease 4; datawindow(units=0 timer_interval=0 color=12632256 processing=1 print.documentname="" print.orientation = 0 print.margin.left = 110 print.margin.right = 110 print.margin.top = 97 print.margin.bottom = 97 print.paper.source = 0 print.paper.size = 0 print.prompt=no grid.lines=0 ) header(height=73 color="536870912" ) summary(height=1 color="536870912" ) footer(height=1 color="536870912" ) detail(height=85 color="536870912" ) table(column=(type=decimal(0) update=yes name=rid dbname="rDAT*Pap_activities.rid" ) column=(type=datetime update=yes name=creation_date_time dbname="rap_activities.creation_date_time" ) column=(type=char(12) update=yes key=yes name=metric_code dbname="rap_activities.metric_code" ) column=(type=char(3) update=yes key=yes name=metric_level_type dbname="rap_activities.metric_level_type" ) column=(type=decimal(0) update=yes key=yes name=ref_rid dbname="rap_activities.ref_rid" ) column=(type=datetime update=yes key=yes name=start_date_time dbname="rap_acDAT*Rtivities.start_date_time" ) column=(type=char(4) update=yes name=user_id dbname="rap_activities.user_id" ) column=(type=char(12) update=yes name=value dbname="rap_activities.value" ) column=(type=char(255) update=yes name=comment_text dbname="rap_activities.comment_text" ) column=(type=char(1) update=yes name=confidential_flag dbname="rap_activities.confidential_flag" ) column=(type=char(4) update=yes key=yes name=data_code dbname="rap_activities.data_code" ) column=(type=datetime updaDAT*Tte=yes key=yes name=end_date_time dbname="rap_activities.end_date_time" ) column=(type=char(12) update=yes key=yes name=material_code dbname="rap_activities.material_code" ) column=(type=char(2) update=yes name=method_type dbname="rap_activities.method_type" ) column=(type=char(12) update=yes key=yes name=reference_code dbname="rap_activities.reference_code" ) column=(type=char(6) update=yes name=reference_type dbname="rap_activities.reference_type" ) column=(type=number update=yes name=DAT*Vvalue_amt dbname="rap_activities.value_amt" ) column=(type=char(3) update=yes key=yes name=value_type dbname="rap_activities.value_type" ) column=(type=char(8) update=yes name=value_unit_code dbname="rap_activities.value_unit_code" ) retrieve="PBSELECT( VERSION(400) TABLE(NAME=~"rap_activities~" ) COLUMN(NAME=~"rap_activities.rid~") COLUMN(NAME=~"rap_activities.creation_date_time~") COLUMN(NAME=~"rap_activities.metric_code~") COLUMN(NAME=~"rap_activities.metric_level_type~") COLUMN(NAME=~"raDAT*Xp_activities.ref_rid~") COLUMN(NAME=~"rap_activities.start_date_time~") COLUMN(NAME=~"rap_activities.user_id~") COLUMN(NAME=~"rap_activities.value~") COLUMN(NAME=~"rap_activities.comment_text~") COLUMN(NAME=~"rap_activities.confidential_flag~") COLUMN(NAME=~"rap_activities.data_code~") COLUMN(NAME=~"rap_activities.end_date_time~") COLUMN(NAME=~"rap_activities.material_code~") COLUMN(NAME=~"rap_activities.method_type~") COLUMN(NAME=~"rap_activities.reference_code~") COLUMN(NAME=~"rap_activities.refDAT*Zerence_type~") COLUMN(NAME=~"rap_activities.value_amt~") COLUMN(NAME=~"rap_activities.value_type~") COLUMN(NAME=~"rap_activities.value_unit_code~")WHERE( EXP1 =~"rap_activities.ref_rid~" OP =~"=~" EXP2 =~":arg_rid~" ) ) ARG(NAME = ~"arg_rid~" TYPE = number) " update="rap_activities" updatewhere=1 updatekeyinplace=no arguments=(("arg_rid", number)) ) text(band=header alignment="2" text="Rid"border="0" color="8388608" x="10" y="8" height="53" width="275" name=rid_t font.face="MS Sans Serif" font.DAT*\height="-8" font.weight="700" font.family="2" font.pitch="2" font.charset="0" background.mode="1" background.color="536870912" ) text(band=header alignment="2" text="Creation Date Time"border="0" color="8388608" x="293" y="8" height="53" width="581" name=creation_date_time_t font.face="MS Sans Serif" font.height="-8" font.weight="700" font.family="2" font.pitch="2" font.charset="0" background.mode="1" background.color="536870912" ) text(band=header alignment="2" text="Metric Code"border="0" DAT*^color="8388608" x="883" y="8" height="53" width="549" name=metric_code_t font.face="MS Sans Serif" font.height="-8" font.weight="700" font.family="2" font.pitch="2" font.charset="0" background.mode="1" background.color="536870912" ) text(band=header alignment="2" text="Metric Level Type"border="0" color="8388608" x="1441" y="8" height="53" width="545" name=metric_level_type_t font.face="MS Sans Serif" font.height="-8" font.weight="700" font.family="2" font.pitch="2" font.charset="0" backgroDAT*`und.mode="1" background.color="536870912" ) text(band=header alignment="2" text="Ref Rid"border="0" color="8388608" x="1994" y="8" height="53" width="275" name=ref_rid_t font.face="MS Sans Serif" font.height="-8" font.weight="700" font.family="2" font.pitch="2" font.charset="0" background.mode="1" background.color="536870912" ) text(band=header alignment="2" text="Start Date Time"border="0" color="8388608" x="2277" y="8" height="53" width="476" name=start_date_time_t font.face="MS Sans SeriDAT*bf" font.height="-8" font.weight="700" font.family="2" font.pitch="2" font.charset="0" background.mode="1" background.color="536870912" ) text(band=header alignment="2" text="Who"border="0" color="8388608" x="2762" y="8" height="53" width="220" name=user_id_t font.face="MS Sans Serif" font.height="-8" font.weight="700" font.family="2" font.pitch="2" font.charset="0" background.mode="1" background.color="536870912" ) text(band=header alignment="2" text="Value"border="0" color="8388608" x="2990DAT*d" y="8" height="53" width="549" name=value_t font.face="MS Sans Serif" font.height="-8" font.weight="700" font.family="2" font.pitch="2" font.charset="0" background.mode="1" background.color="536870912" ) text(band=header alignment="2" text="Comments"border="0" color="8388608" x="3548" y="8" height="53" width="2195" name=comment_text_t font.face="MS Sans Serif" font.height="-8" font.weight="700" font.family="2" font.pitch="2" font.charset="0" background.mode="1" background.color="536870912"DAT*f ) text(band=header alignment="2" text="Confidential"border="0" color="8388608" x="5751" y="8" height="53" width="362" name=confidential_flag_t font.face="MS Sans Serif" font.height="-8" font.weight="700" font.family="2" font.pitch="2" font.charset="0" background.mode="1" background.color="536870912" ) text(band=header alignment="2" text="Data Code"border="0" color="8388608" x="6122" y="8" height="53" width="316" name=data_code_t font.face="MS Sans Serif" font.height="-8" font.weight="700" DAT*h font.family="2" font.pitch="2" font.charset="0" background.mode="1" background.color="536870912" ) text(band=header alignment="2" text="End Date Time"border="0" color="8388608" x="6446" y="8" height="53" width="549" name=end_date_time_t font.face="MS Sans Serif" font.height="-8" font.weight="700" font.family="2" font.pitch="2" font.charset="0" background.mode="1" background.color="536870912" ) text(band=header alignment="2" text="Material Code"border="0" color="8388608" x="7004" y="8" heightDAT*j="53" width="549" name=material_code_t font.face="MS Sans Serif" font.height="-8" font.weight="700" font.family="2" font.pitch="2" font.charset="0" background.mode="1" background.color="536870912" ) text(band=header alignment="2" text="Method Type"border="0" color="8388608" x="7562" y="8" height="53" width="389" name=method_type_t font.face="MS Sans Serif" font.height="-8" font.weight="700" font.family="2" font.pitch="2" font.charset="0" background.mode="1" background.color="536870912" ) tDAT*lext(band=header alignment="2" text="Reference Code"border="0" color="8388608" x="7959" y="8" height="53" width="549" name=reference_code_t font.face="MS Sans Serif" font.height="-8" font.weight="700" font.family="2" font.pitch="2" font.charset="0" background.mode="1" background.color="536870912" ) text(band=header alignment="2" text="Reference Type"border="0" color="8388608" x="8517" y="8" height="53" width="481" name=reference_type_t font.face="MS Sans Serif" font.height="-8" font.weight="7DAT*n00" font.family="2" font.pitch="2" font.charset="0" background.mode="1" background.color="536870912" ) text(band=header alignment="2" text="Value Amount"border="0" color="8388608" x="9006" y="8" height="53" width="659" name=value_amt_t font.face="MS Sans Serif" font.height="-8" font.weight="700" font.family="2" font.pitch="2" font.charset="0" background.mode="1" background.color="536870912" ) text(band=header alignment="2" text="Value Type"border="0" color="8388608" x="9674" y="8" height="53DAT*p" width="339" name=value_type_t font.face="MS Sans Serif" font.height="-8" font.weight="700" font.family="2" font.pitch="2" font.charset="0" background.mode="1" background.color="536870912" ) text(band=header alignment="2" text="Value Unit Code"border="0" color="8388608" x="10021" y="8" height="53" width="490" name=value_unit_code_t font.face="MS Sans Serif" font.height="-8" font.weight="700" font.family="2" font.pitch="2" font.charset="0" background.mode="1" background.color="536870912" ) DAT*r column(band=detail id=1 alignment="1" tabsequence=10 border="0" color="0" x="10" y="8" height="65" width="275" format="[general]" name=rid edit.limit=0 edit.case=any edit.focusrectangle=no edit.autoselect=yes edit.autohscroll=yes font.face="MS Sans Serif" font.height="-8" font.weight="700" font.family="2" font.pitch="2" font.charset="0" background.mode="1" background.color="536870912" ) column(band=detail id=2 alignment="0" tabsequence=20 border="0" color="0" x="293" y="8" height="65" width="DAT*t581" format="[shortdate] [time]" name=creation_date_time edit.limit=0 edit.case=any edit.focusrectangle=no edit.autoselect=yes edit.autohscroll=yes font.face="MS Sans Serif" font.height="-8" font.weight="700" font.family="2" font.pitch="2" font.charset="0" background.mode="1" background.color="536870912" ) column(band=detail id=3 alignment="0" tabsequence=30 border="0" color="0" x="883" y="8" height="65" width="549" format="[general]" name=metric_code edit.limit=12 edit.case=any edit.focusrecDAT*vtangle=no edit.autoselect=yes edit.autohscroll=yes font.face="MS Sans Serif" font.height="-8" font.weight="700" font.family="2" font.pitch="2" font.charset="0" background.mode="1" background.color="536870912" ) column(band=detail id=4 alignment="0" tabsequence=40 border="0" color="0" x="1441" y="8" height="65" width="545" format="[general]" name=metric_level_type edit.limit=3 edit.case=any edit.focusrectangle=no edit.autoselect=yes edit.autohscroll=yes font.face="MS Sans Serif" font.height="-DAT*x8" font.weight="700" font.family="2" font.pitch="2" font.charset="0" background.mode="1" background.color="536870912" ) column(band=detail id=5 alignment="1" tabsequence=50 border="0" color="0" x="1994" y="8" height="65" width="275" format="[general]" name=ref_rid edit.limit=0 edit.case=any edit.focusrectangle=no edit.autoselect=yes edit.autohscroll=yes font.face="MS Sans Serif" font.height="-8" font.weight="700" font.family="2" font.pitch="2" font.charset="0" background.mode="1" background.cDAT*zolor="536870912" ) column(band=detail id=6 alignment="0" tabsequence=60 border="0" color="0" x="2277" y="8" height="65" width="476" format="[shortdate] [time]" name=start_date_time edit.limit=0 edit.case=any edit.focusrectangle=no edit.autoselect=yes edit.autohscroll=yes font.face="MS Sans Serif" font.height="-8" font.weight="700" font.family="2" font.pitch="2" font.charset="0" background.mode="1" background.color="536870912" ) column(band=detail id=7 alignment="0" tabsequence=70 border="0" cDAT*|olor="0" x="2762" y="8" height="65" width="220" format="[general]" name=user_id edit.limit=4 edit.case=any edit.focusrectangle=no edit.autoselect=yes edit.autohscroll=yes font.face="MS Sans Serif" font.height="-8" font.weight="700" font.family="2" font.pitch="2" font.charset="0" background.mode="1" background.color="536870912" ) column(band=detail id=8 alignment="0" tabsequence=80 border="0" color="0" x="2990" y="8" height="65" width="549" format="[general]" name=value edit.limit=12 edit.caseDAT*~=any edit.focusrectangle=no edit.autoselect=yes edit.autohscroll=yes font.face="MS Sans Serif" font.height="-8" font.weight="700" font.family="2" font.pitch="2" font.charset="0" background.mode="1" background.color="536870912" ) column(band=detail id=9 alignment="0" tabsequence=90 border="0" color="0" x="3548" y="8" height="65" width="2195" format="[general]" name=comment_text edit.limit=255 edit.case=any edit.focusrectangle=no edit.autoselect=yes edit.autohscroll=yes font.face="MS Sans SerifDAT*" font.height="-8" font.weight="700" font.family="2" font.pitch="2" font.charset="0" background.mode="1" background.color="536870912" ) column(band=detail id=10 alignment="0" tabsequence=100 border="0" color="0" x="5751" y="8" height="65" width="362" format="[general]" name=confidential_flag edit.limit=1 edit.case=any edit.focusrectangle=no edit.autoselect=yes edit.autohscroll=yes font.face="MS Sans Serif" font.height="-8" font.weight="700" font.family="2" font.pitch="2" font.charset="0" backDAT*ground.mode="1" background.color="536870912" ) column(band=detail id=11 alignment="0" tabsequence=110 border="0" color="0" x="6122" y="8" height="65" width="316" format="[general]" name=data_code edit.limit=4 edit.case=any edit.focusrectangle=no edit.autoselect=yes edit.autohscroll=yes font.face="MS Sans Serif" font.height="-8" font.weight="700" font.family="2" font.pitch="2" font.charset="0" background.mode="1" background.color="536870912" ) column(band=detail id=12 alignment="0" tabsequenceDAT*=120 border="0" color="0" x="6446" y="8" height="65" width="549" format="[shortdate] [time]" name=end_date_time edit.limit=0 edit.case=any edit.focusrectangle=no edit.autoselect=yes edit.autohscroll=yes font.face="MS Sans Serif" font.height="-8" font.weight="700" font.family="2" font.pitch="2" font.charset="0" background.mode="1" background.color="536870912" ) column(band=detail id=13 alignment="0" tabsequence=130 border="0" color="0" x="7004" y="8" height="65" width="549" format="[general]" DAT*name=material_code edit.limit=12 edit.case=any edit.focusrectangle=no edit.autoselect=yes edit.autohscroll=yes font.face="MS Sans Serif" font.height="-8" font.weight="700" font.family="2" font.pitch="2" font.charset="0" background.mode="1" background.color="536870912" ) column(band=detail id=14 alignment="0" tabsequence=140 border="0" color="0" x="7562" y="8" height="65" width="389" format="[general]" name=method_type edit.limit=2 edit.case=any edit.focusrectangle=no edit.autoselect=yes edit.aDAT*utohscroll=yes font.face="MS Sans Serif" font.height="-8" font.weight="700" font.family="2" font.pitch="2" font.charset="0" background.mode="1" background.color="536870912" ) column(band=detail id=15 alignment="0" tabsequence=150 border="0" color="0" x="7959" y="8" height="65" width="549" format="[general]" name=reference_code edit.limit=12 edit.case=any edit.focusrectangle=no edit.autoselect=yes edit.autohscroll=yes font.face="MS Sans Serif" font.height="-8" font.weight="700" font.family="2DAT*" font.pitch="2" font.charset="0" background.mode="1" background.color="536870912" ) column(band=detail id=16 alignment="0" tabsequence=160 border="0" color="0" x="8517" y="8" height="65" width="481" format="[general]" name=reference_type edit.limit=6 edit.case=any edit.focusrectangle=no edit.autoselect=yes edit.autohscroll=yes font.face="MS Sans Serif" font.height="-8" font.weight="700" font.family="2" font.pitch="2" font.charset="0" background.mode="1" background.color="536870912" ) column(DAT*band=detail id=17 alignment="1" tabsequence=170 border="0" color="0" x="9006" y="8" height="65" width="659" format="[general]" name=value_amt edit.limit=0 edit.case=any edit.focusrectangle=no edit.autoselect=yes edit.autohscroll=yes font.face="MS Sans Serif" font.height="-8" font.weight="700" font.family="2" font.pitch="2" font.charset="0" background.mode="1" background.color="536870912" ) column(band=detail id=18 alignment="0" tabsequence=180 border="0" color="0" x="9674" y="8" height="65" wiDAT*dth="339" format="[general]" name=value_type edit.limit=3 edit.case=any edit.focusrectangle=no edit.autoselect=yes edit.autohscroll=yes font.face="MS Sans Serif" font.height="-8" font.weight="700" font.family="2" font.pitch="2" font.charset="0" background.mode="1" background.color="536870912" ) column(band=detail id=19 alignment="0" tabsequence=190 border="0" color="0" x="10021" y="8" height="65" width="490" format="[general]" name=value_unit_code edit.limit=8 edit.case=any edit.focusrectanglDAT*e=no edit.autoselect=yes edit.autohscroll=yes font.face="MS Sans Serif" font.height="-8" font.weight="700" font.family="2" font.pitch="2" font.charset="0" background.mode="1" background.color="536870912" ) DAT*PDW0800pdw+WX````  F$ nnaaDAT* @UM`$DAT* !id_t< $0%  ArialArial$ 2$-10$400$1$ 536870912$128$DAT*6$ 9$8$A65$ 3233%"#IdId`-% &(* severity_t$'7251$)5242%+, Severity Severity`6$.DAT* /13title_t$0n503$2i1129%45TitleTitle`?-7 8:< table_name_t$9gi1641$;786%=> Table Name Table Name`H6@DAT* ACEerror_message_t$B 2437$D21842%FGError MessageError Message`M? IKE$J 2437$L21842`HN PRTDAT*$O 553648127$Q4288$SHI329%UV Error Count Error Count@@UYgZX []_ac  fid$\DAT* 16777215$^8388608$` 9$b3234&de [general] [general]qYhX []ik mp severity$j7251$l5243&no [general] [genDAT*eral]xgrX []suc wtitle$tn503$vj1130qyX []z|c( ~( table_name${gi1641$}787DAT*xX []c2 error_message$ 2437$31843X []< error_count$4288$HJ330&DAT* [general] [general]& ##########@DAT*Yg@q@x)@@ @ rap_concheckidrap_concheck.idY severityrap_concheck.severityDAT*gWarning 1/Alert 2/Notice 3/titlerap_concheck.titleq table_namerap_concheck.table_namexerror_messagerap_concheck.error_message error_countrap_concheck.error_countPBSELECT( VERSION(400) TABLE(NAME="rap_concheck" ) COLUMN(NAME="rap_concheck.id") COLUMN(NAME="rap_concheck.severity") COLUMN(NAME="rap_concheck.title") COLUMN(NAME="rap_concheck.table_name") COLUMN(NAME="raDAT*release 4; datawindow(units=0 timer_interval=0 color=12632256 processing=1 print.documentname="" print.orientation = 0 print.margin.left = 110 print.margin.right = 110 print.margin.top = 97 print.margin.bottom = 97 print.paper.source = 0 print.paper.size = 0 print.prompt=no grid.lines=0 ) header(height=85 color="536870912" ) summary(height=1 color="536870912" ) footer(height=1 color="536870912" ) detail(height=85 color="536870912" ) table(column=(type=char(6) update=yes key=yes name=id dbnamDAT*e="rap_concheck.id" ) column=(type=number update=yes name=severity dbname="rap_concheck.severity" values="Warning 1/Alert 2/Notice 3/" ) column=(type=char(132) update=yes name=title dbname="rap_concheck.title" ) column=(type=char(40) update=yes name=table_name dbname="rap_concheck.table_name" ) column=(type=char(255) update=yes name=error_message dbname="rap_concheck.error_message" ) column=(type=decimal(0) update=yes name=error_count dbname="rap_concheck.error_count" ) retrieve="PBSELDAT*ECT( VERSION(400) TABLE(NAME=~"rap_concheck~" ) COLUMN(NAME=~"rap_concheck.id~") COLUMN(NAME=~"rap_concheck.severity~") COLUMN(NAME=~"rap_concheck.title~") COLUMN(NAME=~"rap_concheck.table_name~") COLUMN(NAME=~"rap_concheck.error_message~") COLUMN(NAME=~"rap_concheck.error_count~")) " update="rap_concheck" updatewhere=1 updatekeyinplace=no ) text(band=header alignment="2" text="Id"border="6" color="128" x="10" y="8" height="65" width="234" name=id_t font.face="Arial" font.height="-10" font.weigDAT*ht="400" font.family="2" font.pitch="2" font.charset="0" background.mode="1" background.color="536870912" ) text(band=header alignment="2" text="Severity"border="6" color="128" x="252" y="8" height="65" width="243" name=severity_t font.face="Arial" font.height="-10" font.weight="400" font.family="2" font.pitch="2" font.charset="0" background.mode="1" background.color="536870912" ) text(band=header alignment="2" text="Title"border="6" color="128" x="503" y="8" height="65" width="1130" name=tDAT*itle_t font.face="Arial" font.height="-10" font.weight="400" font.family="2" font.pitch="2" font.charset="0" background.mode="1" background.color="536870912" ) text(band=header alignment="2" text="Table Name"border="6" color="128" x="1642" y="8" height="65" width="787" name=table_name_t font.face="Arial" font.height="-10" font.weight="400" font.family="2" font.pitch="2" font.charset="0" background.mode="1" background.color="536870912" ) text(band=header alignment="2" text="Error Message"borDAT*der="6" color="128" x="2437" y="8" height="65" width="1843" name=error_message_t font.face="Arial" font.height="-10" font.weight="400" font.family="2" font.pitch="2" font.charset="0" background.mode="1" background.color="536870912" ) text(band=header alignment="2" text="Error Message"border="6" color="128" x="2437" y="8" height="65" width="1843" font.face="Arial" font.height="-10" font.weight="400" font.family="2" font.pitch="2" font.charset="0" background.mode="1" background.color="53687091DAT*2" ) text(band=header alignment="2" text="Error Count"border="6" color="128" x="4289" y="8" height="65" width="330" font.face="Arial" font.height="-10" font.weight="400" font.family="2" font.pitch="2" font.charset="0" background.mode="1" background.color="553648127" ) column(band=detail id=1 alignment="0" tabsequence=10 border="0" color="8388608" x="10" y="8" height="65" width="234" format="[general]" name=id edit.limit=6 edit.case=any edit.focusrectangle=no edit.autoselect=no edit.autohscrolDAT*l=yes edit.displayonly=yes font.face="Arial" font.height="-10" font.weight="400" font.family="2" font.pitch="2" font.charset="0" background.mode="2" background.color="16777215" ) column(band=detail id=2 alignment="2" tabsequence=20 border="0" color="8388608" x="252" y="8" height="65" width="243" format="[general]" name=severity edit.limit=0 edit.case=any edit.focusrectangle=no edit.autoselect=no edit.displayonly=yes edit.codetable=yes edit.validatecode=yes font.face="Arial" font.height="-10" DAT*font.weight="400" font.family="2" font.pitch="2" font.charset="0" background.mode="2" background.color="16777215" ) column(band=detail id=3 alignment="0" tabsequence=30 border="0" color="8388608" x="503" y="8" height="65" width="1130" format="[general]" name=title edit.limit=132 edit.case=any edit.focusrectangle=no edit.autoselect=no edit.autohscroll=yes edit.displayonly=yes font.face="Arial" font.height="-10" font.weight="400" font.family="2" font.pitch="2" font.charset="0" background.mode="DAT*2" background.color="16777215" ) column(band=detail id=4 alignment="0" tabsequence=40 border="0" color="8388608" x="1642" y="8" height="65" width="787" format="[general]" name=table_name edit.limit=40 edit.case=any edit.focusrectangle=no edit.autoselect=no edit.autohscroll=yes edit.displayonly=yes font.face="Arial" font.height="-10" font.weight="400" font.family="2" font.pitch="2" font.charset="0" background.mode="2" background.color="16777215" ) column(band=detail id=5 alignment="0" tabsequeDAT*nce=50 border="0" color="8388608" x="2437" y="8" height="65" width="1843" format="[general]" name=error_message edit.limit=255 edit.case=any edit.focusrectangle=no edit.autoselect=no edit.autohscroll=yes edit.displayonly=yes font.face="Arial" font.height="-10" font.weight="400" font.family="2" font.pitch="2" font.charset="0" background.mode="2" background.color="16777215" ) column(band=detail id=6 alignment="0" tabsequence=60 border="0" color="8388608" x="4289" y="8" height="65" width="330" foDAT*rmat="[general]" name=error_count edit.limit=0 edit.case=any edit.format="#####" edit.focusrectangle=no edit.autoselect=no font.face="Arial" font.height="-10" font.weight="400" font.family="2" font.pitch="2" font.charset="0" background.mode="2" background.color="16777215" ) DAT*PDW0800~pdw+fe````! F$ ~nnaaDAT* @$DAT* 536870912@@X`$  ! severity_t< $ 0% ArialArial$2$DAT*-10$400$1$8388608$%37$ 32$A65$ 407%"# Severity: Severity:`+%  &(title_t$'16DAT*0%)*Title:Title:;$, -/1&3 57:title$. 16777215$0128$2462$4J1354$65&89 [general] [general]`B+<DAT*  =? table_name_t$>284%@A Table Name: Table Name:G;C -/1=D 57F( table_name$E787`NBH  IKerror_DAT*message_t$J412%LMError Message:Error Message:QGO -/1I3 57(Perror_messageXNR -/1S5U  severity$T403&VWDAT* [general] [general]QYZ]- `b 57 did$[\1 0 < ^$_-8$as1395$c421@DAT*gilk}@oQmnp@s+qr@vBtu)DAT*@yNwx@|Xz{ h:ps_id jps_id rap_concheck severityrap_concheck.severityQNotice 3/Alert 2/Warning 1/titlerap_concheck.title+ table_namerap_concheck.table_nameBerror_messagerap_concheck.error_messageNidrDAT*map_concheck.idXAPBSELECT( VERSION(400) TABLE(NAME="rap_concheck" ) COLUMN(NAME="rap_concheck.severity") COLUMN(NAME="rap_concheck.title") COLUMN(NAME="rap_concheck.table_name") COLUMN(NAME="rap_concheck.error_message") COLUMN(NAME="rap_concheck.id")WHERE( EXP1 ="rap_concheck.id" OP ="=" EXP2 ="" ) ) ARG(NAME = "ps_id" TYPE = string) DAT*release 4; datawindow(units=0 timer_interval=0 color=12632256 processing=0 print.documentname="" print.orientation = 0 print.margin.left = 110 print.margin.right = 110 print.margin.top = 97 print.margin.bottom = 97 print.paper.source = 0 print.paper.size = 0 print.prompt=no ) header(height=1 color="536870912" ) summary(height=5 color="536870912" ) footer(height=1 color="536870912" ) detail(height=509 color="536870912" ) table(column=(type=number update=yes name=severity dbname="rap_concheck.DAT*severity" values="Notice 3/Alert 2/Warning 1/" ) column=(type=char(132) update=yes name=title dbname="rap_concheck.title" ) column=(type=char(40) update=yes name=table_name dbname="rap_concheck.table_name" ) column=(type=char(255) update=yes name=error_message dbname="rap_concheck.error_message" ) column=(type=char(6) key=yes name=id dbname="rap_concheck.id" ) retrieve="PBSELECT( VERSION(400) TABLE(NAME=~"rap_concheck~" ) COLUMN(NAME=~"rap_concheck.severity~") COLUMN(NAME=~"rap_concheck.DAT*title~") COLUMN(NAME=~"rap_concheck.table_name~") COLUMN(NAME=~"rap_concheck.error_message~") COLUMN(NAME=~"rap_concheck.id~")WHERE( EXP1 =~"rap_concheck.id~" OP =~"=~" EXP2 =~":ps_id~" ) ) ARG(NAME = ~"ps_id~" TYPE = string) " update="rap_concheck" updatewhere=0 updatekeyinplace=yes arguments=(("ps_id", string)) ) text(band=detail alignment="1" text="Severity:"border="0" color="8388608" x="37" y="32" height="65" width="407" name=severity_t font.face="Arial" font.height="-10" font.weight="400" DAT* font.family="2" font.pitch="2" font.charset="0" background.mode="1" background.color="536870912" ) text(band=detail alignment="1" text="Title:"border="0" color="8388608" x="37" y="160" height="65" width="407" name=title_t font.face="Arial" font.height="-10" font.weight="400" font.family="2" font.pitch="2" font.charset="0" background.mode="1" background.color="536870912" ) column(band=detail id=2 alignment="0" tabsequence=20 border="5" color="128" x="462" y="160" height="65" width="1354" formDAT*at="[general]" name=title edit.limit=132 edit.case=any edit.autoselect=no edit.autohscroll=yes font.face="Arial" font.height="-10" font.weight="400" font.family="2" font.pitch="2" font.charset="0" background.mode="2" background.color="16777215" ) text(band=detail alignment="1" text="Table Name:"border="0" color="8388608" x="37" y="284" height="65" width="407" name=table_name_t font.face="Arial" font.height="-10" font.weight="400" font.family="2" font.pitch="2" font.charset="0" background.moDAT*de="1" background.color="536870912" ) column(band=detail id=3 alignment="0" tabsequence=30 border="5" color="128" x="462" y="284" height="65" width="787" format="[general]" name=table_name edit.limit=40 edit.case=any edit.autoselect=no edit.autohscroll=yes font.face="Arial" font.height="-10" font.weight="400" font.family="2" font.pitch="2" font.charset="0" background.mode="2" background.color="16777215" ) text(band=detail alignment="1" text="Error Message:"border="0" color="8388608" x="37" y=DAT*"412" height="65" width="407" name=error_message_t font.face="Arial" font.height="-10" font.weight="400" font.family="2" font.pitch="2" font.charset="0" background.mode="1" background.color="536870912" ) column(band=detail id=4 alignment="0" tabsequence=40 border="5" color="128" x="462" y="412" height="65" width="1354" format="[general]" name=error_message edit.limit=255 edit.case=any edit.autoselect=no edit.autohscroll=yes font.face="Arial" font.height="-10" font.weight="400" font.family="DAT*2" font.pitch="2" font.charset="0" background.mode="2" background.color="16777215" ) column(band=detail id=1 alignment="1" tabsequence=10 border="5" color="128" x="462" y="32" height="65" width="403" format="[general]" name=severity ddlb.limit=0 ddlb.allowedit=no ddlb.case=any ddlb.useasborder=yes font.face="Arial" font.height="-10" font.weight="400" font.family="2" font.pitch="2" font.charset="0" background.mode="2" background.color="16777215" ) column(band=detail id=5 alignment="0" tabsequeDAT*=nce=32766 border="5" color="0" x="1395" y="32" height="65" width="421" format="[general]" name=id visible="1~t0" edit.limit=0 edit.case=any edit.autoselect=yes font.face="Arial" font.height="-8" font.weight="400" font.family="2" font.pitch="2" font.charset="0" background.mode="2" background.color="16777215" ) DAT*PDW0800^pdw+```` F$^nnaaDAT*Y @@DAT*$ 536870912@`  $ 0$ 5$ 7$ 553648127$2$DAT* -2147483648$18$$36$136$ 2469`!  $228$ 132`9"*,.0246<#&(DAT*%$%MS Sans SerifMS Sans Serif$'-8$)700$+ 12632256$-8388608$/I73$1 12$3452$5494%78Agency Device IdAgency Device Id`B!:DAT*"*,;02=? desc_code_t$<`608$>151%@ACodeCode`K9C"*,D02FHairs_point_desc_t$E1253$G178%IJNameName`WBDAT*"*,LNPRT$M@64$O196$Q856$S517%UVOperator Device IdOperator Device Id`[KX"*,Y;NP=?operator_desc_code_t$Z1`^WDAT*"*,YDNP\H$]169n[_"`Dbdfhj (m2name$a 16777215$cL76$e<60$g1184$i5&kl [general] [geneDAT*ral]u^o"`Dprfhj <(t2operator_name$q260$s@64nv"`wyd{hjP} group_type$x`1376$z400$DAT*|)809~,d_group_typestypetypeu"*,ydYjF group_flag$165$384 Group Flag:YN`"Y,YL2installed_date_t$DAT*508$407%Installed Date:Installed Date:`"Y,Y2$146$l620$E325% Comments: Comments:"`hjDAT*x% comment_text$489$h104$1979"`.bdhj id$471"`;prhj 2DAT*operator_code$W599"`;bdhjcode^d_device_typescodecode`"Y,Y2$978$396$DAT*w375% Group Type: Group Type:"`dh Z install_date$512$N334& mm/dd/yyyy mm/dd/yyyy`"Y,Y2dismantledDAT*_date_t$r882%Dismantled Date:Dismantled Date:"`wdhd dismantle_date$R338`"YY2 sic_code_t$6$DAT* 21842$516$279% SIC Code: SIC Code:"`dhjn sic_code$`2144Y2j  operatoDAT* r_id<#&$400$255$ 2487$4$229@XDAT* @@      @DAT* @(&')@,u*+@/-.1@ @K^IJ 3@NLM @QOP TnRS 3@DAT*WUV@  %id  :pl_rid 36pl_rid rap_devicesridrap_devices.ridcoderap_devices.codeidrap_devices.id source_ridrap_devices.source_rid comment_textrap_devices.comment_textdismantle_daterap_devices.dismantle_dateDAT*"6date(gettext()) >= install_date or isNull(gettext()) -   %"Sorry! '" + gettext() + "' is an invalid value. Format of Dismantled Date must be mm/dd/yyyy, and Dismantled Date must be greater than or equal to the Installed Date." ^ $ ^!#" Sorry! '%' is an invDAT*alid value. Format of Dismantled Date must be mm/dd/yyyy, and Dismantled Date must be greater than or equal to the Installed Date. group_flagrap_devices.group_flagGroup Flag: Y/Group Flag: N group_typerap_devices.group_typeu install_daterap_devices.install_date0/"23tdate( gettext() ) <= dismantle_date or (isNull( dismantle_date ) and (isDate(gettext())) or (isNullDAT*( gettext() ))) -48 576  -9> ,:<; =?%AB"Sorry! '" + GetText() + "' is an invalid value. Format of Installed Date must be mm/dd/yyyy, and Installed Date must be less than or equal to the Dismantled Date." ^CG ^DFE Sorry! 'H' is an invalid value. Format of IDAT*nstalled Date must be mm/dd/yyyy, and Installed Date must be less than or equal to the Dismantled Date.namerap_devices.name^operator_coderap_devices.operator_code operator_idrap_devices.operator_idoperator_namerap_devices.operator_namen sic_coderap_devices.sic_codePBSELECT( VERSION(400) TABLE(NAME="rap_devices" ) COLUMN(NAME="rap_devices.rid") COLUMDAT*N(NAME="rap_devices.code") COLUMN(NAME="rap_devices.id") COLUMN(NAME="rap_devices.source_rid") COLUMN(NAME="rap_devices.comment_text") COLUMN(NAME="rap_devices.dismantle_date") COLUMN(NAME="rap_devices.group_flag") COLUMN(NAME="rap_devices.group_type") COLUMN(NAME="rap_devices.install_date") COLUMN(NAME="rap_devices.name") COLUMN(NAME="rap_devices.operator_code") COLUMN(NAME="rap_devices.operator_id") COLUMN(NAME="rap_devices.operator_name") COLUMN(NAME="rap_devices.sic_code")WHERE( EXP1 ="rap_devDAT*release 6; datawindow(units=0 timer_interval=0 color=12632256 processing=0 print.documentname="" print.orientation = 0 print.margin.left = 110 print.margin.right = 110 print.margin.top = 97 print.margin.bottom = 97 print.paper.source = 0 print.paper.size = 0 print.prompt=no print.buttons=no print.preview.buttons=no ) summary(height=0 color="536870912" ) footer(height=0 color="536870912" ) detail(height=768 color="536870912" ) table(column=(type=decimal(0) update=yes updatewhereclause=yes nameDAT* =rid dbname="rap_devices.rid" ) column=(type=char(15) update=yes updatewhereclause=yes name=code dbname="rap_devices.code" ) column=(type=char(15) update=yes updatewhereclause=yes key=yes name=id dbname="rap_devices.id" ) column=(type=decimal(0) update=yes updatewhereclause=yes key=yes name=source_rid dbname="rap_devices.source_rid" ) column=(type=char(255) update=yes updatewhereclause=yes name=comment_text dbname="rap_devices.comment_text" ) column=(type=date update=yes updatewhereclausDAT*"e=yes name=dismantle_date dbname="rap_devices.dismantle_date" validation="date(gettext()) >= install_date or isNull(gettext())" validationmsg="~"Sorry! '~" + gettext() + ~"' is an invalid value. Format of Dismantled Date must be mm/dd/yyyy, and Dismantled Date must be greater than or equal to the Installed Date.~"" ) column=(type=char(1) update=yes updatewhereclause=yes name=group_flag dbname="rap_devices.group_flag" values="Group Flag: Y/Group Flag: N" ) column=(type=char(20) update=yes updDAT*$atewhereclause=yes name=group_type dbname="rap_devices.group_type" ) column=(type=date update=yes updatewhereclause=yes name=install_date dbname="rap_devices.install_date" validation="date( gettext() ) <= dismantle_date or (isNull( dismantle_date ) and (isDate(gettext())) or (isNull( gettext() )))" validationmsg="~"Sorry! '~" + GetText() + ~"' is an invalid value. Format of Installed Date must be mm/dd/yyyy, and Installed Date must be less than or equal to the Dismantled Date.~"" ) column=(tDAT*&ype=char(50) update=yes updatewhereclause=yes name=name dbname="rap_devices.name" ) column=(type=char(15) update=yes updatewhereclause=yes name=operator_code dbname="rap_devices.operator_code" ) column=(type=char(15) updatewhereclause=yes name=operator_id dbname="rap_devices.operator_id" ) column=(type=char(50) update=yes updatewhereclause=yes name=operator_name dbname="rap_devices.operator_name" ) column=(type=char(4) update=yes updatewhereclause=yes name=sic_code dbname="rap_devices.sic_DAT*(code" ) retrieve="PBSELECT( VERSION(400) TABLE(NAME=~"rap_devices~" ) COLUMN(NAME=~"rap_devices.rid~") COLUMN(NAME=~"rap_devices.code~") COLUMN(NAME=~"rap_devices.id~") COLUMN(NAME=~"rap_devices.source_rid~") COLUMN(NAME=~"rap_devices.comment_text~") COLUMN(NAME=~"rap_devices.dismantle_date~") COLUMN(NAME=~"rap_devices.group_flag~") COLUMN(NAME=~"rap_devices.group_type~") COLUMN(NAME=~"rap_devices.install_date~") COLUMN(NAME=~"rap_devices.name~") COLUMN(NAME=~"rap_devices.operator_code~") COLUMNDAT**(NAME=~"rap_devices.operator_id~") COLUMN(NAME=~"rap_devices.operator_name~") COLUMN(NAME=~"rap_devices.sic_code~")WHERE( EXP1 =~"rap_devices.rid~" OP =~"=~" EXP2 =~":pl_rid~" ) ) ARG(NAME = ~"pl_rid~" TYPE = number) " update="rap_devices" updatewhere=1 updatekeyinplace=no arguments=(("pl_rid", number)) sort="id A " ) rectangle(band=detail x="18" y="36" height="136" width="2469" brush.hatch="7" brush.color="553648127" pen.style="0" pen.width="5" pen.color="0" background.mode="2" background.coloDAT*,r="-2147483648" ) rectangle(band=detail x="18" y="228" height="132" width="2469" brush.hatch="7" brush.color="553648127" pen.style="0" pen.width="5" pen.color="0" background.mode="2" background.color="-2147483648" ) text(band=detail alignment="2" text="Agency Device Id"border="0" color="8388608" x="73" y="12" height="52" width="494" font.face="MS Sans Serif" font.height="-8" font.weight="700" font.family="2" font.pitch="2" font.charset="0" background.mode="2" background.color="12632256" ) teDAT*.xt(band=detail alignment="2" text="Code"border="0" color="8388608" x="608" y="12" height="52" width="151" name=desc_code_t font.face="MS Sans Serif" font.height="-8" font.weight="700" font.family="2" font.pitch="2" font.charset="0" background.mode="2" background.color="12632256" ) text(band=detail alignment="2" text="Name"border="0" color="8388608" x="1253" y="12" height="52" width="178" name=airs_point_desc_t font.face="MS Sans Serif" font.height="-8" font.weight="700" font.family="2" fontDAT*0.pitch="2" font.charset="0" background.mode="2" background.color="12632256" ) text(band=detail alignment="2" text="Operator Device Id"border="0" color="8388608" x="64" y="196" height="56" width="517" font.face="MS Sans Serif" font.height="-8" font.weight="700" font.family="2" font.pitch="2" font.charset="0" background.mode="2" background.color="12632256" ) text(band=detail alignment="1" text="Code"border="0" color="8388608" x="608" y="196" height="56" width="151" name=operator_desc_code_t foDAT*2nt.face="MS Sans Serif" font.height="-8" font.weight="700" font.family="2" font.pitch="2" font.charset="0" background.mode="2" background.color="12632256" ) text(band=detail alignment="1" text="Name"border="0" color="8388608" x="1253" y="196" height="56" width="169" font.face="MS Sans Serif" font.height="-8" font.weight="700" font.family="2" font.pitch="2" font.charset="0" background.mode="2" background.color="12632256" ) column(band=detail id=10 alignment="0" tabsequence=30 border="5" color=DAT*4"0" x="1253" y="76" height="60" width="1184" format="[general]" name=name edit.limit=50 edit.case=any edit.autoselect=yes edit.nilisnull=yes edit.autohscroll=yes font.face="MS Sans Serif" font.height="-8" font.weight="700" font.family="2" font.pitch="2" font.charset="0" background.mode="2" background.color="16777215" ) column(band=detail id=13 alignment="0" tabsequence=60 border="5" color="0" x="1253" y="260" height="64" width="1184" format="[general]" name=operator_name edit.limit=50 edit.caDAT*6se=any edit.autoselect=yes edit.nilisnull=yes edit.autohscroll=yes font.face="MS Sans Serif" font.height="-8" font.weight="700" font.family="2" font.pitch="2" font.charset="0" background.mode="2" background.color="16777215" ) column(band=detail id=8 alignment="0" tabsequence=80 border="5" color="0" x="1376" y="400" height="60" width="809" format="[general]" name=group_type dddw.name=d_group_types dddw.displaycolumn=type dddw.datacolumn=type dddw.percentwidth=300 dddw.lines=0 dddw.limit=20 dddwDAT*8.allowedit=yes dddw.useasborder=yes dddw.case=upper dddw.nilisnull=yes dddw.autohscroll=yes dddw.hscrollbar=yes dddw.vscrollbar=yes font.face="MS Sans Serif" font.height="-8" font.weight="700" font.family="2" font.pitch="2" font.charset="0" background.mode="2" background.color="16777215" ) column(band=detail id=7 alignment="1" tabsequence=70 border="0" color="8388608" x="165" y="400" height="60" width="384" format="[general]" name=group_flag checkbox.text="Group Flag:" checkbox.on="Y" checkboxDAT*:.off="N" checkbox.lefttext=yes checkbox.scale=yes checkbox.threed=yes font.face="MS Sans Serif" font.height="-8" font.weight="700" font.family="2" font.pitch="2" font.charset="0" background.mode="2" background.color="12632256" ) text(band=detail alignment="1" text="Installed Date:"border="0" color="8388608" x="64" y="508" height="52" width="407" name=installed_date_t font.face="MS Sans Serif" font.height="-8" font.weight="700" font.family="2" font.pitch="2" font.charset="0" background.mode="DAT*<1" background.color="536870912" ) text(band=detail alignment="1" text="Comments:"border="0" color="8388608" x="146" y="620" height="52" width="325" font.face="MS Sans Serif" font.height="-8" font.weight="700" font.family="2" font.pitch="2" font.charset="0" background.mode="1" background.color="553648127" ) column(band=detail id=5 alignment="0" tabsequence=120 border="5" color="0" x="489" y="620" height="104" width="1979" format="[general]" name=comment_text edit.limit=255 edit.case=any edit.aDAT*>utoselect=yes edit.nilisnull=yes edit.autovscroll=yes edit.vscrollbar=yes font.face="MS Sans Serif" font.height="-8" font.weight="700" font.family="2" font.pitch="2" font.charset="0" background.mode="2" background.color="16777215" ) column(band=detail id=3 alignment="0" tabsequence=10 border="5" color="0" x="73" y="76" height="60" width="471" format="[general]" name=id edit.limit=15 edit.case=upper edit.autoselect=yes edit.nilisnull=yes edit.autohscroll=yes font.face="MS Sans Serif" font.heigDAT*@ht="-8" font.weight="700" font.family="2" font.pitch="2" font.charset="0" background.mode="2" background.color="16777215" ) column(band=detail id=11 alignment="0" tabsequence=50 border="5" color="0" x="608" y="260" height="64" width="599" format="[general]" name=operator_code edit.limit=15 edit.case=upper edit.autoselect=yes edit.nilisnull=yes edit.autohscroll=yes font.face="MS Sans Serif" font.height="-8" font.weight="700" font.family="2" font.pitch="2" font.charset="0" background.mode="2" bDAT*Background.color="16777215" ) column(band=detail id=2 alignment="0" tabsequence=20 border="5" color="0" x="608" y="76" height="60" width="599" format="[general]" name=code dddw.name=d_device_types dddw.displaycolumn=code dddw.datacolumn=code dddw.percentwidth=350 dddw.lines=0 dddw.limit=15 dddw.allowedit=yes dddw.useasborder=yes dddw.case=upper dddw.nilisnull=yes dddw.autohscroll=yes dddw.hscrollbar=yes dddw.vscrollbar=yes font.face="MS Sans Serif" font.height="-8" font.weight="700" font.familyDAT*D="2" font.pitch="2" font.charset="0" background.mode="2" background.color="16777215" ) text(band=detail alignment="1" text="Group Type:"border="0" color="8388608" x="978" y="396" height="52" width="375" font.face="MS Sans Serif" font.height="-8" font.weight="700" font.family="2" font.pitch="2" font.charset="0" background.mode="1" background.color="553648127" ) column(band=detail id=9 alignment="0" tabsequence=90 border="5" color="0" x="489" y="512" height="60" width="334" format="mm/dd/yyyy" DAT*Fname=install_date edit.limit=10 edit.case=any edit.format="mm/dd/yyyy" edit.autoselect=yes edit.nilisnull=yes font.face="MS Sans Serif" font.height="-8" font.weight="700" font.family="2" font.pitch="2" font.charset="0" background.mode="2" background.color="16777215" ) text(band=detail alignment="1" text="Dismantled Date:"border="0" color="8388608" x="882" y="512" height="52" width="471" name=dismantled_date_t font.face="MS Sans Serif" font.height="-8" font.weight="700" font.family="2" font.pDAT*Hitch="2" font.charset="0" background.mode="1" background.color="536870912" ) column(band=detail id=6 alignment="0" tabsequence=100 border="5" color="0" x="1376" y="512" height="60" width="338" format="mm/dd/yyyy" name=dismantle_date edit.limit=10 edit.case=any edit.format="mm/dd/yyyy" edit.autoselect=yes edit.nilisnull=yes font.face="MS Sans Serif" font.height="-8" font.weight="700" font.family="2" font.pitch="2" font.charset="0" background.mode="2" background.color="16777215" ) text(band=detDAT*Jail alignment="1" text="SIC Code:"border="6" color="0" x="1842" y="516" height="52" width="279" name=sic_code_t font.face="MS Sans Serif" font.height="-8" font.weight="700" font.family="2" font.pitch="2" font.charset="0" background.mode="1" background.color="536870912" ) column(band=detail id=14 alignment="0" tabsequence=110 border="5" color="0" x="2144" y="512" height="60" width="325" format="[general]" name=sic_code edit.limit=4 edit.case=upper edit.autoselect=yes edit.nilisnull=yes edit.auDAT*vtohscroll=yes font.face="MS Sans Serif" font.height="-8" font.weight="700" font.family="2" font.pitch="2" font.charset="0" background.mode="2" background.color="16777215" ) column(band=detail id=12 alignment="0" tabsequence=32766 border="0" color="255" x="2487" y="4" height="52" width="229" format="[general]" name=operator_id edit.limit=0 edit.case=any edit.autoselect=yes font.face="MS Sans Serif" font.height="-8" font.weight="400" font.family="2" font.pitch="2" font.charset="0" background.mDAT*NPDW0800pdw+LK````W F$nnaaDAT*P @@DAT*R$ 536870912@E`  $ 0$ 5$ 6$ 12632256$2$DAT*T -2147483648$)41$ 32$136$ 2441`2%')+-/<!#% MS Sans SerifMS Sans Serif$"-8$$700$&DAT*V8388608$(I73$*4$,452$.512%01Agency Process IdAgency Process Id`;3%4)+68process_code_t$5r626$7151%9:CodeCode`DAT*XD2<%=)+?Aagency_desc_t$>1298$@169%BCNameNameV;EFHJLNPR Uid$G 16777215$IR82$KDDAT*Z68$M856$O503$Q5&ST [general] [general]^DWF4JLXPRZcode$Y{635[\],d_process_typescodecode`cV DAT*\ _a$`224$b140`g^d%4e+68operator_desc_code_t$f204`ich%=e+?Aoperator_desc_twgj%kmoqRFDAT*^s group_flag$lr114$n388$p<60$rr370tuv Group Flag:YN`ixy%y?{}airs_segment_num_t$z1$|t628$~160DAT*`$247%Primary Material Code:Primary Material Code:`wy%y+mode_t$233$4564$183%Mode:Mode:FLPR xDAT*b mode_type$430$%549,d_modestypetype`%y+$ 9$480$411%Daily Schedule:Daily Schedule:DAT*dFLPRZdaily_schedule_code$434$476$251d_daily_schedulecodecodeFLPR primary_material_code$DAT*f652$791 d_materialscodecode`y%ymLq$ 553648127$1166% Group Type: Group Type:FmLPRP group_DAT*htype$1559$923d_group_typestypetype`yy +scc_ams_code_t$E1093$8568$443%SCC/AMS Code:SCC/AMS Code:`yDAT*j%y+$1253$ 288% Comments: Comments:FPR% comment_text$h104FLPR <(DAT*l2operator_name$1307$ 268$n1134FJLPR (2name`%e+%Operator Process IdOperator ProcDAT*ness Id`yy+total_index_t<!$400$255$2240$@64$462%ny)LDAT*py row_index& [GENERAL] [GENERAL]%  /string(getrow()) + " of " + string(rowcount()) ^  ^    of FLPRnyearly_schedule_codes$2254DAT*r$229d_yearly_schedulescodecode`"%y+$1774% !Yearly Schedule:Yearly Schedule:*#F$LPRd&weekly_schedule_code$%NDAT*t1358'()d_weekly_schedulecodecode`2"%y++-/$,@832$.498%01Weekly Schedule:Weekly Schedule:=*34F8:LR  < operator_id<5!DAT*v%67ArialArial$9 2702$;0B2>4F?:LR A scc_ams_code$@r 2930E=CF4LXPR 2DAT*xDoperator_codeBFGFHL-PR  J operator_id<5!#$IW87@MQSVUWDAT*zXY @\VZ[@]^ aD_`dbcDAT*|@gef@jihik@nlm@qop @trs 3@wBuv @z2xy ~|}DAT*~ 3@ @= "@@ N' %OPid  R:pl_rid  Tpl_ridrap_processesridrap_processes.ridcoDAT*derap_processes.codeV device_ridrap_processes.device_rididrap_processes.idD comment_textrap_processes.comment_textdaily_schedule_code"rap_processes.daily_schedule_code group_flagrap_processes.group_flagiGroup Flag: Y/Group Flag: N group_typerap_processes.group_type mode_typerap_processes.mode_typeDAT*namerap_processes.nameoperator_coderap_processes.operator_codeB operator_idrap_processes.operator_id{Ez2operator_namerap_processes.operator_nameprimary_material_code$rap_processes.primary_material_code scc_ams_coderap_processes.scc_ams_code=weekly_schedule_code#rap_processes.weekly_schedule_codDAT*ze"yearly_schedule_codes#rap_processes.yearly_schedule_codeMPBSELECT( VERSION(400) TABLE(NAME="rap_processes" ) COLUMN(NAME="rap_processes.rid") COLUMN(NAME="rap_processes.code") COLUMN(NAME="rap_processes.device_rid") COLUMN(NAME="rap_processes.id") COLUMN(NAME="rap_processes.comment_text") COLUMN(NAME="rap_processes.daily_schedule_code") COLUMN(NAME="rap_processes.group_flag") COLUMN(NAME="rap_processes.group_type") COLUMN(NAME="rap_processes.moDAT*release 6; datawindow(units=0 timer_interval=0 color=12632256 processing=0 print.documentname="" print.orientation = 0 print.margin.left = 110 print.margin.right = 110 print.margin.top = 97 print.margin.bottom = 97 print.paper.source = 0 print.paper.size = 0 print.prompt=no print.buttons=no print.preview.buttons=no ) summary(height=4 color="536870912" ) footer(height=4 color="536870912" ) detail(height=796 color="536870912" ) table(column=(type=decimal(0) update=yes updatewhereclause=yes nameDAT*=rid dbname="rap_processes.rid" ) column=(type=char(15) update=yes updatewhereclause=yes name=code dbname="rap_processes.code" ) column=(type=decimal(0) update=yes updatewhereclause=yes key=yes name=device_rid dbname="rap_processes.device_rid" ) column=(type=char(15) update=yes updatewhereclause=yes key=yes name=id dbname="rap_processes.id" ) column=(type=char(255) update=yes updatewhereclause=yes name=comment_text dbname="rap_processes.comment_text" ) column=(type=char(2) update=yes updDAT*atewhereclause=yes name=daily_schedule_code dbname="rap_processes.daily_schedule_code" ) column=(type=char(1) update=yes updatewhereclause=yes name=group_flag dbname="rap_processes.group_flag" values="Group Flag: Y/Group Flag: N" ) column=(type=char(20) update=yes updatewhereclause=yes name=group_type dbname="rap_processes.group_type" ) column=(type=char(6) update=yes updatewhereclause=yes name=mode_type dbname="rap_processes.mode_type" ) column=(type=char(50) update=yes updatewhereclause=DAT*yes name=name dbname="rap_processes.name" ) column=(type=char(15) update=yes updatewhereclause=yes name=operator_code dbname="rap_processes.operator_code" ) column=(type=char(15) updatewhereclause=yes name=operator_id dbname="rap_processes.operator_id" ) column=(type=char(50) update=yes updatewhereclause=yes name=operator_name dbname="rap_processes.operator_name" ) column=(type=char(12) update=yes updatewhereclause=yes name=primary_material_code dbname="rap_processes.primary_material_code"DAT* ) column=(type=char(10) updatewhereclause=yes name=scc_ams_code dbname="rap_processes.scc_ams_code" ) column=(type=char(2) update=yes updatewhereclause=yes name=weekly_schedule_code dbname="rap_processes.weekly_schedule_code" ) column=(type=char(2) update=yes updatewhereclause=yes name=yearly_schedule_codes dbname="rap_processes.yearly_schedule_code" ) retrieve="PBSELECT( VERSION(400) TABLE(NAME=~"rap_processes~" ) COLUMN(NAME=~"rap_processes.rid~") COLUMN(NAME=~"rap_processes.code~") COLDAT*UMN(NAME=~"rap_processes.device_rid~") COLUMN(NAME=~"rap_processes.id~") COLUMN(NAME=~"rap_processes.comment_text~") COLUMN(NAME=~"rap_processes.daily_schedule_code~") COLUMN(NAME=~"rap_processes.group_flag~") COLUMN(NAME=~"rap_processes.group_type~") COLUMN(NAME=~"rap_processes.mode_type~") COLUMN(NAME=~"rap_processes.name~") COLUMN(NAME=~"rap_processes.operator_code~") COLUMN(NAME=~"rap_processes.operator_id~") COLUMN(NAME=~"rap_processes.operator_name~") COLUMN(NAME=~"rap_processes.primary_mateDAT*rial_code~") COLUMN(NAME=~"rap_processes.scc_ams_code~") COLUMN(NAME=~"rap_processes.weekly_schedule_code~") COLUMN(NAME=~"rap_processes.yearly_schedule_code~")WHERE( EXP1 =~"rap_processes.rid~" OP =~"=~" EXP2 =~":pl_rid~" ) ) ARG(NAME = ~"pl_rid~" TYPE = number) " update="rap_processes" updatewhere=1 updatekeyinplace=no arguments=(("pl_rid", number)) sort="id A " ) rectangle(band=detail x="41" y="32" height="136" width="2441" brush.hatch="6" brush.color="12632256" pen.style="0" pen.width="5" peDAT*n.color="0" background.mode="2" background.color="-2147483648" ) text(band=detail alignment="2" text="Agency Process Id"border="0" color="8388608" x="73" y="4" height="52" width="512" font.face="MS Sans Serif" font.height="-8" font.weight="700" font.family="2" font.pitch="2" font.charset="0" background.mode="2" background.color="12632256" ) text(band=detail alignment="2" text="Code"border="0" color="8388608" x="626" y="4" height="52" width="151" name=process_code_t font.face="MS Sans Serif"DAT* font.height="-8" font.weight="700" font.family="2" font.pitch="2" font.charset="0" background.mode="2" background.color="12632256" ) text(band=detail alignment="2" text="Name"border="0" color="8388608" x="1298" y="4" height="52" width="169" name=agency_desc_t font.face="MS Sans Serif" font.height="-8" font.weight="700" font.family="2" font.pitch="2" font.charset="0" background.mode="2" background.color="12632256" ) column(band=detail id=4 alignment="0" tabsequence=10 border="5" color="0" x=DAT*"82" y="68" height="56" width="503" format="[general]" name=id edit.limit=15 edit.case=upper edit.autoselect=yes edit.nilisnull=yes edit.autohscroll=yes font.face="MS Sans Serif" font.height="-8" font.weight="700" font.family="2" font.pitch="2" font.charset="0" background.mode="2" background.color="16777215" ) column(band=detail id=2 alignment="0" tabsequence=20 border="5" color="0" x="626" y="68" height="56" width="635" format="[general]" name=code dddw.name=d_process_types dddw.displaycolumDAT*n=code dddw.datacolumn=code dddw.percentwidth=300 dddw.lines=0 dddw.limit=15 dddw.allowedit=yes dddw.useasborder=yes dddw.case=upper dddw.nilisnull=yes dddw.autohscroll=yes dddw.hscrollbar=yes dddw.vscrollbar=yes font.face="MS Sans Serif" font.height="-8" font.weight="700" font.family="2" font.pitch="2" font.charset="0" background.mode="2" background.color="16777215" ) rectangle(band=detail x="41" y="224" height="140" width="2441" brush.hatch="6" brush.color="12632256" pen.style="0" pen.width="DAT*5" pen.color="0" background.mode="2" background.color="-2147483648" ) text(band=detail alignment="2" text="Code"border="0" color="8388608" x="626" y="204" height="52" width="151" name=operator_desc_code_t font.face="MS Sans Serif" font.height="-8" font.weight="700" font.family="2" font.pitch="2" font.charset="0" background.mode="2" background.color="12632256" ) text(band=detail alignment="2" text="Name"border="0" color="8388608" x="1298" y="204" height="52" width="169" name=operator_desc_t DAT* font.face="MS Sans Serif" font.height="-8" font.weight="700" font.family="2" font.pitch="2" font.charset="0" background.mode="2" background.color="12632256" ) column(band=detail id=7 alignment="0" tabsequence=70 border="0" color="8388608" x="114" y="388" height="60" width="370" format="[general]" name=group_flag checkbox.text="Group Flag:" checkbox.on="Y" checkbox.off="N" checkbox.lefttext=yes checkbox.scale=yes checkbox.threed=yes font.face="MS Sans Serif" font.height="-8" font.weight="700" DAT* font.family="2" font.pitch="2" font.charset="0" background.mode="2" background.color="12632256" ) text(band=detail alignment="1" text="Primary Material Code:"border="0" color="8388608" x="169" y="628" height="160" width="247" name=airs_segment_num_t font.face="MS Sans Serif" font.height="-8" font.weight="700" font.family="2" font.pitch="2" font.charset="0" background.mode="1" background.color="536870912" ) text(band=detail alignment="1" text="Mode:"border="0" color="8388608" x="233" y="564" DAT*height="52" width="183" name=mode_t font.face="MS Sans Serif" font.height="-8" font.weight="700" font.family="2" font.pitch="2" font.charset="0" background.mode="1" background.color="536870912" ) column(band=detail id=9 alignment="0" tabsequence=120 border="5" color="0" x="430" y="564" height="56" width="549" format="[general]" name=mode_type dddw.name=d_modes dddw.displaycolumn=type dddw.datacolumn=type dddw.percentwidth=300 dddw.lines=0 dddw.limit=6 dddw.allowedit=yes dddw.useasborder=yes dDAT*ddw.case=upper dddw.nilisnull=yes dddw.vscrollbar=yes font.face="MS Sans Serif" font.height="-8" font.weight="700" font.family="2" font.pitch="2" font.charset="0" background.mode="2" background.color="16777215" ) text(band=detail alignment="1" text="Daily Schedule:"border="0" color="8388608" x="9" y="480" height="52" width="411" font.face="MS Sans Serif" font.height="-8" font.weight="700" font.family="2" font.pitch="2" font.charset="0" background.mode="2" background.color="12632256" ) columnDAT*(band=detail id=6 alignment="0" tabsequence=90 border="5" color="0" x="434" y="476" height="56" width="251" format="[general]" name=daily_schedule_code dddw.name=d_daily_schedule dddw.displaycolumn=code dddw.datacolumn=code dddw.percentwidth=500 dddw.lines=0 dddw.limit=2 dddw.allowedit=yes dddw.useasborder=yes dddw.case=upper dddw.nilisnull=yes dddw.hscrollbar=yes dddw.vscrollbar=yes font.face="MS Sans Serif" font.height="-8" font.weight="700" font.family="2" font.pitch="2" font.charset="0" bacDAT*kground.mode="2" background.color="16777215" ) column(band=detail id=14 alignment="0" tabsequence=140 border="5" color="0" x="430" y="652" height="56" width="791" format="[general]" name=primary_material_code dddw.name=d_materials dddw.displaycolumn=code dddw.datacolumn=code dddw.percentwidth=250 dddw.lines=0 dddw.limit=12 dddw.allowedit=yes dddw.useasborder=yes dddw.case=upper dddw.nilisnull=yes dddw.autohscroll=yes dddw.hscrollbar=yes dddw.vscrollbar=yes font.face="MS Sans Serif" font.height=DAT*"-8" font.weight="700" font.family="2" font.pitch="2" font.charset="0" background.mode="2" background.color="16777215" ) text(band=detail alignment="1" text="Group Type:"border="0" color="8388608" x="1166" y="388" height="56" width="370" font.face="MS Sans Serif" font.height="-8" font.weight="700" font.family="2" font.pitch="2" font.charset="0" background.mode="1" background.color="553648127" ) column(band=detail id=8 alignment="0" tabsequence=80 border="5" color="0" x="1559" y="388" height="DAT*56" width="923" format="[general]" name=group_type dddw.name=d_group_types dddw.displaycolumn=type dddw.datacolumn=type dddw.percentwidth=200 dddw.lines=0 dddw.limit=20 dddw.allowedit=yes dddw.useasborder=yes dddw.case=upper dddw.nilisnull=yes dddw.autohscroll=yes dddw.hscrollbar=yes dddw.vscrollbar=yes font.face="MS Sans Serif" font.height="-8" font.weight="700" font.family="2" font.pitch="2" font.charset="0" background.mode="2" background.color="16777215" ) text(band=detail alignment="1" texDAT*t="SCC/AMS Code:"border="6" color="0" x="1093" y="568" height="52" width="443" name=scc_ams_code_t font.face="MS Sans Serif" font.height="-8" font.weight="700" font.family="2" font.pitch="2" font.charset="0" background.mode="1" background.color="536870912" ) text(band=detail alignment="1" text="Comments:"border="0" color="8388608" x="1253" y="652" height="52" width="288" font.face="MS Sans Serif" font.height="-8" font.weight="700" font.family="2" font.pitch="2" font.charset="0" background.moDAT*de="1" background.color="553648127" ) column(band=detail id=5 alignment="0" tabsequence=150 border="5" color="0" x="1559" y="652" height="104" width="923" format="[general]" name=comment_text edit.limit=255 edit.case=any edit.autoselect=yes edit.nilisnull=yes edit.autovscroll=yes edit.vscrollbar=yes font.face="MS Sans Serif" font.height="-8" font.weight="700" font.family="2" font.pitch="2" font.charset="0" background.mode="2" background.color="16777215" ) column(band=detail id=13 alignment="0DAT*" tabsequence=60 border="5" color="0" x="1307" y="268" height="56" width="1134" format="[general]" name=operator_name edit.limit=50 edit.case=any edit.autoselect=yes edit.nilisnull=yes edit.autohscroll=yes font.face="MS Sans Serif" font.height="-8" font.weight="700" font.family="2" font.pitch="2" font.charset="0" background.mode="2" background.color="16777215" ) column(band=detail id=10 alignment="0" tabsequence=30 border="5" color="0" x="1307" y="68" height="56" width="1134" format="[general]DAT*" name=name edit.limit=50 edit.case=any edit.autoselect=yes edit.nilisnull=yes edit.autohscroll=yes font.face="MS Sans Serif" font.height="-8" font.weight="700" font.family="2" font.pitch="2" font.charset="0" background.mode="2" background.color="16777215" ) text(band=detail alignment="2" text="Operator Process Id"border="0" color="8388608" x="41" y="204" height="52" width="549" font.face="MS Sans Serif" font.height="-8" font.weight="700" font.family="2" font.pitch="2" font.charset="0" backgDAT*round.mode="2" background.color="12632256" ) text(band=detail alignment="1" text=""border="0" color="255" x="2240" y="64" height="52" width="462" name=total_index_t font.face="MS Sans Serif" font.height="-8" font.weight="400" font.family="2" font.pitch="2" font.charset="0" background.mode="1" background.color="553648127" ) compute(band=detail alignment="1" expression="string(getrow()) + ~" of ~" + string(rowcount())"border="0" color="255" x="2240" y="4" height="56" width="462" format="[GENERADAT*L]" name=row_index font.face="MS Sans Serif" font.height="-8" font.weight="700" font.family="2" font.pitch="2" font.charset="0" background.mode="1" background.color="553648127" ) column(band=detail id=17 alignment="0" tabsequence=110 border="5" color="0" x="2254" y="476" height="56" width="229" format="[general]" name=yearly_schedule_codes dddw.name=d_yearly_schedules dddw.displaycolumn=code dddw.datacolumn=code dddw.percentwidth=400 dddw.lines=0 dddw.limit=2 dddw.allowedit=yes dddw.useasbordDAT*er=yes dddw.case=upper dddw.nilisnull=yes dddw.hscrollbar=yes dddw.vscrollbar=yes font.face="MS Sans Serif" font.height="-8" font.weight="700" font.family="2" font.pitch="2" font.charset="0" background.mode="2" background.color="16777215" ) text(band=detail alignment="1" text="Yearly Schedule:"border="0" color="8388608" x="1774" y="480" height="52" width="462" font.face="MS Sans Serif" font.height="-8" font.weight="700" font.family="2" font.pitch="2" font.charset="0" background.mode="2" backgDAT*round.color="12632256" ) column(band=detail id=16 alignment="0" tabsequence=100 border="5" color="0" x="1358" y="476" height="56" width="247" format="[general]" name=weekly_schedule_code dddw.name=d_weekly_schedule dddw.displaycolumn=code dddw.datacolumn=code dddw.percentwidth=500 dddw.lines=0 dddw.limit=2 dddw.allowedit=yes dddw.useasborder=yes dddw.case=upper dddw.nilisnull=yes dddw.hscrollbar=yes dddw.vscrollbar=yes font.face="MS Sans Serif" font.height="-8" font.weight="700" font.family="2DAT*" font.pitch="2" font.charset="0" background.mode="2" background.color="16777215" ) text(band=detail alignment="1" text="Weekly Schedule:"border="0" color="8388608" x="832" y="480" height="52" width="498" font.face="MS Sans Serif" font.height="-8" font.weight="700" font.family="2" font.pitch="2" font.charset="0" background.mode="2" background.color="12632256" ) column(band=detail id=12 alignment="0" tabsequence=32766 border="0" color="0" x="2702" y="0" height="56" width="229" format="[general]DAT*" name=operator_id edit.limit=0 edit.case=any edit.autoselect=yes font.face="Arial" font.height="-8" font.weight="400" font.family="2" font.pitch="2" font.charset="0" background.mode="2" background.color="16777215" ) column(band=detail id=15 alignment="0" tabsequence=32766 border="0" color="0" x="2930" y="0" height="56" width="229" format="[general]" name=scc_ams_code edit.limit=0 edit.case=any edit.autoselect=yes font.face="Arial" font.height="-8" font.weight="400" font.family="2" font.pitDAT*xch="2" font.charset="0" background.mode="2" background.color="16777215" ) column(band=detail id=11 alignment="0" tabsequence=50 border="5" color="0" x="626" y="268" height="56" width="635" format="[general]" name=operator_code edit.limit=15 edit.case=upper edit.autoselect=yes edit.nilisnull=yes edit.autohscroll=yes font.face="MS Sans Serif" font.height="-8" font.weight="700" font.family="2" font.pitch="2" font.charset="0" background.mode="2" background.color="16777215" ) column(band=detail idDAT*PDW0800pdw+|GH{````7 F$nnaaDAT*! @@E=`DAT* < $0% ArialArial$ 2$ -8$400$ 16777215$ 9$4$DAT*856$w887%RidRid`%  "$905$!IN334%#$CodeCode`- &(*$'1248$)0DAT*219%+,IdId`5% .02$/C1477$1w887%34From Process RidFrom Process Rid`=- 68:$7E 2373$9r1138%;DAT*<NameName`5 >@B$? 3520$Aw887%CDTo Process RidTo Process Rid$F 536870912@E@@EItUJH DAT*KMOQ Trid$L 9$N0$Pw887&RS [general] [general]_IVH WMY[ ^code$X905$ZINDAT*334&\] [general] [general]fU`H aMc[ eid$b1248$d0219m_gH hMjQ lfrom_process_rid$iCDAT*1477$kw887tfnH oMq[ sname$pE 2373$rr1138muH vMxQ zto_process_rid$w 3520DAT*$yw887@E}IDAT* U_f m3t ~( %id  :processRid :processRid en processRid rap_streamsDAT*ridrap_streams.ridIcoderap_streams.codeUidrap_streams.id_from_process_ridrap_streams.from_process_ridfnamerap_streams.namemto_process_ridrap_streams.to_process_ridtPBSELECT( VERSION(400) TABLE(NAME="rap_streams" ) COLUMN(NAME="rap_streams.rid") COLUMN(NAME="rap_streams.code") COLUMN(NAME="rap_streams.id") COLUMN(NAMEDAT*="rap_streams.from_process_rid") COLUMN(NAME="rap_streams.name") COLUMN(NAME="rap_streams.to_process_rid")WHERE( EXP1 ="rap_streams.from_process_rid" OP ="=" EXP2 ="" LOGIC ="or" ) WHERE( EXP1 ="rap_streams.to_process_rid" OP ="=" EXP2 ="" ) ) ARG(NAME = "processRid" TYPE = number) "no"yes$1DAT*release 6; datawindow(units=0 timer_interval=0 color=16777215 processing=1 print.documentname="" print.orientation = 0 print.margin.left = 110 print.margin.right = 110 print.margin.top = 97 print.margin.bottom = 97 print.paper.source = 0 print.paper.size = 0 print.prompt=no print.buttons=no print.preview.buttons=no grid.lines=0 ) header(height=64 color="536870912" ) summary(height=0 color="536870912" ) footer(height=0 color="536870912" ) detail(height=64 color="536870912" ) table(column=(typDAT*e=decimal(0) updatewhereclause=yes name=rid dbname="rap_streams.rid" ) column=(type=char(15) updatewhereclause=yes name=code dbname="rap_streams.code" ) column=(type=char(20) updatewhereclause=yes key=yes name=id dbname="rap_streams.id" ) column=(type=decimal(0) updatewhereclause=yes key=yes name=from_process_rid dbname="rap_streams.from_process_rid" ) column=(type=char(50) updatewhereclause=yes name=name dbname="rap_streams.name" ) column=(type=decimal(0) updatewhereclause=yes key=yes nDAT*ame=to_process_rid dbname="rap_streams.to_process_rid" ) retrieve="PBSELECT( VERSION(400) TABLE(NAME=~"rap_streams~" ) COLUMN(NAME=~"rap_streams.rid~") COLUMN(NAME=~"rap_streams.code~") COLUMN(NAME=~"rap_streams.id~") COLUMN(NAME=~"rap_streams.from_process_rid~") COLUMN(NAME=~"rap_streams.name~") COLUMN(NAME=~"rap_streams.to_process_rid~")WHERE( EXP1 =~"rap_streams.from_process_rid~" OP =~"=~" EXP2 =~":processRid~" LOGIC =~"or~" ) WHERE( EXP1 =~"rap_streams.to_process_rid~" OP =~"=~" EXP2 =~":prDAT*ocessRid~" ) ) ARG(NAME = ~"processRid~" TYPE = number) " update="rap_streams" updatewhere=0 updatekeyinplace=no arguments=(("processRid", number)) sort="id A " ) text(band=header alignment="0" text="Rid"border="0" color="0" x="9" y="4" height="56" width="887" font.face="Arial" font.height="-8" font.weight="400" font.family="2" font.pitch="2" font.charset="0" background.mode="2" background.color="16777215" ) text(band=header alignment="0" text="Code"border="0" color="0" x="905" y="4" height="DAT*56" width="334" font.face="Arial" font.height="-8" font.weight="400" font.family="2" font.pitch="2" font.charset="0" background.mode="2" background.color="16777215" ) text(band=header alignment="0" text="Id"border="0" color="0" x="1248" y="4" height="56" width="219" font.face="Arial" font.height="-8" font.weight="400" font.family="2" font.pitch="2" font.charset="0" background.mode="2" background.color="16777215" ) text(band=header alignment="0" text="From Process Rid"border="0" color="0" x="DAT*1477" y="4" height="56" width="887" font.face="Arial" font.height="-8" font.weight="400" font.family="2" font.pitch="2" font.charset="0" background.mode="2" background.color="16777215" ) text(band=header alignment="0" text="Name"border="0" color="0" x="2373" y="4" height="56" width="1138" font.face="Arial" font.height="-8" font.weight="400" font.family="2" font.pitch="2" font.charset="0" background.mode="2" background.color="16777215" ) text(band=header alignment="0" text="To Process Rid"borDAT*der="0" color="0" x="3520" y="4" height="56" width="887" font.face="Arial" font.height="-8" font.weight="400" font.family="2" font.pitch="2" font.charset="0" background.mode="2" background.color="16777215" ) column(band=detail id=1 alignment="0" tabsequence=32766 border="0" color="0" x="9" y="0" height="56" width="887" format="[general]" name=rid edit.limit=0 edit.case=any edit.autoselect=yes font.face="Arial" font.height="-8" font.weight="400" font.family="2" font.pitch="2" font.charset="0"DAT* background.mode="2" background.color="16777215" ) column(band=detail id=2 alignment="0" tabsequence=32766 border="0" color="0" x="905" y="0" height="56" width="334" format="[general]" name=code edit.limit=0 edit.case=any edit.autoselect=yes font.face="Arial" font.height="-8" font.weight="400" font.family="2" font.pitch="2" font.charset="0" background.mode="2" background.color="16777215" ) column(band=detail id=3 alignment="0" tabsequence=32766 border="0" color="0" x="1248" y="0" height="56" DAT*width="219" format="[general]" name=id edit.limit=0 edit.case=any edit.autoselect=yes font.face="Arial" font.height="-8" font.weight="400" font.family="2" font.pitch="2" font.charset="0" background.mode="2" background.color="16777215" ) column(band=detail id=4 alignment="0" tabsequence=32766 border="0" color="0" x="1477" y="0" height="56" width="887" format="[general]" name=from_process_rid edit.limit=0 edit.case=any edit.autoselect=yes font.face="Arial" font.height="-8" font.weight="400" fDAT*|ont.family="2" font.pitch="2" font.charset="0" background.mode="2" background.color="16777215" ) column(band=detail id=5 alignment="0" tabsequence=32766 border="0" color="0" x="2373" y="0" height="56" width="1138" format="[general]" name=name edit.limit=0 edit.case=any edit.autoselect=yes font.face="Arial" font.height="-8" font.weight="400" font.family="2" font.pitch="2" font.charset="0" background.mode="2" background.color="16777215" ) column(band=detail id=6 alignment="0" tabsequence=32766 DAT*PDW0800pdw+|GH{````7 F$nnaaDAT*! @@E=`DAT* < $0% ArialArial$ 2$ -8$400$ 16777215$ 9$4$DAT*856$w887%RidRid`%  "$905$!IN334%#$CodeCode`- &(*$'1248$)0DAT*219%+,IdId`5% .02$/C1477$1w887%34From Process RidFrom Process Rid`=- 68:$7E 2373$9r1138%;DAT*<NameName`5 >@B$? 3520$Aw887%CDTo Process RidTo Process Rid$F 536870912@E@@EItUJH DAT*KMOQ Trid$L 9$N0$Pw887&RS [general] [general]_IVH WMY[ ^code$X905$ZINDAT*334&\] [general] [general]fU`H aMc[ eid$b1248$d0219m_gH hMjQ lfrom_process_rid$iCDAT*1477$kw887tfnH oMq[ sname$pE 2373$rr1138muH vMxQ zto_process_rid$w 3520DAT*$yw887@E}IDAT* U_f m3t %~c%id    :StreamRid  StreamRid rap_streamsridrap_streDAT*~ams.ridIcoderap_streams.codeUidrap_streams.id_from_process_ridrap_streams.from_process_ridfnamerap_streams.namemto_process_ridrap_streams.to_process_ridt`PBSELECT( VERSION(400) TABLE(NAME="rap_streams" ) COLUMN(NAME="rap_streams.rid") COLUMN(NAME="rap_streams.code") COLUMN(NAME="rap_streams.id") COLUMN(NAME="rap_streams.from_processDAT* release 6; datawindow(units=0 timer_interval=0 color=16777215 processing=1 print.documentname="" print.orientation = 0 print.margin.left = 110 print.margin.right = 110 print.margin.top = 97 print.margin.bottom = 97 print.paper.source = 0 print.paper.size = 0 print.prompt=no print.buttons=no print.preview.buttons=no grid.lines=0 ) header(height=64 color="536870912" ) summary(height=0 color="536870912" ) footer(height=0 color="536870912" ) detail(height=64 color="536870912" ) table(column=(typDAT* e=decimal(0) updatewhereclause=yes name=rid dbname="rap_streams.rid" ) column=(type=char(15) updatewhereclause=yes name=code dbname="rap_streams.code" ) column=(type=char(20) updatewhereclause=yes key=yes name=id dbname="rap_streams.id" ) column=(type=decimal(0) updatewhereclause=yes key=yes name=from_process_rid dbname="rap_streams.from_process_rid" ) column=(type=char(50) updatewhereclause=yes name=name dbname="rap_streams.name" ) column=(type=decimal(0) updatewhereclause=yes key=yes nDAT*ame=to_process_rid dbname="rap_streams.to_process_rid" ) retrieve="PBSELECT( VERSION(400) TABLE(NAME=~"rap_streams~" ) COLUMN(NAME=~"rap_streams.rid~") COLUMN(NAME=~"rap_streams.code~") COLUMN(NAME=~"rap_streams.id~") COLUMN(NAME=~"rap_streams.from_process_rid~") COLUMN(NAME=~"rap_streams.name~") COLUMN(NAME=~"rap_streams.to_process_rid~")WHERE( EXP1 =~"rap_streams.rid~" OP =~"=~" EXP2 =~":StreamRid~" ) ) ARG(NAME = ~"StreamRid~" TYPE = number) " update="rap_streams" updatewhere=0 updatekeyinplaDAT*ce=no arguments=(("StreamRid", number)) sort="id A " ) text(band=header alignment="0" text="Rid"border="0" color="0" x="9" y="4" height="56" width="887" font.face="Arial" font.height="-8" font.weight="400" font.family="2" font.pitch="2" font.charset="0" background.mode="2" background.color="16777215" ) text(band=header alignment="0" text="Code"border="0" color="0" x="905" y="4" height="56" width="334" font.face="Arial" font.height="-8" font.weight="400" font.family="2" font.pitch="2" font.cDAT*harset="0" background.mode="2" background.color="16777215" ) text(band=header alignment="0" text="Id"border="0" color="0" x="1248" y="4" height="56" width="219" font.face="Arial" font.height="-8" font.weight="400" font.family="2" font.pitch="2" font.charset="0" background.mode="2" background.color="16777215" ) text(band=header alignment="0" text="From Process Rid"border="0" color="0" x="1477" y="4" height="56" width="887" font.face="Arial" font.height="-8" font.weight="400" font.family="2" fDAT*ont.pitch="2" font.charset="0" background.mode="2" background.color="16777215" ) text(band=header alignment="0" text="Name"border="0" color="0" x="2373" y="4" height="56" width="1138" font.face="Arial" font.height="-8" font.weight="400" font.family="2" font.pitch="2" font.charset="0" background.mode="2" background.color="16777215" ) text(band=header alignment="0" text="To Process Rid"border="0" color="0" x="3520" y="4" height="56" width="887" font.face="Arial" font.height="-8" font.weight="40DAT*0" font.family="2" font.pitch="2" font.charset="0" background.mode="2" background.color="16777215" ) column(band=detail id=1 alignment="0" tabsequence=32766 border="0" color="0" x="9" y="0" height="56" width="887" format="[general]" name=rid edit.limit=0 edit.case=any edit.autoselect=yes font.face="Arial" font.height="-8" font.weight="400" font.family="2" font.pitch="2" font.charset="0" background.mode="2" background.color="16777215" ) column(band=detail id=2 alignment="0" tabsequence=32766 DAT*border="0" color="0" x="905" y="0" height="56" width="334" format="[general]" name=code edit.limit=0 edit.case=any edit.autoselect=yes font.face="Arial" font.height="-8" font.weight="400" font.family="2" font.pitch="2" font.charset="0" background.mode="2" background.color="16777215" ) column(band=detail id=3 alignment="0" tabsequence=32766 border="0" color="0" x="1248" y="0" height="56" width="219" format="[general]" name=id edit.limit=0 edit.case=any edit.autoselect=yes font.face="Arial" foDAT*nt.height="-8" font.weight="400" font.family="2" font.pitch="2" font.charset="0" background.mode="2" background.color="16777215" ) column(band=detail id=4 alignment="0" tabsequence=32766 border="0" color="0" x="1477" y="0" height="56" width="887" format="[general]" name=from_process_rid edit.limit=0 edit.case=any edit.autoselect=yes font.face="Arial" font.height="-8" font.weight="400" font.family="2" font.pitch="2" font.charset="0" background.mode="2" background.color="16777215" ) column(banDAT*d=detail id=5 alignment="0" tabsequence=32766 border="0" color="0" x="2373" y="0" height="56" width="1138" format="[general]" name=name edit.limit=0 edit.case=any edit.autoselect=yes font.face="Arial" font.height="-8" font.weight="400" font.family="2" font.pitch="2" font.charset="0" background.mode="2" background.color="16777215" ) column(band=detail id=6 alignment="0" tabsequence=32766 border="0" color="0" x="3520" y="0" height="56" width="887" format="[general]" name=to_process_rid edit.limDAT*it=0 edit.case=any edit.autoselect=yes font.face="Arial" font.height="-8" font.weight="400" font.family="2" font.pitch="2" font.charset="0" background.mode="2" background.color="16777215" ) htmltable(border="1" cellpadding="0" cellspacing="0" generatecss="no" nowrap="yes") DAT* _@)b?mA_@_@t_@q'`@`@q1j@j@?k@k@Kl@l@_m@m@k@@{@@@@A@@^@^@ q@q@@ f_unit_convertfunction_objectstructuremailrecipientenvironmentmailfiledescriptionmailmessagedatawindowchildlistviewitemtreeviewitemconnectioninfopowerobjecttransactionSELECT conversion_factor_amt , standard_code FROM rap_units WHERE code =' ' AND conversion_factor_amt <> 0 AND cDAT*nonversion_factor_amt IS NOT NULL AND standard_code IS NOT NULL HKlmApmASELECT conversion_factor_amt FROM rap_units WHERE code =' ' AND standard_code =' ' AND conversion_factor_amt <> 0 AND conversion_factor_amt IS NOT NULL p8;ORow~mAwmAlp   ~DAT*$n@)b?lA n@n@ n@q@@a$@@a-`@`@7j@j@aEk@k@qQl@l@em@m@q@@@@@@a@@^@^@ u_dwdatawindowborderstyledwobjectstructuremailrecipientenvironmentmailfiledescriptionmailmessagedatawindowchildlistviewitemtreeviewitemconnectioninfopowerobject2 u_dw  f_clearfilter Q xDAT*& _initsrcdatawindowu_dwborderstyledwobjectstructuremailrecipientenvironmentmailfiledescriptionmailmessagedatawindowchildlistviewitemtreeviewitemconnectioninfopowerobject, l_sucre@metr_ft_ty!_n@ls_m-s_@_cod6yp@li_@t@acN@Z@n@z @ @@ @/' e_@Prin Da@DAT*L z%08)8)$8d , setfilterI filter $ 2  f_clearfilter or2 ) widthheighttaborderlivescrollP pritur] oiDAT*H`@)b?mA `@`@`@qj@j@a*k@k@q6l@l@qJm@m@qV@@af@@qs@@q@@a^@^@ str_levelstructuremailrecipientenvironmentmailfiledescriptionmailmessagedatawindowchildlistviewitemtreeviewitemconnectioninfopowerobject2   x structurestr_levelmailrecipientenvironmentmailfiledescriptionmailmessagedatawindowchildlistvDAT*,converts between RAPIDS unit codesglobal type f_unit_convert from function_object end type forward prototypes global function integer f_unit_convert (ref string ps_activity_unit_code, string ps_throughput_unit_code, ref double pdb_activity_value, transaction pt_trans_object) end prototypes global function integer f_unit_convert (ref string ps_activity_unit_code, string ps_throughput_unit_code, ref double pdb_activity_value, transaction pt_trans_object);// INTEGER uof_unit_convert( STRING DAT*. ps_activity_unit_code, // STRING ps_throughput_unit_code, // DOUBLE pdb_activity_value, // TRANSACTION VAR pt_trans_object ) // // This function retrieves the specified unit conversion records // and converts the activity value from activity units to // throughput units (via standard unit). // // NOTE: No offsets or material-specific conversions. // // Returns: 1 Success // 0 Record not found // DAT*0 -1 SQL Error // // Modification History // When Who What // ------- --- ------------------------------------------------- // 20JUL94 PER Changed function to use rap_units table and // intermediate "standard" units. // Set the pointer to the regular arrow for background estimation // runs (so the user can click on the Cancel button), otherwise // set to the hourglass. //IF w_emiss.cbx_background.checked THEN // SetPointer( Arrow! ) //ELSE // SetPointer( DAT*2HourGlass! ) //END IF // Declare local variables DECIMAL ld_factor_amt STRING ls_std_unit // Convert from activity unit to standard unit SELECT conversion_factor_amt, standard_code INTO :ld_factor_amt, :ls_std_unit FROM rap_units WHERE code = :ps_activity_unit_code AND conversion_factor_amt <> 0 AND conversion_factor_amt IS NOT NULL AND standard_code IS NOT NULL USING pt_trans_object; IF pt_trans_object.sqlcode = 100 THEN // Record not found DAT*4 // IF NOT w_emiss.cbx_background.checked THEN // MessageBox( "Emission Estimator", "No unit conversion " + & // "information found for " + & // ps_activity_unit_code, Information!, OK! ) // END IF // IF pi_log_file <> -1 AND Dec(w_emiss.em_log_detail.text) > 0 THEN // FileWrite( pi_log_file, " No standard unit conversion information " + & // "found for:") // FileWrite( pi_log_file, " From unit: " + pDAT*6s_activity_unit_code +& // " to(standard unit) unit: " + ls_std_unit) // END IF Return( 0 ) ELSEIF pt_trans_object.sqlcode <> 0 THEN // SQL Error // uof_sql_error( "uof_unit_convert()", pi_log_file, pt_trans_object ) Return( -1 ) END IF // Make first conversion from activity units to standard units. //IF ps_data_type = 'DECIMAL' THEN // pd_activity_value = pd_activity_value * ld_factor_amt //ELSE pdb_activity_value = pdb_activity_value * ld_factor_amt DAT*8 ps_activity_unit_code = ps_throughput_unit_code //END IF // See if standard unit = throughput unit. IF ls_std_unit = ps_throughput_unit_code THEN // Standard unit is the same as our target unit conversion. // We are done. Return( 1 ) END IF // Convert from standard unit to throughput unit SELECT conversion_factor_amt INTO :ld_factor_amt FROM rap_units WHERE code = :ps_throughput_unit_code AND standard_code = :ls_std_unit AND conversion_factor_amt <> 0 ADAT*:ND conversion_factor_amt IS NOT NULL USING pt_trans_object; IF pt_trans_object.sqlcode = 100 THEN // Record not found // IF NOT w_emiss.cbx_background.checked THEN // MessageBox( "Emission Estimator", "No unit conversion " + & // "information found for " + & // ps_throughput_unit_code, Information!, OK! ) // END IF // IF pi_log_file <> -1 AND Dec(w_emiss.em_log_detail.text) > 0 THEN // FileWrite( pi_log_file, " No unit convDAT*<ersion information " + & // "found for " + ps_throughput_unit_code ) // FileWrite( pi_log_file, " From(standard unit): " + ls_std_unit +& // " To unit: " + ps_throughput_unit_code ) // END IF Return( 0 ) ELSEIF pt_trans_object.sqlcode <> 0 THEN // SQL Error // uof_sql_error( "uof_unit_convert()", pi_log_file, pt_trans_object ) Return( -1 ) END IF // Make second conversion from standard units to throughput units. // (Check forDAT*g ld_factor_amt = 0 already made in SQL statement.) //IF ps_data_type = 'DECIMAL' THEN // pd_activity_value = pd_activity_value / ld_factor_amt //ELSE pdb_activity_value = pdb_activity_value / ld_factor_amt ps_activity_unit_code = ps_throughput_unit_code //END IF // Successfull return Return( 1 ) // end uof_unit_convert() end function DAT*global type str_errors from structure string rec_type long rec_count long warnings long alerts long notices end type DAT*B`@)b?mA `@`@`@qj@j@a+k@k@7l@l@aKm@m@qW@@ag@@at@@@@^@^@Q str_errorsstructuremailrecipientenvironmentmailfiledescriptionmailmessagedatawindowchildlistviewitemtreeviewitemconnectioninfopowerobject2   x structurestr_errorsmailrecipientenvironmentmailfiledescriptionmailmessagedatawindowchildlisDAT*Dtviewitemtreeviewitemconnectioninfopowerobject @@+@7@K@W@g@t@ @ @ 2  2 3 rec_typerec_countwarningsalertsnoticesd DAT*K$+ DAT*Structure to pass to w_select_level and have level items returned.global type str_level from structure string msgtext long nation long state long county long source long device long process integer retval end type DAT*Jiewitemtreeviewitemconnectioninfopowerobject@@*@6@J@V@f@s@ @ @ 2  2 A msgtextnationstatecountysourcedeviceprocessretval DAT*$+2: DAT*Jn@)b?mA n@Tn@!%@@A1@@A:@@AJ^@^@_mimv@v@mfoAuq@q@A u_ref_code_table_dddwu_dddwborderstyledwobjectdatawindowchildpowerobjectd_ref_codes_table_dddwmessagetransactionsqlca2 u_ref_code_table_dddw 1 +row+dwo+itemfocuschanged+constructor/  LLCdwobject.L xsDAT*Pforward global type u_cc_base from UserObject end type type dw_activities from u_dw within u_cc_base end type type dw_1 from datawindow within u_cc_base end type end forward global type u_cc_base from UserObject int Width=1582 int Height=993 long BackColor=12632256 dw_activities dw_activities dw_1 dw_1 end type global u_cc_base u_cc_base type variables w_ccheck_parameters iw_parent // ib_WroteMainHeader is used by lower level objects // to see if they should print primary DAT*Rheader or not BOOLEAN ib_WroteMainHeader = False // ib_WroteActHeader is used by same level objects // to see if they should print activity header or not BOOLEAN ib_WroteActHeader = False STRING il_level_type // Used by desndants to identify what level this object is for end variables forward prototypes public subroutine log_err (ref string ps_msg, ref string ps_recid) public subroutine log_write (string ps_msg) public subroutine write_activity_data (long pl_row, string ps_lDAT*Tevel_type, string ps_msg, string ps_recid) public function boolean check_cancel () public subroutine f_writeactivityerror (long pl_rid, string ps_metriccode) public subroutine f_clearactivityerror (long pl_rid, string ps_metriccode) end prototypes public subroutine log_err (ref string ps_msg, ref string ps_recid);//FUNCTION log_err(string ps_msg, string ps_recid) // Writes a message to the error log object, and increments error // counter on d_concheck datawindow. // // Arguments // pDAT*Vs_msg - Text to write to log file // ps_recid - String ID of record in 'rules' datawindow // // Declare variables INTEGER li_severity LONG ll_counter, ll_row STRING ls_severity[3] ls_severity[1] = "Warning: " ls_severity[2] = "Alert: " ls_severity[3] = "Notice: " // Find the correct rule record ll_row = iw_parent.dw_concheck.Find( "id = '"+ ps_recid +"'", 1, & iw_parent.dw_concheck.rowCount() ) // Retrieve old value ll_counter = iw_parent.dw_concheck.getItemNumbDAT*Xer(ll_row,"error_count") // Increment the value and save new value in datawindow iw_parent.dw_concheck.setItem(ll_row,"error_count",ll_counter + 1) li_severity = iw_parent.dw_concheck.getItemNumber(ll_row,"severity") // Write the message text to the log file iw_parent.uo_log.f_write(ls_severity[li_severity] + ps_msg) CHOOSE CASE il_level_type CASE "Facility" iw_parent.ib_errorSource = True CASE "Device" iw_parent.ib_errorDevice = True CASE "Process" iw_pDAT*Zarent.ib_errorProcess = True CASE "Stream" iw_parent.ib_errorStream = True END CHOOSE end subroutine public subroutine log_write (string ps_msg);// Write the message text to the log file iw_parent.uo_log.f_write(ps_msg) end subroutine public subroutine write_activity_data (long pl_row, string ps_level_type, string ps_msg, string ps_recid);// Declare Locals STRING ls_logLine STRING ls_fields[12] IF NOT ib_WroteActHeader THEN ls_logLine = ps_level_type + " Activity DDAT*\ata Value Unit Data Reference" log_write(ls_logLine) ls_logLine = "Start Date End Date Metric Type Value Code Material C Code Method Type Code" log_write(ls_logLine) ib_WroteActHeader = True END IF log_err(ps_msg, ps_recid) IF pl_row > 0 THEN ls_fields[1] = dw_activities.getItemString(pl_row,"metric_code") ls_fields[2] = dw_activities.getItemString(pl_row,"value_type") ls_fields[3] = dw_activities.getItemStrDAT*^ing(pl_row,"value") ls_fields[4] = dw_activities.getItemString(pl_row,"value_unit_code") ls_fields[5] = dw_activities.getItemString(pl_row,"material_code") ls_fields[6] = dw_activities.getItemString(pl_row,"confidential_flag") ls_fields[7] = dw_activities.getItemString(pl_row,"data_code") ls_fields[8] = dw_activities.getItemString(pl_row,"method_type") ls_fields[9] = dw_activities.getItemString(pl_row,"reference_type") ls_fields[10] = dw_activities.getItemString(pl_row,"referenDAT*`ce_code") ls_fields[11] = STRING(DATE(dw_activities.getItemDateTime(pl_row,"start_date_time")),"mm-dd-yyyy") ls_fields[12] = STRING(DATE(dw_activities.getItemDateTime(pl_row,"end_date_time")),"mm-dd-yyyy") END IF IF ISNULL(ls_fields[1]) THEN ls_fields[1] = " " IF ISNULL(ls_fields[2]) THEN ls_fields[2] = " " IF ISNULL(ls_fields[3]) THEN ls_fields[3] = " " IF ISNULL(ls_fields[4]) THEN ls_fields[4] = " " IF ISNULL(ls_fields[5]) THEN ls_fields[5] DAT*b = " " IF ISNULL(ls_fields[6]) THEN ls_fields[6] = " " IF ISNULL(ls_fields[7]) THEN ls_fields[7] = " " IF ISNULL(ls_fields[8]) THEN ls_fields[8] = " " IF ISNULL(ls_fields[9]) THEN ls_fields[9] = " " IF ISNULL(ls_fields[10]) THEN ls_fields[10] = " " IF ISNULL(ls_fields[11]) THEN ls_fields[11] = " " IF ISNULL(ls_fields[12]) THEN ls_fields[12] = " " ls_logLine = ls_fields[11] + " " + ls_fields[12] + " " +& ls_fields[1] + " " + & ls_fDAT*dields[2] + " " + & ls_fields[3] + " " + & ls_fields[4] + " " + & ls_fields[5] + " " + & ls_fields[6] + " " + & ls_fields[7] + " " + & ls_fields[8] + " " + & ls_fields[9] + " " + & ls_fields[10] iw_parent.uo_log.f_write(ls_logline) CHOOSE CASE il_level_type CASE "Facility" iw_parent.ib_errorSource = True CASE "Device" iw_parent.ib_errorDevice = True CASE "Process" iw_parent.ib_errorProcess = True CASE "Stream" iw_parent.ib_errorStream = DAT*fTrue END CHOOSE end subroutine public function boolean check_cancel ();// Release processing slice to other controls YIELD() // Check if cancel flag was set IF iw_parent.ib_cancel THEN RETURN True END IF Return False end function public subroutine f_writeactivityerror (long pl_rid, string ps_metriccode);INTEGER li_retVal LONG ll_newRow, ll_newRid STRING ls_levelType IF ps_metriccode = "SOURCE ERROR" THEN ls_levelType = "SRC" ELSE ls_levelType = "DEV" END IF DAT*hdw_activities.setFilter("ref_rid = " + STRING(pl_rid) + " AND metric_code = '" + ps_metricCode + "' AND value = 'Y' AND isNull(end_date_time)") dw_activities.Filter() IF dw_activities.rowCount() > 0 THEN dw_activities.f_clearFilter() RETURN ELSE dw_activities.setFilter("ref_rid = " + STRING(pl_rid) + " AND metric_code = '" + ps_metricCode + "' AND value = 'N' AND isNull(end_date_time)") dw_activities.Filter() IF dw_activities.rowCount() > 0 THEN // Close this record dw_aDAT*jctivities.setItem(1,"end_date_time",today()) END IF dw_activities.f_clearFilter() ll_newRid = f_get_sequence() IF ll_newRid = -1 THEN return END IF ll_newRow = dw_activities.insertRow(0) IF ll_newRow > 0 THEN dw_activities.setItem(ll_newRow, "rid", ll_newRid) dw_activities.setItem(ll_newRow, "ref_rid", pl_rid) dw_activities.setItem(ll_newRow, "metric_code", ps_metricCode) dw_activities.setItem(ll_newRow, "metric_level_type", ls_levelType) dw_activitieDAT*ls.setItem(ll_newRow, "value", "Y") dw_activities.SetItem(ll_newRow, "creation_date_time", today()) dw_activities.SetItem(ll_newRow, "start_date_time", today()) dw_activities.SetItem(ll_newRow, "user_id", gs_user_id) li_retVal = dw_activities.Update() IF li_retVal = 1 THEN COMMIT USING SQLCA; ELSE ROLLBACK USING SQLCA; END IF END IF END IF end subroutine public subroutine f_clearactivityerror (long pl_rid, string ps_metriccode);INTEGER li_retVal LONG DAT*nll_newRow, ll_newRid STRING ls_levelType IF ps_metriccode = "SOURCE ERROR" THEN ls_levelType = "SRC" ELSE ls_levelType = "DEV" END IF dw_activities.setFilter("ref_rid = " + STRING(pl_rid) + " AND metric_code = '" + ps_metricCode + "' AND value = 'N' AND isNull(end_date_time)") dw_activities.Filter() IF dw_activities.rowCount() > 0 THEN dw_activities.f_clearFilter() RETURN ELSE dw_activities.setFilter("ref_rid = " + STRING(pl_rid) + " AND metric_code = '" + ps_metricCode +DAT*p "' AND value = 'Y' AND isNull(end_date_time)") dw_activities.Filter() IF dw_activities.rowCount() > 0 THEN // Close this record dw_activities.setItem(1,"end_date_time",today()) END IF dw_activities.f_clearFilter() ll_newRid = f_get_sequence() IF ll_newRid = -1 THEN return END IF ll_newRow = dw_activities.insertRow(0) IF ll_newRow > 0 THEN dw_activities.setItem(ll_newRow, "rid", ll_newRid) dw_activities.setItem(ll_newRow, "ref_rid", pl_rid) dwDAT*r_activities.setItem(ll_newRow, "metric_code", ps_metricCode) dw_activities.setItem(ll_newRow, "metric_level_type", ls_levelType) dw_activities.setItem(ll_newRow, "value", "N") dw_activities.SetItem(ll_newRow, "creation_date_time", today()) dw_activities.SetItem(ll_newRow, "start_date_time", today()) dw_activities.SetItem(ll_newRow, "user_id", gs_user_id) li_retVal = dw_activities.Update() IF li_retVal = 1 THEN COMMIT USING SQLCA; ELSE ROLLBACK USING SQLCA; EDAT*tND IF END IF END IF end subroutine on constructor;iw_parent = message.powerObjectParm end on on u_cc_base.create this.dw_activities=create dw_activities this.dw_1=create dw_1 this.Control[]={ this.dw_activities,& this.dw_1} end on on u_cc_base.destroy destroy(this.dw_activities) destroy(this.dw_1) end on type dw_activities from u_dw within u_cc_base int X=737 int Y=41 int TabOrder=20 string DataObject="d_activity" boolean LiveScroll=false end type on conDAT*structor;call u_dw::constructor;this.setTransobject(sqlca) end on type dw_1 from datawindow within u_cc_base int X=151 int Y=41 int Width=494 int Height=361 int TabOrder=10 boolean LiveScroll=true end type on constructor;this.setTransobject(sqlca) end on DAT*xg@4*b?lAg@g@t g@X@X@)c@c@6@@B`@`@Lj@j@Zk@k@fl@l@zm@m@@@@@a@@@@^@^@ n@@@n@n@@8p@g@Jq@q@v@v@Qamb u_cc_baseuserobjectuserobjectswindowobjectborderstylestructuremailrecipientenvironmentmailfiledescriptionmailmessagedatawindowDAT*zchildlistviewitemtreeviewitemconnectioninfopowerobject  Uu_dwdwobjectdatawindow  Kw_ccheck_parameters  Pd_activityu_log_filef_get_sequencegs_user_idtransactionsqlcamessageL2 u_cc_base  ps_msgps_recidlog_errlog_writepl_rowps_level_typewrite_activity_datacheck_cancelpl_ridps_metrDAT*|iccodef_writeactivityerrorf_clearactivityerror+constructor+create+destroy( QRSRSWiQSi*1QLSSSB`gQLS`gLQ(8p x3 _initsrcuserobjectu_cc_baseuserobjectswindowobjectborderstylestructuremailrecipientenvironmentmailfiledescriptionmailmessagedatawindowchildlistviewitemtreeviewitemconnectiDAT*~oninfopowerobjectu_dwdw_activitiesdwobjectdatawindowdw_1w_ccheck_parametersu_log_filetransactionmessage qa@@`@7&@k@q2@m@?@@K@@aU@^@c@o@ @ @@ @ @ @@@@DAT*@@@@+@  7,  '!z%y% 1 801 801 800$D$8L-z%8Sz&1XDAT*$`$)t8)98$$8J8$$81R)8$$8J8}$$<%-z%)$8<$68DP$h9}8pHx$9}8~$9}8DAT*$9} @` H!#%&()&+D,\.z/dX ps_msgps_recidli_severityll_counterll_rowls_severity@ case35D  $/D6-P  Warning: Alert: Notice: iw_parent##dw_concheck8."id = ''##8."rowcount4hfindk|#DAT*`#8."error_countgetitemnumber_m ##8."setitemO##8."severity ##uo_log -f_write1il_level_type,&Facility##ib_errorsourceXEDevice##ib_errordevicefFProcess##ib_errorprocessGStream##ib_errorstream(H0 D X ` t             $ < PDAT*g@5*b?lA g@g@qX@X@a+c@c@a8@@aD@@qM^@^@dp@`n@n@p`@`@j@j@ak@k@ql@l@m@m@a@@a@@ @@q@@sht"p@q@q@ g@ g@pg@`| v@v@q| mis u_cc_processu_cc_baseuserobjectswindowobjectborderstyledwobjectpowerobjectd_activityw_ccheck_parameters DAT*datawindowstructuremailrecipientenvironmentmailfiledescriptionmailmessagedatawindowchildlistviewitemtreeviewitemconnectioninfo  GGGd_process_ccd_streams_ccd_process_schedulesw_mdi_maintransactionsqlcaSELECT rap_emission_factors.amt , rap_emission_factors.exponent_amt , rap_emission_factors.unit_code , DAT*rap_emission_factors.emittant_material_code , rap_emission_factors.throughput_unit_code , rap_emission_factors.throughput_material_code FROM rap_emission_factors WHERE rap_emission_factors.process_rid =0 e12HlALlAu_log_fileSELECT rap_scc_ams_codes.desc_1 FROM rap_scc_ams_codes WHERE rap_scc_ams_codes.code =' ' UX.lADAT*l4lAu_cc_sourceu_cc_deviceSELECT rap_metric_maps.unit_code , rap_metric_maps.maximum_amt , rap_metric_maps.minimum_amt FROM rap_metric_maps WHERE ( rap_metric_maps.code =' ' ) AND ( rap_metric_maps.source_type =' ' ) AND ( rap_metric_maps.source_code =' ' ) AND ( rap_metric_maps.value_type =' ' ) AND ( rap_metric_maps.device_code =' ' ) AND ( rap_metric_maps.process_code =' ' ) AND ( rap_metric_maps.minimum_amt is not NULL ) AND ( rap_metric_maDAT*ps.maximum_amt is not NULL )  36]`lAlA  36]`lAd,lASELECT rap_units_a.conversion_factor_amt , rap_units_b.conversion_factor_amt FROM rap_units rap_units_a , rap_units rap_units_b , rap_metrics WHERE ( rap_units_a.code =' ' ) and ( rap_DAT*metrics.meas_code =rap_units_a.meas_code ) and ( rap_metrics.meas_code =rap_units_b.meas_code ) and ( rap_metrics.code =' ' ) and ( rap_units_b.code =' ' ) 03NQlA@  lAmessagex(PxHL   .4 l p      , d l  @ D 2DAT* u_cc_process o pw_parentpl_ridpdw_checksf_runps_errmsgps_checkidf_logemissiondata+constructor+create+destroyp   QCw_ccheck_parameters.LCdatawindow.*4QSSLQP x _initsrcu_cc_baseu_cc_processuserobjectswindowobjectborderstyleu_cc_base`dw_activitiesdw_activitiesdwobjectpowerobjectu_cc_base`dw_1dw_1w_ccheck_parametersdaDAT*tawindowdw_streamsstructuremailrecipientenvironmentmailfiledescriptionmailmessagedatawindowchildlistviewitemtreeviewitemconnectioninfodw_schedulesw_mdi_maintransactionu_log_fileu_cc_sourceu_cc_devicemessagel@(@4@A@Mes@|@7@d@DAT*b@@@ @ @@@ @ @@@ @ @@@@'@@@4@ colCch)' P@![@g@r@!~@<@    DAT*g@5*b?lA g@ g@X@X@*c@c@7@@C@@L^@^@cp@n@n@`@`@j@j@ak@k@ql@l@m@m@q@@a@@q @@q@@ato"p@q@q@ g@ v@v@  u_cc_sourceu_cc_baseuserobjectswindowobjectborderstyledwobjectpowerobjectd_activityw_ccheck_parameters  zDAT*datawindowstructuremailrecipientenvironmentmailfiledescriptionmailmessagedatawindowchildlistviewitemtreeviewitemconnectioninfo  ؊  zd_device_idsd_loc_coordw_mdi_main-transactionsqlca,SELECT rap_contacts.rid , rap_contacts.name , rap_contacts.mail_addr_line_1 , rap_contacts.mail_zip_code , rap_contacts.mail_city_rid , rap_contacts.mail_state_rid FROM rap_contacts WHERE rap_contacts.ref_ridDAT* =0 Econtact_curlAlASELECT rap_contact_reasons.reason_code FROM rap_contact_reasons WHERE rap_contact_reasons.contact_rid =0 ghp@(lAlAu_log_fileSELECT name FROM rap_sic_codes WHERE rap_sic_codes.code =' ' 9<VDAT*lAna\lASELECT rap_legal_entities.name , rap_legal_entities.rid FROM rap_legal_entities , rap_legal_entity_relations WHERE ( rap_legal_entity_relations.ref_rid =0 ) AND ( rap_legal_entities.rid =rap_legal_entity_relations.legal_entity_rid ) AND ( rap_legal_entity_relations.code ='OWNER' ) AND ( rap_legal_entity_relations.end_relation_date IS NULL ) (lAd,DAT*lASELECT rap_location_coordinate_groups.rid FROM rap_location_coordinate_groups WHERE rap_location_coordinate_groups.ref_rid =0 a|} lAO2\$lA|}lA8lA|}lALDAT*lASELECT rap_activities.value , rap_activities.metric_code FROM rap_activities WHERE rap_activities.ref_rid =0 AND rap_activities.metric_level_type ='LEG' kln " lA` ( lASELECT rap_metric_maps.unit_code , rap_metric_maps.maximum_amt , rap_metric_maps.minimum_amt FROM rap_metric_maps WHERE ( rap_metric_maps.code =' ' ) AND ( rap_metric_maps.source_type =' ' ) AND ( rap_metriDAT*c_maps.source_code =' ' ) AND ( rap_metric_maps.value_type =' ' ) AND ( rap_metric_maps.minimum_amt is not NULL ) AND ( rap_metric_maps.maximum_amt is not NULL )  te lAriX lA   lA lASELECT rap_units_a.conversion_factor_amt , rap_units_b.conversioDAT*n_factor_amt FROM rap_units rap_units_a , rap_units rap_units_b , rap_metrics WHERE ( rap_units_a.code =' ' ) and ( rap_metrics.meas_code =rap_units_a.meas_code ) and ( rap_metrics.meas_code =rap_units_b.meas_code ) and ( rap_metrics.code =' ' ) and ( rap_units_b.code =' ' ) 03NQv lA lAmessagex(P    DAT*    V\   (, d h  $ \ `     L P " ( ` d   X `     v    2 u_cc_source b pw_parentpl_ridpdw_checksf_runps_zipf_check_zip_format+constructor+create+destroygDAT*g@6*b?lA g@t g@aX@X@a'c@c@q4@@a@@@qI^@^@a`p@qn@n@p`@`@j@j@Ak@k@ql@l@qm@m@a@@a@@q@@a@@zq@q@@v@v@ u_cc_geou_cc_baseuserobjectswindowobjectborderstyledwobjectpowerobjectd_activityw_ccheck_parameters  datawindowstructuremailrecipienteDAT*nvironmentmailfiledescriptionmailmessagedatawindowchildlistviewitemtreeviewitemconnectioninfo  cd_county_selectd_source_selectd_state_namestransactionsqlcamessaget$2 u_cc_geo  & +create+destroy+constructor QL xi _initsrcu_cc_baseu_cc_geouserobjectswindowobjectborderstyleu_cc_base`dw_activitiesdw_activitiesdwobjectpowerobjectu_cc_DAT*base`dw_1dw_1w_ccheck_parametersdatawindowdw_countiesstructuremailrecipientenvironmentmailfiledescriptionmailmessagedatawindowchildlistviewitemtreeviewitemconnectioninfodw_sourcesdw_statestransactionmessage0pean@cht $@ 0@ H=@rdI="azeo@00x@"A@d@DAT*@@@ @ @@@ @ @@@ @@@@@$@@@1@@  K)!U@a@    7, *!DAT*z% y% y% y% y%8*$8*@T*\l$}t1<R|$1<R$1<R$(>Tp d icurrenth DAT* createdw_counties'dw_sources,(,dw_statesH)Hcontroldc@dc@'dc@,(dc@H) $8 @T \l t |     B8$0$D$ .d L destroydw_counties'dw_sourcess$(dw_states8) 0 D L"DAT*2  +create+destroy(2 ) dw_countiesdw_sourcesdw_states<   ] o. @@$1    @     DAT*   L%2  2  ] o)i @ U@ @ L%2  2  ] o)DAT*i  @  @ @ J,)8,01>, $d sqlca::message(@@( settransobject^  %L%2  +constructor2 CDAT*forward global type u_cc_device from u_cc_base end type type dw_processes from datawindow within u_cc_device end type end forward global type u_cc_device from u_cc_base dw_processes dw_processes end type global u_cc_device u_cc_device type variables STRING is_sourceCode // Code column from Source STRING is_sourceType // Type column from Source end variables forward prototypes public subroutine f_run (w_ccheck_parameters pw_parent, long pl_rid, datawindow pdw_checks) end protoDAT*types public subroutine f_run (w_ccheck_parameters pw_parent, long pl_rid, datawindow pdw_checks);// FUNCTION f_run(window pw_parent, long pl_rid, pdw_checks) // Run consistency checks on device and its processes/streams // // Arguments: // pw_parent - Value of calling window // pl_rid - RID of source to process // pdw_checks - DW of ConCheck records // // Returns: None // //Declare Locals LONG ll_rows, ll_activityRows LONG ll_dw_pro_row, ll_dw_pro_count STRING ls_log_line,DAT* old_select, mod_string STRING ls_fields[11] ll_rows = dw_1.Retrieve(pl_rid) // Retrieve Source Activities w_mdi_main.setMicrohelp("Retrieving Device Activities...") ll_activityRows = dw_activities.retrieve(pl_rid, "DEV") pw_parent.device[2].rec_count = pw_parent.device[2].rec_count + ll_activityRows //Check for processes for this device dw_processes.retrieve(pl_rid) // Set microhelp line w_mdi_main.setMicrohelp("Checking Device: " + string(pl_rid) + "...") // Write Header DAT*info pw_parent.uo_log.f_write("Device") pw_parent.uo_log.f_write("=============================================================================") ls_fields[1] = dw_1.getItemString(1,"id") ls_fields[2] = dw_1.getItemString(1,"code") ls_fields[3] = dw_1.getItemString(1,"name") ls_fields[4] = dw_1.getItemString(1,"operator_id") ls_fields[5] = dw_1.getItemString(1,"operator_code") ls_fields[6] = dw_1.getItemString(1,"operator_name") ls_fields[7] = dw_1.getItemString(1,"group_flag") ls_fielDAT*ds[8] = dw_1.getItemString(1,"group_type") ls_fields[9] = string(dw_1.getItemDate(1,"install_date"),"mm-dd-yyyy") ls_fields[10] = string(dw_1.getItemDate(1,"dismantle_date"),"mm-dd-yyyy") ls_fields[11] = dw_1.getItemString(1,"comment_text") IF IsNull(ls_fields[1]) THEN ls_fields[1] = "" IF IsNull(ls_fields[2]) THEN ls_fields[2] = "" IF IsNull(ls_fields[3]) THEN ls_fields[3] = "" IF IsNull(ls_fields[4]) THEN ls_fields[4] = "" IF IsNull(ls_fields[5]) THEN ls_fields[5] = "" IF IsNull(ls_fiDAT*elds[6]) THEN ls_fields[6] = "" IF IsNull(ls_fields[7]) THEN ls_fields[7] = "" IF IsNull(ls_fields[8]) THEN ls_fields[8] = "" IF IsNull(ls_fields[9]) THEN ls_fields[9] = "" IF IsNull(ls_fields[10]) THEN ls_fields[10] = "" IF IsNull(ls_fields[11]) THEN ls_fields[11] = "" ls_log_line = "Agency Device Id: " + ls_fields[1] + " " + & "Code: " + ls_fields[2] + " " + & "Name: " + ls_fields[3] pw_parent.uo_log.f_write(ls_log_line) ls_log_line = "Operator Device Id: " + ls_fieDAT*lds[4] + " " + & "Code: " + ls_fields[5] + " " + & "Name: " + ls_fields[6] pw_parent.uo_log.f_write(ls_log_line) ls_log_line = "Group Flag: " + ls_fields[7] + " " + & "Group Type: " + ls_fields[8] + " " + & "Installed Date: " + ls_fields[9] + " " + & "Dismantled Date: " + ls_fields[10] pw_parent.uo_log.f_write(ls_log_line) ls_log_line = "Comments: " + ls_fields[11] pw_parent.uo_log.f_write(ls_log_line) pw_parent.uo_log.f_write("") //BegDAT*in Device Checks Long ll_loopCount, ll_checkCount, ll_workvar, ll_workLoop, ll_workVar2 String ls_checkId, ls_errmsg String ls_workvar, ls_workvar1, ls_workvar2, ls_workvar3, ls_workVar4, ls_workVar5 ll_loopCount = 1 ll_checkCount = pdw_checks.rowCount() DO UNTIL ll_loopCount > ll_checkCount ls_checkId = pdw_checks.getItemString(ll_loopCount,"id") ls_errMsg = pdw_checks.getItemString(ll_loopCount,"error_message") CHOOSE CASE ls_checkId CASE "DEV001" IF ls_fields[2] = "DAT*@" THEN log_err(ls_errMsg, ls_checkId) END IF CASE "DEV002" IF ls_fields[2] = "CONTROL" THEN ll_workvar = dw_processes.retrieve(dw_1.getItemNumber(1,"rid")) IF ll_workvar < 1 THEN log_err(ls_errMsg, ls_checkId) END IF END IF CASE "DEV003" IF dw_1.getItemDate(1,"install_date") > today() THEN log_err(ls_errMsg, ls_checkId) END IF CASE "DEV004" IF dw_1.getItemDate(1,"dismantle_date") > today() THEN log_err(ls_errMsg, ls_checkIDAT*d) END IF CASE "DEV005" IF ls_fields[11] = "BAD DEVICE" THEN log_err(ls_errMsg, ls_checkId) END IF CASE "DEV006" IF LEFT(ls_fields[1],7) = 'EU-UNKN' THEN log_err(ls_errMsg, ls_checkId) END IF CASE "DEV007" IF POS(ls_fields[1],'99999') > 0 OR POS(ls_fields[1],'ZZZZ') > 0 THEN log_err(ls_errMsg, ls_checkId) END IF CASE "DEV008" IF POS(ls_fields[3],'99999') > 0 OR POS(ls_fields[3],'ZZZZ') > 0 THEN log_err(ls_errMsg, ls_checkId) DAT* END IF CASE "DEV501" FOR ll_workLoop = 1 to ll_activityRows ls_workvar = dw_activities.getItemString(ll_workLoop,"value_unit_code") ls_workvar2 = iw_parent.f_get_units_name(ls_workvar) IF left(ls_workvar2,3) = "BAD" THEN write_activity_data(ll_workLoop, il_level_type, ls_errMsg, ls_checkId) END IF ll_workLoop = ll_workLoop + 1 NEXT CASE "DEV502" FOR ll_workLoop = 1 to ll_activityRows ls_workvar = dw_activities.getItemString(ll_workLDAT*oop,"material_code") ls_workvar2 = iw_parent.f_get_materials_name(ls_workvar) IF left(ls_workvar2,3) = "BAD" THEN write_activity_data(ll_workLoop, il_level_type, ls_errMsg, ls_checkId) END IF ll_workLoop = ll_workLoop + 1 NEXT CASE "DEV503" FOR ll_workLoop = 1 to ll_activityRows ls_workvar = dw_activities.getItemString(ll_workLoop,"metric_code") ls_workvar2 = iw_parent.f_get_metrics_name(ls_workvar) IF left(ls_workvar2,3) = "BAD" THEN DAT* write_activity_data(ll_workLoop, il_level_type, ls_errMsg, ls_checkId) END IF ll_workLoop = ll_workLoop + 1 NEXT CASE "DEV504" IF ls_fields[2] = "STACK" OR ls_fields[2] = "DISCHARGE POINT" THEN dw_activities.setfilter("metric_code = 'AFS STK TYPE'") dw_activities.filter() IF dw_activities.rowCount() = 0 THEN write_activity_data(0, il_level_type, ls_errMsg, ls_checkId) END IF dw_activities.setfilter("") dw_activities.filter() DAT* END IF CASE "DEV505" IF ls_fields[2] = "STACK" OR ls_fields[2] = "DISCHARGE POINT" THEN dw_activities.setfilter("metric_code = 'STACK SHAPE'") dw_activities.filter() IF dw_activities.rowCount() = 0 THEN write_activity_data(0, il_level_type, ls_errMsg, ls_checkId) END IF dw_activities.setfilter("") dw_activities.filter() END IF CASE "DEV506" IF ls_fields[2] = "STACK" OR ls_fields[2] = "DISCHARGE POINT" THEN dw_activities.setDAT*filter("metric_code = 'HEIGHT' or metric_code = 'DIAMETER'") dw_activities.filter() IF dw_activities.rowCount() < 2 THEN write_activity_data(0, il_level_type, ls_errMsg, ls_checkId) END IF dw_activities.setfilter("") dw_activities.filter() END IF CASE "DEV507" FOR ll_workLoop = 1 to ll_activityRows IF date(dw_activities.getItemDateTime(ll_workLoop,"start_date_time")) > today() THEN write_activity_data(ll_workLoop, il_level_type, ls_errDAT*Msg, ls_checkId) END IF ll_workLoop = ll_workLoop + 1 NEXT CASE "DEV508" FOR ll_workLoop = 1 to ll_activityRows IF date(dw_activities.getItemDateTime(ll_workLoop,"end_date_time")) > today() THEN write_activity_data(ll_workLoop, il_level_type, ls_errMsg, ls_checkId) END IF ll_workLoop = ll_workLoop + 1 NEXT CASE "DEV509" DECIMAL ldec_min_amt, ldec_max_amt, & ldec_default_unit_factor, ldec_user_unit_factor, ldec_act_value DAT* STRING ls_actValue, ls_deviceCode ll_activityRows = dw_activities.rowCount() FOR ll_workLoop = 1 to ll_activityRows SetNull(ldec_min_amt) SetNull(ldec_max_amt) ls_workVar = dw_activities.getItemString(ll_workLoop,"metric_code") ls_workVar4 = dw_activities.getItemString(ll_workLoop,"value_type") ls_actValue = dw_activities.getItemString(ll_workLoop,"value") ls_deviceCode = dw_1.getItemString(1,"code") // from dw_1 (devices) IF isValid(iw_parent.iu_DAT*cc_source) THEN ls_workVar2 = iw_parent.iu_cc_source.dw_1.getItemString(1,"code") // from sources ls_workVar3 = iw_parent.iu_cc_source.dw_1.getItemString(1,"type") // from sources ELSE SELECT source.code, source.type INTO :ls_workVar2, :ls_workVar3 FROM rap_sources source, rap_devices device WHERE ( source.rid = device.source_rid ) AND ( device.rid = :pl_rid ) USING SQLCA; IF isNull(ls_workVar2) THEN ls_workVar2 = "" DAT* IF isNull(ls_workVar3) THEN ls_workVar3 = "" is_sourceCode = ls_workVar2 is_sourceType = ls_workVar3 END IF SELECT rap_metric_maps.unit_code, rap_metric_maps.maximum_amt, rap_metric_maps.minimum_amt INTO :ls_workVar5, :ldec_max_amt, :ldec_min_amt FROM rap_metric_maps WHERE ( rap_metric_maps.code = :ls_workVar ) AND ( rap_metric_maps.source_type = :ls_workDAT*Var3 ) AND ( rap_metric_maps.source_code = :ls_workVar2 ) AND ( rap_metric_maps.value_type = :ls_workVar4 ) AND ( rap_metric_maps.device_code = :ls_deviceCode ) AND ( rap_metric_maps.minimum_amt is not NULL ) AND ( rap_metric_maps.maximum_amt is not NULL ) USING SQLCA ; // See if we found a record, if not try with device code = "generic" IF SQLCA.SQLCode = 100 THEN ls_deviceCode = "GENERIC" DAT* SELECT rap_metric_maps.unit_code, rap_metric_maps.maximum_amt, rap_metric_maps.minimum_amt INTO :ls_workVar5, :ldec_max_amt, :ldec_min_amt FROM rap_metric_maps WHERE ( rap_metric_maps.code = :ls_workVar ) AND ( rap_metric_maps.source_type = :ls_workVar3 ) AND ( rap_metric_maps.source_code = :ls_workVar2 ) AND ( rap_metric_maps.value_typeDAT* = :ls_workVar4 ) AND ( rap_metric_maps.device_code = :ls_deviceCode ) AND ( rap_metric_maps.minimum_amt is not NULL) AND ( rap_metric_maps.maximum_amt is not NULL) USING SQLCA ; END IF // See if we found a record, if not try with source code = "@" IF SQLCA.SQLCode = 100 THEN ls_deviceCode = dw_1.getItemString(1,"code") // from dw_1 (devices) ls_workVar2 = "@" SELECT rap_metric_maps.unit_code, DAT* rap_metric_maps.maximum_amt, rap_metric_maps.minimum_amt INTO :ls_workVar5, :ldec_max_amt, :ldec_min_amt FROM rap_metric_maps WHERE ( rap_metric_maps.code = :ls_workVar ) AND ( rap_metric_maps.source_type = :ls_workVar3 ) AND ( rap_metric_maps.source_code = :ls_workVar2 ) AND ( rap_metric_maps.value_type = :ls_workVar4 ) AND ( rap_meDAT*tric_maps.device_code = :ls_deviceCode ) AND ( rap_metric_maps.minimum_amt is not NULL) AND ( rap_metric_maps.maximum_amt is not NULL) USING SQLCA ; END IF // See if we found a record, if not try another IF SQLCA.SQLCode = 100 THEN ls_deviceCode = "@" ls_workVar2 = "@" SELECT rap_metric_maps.unit_code, rap_metric_maps.maximum_amt, rap_metric_maps.minimum_amt INTO :ls_worDAT*kVar5, :ldec_max_amt, :ldec_min_amt FROM rap_metric_maps WHERE ( rap_metric_maps.code = :ls_workVar ) AND ( rap_metric_maps.source_type = :ls_workVar3 ) AND ( rap_metric_maps.source_code = :ls_workVar2 ) AND ( rap_metric_maps.value_type = :ls_workVar4 ) AND ( rap_metric_maps.device_code = :ls_deviceCode ) AND ( rap_metric_maps.minimum_amt is not NULL) AND DAT* ( rap_metric_maps.maximum_amt is not NULL) USING SQLCA ; END IF IF SQLCA.SQLCode = 0 THEN ls_workVar = dw_activities.getItemString(ll_workLoop,"value_unit_code") // Check to see if the unit conversion is needed IF ls_workvar5 <> ls_workVar THEN // Get unit conversion factor SELECT rap_units_a.conversion_factor_amt, rap_units_b.conversion_factor_amt INTO :ldec_default_unit_factor, :ldec_user_unit_factoDAT*r FROM rap_units rap_units_a, rap_units rap_units_b, rap_metrics WHERE ( rap_units_a.code = :ls_workvar5 ) and ( rap_metrics.meas_code = rap_units_a.meas_code ) and ( rap_metrics.meas_code = rap_units_b.meas_code ) and ( rap_metrics.code = :ls_workVar5 ) and ( rap_units_b.code = :ls_workvar ); // ls_workvar needs checked ldec_max_amt = ldec_max_amt * ldec_default_unit_factor / ldec_user_unit_factor DAT* ldec_min_amt = ldec_min_amt * ldec_default_unit_factor / ldec_user_unit_factor END IF END IF // Check to see if the value is within the valid range ldec_act_value = Dec(ls_actvalue) IF NOT (IsNull(ldec_max_amt) or IsNull(ldec_min_amt)) THEN IF (ldec_act_value < ldec_min_amt) OR (ldec_act_value > ldec_max_amt) THEN ls_errMsg = ls_errMsg + '~r~n~tValue must be between ' + & String(ldec_min_amt) + ' and ' + String(ldec_max_amt) write_acDAT*tivity_data(ll_workLoop, il_level_type, ls_errMsg, ls_checkId) END IF END IF ll_workLoop = ll_workLoop + 1 NEXT CASE "DEV510" STRING ls_Value ll_activityRows = dw_activities.rowCount() FOR ll_workLoop = 1 to ll_activityRows ls_Value = dw_activities.getItemString(ll_workLoop,"value") IF ls_Value = '99999' OR ls_Value = 'ZZZZ' THEN write_activity_data(ll_workLoop, il_level_type, ls_errMsg, ls_checkId) END IF NEXT ENDAT*D CHOOSE ll_loopCount = ll_loopCount + 1 IF check_cancel() THEN EXIT END IF LOOP pw_parent.uo_log.f_write("") // Process each device RID // Get # of processes for Loop ll_dw_pro_count = dw_processes.rowCount() // Perform process Processing (if processes found) FOR ll_dw_pro_row = 1 to ll_dw_pro_count IF check_cancel() THEN EXIT END IF pw_parent.f_run_process(dw_processes.getItemNumber(ll_dw_pro_row,"rid")) NEXT end subroutine on constDAT*ructor;call u_cc_base::constructor;il_level_type = "Device" end on on u_cc_device.create int iCurrent call u_cc_base::create this.dw_processes=create dw_processes iCurrent=UpperBound(this.Control) this.Control[iCurrent+1]=dw_processes end on on u_cc_device.destroy call u_cc_base::destroy destroy(this.dw_processes) end on type dw_1 from u_cc_base`dw_1 within u_cc_device string DataObject="d_device_cc" end type type dw_processes from datawindow within u_cc_device int X=485DAT* int Y=501 int Width=494 int Height=361 int TabOrder=30 boolean BringToTop=true string DataObject="d_process_ids" boolean LiveScroll=true end type on constructor;this.setTransObject(sqlca) end on DAT*g@6*b?mA g@g@qX@X@a*c@c@q7@@aC@@qL^@^@acp@`n@n@``@`@aj@j@k@k@al@l@qm@m@@@@@ @@a@@aa"p@aobg@ g@pq@q@pv@v@px u_cc_deviceu_cc_baseuserobjectswindowobjectborderstyledwobjectpowerobjectd_activityw_ccheck_parameters 8DAT*datawindowstructuremailrecipientenvironmentmailfiledescriptionmailmessagedatawindowchildlistviewitemtreeviewitemconnectioninfo  Cd_device_ccd_process_idsw_mdi_mainu_log_fileu_cc_sourcetransactionsqlcaSELECT source.code , source.type FROM rap_sources source , rap_devices device WHERE ( source.rid =device.source_rid ) AND ( device.rid =0 ) TDAT*lAXlASELECT rap_metric_maps.unit_code , rap_metric_maps.maximum_amt , rap_metric_maps.minimum_amt FROM rap_metric_maps WHERE ( rap_metric_maps.code =' ' ) AND ( rap_metric_maps.source_type =' ' ) AND ( rap_metric_maps.source_code =' ' ) AND ( rap_metric_maps.value_type =' ' ) AND ( rap_metric_maps.device_code =' ' ) AND ( rap_metric_maps.minimum_amt is not NULL ) AND ( rap_metric_maps.maximum_amt is not NULL )  36uDAT*flAmm|lA  36mAme@mA  36mAmA  36 mANTX DAT*mASELECT rap_units_a.conversion_factor_amt , rap_units_b.conversion_factor_amt FROM rap_units rap_units_a , rap_units rap_units_b , rap_metrics WHERE ( rap_units_a.code =' ' ) and ( rap_metrics.meas_code =rap_units_a.meas_code ) and ( rap_metrics.meas_code =rap_units_b.meas_code ) and ( rap_metrics.code =' ' ) and ( rap_units_b.code =' ' ) 03NQmA4DAT*mAmessagex(PTX   f |     @ H        X `  4 8 2 u_cc_device H pw_parentpl_ridpdw_checksf_run+constructor+create+destroyT   QCw_ccheck_parameters.LCdatawindow.LQ xz _initsrcDAT*ju_cc_baseu_cc_deviceuserobjectswindowobjectborderstyleu_cc_base`dw_activitiesdw_activitiesdwobjectpowerobjectu_cc_base`dw_1dw_1w_ccheck_parametersdatawindowdw_processesstructuremailrecipientenvironmentmailfiledescriptionmailmessagedatawindowchildlistviewitemtreeviewitemconnectioninfow_mdi_mainu_log_fileu_cc_sourcetransactionmessageD@'@3@@@@LDAT* g@7*b?mA#g@g@g@X@X@'c@c@4@@@`@`@Jj@j@Xk@k@dl@l@xm@m@@@@@@@@@^@^@@@@@A @@@@ @@*@@6@@ES@S@N@@\@@@`@q@q@F@F@d@d@p@ & v@v@ '# u_leveluserobjectuserobjectswindowobjDAT*ectborderstylestructuremailrecipientenvironmentmailfiledescriptionmailmessagedatawindowchildlistviewitemtreeviewitemconnectioninfopowerobjectSe r statictextfontcharsetfontpitchfontfamilyalignmentfillpatternsinglelineedittextcasecommandbuttongroupbox@ str_levelun transactionMS Sans SerifID Description:Level ID:Level...Calculation LevelpointerSELECT rap_DAT*processes.id , rap_processes.name , rap_sources.type FROM rap_processes , rap_devices , rap_sources WHERE rap_devices.source_rid =rap_sources.rid AND rap_processes.device_rid =rap_devices.rid AND rap_processes.rid =0 mA<mASELECT rap_devices.id , rap_devices.name , rap_sources.type FROM rap_devices , rap_sources WHERE rap_devices.source_rid =rap_sources.rid AND rap_devices.rid =0 DAT*|mA\$mASELECT id , name , type FROM rap_sources WHERE rid =0 45mAmASELECT name FROM rap_geographic_locations WHERE rid =0 56PmAmA56DAT*PmA<mA56xPmA|mAdragobjectw_select_levelmessagesqlcah < D $ \ d        < @ x|   2 u_DAT*level  _ pt_trans_objectuf_load_level_infos_msgtextl_riduf_msgbox+create+destroy+clickedD #ICtransaction.i+5QSLQL$ x _initsrcuserobjectu_leveluserobjectswindowobjectborderstylestructuremailrecipientenvironmentmailfiledescriptionmailmessagedatawindowchildlistviewitemtreeviewitemconnectioninfopowerobjectstatictextst_level_codefontcharsetfontpitchfontDAT*familyalignmentfillpatternsinglelineeditsle_leveltextcasesle_level_idsle_id_descst_id_descst_level_idcommandbuttoncb_levelgroupboxgb_levelstr_leveltransactionpointerdragobjectw_select_levelmessage @$@0@=@I@S@a@ m@@ #@ @ @ &@DAT* @@4@@'@3(!@ @@@@"@;18;@!DQ]!ht<@ upda@m Da er@8A@Aty@ ens @ĸ@seDAT* @ !3( -!. ;-##;-##;-##. . - %DAT*D :F@@8$(800<$L$1T$\$Dd$1d8l0$$)81$1$1$80$80$800 $(6<$D800DAT* L$T6. \$l$1t$|$d$1d80$$)81$11$80$80x$800$ 6($08008$@DAT*"6. H$X$1`$h$p$1d8x0$$)81$11$80$80R$800t$ 6$800$$,6. 4$DAT*$D$1nL$T$\$1dv8d0$$)81j$11j$80$80$800H$800j$6. $ $1 ($0$@8$1dDAT*&8@0l$t$)|81 $1L1 $80$80$800$800 $6. $$1 $$ $1d 80D$L$)T81 \$DAT*(1 1 d$l8t0|$80$800 $800 $6. $800$800$80011>"`#d$h*l+-/125 67 9$:H<l=v>?BCDEJQ:R>SBWFDAT**X\Zj\^_bcdfg"iFjPktlxopqrw~ 6D^ *NRt~0br DHj28HLp 2 6 L Z t  6 Z d        . d. pt_trans_objectls_idls_namels_typeP #DAT*,  &  st_level_code!text istr_level1,"processD1,"DProcess information not found for process_rid=1,"Duf_msgbox2sle_level" Process! PROsle_level_id# # sle_id_desc0$ 0$ 1,"deviced1,"dDevice information not found for device_rid=1,DAT*."d2" Device! DEV# # 0$ 0$ 1,"sourceP1,"PSource information not found for source_rid=01,"P2" Sourcey! SRC# # 0$ 0$ 1,"county<1,"<County information not found for county_rid=1,"<2DAT*n" Countye! GEO# 0$ 0$ 1,"state1,"State information not found for state_rid=1,"2" State i! # 0$ 0$ 1,"nation1,"Nation information not found for nation_rid=1,"2" Nation! # 0$ 0DAT*2g@7*b?mAg@g@tg@X@X@a*c@c@a7@@qC`@`@qMj@j@a[k@k@gl@l@{m@m@@@@@@@@@^@^@@@@@@@@@A#@@2S@S@;@@@v@v@Ad@d@Ap@ @F@F@@ u_log_fileuserobjectuserobjectswindowobjectborderstylestructuremailrecipientenvironmentmailfDAT*4iledescriptionmailmessagedatawindowchildlistviewitemtreeviewitemconnectioninfopowerobject wcommandbuttonfontcharsetfontpitchfontfamilysinglelineedittextcasegroupbox ؊ Files...MS Sans SerifView...Log Filemessagedragobjectw_logstatpointerf_display_fileDl2 u_log_file  ps_messagef_wrDAT*6itef_close_logf_write_sum_mf_write_sum_rf_open_sum_filesf_write_sum_b+constructor+create+destroy+clickedB QSQateL(4 xr _initsrcuserobjectu_log_fileuserobjectswindowobjectborderstylestructuremailrecipientenvironmentmailfiledescriptionmailmessagedatawindowchildlistviewitemtreeviewitemconnectioninfopowerobjectcommandbuttoncb_newfontcharsetfontpitchfontfamilysDAT*8inglelineeditsle_log_filetextcasecb_viewgroupboxgb_log_filemessagedragobjectw_logstatpointerlqa@k@l@J'@@a3q@@@@@L@V@d@p@ @ @ @tfam en@llpa le@editt@aseid@_id__dst_lmm@uttog@DAT*:boxtr@elt p@erdw_ct_l'ge@;088r_@l!AM@U@!`@j<@  7,  -!-;-##-%DAT*< .$6A@A8d ps_message  ii_log_file% | $1<t$/@/8$1}<$L9}d$1<l$/@/8t1}$1< $/@/81}$1DAT*><v$/@/81}<Vt  <\d p ii_log_file%%%sle_log_file,"enabledDii_sum_m_fileT(T(T(ii_sum_r_file|'|'|'ii_sum_b_file)))  $ < L d l t       .$6DAT*@A@A8d ps_message   ii_sum_m_file( .$6A@A8d ps_message   ii_sum_r_file' j$81@8} $1<Yo@o8}}/1<B<1@DAT*B88(>1<R@8<o@o8B1<z%8Dz&\z%8dz&|z%8z&1o@o8z'8Dz&1o@o8z'8dz&1o@o8z'8z&$6:@:@:@:]@:@DAT*D:8}$6:@:@:@:]@:@:8}$6:@:@:@:]@:@:8}6l  :>BV| H d9 ls_fullfilels_filenamels_pathli_posli_strlend   (/p is_filename&.&\is_file_m_name**M.TXDAT*FTis_file_r_nameJ+R.TXTis_file_b_namej,B.TXT**J+j,ii_sum_m_file<(**ii_sum_r_file'J+ii_sum_b_file)j,  < \ |          .$6A@A8d ps_message   ii_sum_b_file) 1},DAT*H1}D1}\1},1,d$4Nhd ::message@l( ii_log_file%ii_sum_m_file(ii_sum_r_file4'ii_sum_b_fileL) , D \ d *0*8H*Pd*l|$$$$DAT* |,BXd h cb_newf!sle_log_file " cb_view@#@gb_log_fileX$Xcontroltc@! "@#X$ 0 8H Pd l|     >$($8$L$*d T cb_newf!sle_log_fileog_"DAT*l _initsrcu_dddwu_ref_code_table_dddwborderstyledwobjectdatawindowchildpowerobjectmessagetransactionqa@k@l@K.@@a:a@@C@@Sle@file__f@r_nag _b@ y- '18(800L8T0t8DAT* @  @ @ DAT*Pg@6*b?lA g@t g@aX@X@a*c@c@q7@@aC@@qL^@^@acp@plypn@n@"p@Aqg@pg@` g@`g@pq@q@a)v@v@ u_cc_streamu_cc_baseuserobjectswindowobjectborderstyledwobjectpowerobjectd_activityw_ccheck_parameters  W  \datawindowd_streams_cc_2w_DAT*Zmdi_mainu_cc_processu_log_fileu_cc_sourceu_cc_devicetransactionsqlcaSELECT rap_metric_maps.unit_code , rap_metric_maps.maximum_amt , rap_metric_maps.minimum_amt FROM rap_metric_maps WHERE ( rap_metric_maps.code =' ' ) AND ( rap_metric_maps.source_type =' ' ) AND ( rap_metric_maps.source_code =' ' ) AND ( rap_metric_maps.value_type =' ' ) AND ( rap_metric_maps.device_code =' ' ) AND ( rap_metric_maps.process_code =' ' ) AND ( rap_metric_maps.stream_code =' ' ) AND ( rap_metric_maps.material_DAT*Tforward global type u_cc_geo from u_cc_base end type type dw_counties from datawindow within u_cc_geo end type type dw_sources from datawindow within u_cc_geo end type type dw_states from datawindow within u_cc_geo end type end forward global type u_cc_geo from u_cc_base dw_counties dw_counties dw_sources dw_sources dw_states dw_states end type global u_cc_geo u_cc_geo on u_cc_geo.create int iCurrent call u_cc_base::create this.dw_counties=create dw_counties this.dw_sourcesDAT*V=create dw_sources this.dw_states=create dw_states iCurrent=UpperBound(this.Control) this.Control[iCurrent+1]=dw_counties this.Control[iCurrent+2]=dw_sources this.Control[iCurrent+3]=dw_states end on on u_cc_geo.destroy call u_cc_base::destroy destroy(this.dw_counties) destroy(this.dw_sources) destroy(this.dw_states) end on type dw_counties from datawindow within u_cc_geo int X=567 int Y=485 int Width=284 int Height=361 int TabOrder=30 boolean BringToTop=true string DataObjDAT*Xect="d_county_select" boolean LiveScroll=true end type on constructor;this.setTransobject(sqlca) end on type dw_sources from datawindow within u_cc_geo int X=965 int Y=485 int Width=284 int Height=361 int TabOrder=50 boolean BringToTop=true string DataObject="d_source_select" boolean LiveScroll=true end type on constructor;this.setTransobject(sqlca) end on type dw_states from datawindow within u_cc_geo int X=161 int Y=485 int Width=284 int Height=361 int TDAT*abOrder=40 boolean BringToTop=true string DataObject="d_state_names" boolean LiveScroll=true end type on constructor;this.setTransobject(sqlca) end on DAT*\code =' ' ) AND ( rap_metric_maps.minimum_amt is not NULL ) AND ( rap_metric_maps.maximum_amt is not NULL )  36]`H/lAhlA  36]`/lA)8lA  36]`x/lADAT*^talA  36]`/lA/h0lA  36]`/lAlA  36]`@/lAR5`DAT*lASELECT rap_units_a.conversion_factor_amt , rap_units_b.conversion_factor_amt FROM rap_units rap_units_a , rap_units rap_units_b , rap_metrics WHERE ( rap_units_a.code =' ' ) and ( rap_metrics.meas_code =rap_units_a.meas_code ) and ( rap_metrics.meas_code =rap_units_b.meas_code ) and ( rap_metrics.code =' ' ) and ( rap_units_b.code =' ' ) s03NQ.lAt<lAmessagexDAT* h x      4$$$6)48d ps_msg < iw_parent#uo_log-f_write1, $ 4  +$#8$z%6)8806)89})811 $8 )<8DAT*V9. +!z% y% y% y%N# $)$8,8,0)\8t$8|0)8$1%$1%$R$)8$)8$1%DAT*fg@8*b?mA"g@g@g@-X@X@9c@c@F@@R`@`@\j@j@jk@k@vl@l@m@m@A@@@@a@@a@@^@^@@@ @@@@#@@A.@@v@v@datd@d@ u_stringency_level_selectuserobjectuserobjectswindowobjectborderstylestructuremailrecipientenvironmentmailfiledescriptionmailmessagedatawindowchildlistviewitemtDAT*hreeviewitemconnectioninfopowerobject pcheckboxfontcharsetfontpitchfontfamilygroupbox ̽ LNoticeMS Sans SerifAlertWarningStringency Levelmessagedragobject8`2" u_stringency_level_select / +constructor+create+destroy+clicked LQ xP _initsrcuserobjectu_stDAT*jringency_level_selectuserobjectswindowobjectborderstylestructuremailrecipientenvironmentmailfiledescriptionmailmessagedatawindowchildlistviewitemtreeviewitemconnectioninfopowerobjectcheckboxcbx_noticefontcharsetfontpitchfontfamilycbx_alertcbx_warninggroupboxgb_1messagedragobject ivunithr@put_pdtivi6t_@s_obBt_@ertO@[le@filee_f@r_nas_b@eDAT*l@ @ @ @ser_ le@ckg co@s_mada@segss@gs_r_tgb_g@vgss_@ile@ 81#/@;88=s_@g!E@ 1& &!DAT*n---%N1},41B,$d ::message@$ ii_severity%  *0*8L*Td*l|$$$$ DAT*p|,BXd h cbx_notice!cbx_alert$"$cbx_warning@#@gb_1\$\controltc@!$"@#\$ 0 8L Td l|     >$($<$L$*d T cbx_notice!cbx_alertx_"cbx_waDAT*rrning0#gb_1ngD$ ( < L "L"2 & +constructor+create+destroy</2 Q widthheightbackcolorcbx_noticecbx_alertcbx_warninggb_1ii_severity od * 4 @ _nE] oDAT*t @@`1    @      "L  x$9R$$,9}@1}lHDAT*1},1,P$4N Rld ::message@X0 checkedcbx_alert"ii_severity4%4% $ , @ H P ""2  +clicked2 l xywidthheighttextborderstyletextcolorbackcolortextsizeweightfacenamefontfamilyfontpitch\DAT*xforward global type u_cc_process from u_cc_base end type type dw_streams from datawindow within u_cc_process end type type dw_schedules from datawindow within u_cc_process end type end forward global type u_cc_process from u_cc_base dw_streams dw_streams dw_schedules dw_schedules end type global u_cc_process u_cc_process type variables LONG il_emisFact[2] // Hold Emis Factors data STRING is_emisFact[4] // Hold Emis Factors data end variables forward prototypes public subrouDAT*ztine f_run (w_ccheck_parameters pw_parent, long pl_rid, datawindow pdw_checks) public subroutine f_logemissiondata (string ps_errmsg, string ps_checkid) end prototypes public subroutine f_run (w_ccheck_parameters pw_parent, long pl_rid, datawindow pdw_checks);// FUNCTION f_run(window pw_parent, long pl_rid, pdw_checks) // Run consistency checks on process and its streams // // Arguments: // pw_parent - Value of calling window // pl_rid - RID of process to process // pdw_checks - DW DAT*|of ConCheck records // // Returns: None // //Declare Locals LONG ll_rows, ll_activityRows LONG ll_dw_strm_row, ll_dw_strm_count, ll_sched_count STRING ls_log_line STRING ls_fields[15] ll_rows = dw_1.Retrieve(pl_rid) // Retrieve Process Activities w_mdi_main.setMicrohelp("Retrieving Process Activities...") ll_activityRows = dw_activities.retrieve(pl_rid, "PRO") pw_parent.process[4].rec_count = pw_parent.process[4].rec_count + ll_activityRows //Check for streams for this procesDAT*~s dw_streams.retrieve(pl_rid) //Check for process_specific_schedules ll_sched_count = dw_schedules.retrieve(pl_rid) pw_parent.process[2].rec_count = pw_parent.process[2].rec_count + ll_activityRows // Perform retrieve for Emissions Factor Data SELECT rap_emission_factors.amt, rap_emission_factors.exponent_amt, rap_emission_factors.unit_code, rap_emission_factors.emittant_material_code, rap_emission_factors.throughput_unit_code, rap_emission_factors.throDAT*ughput_material_code INTO :il_emisFact[1], :il_emisFact[2], :is_emisFact[1], :is_emisFact[2], :is_emisFact[3], :is_emisFact[4] FROM rap_emission_factors WHERE rap_emission_factors.process_rid = :pl_rid ; IF sqlca.sqlCode = 0 THEN pw_parent.process[3].rec_count = pw_parent.process[3].rec_count + 1 ELSE SetNull(il_emisFact[1]) SetNull(il_emisFact[2]) SetNull(is_emisFact[1]) SetNull(is_emisFact[2]) SetNull(is_emisFaDAT*ct[3]) SetNull(is_emisFact[4]) END IF // Set microhelp line w_mdi_main.setMicrohelp("Checking Process: " + string(pl_rid) + "...") // Write Source Header info pw_parent.uo_log.f_write("Process") pw_parent.uo_log.f_write("=============================================================================") ls_fields[1] = dw_1.getItemString(1,"id") ls_fields[2] = dw_1.getItemString(1,"code") ls_fields[3] = dw_1.getItemString(1,"name") ls_fields[4] = dw_1.getItemString(1,"operator_DAT*id") ls_fields[5] = dw_1.getItemString(1,"operator_code") ls_fields[6] = dw_1.getItemString(1,"operator_name") ls_fields[7] = dw_1.getItemString(1,"group_flag") ls_fields[8] = dw_1.getItemString(1,"group_type") ls_fields[9] = dw_1.getItemString(1,"mode_type") ls_fields[10] = dw_1.getItemString(1,"primary_material_code") ls_fields[11] = dw_1.getItemString(1,"daily_schedule_code") ls_fields[12] = dw_1.getItemString(1,"weekly_schedule_code") ls_fields[13] = "" // dw_1.getItemString(1,"yearlDAT*y_schedule_code") ls_fields[14] = dw_1.getItemString(1,"scc_ams_code") ls_fields[15] = dw_1.getItemString(1,"comment_text") IF IsNull(ls_fields[1]) THEN ls_fields[1] = "" IF IsNull(ls_fields[2]) THEN ls_fields[2] = "" IF IsNull(ls_fields[3]) THEN ls_fields[3] = "" IF IsNull(ls_fields[4]) THEN ls_fields[4] = "" IF IsNull(ls_fields[5]) THEN ls_fields[5] = "" IF IsNull(ls_fields[6]) THEN ls_fields[6] = "" IF IsNull(ls_fields[7]) THEN ls_fields[7] = "" IF IsNull(ls_fields[8]) THEN ls_fieldDAT*s[8] = "" IF IsNull(ls_fields[9]) THEN ls_fields[9] = "" IF IsNull(ls_fields[10]) THEN ls_fields[10] = "" IF IsNull(ls_fields[11]) THEN ls_fields[11] = "" IF IsNull(ls_fields[12]) THEN ls_fields[12] = "" IF IsNull(ls_fields[13]) THEN ls_fields[13] = "" IF IsNull(ls_fields[14]) THEN ls_fields[14] = "" IF IsNull(ls_fields[15]) THEN ls_fields[15] = "" ls_log_line = "Agency Process Id: " + ls_fields[1] + " " + & "Code: " + ls_fields[2] + " " + & "Name: " + ls_fields[3] pwDAT*_parent.uo_log.f_write(ls_log_line) ls_log_line = "Operator Process Id: " + ls_fields[4] + " " + & "Code: " + ls_fields[5] + " " + & "Name: " + ls_fields[6] pw_parent.uo_log.f_write(ls_log_line) ls_log_line = "Group Flag: " + ls_fields[7] + " " + & "Group Type: " + ls_fields[8] + " " + & "Mode: " + ls_fields[9] + " " + & "Primary Material Code: " + ls_fields[10] pw_parent.uo_log.f_write(ls_log_line) ls_log_line = "Daily Schedule Code: " + ls_DAT*fields[11] + " " + & "Weekly Schedule Code: " + ls_fields[12] + " " + & "Yearly Schedule Code: " + ls_fields[13] + " " + & "SCC/AMS Code: " + ls_fields[14] pw_parent.uo_log.f_write(ls_log_line) ls_log_line = "Comments: " + ls_fields[15] pw_parent.uo_log.f_write(ls_log_line) pw_parent.uo_log.f_write("") //Begin Process Checks Long ll_loopCount, ll_checkCount, ll_filterCount, ll_workvar, ll_workLoop, ll_workVar2 String ls_checkId, ls_errmsg String ls_workvarDAT*, ls_workvar1, ls_workvar2, ls_workvar3, ls_workVar4, ls_workVar5 ll_loopCount = 1 ll_checkCount = pdw_checks.rowCount() DO UNTIL ll_loopCount > ll_checkCount YIELD() ls_checkId = pdw_checks.getItemString(ll_loopCount,"id") ls_errMsg = pdw_checks.getItemString(ll_loopCount,"error_message") CHOOSE CASE ls_checkId CASE "PRO001" IF ls_fields[2] = "@" THEN log_err(ls_errMsg, ls_checkId) END IF CASE "PRO002" IF left(ls_fields[2],3) = "PPR" THEN log_errDAT*(ls_errMsg, ls_checkId) END IF CASE "PRO003" IF ls_fields[2] = "PR-00" THEN log_err(ls_errMsg, ls_checkId) END IF CASE "PRO004" SELECT rap_scc_ams_codes.desc_1 INTO :ls_workVar2 FROM rap_scc_ams_codes WHERE rap_scc_ams_codes.code = :ls_fields[14] ; IF left(ls_workVar2,3) = "BAD" THEN log_err(ls_errMsg, ls_checkId) END IF CASE "PRO005" IF ls_fields[14] = "99999999" THEN log_err(ls_errMsg, ls_checkId) END IF DAT*CASE "PRO101" dw_schedules.setfilter("begin_month_no = '1' OR begin_month_no = '4' OR " + & "begin_month_no = '7' OR begin_month_no = '10'") dw_schedules.filter() ll_filterCount = dw_schedules.rowCount() IF ll_filterCount > 0 THEN ll_workVar = 0 FOR ll_workLoop = 1 to ll_filterCount ll_workVar = ll_workVar + dw_schedules.getItemNumber(ll_workLoop,"relative_activity_amt") NEXT IF ll_workVar <> 100 THEN log_err(ls_errMsg, ls_checkDAT*Id) END IF END IF CASE "PRO201" IF il_emisFact[1] = 0 THEN f_logEmissionData(ls_errMsg, ls_checkId) END IF CASE "PRO202" ls_workvar2 = iw_parent.f_get_units_name(is_emisFact[3]) IF left(ls_workvar2,3) = "BAD" THEN f_logEmissionData(ls_errMsg, ls_checkId) END IF CASE "PRO203" ls_workvar2 = iw_parent.f_get_materials_name(is_emisFact[2]) IF left(ls_workvar2,3) = "BAD" THEN f_logEmissionData(ls_errMsg, ls_checkId) END IF DAT* CASE "PRO204" ls_workvar2 = iw_parent.f_get_materials_name(is_emisFact[4]) IF left(ls_workvar2,3) = "BAD" THEN f_logEmissionData(ls_errMsg, ls_checkId) END IF CASE "PRO501" dw_activities.setfilter("metric_code = 'H/D USE RATE'") dw_activities.filter() ll_filterCount = dw_activities.rowCount() FOR ll_workLoop = 1 to ll_filterCount ll_workvar = long(dw_activities.getItemString(ll_workLoop,"value")) IF ll_workvar < 0 OR ll_workvar > 24 THEN DAT* write_activity_data(ll_workLoop, il_level_type, ls_errMsg, ls_checkId) END IF ll_workLoop = ll_workLoop + 1 NEXT dw_activities.setfilter("") dw_activities.filter() CASE "PRO502" dw_activities.setfilter("metric_code = 'D/W USE RATE'") dw_activities.filter() ll_filterCount = dw_activities.rowCount() FOR ll_workLoop = 1 to ll_filterCount ll_workvar = long(dw_activities.getItemString(ll_workLoop,"value")) IF ll_workvar < 0 OR ll_workvar >DAT* 7 THEN write_activity_data(ll_workLoop, il_level_type, ls_errMsg, ls_checkId) END IF ll_workLoop = ll_workLoop + 1 NEXT dw_activities.setfilter("") dw_activities.filter() CASE "PRO503" dw_activities.setfilter("metric_code = 'W/Q USE RATE'") dw_activities.filter() ll_filterCount = dw_activities.rowCount() FOR ll_workLoop = 1 to ll_filterCount ll_workvar = long(dw_activities.getItemString(ll_workLoop,"value")) IF ll_workvar < 0 ORDAT* ll_workvar > 13 THEN write_activity_data(ll_workLoop, il_level_type, ls_errMsg, ls_checkId) END IF ll_workLoop = ll_workLoop + 1 NEXT dw_activities.setfilter("") dw_activities.filter() CASE "PRO504" FOR ll_workLoop = 1 to ll_activityRows ls_workvar = dw_activities.getItemString(ll_workLoop,"value_unit_code") ls_workvar2 = iw_parent.f_get_units_name(ls_workvar) IF left(ls_workvar2,3) = "BAD" THEN write_activity_data(ll_workLoop, il_DAT*level_type, ls_errMsg, ls_checkId) END IF ll_workLoop = ll_workLoop + 1 NEXT CASE "PRO505" FOR ll_workLoop = 1 to ll_activityRows ls_workvar = dw_activities.getItemString(ll_workLoop,"material_code") ls_workvar2 = iw_parent.f_get_materials_name(ls_workvar) IF left(ls_workvar2,3) = "BAD" THEN write_activity_data(ll_workLoop, il_level_type, ls_errMsg, ls_checkId) END IF ll_workLoop = ll_workLoop + 1 NEXT CASE "PRO506" FOR ll_wDAT*orkLoop = 1 to ll_activityRows ls_workvar = dw_activities.getItemString(ll_workLoop,"metric_code") ls_workvar2 = iw_parent.f_get_metrics_name(ls_workvar) IF left(ls_workvar2,3) = "BAD" THEN write_activity_data(ll_workLoop, il_level_type, ls_errMsg, ls_checkId) END IF ll_workLoop = ll_workLoop + 1 NEXT CASE "PRO507" FOR ll_workLoop = 1 to ll_activityRows IF date(dw_activities.getItemDateTime(ll_workLoop,"start_date_time")) > today() THEN DAT* write_activity_data(ll_workLoop, il_level_type, ls_errMsg, ls_checkId) END IF ll_workLoop = ll_workLoop + 1 NEXT CASE "PRO508" FOR ll_workLoop = 1 to ll_activityRows IF date(dw_activities.getItemDateTime(ll_workLoop,"end_date_time")) > today() THEN write_activity_data(ll_workLoop, il_level_type, ls_errMsg, ls_checkId) END IF ll_workLoop = ll_workLoop + 1 NEXT CASE "PRO509" // rap_metric maps DECIMAL ldec_min_amt, ldec_max_amt, &DAT* ldec_default_unit_factor, ldec_user_unit_factor, ldec_act_value STRING ls_actValue, ls_deviceCode, ls_processCode ll_activityRows = dw_activities.rowCount() FOR ll_workLoop = 1 to ll_activityRows SetNull(ldec_min_amt) SetNull(ldec_max_amt) ls_workVar = dw_activities.getItemString(ll_workLoop,"metric_code") ls_workVar4 = dw_activities.getItemString(ll_workLoop,"value_type") ls_actValue = dw_activities.getItemString(ll_workLoop,"value") ls_workDAT*Var2 = "@" IF isValid(iw_parent.iu_cc_source) THEN ls_workVar3 = iw_parent.iu_cc_source.dw_1.getItemString(1,"type") // from sources ELSE ls_workVar3 = iw_parent.iu_cc_device.is_sourceType END IF ls_deviceCode = iw_parent.iu_cc_device.dw_1.getItemString(1,"code") // from dw_1 (devices) ls_processCode = "GENERIC" SELECT rap_metric_maps.unit_code, rap_metric_maps.maximum_amt, rap_metric_maps.minimum_amt INDAT*TO :ls_workVar5, :ldec_max_amt, :ldec_min_amt FROM rap_metric_maps WHERE ( rap_metric_maps.code = :ls_workVar ) AND ( rap_metric_maps.source_type = :ls_workVar3 ) AND ( rap_metric_maps.source_code = :ls_workVar2 ) AND ( rap_metric_maps.value_type = :ls_workVar4 ) AND ( rap_metric_maps.device_code = :ls_deviceCode ) AND ( rap_metric_maps.process_code = :ls_processCodeDAT* ) AND ( rap_metric_maps.minimum_amt is not NULL ) AND ( rap_metric_maps.maximum_amt is not NULL ) USING SQLCA ; // See if we found a record, if not try with device code = "@" IF SQLCA.SQLCode = 100 THEN ls_deviceCode = "@" SELECT rap_metric_maps.unit_code, rap_metric_maps.maximum_amt, rap_metric_maps.minimum_amt INTO :ls_workVar5, :ldec_max_amt, :lDAT*dec_min_amt FROM rap_metric_maps WHERE ( rap_metric_maps.code = :ls_workVar ) AND ( rap_metric_maps.source_type = :ls_workVar3 ) AND ( rap_metric_maps.source_code = :ls_workVar2 ) AND ( rap_metric_maps.value_type = :ls_workVar4 ) AND ( rap_metric_maps.device_code = :ls_deviceCode ) AND ( rap_metric_maps.process_code = :ls_processCode ) AND ( rap_metric_maps.minimum_amt is not DAT*NULL) AND ( rap_metric_maps.maximum_amt is not NULL) USING SQLCA ; END IF IF SQLCA.SQLCode = 0 THEN ls_workVar = dw_activities.getItemString(ll_workLoop,"value_unit_code") // Check to see if the unit conversion is needed IF ls_workvar5 <> ls_workVar THEN // Get unit conversion factor SELECT rap_units_a.conversion_factor_amt, rap_units_b.conversion_factor_amt INTO :ldec_default_unit_factor, :ldec_useDAT*r_unit_factor FROM rap_units rap_units_a, rap_units rap_units_b, rap_metrics WHERE ( rap_units_a.code = :ls_workvar5 ) and ( rap_metrics.meas_code = rap_units_a.meas_code ) and ( rap_metrics.meas_code = rap_units_b.meas_code ) and ( rap_metrics.code = :ls_workVar5 ) and ( rap_units_b.code = :ls_workvar ); // ls_workvar needs checked ldec_max_amt = ldec_max_amt * ldec_default_unit_factor / ldec_user_DAT*unit_factor ldec_min_amt = ldec_min_amt * ldec_default_unit_factor / ldec_user_unit_factor END IF END IF // Check to see if the value is within the valid range ldec_act_value = Dec(ls_actvalue) IF NOT (IsNull(ldec_max_amt) or IsNull(ldec_min_amt)) THEN IF (ldec_act_value < ldec_min_amt) OR (ldec_act_value > ldec_max_amt) THEN ls_errMsg = ls_errMsg + '~r~n~tValue must be between ' + & String(ldec_min_amt) + ' and ' + String(ldec_max_amt) DAT* write_activity_data(ll_workLoop, il_level_type, ls_errMsg, ls_checkId) END IF END IF ll_workLoop = ll_workLoop + 1 NEXT END CHOOSE ll_loopCount = ll_loopCount + 1 IF check_cancel() THEN EXIT END IF LOOP pw_parent.uo_log.f_write("") // Process each stream RID // Get # of streams for Loop ll_dw_strm_count = dw_streams.rowCount() // Perform stream Processing (if streams were found) FOR ll_dw_strm_row = 1 to ll_dw_strm_count IF DAT*check_cancel() THEN EXIT END IF pw_parent.f_run_stream(dw_streams.getItemNumber(ll_dw_strm_row,"rid")) NEXT end subroutine public subroutine f_logemissiondata (string ps_errmsg, string ps_checkid);// Declare Locals STRING ls_logLine STRING ls_gutterSpace = " " // used to seperate data in cloumns IF NOT ib_WroteActHeader THEN ls_logLine = "Factor Data Value Exponent Units Material" log_write(ls_logLine) ls_logLine = "---------------DAT*-- --------- ------------ --------- --------------------" log_write(ls_logLine) ib_WroteActHeader = True END IF log_err(ps_errMsg, ps_checkId) // Write line 1 of emission factor data ls_logLine = " " + string(il_emisFact[1]) + & ls_gutterSpace + string(il_emisFact[2]) + & ls_gutterSpace + string(is_emisFact[1]) + & ls_gutterSpace + string(is_emisFact[2]) log_write(ls_logLine) // Write line 2 of emission factor data ls_DAT*logLine = " " + & string(is_emisFact[3]) + ls_gutterSpace + & string(is_emisFact[4]) log_write(ls_logLine) iw_parent.ib_errorProcess = True end subroutine on constructor;call u_cc_base::constructor;il_level_type = "Process" end on on u_cc_process.create int iCurrent call u_cc_base::create this.dw_streams=create dw_streams this.dw_schedules=create dw_schedules iCurrent=UpperBound(this.Control) this.Control[iCurrent+1]=dw_sDAT*treams this.Control[iCurrent+2]=dw_schedules end on on u_cc_process.destroy call u_cc_base::destroy destroy(this.dw_streams) destroy(this.dw_schedules) end on type dw_1 from u_cc_base`dw_1 within u_cc_process string DataObject="d_process_cc" end type type dw_streams from datawindow within u_cc_process int X=151 int Y=461 int Width=494 int Height=361 int TabOrder=30 boolean BringToTop=true string DataObject="d_streams_cc" boolean LiveScroll=true end type on constructor;DAT*?this.setTransObject(sqlca) end on type dw_schedules from datawindow within u_cc_process int X=737 int Y=461 int Width=494 int Height=361 int TabOrder=40 boolean BringToTop=true string DataObject="d_process_schedules" boolean LiveScroll=true end type on constructor;this.setTransObject(sqlca) end on DAT* I %I@*4>GNWb] o\I%I  @@&DAT*"$$$9>,$49}<$9rP1}X1},1,`$ >Tn r d ::message@h@ cbx_notice!checked!ii_severityD%D% $ , 4 < P X ` "DAT*g@8*b?mAg@g@g@(X@X@4c@c@A@@M`@`@Wj@j@ek@k@ql@l@m@m@@@@@@@@@^@^@@@ @@@@@@*@@4S@S@=8@8@@@p@@@@v@v@ d@d@P u_time_period_selectuserobjectuserobjectswindowobjectborderstylestructuremailrecipientenvironmentmailfilDAT*edescriptionmailmessagedatawindowchildlistviewitemtreeviewitemconnectioninfopowerobject o  editmaskfontcharsetfontpitchfontfamilyalignmenttextcasemaskdatatypeȐϐstatictextfillpatterngroupbox Umm/dd/yy~MS Sans Serif2??01/01/90~01/01/99HRDAT*~??(either or both are optional)ArialTo Date:From Date:Time PeriodmessagedragobjectLt(0Lx2 u_time_period_select  0 +constructor+create+destroy+modified LQ x _initsrcuserobjectu_time_period_selectuserobjectswindowobjectborderstylestructuremailrecipientenvironmentmailfiledescriptionmailmessDAT*agedatawindowchildlistviewitemtreeviewitemconnectioninfopowerobjecteditmaskem_todatefontcharsetfontpitchfontfamilyalignmenttextcasemaskdatatypeem_fromstatictextst_3fillpatternst_2st_1groupboxgb_1messagedragobject@ 1@=@J@V@`@n@z@ @ @@ @DAT* @0 @0@8`@j8@0@@@@@&@;38;@!FK@W!\a<@jido@MEw@ DAT*1& '!G900G900. . . %|$ 8(04$<8(0,b1p,D$$Hd ::message@ LDAT*( em_from"textem_todate)!  4 < D *,*4D*L\*dt*|*$$$$$$ |,BXnd em_todate!em_from$"$st_3<#<DAT*st_2T$Tst_1l%lgb_1&controlc@!$"<#T$l%& , 4D L\ dt |        Z$$$4$D$T$d$*8Fd l0 em_todate!em_from"st_3,#DAT*st_2<$st_1L%gb_1\& $ 4 D T d "L"2 & +constructor+create+destroy<2 E widthheightbackcolorem_todateem_fromst_3st_2st_1gb_1^@^@  ) ^@1 6 ^@; @ DAT*] o @@1    @        "L  x$6@8DAT* $($6@88008@8Wz%@8)8,1,$Xd ::message@ ( textem_from"Action RequiredThe 'TO' date must be greater than or equal to em_fromdatesetfocus1~  (   f3@3$(@(8,DAT*L1Z,$2d ::message@  text  $,L$,2  +modified+constructor(2 xywidthheighttaborderalignmentborderstylemaskmaskdatatypespinincrementminmaxtextcolortextsizeweightfacenamefontfamilyfontpitchh I DAT*e",8=JO0Y`jsz] oIe E @@ @DAT*1@ (&,$L$6@8$$,$6@88408D8]z%@8)8,1,$DAT*Xd ::message@ ( textem_todate!Action RequiredThe 'FROM' date must be less than or equal to em_todatesetfocus $ ,   f3@3$(@(8,L1Z,$2d ::message@  text  $,DAT*L$,2  +modified+constructor(2 xywidthheighttaborderalignmentborderstylemaskmaskdatatypespinincrementminmaxtextcolortextsizeweightfacenamefontfamilyfontpitchh\ I e ",8=JOY8DAT*p@8*b?mA3p@p@p@#@@(\@\@3[@[@?c@c@LU@U@]`@`@gj@j@uk@k@l@l@am@m@@@@@@@@@^@^@@@@@A*@@4@@?g@@JX@X@V@@An@n@@@Ag@g@@$@@/@@A9@@En@rg@`z`@`ace g@` g@Pg@ g@ g@DAT* g@q@q@L"p@MD Kv@v@KrNSd@d@^p@ ^Pn  w_ccheck_parameterswindowmenuwindowtypewindowstatewindowobjecttoolbaralignmentstructuremailrecipientenvironmentmailfiledescriptionmailmessagedatawindowchildlistviewitemtreeviewitemconnectioninfopowerobject commandbuttonfontcharsetfontpitchfontfamilyu_log_fileuserobjectsborderstyleDAT* ޷datawindowdwobjectu_time_period_select u_stringency_level_select @-statictextalignmentfillpatternu_ref_code_table_dddwd_ref_codes_table_dddwu_levelstr_level P%Consistency QA Checkerw 8T u_cc_geou_cc_sourceu_cc_deviceu_cc_processu_cc_stream mA4mASELECT rap_materials.name FROM rap_materials WHERE rap_materials.code =' ' GJpmAmASELECT rap_metrics.nDAT*ame FROM rap_metrics WHERE rap_metrics.code =' ' AD$z4mA1mAw_mdi_main4,*SELECT rap_materials.code FROM rap_materials WHERE substr ( rap_materials.name , 1 , 3 ) ='BAD' mat_curk mAmASELECT COUNT ( *) FROM rap_activities WHERE rap_activities.material_code =' ' JMDAT*8 mAt < mADELETE FROM rap_materials WHERE rap_materials.code =' ' 47 mA( mA,*SELECT rap_units.code FROM rap_units WHERE substr ( rap_units.name , 1 , 3 ) ='BAD' unit_cur n d mA- DAT*mASELECT COUNT ( *) FROM rap_activities WHERE rap_activities.value_unit_code =' ' LO @ mA mAupdate rap_units SET standard_code ='TON' WHERE rap_units.code =' ' @C$R mADELETE FROM rap_units WHERE rap_units.code =' ' ,/ mA,*SELECT rap_scc_ams_codes.code FRDAT*OM rap_scc_ams_codes WHERE substr ( rap_scc_ams_codes.desc_1 , 1 , 3 ) ='BAD' scc_curzy mAz mASELECT COUNT ( *) FROM rap_processes WHERE rap_processes.scc_ams_code =' ' GJD mA<HmADELETE FROM rap_scc_ams_codes WHERE rap_scc_ams_codes.code =' ' <?DAT*mA<mA,*SELECT rap_sic_codes.code FROM rap_sic_codes WHERE substr ( rap_sic_codes.name , 1 , 3 ) ='BAD' sic_curxmA$mASELECT COUNT ( *) FROM rap_sources WHERE rap_sources.sic_code =' ' ?B`mAmDAT*ASELECT COUNT ( *) FROM rap_activities WHERE rap_activities.metric_code ='SIC CODE' AND rap_activities.value =' ' mpmA mADELETE FROM rap_sic_codes WHERE rap_sic_codes.code =' ' 47BmAmA,*SELECT rap_regulations.rid , rap_regulations.citation FROM rap_regulatDAT*ions WHERE substr ( rap_regulations.title , 1 , 3 ) ='BAD' reg_curHmAmASELECT COUNT ( *) FROM rap_document_lookups WHERE rap_document_lookups.ref_rid =0 PQmATmADELETE FROM rap_regulations WHERE rap_regulations.rid =0 78mDAT*AmAge_envmessagedragobjectw_concheck_viewd(PxT|@D |   4 8    z    t   8 < t x   ( , d j     DAT*   R X        DH    < @ x ~ $ (       BH    P    T X     2 w_ccheck_parameters % as_filenameDAT*f_open_filef_writelogheaderpl_source_ridf_run_sourcepl_device_ridf_run_devicef_run_geopl_process_ridf_run_processpl_stream_ridf_run_streamps_codef_get_sic_namef_get_units_namef_get_materials_namef_get_metrics_namef_rpt_rcd_typeps_stringpl_widthf_rightjustifystringpl_numf_rightjustifylongf_rpt_msg_typeps_msgtypef_logmessagesf_leftjustifyf_rpt_badrefvalues+open+create+destroy+clicked+constructorh ISQcol1QL_LqDAT*SRSSSL0SLLYQSeL,8DP`lx x _initsrcwindoww_ccheck_parametersmenuwindowtypewindowstatewindowobjecttoolbaralignmentstructuremailrecipientenvironmentmailfiledescriptionmailmessagedatawindowchildlistviewitemtreeviewitemconnectiDAT*oninfopowerobjectcommandbuttoncb_cancelfontcharsetfontpitchfontfamilycb_viewdwcb_rulesu_log_fileuo_loguserobjectsborderstyleu_log_file`cb_newu_log_file`sle_log_fileu_log_file`cb_viewu_log_file`gb_log_filedatawindowdw_concheckdwobjectcb_exitcb_runu_time_period_selectuo_timeu_time_period_select`em_todateu_time_period_select`em_fromu_time_period_select`st_3u_time_period_select`st_2u_time_period_select`st_1u_time_period_select`gb_1u_stringency_level_selectuo_s_levelu_stDAT*ringency_level_select`cbx_noticeu_stringency_level_select`cbx_alertu_stringency_level_select`cbx_warningu_stringency_level_select`gb_1statictextst_1alignmentfillpatternu_ref_code_table_dddwdw_ref_codeu_leveluo_c_levelu_level`st_level_codeu_level`sle_levelu_level`sle_level_idu_level`sle_id_descu_level`st_id_descu_level`st_level_idu_level`cb_levelu_level`gb_levelstr_levelstr_errorsu_cc_geou_cc_sourceu_cc_deviceu_cc_processu_cc_streamu_cc_basetransactionw_mdi_mainmessageDAT*dragobjectw_concheck_viewT@,@1@<@H@U@f@p@~ @ @ @d") E=@_act ar@te_tMN@E="rie@er_i(N@"raps.@e") E=_actmm@textNA@@@(DAT* ;28;s_@g!FM@Ypp@!ew<nintwi segetwct@w_sy wash_h@  @ $A[u@ib_eDAT* H=  \@gll`@evv@@vi @<(*@ !*./" @#Q!@ity [$f#@o$@_ela{%@&DAT*@'@+de(nd@)@<+@.@0@<1@     "$%' (& )& *& +& ,& -&/DAT* 0. 1. 2. 3.59; <: =: >: ?: @: A: B: C!:Ei I*---7, -!!y%--DAT*&1& '!.1& &!4. 8y- ':3( -!     >6:@:@:@:]@:@:8d as_filename   $18)08J8DAT*80L$#\$8d0)8$880)8$83@3$(@(8z'8z&@$(@(8z(8z&z&)8$80)D8L$8T0)8$80)8$880)89}.J \ 2 X~d ls_refidDAT*  dw_ref_code49Codegetitemstring!ib_wrote_header9;uo_logT- C O N S I S T E N C Y Q C R E P O R Tf_write1T-1T-Start date/time: / Ref Id: 1T-=======================================================================1T- ERROR DETAILS1T-1T-19; 0 L \   DAT*    D L       <j,4)T8\$h$x$<<R$)89}9}9}9} $1R($1%<D$1%L$1RT$h)x8DAT*$$"$"$"$80)8$80)8$)8: Pd pl_source_rid iu_cc_source7Gu_cc_source G7GopenuserobjectwithparmF<7Gxdwidthpymoveүib_errorsourceEib_errordeviceFDAT*ib_errorprocessGib_errorstreamHil_sourcecountAAfacilityty=Erec_count f0=E07Gdw_concheck\."f_runct7pEFGH7GSOURCE ERRORf_writeactivityerror57Gf_clearactivityerror\67Gcloseuserobject4 ,4 T \ h x          ( < D L T hDAT* x           &j,4)T8\$h$x$<<R$)89}9}9}$1R $1% ($1%0$1R8$L$)\8d$l$"t$"DAT* |$80)89}$80)8$)8: <jd pl_device_rid iu_cc_device8Hu_cc_device H8HopenuserobjectwithparmF<8Hxdwidthpymoveib_errordevice@Fib_errorprocessGib_errorstreamHiDAT*"l_devicecountBBdevice>Erec_count,>E8Hdw_concheck@."f_run7TFGH8HDEVICE ERRORf_writeactivityerror5ib_errorsourceE8Hf_clearactivityerror68Hcloseuserobject4 ,4 T \ h x            ( 0 8 L \ d l t | DAT*$      t+j(0)H8P$\$l$<<Rx$)8$$$1$$$$$)8$$),81@4$<$8DJX8)p8$$)8DAT*6P$$$1$$$$$)8$$)81 $($0$8$8DJ@8;)H8P$X$)`816h$p$8DJx8)8$$)8DAT*p@9*b?mA!p@p@Tp@q@@$\@\@a/[@[@;c@c@HU@U@Y`@`@cj@j@qk@k@}l@l@m@m@@@@@@@@@^@^@ @@@@$@@.@@9@@qEn@n@PP@@qY@@`g@@&v@v@&#. 5q@q@A$Gd@d@aR w_concheck_editwindowmenuwindowtypewindowstatewindowobjectDAT**forward global type u_cc_source from u_cc_base end type type dw_devices from datawindow within u_cc_source end type type dw_location_coords from datawindow within u_cc_source end type end forward global type u_cc_source from u_cc_base dw_devices dw_devices dw_location_coords dw_location_coords end type global u_cc_source u_cc_source type variables end variables forward prototypes public subroutine f_run (w_ccheck_parameters pw_parent, ref long pl_rid, ref datawindow pdw_cheDAT*,cks) public function boolean f_check_zip_format (string ps_zip) end prototypes public subroutine f_run (w_ccheck_parameters pw_parent, ref long pl_rid, ref datawindow pdw_checks);// FUNCTION f_run(window pw_parent, long pl_rid, datawindow pdw_checks) // Run consistency checks on source and its devices/processes/streams // // Arguments: // pw_parent - Calling window, type is w_ccheck_parameters // pl_rid - RID of source to process // pdw_checks - Datawindow of rules // // ReturnsDAT*.: None // //Declare Locals INTEGER rc STRING mod_string, old_select STRING ls_log_line STRING ls_fields[15] LONG ll_dev_row, ll_dev_count, ll_act_count, ll_contact_cnt // Declare Locals for 'into' retrieval variables for related tables, // these are used in embedded SQL SELECT statements STRING ls_Name[] STRING ls_MailLine1[] STRING ls_MailZip[] STRING ls_ContactReason[] STRING ls_owner_name LONG ll_ContactRid[] LONG ll_MailCityRid[] LONG ll_MailStateRid[] LONG ll_Zone[20] DAT*0LONG ll_Easting[20] LONG ll_Northing[20] LONG ll_owner_rid // Set microhelp line w_mdi_main.setMicrohelp("Retrieving Source...") // ============================================================== // We need to add a WHERE clause to the "Source" datawindow. // This is to allow retrieval of a specific source RID. // // Save old SELECT statement of dw old_select = dw_1.getSQLSelect() // Add the WHERE clause // mod_string = old_select + " WHERE rap_sources.rid= " + & // string(pl_rDAT*2id) mod_string = "Datawindow.Table.Select='" + old_select + " WHERE rap_sources.rid= " + & string(pl_rid) + "'" // Modify dw and check for error // REJ 17MAR97 setSQLSelect rejects the new SQL statement for no good reason // IF dw_1.setSQLSelect(mod_string) = 1 THEN IF dw_1.Modify(mod_string) = "" THEN long ll_rows ll_rows = dw_1.Retrieve( ) ELSE Return END IF // ======================================================= // Retrieve Source Activities w_mdi_main.setMicDAT*4rohelp("Retrieving Source Activities...") ll_act_count = dw_activities.retrieve(pl_rid, "SRC") pw_parent.facility[5].rec_count = pw_parent.facility[5].rec_count + ll_act_count // Retrieve devices for this source to see if any exist dw_devices.retrieve(pl_rid) // Retrieve Contact file info DECLARE contact_cur CURSOR FOR SELECT rap_contacts.rid, rap_contacts.name, rap_contacts.mail_addr_line_1, rap_contacts.mail_zip_code, rap_contacts.mDAT*6ail_city_rid, rap_contacts.mail_state_rid FROM rap_contacts WHERE rap_contacts.ref_rid = :pl_rid ; CLOSE contact_cur; OPEN contact_cur; DO UNTIL SQLCA.sqlcode <> 0 FETCH contact_cur INTO :ll_ContactRid[ll_contact_cnt + 1], :ls_name[ll_contact_cnt + 1], & :ls_mailZip[ll_contact_cnt + 1], :ll_mailCityRid[ll_contact_cnt + 1], :ll_mailStateRid[ll_contact_cnt + 1]; IF SQLCA.sqlcode <> 0 THEN EXIT ll_contact_cnt ++ // Eliminate probs with NULL values IF isDAT*8null(ls_name[ll_contact_cnt]) THEN ls_name[ll_contact_cnt] = "" IF isnull(ls_mailLine1[ll_contact_cnt]) THEN ls_mailLine1[ll_contact_cnt] = "" IF isnull(ls_mailZip[ll_contact_cnt]) THEN ls_mailZip[ll_contact_cnt] = "" IF isnull(ll_mailCityRid[ll_contact_cnt]) THEN ll_mailCityRid[ll_contact_cnt] = 0 IF isnull(ll_mailStateRid[ll_contact_cnt]) THEN ll_mailStateRid[ll_contact_cnt] = 0 IF isnull(ll_ContactRid[ll_contact_cnt]) THEN ll_ContactRid[ll_contact_cnt] = 0 // Get Contact Reason DAT*:IF ll_ContactRid[ll_contact_cnt] > 0 THEN SELECT rap_contact_reasons.reason_code INTO :ls_ContactReason[ll_contact_cnt] FROM rap_contact_reasons WHERE rap_contact_reasons.contact_rid = :ll_ContactRid[ll_contact_cnt] ; IF isNull(ls_ContactReason[ll_contact_cnt]) THEN ls_ContactReason[ll_contact_cnt] = "" pw_parent.facility[2].rec_count = pw_parent.facility[2].rec_count + 1 END IF LOOP // Write Source Header info pw_parent.uo_log.f_write("Facility") pwDAT*<_parent.uo_log.f_write("===============================================================================") ls_fields[1] = dw_1.getItemString(1,"id") ls_fields[2] = dw_1.getItemString(1,"code") ls_fields[3] = dw_1.getItemString(1,"name") ls_fields[4] = dw_1.getItemString(1,"type") ls_fields[5] = dw_1.getItemString(1,"sic_code") ls_fields[6] = dw_1.getItemString(1,"group_flag") ls_fields[7] = dw_1.getItemString(1,"group_type") ls_fields[8] = string(dw_1.getItemDate(1,"begin_operation_date")DAT*>,"mm-dd-yyyy") ls_fields[9] = string(dw_1.getItemDate(1,"end_operation_date"),"mm-dd-yyyy") ls_fields[10] = dw_1.getItemString(1,"location_line_1_addr") ls_fields[11] = "" ls_fields[12] = "" ls_fields[13] = "" ls_fields[14] = dw_1.getItemString(1,"location_zip_code") ls_fields[15] = dw_1.getItemString(1,"comment_text") IF IsNull(ls_fields[1]) THEN ls_fields[1] = "" IF IsNull(ls_fields[2]) THEN ls_fields[2] = "" IF IsNull(ls_fields[3]) THEN ls_fields[3] = "" IF IsNull(ls_fields[4]) THEDAT*@N ls_fields[4] = "" IF IsNull(ls_fields[5]) THEN ls_fields[5] = "" IF IsNull(ls_fields[6]) THEN ls_fields[6] = "" IF IsNull(ls_fields[7]) THEN ls_fields[7] = "" IF IsNull(ls_fields[8]) THEN ls_fields[8] = "" IF IsNull(ls_fields[9]) THEN ls_fields[9] = "" IF IsNull(ls_fields[10]) THEN ls_fields[10] = "" IF IsNull(ls_fields[11]) THEN ls_fields[11] = "" ls_log_line = "Agency Source Id: " + ls_fields[1] + " " + & "Code: " + ls_fields[2] + " " + & "Name: " + ls_fields[3] + " " DAT*B+ & "Type: " + ls_fields[4] + " " + & "SIC Code: " + ls_fields[5] pw_parent.uo_log.f_write(ls_log_line) ls_log_line = "Group Flag: " + ls_fields[6] + " " + & "Group Type: " + ls_fields[7] + " " + & "Begin Operation Date: " + ls_fields[8] + " " + & "End Operation Date: " + ls_fields[9] pw_parent.uo_log.f_write(ls_log_line) ls_log_line = "Address: " + ls_fields[10] + " " +& "City: " + " " + & "County: " pw_parent.uo_log.f_write(lsDAT*D_log_line) ls_log_line = " " + & "State: " + & "Zip: " + ls_fields[14] pw_parent.uo_log.f_write(ls_log_line) ls_log_line = "Comments: " + ls_fields[15] pw_parent.uo_log.f_write(ls_log_line) pw_parent.uo_log.f_write("") //Begin Source Checks Long ll_srcRow, ll_checkCount, ll_workLoop, ll_activityRows, ll_workVar, ll_workVar2 String ls_checkId, ls_errmsg String ls_workvar, ls_workvar1, ls_workvar2, ls_workvar3, ls_workvar4, ls_workvar5 w_mdi_DAT*Fmain.setMicrohelp("Checking Source: " + string(pl_rid) + "...") ll_checkCount = pdw_checks.rowCount() ll_srcRow = pdw_checks.find("left(id,3) = 'SRC'", 1, ll_checkCount) ls_checkId = pdw_checks.getItemString(ll_srcRow,"id") DO UNTIL left(ls_checkId,3) <> "SRC" ls_errMsg = pdw_checks.getItemString(ll_srcRow,"error_message") CHOOSE CASE ls_checkId CASE "SRC001" IF dw_1.getItemString(1,"code") = "@" THEN log_err(ls_errMsg, ls_checkId) END IF CASE "SRC002" IFDAT*H dw_1.getItemString(1,"name") = "" THEN log_err(ls_errMsg, ls_checkId) END IF CASE "SRC003" IF pos(dw_1.getItemString(1,"comment_text"),"FACNAME") > 0 THEN log_err(ls_errMsg, ls_checkId) END IF CASE "SRC004" ls_workvar1 = dw_1.getItemString(1,"location_line_1_addr") ls_workvar2 = dw_1.getItemString(1,"location_line_2_addr") ls_workvar3 = dw_1.getItemString(1,"location_zip_code") ls_workvar = ls_workvar1 + ls_workvar2 + ls_workvar3 IF ls_workvar >DAT*J "" THEN IF ls_workvar1 = "" OR & ls_workvar2 = "" OR & ls_workvar3 = "" THEN log_err(ls_errMsg, ls_checkId) END IF END IF CASE "SRC005" ls_workvar = dw_1.getItemString(1,"location_zip_code") IF ls_workvar > "" THEN IF NOT f_check_zip_format(ls_workvar) THEN log_err(ls_errMsg, ls_checkId) END IF END IF CASE "SRC006" ls_workvar = dw_1.getItemString(1,"sic_code") SELECT name INTO :ls_workvar2 FROM rDAT*Lap_sic_codes WHERE rap_sic_codes.code = :ls_workvar ; IF left(ls_workvar2,3) = "BAD" THEN log_err(ls_errMsg, ls_checkId) END IF CASE "SRC007" ls_workvar = dw_1.getItemString(1,"sic_code") IF ls_workvar = "" OR ls_workvar = "9999" THEN log_err(ls_errMsg, ls_checkId) END IF CASE "SRC101" FOR ll_workVar = 1 TO ll_contact_cnt IF ls_name[ll_workVar] = "MISSING CONTACT FACILITY NAME" THEN log_err(ls_errMsg, ls_checkId) END IF DAT*NNEXT CASE "SRC102" FOR ll_workVar = 1 TO ll_contact_cnt IF ls_ContactReason[ll_workVar] = "PERMITS" THEN IF ls_mailLine1[ll_workVar] <> "" OR & ls_mailZip[ll_workVar] <> "" OR & ll_mailCityRid[ll_workVar] > 0 OR & ll_mailStateRid[ll_workVar] > 0 THEN IF ls_mailLine1[ll_workVar] = "" OR & ls_mailZip[ll_workVar] = "" OR & ll_mailCityRid[ll_workVar] = 0 OR & ll_mailStateRid[ll_workVar] = 0 THEN log_err(ls_errMsg, lDAT*Ps_checkId) END IF END IF END IF NEXT CASE "SRC103" FOR ll_workVar = 1 TO ll_contact_cnt IF ls_name[ll_workVar] = "MISSING OFFICIAL NAME" THEN log_err(ls_errMsg, ls_checkId) END IF NEXT CASE "SRC104" FOR ll_workVar = 1 TO ll_contact_cnt IF ls_ContactReason[ll_workVar] = "DESIG OFFICIAL" THEN IF ls_mailLine1[ll_workVar] <> "" OR & ls_mailZip[ll_workVar] <> "" OR & ll_mailCityRid[ll_workVar] > 0 OR & ll_maiDAT*RlStateRid[ll_workVar] > 0 THEN IF ls_mailLine1[ll_workVar] = "" OR & ls_mailZip[ll_workVar] = "" OR & ll_mailCityRid[ll_workVar] = 0 OR & ll_mailStateRid[ll_workVar] = 0 THEN log_err(ls_errMsg, ls_checkId) END IF END IF END IF NEXT CASE "SRC105" FOR ll_workVar = 1 TO ll_contact_cnt IF ls_mailZip[ll_workVar] > "" THEN IF NOT f_check_zip_format(ls_mailZip[ll_workVar]) THEN log_err(ls_errMsg, ls_checkId) DAT*T END IF END IF NEXT CASE "SRC201" FOR ll_workVar = 1 TO ll_contact_cnt IF ls_name[ll_workVar] = "MISSING OWNER CONTACT NAME" THEN log_err(ls_errMsg, ls_checkId) END IF NEXT CASE "SRC202" FOR ll_workVar = 1 TO ll_contact_cnt IF ls_ContactReason[ll_workVar] = "OWNER" THEN IF ls_mailLine1[ll_workVar] <> "" OR & ls_mailZip[ll_workVar] <> "" OR & ll_mailCityRid[ll_workVar] > 0 OR & ll_mailStateRid[ll_workVar] > 0 THEN IFDAT*V ls_mailLine1[ll_workVar] = "" OR & ls_mailZip[ll_workVar] = "" OR & ll_mailCityRid[ll_workVar] = 0 OR & ll_mailStateRid[ll_workVar] = 0 THEN log_err(ls_errMsg, ls_checkId) END IF END IF END IF NEXT CASE "SRC203" SELECT rap_legal_entities.name, rap_legal_entities.rid INTO :ls_owner_name, :ll_owner_rid FROM rap_legal_entities, rap_legal_entity_relations WHERE ( rap_legal_entity_relations.ref_rid = :pl_ridDAT*X ) AND ( rap_legal_entities.rid = rap_legal_entity_relations.legal_entity_rid ) AND ( rap_legal_entity_relations.code = 'OWNER' ) AND ( rap_legal_entity_relations.end_relation_date IS NULL) ; IF isNull(ls_owner_name) THEN ls_owner_name = "" pw_parent.facility[3].rec_count = pw_parent.facility[3].rec_count + 1 IF ls_owner_name = "MISSING OWNER NAME" THEN log_err(ls_errMsg, ls_checkId) END IF CASE "SRC301" SELECT rap_location_coordinate_DAT*Zgroups.rid INTO :ll_workvar FROM rap_location_coordinate_groups WHERE rap_location_coordinate_groups.ref_rid = :pl_rid ; dw_location_coords.retrieve(ll_workvar) dw_location_coords.setfilter( "sub_type = 'U'" ) dw_location_coords.filter() ll_workVar = dw_location_coords.rowCount() pw_parent.facility[4].rec_count = pw_parent.facility[4].rec_count + ll_workVar IF ll_workVar > 0 THEN FOR ll_workLoop = 1 to ll_workVar IF dw_location_cDAT*\oords.getItemNumber(ll_workVar, "zone_no") <> 15 THEN log_err(ls_errMsg, ls_checkId) END IF NEXT END IF dw_location_coords.setfilter( "" ) dw_location_coords.filter() CASE "SRC302" SELECT rap_location_coordinate_groups.rid INTO :ll_workvar FROM rap_location_coordinate_groups WHERE rap_location_coordinate_groups.ref_rid = :pl_rid ; dw_location_coords.retrieve(ll_workvar) dw_location_coords.setfilter( "sub_type = 'U'" ) dDAT*^w_location_coords.filter() ll_workVar = dw_location_coords.rowCount() IF ll_workVar > 0 THEN FOR ll_workLoop = 1 to ll_workVar ll_workVar2 = dw_location_coords.getItemNumber(ll_workVar, "easting_km_data") IF ll_workVar2 < 202.091 OR ll_workVar2 > 736.866 THEN log_err(ls_errMsg, ls_checkId) END IF NEXT END IF dw_location_coords.setfilter( "" ) dw_location_coords.filter() CASE "SRC303" SELECT rap_location_coordinate_groups.rid DAT*` INTO :ll_workvar FROM rap_location_coordinate_groups WHERE rap_location_coordinate_groups.ref_rid = :pl_rid ; dw_location_coords.retrieve(ll_workvar) dw_location_coords.setfilter( "sub_type = 'U'" ) dw_location_coords.filter() ll_workVar = dw_location_coords.rowCount() IF ll_workVar > 0 THEN FOR ll_workLoop = 1 to ll_workVar ll_workVar2 = dw_location_coords.getItemNumber(ll_workVar, "northing_km_data") IF ll_workVar2 < 4470.383 OR ll_woDAT*brkVar2 > 4822.460 THEN log_err(ls_errMsg, ls_checkId) END IF NEXT END IF dw_location_coords.setfilter( "" ) dw_location_coords.filter() CASE "SRC401" SELECT rap_activities.value, rap_activities.metric_code INTO :ls_workvar, :ls_workvar2 FROM rap_activities WHERE rap_activities.ref_rid = :ll_owner_rid AND rap_activities.metric_level_type = 'LEG'; ls_errMsg = ls_workvar2 + " " + ls_errMsg IF ls_workvar = '99999' OR ls_workvar = 'ZZZZ' TDAT*dHEN log_err(ls_errMsg, ls_checkId) END IF CASE "SRC501" dw_activities.setfilter( & "metric_code = 'SIC CODE' and value_type = '2ND'") dw_activities.filter() ll_activityRows = dw_activities.rowCount() FOR ll_workLoop = 1 to ll_activityRows ls_workvar = dw_activities.getItemString(ll_workLoop,"value") ls_workvar2 = iw_parent.f_get_sic_name(ls_workvar) IF left(ls_workvar2,3) = "BAD" THEN write_activity_data(ll_workLoop, il_level_type, ls_DAT*ferrMsg, ls_checkId) END IF ll_workLoop = ll_workLoop + 1 NEXT dw_activities.setfilter("") dw_activities.filter() CASE "SRC502" dw_activities.setfilter( & "metric_code = 'SIC CODE' and value_type = '3RD'") dw_activities.filter() ll_activityRows = dw_activities.rowCount() FOR ll_workLoop = 1 to ll_activityRows ls_workvar = dw_activities.getItemString(ll_workLoop,"value") ls_workvar2 = iw_parent.f_get_sic_name(ls_workvar) IF leDAT*hft(ls_workvar2,3) = "BAD" THEN write_activity_data(ll_workLoop, il_level_type, ls_errMsg, ls_checkId) END IF ll_workLoop = ll_workLoop + 1 NEXT dw_activities.setfilter( "") dw_activities.filter() CASE "SRC503" ll_activityRows = dw_activities.rowCount() FOR ll_workLoop = 1 to ll_activityRows ls_workvar = dw_activities.getItemString(ll_workLoop,"value_unit_code") ls_workvar2 = iw_parent.f_get_units_name(ls_workvar) IF left(ls_workvar2,3) DAT*j= "BAD" THEN write_activity_data(ll_workLoop, il_level_type, ls_errMsg, ls_checkId) END IF ll_workLoop = ll_workLoop + 1 NEXT CASE "SRC504" ll_activityRows = dw_activities.rowCount() FOR ll_workLoop = 1 to ll_activityRows ls_workvar = dw_activities.getItemString(ll_workLoop,"material_code") ls_workvar2 = iw_parent.f_get_materials_name(ls_workvar) IF left(ls_workvar2,3) = "BAD" THEN write_activity_data(ll_workLoop, il_level_type, ls_errMsDAT*lg, ls_checkId) END IF ll_workLoop = ll_workLoop + 1 NEXT CASE "SRC505" ll_activityRows = dw_activities.rowCount() FOR ll_workLoop = 1 to ll_activityRows ls_workvar = dw_activities.getItemString(ll_workLoop,"metric_code") ls_workvar2 = iw_parent.f_get_metrics_name(ls_workvar) IF left(ls_workvar2,3) = "BAD" THEN write_activity_data(ll_workLoop, il_level_type, ls_errMsg, ls_checkId) END IF ll_workLoop = ll_workLoop + 1 NEXT CADAT*nSE "SRC506" ll_activityRows = dw_activities.rowCount() FOR ll_workLoop = 1 to ll_activityRows IF date(dw_activities.getItemDateTime(ll_workLoop,"start_date_time")) > today() THEN write_activity_data(ll_workLoop, il_level_type, ls_errMsg, ls_checkId) END IF ll_workLoop = ll_workLoop + 1 NEXT CASE "SRC507" ll_activityRows = dw_activities.rowCount() FOR ll_workLoop = 1 to ll_activityRows IF date(dw_activities.getItemDateTime(ll_workLoop,"eDAT*pnd_date_time")) > today() THEN write_activity_data(ll_workLoop, il_level_type, ls_errMsg, ls_checkId) END IF ll_workLoop = ll_workLoop + 1 NEXT CASE "SRC508" DECIMAL ldec_min_amt, ldec_max_amt, & ldec_default_unit_factor, ldec_user_unit_factor, ldec_act_value STRING ls_actValue ll_activityRows = dw_activities.rowCount() FOR ll_workLoop = 1 to ll_activityRows SetNull(ldec_min_amt) SetNull(ldec_max_amt) ls_workVar = dw_activitDAT*ries.getItemString(ll_workLoop,"metric_code") ls_workVar4 = dw_activities.getItemString(ll_workLoop,"value_type") ls_actValue = dw_activities.getItemString(ll_workLoop,"value") ls_workVar2 = dw_1.getItemString(1,"code") ls_workVar3 = dw_1.getItemString(1,"type") SELECT rap_metric_maps.unit_code, rap_metric_maps.maximum_amt, rap_metric_maps.minimum_amt INTO :ls_workVar5, :ldec_max_amt, :ldec_mDAT*tin_amt FROM rap_metric_maps WHERE ( rap_metric_maps.code = :ls_workVar ) AND ( rap_metric_maps.source_type = :ls_workVar3 ) AND ( rap_metric_maps.source_code = :ls_workVar2 ) AND ( rap_metric_maps.value_type = :ls_workVar4 ) AND ( rap_metric_maps.minimum_amt is not NULL) AND ( rap_metric_maps.maximum_amt is not NULL) USING SQLCA ; // See if we found a record, if not try with source codeDAT*v = "generic" IF SQLCA.SQLCode = 100 THEN ls_workVar2 = "GENERIC" SELECT rap_metric_maps.unit_code, rap_metric_maps.maximum_amt, rap_metric_maps.minimum_amt INTO :ls_workVar5, :ldec_max_amt, :ldec_min_amt FROM rap_metric_maps WHERE ( rap_metric_maps.code = :ls_workVar ) AND ( rap_metric_maps.source_type = :ls_workVar3 ) AND ( rap_metric_mapsDAT*x.source_code = :ls_workVar2 ) AND ( rap_metric_maps.value_type = :ls_workVar4 ) AND ( rap_metric_maps.minimum_amt is not NULL) AND ( rap_metric_maps.maximum_amt is not NULL) USING SQLCA ; END IF IF SQLCA.SQLCode = 0 THEN ls_workVar = dw_activities.getItemString(ll_workLoop,"value_unit_code") // Check to see if the unit conversion is needed IF ls_workvar5 <> ls_workVar THEN // Get unit converDAT*zsion factor SELECT rap_units_a.conversion_factor_amt, rap_units_b.conversion_factor_amt INTO :ldec_default_unit_factor, :ldec_user_unit_factor FROM rap_units rap_units_a, rap_units rap_units_b, rap_metrics WHERE ( rap_units_a.code = :ls_workvar5 ) and ( rap_metrics.meas_code = rap_units_a.meas_code ) and ( rap_metrics.meas_code = rap_units_b.meas_code ) and ( rap_metrics.code = :ls_workVar5 ) anDAT*|d ( rap_units_b.code = :ls_workvar ); // ls_workvar needs checked ldec_max_amt = ldec_max_amt * ldec_default_unit_factor / ldec_user_unit_factor ldec_min_amt = ldec_min_amt * ldec_default_unit_factor / ldec_user_unit_factor END IF END IF // Check to see if the value is within the valid range ldec_act_value = Dec(ls_actvalue) IF NOT (IsNull(ldec_max_amt) or IsNull(ldec_min_amt)) THEN IF (ldec_act_value < ldec_min_amt) OR (ldec_act_valuDAT*~e > ldec_max_amt) THEN ls_errMsg = ls_errMsg + '~r~n~tValue must be between ' + & String(ldec_min_amt) + ' and ' + String(ldec_max_amt) write_activity_data(ll_workLoop, il_level_type, ls_errMsg, ls_checkId) END IF END IF ll_workLoop = ll_workLoop + 1 NEXT CASE "SRC509" STRING ls_Value ll_activityRows = dw_activities.rowCount() FOR ll_workLoop = 1 to ll_activityRows ls_Value = dw_activities.getItemString(ll_workLoop,"vDAT*alue") IF ls_Value = '99999' OR ls_Value = 'ZZZZ' THEN write_activity_data(ll_workLoop, il_level_type, ls_errMsg, ls_checkId) END IF NEXT END CHOOSE ll_srcRow = ll_srcRow + 1 IF ll_srcRow > ll_checkCount Then ls_checkId = "END" ELSE ls_checkId = pdw_checks.getItemString(ll_srcRow,"id") END IF IF check_cancel() THEN EXIT END IF LOOP pw_parent.uo_log.f_write("") // ------------- Process each device RID --------------------- // Get # of DAT*Devices for Loop ll_dev_count = dw_devices.rowCount() // Perform device Processing (if Devices found) FOR ll_dev_row = 1 to ll_dev_count IF check_cancel() THEN EXIT END IF pw_parent.f_run_device(dw_devices.getItemNumber(ll_dev_row,"rid")) NEXT end subroutine public function boolean f_check_zip_format (string ps_zip);INTEGER li_len li_len = LEN(ps_zip) IF li_len < 5 OR (li_len > 5 AND li_len < 10) THEN RETURN False END IF IF NOT isNumber(mid(ps_zip,1,5DAT*)) THEN RETURN False IF li_len > 5 THEN IF pos(ps_zip,"-") <> 6 THEN RETURN False IF NOT isNumber(mid(ps_zip,7,4)) THEN RETURN False END IF RETURN True end function event constructor;call super::constructor;dw_1.dataobject='d_source' il_level_type = "Facility" end event on u_cc_source.create int iCurrent call u_cc_base::create this.dw_devices=create dw_devices this.dw_location_coords=create dw_location_coords iCurrent=UpperBound(this.Control) this.Control[iCurrent+1DAT*]=dw_devices this.Control[iCurrent+2]=dw_location_coords end on on u_cc_source.destroy call u_cc_base::destroy destroy(this.dw_devices) destroy(this.dw_location_coords) end on type dw_activities from u_cc_base`dw_activities within u_cc_source int X=793 int Height=177 end type type dw_1 from u_cc_base`dw_1 within u_cc_source int X=193 int Height=177 boolean LiveScroll=false end type type dw_devices from datawindow within u_cc_source int X=185 int Y=343 int Width=491 intDAT* Height=359 int TabOrder=30 boolean BringToTop=true string DataObject="d_device_ids" boolean LiveScroll=true end type on constructor;this.setTransobject(sqlca) end on type dw_location_coords from datawindow within u_cc_source int X=793 int Y=343 int Width=491 int Height=359 int TabOrder=40 boolean BringToTop=true string DataObject="d_loc_coord" boolean LiveScroll=true end type on constructor;this.setTransobject(sqlca) end on DAT*toolbaralignmentstructuremailrecipientenvironmentmailfiledescriptionmailmessagedatawindowchildlistviewitemtreeviewitemconnectioninfopowerobject@ H·radiobuttonfontcharsetfontpitchfontfamilyborderstyledatawindowdwobjectcommandbuttongroupboxUntitledobj  XȐStreamArialProcessDeviceSourced_concheck_editCancelMS Sans SerifSave Check Type messagege_envtransactiDAT*onsqlcadragobject|2 w_concheck_edit  ( +open+create+destroy+clicked LQ x _initsrcwindoww_concheck_editmenuwindowtypewindowstatewindowobjecttoolbaralignmentstructuremailrecipientenvironmentmailfiledescriptionmailmessagedatawindowchildlistviewitemtreeviewitemconnectioninfopowerobjectradiobuttonrb_4fontcharsetfontpitchfontfamilyborderstylerb_3rb_2rb_1DAT*datawindowdw_1dwobjectcommandbuttoncb_2cb_1groupboxgb_1messagetransactiondragobject@(@-@8@D@Q@b@l@z @ @ @ @ @@@ @@ tDAT*@@x@_e@dcac)8.meim!38@Com!H@Q<@_e_od_sdue_peit`@ce Ar wh@@* IL@ DAT* "wW 3*----y%--!%,$6(,0$58IkH$: @?@?85P@k]: @@8}DAT*\,d$5pIk$: @?@?85@k]: @@8}$,)8$$6)8,x1,$"2 ^d' messagege_envsqlca::messageP@#D @$@# is_checkid2x$ @width@@yDAT*X @heightx@dw_1.settransobject^.2retrieve2  ( 0 8H P\ d p       . *(*0@*HX*`p*x***$$DAT*$$$$$$ |,BXn d  rb_4,*rb_3 + rb_28,8rb_1P-Pdw_1h.hcb_2/cb_10 gb_11""controlc@* +8,P-h./0 1" ( 0@ HX `pDAT* x            v$ $0$@$P$`$p$$*8FT bd @ rb_4,*rb_3+rb_2(,rb_18-dw_1H.cb_2X/cb_1h0 gb_1x1"  0 @ P ` DAT*p  &&2  +open+create+destroy<2 | xywidthheighttitlebartitlebackcolorcontrolmenuwindowtyperb_4rb_3rb_2rb_1dw_1cb_2cb_1gb_1is_checkidh  !m"p(2>I NDAT* S X ] b g l "q] o !mp  1  @@@  DAT*     "&  x2  2 l xywidthheighttextborderstyletextcolorbackcolortextsizeweightfacenamefontfamilyfontpitch M JI*4DAT*>GNWb] oMJI @ @@2  2 l xywidthheighttextborderstyletextcolorbackcolortextsizeweightfacenamefontfamilyfontpitch7DAT* M JI*4>GNWb] o7MJI @ @@2  DAT*2 l xywidthheighttextborderstyletextcolorbackcolortextsizeweightfacenamefontfamilyfontpitch M JI*4>GNWb] oMJI @DAT*H  @@2  2 l xywidthheighttextborderstyletextcolorbackcolortextsizeweightfacenamefontfamilyfontpitch M JI*4>GNWDAT*p@9*b?mAp@p@p@q!@@a&\@\@1[@[@a=c@c@aJU@U@a[`@`@ej@j@sk@k@l@l@m@m@@@@@@@@@^@^@A @@@@&@@0@@;n@n@0F@@aR@@aonlnt yq@q@achPv@v@aened@d@ w_concheck_exportwindowmenuwindowtypewindowstatewindowobjecttoolbaralignmentstrucDAT*turemailrecipientenvironmentmailfiledescriptionmailmessagedatawindowchildlistviewitemtreeviewitemconnectioninfopowerobject commandbuttonfontcharsetfontpitchfontfamilydatawindowborderstyledwobjectRules Export ( CloseArialExport to Textd_concheckge_envtransactionsqlcamessagedragobjecth2 w_concheck_exportpe ( +open+create+desDAT*troy+clicked LQ xj _initsrcwindoww_concheck_exportmenuwindowtypewindowstatewindowobjecttoolbaralignmentstructuremailrecipientenvironmentmailfiledescriptionmailmessagedatawindowchildlistviewitemtreeviewitemconnectioninfopowerobjectcommandbuttoncb_2fontcharsetfontpitchfontfamilycb_1datawindowdw_1borderstyledwobjecttransactionmessagedragobjectl ,*@rb_2*_1@H/DAT*@/:@gb_1F"@S@d@*n@@| @ @ @set fo@mily le@3rbta@owdct@mand2@grom@getdbjec@ @x@_e!dcac&@81wi w!6@B@K@!WDAT*@_<@ wW -*--y%` ,$5 Ik0$: @?@?858@k]: @@8}D,L$5XIkh$: @?@?85p@k]: @DAT*@8}$,)8$)8,F1T,$x,d ge_envsqlca::message<D @@x x @width(@y@ @height`@dw_1x,settransobject^x,retrieved1   0 8DDAT* L Xh p     *(*0@*HX`$h$p$ |,Bd xP cb_2,*cb_1k + dw_1@8,8controlPc@* +8, ( 0@ HX ` h p 0$ $DAT*0$d 8 cb_2,*cb_1+dw_1(,  0 &&2  +open+create+destroy<82 X xywidthheighttitlebartitlebackcolorcontrolmenuwindowtypecb_2cb_1dw_1Nv yhe 1 dt97"[ sDAT*V (" 2in>ngI  SN FoS ] oNy[  h1  @@@   &DAT*forward global type w_concheck_view from Window end type type cb_1 from commandbutton within w_concheck_view end type type cb_delete from commandbutton within w_concheck_view end type type cb_cancel from commandbutton within w_concheck_view end type type cb_save from commandbutton within w_concheck_view end type type cb_edit from commandbutton within w_concheck_view end type type cb_new from commandbutton within w_concheck_view end type type dw_1 from u_dw_list within w_concheck_vieDAT*w end type type gb_1 from groupbox within w_concheck_view end type end forward global type w_concheck_view from Window int X=673 int Y=265 int Width=2721 int Height=1325 boolean TitleBar=true string Title="Consistency Checker Rules Maintenance" long BackColor=12632256 boolean ControlMenu=true cb_1 cb_1 cb_delete cb_delete cb_cancel cb_cancel cb_save cb_save cb_edit cb_edit cb_new cb_new dw_1 dw_1 gb_1 gb_1 end type global w_concheck_view w_concheck_view on open;this.x =DAT* pixelsToUnits((ge_env.screenwidth / 2) - (unitsToPixels(this.width,XUnitsToPixels!) /2), XPixelsToUnits!) this.y = pixelsToUnits((ge_env.screenheight / 2) - (unitsToPixels(this.height,YUnitsToPixels!) /2), YPixelsToUnits!) dw_1.setTransObject(sqlca) dw_1.retrieve() end on on w_concheck_view.create this.cb_1=create cb_1 this.cb_delete=create cb_delete this.cb_cancel=create cb_cancel this.cb_save=create cb_save this.cb_edit=create cb_edit this.cb_new=create cb_new this.dw_1=crDAT*eate dw_1 this.gb_1=create gb_1 this.Control[]={ this.cb_1,& this.cb_delete,& this.cb_cancel,& this.cb_save,& this.cb_edit,& this.cb_new,& this.dw_1,& this.gb_1} end on on w_concheck_view.destroy destroy(this.cb_1) destroy(this.cb_delete) destroy(this.cb_cancel) destroy(this.cb_save) destroy(this.cb_edit) destroy(this.cb_new) destroy(this.dw_1) destroy(this.gb_1) end on type cb_1 from commandbutton within w_concheck_view int X=55 int Y=1085 int Width=380 int Height=93 DAT* int TabOrder=80 string Text="Export..." int TextSize=-8 int Weight=700 string FaceName="MS Sans Serif" FontFamily FontFamily=Swiss! FontPitch FontPitch=Variable! end type on clicked;open(w_concheck_export) end on type cb_delete from commandbutton within w_concheck_view int X=1573 int Y=897 int Width=380 int Height=93 int TabOrder=40 string Text="Delete" int TextSize=-8 int Weight=700 string FaceName="MS Sans Serif" FontFamily FontFamily=Swiss! FontPitch FontPitch=VariableDAT*! end type type cb_cancel from commandbutton within w_concheck_view int X=2177 int Y=1085 int Width=380 int Height=93 int TabOrder=70 string Text="Cancel" boolean Cancel=true int TextSize=-8 int Weight=700 string FaceName="MS Sans Serif" FontFamily FontFamily=Swiss! FontPitch FontPitch=Variable! end type on clicked;close(parent) end on type cb_save from commandbutton within w_concheck_view int X=1719 int Y=1085 int Width=380 int Height=93 int TabOrder=60 string Text="DAT*Save" int TextSize=-8 int Weight=700 string FaceName="MS Sans Serif" FontFamily FontFamily=Swiss! FontPitch FontPitch=Variable! end type on clicked;close(parent) end on type cb_edit from commandbutton within w_concheck_view int X=1116 int Y=897 int Width=380 int Height=93 int TabOrder=50 string Text="Edit..." int TextSize=-8 int Weight=700 string FaceName="MS Sans Serif" FontFamily FontFamily=Swiss! FontPitch FontPitch=Variable! end type on clicked;openWithParm(w_concheDAT*ck_edit,dw_1.getItemString(dw_1.getRow(),"id")) IF message.DoubleParm = 1 Then dw_1.reselectRow(dw_1.getRow()) END IF end on type cb_new from commandbutton within w_concheck_view int X=659 int Y=897 int Width=380 int Height=93 int TabOrder=30 string Text="New..." int TextSize=-8 int Weight=700 string FaceName="MS Sans Serif" FontFamily FontFamily=Swiss! FontPitch FontPitch=Variable! end type on clicked;openWithParm(w_concheck_edit,"") IF message.DoubleParm = 1 Then dwDAT*_1.reset() dw_1.retrieve() END IF end on type dw_1 from u_dw_list within w_concheck_view int X=51 int Y=105 int Width=2506 int Height=773 int TabOrder=20 string DataObject="d_concheck" end type type gb_1 from groupbox within w_concheck_view int X=19 int Y=17 int Width=2588 int Height=1001 int TabOrder=10 string Text="Consistency Checks" BorderStyle BorderStyle=StyleLowered! long TextColor=8388608 long BackColor=12632256 int TextSize=-8 int Weight=700 string FaceName="MDAT*XS Sans Serif" FontFamily FontFamily=Swiss! FontPitch FontPitch=Variable! end type DAT*p@9*b?mAp@p@p@q@@a\@\@)[@[@a5c@c@aBU@U@aS`@`@a]j@j@kk@k@Awl@l@m@m@q@@@@@@@@^@^@@@`@@@@(@@3@@@A@@KS@S@AT@@@v@v@@ d@d@+ w_logstatwindowmenuwindowtypewindowstatewindowobjecttoolbaralignmentstructuremailrecipientenvironmentmDAT*ailfiledescriptionmailmessagedatawindowchildlistviewitemtreeviewitemconnectioninfopowerobject @commandbuttonfontcharsetfontpitchfontfamilymultilineeditalignmenttextcaseborderstyleNAction Required nCancelMS Sans SerifAppend&OverwriteArialXmessagedragobject`2 w_logstatDAT* ( +open+create+destroy+clicked LQ x _initsrcwindoww_logstatmenuwindowtypewindowstatewindowobjecttoolbaralignmentstructuremailrecipientenvironmentmailfiledescriptionmailmessagedatawindowchildlistviewitemtreeviewitemconnectioninfopowerobjectcommandbuttoncb_cancelfontcharsetfontpitchfontfamilycb_appendcb_overwritemultilineeditmle_messagealignmenttextcaseborderstylemessagedragobject DAT*@widt@"@ '@@ht2@dw_1>@ransK@x\ve@1f@ame t io@ @ @]={ & @s.cb t@cb_chi@_savcb@t,& ew@thishi@_1} E=_actmm@text NA@@(5DAT* t@gb!CO@Ynd@!b@n<@ve_@ wW .*---@2((`$$,,$6,F1T,DAT*4$,d message::message(@@< mle_message-text $ , 4 *0*8P*Xl*t$$$$ |,BXd h cb_cancel*cb_append$+$cbDAT*`_overwrite@,@mle_message`-`control|c@*$+@,`- 0 8P Xl t     >$($@$T$*d \ cb_cancel*cb_append_a+cb_overwrite0,mle_messageH- ( @ T &&2  +open+cDAT*p@:*b?nA#p@p@p@@@#\@\@.[@[@:c@c@GU@U@X`@`@bj@j@pk@k@|l@l@m@m@A@@@@A@@@@A^@^@ @@@@@(@@2@@=@@q<@@`G@@qQ@@a]@@`stw`@pq@q@a$F@F@a8,  v@v@\.d@d@&H w_select_levelwindowmenuwindowtypewiDAT*ndowstatewindowobjecttoolbaralignmentstructuremailrecipientenvironmentmailfiledescriptionmailmessagedatawindowchildlistviewitemtreeviewitemconnectioninfopowerobject Ldropdownlistboxfontcharsetfontpitchfontfamilyborderstyleor_ 5  L 5  L 5  DAT*LstatictextalignmentfillpatterncommandbuttonLevel Selection 5 str_level UtransactionArial$ \ҵ  \ҵ  \ҵ Process:MS Sans SerifDevice:Source:County:State:CancelOKDAT*Nation:pointerSELECT rid , name FROM rap_geographic_locations WHERE type ='STATE' AND parent_rid =0 ORDER BY name TU<,cur_state@6nAnA0nASELECT rid , name FROM rap_geographic_locations WHERE type ='NATION' ORDER BY name cur_nationvlnADAT*nALnASELECT rid , name FROM rap_geographic_locations WHERE type ='COUNTY' AND parent_rid =0 ORDER BY name UV4mcur_county nAPnAnASELECT rid , id , name FROM rap_sources WHERDAT*E geographic_county_rid =0 ORDER BY id EFcur_source804nA|nAnASELECT rid , id , code FROM rap_devices WHERE source_rid =0 ORDER BY id :;cur_deviced Z   ` nA nA DAT*nASELECT rid , id , name FROM rap_processes WHERE device_rid =0 ORDER BY id <=( cur_process < 2 nA nA nASELECT rid FROM rap_geographic_locations WHERE type ='NATION' AND name =' ' HK T nA DAT*nASELECT rid FROM rap_geographic_locations WHERE type ='STATE' AND parent_rid =0 AND name =' ' MNY\z  nA nASELECT rid FROM rap_geographic_locations WHERE type ='COUNTY' AND parent_rid =0 AND name =' ' NOZ]X nA  ` nASELECT rid FROM rap_soDAT*urces WHERE id =' ' AND name =' ' AND geographic_county_rid =0 &)47ST* nAp8nASELECT rid FROM rap_processes WHERE id =' ' AND device_rid =0 (+<=nA,nASELECT rid FROM rap_processes WHERE id =' ' AND name =' ' AND device_rid =0 (+69JKhDAT*nAnAsqlcaSELECT rid FROM rap_devices WHERE id =' ' AND code =' ' AND source_rid =0 &)47HI1>nA nAge_envmessagedragobjectLt|<d, 26 < DAT*  0 4 l r   L P    P T     04D |        Z ` p     ( . 2 8            z    DAT*X `   *8 p t  , 0       2 w_select_level  pl_current_ridpl_parent_ridpt_trans_objectwf_load_stateswf_load_nationswf_load_countieswf_load_sourceswf_load_deviceswf_load_processesps_nation_namewf_get_nation_ridps_state_namewf_get_state_ridps_county_namewf_get_county_ridps_source_namewf_getDAT*_source_ridps_process_namewf_get_process_ridwf_preset_ddlbswf_put_outputps_device_codewf_get_device_rid+open+create+destroy+close+index+selectionchanged+clicked< %,ILLCtransaction.all%,ILCtransaction.%,%,%,%,%,LSCtransaction.%DAT*,LSLCtransaction.@%,%,%,I@Z%,LQLI@h X| $0 x1 _initsrcwindoww_select_levelmenuwindowtypewindowstatewindowobjecttoolbaralignDAT*mentstructuremailrecipientenvironmentmailfiledescriptionmailmessagedatawindowchildlistviewitemtreeviewitemconnectioninfopowerobjectdropdownlistboxddlb_processfontcharsetfontpitchfontfamilyborderstyleddlb_deviceddlb_sourceddlb_countyddlb_stateddlb_nationstatictextst_processalignmentfillpatternst_devicest_sourcest_countyst_statest_headingcommandbuttoncb_cancelcb_okst_nationstru_levelstr_leveltransactionpointermessagedragobjectDAT*@'@,@7@C@P@a@k@y @ @ @rset f@amil d@verwli@itma@mentbo@styldr@jectE=_actmm@textNA@@(@4@s_g!LDAT*Xcpp!o@z<ni@ntwise@getw ctw_sy wash_ h * ILp@@p@NOp@p@STp@p@X@Y p@@p@]@^ p@@p@&"@ DAT*!"#$%'()*e @*G7%%G7%%G7%%G7%%G7%%G7%% . DAT* .  .  .  .  . &-&- .      8,:F@@8 $1808 88z%D$(@(8z(8DAT*Lz&P$z&:)@:@@81d$)t8 |$1d8080:)@:@@81L$1L808 88z%$(@(8z(8Lz&$z&:)@:@@81$1$6)8DAT*$6 4$1d$1808 88z%$(@(8z(8Lz& $z&:)@:@@81L$1r808 88z%$(@(8z(8Lz&$$z&:)@:@@81DAT*L,$1"808 88z%4$(@(8z(8Lz&<$z&:)@:@@811 6!P$%),-.042h3n4~57:&;,<<@LBfEFJKLNOQTUVX[\^a\bbfrgxil mp"dO pl_current_ridpl_parent_ridpt_trans_objectll_ridls_namecur_statexDAT* forward global type u_cc_stream from u_cc_base end type end forward global type u_cc_stream from u_cc_base end type global u_cc_stream u_cc_stream forward prototypes public subroutine f_run (w_ccheck_parameters pw_parent, long pl_rid, datawindow pdw_checks) end prototypes public subroutine f_run (w_ccheck_parameters pw_parent, long pl_rid, datawindow pdw_checks);// FUNCTION f_run(window pw_parent, long pl_rid, pdw_checks) // Run consistency checks on streams // (there are no streDAT* am table checks, only stream activity checks) // // Arguments: // pw_parent - Value of calling window // pl_rid - RID of stream to process // pdw_checks - DW of ConCheck records // // Returns: None // //Declare Locals LONG ll_streamCount Long ll_activityRow, ll_activityCount LONG ll_loopCount, ll_checkCount STRING ls_log_line STRING ls_vars[3] // Set microhelp line w_mdi_main.setMicrohelp("Retrieving Stream: " + string(pl_rid) + "...") ll_streamCount = dw_1.Retrieve(pl_DAT*rid) //Check for activities for this stream w_mdi_main.setMicrohelp("Retrieving Stream Activities for: " + string(pl_rid) + "...") ll_activityCount = dw_activities.Retrieve(pl_rid,"STR") pw_parent.il_streamcount = pw_parent.il_streamcount + ll_streamCount pw_parent.stream[1].rec_count = pw_parent.stream[1].rec_count + ll_streamCount w_mdi_main.setMicrohelp("Checking Streams...") // Write Stream Header info IF NOT pw_parent.iu_cc_process.ib_WroteMainHeader THEN // Only do this once DAT*pw_parent.iu_cc_process.ib_WroteMainHeader = True pw_parent.uo_log.f_write("Streams") pw_parent.uo_log.f_write("==========================================") END IF ls_vars[1] = dw_1.getItemString(1,"id") ls_vars[2] = dw_1.getItemString(1,"code") ls_vars[3] = dw_1.getItemString(1,"name") IF isNull(ls_vars[1]) THEN ls_vars[1] = "" IF isNull(ls_vars[2]) THEN ls_vars[2] = "" IF isNull(ls_vars[3]) THEN ls_vars[3] = "" ls_log_line = "Stream Id: " + ls_vars[1] + & " " + "Code:DAT* " + ls_vars[2] + & " " + "Name: " + ls_vars[3] pw_parent.uo_log.f_write(ls_log_line) pw_parent.uo_log.f_write("") // Perform Checks (if activities were found) // FOR loop is used to perform checks for each activity row // DO UNTIL loop is used to traverse the rules rows for each act row // IF ll_activityCount > 0 THEN ll_checkCount = pdw_checks.rowCount() FOR ll_activityRow = 1 to ll_activityCount //Begin Stream Checks DECIMAL ldec_workVar LONG ll_workVar STRINDAT*G ls_workvar1, ls_workvar2, ls_workvar3, ls_workvar4, ls_workvar5 STRING ls_metricCode, ls_checkId, ls_errmsg, ls_workvar ll_loopCount = 1 ls_metricCode = dw_activities.getItemString(ll_activityRow,"metric_code") DO UNTIL ll_loopCount > ll_checkCount YIELD() ls_checkId = pdw_checks.getItemString(ll_loopCount,"id") ls_errMsg = pdw_checks.getItemString(ll_loopCount,"error_message") CHOOSE CASE ls_checkId CASE "STR501" IF ls_metricCode = "CAPT EFFIC" THEN DAT* ldec_workVar = dec(dw_activities.getItemString(ll_activityRow,"value")) IF ldec_workVar < 0 OR ldec_workVar > 100 THEN write_activity_data(ll_activityRow, il_level_type, ls_errMsg, ls_checkId) END IF END IF CASE "STR502" IF ls_metricCode = "CNTL EFFIC" THEN ldec_workVar = Dec(dw_activities.getItemString(ll_activityRow,"value")) IF ldec_workVar < 0 OR ldec_workVar > 100 THEN write_activity_data(ll_activityRow, il_level_type, ls_errMsg, ls_chDAT*eckId) END IF END IF CASE "STR503" IF ls_metricCode = "DOWNDISRATE" THEN ldec_workVar = Dec(dw_activities.getItemString(ll_activityRow,"value")) IF ldec_workVar = 0 THEN write_activity_data(ll_activityRow, il_level_type, ls_errMsg, ls_checkId) END IF END IF CASE "STR504" IF ls_metricCode = "MASS RATE" THEN ldec_workVar = Dec(dw_activities.getItemString(ll_activityRow,"value")) IF ldec_workVar = 0 THEN write_activity_DAT*data(ll_activityRow, il_level_type, ls_errMsg, ls_checkId) END IF END IF CASE "STR505" IF ls_metricCode = "DISCH RATE" THEN ldec_workVar = Dec(dw_activities.getItemString(ll_activityRow,"value")) IF ldec_workVar = 0 THEN write_activity_data(ll_activityRow, il_level_type, ls_errMsg, ls_checkId) END IF END IF CASE "STR506" IF ls_metricCode = "DOWNSTRMDIS" THEN ldec_workVar = Dec(dw_activities.getItemString(ll_activityRow,"value")DAT*) IF ldec_workVar = 0 THEN write_activity_data(ll_activityRow, il_level_type, ls_errMsg, ls_checkId) END IF END IF CASE "STR507" IF ls_metricCode = "MASS FLOW" THEN ldec_workVar = Dec(dw_activities.getItemString(ll_activityRow,"value")) IF ldec_workVar = 0 THEN write_activity_data(ll_activityRow, il_level_type, ls_errMsg, ls_checkId) END IF END IF CASE "STR508" IF ls_metricCode = "DISCHARGE" THEN ldec_workVar = DecDAT*(dw_activities.getItemString(ll_activityRow,"value")) IF ldec_workVar = 0 THEN write_activity_data(ll_activityRow, il_level_type, ls_errMsg, ls_checkId) END IF END IF CASE "STR509" ls_workvar = dw_activities.getItemString(ll_activityRow,"value_unit_code") ls_workvar2 = iw_parent.f_get_units_name(ls_workvar) IF left(ls_workvar2,3) = "BAD" THEN write_activity_data(ll_activityRow, il_level_type, ls_errMsg, ls_checkId) END IF CASE DAT* "STR510" ls_workvar = dw_activities.getItemString(ll_activityRow,"material_code") ls_workvar2 = iw_parent.f_get_materials_name(ls_workvar) IF left(ls_workvar2,3) = "BAD" THEN write_activity_data(ll_activityRow, il_level_type, ls_errMsg, ls_checkId) END IF CASE "STR511" ls_workvar = iw_parent.f_get_metrics_name(ls_metricCode) IF left(ls_workvar,3) = "BAD" THEN write_activity_data(ll_activityRow, il_level_type, ls_errMsg, ls_checkId) DAT*"END IF CASE "STR512" IF date(dw_activities.getItemDateTime(ll_activityRow,"start_date_time")) > today() THEN write_activity_data(ll_activityRow, il_level_type, ls_errMsg, ls_checkId) END IF CASE "STR513" IF date(dw_activities.getItemDateTime(ll_activityRow,"end_date_time")) > today() THEN write_activity_data(ll_activityRow, il_level_type, ls_errMsg, ls_checkId) END IF CASE "STR514" DECIMAL ldec_min_amt, ldec_max_amt, & ldecDAT*$_default_unit_factor, ldec_user_unit_factor, ldec_act_value STRING ls_actValue, ls_deviceCode, ls_processCode, ls_streamCode, ls_materialCode SetNull(ldec_min_amt) SetNull(ldec_max_amt) ls_workVar = dw_activities.getItemString(ll_activityRow,"metric_code") ls_workVar4 = dw_activities.getItemString(ll_activityRow,"value_type") ls_actValue = dw_activities.getItemString(ll_activityRow,"value") ls_workVar2 = "@" IF isValid(iw_parent.iu_cc_source) THEN ls_DAT*&workVar3 = iw_parent.iu_cc_source.dw_1.getItemString(1,"type") // from sources ELSE ls_workVar3 = iw_parent.iu_cc_device.is_sourceType END IF ls_deviceCode = iw_parent.iu_cc_device.dw_1.getItemString(1,"code") // from dw_1 (devices) ls_processCode = iw_parent.iu_cc_process.dw_1.getItemString(1,"code") // from dw_1 (processes) ls_streamCode = "GENERIC" ls_materialCode = dw_activities.getItemString(ll_activityRow,"material_code") SELECT rap_metric_maDAT*(ps.unit_code, rap_metric_maps.maximum_amt, rap_metric_maps.minimum_amt INTO :ls_workVar5, :ldec_max_amt, :ldec_min_amt FROM rap_metric_maps WHERE ( rap_metric_maps.code = :ls_workVar ) AND ( rap_metric_maps.source_type = :ls_workVar3 ) AND ( rap_metric_maps.source_code = :ls_workVar2 ) AND ( rap_metric_maps.value_type = :ls_workVar4 ) AND DAT** ( rap_metric_maps.device_code = :ls_deviceCode ) AND ( rap_metric_maps.process_code = :ls_processCode ) AND ( rap_metric_maps.stream_code = :ls_streamCode ) AND ( rap_metric_maps.material_code = :ls_materialCode ) AND ( rap_metric_maps.minimum_amt is not NULL ) AND ( rap_metric_maps.maximum_amt is not NULL ) USING SQLCA ; // See if we found a record, if not try with material code = "@" IF SQLCA.SQLCDAT*,ode = 100 THEN ls_materialCode = "@" SELECT rap_metric_maps.unit_code, rap_metric_maps.maximum_amt, rap_metric_maps.minimum_amt INTO :ls_workVar5, :ldec_max_amt, :ldec_min_amt FROM rap_metric_maps WHERE ( rap_metric_maps.code = :ls_workVar ) AND ( rap_metric_maps.source_type = :ls_workVar3 ) AND ( rap_metric_maps.source_code = :ls_workVar2 ) ANDDAT*. ( rap_metric_maps.value_type = :ls_workVar4 ) AND ( rap_metric_maps.device_code = :ls_deviceCode ) AND ( rap_metric_maps.process_code = :ls_processCode ) AND ( rap_metric_maps.stream_code = :ls_streamCode ) AND ( rap_metric_maps.material_code = :ls_materialCode ) AND ( rap_metric_maps.minimum_amt is not NULL) AND ( rap_metric_maps.maximum_amt is not NULL) USING SQLCA ; DAT*0 END IF // See if we found a record, if not try with process code = "@" IF SQLCA.SQLCode = 100 THEN ls_processCode = "@" ls_materialCode = dw_activities.getItemString(ll_activityRow,"material_code") SELECT rap_metric_maps.unit_code, rap_metric_maps.maximum_amt, rap_metric_maps.minimum_amt INTO :ls_workVar5, :ldec_max_amt, :ldec_min_amt FROM rap_metric_maps DAT*2WHERE ( rap_metric_maps.code = :ls_workVar ) AND ( rap_metric_maps.source_type = :ls_workVar3 ) AND ( rap_metric_maps.source_code = :ls_workVar2 ) AND ( rap_metric_maps.value_type = :ls_workVar4 ) AND ( rap_metric_maps.device_code = :ls_deviceCode ) AND ( rap_metric_maps.process_code = :ls_processCode ) AND ( rap_metric_maps.stream_code = :ls_streamCode ) AND ( rap_metric_maps.matDAT*4erial_code = :ls_materialCode ) AND ( rap_metric_maps.minimum_amt is not NULL) AND ( rap_metric_maps.maximum_amt is not NULL) USING SQLCA ; END IF // See if we found a record, if not try another IF SQLCA.SQLCode = 100 THEN ls_processCode = "@" ls_materialCode = "@" SELECT rap_metric_maps.unit_code, rap_metric_maps.maximum_amt, rap_metric_maps.minimum_amt INTO :ls_workVDAT*6ar5, :ldec_max_amt, :ldec_min_amt FROM rap_metric_maps WHERE ( rap_metric_maps.code = :ls_workVar ) AND ( rap_metric_maps.source_type = :ls_workVar3 ) AND ( rap_metric_maps.source_code = :ls_workVar2 ) AND ( rap_metric_maps.value_type = :ls_workVar4 ) AND ( rap_metric_maps.device_code = :ls_deviceCode ) AND ( rap_metric_maps.process_code = :ls_processCode ) DAT*8AND ( rap_metric_maps.stream_code = :ls_streamCode ) AND ( rap_metric_maps.material_code = :ls_materialCode ) AND ( rap_metric_maps.minimum_amt is not NULL) AND ( rap_metric_maps.maximum_amt is not NULL) USING SQLCA ; END IF // See if we found a record, if not try another IF SQLCA.SQLCode = 100 THEN ls_deviceCode = "@" ls_processCode = "@" ls_materialCode = dw_activities.getItemString(ll_DAT*:activityRow,"material_code") SELECT rap_metric_maps.unit_code, rap_metric_maps.maximum_amt, rap_metric_maps.minimum_amt INTO :ls_workVar5, :ldec_max_amt, :ldec_min_amt FROM rap_metric_maps WHERE ( rap_metric_maps.code = :ls_workVar ) AND ( rap_metric_maps.source_type = :ls_workVar3 ) AND ( rap_metric_maps.source_code = :ls_workVar2 ) AND DAT*< ( rap_metric_maps.value_type = :ls_workVar4 ) AND ( rap_metric_maps.device_code = :ls_deviceCode ) AND ( rap_metric_maps.process_code = :ls_processCode ) AND ( rap_metric_maps.stream_code = :ls_streamCode ) AND ( rap_metric_maps.material_code = :ls_materialCode ) AND ( rap_metric_maps.minimum_amt is not NULL) AND ( rap_metric_maps.maximum_amt is not NULL) USING SQLCA ; END IF DAT*> // See if we found a record, if not try another IF SQLCA.SQLCode = 100 THEN ls_deviceCode = "@" ls_processCode = "@" ls_materialCode = "@" SELECT rap_metric_maps.unit_code, rap_metric_maps.maximum_amt, rap_metric_maps.minimum_amt INTO :ls_workVar5, :ldec_max_amt, :ldec_min_amt FROM rap_metric_maps WHERE ( rap_metric_maps.code = :ls_workVar ) AND DAT*@ ( rap_metric_maps.source_type = :ls_workVar3 ) AND ( rap_metric_maps.source_code = :ls_workVar2 ) AND ( rap_metric_maps.value_type = :ls_workVar4 ) AND ( rap_metric_maps.device_code = :ls_deviceCode ) AND ( rap_metric_maps.process_code = :ls_processCode ) AND ( rap_metric_maps.stream_code = :ls_streamCode ) AND ( rap_metric_maps.material_code = :ls_materialCode ) AND ( rap_DAT*Bmetric_maps.minimum_amt is not NULL) AND ( rap_metric_maps.maximum_amt is not NULL) USING SQLCA ; END IF IF SQLCA.SQLCode = 0 THEN ls_workVar = dw_activities.getItemString(ll_activityRow,"value_unit_code") // Check to see if the unit conversion is needed IF ls_workvar5 <> ls_workVar THEN // Get unit conversion factor SELECT rap_units_a.conversion_factor_amt, rap_units_b.conversion_factor_amt INTO :lDAT*Ddec_default_unit_factor, :ldec_user_unit_factor FROM rap_units rap_units_a, rap_units rap_units_b, rap_metrics WHERE ( rap_units_a.code = :ls_workvar5 ) and ( rap_metrics.meas_code = rap_units_a.meas_code ) and ( rap_metrics.meas_code = rap_units_b.meas_code ) and ( rap_metrics.code = :ls_workVar5 ) and ( rap_units_b.code = :ls_workvar ); // ls_workvar needs checked ldec_max_amt = ldec_max_amt * ldeDAT*Fc_default_unit_factor / ldec_user_unit_factor ldec_min_amt = ldec_min_amt * ldec_default_unit_factor / ldec_user_unit_factor END IF END IF // Check to see if the value is within the valid range ldec_act_value = Dec(ls_actvalue) IF NOT (IsNull(ldec_max_amt) or IsNull(ldec_min_amt)) THEN IF (ldec_act_value < ldec_min_amt) OR (ldec_act_value > ldec_max_amt) THEN ls_errMsg = ls_errMsg + '~r~n~tValue must be between ' + & String(ldec_min_amt) + ' DAT*Hand ' + String(ldec_max_amt) write_activity_data(ll_activityRow, il_level_type, ls_errMsg, ls_checkId) END IF END IF CASE "STR515" IF dw_activities.getItemString(ll_activityRow,"comment_text") = & "Emissions total for two devices divided equally" THEN write_activity_data(ll_activityRow, il_level_type, ls_errMsg, ls_checkId) END IF CASE "STR516" STRING ls_Value ls_Value = dw_activities.getItemString(ll_activityDAT*JRow,"value") IF ls_Value = '99999' OR ls_Value = 'ZZZZ' THEN write_activity_data(ll_activityRow, il_level_type, ls_errMsg, ls_checkId) END IF END CHOOSE ll_loopCount = ll_loopCount + 1 IF check_cancel() THEN EXIT END IF LOOP NEXT pw_parent.uo_log.f_write("") END IF end subroutine on constructor;call u_cc_base::constructor;il_level_type = "Stream" end on on u_cc_stream.create call u_cc_base::create end on on u_cc_stream.destroy caDAT*ll u_cc_base::destroy end on type dw_1 from u_cc_base`dw_1 within u_cc_stream string DataObject="d_streams_cc_2" end type DAT*N% ,5< D>D Level SelectionCould not load states SQL Error:  ddlb_stateX.reset>lNo states found for this nation X.additem1X.text    D P d t |      DAT*P          $ , 4 < n-:F@@8 $1808 89z%H$(@(8z(8Pz&T$z&:)@:@@81h$)x8 $1d8080:)@:@@81BDAT*R$1B808 89z%$(@(8z(8Pz&$z&:)@:@@81$1$6)8$6 P$1d$1808 89z%$(@(8z(8Pz&$z&:)@:@@8DAT*T1B $1h808 89z%$(@(8z(8Pz&$z&:)@:@@81$$,$4$61)H8P$1X808 89z%X$(@(8z(8Pz&`$z&:)@:@@811 DAT*V,F!"&)*+-*.^/d0t1367"82<B>\ABFGHJKM PQRTWXZ]R^XbhcdfiBjHmXdB pl_current_ridpt_trans_objectll_ridls_namecur_nationd ,'. 6>h Level SelectionCould not load nations SQL Error:   ddlb_nation\/reset>pNo natDAT*Xions foundhis \/additem1\/text  \/\/selectitem@C<  H T h x                  $ , 4 H P X ` 8,:F@@8 DAT*Z$1808 8:z%H$(@(8z(8Pz&T$z&:)@:@@81h$)x8 T$1d8080:)@:@@81L$1L808 8:z%$(@(8z(8Pz&$z&:)@:@@8DAT*\1$1$6)8$6 $1d$1808 8:z% $(@(8z(8Pz&$z&:)@:@@81L$1r808 8:z%$$(@(8z(8DAT*^Pz&,$z&:)@:@@814$1"808 8:z%<$(@(8z(8Pz&D$z&:)@:@@811 6!P$%),-.042h3n4~57:&;,<<@LBfEFJKLNOQTUVX[\^a\bbfrgxil mp"dP pl_current_ridpl_parent_rDAT* idpt_trans_objectll_ridls_namecur_countyx% ,5< D>L Level SelectionCould not load counties SQL Error: 8 ddlb_county\-reset>pNo counties found for this state \-additem1\-text  DAT*breate+destroy<2 j xywidthheighttitlebartitlebackcolorwindowtypecb_cancelcb_appendcb_overwritemle_message2  <x"*(2= G Q ^ ] o2<DAT*d  1  @@@    &  xX1I+@8,DAT*f>1L,$$d ::message@  ""2  +clicked2 h xywidthheighttabordertextcanceltextsizeweightfacenamefontcharsetfontfamilyfontpitch P I`"'.7DAT*h>GS^] oPI`  @"X1I+@8,>1L,$$d ::message@ DAT*  ""2  +clicked2 i xywidthheighttabordertextdefaulttextsizeweightfacenamefontcharsetfontfamilyfontpitchI P I` "'/8?HT_] oIPIDAT*(dr@{@@d@@@@ @ @@@ @ @@@ @ @@@@(@@@5@D@8O@6!Z@f@r@  DAT*|080,1,$:Tnd0 +row+dwoancestorreturnvalue::messageP &@( itemfocuschangedis_child_namecodeis_validation_table5"rap_reference_codesis_msg_nameh Column - Reference Codeis_msg_text!Sorry! Not a valid reference codel)( L t DAT*   2 h ps_activity_unit_codeps_throughput_unit_codepdb_activity_valuept_trans_objectf_unit_convertL 6I IRSSRDCtransaction. x function_objectf_unit_convertstructuremailrecipientenvironmentmailfiledescriptionmailmessagedatawindowchildlistviewitemtreeviewitemconnectioninfopowerobjecttransaction@qaDAT*p@9*b?mA$p@p@p@q@@a$\@\@a/[@[@a;c@c@aHU@U@aY`@`@cj@j@qk@k@}l@l@m@m@@@@@@@@@^@^@A @@@@&@@0@@;n@0E@@aQ@@Z@@  q@q@)"%v@v@A%#-d@d@8p@ 8%@Jp@ J&Z w_concheck_viewwindowmenuDAT*tforward global type w_logstat from Window end type type cb_cancel from commandbutton within w_logstat end type type cb_append from commandbutton within w_logstat end type type cb_overwrite from commandbutton within w_logstat end type type mle_message from multilineedit within w_logstat end type end forward global type w_logstat from Window int X=1074 int Y=916 int Width=1527 int Height=572 boolean TitleBar=true string Title="Action Required" long BackColor=79741120 WindowTypeDAT*$  WindowType=response! cb_cancel cb_cancel cb_append cb_append cb_overwrite cb_overwrite mle_message mle_message end type global w_logstat w_logstat on open;// Set display message // Message passed in from calling window mle_message.text = message.StringParm end on on w_logstat.create this.cb_cancel=create cb_cancel this.cb_append=create cb_append this.cb_overwrite=create cb_overwrite this.mle_message=create mle_message this.Control[]={this.cb_cancel,& this.cb_append,& this.DAT*}ode="1" background.color="553648127" ) htmltable(border="1" cellpadding="0" cellspacing="0" generatecss="no" nowrap="yes") DAT*=12 alignment="0" tabsequence=32766 border="5" color="0" x="87" y="268" height="56" width="498" format="[general]" edit.limit=0 edit.case=any edit.autoselect=yes font.face="Arial" font.height="-8" font.weight="700" font.family="2" font.pitch="2" font.charset="0" background.mode="2" background.color="16777215" ) htmltable(border="1" cellpadding="0" cellspacing="0" generatecss="no" nowrap="yes") DAT*de_type") COLUMN(NAME="rap_processes.name") COLUMN(NAME="rap_processes.operator_code") COLUMN(NAME="rap_processes.operator_id") COLUMN(NAME="rap_processes.operator_name") COLUMN(NAME="rap_processes.primary_material_code") COLUMN(NAME="rap_processes.scc_ams_code") COLUMN(NAME="rap_processes.weekly_schedule_code") COLUMN(NAME="rap_processes.yearly_schedule_code")WHERE( EXP1 ="rap_processes.rid" OP ="=" EXP2 ="" ) ) ARG(NAME = "pl_rid" TYPE = number) y"DAT*border="0" color="0" x="3520" y="0" height="56" width="887" format="[general]" name=to_process_rid edit.limit=0 edit.case=any edit.autoselect=yes font.face="Arial" font.height="-8" font.weight="400" font.family="2" font.pitch="2" font.charset="0" background.mode="2" background.color="16777215" ) htmltable(border="1" cellpadding="0" cellspacing="0" generatecss="no" nowrap="yes") DAT*6_rid") COLUMN(NAME="rap_streams.name") COLUMN(NAME="rap_streams.to_process_rid")WHERE( EXP1 ="rap_streams.rid" OP ="=" EXP2 ="" ) ) ARG(NAME = "StreamRid" TYPE = number) "no"yes$1DAT*Response window used to choose a level.forward global type w_select_level from Window end type type ddlb_process from dropdownlistbox within w_select_level end type type ddlb_device from dropdownlistbox within w_select_level end type type ddlb_source from dropdownlistbox within w_select_level end type type ddlb_county from dropdownlistbox within w_select_level end type type ddlb_state from dropdownlistbox within w_select_level end type type ddlb_nation from dropdownlistbox within w_seDAT*lect_level end type type st_process from statictext within w_select_level end type type st_device from statictext within w_select_level end type type st_source from statictext within w_select_level end type type st_county from statictext within w_select_level end type type st_state from statictext within w_select_level end type type st_heading from statictext within w_select_level end type type cb_cancel from commandbutton within w_select_level end type type cb_ok from commandbuttoDAT*n within w_select_level end type type st_nation from statictext within w_select_level end type end forward type stru_level from structure string msgtext long nation long state long county long source long device long process double retval end type global type w_select_level from Window int X=609 int Y=265 int Width=1701 int Height=1417 boolean TitleBar=true string Title="Level Selection" long BackColor=12632256 boolean ControlMenu=true WiDAT*ndowType WindowType=response! ddlb_process ddlb_process ddlb_device ddlb_device ddlb_source ddlb_source ddlb_county ddlb_county ddlb_state ddlb_state ddlb_nation ddlb_nation st_process st_process st_device st_device st_source st_source st_county st_county st_state st_state st_heading st_heading cb_cancel cb_cancel cb_ok cb_ok st_nation st_nation end type global w_select_level w_select_level type variables str_level istr_level //structure for level variables LONG il_nation_rDAT*id LONG il_state_rid LONG il_county_rid LONG il_source_rid LONG il_device_rid LONG il_process_rid end variables forward prototypes public function integer wf_load_states (long pl_current_rid, long pl_parent_rid, transaction pt_trans_object) public function integer wf_load_nations (long pl_current_rid, transaction pt_trans_object) public function integer wf_load_counties (long pl_current_rid, long pl_parent_rid, transaction pt_trans_object) public function integer wf_load_sources (longDAT*,  pl_current_rid, long pl_parent_rid, transaction pt_trans_object) public function integer wf_load_devices (long pl_current_rid, long pl_parent_rid, transaction pt_trans_object) public function integer wf_load_processes (long pl_current_rid, long pl_parent_rid, transaction pt_trans_object) public function long wf_get_nation_rid (string ps_nation_name, transaction pt_trans_object) public function long wf_get_state_rid (string ps_state_name, long pl_parent_rid, transaction pt_trans_object) publiDAT*windowtypewindowstatewindowobjecttoolbaralignmentstructuremailrecipientenvironmentmailfiledescriptionmailmessagedatawindowchildlistviewitemtreeviewitemconnectioninfopowerobject (<commandbuttonfontcharsetfontpitchfontfamilyu_dw_listborderstyledwobjectgroupboxConsistency Checker Rules Maintenance (eExport...MS Sans SerifDeleteCancelSaveEdit...New...d_concheckConsistency Checksge_envtransacDAT*tionsqlcamessagedragobjectw_concheck_exportw_concheck_edit2 w_concheck_view  ( +open+create+destroy+clicked LQ x _initsrcwindoww_concheck_viewmenuwindowtypewindowstatewindowobjecttoolbaralignmentstructuremailrecipientenvironmentmailfiledescriptionmailmessagedatawindowchildlistviewitemtreeviewitemconnectioninfopowerobjectcommandbuttoncb_1fontcharsetfontpitchDAT*nforward global type u_dw from datawindow end type end forward global type u_dw from datawindow int Width=494 int Height=361 int TabOrder=1 boolean LiveScroll=true end type global u_dw u_dw forward prototypes public subroutine f_clearfilter () end prototypes public subroutine f_clearfilter ();this.setFilter("") this.Filter() end subroutine DAT*fontfamilycb_deletecb_cancelcb_savecb_editcb_newu_dw_listdw_1borderstyledwobjectgroupboxgb_1transactionmessagedragobjectw_concheck_exportw_concheck_edit  ,*_1@ @(@cont-c@@*8@D@Q@b@ l@@z @ @@ @n@0 a@@ @@q@aDAT*Hno"yesDAT*ices.rid" OP ="=" EXP2 ="" ) ) ARG(NAME = "pl_rid" TYPE = number) Z\Y"[no"]yesDAT*Jp_concheck.error_message") COLUMN(NAME="rap_concheck.error_count")) DAT*Level viewer with button to allow for new level selection, shows current level to be used for the current processforward global type u_level from UserObject end type type st_level_code from statictext within u_level end type type sle_level from singlelineedit within u_level end type type sle_level_id from singlelineedit within u_level end type type sle_id_desc from singlelineedit within u_level end type type st_id_desc from statictext within u_level end type type st_level_id from statDAT*ictext within u_level end type type cb_level from commandbutton within u_level end type type gb_level from groupbox within u_level end type end forward global type u_level from UserObject int Width=1555 int Height=397 long BackColor=12632256 st_level_code st_level_code sle_level sle_level sle_level_id sle_level_id sle_id_desc sle_id_desc st_id_desc st_id_desc st_level_id st_level_id cb_level cb_level gb_level gb_level end type global u_level u_level type variables INTEGERDAT* ii_log_file STRING is_header BOOLEAN ib_abort str_level istr_level end variables forward prototypes public function integer uf_load_level_info (transaction pt_trans_object) public subroutine uf_msgbox (string s_msgtext, long l_rid) end prototypes public function integer uf_load_level_info (transaction pt_trans_object);// INT uf_load_level_info( TRANSACTION pt_trans_object ) // // Load the sle boxes and radio button group based upon the // currently selected level. // // RDAT*eturns: 1 Success // 0 Record not found // -1 SQL Error // // Modification History // When Who What // ------- --- ---------------------------------------------- // 14SEP94 PER Added set of source type radio buttons. // 19SEP94 PER Added support for all levels. SetPointer( HourGlass! ) // Declare local variables STRING ls_id STRING ls_name STRING ls_type //Reset level_code text to empty string st_level_code.text = "" // Determine lowest selectDAT*ed level IF istr_level.process > 0 THEN // Process level // Get the id, name, and type of this process from the database SELECT rap_processes.id, rap_processes.name, rap_sources.type INTO :ls_id, :ls_name, :ls_type FROM rap_processes, rap_devices, rap_sources WHERE rap_devices.source_rid = rap_sources.rid AND rap_processes.device_rid = rap_devices.rid AND rap_processes.rid = :istr_level.DAT*process USING pt_trans_object; IF pt_trans_object.sqlcode = 100 THEN // Process information not found uf_msgBox( "Process information not found for process_rid=", + & istr_level.process ) Return( 0 ) ELSEIF pt_trans_object.sqlcode <> 0 THEN // SQL Error // uo_em.uof_sql_error( "uf_load_level_info()", -1, pt_trans_object ) ROLLBACK USING pt_trans_object; Return( -1 ) ELSE // Process information found DAT* sle_level.text = "Process" st_level_code.text = "PRO" IF IsNull( ls_id ) THEN sle_level_id.text = "" ELSE sle_level_id.text = ls_id END IF IF IsNull( ls_name ) THEN sle_id_desc.text = "" ELSE sle_id_desc.text = ls_name END IF END IF ELSEIF istr_level.device > 0 THEN // Device level // Get the id, name, and type of this device from the database SELECT rap_devices.id, rap_devDAT*ices.name, rap_sources.type INTO :ls_id, :ls_name, :ls_type FROM rap_devices, rap_sources WHERE rap_devices.source_rid = rap_sources.rid AND rap_devices.rid = :istr_level.device USING pt_trans_object; IF pt_trans_object.sqlcode = 100 THEN // Device information not found uf_msgBox( "Device information not found for device_rid=", + & istr_level.device ) Return( 0 ) ELSEIF pt_trans_objectDAT*.sqlcode <> 0 THEN // SQL Error // uo_em.uof_sql_error( "uf_load_level_info()", -1, pt_trans_object ) ROLLBACK USING pt_trans_object; Return( -1 ) ELSE // Device information found sle_level.text = "Device" st_level_code.text = "DEV" IF IsNull( ls_id ) THEN sle_level_id.text = "" ELSE sle_level_id.text = ls_id END IF IF IsNull( ls_name ) THEN sle_id_desc.text = "" ELSE sleDAT*_id_desc.text = ls_name END IF END IF ELSEIF istr_level.source > 0 THEN // Source level // Get the id, name, and type of this source from the database SELECT id, name, type INTO :ls_id, :ls_name, :ls_type FROM rap_sources WHERE rid = :istr_level.source USING pt_trans_object; IF pt_trans_object.sqlcode = 100 THEN // Source information not found uf_msgBox( "Source information not foundDAT* for source_rid=", + & istr_level.source ) Return( 0 ) ELSEIF pt_trans_object.sqlcode <> 0 THEN // SQL Error // uo_em.uof_sql_error( "uf_load_level_info()", -1, pt_trans_object ) ROLLBACK USING pt_trans_object; Return( -1 ) ELSE // Source information found sle_level.text = "Source" st_level_code.text = "SRC" IF IsNull( ls_id ) THEN sle_level_id.text = "" ELSE sle_level_id.text = ls_idDAT* END IF IF IsNull( ls_name ) THEN sle_id_desc.text = "" ELSE sle_id_desc.text = ls_name END IF END IF ELSEIF istr_level.county > 0 THEN // County level // Get the name of this county from the database SELECT name INTO :ls_name FROM rap_geographic_locations WHERE rid = :istr_level.county USING pt_trans_object; IF pt_trans_object.sqlcode = 100 THEN // County information not found uf_msgDAT*Box( "County information not found for county_rid=", + & istr_level.county ) Return( 0 ) ELSEIF pt_trans_object.sqlcode <> 0 THEN // SQL Error // uo_em.uof_sql_error( "uf_load_level_info()", -1, pt_trans_object ) ROLLBACK USING pt_trans_object; Return( -1 ) ELSE // County information found sle_level.text = "County" st_level_code.text = "GEO" sle_level_id.text = "" IF IsNull( ls_name ) THEN sle_iDAT*d_desc.text = "" ELSE sle_id_desc.text = ls_name END IF END IF ELSEIF istr_level.state > 0 THEN // State level // Get the name of this state from the database SELECT name INTO :ls_name FROM rap_geographic_locations WHERE rid = :istr_level.state USING pt_trans_object; IF pt_trans_object.sqlcode = 100 THEN // State information not found uf_msgBox( "State information not found for state_rid=", + & DAT* istr_level.state ) Return( 0 ) ELSEIF pt_trans_object.sqlcode <> 0 THEN // SQL Error // uo_em.uof_sql_error( "uf_load_level_info()", -1, pt_trans_object ) ROLLBACK USING pt_trans_object; Return( -1 ) ELSE // State information found sle_level.text = "State" st_level_code.text = "GEO" sle_level_id.text = "" IF IsNull( ls_name ) THEN sle_id_desc.text = "" ELSE sle_id_desc.text = ls_name ENDAT*D IF END IF ELSEIF istr_level.nation > 0 THEN // Nation level // Get the name of this nation from the database SELECT name INTO :ls_name FROM rap_geographic_locations WHERE rid = :istr_level.nation USING pt_trans_object; IF pt_trans_object.sqlcode = 100 THEN // Nation information not found uf_msgBox( "Nation information not found for nation_rid=", + & istr_level.nation ) Return( 0 ) ELSEIF pt_trans_objecDAT*t.sqlcode <> 0 THEN // SQL Error // uo_em.uof_sql_error( "uf_load_level_info()", -1, pt_trans_object ) ROLLBACK USING pt_trans_object; Return( -1 ) ELSE // Nation information found sle_level.text = "Nation" st_level_code.text = "GEO" sle_level_id.text = "" IF IsNull( ls_name ) THEN sle_id_desc.text = "" ELSE sle_id_desc.text = ls_name END IF END IF ELSE // Unknown level type! sle_leveDAT*l.text = "" sle_level_id.text = "" sle_id_desc.text = "" Return( 0 ) END IF // Normal return Return( 1 ) // end uf_load_level_info() end function public subroutine uf_msgbox (string s_msgtext, long l_rid);String ls_rid IF l_rid > 0 then ls_rid = String(ls_rid) ELSE ls_rid = "" END IF MessageBox( "Consistency Checker",s_msgtext + & ls_rid, StopSign!, OK! ) end subroutine on u_level.create this.st_level_code=create st_level_code this.sle_levDAT*el=create sle_level this.sle_level_id=create sle_level_id this.sle_id_desc=create sle_id_desc this.st_id_desc=create st_id_desc this.st_level_id=create st_level_id this.cb_level=create cb_level this.gb_level=create gb_level this.Control[]={ this.st_level_code,& this.sle_level,& this.sle_level_id,& this.sle_id_desc,& this.st_id_desc,& this.st_level_id,& this.cb_level,& this.gb_level} end on on u_level.destroy destroy(this.st_level_code) destroy(this.sle_level) destroy(this.sle_DAT*level_id) destroy(this.sle_id_desc) destroy(this.st_id_desc) destroy(this.st_level_id) destroy(this.cb_level) destroy(this.gb_level) end on type st_level_code from statictext within u_level int X=55 int Y=181 int Width=193 int Height=65 boolean Visible=false boolean Enabled=false boolean FocusRectangle=false long TextColor=8388608 long BackColor=12632256 int TextSize=-8 int Weight=700 string FaceName="MS Sans Serif" FontFamily FontFamily=Swiss! FontPitch FontPitch=Variable! DAT* end type type sle_level from singlelineedit within u_level int X=618 int Y=73 int Width=910 int Height=77 int TabOrder=30 BorderStyle BorderStyle=StyleLowered! boolean DisplayOnly=true long TextColor=33554432 int TextSize=-8 int Weight=700 string FaceName="MS Sans Serif" FontFamily FontFamily=Swiss! FontPitch FontPitch=Variable! end type type sle_level_id from singlelineedit within u_level int X=618 int Y=177 int Width=910 int Height=77 int TabOrder=40 BorderStyle BorderDAT*Style=StyleLowered! boolean DisplayOnly=true long TextColor=33554432 int TextSize=-8 int Weight=700 string FaceName="MS Sans Serif" FontFamily FontFamily=Swiss! FontPitch FontPitch=Variable! end type type sle_id_desc from singlelineedit within u_level int X=618 int Y=281 int Width=910 int Height=77 int TabOrder=50 BorderStyle BorderStyle=StyleLowered! boolean DisplayOnly=true long TextColor=33554432 int TextSize=-8 int Weight=700 string FaceName="MS Sans Serif" FontFamily FoDAT*ntFamily=Swiss! FontPitch FontPitch=Variable! end type type st_id_desc from statictext within u_level int X=183 int Y=289 int Width=407 int Height=65 boolean Enabled=false string Text="ID Description:" boolean FocusRectangle=false long TextColor=8388608 long BackColor=12632256 int TextSize=-8 int Weight=700 string FaceName="MS Sans Serif" FontFamily FontFamily=Swiss! FontPitch FontPitch=Variable! end type type st_level_id from statictext within u_level int X=334 int Y=189 DAT* int Width=257 int Height=65 boolean Enabled=false string Text="Level ID:" boolean FocusRectangle=false long TextColor=8388608 long BackColor=12632256 int TextSize=-8 int Weight=700 string FaceName="MS Sans Serif" FontFamily FontFamily=Swiss! FontPitch FontPitch=Variable! end type type cb_level from commandbutton within u_level int X=238 int Y=73 int Width=330 int Height=85 int TabOrder=20 string Text="Level..." int TextSize=-8 int Weight=700 string FaceName="MS Sans Serif"DAT* FontFamily FontFamily=Swiss! FontPitch FontPitch=Variable! end type on clicked;// User wants to change the estimation level INTEGER li_connections INTEGER li_ret_status // Set w_emiss_level header line istr_level.msgtext = "Choose the Consistency Check Level" DO WHILE TRUE // Allow user to pick level OpenWithParm( w_select_level, istr_level ) istr_level = message.PowerObjectParm IF istr_level.retval < 1 THEN // User cancelled out of, or error in w_emiss_lDAT*evel // (We will check for proper level in "Calculate" button // so they don't get "stuck" in w_emiss_level.) // ib_abort used to indicate to w_emiss.open that cancel was returned ib_abort = TRUE EXIT END IF // REJ 22JAN97 Device Level Selection o.k. for consistency checker // // Check to make sure user didn't stop at device level // IF ( ( istr_level.device > 0 ) AND ( istr_level.process < 1 ) ) THEN // // SELECT COUNT(*) into :li_connections // DAT* FROM rap_connections // WHERE to_device_rid = :istr_level.device OR // from_device_rid = :istr_level.device; // IF SQLCA.sqlcode <> 0 THEN // FileWrite(ii_log_file,"Consistency Checker... Device Connections Select") // EXIT // ELSEIF li_connections = 0 THEN // // Calculate at the device level O.K. // EXIT // ELSE // uf_msgBox("Checking is not currently supported " + & // " at the device level for connected devices",0) // END IF // DAT* li_ret_status = MessageBox( "Emission Estimator", & // "Calculation at the device level is " + & // "supported for unconnected devices only.~n~r~n~rYou may calculate at the nation, " + & // "state, county,~n~ror source level without this restriction.~n~r~n~rDo you want to choose another " + & // "level?", Question!, YesNo! ) // IF li_ret_status = 2 THEN EXIT // ELSE // Info is OK--break out of loop EXIDAT*T // END IF LOOP ////// FOR TEST!!! //MessageBox( "Info", & // "Nation: " + String( il_nation_rid ) + "~n" + & // "State: " + String( il_state_rid ) + "~n" + & // "County: " + String( il_county_rid ) + "~n" + & // "Source: " + String( il_source_rid ) + "~n" + & // "Device: " + String( il_device_rid ) + "~n" + & // "Process: " + String( il_process_rid ), & // Information!, OK! ) // Set level display infDAT*ormation IF uf_load_level_info( sqlca ) <> 1 THEN // Error during uf_load_level_info() Return END IF // end end on type gb_level from groupbox within u_level int X=5 int Y=5 int Width=1546 int Height=385 int TabOrder=10 string Text="Calculation Level" BorderStyle BorderStyle=StyleLowered! long TextColor=8388608 long BackColor=12632256 int TextSize=-8 int Weight=700 string FaceName="MS Sans Serif" FontFamily FontFamily=Swiss! FontPitch FontPitch=Variable! end type DAT* DAT*vities.end_date_time") COLUMN(NAME="rap_activities.material_code") COLUMN(NAME="rap_activities.method_type") COLUMN(NAME="rap_activities.reference_code") COLUMN(NAME="rap_activities.reference_type") COLUMN(NAME="rap_activities.value_amt") COLUMN(NAME="rap_activities.value_type") COLUMN(NAME="rap_activities.value_unit_code")WHERE( EXP1 ="rap_activities.ref_rid" OP ="=" EXP2 ="" ) ) ARG(NAME = "arg_rid" TYPE = number) DAT*P@v@@@@ @@;)83s_g!;CJpp@!TY<@eni@ntwinse@getww ctw_sy|w@ash_h@%@*" @2"_e@ DAT*!wW 2*------{. %` ,$5 Ik0$: @?@DAT*?858@k]: @@8}D,L$5XIkh$: @?@?85p@k]: @@8}$,)8$)8,F1T,$x ,d ge_envsqlca::message<D @"@#x x @width(@y@DAT* @height`@dw_1x0settransobjectH^x0retrieves_c1   0 8D L Xh p     . *,*4H*P`*hx****$$$$$$DAT*$$ |,BXn d  cb_1,*cb_delete + cb_cancel<,<cb_saveX-Xcb_editp.pcb_newa/dw_1_ma0gb_1de 1!!controlc@* +<,X-p./01! , 4H P` hx   DAT*          v$$$8$H$X$h$x$$*8FT bd @ cb_1,*cb_delete_d+cb_cancel,,cb_save@-cb_editP.cb_new`/dw_1p0gb_1*1! $ 8 H X h x  DAT*&&2  +open+create+destroy<2 x xywidthheighttitlebartitlebackcolorcontrolmenucb_1cb_deletecb_cancelcb_savecb_editcb_newdw_1gb_1@  -"c(2> C M W DAT*_ g n s !] o  -c  1  @@@        !&DAT*  xP!@8,61D,$d$ w_concheck_export::message(!@%@#  ""2  +clicked2 U xywidthheighttabordertexttextsizeweightfacenamefontfamilyfontpitchDAT*7 = |]P"'07@K] o7=|]P @ @"2  2 UDAT* xywidthheighttabordertexttextsizeweightfacenamefontfamilyfontpitch%  |]("'07@K] o%|]( @ @DAT*` J@8,01>,$d ::message@#  ""2  +clicked2 \ xywidthheighttabordertextcanceltextsizeweightfacenamefontfamilyfontpitch = |]F"'.DAT*!+:DNW^ gr] o @    @2  2 DAT*\ xywidthheighttabordertextcanceltextsizeweightfacenamefontfamilyfontpitchpeta el 6 th73" fa'gn.ea7al> =8GolR] o @  DAT*@ 2  2 ] xywidthheighttabordertextdefaulttextsizeweightfacenamefontfamilyfontpitchpemm _s =8t gh" r='an/el8e=? 0 HArS] o DAT*@  @ 2  2 xywidthheightenabledtextalignmentfocusrectangletextcolorbackcolorbordercolortextsizeweightfacenamefontfamilyfontpitch@pedb ec  dt10!  &bo0 ?inIngSDAT* F_lyh Fo  x] o @    @2  2 A msgtextnationstatecountysourcedeviceprocessretval DAT*$+2:   DAT*1 D$8L)X81 `$8h)p81 x$8)81 $8)81 $8)81 $8)81 $8) 81  $8),81  4$DAT*8<)L81  T$8\)|8@880)@)81  $8)8@880)@)81 %1 801 %81 801 %p1 801 %1 801 %1 8DAT*01 %1 801 %P1 801 %1 801  %1  801  %1  801  %01  801  %h1  801  %8z%1  %z&8z&1 %z&8z&DAT*1 %z&8z&1 %z&8z&1 %z&8z&1 %z&8z&1 %z&8z&1 %z&8z&1 %z&8z&1  %z&8z&1  %z&$$6)8,$684^@$X9}8`h$9}8$9DAT*}8$9}( B T n(bJ`#$%8&p'()*P+,-.00h<>@(A<CZDrFGIJdX pl_rowps_level_typeps_msgps_recidls_loglinels_fields@  case62D  $ - D8-P H DAT*  ib_wroteactheader% Activity Data Value Unit Data Referencelog_write2yStart Date End Date Metric Type Value Code Material C Code Method Type Code2y%log_err1dw_activities1!metric_codegetitemstring,!value_typee,!valuet,!value_unit_code,!material_code,!confidential_flag,!data_code,DAT* !method_type,!reference_type,!reference_code,!start_date_timegetitemdatetimelmm-dd-yyyyp!end_date_timel iw_parent#uo_log-f_write1 il_level_type&Facility#ib_errorsourceHEDevice#ib_errordevicepFProcess#ib_errorprocessGStream#ib_errorstreamH   DAT*   < D X ` p x            , 4 L T |      , @ X h      FD@D$$($699, 6d 0 iw_parent#ib_cancel< ( !DAT*8*80<80,$84(@(8z'8?z&z&8Tz&)98$)8$)81$)8$84(@(8z'8?z&z&8z&)98$$),84$)<81D$18L3@3$)d8l$)t8DAT*$1 |$1)81$8)8$8)8$86)8$86)8$8 80)8$8$3@3$)88@$8H3@3$)X8`$8h,6)p8x$)8DAT*}1<,,&* < \x !$ &H'X()*+,8-n.02345dY pl_ridps_metriccodeli_retvalll_newrowll_newridls_leveltypegs_user_idsqlca '1; H@S@0 SOURCE ERRORSRCDEVdw_activities!DAT*ref_rid = AND metric_code = '' AND value = 'Y' AND isNull(end_date_time)setfilterI!filter!rowcount4!f_clearfilter!' AND value = 'N' AND isNull(end_date_time)I!!4!end_date_timesetitemgeOZ!!insertrow(!ridOZ!ref_ridOZ!metric_codePZ!metric_level_typeZPZ!valueYPZ!creaDAT*tion_date_timeOZ!start_date_timeOZ!user_idPZ!updated,          $ , 4 < D d l t |             8 @ X ` p x  !8*80<80,$84(@DAT*(8z'8?z&z&8Tz&)98$)8$)81$)8$84(@(8z'8?z&z&8z&)98$$),84$)<81D$18L3@3$)d8l$)t8$1 |$1)81DAT*$8)8$8)8$86)8$86)8$8 80)8$8$3@3$)88@$8H3@3$)X8`$8h,6)p8x$)8}1<,,&* < DAT*\x !$ &H'X()*+,8-n.02345dY pl_ridps_metriccodeli_retvalll_newrowll_newridls_leveltypegs_user_idsqlca '1; H@S@0 SOURCE ERRORSRCDEVdw_activities!ref_rid = AND metric_code = '' AND value = 'N' AND isNull(end_date_time)setfiltDAT* erI!filter!rowcount4!f_clearfilter!' AND value = 'Y' AND isNull(end_date_time)I!!4!end_date_timesetitemOZ!!insertrow6(!ridOZ!ref_ridOZ!metric_codePZ!metric_level_typePZ!valueNPZ!creation_date_timeOZ!start_date_timeOZ!user_idPZ!DAT*"updated,          $ , 4 < D d l t |             8 @ X ` p x  R,$,81F,$$d message::message(@@,DAT*$ iw_parent,# ^@  $ b* 0*8HP$X$ |,d `8 dw_activities!dw_1("(control@c@!("  0 8H P X "$($d 0 dw_activities!dw_1 "DAT*& ( "123456L"2 log_errlog_writewrite_activity_datacheck_cancelf_writeactivityerrorf_clearactivityerrorf_get_sequence+constructor+create+destroy..;P@eet2 o widthheightbackcolorDAT*Ldw_activitiesdw_1iw_parentib_wrotemainheaderib_wroteactheaderil_level_type. - 2<Oa] o. @@L1    @DAT**forward global type u_log_file from UserObject end type type cb_new from commandbutton within u_log_file end type type sle_log_file from singlelineedit within u_log_file end type type cb_view from commandbutton within u_log_file end type type gb_log_file from groupbox within u_log_file end type end forward global type u_log_file from UserObject int Width=1564 int Height=289 long BackColor=12632256 cb_new cb_new sle_log_file sle_log_file cb_view cb_view gb_log_file gb_log_file DAT*, end type global u_log_file u_log_file type variables Integer ii_log_file // Handle of log file String is_fileName // File name of log file Integer ii_sum_r_file // Handle of rcd type summary file Integer ii_sum_m_file // Handle of msg type summary file Integer ii_sum_b_file // Handle of bad reference value check file String is_file_m_Name // File name of rcd type summary String is_file_r_Name // File name of msg type summary String is_file_b_Name // File name of bad reference value DAT*.check file end variables forward prototypes public subroutine f_write (string ps_message) public subroutine f_close_log () public subroutine f_write_sum_m (string ps_message) public subroutine f_write_sum_r (string ps_message) public subroutine f_open_sum_files () public subroutine f_write_sum_b (string ps_message) end prototypes public subroutine f_write (string ps_message);fileWrite(this.ii_log_file,ps_message) end subroutine public subroutine f_close_log ();IF ii_log_file <>DAT*0 -1 THEN FileClose( ii_log_file ) ii_log_file = -1 sle_log_file.enabled = True END IF IF ii_sum_m_file <> -1 THEN FileClose( ii_sum_m_file ) ii_sum_m_file = -1 END IF IF ii_sum_r_file <> -1 THEN FileClose( ii_sum_r_file ) ii_sum_r_file = -1 END IF IF ii_sum_b_file <> -1 THEN FileClose( ii_sum_b_file ) ii_sum_b_file = -1 END IF end subroutine public subroutine f_write_sum_m (string ps_message);fileWrite(this.ii_sum_m_file,ps_message) end subroutine public suDAT*2broutine f_write_sum_r (string ps_message);fileWrite(this.ii_sum_r_file,ps_message) end subroutine public subroutine f_open_sum_files ();string ls_fullfile, ls_filename, ls_path integer li_pos, li_strlen li_pos = Pos(is_filename, ".", 1) ls_fullfile = Left(is_filename, li_pos - 1) li_strLen = len(ls_fullfile) FOR li_pos = li_strLen to 1 STEP -1 IF mid(ls_fullfile,li_pos,1) = "\" THEN ls_filename = mid(ls_fullfile,li_pos + 1) ls_path = left(ls_fullfile,li_pos) EXIT END IFDAT*4 NEXT IF len(ls_filename) < 8 THEN is_file_m_name = ls_path + ls_filename + "M.TXT" is_file_r_name = ls_path + ls_filename + "R.TXT" is_file_b_name = ls_path + ls_filename + "B.TXT" ELSE is_file_m_name = ls_path + left(ls_filename,7) + "M.TXT" is_file_r_name = ls_path + left(ls_filename,7) + "R.TXT" is_file_b_name = ls_path + left(ls_filename,7) + "B.TXT" END IF ii_sum_m_file = FileOpen( is_file_m_name, LineMode!, Write!, & LockReadWrite!, Replace! ) DAT*6 ii_sum_r_file = FileOpen( is_file_r_name, LineMode!, Write!, & LockReadWrite!, Replace! ) ii_sum_b_file = FileOpen( is_file_b_name, LineMode!, Write!, & LockReadWrite!, Replace! ) end subroutine public subroutine f_write_sum_b (string ps_message);fileWrite(this.ii_sum_b_file,ps_message) end subroutine on constructor;ii_log_file = -1 ii_sum_m_file = -1 ii_sum_r_file = -1 ii_sum_b_file = -1 end on on u_log_file.create this.cbDAT*8_new=create cb_new this.sle_log_file=create sle_log_file this.cb_view=create cb_view this.gb_log_file=create gb_log_file this.Control[]={ this.cb_new,& this.sle_log_file,& this.cb_view,& this.gb_log_file} end on on u_log_file.destroy destroy(this.cb_new) destroy(this.sle_log_file) destroy(this.cb_view) destroy(this.gb_log_file) end on type cb_new from commandbutton within u_log_file int X=1175 int Y=53 int Width=330 int Height=85 int TabOrder=30 string Text="Files..." intDAT*: TextSize=-8 int Weight=700 string FaceName="MS Sans Serif" FontFamily FontFamily=Swiss! FontPitch FontPitch=Variable! end type on clicked;// User wants to specify/choose a file to log information // // Modification History // When Who What // ------- --- ---------------------------------------------- // 03DEC96 EJP Created object // Declare local variables INTEGER li_ret_value STRING ls_docname STRING ls_named // User wants to open a log file // Make sure any DAT*<other open log file is closed IF ii_log_file <> -1 THEN li_ret_value = MessageBox( "Action Requested", & "A log file is already open." + & "~n~r~n~rDo you want to close it?", & Question!, YesNo! ) If li_ret_value = 1 THEN f_close_log() ELSE Return END IF END IF // Get log file name from user li_ret_value = GetFileSaveName( "Select Log File", & ls_docname, ls_named, "TXT", & DAT*> "Text Files (*.txt),*.txt, All Files (*.*),*.*" ) IF li_ret_value = 1 THEN // Check to see if specified log file already exists IF FileExists( ls_docname ) THEN // File already exists // Ask user to Append/Overwrite/Cancel OpenWithParm( w_logstat, ls_docname + " already exists" ) // Button selected is returned in message.DoubleParm li_ret_value = message.DoubleParm END IF CHOOSE CASE li_ret_value CASE 1 // File doesn't exist orDAT*@ user wants to Overwrite ii_log_file = FileOpen( ls_docname, LineMode!, Write!, & LockReadWrite!, Replace! ) CASE 2 // User wants to Append file ii_log_file = FileOpen( ls_docname, LineMode!, Write!, & LockReadWrite!, Append! ) CASE ELSE // User wants to cancel return END CHOOSE sle_log_file.text = ls_docname is_fileName = ls_docName END IF // end end on type sle_log_file froDAT*Bm singlelineedit within u_log_file int X=55 int Y=105 int Width=1070 int Height=77 int TabOrder=20 boolean Enabled=false BorderStyle BorderStyle=StyleLowered! boolean HideSelection=false long TextColor=33554432 int TextSize=-8 int Weight=700 string FaceName="MS Sans Serif" FontFamily FontFamily=Swiss! FontPitch FontPitch=Variable! end type type cb_view from commandbutton within u_log_file int X=1175 int Y=157 int Width=330 int Height=85 int TabOrder=40 string Text="View..."DAT*D int TextSize=-8 int Weight=700 string FaceName="MS Sans Serif" FontFamily FontFamily=Swiss! FontPitch FontPitch=Variable! end type on clicked;// User wants to view a log file SetPointer( HourGlass! ) // Declare local variables STRING ls_docname STRING ls_named INTEGER li_ret_status // Check to make sure the log file is currently closed. // (You cannot view an open file.) IF ii_log_file <> -1 THEN // Log file is open li_ret_status = MessageBox( "Log File Manager", DAT*F& "A log file must be closed before you can view it.~r~r" + & "Would you like to close the log file that is currently open?", & Question!, YesNoCancel! ) IF li_ret_status = 1 THEN // User wants to close the log file. f_close_log() ELSEIF li_ret_status = 2 THEN // User wants to go ahead anyway // (they may want to view a different file) // (Continue below) ELSE // User wants to cancel out Return ENDDAT*H IF END IF // Allow the user to specify file to be viewed li_ret_status = GetFileOpenName( "Select Log File", & ls_docname, ls_named, "TXT", & "Text Files (*.txt),*.txt,All Files (*.*),*.*" ) // Use PowerBuilder Application Library file viewer to view selected file IF li_ret_status = 1 THEN IF ii_log_file <> -1 AND ls_docName = is_filename THEN messageBox("Log File Manager","File is currently open, unable to view") ELSE f_display_fDAT*Jile( ls_docname ) END IF ELSEIF li_ret_status = -1 THEN // Error opening file. MessageBox( "Emission Estimator", "Unable to open " + ls_docname, & Exclamation!, OK! ) END IF // end end on type gb_log_file from groupbox within u_log_file int Width=1546 int Height=265 int TabOrder=10 string Text="Log File" BorderStyle BorderStyle=StyleLowered! long TextColor=8388608 long BackColor=12632256 int TextSize=-8 int Weight=700 string FaceName="MS Sans Serif" DAT*IFontFamily FontFamily=Swiss! FontPitch FontPitch=Variable! end type DAT*N     1 4(2?h8x3Sn4up56"L  DAT*Pb%8,)$8,H1V,,$.d, ancestorreturnvaluesqlca::message<@"@4 constructorsettransobject^$ , %L%2  +constructor2 + xytaborderdataobjectlivescrolld ) DAT*Rt ] o)i @ t@ @ %LJ,)8,01>, $d sqlca::message(@@( DAT*Tsettransobject^  %L%2  +constructor2 - xywidthheighttaborderlivescrollx ) i "] o)i  @  @ @DAT*B %LDAT*X$1%$R$$1,$1@$1H$1P$1X$1,,`$1h$1%px$1%$1R$1@8$1@8$1@8$1DAT*Z@8$1@8$1@8,8(@(8z'8z&)8$80)8$80)X8 1 `$18h)|8 1 $18)8 1 $18)8 1 $18)DAT*\8 1 $18)8 1 $18)8 1 $18)$8 1 ,$184)@8 1  H$18P)\8 1  d$18l)8 1  $18)8 1  $18)8 1 DAT*^ 80 1 $18)8 1 $18)8 1% 1 80 1% 1 80 1%T 1 80 1% 1 80 1% 1 80 1% 1 80 1%4  DAT*`1 80 1%l  1 80 1 %  1  80 1 %  1  80 1 %  1  80 1 %L  1  80 1 %  1  80 1%  1 80 1%  1 808 1DAT*b%z%80z&83z& 1%z&80z&8:z& 1%z&D$6)L88T 1%z%80z&83z& 1%z&80z&8:z& 1%z&l$6)t88| 1%z%80z&8z& 1%z&80z&8z& 1 %z&80z&8z& 1 %z&$6)88DAT*d 1 %z%80z&8z& 1 %z&80z&8z& 1 %z&80z&8 z& 1%z&$6)$88, 1%z%8$6)@8H$80)P8 1 )d8  |"D@D$ 8h)l8 8t)868. 1%8DAT*f*)8L"8 1%1o@o88)8L"8 1%8)8L"8 1%,p1o@o88)8L"8 1%8)8L"8DAT*h"$88Az%)|98$)8$)8111$8J8IV1d)8L"8$1%1~66) 8L"8(($0$1)L81o@DAT*jo88$66)T8L"8\d$l$1)81o@o8866)8L"8t$$1)81o@o88p66)8L"8$8)8$)8 $)DAT*l81$8$),8~@~811"D$666)`81Rh$8)p8x$)8L"8$8)8$)8$)81F$8$)8~@~DAT*n811".$666)81R $8) 8 $) 8L"8 ( $80 )P 8X $)` 8h $)p 81x $8$) 8~@~811 " $666) 81RDAT*p $8) 8 $) 8L"8 $1B  $8 ) 8 $) 81o@o88 $666) 81R8L"8 61T2 $8 ) 8( $)0 81DAT*ro@o888 $666)@ 81RJL"8H H1fDP $8X )d 8l $) 81o@o88, $666) 81R\L"8 (1x$ $8 ) 8@DAT*t83@3$  $666) 81RnL"8 1X $8 ) 8@83@3$ $666) 81RNL"8 L"( $)0 81ZL"@8@88 DAT*v$8X )@ 8H $8P )\ 8 d $8$)l 880t $ $ $ $ $18 ) 8 $ $ $6! $ $ $18) 8"8 0!",, $1d !80!",DAT*xl,$ $1R!, $8 )4 8R!,D MMbMiMMbMi 6%@%8MM"#4"MMMM"4"8< z%M2(@(8z(8V z&M2(@(8z(\ $666)d 81RP  1R)| 8x"|"Z $80)DAT*z 8 $) 81"H#) 8#H# $8 J 8) 8"&Dt'f()*+,.01.23456 7R8?BCEDFGHI4JpKLM$N`OPQR4SpUVWXTYZ[\4 ]l ^ _ ` aL b c e il k o q0 v x }  2@Zhz*BDAT*||6b(Dfv6\~$<|"NpPn4Pr.BFh  & d &P| " #8$b%'(+,..2/J0t1347,8@:D;\=>A C E$F<HfILNPUW>XhYZ[\]$^6_R`acd i DAT*~j k m$ n( o, p0 q4 r8 u< xJ yd ~v z ~           !! !!"!:!R!t!!!!4"H"L"`"t"x"|""""##D#d pw_parentpl_ridpdw_checksll_rowsll_activityrowsll_dw_strm_rowll_dw_strm_countll_sched_countls_log_linels_fields@ w_mdi_mainsqlcall_loopcountll_checkcountll_filtercountll_workvarll_workloopll_workvar2ls_checkidls_errmsgls_workvarls_workvar1ls_workvar2lsDAT*_workvar3ls_workvar4ls_workvar5case147ldec_min_amtldec_max_amtldec_default_unit_factorldec_user_unit_factorldec_act_valuels_actvaluels_devicecodels_processcode  $,<K\k w-@@DAT*     es& d_2 w_> onJ S> `> m> > > wi tw sy   dw_1"retrieve2Retrieving Process Activities...setmicrohelpZMdw_activitiesDAT*Drop Down for reference code look upforward global type u_ref_code_table_dddw from u_dddw end type end forward global type u_ref_code_table_dddw from u_dddw int Width=1226 int Height=113 string DataObject="d_ref_codes_table_dddw" boolean Border=false end type global u_ref_code_table_dddw u_ref_code_table_dddw on itemfocuschanged;call u_dddw::itemfocuschanged;is_child_name = 'code' is_validation_table = 'rap_reference_codes' is_msg_name = 'Column - Reference Code' is_msg_text = 'SDAT*orry! Not a valid reference code' end on on constructor;call u_dddw::constructor;string ls_err DataWindowChild dwic ls_err = this.Modify("ref_code_t.text = 'Input Reference:'") IF ls_err <> '' THEN MessageBox('dwModify this failed', ls_err) END IF // Make the external datawindow display by using InsertRow this.SetTransObject(SQLCA) this.InsertRow(0) //// Retrieve data for child datawindow // //IF this.dwGetChild("code", dwic) = -1 THEN // MessageBox(This.Title, "ApplicatDAT*ion Error:~nReference Code - " + & // "Not a DataWindowChild.~nContact your technical support.") // return //END IF // //dwic.SetTransObject(sqlca) //// REJ 18MAR96 No longer retrieval argument //dwic.Retrieve() ////dwic.Retrieve('MASS FLOW') end on DAT*d!PRO2process?Erec_countm@?Edw_streams@'2dw_schedules(2?E?Eil_emisfact))is_emisfact4*4*4*4*?E?E))4*4*4*4*Checking Process: ...ZMuo_log-Processf_write1-=============================================================================1"DAT*idgetitemstring1k"code1k"name$k"operator_idk"operator_codek"operator_namek"group_flagk"group_typek"mode_typek"primary_material_codek"daily_schedule_codek"weekly_schedule_codek,"scc_ams_codek"comment_text8kAgency Process Id: Code: Name: -1Operator PDAT*rocess Id: -1Group Flag: Group Type: Mode: Primary Material Code: %-1Daily Schedule Code: Weekly Schedule Code: Yearly Schedule Code: SCC/AMS Code: -1Comments: -1-1rowcount 4Xkerror_messagekPRO001@log_err1PRO002PPR1PRO003PR-00)1PRO004BAD1PRO005999999991PRO101(begin_month_no = '1' OR begin_month_no = '4' OR begin_month_no = '7DAT*' OR begin_month_no = '10'setfilterIo(filter(4X(relative_activity_amtgetitemnumber 1PRO201)f_logemissiondata88PRO202iw_parent#4*f_get_units_name88PRO203#4*f_get_materials_namet8PRO204#4*t8PRO501d!metric_code = 'H/D USE RATE'nd Iod!d!4Xd!value kil_level_type 4&DAT*write_activity_data3Ld!Iod!PRO502d!metric_code = 'D/W USE RATE' Iod!d!4Xd!k4&3Ld!Iod!PRO503 d!metric_code = 'W/Q USE RATE'1Iod!d!4Xd!k4&3Ld!Iod!PRO504d!value_unit_codek#84&3LPRO505d!material_codek#t4&DAT*3LPRO506d!metric_codek#f_get_metrics_namet 4&3LPRO507d!start_date_timegetitemdatetime 4&3LPRO508d!end_date_time 4&3LPRO509d!4Xd!kd!value_typekd!k#iu_cc_source| 7G#| 7G"type&k#iu_cc_device 8His_sourcetype )# 8H"kGENERICd!DAT*Checkboxes to select Warning, Alert, or Notice Levelforward global type u_stringency_level_select from UserObject end type type cbx_notice from checkbox within u_stringency_level_select end type type cbx_alert from checkbox within u_stringency_level_select end type type cbx_warning from checkbox within u_stringency_level_select end type type gb_1 from groupbox within u_stringency_level_select end type end forward global type u_stringency_level_select from UserObject int Width=1559 DAT*int Height=165 long BackColor=12632256 cbx_notice cbx_notice cbx_alert cbx_alert cbx_warning cbx_warning gb_1 gb_1 end type global u_stringency_level_select u_stringency_level_select type variables INTEGER ii_severity // Stringency Lavel end variables on constructor;ii_severity = 1 end on on u_stringency_level_select.create this.cbx_notice=create cbx_notice this.cbx_alert=create cbx_alert this.cbx_warning=create cbx_warning this.gb_1=create gb_1 this.Control[]={ this.cbx_noDAT*tice,& this.cbx_alert,& this.cbx_warning,& this.gb_1} end on on u_stringency_level_select.destroy destroy(this.cbx_notice) destroy(this.cbx_alert) destroy(this.cbx_warning) destroy(this.gb_1) end on type cbx_notice from checkbox within u_stringency_level_select int X=1116 int Y=73 int Width=293 int Height=73 string Text="Notice" BorderStyle BorderStyle=StyleLowered! long TextColor=8388608 long BackColor=12632256 int TextSize=-8 int Weight=400 string FaceName="MS Sans SeriDAT*f" FontFamily FontFamily=Swiss! FontPitch FontPitch=Variable! end type on clicked;IF this.checked = TRUE then cbx_alert.checked = TRUE // Set Stringency Level ii_severity = 3 ELSE // Set Stringency Level ii_severity = 2 END IF end on type cbx_alert from checkbox within u_stringency_level_select int X=673 int Y=73 int Width=247 int Height=73 string Text="Alert" BorderStyle BorderStyle=StyleLowered! long TextColor=8388608 long BackColor=12632256 int TextSizDAT*e=-8 int Weight=400 string FaceName="MS Sans Serif" FontFamily FontFamily=Swiss! FontPitch FontPitch=Variable! end type on clicked;IF cbx_notice.checked = TRUE then cbx_notice.checked = FALSE END IF // Set Stringency Level IF this.checked = TRUE then ii_severity = 2 ELSE ii_severity = 1 END IF end on type cbx_warning from checkbox within u_stringency_level_select int X=142 int Y=73 int Width=339 int Height=73 string Text="Warning" BorderStyle BorderStyle=StyleLowerDAT*ed! boolean Checked=true long TextColor=8388608 long BackColor=12632256 int TextSize=-8 int Weight=400 string FaceName="MS Sans Serif" FontFamily FontFamily=Swiss! FontPitch FontPitch=Variable! end type on clicked;this.checked = TRUE end on type gb_1 from groupbox within u_stringency_level_select int X=5 int Width=1546 int Height=161 int TabOrder=1 string Text="Stringency Level" BorderStyle BorderStyle=StyleLowered! long TextColor=8388608 long BackColor=12632256 int TextDAT*Size=-8 int Weight=700 string FaceName="MS Sans Serif" FontFamily FontFamily=Swiss! FontPitch FontPitch=Variable! end type DAT*k Value must be between and 4&3Lcheck_cancel4l -1'4X4l 'rid f_run_stream}  $ \ t              $ , @ H P X ` h p x            X ` |  DAT*          $ , @ H \ d          D L l t    $ 8 @ H P d l        |           ( 0 L T d l  DAT*             , D ` h p x                ( P X ` h p x                ( 0 8 @ P d l  DAT*          ( 0 8 @ H \ d l t              $ , 4 \ d |         d  $#~8(06)|8806)89}DAT*)88$1%(@(8z'z&$$1%(@(8z(z&8$1%6(@(8z(z&@$1%6(@(8z(6)H88Px$1%6(@(8z'z&$1%6(@(8z(6)8$9}$ > DAT*P j~&!@d7 ps_errmsgps_checkidls_loglinels_gutterspaceP   (x ib_wroteactheader %Factor Data Value Exponent Units Materiallog_write2p----------------- --------- ------------ --------- --------------------2p %log_err1 il_emisfact))is_emisfact,DAT**,*2p ,*,*2piw_parent#ib_errorprocessG |     $ 8 @ H x     f"8$8,0,L1Z,4$2d& ancestorreturnvalue::message(@< constructoril_level_typeDAT*&Process$ 4 8*$<*DT$}\1<Rd$l1<Rt$(>Zd icurrent|H createdw_streams'dw_schedules,(,controlLc@Lc@'Lc@,( $< DT \ d lDAT* t 48$4$ d < destroydw_streams'dw_scheduleshed$( 4 "78L"2 > f_runf_logemissiondata+constructor+create+destroyd. -52 P dw_streamsdw_schedulesil_emisfact@is_emisfact@,DAT*DP  , /D8/] o. @@P1    @       x33$,7?hPDAT*8Qlx"L^nfnL%2  2  ] o)i @ Y@ @ L%2  2  DAT* dataobject] o)i  @ @ @ J,)8,01>, $d sqlca::message(@@( settransobject^  %DAT*L%2  +constructor2 C xywidthheighttaborderbringtotopdataobjectlivescroll  i"-8] oi @ @ DAT*@ Ql%LJ,)8,01>, $d sqlca::message(@@( settransobject^  %L%2  +constructor2 C xywidthheighttaborderbringtotopdataobjectlivescroll DAT* i("-8] oi( @ @ @ Ql%LDAT*   QCw_ccheck_parameters.RLRCdatawindow.nt*BSLQT x _initsrcu_cc_baseu_cc_sourceuserobjectswindowobjectborderstyleu_cc_base`dw_activitiesdw_activitiesdwobjectpowerobjectu_cc_base`dw_1dw_1w_ccheck_parametersdatawindowdw_devicesstructuremailrecipientenvironmentmailfiledescriptionmailmessagedatawindowchildlistviewitemtreeviewitemconnectioninfodw_location_coordsw_mdi_maintransactionu_lDAT*Has 'From' and 'To' date controls on itforward global type u_time_period_select from UserObject end type type em_todate from editmask within u_time_period_select end type type em_from from editmask within u_time_period_select end type type st_3 from statictext within u_time_period_select end type type st_2 from statictext within u_time_period_select end type type st_1 from statictext within u_time_period_select end type type gb_1 from groupbox within u_time_period_select end type enDAT*d forward global type u_time_period_select from UserObject int Width=1559 int Height=261 long BackColor=12632256 em_todate em_todate em_from em_from st_3 st_3 st_2 st_2 st_1 st_1 gb_1 gb_1 end type global u_time_period_select u_time_period_select on constructor;em_from.text = "" em_todate.text = "" end on on u_time_period_select.create this.em_todate=create em_todate this.em_from=create em_from this.st_3=create st_3 this.st_2=create st_2 this.st_1=create st_1 this.gb_1=DAT*create gb_1 this.Control[]={ this.em_todate,& this.em_from,& this.st_3,& this.st_2,& this.st_1,& this.gb_1} end on on u_time_period_select.destroy destroy(this.em_todate) destroy(this.em_from) destroy(this.st_3) destroy(this.st_2) destroy(this.st_1) destroy(this.gb_1) end on type em_todate from editmask within u_time_period_select int X=1020 int Y=73 int Width=403 int Height=101 int TabOrder=20 Alignment Alignment=Center! BorderStyle BorderStyle=StyleLowered! string MasDAT*k="mm/dd/yy" MaskDataType MaskDataType=DateMask! boolean Spin=true double Increment=1 string MinMax="~~" long TextColor=33554432 int TextSize=-8 int Weight=400 string FaceName="MS Sans Serif" FontFamily FontFamily=Swiss! FontPitch FontPitch=Variable! end type on modified;IF date(this.text) < date(em_from.text) THEN messageBox("Action Required","The 'TO' date must be " + & " greater than or equal to em_fromdate") this.setFocus() END IF end on on constructor;this.text DAT*= string(today()) end on type em_from from editmask within u_time_period_select int X=348 int Y=73 int Width=394 int Height=101 int TabOrder=10 Alignment Alignment=Center! BorderStyle BorderStyle=StyleLowered! string Mask="mm/dd/yy" MaskDataType MaskDataType=DateMask! boolean Spin=true double Increment=1 string MinMax="01/01/90~~01/01/99" long TextColor=33554432 int TextSize=-8 int Weight=400 string FaceName="MS Sans Serif" FontFamily FontFamily=Swiss! FontPitch FontPitch=VarDAT*iable! end type on modified;IF date(this.text) > date(em_todate.text) THEN messageBox("Action Required","The 'FROM' date must be " + & " less than or equal to em_todate") this.setFocus() END IF end on on constructor;this.text = string(today()) end on type st_3 from statictext within u_time_period_select int X=522 int Y=181 int Width=663 int Height=61 boolean Enabled=false string Text="(either or both are optional)" Alignment Alignment=Center! boolean FocusRectangleDAT*=false long BackColor=12632256 int TextSize=-8 int Weight=400 string FaceName="Arial" FontFamily FontFamily=Swiss! FontPitch FontPitch=Variable! end type type st_2 from statictext within u_time_period_select int X=778 int Y=85 int Width=229 int Height=73 boolean Enabled=false string Text="To Date:" Alignment Alignment=Right! boolean FocusRectangle=false long TextColor=8388608 long BackColor=12632256 int TextSize=-8 int Weight=400 string FaceName="MS Sans Serif" FontFamily FDAT*ontFamily=Swiss! FontPitch FontPitch=Variable! end type type st_1 from statictext within u_time_period_select int X=78 int Y=85 int Width=261 int Height=73 boolean Enabled=false string Text="From Date:" Alignment Alignment=Right! boolean FocusRectangle=false long TextColor=8388608 long BackColor=12632256 int TextSize=-8 int Weight=400 string FaceName="MS Sans Serif" FontFamily FontFamily=Swiss! FontPitch FontPitch=Variable! end type type gb_1 from groupbox within u_time_perDAT*<iod_select int X=5 int Y=5 int Width=1546 int Height=249 string Text="Time Period" BorderStyle BorderStyle=StyleLowered! long TextColor=8388608 long BackColor=12632256 int TextSize=-8 int Weight=700 string FaceName="MS Sans Serif" FontFamily FontFamily=Swiss! FontPitch FontPitch=Variable! end type DAT*og_filemessageD@'@3@@@Ldr@{@@d@@g@g@ @ g@@g@ @ g@@g@ @ @@&@@@3@$DAT*B$U)@!`@l@w@    9. )!z% y% y% y%B.V,80),8<$)T8DAT*8\z%8vz&-(@(8z(8z&$)88$)8,80)8 $-8 0)8$$1%8@$1%H$ R\$-)d8,,- ,l$1L 1R  1R 1R 1RDAT* 1R, ,t$1L   =   80  =   80 =  80 =6  1 =^  1 =  1 =1H  %, =  80|$1%$1DAT*%$1R$80)8$80) 81 ($180)D81 L$18T)\81 d$18l)t81 |$18)81 $18)81 $18)81 $1DAT*8)81 $18)880)@)81  ($180)D880)@)81  L$18T)l81  801  801  801 t$18|)81 $18)81%DAT*<1 801%t1 801%1 801%1 801% 1 801%T 1 801% 1 801% 1 801 % 1  801 %DAT*4 1  801 %l 1  8081%z%8z&8z&1%z&8z&8z&1%z&8z&8z&1%z&8z&8z&1%z&$6)881%z%8z&8 z&1%z&8z&8z&1%z&8z&81z&1 %z&DAT*H$6)P88X1 %z%8z&8bz&8z&8iz&t$6)|888z%8z&1%z&$6)881%z%$6)8$80)8,8-(@(8z'8z&)8-)8-81)08"-80DAT*)88"1o@o88 p-#-8@)P8*"68X*`$18T)h88p#")|8,8*N$18l)88J#")8,8*$18)88@981#")8,8*%DAT*$18T)8&$18)8' $18|)8$%&z%'z&$8%8&8"'8"#")8,8$*$,$18|)48$8$6)P8##")X8,8`*F$h$18)p8&$,DAT*&1o@o88xB#")|8,8*$$18)8$8$8"#")8,8*X 1   T  =8P#")8,8* 1    =8  =8 =8DAT*" =1" =1"  =8 =8" =1" =1"#")8~,8*$ 1      =8#")8,8*l 1T   h =8#d  =8 =8" =1" =1DAT*"d  =8 =8" =1" =1"d#")48J,8<* 1    =8 =6)D8##")L8,8T* 1F     =8[#")x8<,8* 1 DAT*   =8  =8 =8" =1" =1"  =8 =8" =1" =1"#")8,8*-,h,80$1%$1%$1R8#")8,8DAT** -,`$ )8$8),84$)D8 L$)T8\$1%dl$1%t$ R 1N1 N|$ 8J85J#")8$8)8$)8,8*2 -,DAT*$ )8$8)8 $) 8  $) 8 11f ! $ 8( J8 8!3@ G!3P G"#")` 8\h $8)p 8x $) 8,8 * -,P $ ) 8 $8) 8 $)DAT* 8  $) 8 11 ! $ 8 J 8!3 G!3 G"#") 8 $8)$ 8, $)4 8,8< *l$&,d #&8C z%#z&$8E $8K "h#")P 8,8X *!` $8h ) 8DAT* $) 8 $) 81 $ $8 ) 8& $$) 8&1o@o88x  $6#6"6)0 81R8 $8)@ 8H $)P 8,8X *"` $8h ) 8 $) 8 $) 81DAT*!"$ $8 ) 8& $$) 8&1o@o88xr" $6#6"6) 81R! $8) 8 $) 8,8 *$ $) 81##$( $80 )@ 8&H $$)d 8&1DAT*o@o88x#l $6#6"6)t 81R#,8| *4% $) 81R$0%$ $8 ) 8& $$) 8&1o@o88x% $6#6"6) 81RH$,8 *h& $) 81%DAT*d&$ $8 ) 8& $$)< 8&1o@o88xL&D $6#6"6)L 81R|%,8T *j'\ $)d 81&f'l $8t ) 8@83@3$N' $6#6"6) 81R&,8 *DAT*l( $) 81'h( $8 ) 8@83@3$P( $6#6"6) 81R',8 * , $)81(,+@8,@8$ $8 )8($8$)0808$DAT*Parameter input screen for consistency checker moduleforward global type w_ccheck_parameters from Window end type type cb_cancel from commandbutton within w_ccheck_parameters end type type cb_viewdw from commandbutton within w_ccheck_parameters end type type cb_rules from commandbutton within w_ccheck_parameters end type type uo_log from u_log_file within w_ccheck_parameters end type type dw_concheck from datawindow within w_ccheck_parameters end type type cb_exit from commandbutton wDAT*ithin w_ccheck_parameters end type type cb_run from commandbutton within w_ccheck_parameters end type type uo_time from u_time_period_select within w_ccheck_parameters end type type uo_s_level from u_stringency_level_select within w_ccheck_parameters end type type st_1 from statictext within w_ccheck_parameters end type type dw_ref_code from u_ref_code_table_dddw within w_ccheck_parameters end type type uo_c_level from u_level within w_ccheck_parameters end type end forward type sDAT*tr_errors from structure string rec_type long rec_count long warnings long alerts long notices end type global type w_ccheck_parameters from Window int X=609 int Y=109 int Width=1715 int Height=1665 boolean TitleBar=true string Title="Consistency QA Checker" long BackColor=12632256 boolean ControlMenu=true boolean MinBox=true boolean MaxBox=true boolean Resizable=true cb_cancel cb_cancel cb_viewdw cb_viewdw cb_rules cb_rules uo_log uo_log dw_concheck dwDAT* _concheck cb_exit cb_exit cb_run cb_run uo_time uo_time uo_s_level uo_s_level st_1 st_1 dw_ref_code dw_ref_code uo_c_level uo_c_level end type global w_ccheck_parameters w_ccheck_parameters type variables u_cc_geo iu_cc_geo //nvo for geo logic u_cc_source iu_cc_source //nvo for source logic u_cc_device iu_cc_device //nvo for device logic u_cc_process iu_cc_process //nvo for process logic u_cc_stream iu_cc_stream //nvo for stream logic BOOLEAN ib_wrote_header // Already wrote heDAT* ader to log file? BOOLEAN ib_cancel // Flag to interrupt processing str_errors facility[5] // Structures for Err Counts str_errors device[2] // Structures for Err Counts str_errors process[4] // Structures for Err Counts str_errors stream[1] // Structures for Err Counts LONG il_sourceCount // Total Records for each level LONG il_deviceCount LONG il_processCount LONG il_streamCount BOOLEAN ib_errorSource // Flags to indicate error was found BOOLEAN ib_errorDevice BOOLEAN ib_errDAT*orProcess BOOLEAN ib_errorStream end variables forward prototypes public function integer f_open_file (string as_filename) public subroutine f_writelogheader () public subroutine f_run_source (long pl_source_rid) public subroutine f_run_device (long pl_device_rid) public subroutine f_run_geo () public subroutine f_run_process (long pl_process_rid) public subroutine f_run_stream (long pl_stream_rid) public function string f_get_sic_name (ref string ps_code) public function string f_DAT*get_units_name (ref string ps_code) public function string f_get_materials_name (ref string ps_code) public function string f_get_metrics_name (ref string ps_code) public subroutine f_rpt_rcd_type () public function string f_rightjustifystring (string ps_string, long pl_width) public function string f_rightjustifylong (long pl_num, long pl_width) public subroutine f_rpt_msg_type () public subroutine f_logmessages (string ps_msgtype) public function string f_leftjustify (string ps_string, lDAT*ong pl_width) public subroutine f_rpt_badrefvalues () end prototypes public function integer f_open_file (string as_filename); RETURN FileOpen(as_filename, & LineMode!, Write!, LockWrite!, Replace!) end function public subroutine f_writelogheader ();STRING ls_refId ls_refId = dw_ref_code.getItemString(1,"Code") IF IsNull(ls_refId) THEN ls_refId = "" IF NOT ib_wrote_header THEN uo_log.f_write(" C O N S I S T E N C Y Q C R E P O R T") uo_log.f_write(""DAT*) uo_log.f_write("Start date/time: " + string(today()) + " / " + string(now()) + " Ref Id: " + ls_refId) uo_log.f_write("=======================================================================") uo_log.f_write(" ERROR DETAILS") uo_log.f_write("=======================================================================") uo_log.f_write("") END IF ib_wrote_header = TRUE end subroutine public subroutine f_run_source (long pl_source_rid);// FUNCTION f_run_sourceDAT* iu_cc_source = CREATE u_cc_source openUserObjectWithParm(iu_cc_source, this) iu_cc_source.move(this.x + this.width,this.y) // Reset error indicator flags ib_errorSource = False ib_errorDevice = False ib_errorProcess = False ib_errorStream = False il_sourcecount = il_sourcecount + 1 facility[1].rec_count = facility[1].rec_count + 1 iu_cc_source.f_run(this, pl_source_rid, dw_concheck) //Check if errors were found, if so write error activity record IF ib_errorSource OR & ib_erDAT*rorDevice OR & ib_errorProcess OR & ib_errorStream THEN iu_cc_source.f_writeActivityError(pl_source_rid, "SOURCE ERROR") ELSE iu_cc_source.f_clearActivityError(pl_source_rid, "SOURCE ERROR") END IF // Destroy user objects closeUserObject(iu_cc_source) end subroutine public subroutine f_run_device (long pl_device_rid);// FUNCTION f_run_device iu_cc_device = CREATE u_cc_device openUserObjectWithParm(iu_cc_device, this) iu_cc_device.move(this.x + this.width,this.y) /DAT*/ Reset error indicator flags ib_errorDevice = False ib_errorProcess = False ib_errorStream = False il_devicecount = il_devicecount + 1 device[1].rec_count = device[1].rec_count + 1 iu_cc_device.f_run(this, pl_device_rid, dw_concheck) //Check if errors were found, if so write error activity record IF ib_errorDevice OR & ib_errorProcess OR & ib_errorStream THEN iu_cc_device.f_writeActivityError(pl_device_rid, "DEVICE ERROR") ib_errorSource = TRUE ELSE iu_cc_device.f_clearDAT*ActivityError(pl_device_rid, "DEVICE ERROR") END IF // Destroy user objects closeUserObject(iu_cc_device) end subroutine public subroutine f_run_geo ();// FUNCTION f_run_geo // Local Variables LONG ll_source_rid LONG ll_row, ll_rowCount LONG ll_src_row, ll_src_count LONG ll_state_row,ll_state_count iu_cc_geo = CREATE u_cc_geo openUserObject(iu_cc_geo) iu_cc_geo.move(this.x + this.width,this.y) // Find Sources IF uo_c_level.istr_level.county > 0 THEN iu_cc_geo.dw_sourDAT*ces.retrieve(uo_c_level.istr_level.county) // Process each source RID // Get # of Sources for Loop ll_src_count = iu_cc_geo.dw_sources.rowCount() FOR ll_src_row = 1 to ll_src_count f_run_source(iu_cc_geo.dw_sources.getItemNumber(ll_src_row,"rid")) IF ib_cancel THEN // Destroy user object closeUserObject(iu_cc_geo) RETURN END IF NEXT ELSEIF uo_c_level.istr_level.state > 0 THEN iu_cc_geo.dw_counties.retrieve(uo_c_level.istr_level.state) // Get # of CDAT* ounties for Loop ll_rowCount = iu_cc_geo.dw_counties.rowCount() FOR ll_row = 1 to ll_rowCount iu_cc_geo.dw_sources.retrieve(iu_cc_geo.dw_counties.getItemNumber(ll_row,"rid")) // Process each source RID // Get # of Sources for Loop ll_src_count = iu_cc_geo.dw_sources.rowCount() FOR ll_src_row = 1 to ll_src_count f_run_source(iu_cc_geo.dw_sources.getItemNumber(ll_src_row,"rid")) IF ib_cancel THEN // Destroy user object closeUserObject(iu_cc_geo) DAT*" RETURN END IF NEXT NEXT ELSEIF uo_c_level.istr_level.nation > 0 THEN iu_cc_geo.dw_states.retrieve() ll_state_count = iu_cc_geo.dw_states.rowCount() FOR ll_state_row = 1 to ll_state_count iu_cc_geo.dw_counties.retrieve(iu_cc_geo.dw_states.getItemNumber(ll_state_row,"rid")) // Get # of Counties for Loop ll_rowCount = iu_cc_geo.dw_counties.rowCount() FOR ll_row = 1 to ll_rowCount iu_cc_geo.dw_sources.retrieve(iu_cc_geo.dw_counties.getItemNumber(llDAT*$_row,"rid")) // Process each source RID // Get # of Sources for Loop ll_src_count = iu_cc_geo.dw_sources.rowCount() FOR ll_src_row = 1 to ll_src_count f_run_source(iu_cc_geo.dw_sources.getItemNumber(ll_src_row,"rid")) IF ib_cancel THEN // Destroy user object closeUserObject(iu_cc_geo) RETURN END IF NEXT NEXT NEXT END IF // Destroy user object closeUserObject(iu_cc_geo) end subroutine public subroutine f_run_proceDAT*&ss (long pl_process_rid);// FUNCTION f_run_process iu_cc_process = CREATE u_cc_process openUserObjectWithParm(iu_cc_process, this) iu_cc_process.move(this.x + this.width,this.y) il_processcount = il_processcount + 1 process[1].rec_count = process[1].rec_count + 1 iu_cc_process.f_run(this, pl_process_rid, dw_concheck) // Destroy user objects closeUserObject(iu_cc_process) end subroutine public subroutine f_run_stream (long pl_stream_rid);// FUNCTION f_run_stream iu_cc_stream DAT*(= CREATE u_cc_stream openUserObjectWithParm(iu_cc_stream, this) iu_cc_stream.move(this.x + this.width,this.y) iu_cc_stream.f_run(this, pl_stream_rid, dw_concheck) // Destroy user objects closeUserObject(iu_cc_stream) end subroutine public function string f_get_sic_name (ref string ps_code);STRING ls_name SELECT rap_sic_codes.name INTO :ls_name FROM rap_sic_codes WHERE rap_sic_codes.code = :ps_code ; RETURN ls_name end function public function string f_get_uniDAT**ts_name (ref string ps_code);STRING ls_name SELECT rap_units.name INTO :ls_name FROM rap_units WHERE rap_units.code = :ps_code ; RETURN ls_name end function public function string f_get_materials_name (ref string ps_code);STRING ls_name SELECT rap_materials.name INTO :ls_name FROM rap_materials WHERE rap_materials.code = :ps_code ; RETURN ls_name end function public function string f_get_metrics_name (ref string ps_code);STRING ls_name SELECT rap_DAT*,metrics.name INTO :ls_name FROM rap_metrics WHERE rap_metrics.code = :ps_code ; RETURN ls_name end function public subroutine f_rpt_rcd_type ();INTEGER li_i, li_severity LONG ll_src_source[4] LONG ll_src_contact[4] LONG ll_src_legalent[4] LONG ll_src_loccoord[4] LONG ll_src_srcactiv[4] LONG ll_dev_device[4] LONG ll_dev_devactiv[4] LONG ll_pro_process[4] LONG ll_pro_specsched[4] LONG ll_pro_emisfact[4] LONG ll_pro_proactiv[4] LONG ll_str_stractiv[4] LONG DAT*.ll_rowcount, ll_error_value STRING ls_recType, ls_category STRING ls_gutterSpace = " " //Used for spacing between rpt columns // Initialize arrays FOR li_i = 4 to 1 STEP -1 ll_src_source[li_i] = 0 ll_src_contact[li_i] = 0 ll_src_legalent[li_i] = 0 ll_src_loccoord[li_i] = 0 ll_src_srcactiv[li_i] = 0 ll_dev_device[li_i] = 0 ll_dev_devactiv[li_i] = 0 ll_pro_process[li_i] = 0 ll_pro_specsched[li_i] = 0 ll_pro_emisfact[li_i] = 0 ll_pro_proactiv[li_i] = 0 ll_str_stracDAT*0tiv[li_i] = 0 NEXT // write header to log file uo_log.f_write_sum_r("===============================================================================") uo_log.f_write_sum_r("") uo_log.f_write_sum_r(" E R R O R C O U N T by R E C O R D T Y P E") uo_log.f_write_sum_r("") uo_log.f_write_sum_r("===============================================================================") uo_log.f_write_sum_r("") uo_log.f_write_sum_r("") uo_log.f_write_sum_r("") uo_log.f_write_sum_DAT*2r(" Total Warnings Alerts Notices") uo_log.f_write_sum_r("") // Set microhelp line w_mdi_main.setMicrohelp("Creating Error Count by Record Type report...") // Ensure CONCHECK datawindow is not filtered, then sum totals. dw_concheck.SetFilter("") dw_concheck.Filter() ll_rowCount = dw_concheck.rowCount() FOR li_i = 1 to ll_rowCount ls_recType = left(dw_concheck.getItemString(li_i,"id"),4) ls_category = right(ls_recType,1) li_severity = DAT*4dw_concheck.getItemNumber(li_i,"severity") ll_error_value = dw_concheck.getItemNumber(li_i,"error_count") CHOOSE CASE left(ls_recType,3) CASE "SRC" CHOOSE CASE ls_category CASE "0" // Source file checks ll_src_source[li_severity] = ll_src_source[li_severity] + ll_error_value CASE "1" // Contact checks ll_src_contact[li_severity] = ll_src_contact[li_severity] + ll_error_value CASE "2" // Coordinate Group checks ll_src_legalent[li_sevDAT*6erity] = ll_src_legalent[li_severity] + ll_error_value CASE "3" // Legal Entity Checks ll_src_loccoord[li_severity] = ll_src_loccoord[li_severity] + ll_error_value CASE "5" // Activity checks ll_src_srcactiv[li_severity] = ll_src_srcactiv[li_severity] + ll_error_value END CHOOSE CASE "DEV" CHOOSE CASE ls_category CASE "0" // Device file checks ll_dev_device[li_severity] = ll_dev_device[li_severity] + ll_error_value CDAT*8ASE "5" // Activity checks ll_dev_devactiv[li_severity] = ll_dev_devactiv[li_severity] + ll_error_value END CHOOSE CASE "PRO" CHOOSE CASE ls_category CASE "0" // Process file checks ll_pro_process[li_severity] = ll_pro_process[li_severity] + ll_error_value CASE "1" // Process Specific Schedules ll_pro_specsched[li_severity] = ll_pro_specsched[li_severity] + ll_error_value CASE "2" // Emission Factors ll_pro_emisfact[li_sevDAT*:erity] = ll_pro_emisfact[li_severity] + ll_error_value CASE "5" // Activity checks ll_pro_proactiv[li_severity] = ll_pro_proactiv[li_severity] + ll_error_value END CHOOSE CASE "STR" CHOOSE CASE ls_category CASE "5" // Activity checks ll_str_stractiv[li_severity] = ll_str_stractiv[li_severity] + ll_error_value END CHOOSE END CHOOSE NEXT uo_log.f_write_sum_r("Facilities") uo_log.f_write_sum_r(" Sources DAT*< " + & f_RightJustifyLong(facility[1].rec_count,5) + ls_gutterSpace + & f_RightJustifyLong(ll_src_source[1],5) + ls_gutterSpace + & f_RightJustifyLong(ll_src_source[2],5) + ls_gutterSpace + & f_RightJustifyLong(ll_src_source[3],5) ) uo_log.f_write_sum_r(" Contacts " + & f_RightJustifyLong(facility[2].rec_count,5) + ls_gutterSpace + & f_RightJustifyLong(ll_src_contact[1],5) + ls_gutterSpace + & f_RigDAT*>htJustifyLong(ll_src_contact[2],5) + ls_gutterSpace + & f_RightJustifyLong(ll_src_contact[3],5) ) uo_log.f_write_sum_r(" Legal Entities " + & f_RightJustifyLong(facility[3].rec_count,5) + ls_gutterSpace + & f_RightJustifyLong(ll_src_legalent[1],5) + ls_gutterSpace + & f_RightJustifyLong(ll_src_legalent[2],5) + ls_gutterSpace + & f_RightJustifyLong(ll_src_legalent[3],5) ) uo_log.f_write_sum_r(" Location CoordinateDAT*@s " + & f_RightJustifyLong(facility[4].rec_count,5) + ls_gutterSpace + & f_RightJustifyLong(ll_src_loccoord[1],5) + ls_gutterSpace + & f_RightJustifyLong(ll_src_loccoord[2],5) + ls_gutterSpace + & f_RightJustifyLong(ll_src_loccoord[3],5) ) uo_log.f_write_sum_r(" Source Activities " + & f_RightJustifyLong(facility[5].rec_count,5) + ls_gutterSpace + & f_RightJustifyLong(ll_src_srcactiv[1],5) + ls_gutterSpace + & DAT*B f_RightJustifyLong(ll_src_srcactiv[2],5) + ls_gutterSpace + & f_RightJustifyLong(ll_src_srcactiv[3],5) ) uo_log.f_write_sum_r("") uo_log.f_write_sum_r("Devices") uo_log.f_write_sum_r(" Devices " + & f_RightJustifyLong(device[1].rec_count,5) + ls_gutterSpace + & f_RightJustifyLong(ll_dev_device[1],5) + ls_gutterSpace + & f_RightJustifyLong(ll_dev_device[2],5) + ls_gutterSpace + & f_RightJustifyLong(ll_dev_deviDAT*Dce[3],5) ) uo_log.f_write_sum_r(" Device Activities " + & f_RightJustifyLong(device[2].rec_count,5) + ls_gutterSpace + & f_RightJustifyLong(ll_dev_devactiv[1],5) + ls_gutterSpace + & f_RightJustifyLong(ll_dev_devactiv[2],5) + ls_gutterSpace + & f_RightJustifyLong(ll_dev_devactiv[3],5) ) uo_log.f_write_sum_r("") uo_log.f_write_sum_r("Processes") uo_log.f_write_sum_r(" Processes " + & f_RightJustifyLoDAT*Fng(process[1].rec_count,5) + ls_gutterSpace + & f_RightJustifyLong(ll_pro_process[1],5) + ls_gutterSpace + & f_RightJustifyLong(ll_pro_process[2],5) + ls_gutterSpace + & f_RightJustifyLong(ll_pro_process[3],5) ) uo_log.f_write_sum_r(" Process Specific Schedules " + & f_RightJustifyLong(process[2].rec_count,5) + ls_gutterSpace + & f_RightJustifyLong(ll_pro_specsched[1],5) + ls_gutterSpace + & f_RightJustifyLong(ll_pro_specsched[DAT*H2],5) + ls_gutterSpace + & f_RightJustifyLong(ll_pro_specsched[3],5) ) uo_log.f_write_sum_r(" Emission Factors " + & f_RightJustifyLong(process[3].rec_count,5) + ls_gutterSpace + & f_RightJustifyLong(ll_pro_emisfact[1],5) + ls_gutterSpace + & f_RightJustifyLong(ll_pro_emisfact[2],5) + ls_gutterSpace + & f_RightJustifyLong(ll_pro_emisfact[3],5) ) uo_log.f_write_sum_r(" Process Activities " + & f_RighDAT*JtJustifyLong(process[4].rec_count,5) + ls_gutterSpace + & f_RightJustifyLong(ll_pro_proactiv[1],5) + ls_gutterSpace + & f_RightJustifyLong(ll_pro_proactiv[2],5) + ls_gutterSpace + & f_RightJustifyLong(ll_pro_proactiv[3],5) ) uo_log.f_write_sum_r("") uo_log.f_write_sum_r("Streams") uo_log.f_write_sum_r(" Stream Activities " + & f_RightJustifyLong(stream[1].rec_count,5) + ls_gutterSpace + & f_RightJustifyLong(ll_str_stractiv[1],DAT*L5) + ls_gutterSpace + & f_RightJustifyLong(ll_str_stractiv[2],5) + ls_gutterSpace + & f_RightJustifyLong(ll_str_stractiv[3],5) ) uo_log.f_write_sum_r("") uo_log.f_write_sum_r("") uo_log.f_write_sum_r("") uo_log.f_write_sum_r("") uo_log.f_write_sum_r("===============================================================================") end subroutine public function string f_rightjustifystring (string ps_string, long pl_width);LONG ll_strlen, ll_spaceCount, ll_i STRINGDAT*N ls_workString ll_strlen = len(ps_string) ll_spaceCount = pl_width - ll_strlen ls_workString = "" FOR ll_i = 1 to ll_spaceCount ls_workString = ls_workString + " " NEXT ls_workString = ls_workString + ps_string RETURN ls_workString end function public function string f_rightjustifylong (long pl_num, long pl_width);LONG ll_strlen, ll_spaceCount, ll_i STRING ls_string, ls_workString ls_string = String(pl_num) ll_strlen = len(ls_string) ll_spaceCount = pl_width - ll_strleDAT*Pn ls_workString = "" FOR ll_i = 1 to ll_spaceCount ls_workString = ls_workString + " " NEXT ls_workString = ls_workString + ls_string RETURN ls_workString end function public subroutine f_rpt_msg_type ();INTEGER li_i // write header to log file uo_log.f_write_sum_m("===============================================================================") uo_log.f_write_sum_m("") uo_log.f_write_sum_m(" E R R O R C O U N T by M E S S A G E T Y P E") uo_log.f_wriDAT*Rte_sum_m("") uo_log.f_write_sum_m("===============================================================================") uo_log.f_write_sum_m("") uo_log.f_write_sum_m("") uo_log.f_write_sum_m("") uo_log.f_write_sum_m(" Error Total") uo_log.f_write_sum_m(" Level Count Records") uo_log.f_write_sum_m("") // Set microhelp line w_mdi_main.setMicrohelp("Creating Error CountDAT*T by Message Type report...") uo_log.f_write_sum_m("Facility " + f_rightJustifyLong(il_sourceCount,7)) uo_log.f_write_sum_m(" Sources") f_logmessages("SRC0") uo_log.f_write_sum_m(" Contacts") f_logmessages("SRC1") uo_log.f_write_sum_m(" Legal Entities") f_logmessages("SRC2") uo_log.f_write_sum_m(" Location Coordinates") f_logmessages("SRC3") uo_log.f_write_sum_m(" Source Activities") f_logmessages("SRC5") uo_log.DAT*Vf_write_sum_m("") uo_log.f_write_sum_m("Device " + f_rightJustifyLong(il_deviceCount,7)) uo_log.f_write_sum_m(" Devices") f_logmessages("DEV0") uo_log.f_write_sum_m(" Device Activities") f_logmessages("DEV5") uo_log.f_write_sum_m("") uo_log.f_write_sum_m("Process " + f_rightJustifyLong(il_processCount,7)) uo_log.f_write_sum_m(" Processes") f_logmessageDAT*Xs("PRO0") uo_log.f_write_sum_m(" Process Specific Schedules") f_logmessages("PRO1") uo_log.f_write_sum_m(" Emission Factors") f_logmessages("PRO2") uo_log.f_write_sum_m(" Process Activities") f_logmessages("PRO5") uo_log.f_write_sum_m("") uo_log.f_write_sum_m("Stream " + f_rightJustifyLong(il_streamCount,7)) uo_log.f_write_sum_m(" Stream Activities") f_logmessages("STR5") uo_log.f_write_sum_m("") uo_log.f_writDAT*Ze_sum_m("") uo_log.f_write_sum_m("") uo_log.f_write_sum_m("") uo_log.f_write_sum_m("===============================================================================") end subroutine public subroutine f_logmessages (string ps_msgtype);INTEGER li_severity LONG ll_error_value, ll_rowCount, ll_row STRING ls_errorMsg STRING ls_gutterSpace = " " //Used for spacing between rpt columns STRING ls_severity[3] ls_severity[1] = "Warning" ls_severity[2] = "Alert " ls_severity[3] = "NotDAT*\ice " // Set CONCHECK datawindow filter, then sort it. dw_concheck.SetFilter("left(id,4) = '" + ps_msgtype + "'") dw_concheck.Filter() dw_concheck.SetSort("id A") dw_concheck.Sort() ll_rowCount = dw_concheck.rowCount() FOR ll_row = 1 to ll_rowCount ls_errorMsg = f_leftjustify(dw_concheck.getItemString(ll_row,"title"),43) li_severity = dw_concheck.getItemNumber(ll_row,"severity") ll_error_value = dw_concheck.getItemNumber(ll_row,"error_count") uo_log.f_write_sum_m(" DAT*^" + ls_errorMsg + ls_gutterspace + & ls_severity[li_severity] + ls_gutterspace + & f_RightJustifyLong(ll_error_value,5)) NEXT uo_log.f_write_sum_m("") end subroutine public function string f_leftjustify (string ps_string, long pl_width);LONG ll_strlen, ll_spaceCount, ll_i ll_strlen = len(ps_string) IF ll_strlen < pl_width THEN ll_spaceCount = pl_width - ll_strlen FOR ll_i = 1 to ll_spaceCount ps_string = ps_string + " " NEXT ELSEIF ll_strlen > pl_width TDAT*`HEN ps_string = mid(ps_string,1,pl_width - 3) + "..." END IF RETURN ps_string end function public subroutine f_rpt_badrefvalues ();INTEGER li_i, li_severity LONG ll_rowcount, ll_rid STRING ls_code STRING ls_gutterSpace = " " //Used for spacing between rpt columns // write header to log file uo_log.f_write_sum_b("===============================================================================") uo_log.f_write_sum_b("") uo_log.f_write_sum_b(" B A D R E FDAT*b E R E N C E V A L U E S") uo_log.f_write_sum_b("") uo_log.f_write_sum_b("===============================================================================") uo_log.f_write_sum_b("") uo_log.f_write_sum_b("") uo_log.f_write_sum_b("") uo_log.f_write_sum_b(" Reference Table Name Field Name Reference Code Value In Use") uo_log.f_write_sum_b(" ------------------------- --------------- -------------------- ------") uo_log.f_write_sum_b("") // Set microhelp line w_mdi_main.DAT*dsetMicrohelp("Creating Bad Reference Values report...") DECLARE mat_cur CURSOR FOR SELECT rap_materials.code FROM rap_materials WHERE substr(rap_materials.name,1,3) = 'BAD' ; CLOSE mat_cur; OPEN mat_cur; FETCH mat_cur INTO :ls_code; DO WHILE SQLCA.sqlcode = 0 IF isNull(ls_code) THEN ls_code = "" IF ls_code > "" THEN SELECT COUNT(*) INTO :ll_rowcount FROM rap_activities WHERE rap_activities.material_code = :ls_code ; IF isNuDAT*fll(ll_rowcount) THEN ll_rowcount = 0 IF ll_rowcount > 0 THEN uo_log.f_write_sum_b(" " + f_leftJustify("Rap_Materials",25) + ls_gutterSpace + & f_leftJustify("Code",15) + ls_gutterSpace + & f_leftJustify(ls_code,20) + ls_gutterSpace + " Y") ELSE // uo_log.f_write_sum_b(" " + f_leftJustify("Rap_Materials",25) + ls_gutterSpace + & // f_leftJustify("",15) + ls_gutterSpace + & // f_leftJustify("",20) + ls_gutterSpace + " N") DAT*h DELETE FROM rap_materials WHERE rap_materials.code = :ls_code; END IF END IF FETCH mat_cur INTO :ls_code; LOOP IF sqlca.sqlcode = 100 THEN COMMIT; ELSE ROLLBACK; END IF ////BAD METRIC are no longer reported due to design change that leaves ////"BAD METRIC" metric in for good! REJ 17MAR97 // DECLARE met_cur CURSOR FOR // SELECT rap_metrics.code // FROM rap_metrics // WHERE substr(rap_metrics.name,1,3) = 'BAD' ; // // CLOSE met_cur; // ODAT*jPEN met_cur; // FETCH met_cur INTO :ls_code; // // DO WHILE SQLCA.sqlcode = 0 // IF isNull(ls_code) THEN ls_code = "" // // IF ls_code > "" THEN // SELECT COUNT(*) // INTO :ll_rowcount // FROM rap_activities // WHERE rap_activities.metric_code = :ls_code ; // // IF isNull(ll_rowcount) THEN ll_rowcount = 0 // // IF ll_rowcount > 0 THEN // uo_log.f_write_sum_b(" " + f_leftJustify("Rap_Metrics",25) + ls_gutterSpace + & // f_leftJustify("CodDAT*le",15) + ls_gutterSpace + & // f_leftJustify(ls_code,20) + ls_gutterSpace + " Y") // // ELSE // uo_log.f_write_sum_b(" " + f_leftJustify("Rap_Metrics",25) + ls_gutterSpace + & // f_leftJustify("Code",15) + ls_gutterSpace + & // f_leftJustify("ls_code",20) + ls_gutterSpace + " N") // //// DELETE FROM rap_metrics //// WHERE rap_metrics.code = :ls_code ; // // END IF // // END IF // // FETCH met_cur INTO :ls_code; // LOOP // IF sqlcaDAT*n.sqlcode = 100 THEN // COMMIT; // ELSE // ROLLBACK; // END IF DECLARE unit_cur CURSOR FOR SELECT rap_units.code FROM rap_units WHERE substr(rap_units.name,1,3) = 'BAD' ; FETCH unit_cur INTO :ls_code; DO WHILE SQLCA.sqlcode = 0 IF isNull(ls_code) THEN ls_code = "" IF ls_code > "" THEN SELECT COUNT(*) INTO :ll_rowcount FROM rap_activities WHERE rap_activities.value_unit_code = :ls_code ; IF isNull(ll_rowcount) THEN ll_rowcDAT*pount = 0 IF ll_rowcount > 0 THEN uo_log.f_write_sum_b(" " + f_leftJustify("Rap_Units",25) + ls_gutterSpace + & f_leftJustify("Code",15) + ls_gutterSpace + & f_leftJustify(ls_code,20) + ls_gutterSpace + " Y") ELSE // uo_log.f_write_sum_b(" " + f_leftJustify("Rap_Units",25) + ls_gutterSpace + & // f_leftJustify("",15) + ls_gutterSpace + & // f_leftJustify("",20) + ls_gutterSpace + " N") UPDATE rap_units SET standard_code =DAT*r 'TON' WHERE rap_units.code = :ls_code; DELETE FROM rap_units WHERE rap_units.code = :ls_code; END IF END IF LOOP IF sqlca.sqlcode = 100 THEN COMMIT; ELSE ROLLBACK; END IF DECLARE scc_cur CURSOR FOR SELECT rap_scc_ams_codes.code FROM rap_scc_ams_codes WHERE substr(rap_scc_ams_codes.desc_1,1,3) = 'BAD' ; CLOSE scc_cur; OPEN scc_cur; FETCH scc_cur INTO :ls_code ; DO WHILE SQLCA.sqlcode = 0 IF isNull(ls_code) THEN ls_codeDAT*t = "" IF ls_code > "" THEN SELECT COUNT(*) INTO :ll_rowcount FROM rap_processes WHERE rap_processes.scc_ams_code = :ls_code ; IF isNull(ll_rowcount) THEN ll_rowcount = 0 IF ll_rowcount > 0 THEN uo_log.f_write_sum_b(" " + f_leftJustify("Rap_Scc_Ams_Codes",25) + ls_gutterSpace + & f_leftJustify("Code",15) + ls_gutterSpace + & f_leftJustify(ls_code,20) + ls_gutterSpace + " Y") ELSE // uo_log.f_write_sum_b(" " DAT*v+ f_leftJustify("Rap_Scc_Ams_Codes",25) + ls_gutterSpace + & // f_leftJustify("",15) + ls_gutterSpace + & // f_leftJustify("",20) + ls_gutterSpace + " N") DELETE FROM rap_scc_ams_codes WHERE rap_scc_ams_codes.code = :ls_code; END IF END IF FETCH scc_cur INTO :ls_code ; LOOP IF sqlca.sqlcode = 100 THEN COMMIT; ELSE ROLLBACK; END IF DECLARE sic_cur CURSOR FOR SELECT rap_sic_codes.code FROM rap_sic_codes WHERE subsDAT*xtr(rap_sic_codes.name,1,3) = 'BAD' ; CLOSE sic_cur; OPEN sic_cur; FETCH sic_cur INTO :ls_code ; DO WHILE SQLCA.sqlcode = 0 IF isNull(ls_code) THEN ls_code = "" IF ls_code > "" THEN SELECT COUNT(*) INTO :ll_rowcount FROM rap_sources WHERE rap_sources.sic_code = :ls_code ; IF isNull(ll_rowcount) THEN ll_rowcount = 0 IF ll_rowcount > 0 THEN uo_log.f_write_sum_b(" " + f_leftJustify("Rap_Sic_Codes",25) + ls_gutterSpace + & DAT*z f_leftJustify("Code",15) + ls_gutterSpace + & f_leftJustify(ls_code,20) + ls_gutterSpace + " Y") ELSE // Also check rap_activities !! SELECT COUNT(*) INTO :ll_rowcount FROM rap_activities WHERE rap_activities.metric_code = 'SIC CODE' AND rap_activities.value = :ls_code; IF ll_rowcount > 0 THEN uo_log.f_write_sum_b(" " + f_leftJustify("Rap_Sic_Codes",25) + ls_gutterSpace + & f_leftJustify("Code",15) + ls_gutterSpacDAT*|e + & f_leftJustify(ls_code,20) + ls_gutterSpace + " Y") ELSE // uo_log.f_write_sum_b(" " + f_leftJustify("Rap_Sic_Codes",25) + ls_gutterSpace + & // f_leftJustify("",15) + ls_gutterSpace + & // f_leftJustify("",20) + ls_gutterSpace + " N") DELETE FROM rap_sic_codes WHERE rap_sic_codes.code= :ls_code ; END IF END IF END IF FETCH sic_cur INTO :ls_code ; LOOP IF sqlca.sqlcode = 100 THEN COMMIT; ELSE ROLLBACDAT*~K; END IF DECLARE reg_cur CURSOR FOR SELECT rap_regulations.rid, rap_regulations.citation FROM rap_regulations WHERE substr(rap_regulations.title,1,3) = 'BAD' ; CLOSE reg_cur; OPEN reg_cur; FETCH reg_cur INTO :ll_rid, :ls_code; DO WHILE SQLCA.sqlcode = 0 IF isNull(ll_rid) THEN ll_rid = 0 IF ll_rid > 0 THEN SELECT COUNT(*) INTO :ll_rowcount FROM rap_document_lookups WHERE rap_document_lookups.ref_rid = :ll_rid; IF isNull(DAT*ll_rowcount) THEN ll_rowcount = 0 IF ll_rowcount > 0 THEN uo_log.f_write_sum_b(" " + f_leftJustify("Rap_Regulations",25) + ls_gutterSpace + & f_leftJustify("Citation",15) + ls_gutterSpace + & f_leftJustify(ls_code,20) + ls_gutterSpace + " Y") ELSE // uo_log.f_write_sum_b(" " + f_leftJustify("Rap_Regulations",25) + ls_gutterSpace + & // f_leftJustify("",15) + ls_gutterSpace + & // f_leftJustify("",20) + ls_gutterSpace + " N") DAT* DELETE FROM rap_regulations WHERE rap_regulations.rid = :ll_rid; END IF END IF FETCH reg_cur INTO :ll_rid, :ls_code; LOOP IF sqlca.sqlcode = 100 THEN COMMIT; ELSE ROLLBACK; END IF uo_log.f_write_sum_b("") uo_log.f_write_sum_b("") uo_log.f_write_sum_b("===============================================================================") end subroutine on open;this.x = pixelsToUnits((ge_env.screenwidth / 2) - (unitsToPixels(this.width,XUnitsToPixels!)DAT* /2), XPixelsToUnits!) this.y = pixelsToUnits((ge_env.screenheight / 2) - (unitsToPixels(this.height,YUnitsToPixels!) /2), YPixelsToUnits!) ib_wrote_header = False ib_cancel = False ib_errorSource = False ib_errorDevice = False ib_errorProcess = False ib_errorStream = False cb_rules.visible = False cb_viewdw.visible = False cb_rules.enabled = False cb_viewdw.enabled = False cb_exit.x = cb_run.x cb_run.x = cb_viewdw.x facility[1].rec_type = "Sources" facility[2].rec_type = "ConDAT*tacts" facility[3].rec_type = "Legal Entities" facility[4].rec_type = "Location Coordinates" facility[5].rec_type = "Source Activities" device[1].rec_type = "Devices" device[2].rec_type = "Device Activities" process[1].rec_type = "Processes" process[2].rec_type = "Process Specific Schedules" process[3].rec_type = "Emission Factors" process[4].rec_type = "Process Activities" stream[1].rec_type = "Stream Activities" end on on w_ccheck_parameters.create this.cb_cancel=create cbDAT*_cancel this.cb_viewdw=create cb_viewdw this.cb_rules=create cb_rules this.uo_log=create uo_log this.dw_concheck=create dw_concheck this.cb_exit=create cb_exit this.cb_run=create cb_run this.uo_time=create uo_time this.uo_s_level=create uo_s_level this.st_1=create st_1 this.dw_ref_code=create dw_ref_code this.uo_c_level=create uo_c_level this.Control[]={ this.cb_cancel,& this.cb_viewdw,& this.cb_rules,& this.uo_log,& this.dw_concheck,& this.cb_exit,& this.cb_run,& this.uo_time,&DAT* this.uo_s_level,& this.st_1,& this.dw_ref_code,& this.uo_c_level} end on on w_ccheck_parameters.destroy destroy(this.cb_cancel) destroy(this.cb_viewdw) destroy(this.cb_rules) destroy(this.uo_log) destroy(this.dw_concheck) destroy(this.cb_exit) destroy(this.cb_run) destroy(this.uo_time) destroy(this.uo_s_level) destroy(this.st_1) destroy(this.dw_ref_code) destroy(this.uo_c_level) end on type cb_cancel from commandbutton within w_ccheck_parameters int X=540 int Y=1413 intDAT* Width=330 int Height=93 int TabOrder=100 boolean Visible=false boolean Enabled=false string Text="Cancel" int TextSize=-10 int Weight=700 string FaceName="Arial" FontFamily FontFamily=Swiss! FontPitch FontPitch=Variable! end type on clicked;INTEGER li_button li_button = MessageBox("Cancel Requested", & "Cancel Consistency Check Processing?", & Question!, YesNo!, 2) IF li_button = 1 THEN // Process YES ib_cancel = True END IF end on type cb_viewdw from cDAT*ommandbutton within w_ccheck_parameters int X=481 int Y=1413 int Width=330 int Height=93 int TabOrder=90 string Text="View DW" int TextSize=-10 int Weight=700 string FaceName="Arial" FontFamily FontFamily=Swiss! FontPitch FontPitch=Variable! end type on clicked;dw_concheck.visible = NOT dw_concheck.visible end on type cb_rules from commandbutton within w_ccheck_parameters int X=65 int Y=1413 int Width=330 int Height=93 int TabOrder=80 string Text="Rules..." int TextSize=-DAT*10 int Weight=700 string FaceName="Arial" FontFamily FontFamily=Swiss! FontPitch FontPitch=Variable! end type on clicked;open(w_concheck_view, parent) end on type uo_log from u_log_file within w_ccheck_parameters int X=65 int Y=1057 int TabOrder=50 end type on uo_log.destroy call u_log_file::destroy end on type dw_concheck from datawindow within w_ccheck_parameters int X=1463 int Y=1353 int Width=494 int Height=361 int TabOrder=110 boolean Visible=false string DataObDAT*ject="d_concheck" boolean TitleBar=true string Title="Rules" boolean Resizable=true end type on constructor;this.setTransobject(sqlca) this.Retrieve() // Test whether the retrieve succeeded. IF sqlca.sqlcode < 0 THEN // SQL Error MessageBox("Retrieve Failed", & "Cannot retrieve data from the Concheck database.") END IF end on type cb_exit from commandbutton within w_ccheck_parameters int X=1276 int Y=1413 int Width=330 int Height=93 int TabOrder=70 string TDAT*ext="E&xit" int TextSize=-10 int Weight=700 string FaceName="Arial" FontFamily FontFamily=Swiss! FontPitch FontPitch=Variable! end type on clicked;close(parent) end on type cb_run from commandbutton within w_ccheck_parameters int X=887 int Y=1413 int Width=330 int Height=93 int TabOrder=60 string Text="Run" int TextSize=-10 int Weight=700 string FaceName="Arial" FontFamily FontFamily=Swiss! FontPitch FontPitch=Variable! end type on clicked;//EVENT cb_run.clicked for w_cDAT*check_parameters // // Reset cancel flag to begin processing ib_cancel = False this.enabled = False // Make sure log file is opened up IF uo_log.ii_log_file < 1 THEN parent.uo_log.cb_new.TriggerEvent(Clicked!) IF uo_log.ii_log_file < 1 THEN this.enabled = True RETURN END IF END IF // set properties of controls this.enabled = False this.visible = False cb_cancel.x = cb_run.x cb_cancel.enabled = True cb_cancel.visible = True cb_exit.enabled = False uo_c_levDAT*el.enabled = False uo_log.enabled = False uo_s_level.enabled = False uo_time.enabled = False dw_ref_code.enabled = False // Reset total count variables il_sourcecount = 0 il_devicecount = 0 il_processcount = 0 il_streamcount = 0 facility[1].rec_count = 0 // Sources facility[2].rec_count = 0 // Contacts facility[3].rec_count = 0 // Legal Entities facility[4].rec_count = 0 // Location Coordinates facility[5].rec_count = 0 // Source Activities device[1].rec_count = 0 // DeviDAT*ces device[2].rec_count = 0 // Device Activities process[1].rec_count = 0 // Processes process[2].rec_count = 0 // Process Specific Schedules process[3].rec_count = 0 // Emission Factors process[4].rec_count = 0 // Process Activities stream[1].rec_count = 0 // Stream Activities //Write top heading of report f_writeLogHeader() //Filter out CONCHECK datawindow. This will give us only the rows //that meet the stringency level requested - 1,2, or 3. dw_concheck.SetFilter("severiDAT*ty <= " + string(uo_s_level.ii_severity)) dw_concheck.Filter() dw_concheck.SetSort('id a') dw_concheck.Sort() //Let's see what level we need to process at CHOOSE CASE uo_c_level.st_level_code.text CASE "DEV" // process selected device f_run_device(uo_c_level.istr_level.device) CASE "SRC" // process selected source f_run_source(uo_c_level.istr_level.source) CASE "GEO" // process selected geo loc f_run_geo() CASE ELSE messageBox("Action Required", &DAT* "Please select a level before proceeding") uo_c_level.cb_level.setfocus() END CHOOSE IF NOT ib_cancel THEN //Create log files uo_log.f_open_sum_files() // Create 'Error Count by Record Type' report summary f_rpt_rcd_type() // Create 'Error Count by Message Type' report summary f_rpt_msg_type() // Create 'Bad Reference Value Check' report f_rpt_badRefValues() ELSE ib_cancel = False END IF // Close any open log files uo_log.f_close_log() // set properDAT*ties of controls uo_c_level.enabled = True uo_log.enabled = True uo_s_level.enabled = True uo_time.enabled = True dw_ref_code.enabled = True cb_cancel.enabled = False cb_cancel.visible = False this.enabled = True this.visible = True cb_exit.enabled = True // Checking complete, set microhelp line w_mdi_main.setMicrohelp("Ready") //messageBox("Checking complete", & // facility[1].rec_type + string(facility[1].rec_count)) end on type uo_time from u_time_DAT*period_select within w_ccheck_parameters int X=60 int Y=769 int TabOrder=40 end type on uo_time.destroy call u_time_period_select::destroy end on type uo_s_level from u_stringency_level_select within w_ccheck_parameters int X=60 int Y=577 int TabOrder=30 end type on uo_s_level.destroy call u_stringency_level_select::destroy end on type st_1 from statictext within w_ccheck_parameters int X=1354 int Y=469 int Width=257 int Height=65 boolean Enabled=false string Text="(oDAT*ptional)" Alignment Alignment=Center! boolean FocusRectangle=false long TextColor=33554432 long BackColor=12632256 int TextSize=-9 int Weight=400 string FaceName="Arial" FontFamily FontFamily=Swiss! FontPitch FontPitch=Variable! end type type dw_ref_code from u_ref_code_table_dddw within w_ccheck_parameters int X=202 int Y=445 int Width=1180 int TabOrder=20 end type type uo_c_level from u_level within w_ccheck_parameters int X=51 int Y=21 int TabOrder=10 end type on uo_DAT*2c_level.destroy call u_level::destroy end on DAT*8 )@8&H$18T)P8'X$18)`8),+$'&(,` ,h$1dd*&8p0),+$'&(, ,x$1+$$80 )8)$+-.))$, ,M,M-bM.i+M+M-bM.i/06%@%8M,M+"#+M/M+M/M,"+##DAT*8z%M+2(@(8z(8z&M,2(@(8z($6#6"6)81R(,8*,$)81^,,1$8 )818E 18K ",$6#6"6)8T,1R0-"80T-"-80)8)DAT*8l-p-$80)$8 ,$)481- <.)<8-<.D$8LJP8)h8-#*/@58:;@AC,FSTVWZb[]^_`a6b^egiklpHsLttvwxyPz{|}@~,Ll<t T 4 l 8 ^ & r  @ DAT*h :^n(JbFtDXv BZ.PTl v 8b~"B&d'h()*+./0*1T2p45678<V@DEGJMOP,RSVXZ[]^*_F`hcdef(hJjNkpmoqrtuvx:yJzt{|~.FJ\|DAT*Fl Fh 6 `      !0!R!n!!!!"<"r""""""#,#X######$6$`$$$$%,%0%H%j%%%%&L&`&d&|&&&'N'b'f'~'''(P( d( h((((()0)\)))) )!)#)$)%)&))*,*-(*2:*3>*4B*6F*7J*8N*9R*<V*?d*A~*D*I*M*P*Q*S*T*Y+Z0+[D+\^+_+e+DAT*g,i,k ,mB,nl,o,p,r,u,w -x-y,-z0-}T-~h-l-p------8.dX pw_parentpl_ridpdw_checksrcmod_stringold_selectls_log_linels_fields@ ll_dev_rowll_dev_countll_act_countll_contact_cntls_name ls_mailline1ndo ls_mailzipm ls_contactreason ls_owner_namell_contactridll_mailcityridll_mailstateridll_zone@ll_easting@ll_nDAT*orthing@ll_owner_ridw_mdi_mainll_rowssqlcacontact_curll_srcrowll_checkcountll_workloopll_activityrowsll_workvarll_workvar2ls_checkidls_errmsgls_workvarls_workvar1ls_workvar2ls_workvar3ls_workvar4ls_workvar5case195ldec_min_amtldec_max_amtldec_default_unit_factorldec_user_unit_factorldec_act_valuels_actvaluels_valueT4Pd| DAT* $' 2 = TI-`kx----  -4$-P@-md\-gs|p-ce-sed@cks_@se>DAT*gsgvilwitwsy h_) )3 q> J teV yyb ern z in> > ip> >  > rc am p8 Retrieving Source...setmicrohelpZDAT*dw_14"getsqlselectDDatawindow.Table.Select=' WHERE rap_sources.rid= '4"modify@z@4"retrieve1Retrieving Source Activities...Zdw_activities!SRC2facility=Erec_count,=E,dw_devicesP'2=E,=E,uo_log-Facilityf_write1-===============================================================================14DAT*"idgetitemstringR34"code34"name34"type34"sic_code 34"group_flag34"group_type34"begin_operation_dategetitemdatemm-dd-yyyy4"end_operation_date4"location_line_1_addr34"location_zip_code34"comment_text 3Agency Source Id: Code: Name: Type: SIC Code: -1Group Flag: Group Type: Begin DAT*Operation Date: End Operation Date: -1Address: City: County: -1 State: Zip: $-1Comments: -1-1Checking Source: ...8Zrowcount4left(id,3) = 'SRC'findk+3error_message3SRC0014"3@log_err1rSRC0024"31rSRC0034"3FACNAME1rSRC0044"34"location_line_2_addr34"DAT*31rSRC0054"3f_check_zip_format8<1rSRC0064"3BAD1rSRC0074"39999)1rSRC101MISSING CONTACT FACILITY NAME1rSRC102PERMITS1rSRC103MISSING OFFICIAL NAME1rSRC104DESIG OFFICIAL1rSRC1058<1rSRC201MISSING OWNER CONTACT NAME1rSRC202OWNER11rSRC203=E,=E,MISSING OWNER NAME1rSRC301dw_location_coords(2DAT*(sub_type = 'U'setfilterI(filter<(4=E,=E,(zone_nogetitemnumber .@1r(I(<SRC302(2(I(<(4(easting_km_data kb> s1r(I(<SRC303(2(I(<(4(northing_km_data o6DDAT*sIs1r(I(<SRC401 99999ZZZZ1rSRC501!metric_code = 'SIC CODE' and value_type = '2ND'I!<!4!value83iw_parent #f_get_sic_name~ il_level_type& &write_activity_data3 !I!<SRC502!metric_code = 'SIC CODE' and value_type = '3RD'I!<!4!3 #~  &3 !DAT*I!<SRC503!4!value_unit_code3 #f_get_units_nameP  &3 SRC504!4!material_code3 #f_get_materials_name  &3 SRC505!4!metric_code3 #f_get_metrics_name(  &3 SRC506!4!start_date_timegetitemdatetime  &3 SRC507!4!end_date_time  &3DAT* SRC508!4!3!value_type3!34"34"3GENERIC!3 Value must be between and  &3 SRC509!4!3 &3 END3check_cancel4-1P'44P'rid f_run_devicezX, < T        $ 8 @ H \DAT* d l t |         ( D L \ d t |          ( D L l t      H P t |         0 8 P ` h |        DAT*       , 4 P X h p |       4 D L x          , 4 D L T \ d l t |                8 @ P ` h DAT*p x                $ , 4 P `           0 8 @ H P `                  ( @ H d l t   DAT*           < D L \ d l                0 8 @ H P X ` h x              $ , 4 < D P h DAT*}1<1<1 <!"V911@8#91<8@81911@8#99L V d ps_zipli_len(  -"8$0880P8X0,p1DAT*~,d$<Vd& ancestorreturnvalue::message(@l constructordw_1"dataobject$d_sourceil_level_typeA&Facility 0 P d 8*$@*HX$}`1<Rh$p1<Rx$(>ZDAT*d icurrentH createdw_devices'dw_location_coords,(,controlPc@Pc@'Pc@,( $@ HX ` h p x 48$8$ d @ destroydw_devices'dw_location_coords_$( 8 "78L"2 ? fDAT*_runf_check_zip_format+constructor+create+destroyd.!.62 & dw_devicesdw_location_coords(  ] o. @@P1    @ DAT*      $,71`T8Dcx"LQeYeL%2  2  xheight( ] o) DAT*@ X@ @ L%2  2  xheightlivescroll< ] o)  @  @ @ DAT*J,)8,01>, $d sqlca::message(@@( settransobject^  %L%2  +constructor2 C xywidthheighttaborderbringtotopdataobjectlivescroll W g"DAT*-x8] oWg @ x@ @ Dc%LJ,)8,01>, $d sqlca::message(@@( DAT* settransobject^  %L%2  +constructor2 C xywidthheighttaborderbringtotopdataobjectlivescroll W g("-8] oWg( @ DAT*@ @ Dc%LDAT* xywidthheighttaborderbringtotopdataobjectlivescroll7  i"-L8] o7i @ L@ @  %LDAT*J,)8,01>, $d sqlca::message(@@( settransobject^  %L%2  +constructor2 C xywidthheighttaborderbringtotopdataobjectlivescroll  i2"DAT*-\8 ] oi2 @ \@  @  %LJ,)8,01>, $d sqlca::message(@@( DAT* settransobject^  %L%2  +constructor2 C xywidthheighttaborderbringtotopdataobjectlivescroll  i("-l8)] oi( @ lDAT*@ )@  %LDAT*Hh    8 @ x   0 h p    @`   .< t x 2 u_cc_stream H pw_parentpl_ridpdw_checksf_run+constructor+create+destroyT   QCw_ccheck_parameters.LCdatawindow.LQ x  _iniDAT*tsrcu_cc_baseu_cc_streamuserobjectswindowobjectborderstyleu_cc_base`dw_activitiesdw_activitiesdwobjectpowerobjectu_cc_base`dw_1dw_1w_ccheck_parametersdatawindoww_mdi_mainu_cc_processu_log_fileu_cc_sourceu_cc_devicetransactionmessagepemm@_cin'@3 3@t @@OrLt=dtSr@t={@me@DAT*@d@ @ @@@ @ @@@ @ @@@@@@    8- '!z% y%X , 8(@(8z'8z&)08@$)TDAT*8, 8\(@(8z'8z&)8$80)8$R$1%$1%$R, 80)8,$H$#P$X9}h$8p0)8$80)8 1 $18)8 1 DAT*$18)8 1 $18)8 1% 1 80 1% 1 80 1%V 1 808 1%z%8%z&8(z& 1%z&8%z&8/z& 1%z&8$6)@8H$80)P81R)d8DAT*1b*1l$8t)8&D@D$8)88)8688 $8)8%@%8M 3M 3"$666) 88(8/ <$8)D8%@%DAT*8M 3LM 3\"l$666)t88|N8J $8)8%@%8M 3J$666)888 $8)8%@%8M 3$666)888  DAT*$8) 8%@%8M 3(8$666)@88H^ 8OZ  \$8)d8%@%8M 3lZ |$666)88 8  $8)8%@%8M 3 $666)88 8DAT*  $8)8%@%8M 3 $666) 88 $8$)48H$)d81o@o88l p$666)x88^ $8)8$)81o@o88lDAT*Z $666)88 $)81o@o88l  $666)88 $$8,)L8@83@3$ T$666)\88d>l$8t)8@83@3$:$DAT*666)88@8@8$8t)8$8)8$8)880$$$ $$18)$8,$D$\$6d$l$t$18)|8$$DAT*$18)880 $8)8 ,,$1d 80 ,@,$1d80 $8)8 ,,$1d80 80DAT* ,p,$1d8080 $8)8 ,,$1dH8080 80 ,,$1 $8$)8,xMMbMiMMbMiDAT* 6%@%8MM"#MMMM"8z%M2(@(8z(86z&M2(@(8z(<$666)D88LZT$8\)l88tV$666)88"$8)8"8"8"$666)DAT* 81R)8"&X $80) 8>dN!l"#$'(6)r+,-/V35<>,@FHpJ~LMOPRT"U6VJWX\]^_F`ddefghlJmbnvoptuv&wdxt|}~ $ Z r " 6 t ( T $ Z r  f :Rn DAT*<~2Dptx|*<hlptx|  !"% )*4+F,X2346789:;<=@DEFGLMNPQR"S&T*U.V2W6Z:]H_bbgknoqrwxy(zB} Vn "&*d DAT* pw_parentpl_ridpdw_checksll_streamcountll_activityrowll_activitycountll_loopcountll_checkcountls_log_linels_vars@ w_mdi_mainldec_workvarll_workvarls_workvar1ls_workvar2ls_workvar3ls_workvar4ls_workvar5ls_metriccodels_checkidls_errmsgls_workvarcase82ldec_min_amtldec_max_amtldec_default_unit_factorldec_user_unit_factorldec_act_valuels_actvaluels_devicecodels_processcodels_streamcodels_materialcodesqlcals_value DAT* $3BS`n z- @>         $ h %> 2> ?> DAT*X> n> } 1  )   @   Retrieving Stream: ...setmicrohelpZ dw_18"retrieve2HRetrieving Stream Activities for: Z dw_activities!STR2Hil_streamcountDDstream@Erec_count@EChecking Streams...Z iu_cc_process@9Iib_wrotemainheDAT*ader4$9I4$uo_log`-Streamsf_write1x`-==========================================1x8"idgetitemstringl8"code8"nameStream Id: Code: Name: `-1x`-1xrowcount4X!metric_codeerror_messageSTR501CAPT EFFICpl!valuehdil_level_type&write_activity_data3 STR502CNTL EFFIDAT*C!d&3 STR503DOWNDISRATE!&3 STR504MASS RATE!s&3 STR505DISCH RATE$!&3 STR506DOWNSTRMDIS!s&3 STR507MASS FLOW!e&3 STR508DISCHARGED!&3 STR509!value_unitDAT*_codeiw_parent<#f_get_units_name8PBAD&3 STR510!material_code%<#f_get_materials_name&3 STR511<#f_get_metrics_name&3 STR512!start_date_timegetitemdatetime<&3 STR513!end_date_time3<&3 STR514!!value_type!@8<#iu_cc_source7G<#7G8"type@DAT*<#iu_cc_device48His_sourcetypeL)<#48H8"<#9I8"GENERIC!!!! Value must be between and &3 STR5153!comment_text Emissions total for two devices divided equally&3 STR516!99999ZZZZ&3 check_cancel4`-1x0 @DAT* T           , H P X h          8 @ H P d l         < D L\l t            (8 @ \ DAT* d l|            4 H d p x            $ L T \ l                $ , D \ d l t |       DAT*"             < D T l          f"8$8,0,L1Z,4$2d& ancestorreturnvalue::message(@< constructoril_level_typetm&Stream$ 4 DAT*$8d  create8d  destroy"7L"2 , f_run+constructor+create+destroyP#2  ] o. @@1 DAT*&   @     $,7*P"L7Rx?RL%2  2  ] o)i @DAT* X@ @ L%2  2  dataobject] o)i  @ @ @ DAT**  8- *!z% y% y% $)$8,8,0)\8t$8|0)8$1%$1%$R$)8,8(@(8z'8DAT*,z&)8$8 0)8$$8,0)|8 1 $18)8 1 $18)8 1 $18)8 1 $18)8 1 $18) 8 1 $18),8 1 4$18<DAT*.)H8 1 P$18X)d8 1  l$18t)880)@)8 1  $18)880)@)8 1  $18)8 1 %| 1 80 1 % 1 80 1 % 1 80 1 %DAT*0$ 1 80 1 %\ 1 80 1 % 1 80 1 % 1 80 1 % 1 80 1  %< 1  80 1  %t 1  80 1  % 1  808 1 %z%8z&8z& 1 %zDAT*2&8z&8z& 1 %z& $6)88 1 %z%8z&8z& 1 %z&8z&8z& 1 %z&4$6)<88D 1 %z%8z&8Qz& 1 %z&8z&8^z& 1  %z&8z&8oz& 1  %z&$6)88 1  %z%$6DAT*4)8$80)8 1 )8   8)8 8)868  1 %8 )88  1 %8  $($180JD8;)L81 )T88\> dDAT*6$18t)l83@3$: )t88| $18)83@3$ )88  1  %8 )88  1 %1o@o88 )88,  1 %8@81 1DAT*8 %8@81"( )88  1 %8@81 1 %8@81" )881$8 )80$)L81o@o88Th$666)8DAT*:1R 81$8)8$)81o@o88T$666)81R81$$8)8$),81o@o88T4DAT*<$666)<81R8D: 1 %8K 1 %8Q"6d$8l)8$)8$)811$666)8$8)8$)88n 1 %8K 1 %8Q"j$8) 8(DAT*>$)088$)@81,1H$666)P8X$8)`8h$)p88x 1 %8K 1 %8Q"$8)8$)8$)81`1$666)8$8)8$) 88DAT*@1~$8$)D8@83@3$fL$666)T81R8\b1^d$8l)|8@83@3$F$666)81R8$)81DAT*B@8@8$8)8$8)8$8)8 $18)8 $ $P $( $0 $18)8 8@ $H $P $18X )` 8,808DAT*D0x 6 6 ,, $1dZ 8 0 ,H, $1d  $18) 880 ,, $1dN 8080 ,`, $1 $8 ) 8DAT*F,8MMbMiMMbMi6%@%8MM"#MMMM"8 z%M2(@(8z(8 z&M2(@(8z( $666) 81R8  $) 81H"( $8)0 8"DAT*H8"8"8 $666)@ 8>  1R)X 8J ` $80)h 8p $)x 81x) 8 $80J 8) 8n&Dt!("P$x%&',(h)*+,X-.0D1|234$5\6789<:t=A$CJGINPRDAT*JT[" \0 ^J `X a| c e f g j k lB m n r s t w: xR y | } ~  ( b  ( @ :d Lv2^\~6N,Nj(`0fz~FZ^v&R~ LP X \ j"%&+,,DAT*L0-4/80<1@2D3H6L:Z;t<ABCEFGHILPQRW X$Y([,\0]4^8_<b@eNghjosvwyz.H ,V :\d pw_parentpl_ridpdw_checksll_rowsll_activityrowsll_dw_pro_rowll_dw_pro_countls_log_lineold_selectmod_stringls_fieldsu@  w_mdi_mainll_loopcountll_checkcountll_workvarll_workloopll_workvar2ls_chDAT*Neckidls_errmsgls_workvarls_workvar1ls_workvar2ls_workvar3ls_workvar4ls_workvar5case99ldec_min_amtldec_max_amtldec_default_unit_factorldec_user_unit_factorldec_act_valuels_actvaluels_devicecodesqlcals_value  $,<JZ f q |-@DAT*P   it    @! er- 9 s_A> erN> [> gt> ou>  et @   dw_1"retrieve2Retrieving Device DAT*RActivities...setmicrohelpZLdw_activitiesd!DEV2devicea>Erec_countm@>Edw_processes@aa'2Checking Device: ...ZLuo_log-Devicef_write1-=============================================================================1"idgetitemstring"code"name@"operator_id"operator_codes_"operator_namemeDAT*T"group_flagg"group_typea"install_dategetitemdatetsemm-dd-yyyyt"dismantle_datel"comment_textAgency Device Id: Code: Name: 4-1Operator Device Id: -1Group Flag: Group Type: Installed Date: Dismantled Date: -1Comments: r-1-1rowcounttre4error_messageDEV001@log_err1DEV002CONTROL'DAT*V"ridgetitemnumber1 421DEV003"1DEV004"1DEV005BAD DEVICE1DEV006EU-UNKN1DEV00799999ZZZZ1DEV0081DEV501d!value_unit_codeiw_parent$#f_get_units_name 8BADil_level_typeX&write_activity_data3pDEV502d!material_code%$#f_get_materials_nameX&3pDEV503d!metric_code$#f_get_meDAT*Xtrics_nameX&3pDEV504STACKDISCHARGE POINT0d!metric_code = 'AFS STK TYPE'setfilterId!filterd!4X&3pd!Id!DEV505d!metric_code = 'STACK SHAPE'Id!d!4X&3pd!Id!DEV506d!metric_code = 'HEIGHT' or metric_code = 'DIAMETER'Id!d!4X&3pd!Id!DEDAT*ZV507d!start_date_timegetitemdatetime4X&3pDEV508d!end_date_timez4X&3pDEV509d!4d!d!value_typed!value"$#iu_cc_source 7G$# 7G"$# 7G"type is_sourcecode)h (is_sourcetype )GENERIC"d! Value must be between and X&3DAT*\pDEV510d!4d!X&3pcheck_cancel4H -1'44H ' 4f_run_process|  $ \ t           $ |             , 4 H P d l         4 < DAT*^            ( D L T d l t          0 L h           , 4 < d               ( 0 8 @ H P DAT*`X ` h p               D L T d |                ( 0 8 @ H P ` x              ( 0 8 @ X DAT*b` h p x     f"8$8,0,L1Z,4$2d& ancestorreturnvalue::message(@< constructoril_level_type&Device$ 4 v8*$4$}<1<RD$(DDAT*dd icurrentL( createdw_processes'control,c@,c@' $4 < D &8 $d ( destroydw_processes' "7L"2 , f_run+constructor+create+destroyP.#2 1 dw_prDAT*focessesis_sourcecodeis_sourcetype< #] o. @@P1    @      $,7*PDAT*h"L7Rx?RL%2  2  ] o)i @ X@ @ L%2  2  dataobjectx] DAT*jo)i  @ x@ @ J,)8,01>, $d sqlca::message(@@( settransobject^  %L%2  +constructorDAT*l2 C xywidthheighttaborderbringtotopdataobjectlivescroll  i"-8] oi @ @ @ *P%DAT*LDAT*p$ " # 0$  ( < L T \ d             ( < D L T \ l t |               ( 0 8 @ H X ` h p       DAT*r         $ , 4 D L T \                  ( 0 8 l t |                  D L T \ d l |    DAT*t          166(@(8H808 0z%:)@:@@826 Hd s_msgtextl_ridls_rid<   Consistency Checker. * 4*<T*\p*x*DAT*v***$$$$ $($0$8$ |,BXn d @ st_level_code!sle_level("(sle_level_idD#Dsle_id_descd$dst_id_desc%st_level_id&cb_level'gb_level(!!contDAT*xrolc@!("D#d$%&'(!  4 <T \p x           ( 0 8 v$,$D$X$l$$$$*8FT bd @ st_level_code!sle_leDAT*zvele_ "sle_level_id4#sle_id_descL$st_id_desc`%st_level_idt&cb_level'gb_level(! , D X l    122 6 uf_load_level_infouf_msgbox+create+destroyP%-2 widthheightbackcolorst_level_codesle_levelsle_level_idsle_id_descst_id_descst_level_idcb_levelDAT*|gb_levelii_log_fileis_headerib_abortistr_level, - 7 D P [ g p !y"] o @@1DAT*~    @          !"1;<$2E@xM@2  2 z xywidthheightvisibleenabledfocusrectangletexDAT*tcolorbackcolortextsizeweightfacenamefontfamilyfontpitch7  A!)8BLU\ep] 7A @DAT*  @2  2 r xywidthheighttaborderborderstyledisplayonlytextcolortextsizeweightfacenamefontfamilyfontpitchj I M".:DMT]DAT*h] ojIM E@ @@ @@@2  2 r xywidthheighttaborderborderstyledisplayonlytextcolortextsizeweightfacenamefontfamilyfontpitchj  DAT*M(".:DM@T]h] ojM( E@ @@ @@@2 DAT* 2 r xywidthheighttaborderborderstyledisplayonlytextcolortextsizeweightfacenamefontfamilyfontpitchj  M2".:DM@T]h] ojM2 EDAT*@ @@ @@@2  2 w xywidthheightenabledtextfocusrectangletextcolorbackcolortextsizeweightfacenamefontfamilyfontpitch ! A!&5DAT*?I@RYbm] o!A @ @2  2 w xywidthheightenabledtextfocusrectangletextcolorbackcolortextsizeweightDAT*facenamefontfamilyfontpitchN  A!&5?IRYbm] oNA @ DAT*@B $$8,09P$*@8X,!`$h$x$1<9}$,")81<,!1,!$,!(16,!$$ , Xv36CEIdL li_connectionsli_ret_statusw_DAT*select_levelmessagesqlca::messagex%@&4!@'<"@#B!@'X istr_leveld,"msgtextChoose the Consistency Check Level_,"," ^@,"retvalpib_abort+uf_load_level_info1 $ P X ` h x     ""2  +clickedDAT*2 U xywidthheighttabordertexttextsizeweightfacenamefontfamilyfontpitch I JU"'07@ K ] oIJU @   @DAT*VB"2  2 u xywidthheighttabordertextborderstyletextcolorbackcolortextsizeweightfacenamefontfamilyfontpitch   "'3=GPW`kDAT*] o   @ @DAT*cb_view0#gb_log_file@$ ( 8 L "123456L"2 u f_writef_close_logf_write_sum_mf_write_sum_rf_open_sum_filesf_write_sum_b+constructor+create+destroy*8IWdl2 widthheightbackcolorcb_newsle_log_fiDAT*lecb_viewgb_log_fileii_log_fileis_filenameii_sum_r_fileii_sum_m_fileii_sum_b_fileis_file_m_nameis_file_r_nameis_file_b_name,pero!n t  in& He3 rd;  BGweSol_xtmt {ei] o!DAT* @@l1    @      12'x35(4CDAT*5T46b@"Low$1<808-8Iz%:)@:@@8}1<)t8,1,|$808080U@U8}1<DAT*63@38v8z%@98,>}}1<6:@:@:@:]@:@:8}d1<66:@:@:@:]@:@:8}d,P1^,$$6,6,1,4$\p"%(.*\-DAT*v/0347286<d=BdM li_ret_valuels_docnamels_named::messagew_logstatmessagecase45  )@3@=@E<X ii_log_file%Action RequestedA log file is already open. Do you want to close it?f_close_log2fSelect Log FileTXTText Files (*.txt),*.txt, All Files (*.*),*.* already existsDAT*%%sle_log_fileami"textediis_filename & t |       , 4 ""2  +clicked2 U xywidthheighttabordertexttextsizeweightfacenamefontfamilyfontpitch 5 JU"'0DAT*7@K] o5JU @ @@"2  2 | xywidthheighttaborderenabledborderstylehideselectiontextcolortextsizeweightfacenamefontfamilyfontpitch7 iDAT* .M"*6DNW^gr] o7i.M E@ @ @@DAT*B:F@@8$1<808-8az%:)@:@@8}1<)81<,1,$808080O@O8}1<$1<$!8080@8681<DAT*8C08Vz%:)@:@@8,(16,h$ 6v!'.(B)v*+-/5d4 ls_docnamels_namedli_ret_status::messageP  *@p0 ii_log_file%Log File ManagerA log file must be closed before you can view it. Would you like to close the log file that is currently open?f_closeDAT*_log,*2Select Log FileTXTText Files (*.txt),*.txt,All Files (*.*),*.*%is_filename&File is currently open, unable to viewEmission EstimatorUnable to open      h ""2 +clickedf_display_file(2 U xywidthheighttabordertexttextsizeweightfacenamefontfamilyfontpitch  DAT*JU("'07@)K)] oJU( @)) @@"2  2 q widthheighttabordertextborderstyletextcolDAT*orbackcolortextsizeweightfacenamefontfamilyfontpitch   #/9CLS\g] o    @ @DAT*DAT*  %88)@88Hp8I06@8, )p81)8,1,$6J p d8 ancestorreturnvaluels_errdwicsqlca::messaged #  i( @h=.@ constructorref_code_t.text = 'Input Reference:'modifyzDAT*9dwModify this failedsettransobjectIDS^^insertrow(x@ p   %1L%OP-/10.2 ' +itemfocuschanged+constructor( rclicas2 ' widthheightdataobjectborderP qV )] oq @DAT*forward global type w_concheck_edit from Window end type type rb_4 from radiobutton within w_concheck_edit end type type rb_3 from radiobutton within w_concheck_edit end type type rb_2 from radiobutton within w_concheck_edit end type type rb_1 from radiobutton within w_concheck_edit end type type dw_1 from datawindow within w_concheck_edit end type type cb_2 from commandbutton within w_concheck_edit end type type cb_1 from commandbutton within w_concheck_edit end type type gb_1 frDAT*om groupbox within w_concheck_edit end type end forward global type w_concheck_edit from Window int X=673 int Y=265 int Width=2081 int Height=1133 boolean TitleBar=true string Title="Untitled" long BackColor=12632256 boolean ControlMenu=true WindowType WindowType=response! rb_4 rb_4 rb_3 rb_3 rb_2 rb_2 rb_1 rb_1 dw_1 dw_1 cb_2 cb_2 cb_1 cb_1 gb_1 gb_1 end type global w_concheck_edit w_concheck_edit type variables String is_CheckId // Id of Check to retrieve end variablDAT*es on open;is_checkid = message.stringParm this.x = pixelsToUnits((ge_env.screenwidth / 2) - (unitsToPixels(this.width,XUnitsToPixels!) /2), XPixelsToUnits!) this.y = pixelsToUnits((ge_env.screenheight / 2) - (unitsToPixels(this.height,YUnitsToPixels!) /2), YPixelsToUnits!) dw_1.setTransObject(sqlca) dw_1.retrieve(is_checkid) end on on w_concheck_edit.create this.rb_4=create rb_4 this.rb_3=create rb_3 this.rb_2=create rb_2 this.rb_1=create rb_1 this.dw_1=create dw_1 thisDAT*.cb_2=create cb_2 this.cb_1=create cb_1 this.gb_1=create gb_1 this.Control[]={ this.rb_4,& this.rb_3,& this.rb_2,& this.rb_1,& this.dw_1,& this.cb_2,& this.cb_1,& this.gb_1} end on on w_concheck_edit.destroy destroy(this.rb_4) destroy(this.rb_3) destroy(this.rb_2) destroy(this.rb_1) destroy(this.dw_1) destroy(this.cb_2) destroy(this.cb_1) destroy(this.gb_1) end on type rb_4 from radiobutton within w_concheck_edit int X=1477 int Y=77 int Width=330 int Height=73 stringDAT* Text="Stream" BorderStyle BorderStyle=StyleLowered! long TextColor=33554432 long BackColor=12632256 int TextSize=-8 int Weight=700 string FaceName="Arial" FontFamily FontFamily=Swiss! FontPitch FontPitch=Variable! end type type rb_3 from radiobutton within w_concheck_edit int X=1079 int Y=77 int Width=330 int Height=73 string Text="Process" BorderStyle BorderStyle=StyleLowered! long TextColor=33554432 long BackColor=12632256 int TextSize=-8 int Weight=700 string FaceName="ADAT*rial" FontFamily FontFamily=Swiss! FontPitch FontPitch=Variable! end type type rb_2 from radiobutton within w_concheck_edit int X=682 int Y=77 int Width=330 int Height=73 string Text="Device" BorderStyle BorderStyle=StyleLowered! long TextColor=33554432 long BackColor=12632256 int TextSize=-8 int Weight=700 string FaceName="Arial" FontFamily FontFamily=Swiss! FontPitch FontPitch=Variable! end type type rb_1 from radiobutton within w_concheck_edit int X=284 int Y=77 int WiDAT*dth=330 int Height=73 string Text="Source" BorderStyle BorderStyle=StyleLowered! long TextColor=33554432 long BackColor=12632256 int TextSize=-8 int Weight=700 string FaceName="Arial" FontFamily FontFamily=Swiss! FontPitch FontPitch=Variable! end type type dw_1 from datawindow within w_concheck_edit int X=74 int Y=201 int Width=1916 int Height=609 int TabOrder=20 string DataObject="d_concheck_edit" BorderStyle BorderStyle=StyleLowered! boolean LiveScroll=true end type typDAT*e cb_2 from commandbutton within w_concheck_edit int X=1061 int Y=893 int Width=307 int Height=97 int TabOrder=40 string Text="Cancel" int TextSize=-8 int Weight=700 string FaceName="MS Sans Serif" FontFamily FontFamily=Swiss! FontPitch FontPitch=Variable! end type on clicked;closeWithReturn(parent, 0) end on type cb_1 from commandbutton within w_concheck_edit int X=659 int Y=893 int Width=307 int Height=97 int TabOrder=30 string Text="Save" int TextSize=-8 int Weight=70DAT*0 string FaceName="MS Sans Serif" FontFamily FontFamily=Swiss! FontPitch FontPitch=Variable! end type on clicked;Integer ii_retVal ii_retVal = dw_1.update() IF ii_retVal = 1 THEN COMMIT USING SQLCA; ELSE ROLLBACK USING SQLCA; END IF CloseWithReturn(parent, ii_retVal) end on type gb_1 from groupbox within w_concheck_edit int X=65 int Y=21 int Width=1925 int Height=149 int TabOrder=10 string Text=" Check Type " BorderStyle BorderStyle=StyleLowered! long TextColor=8388DAT*608 long BackColor=12632256 int TextSize=-8 int Weight=700 string FaceName="Arial" FontFamily FontFamily=Swiss! FontPitch FontPitch=Variable! end type DAT*6 V) @  1$-%LDAT*k@'l@@K1@@a?a@@K@@_le@filek_f@r_na{_b@e @ @ @ @ h-$1dH1r$1r1RMNd61DAT*$1d1, $1,1RMNk61&')- /<4=D@bGrHLOUWX[]jknv,wB|Rds ps_activity_unit_codeps_throughput_unit_codepdb_activity_valuept_trans_objectld_factor_amtls_std_unitx  ed 6 tiI Y> sgDAT* (     2  f_unit_convert2  Y8DAT*"2  +clicked2 l xywidthheighttextborderstyletextcolorbackcolortextsizeweightfacenamefontfamilyfontpitch  Ina tIamid*4>G NWtrb] oIIDAT*  @@&"H9},.1<,$d ::message@  checked  ""2  +clicked2DAT* t xywidthheighttextborderstylecheckedtextcolorbackcolortextsizeweightfacenamefontfamilyfontpitch I SI7 st*2<FOy V F_=Vj] oISI DAT* @@&"2  2 s xwidthheighttabordertextborderstyletextcolorbackcolortextsizeweightfacenamefontfamilyfontpitch  %1DAT*E;ENU^@i] o  @ @DAT*`jsz] o\Ie  E @@ @L1@ x8DAT*&,$L2  2 w xywidthheightenabledtextalignmentfocusrectanglebackcolortextsizeweightfacenamefontfamilyfontpitch   =!&0?IRYDAT*b m ] o = @   @2  2 xywidthheightenabledtextalignmentfocusrectangletextcolorbackcolortextsizeweightfacenamefontfamilyfontpitch,  UDAT* I!&0?IS\clw] o UI @ @DAT*2  2 xywidthheightenabledtextalignmentfocusrectangletextcolorbackcolortextsizeweightfacenamefontfamilyfontpitch,N U I!&0?IS\clw] DAT*oNUI @ @2  2 l xywidthheighttextborderstyletextcolorbackcolortextsizeweightfacenamefontfamilyfontpitch  DAT*f*4>GNWb] o  @ @DAT*,~P$$$1P$$)8$$)81bP$$ $$8DJ8;)$8,$4$)<81LD$L$T$\$8DJd8;)l8t$|$)81DAT*H$$8DJ8)8$D$)8X$)8  8$N!"%@'l).01D3569;=>@BFDpGIKPvRSUW X>[D]H_LdPd] ll_source_ridll_rowll_rowcountll_src_rowll_src_countll_state_rowll_state_countDAT*)4AN iu_cc_geoce6Fu_cc_geodevF6Fopenuserobjecte@86FxXwidthdytmoveuo_c_level5;istr_level,"county6Fdw_sources(5;,"retrieve 26F(rowcount4 6F(ridgetitemnumber Hf_run_sourcey`ibDAT*_cancelx<6Fcloseuserobject45;,"state6Fdw_counties'5;,"26F'4 6F(6F' H26F(4 6F( Hy`x<6F45;,"nation6Fdw_states)16F)4 6F'6F) H26F'4 6F(6F' H2DAT*6F(4 6F( Hy`x<6F46F4 (0 H P \ l x             , 4 < X p                  ( 0 8 @ H P X ` h pDAT* x                    $ , 4 < D L T \ d l t |           Rj08)X8`$l$|$<<R$)8$1DAT*R$1%$1%$1R$$)8 $)88:  .d pl_process_rid@ iu_cc_process9Iu_cc_process I9IopenuserobjectwithparmF@9Ixhwidthtymove:il_processcountCCprocess?Erec_counttiDAT* ?E9Idw_concheck."f_run79Icloseuserobject4( 08 X ` l |              8 j,4)T8\$h$x$<<R$)8$$)8$)8: dDAT* forward global type w_concheck_export from Window end type type cb_2 from commandbutton within w_concheck_export end type type cb_1 from commandbutton within w_concheck_export end type type dw_1 from datawindow within w_concheck_export end type end forward global type w_concheck_export from Window int X=846 int Y=377 int Width=1162 int Height=981 boolean TitleBar=true string Title="Rules Export" long BackColor=12632256 boolean ControlMenu=true WindowType WindowType=response! DAT* cb_2 cb_2 cb_1 cb_1 dw_1 dw_1 end type global w_concheck_export w_concheck_export on open;this.x = pixelsToUnits((ge_env.screenwidth / 2) - (unitsToPixels(this.width,XUnitsToPixels!) /2), XPixelsToUnits!) this.y = pixelsToUnits((ge_env.screenheight / 2) - (unitsToPixels(this.height,YUnitsToPixels!) /2), YPixelsToUnits!) dw_1.setTransObject(sqlca) dw_1.retrieve() end on on w_concheck_export.create this.cb_2=create cb_2 this.cb_1=create cb_1 this.dw_1=create dw_1 this.Control[]DAT* ={ this.cb_2,& this.cb_1,& this.dw_1} end on on w_concheck_export.destroy destroy(this.cb_2) destroy(this.cb_1) destroy(this.dw_1) end on type cb_2 from commandbutton within w_concheck_export int X=604 int Y=697 int Width=430 int Height=109 int TabOrder=30 string Text="Close" int TextSize=-10 int Weight=400 string FaceName="Arial" FontFamily FontFamily=Swiss! FontPitch FontPitch=Variable! end type on clicked;close(parent) end on type cb_1 from commandbutton within wDAT* _concheck_export int X=106 int Y=697 int Width=430 int Height=109 int TabOrder=20 string Text="Export to Text" int TextSize=-10 int Weight=400 string FaceName="Arial" FontFamily FontFamily=Swiss! FontPitch FontPitch=Variable! end type on clicked;dw_1.SaveAs("concheck.txt", Text!, FALSE) end on type dw_1 from datawindow within w_concheck_export int X=97 int Y=49 int Width=947 int Height=593 int TabOrder=10 string DataObject="d_concheck" boolean LiveScroll=true end type DAT* DAT*  pl_stream_ridp iu_cc_stream:Ju_cc_stream J:JopenuserobjectwithparmaF<:Jxdwidthpymove:Jdw_concheck."f_rune7:Jcloseuserobject4 ,4 T \ h x        *-,*6d ps_codels_namesqlDAT* ca<  *@L *-,*86d ps_codels_namesqlca<  *@L *-,*6d ps_codels_namesqlca<  *@L *-,*6DAT* d ps_codels_namesqlca<  *@L r[1}$/1<< 1< 1< 1< 1< 1< 1< 1 < 1 < 1 < 1 <DAT*  1 < 1$80)|8$80)8$80)8$80)8$80)8 $80)8$80)$8,$80)48<$8D0)8$80)8,,80)8$8)8$DAT* ) 8($)<81}<D$<8L)`81o@o981@8h$<8pJ8}$<8J81o@o88b68:< <%R^8<DAT*  <%R^8< <%R^8< <%R^8^< <%R868< <%R8< <%R8f68 DAT* <  <%Rb8 <  <%Rb8 <  <%Rb8b <  <%R868 <  <%R$80)8$8$1%0$1)L8z'DAT* z&1%1)T8z(z&1%1)\8z(z&1%1)d8z()l8t$8|$1%$1)8z'z&1%1)8z(z&1%1)8z(z&1%1)8z()8$8 $1%$1)8z'DAT* z&1%1)$8z(z&1%1),8z(z&1%1)48z()<8D$8Lt$1%|$1)8z'z&1%1)8z(z&1%1)8z(z&1%1)8z()8$8$1%$1)8zDAT* 'z&1%1)8z(z&1%1)8z(z&1%1)8z() 8$80)8$$8,0)48<$8Dp$1%x$1)8z'z&1%1)8z(z&1%1)8z(z&1%1)8z()8DAT* $8$1%$1)8z'z&1%1)8z(z&1%1)8z(z&1%1)8z()8$80)8 $8(0)48<$8Dt$1%|$1)8z'z& 1%1)8z(z& 1%1)DAT* 8z(z& 1%1)8z()8$8$1%$1)8z'z& 1%1)8z(z& 1%1)8z(z& 1%1)8z() 8$8D$1%L$1)T8z'z& 1%1)\8z(z& 1%1)dDAT*" 8z(z& 1%1)l8z()t8|$8$1%$1)8z'z& 1%1)8z(z& 1%1)8z(z& 1%1)8z()8$80)8$80)8 $8@$1%H$1)P8z'z& DAT*8 1%1)X8z(z& 1%1)`8z(z& 1%1)h8z()p8x$80)8$80)8$80)8$80)8$80)88Vt !("F#d$%()*+,<-b./014 7>8`:|;=>?@@tBDEFDAT*& cb_overwrite,& this.mle_message} end on on w_logstat.destroy destroy(this.cb_cancel) destroy(this.cb_append) destroy(this.cb_overwrite) destroy(this.mle_message) end on type cb_cancel from commandbutton within w_logstat int X=1006 int Y=336 int Width=329 int Height=96 int TabOrder=30 string Text="Cancel" boolean Cancel=true int TextSize=-8 int Weight=700 string FaceName="MS Sans Serif" FontCharSet FontCharSet=Ansi! FontFamily FontFamily=Swiss! FontPitch FontPitch=VariableDAT*( ! end type on clicked;// User wants to cancel CloseWithReturn( Parent, 3 ) // end end on type cb_append from commandbutton within w_logstat int X=585 int Y=336 int Width=329 int Height=96 int TabOrder=10 string Text="Append" boolean Default=true int TextSize=-8 int Weight=700 string FaceName="MS Sans Serif" FontCharSet FontCharSet=Ansi! FontFamily FontFamily=Swiss! FontPitch FontPitch=Variable! end type on clicked;// User wants to append data to existing file ClosDAT** eWithReturn( Parent, 2 ) // end end on type cb_overwrite from commandbutton within w_logstat int X=165 int Y=336 int Width=329 int Height=96 int TabOrder=20 string Text="&Overwrite" int TextSize=-8 int Weight=700 string FaceName="MS Sans Serif" FontCharSet FontCharSet=Ansi! FontFamily FontFamily=Swiss! FontPitch FontPitch=Variable! end type on clicked;// User wants to overwrite data in existing file CloseWithReturn( Parent, 1 ) // end end on type mle_message from mDAT*\ultilineedit within w_logstat int X=73 int Y=48 int Width=1371 int Height=256 Alignment Alignment=Center! boolean Border=false boolean DisplayOnly=true long BackColor=79741120 int TextSize=-10 int Weight=400 string FaceName="Arial" FontCharSet FontCharSet=Ansi! FontFamily FontFamily=Swiss! FontPitch FontPitch=Variable! end type DAT*. c function long wf_get_county_rid (string ps_county_name, long pl_parent_rid, transaction pt_trans_object) public function long wf_get_source_rid (string ps_source_name, long pl_parent_rid, transaction pt_trans_object) public function long wf_get_process_rid (string ps_process_name, long pl_parent_rid, transaction pt_trans_object) public function integer wf_preset_ddlbs () public function integer wf_put_output () public function long wf_get_device_rid (string ps_device_code, long pl_parent_riDAT*0 d, transaction pt_trans_object) end prototypes public function integer wf_load_states (long pl_current_rid, long pl_parent_rid, transaction pt_trans_object);// INT wf_load_states() // // Load ddlb_state // // Use pl_parent_rid to limit the selections based upon the // current nation. // Use pl_current_rid to pre-set the current state. // // Returns: 1 Success // 0 Record not found // -1 SQL Error SetPointer( HourGlass! ) // Declare local variables LONG llDAT*2 _rid STRING ls_name // Declare cursor DECLARE cur_state CURSOR FOR SELECT rid, name FROM rap_geographic_locations WHERE type = 'STATE' AND parent_rid = :pl_parent_rid ORDER BY name USING pt_trans_object; // Open cursor OPEN cur_state; IF pt_trans_object.sqlcode <> 0 THEN // SQL Error MessageBox( "Level Selection", "Could not load states~n~r" + & "SQL Error: " + String( pt_trans_object.sqlcode ) + & " " + pt_DAT*4 trans_object.SQLErrText, StopSign!, OK! ) ROLLBACK USING pt_trans_object; Return( -1 ) END IF // Clear ddlb ddlb_state.Reset() // Get first record FETCH cur_state INTO :ll_rid, :ls_name; IF pt_trans_object.sqlcode = 100 THEN // No records found MessageBox( "Level Selection", "No states found for this nation", & StopSign!, OK! ) ROLLBACK USING pt_trans_object; CLOSE cur_state; Return( 0 ) ELSEIF pt_trans_object.sqlcode <>DAT*6  0 THEN // SQL Error MessageBox( "Level Selection", "Could not load states~n~r" + & "SQL Error: " + String( pt_trans_object.sqlcode ) + & " " + pt_trans_object.SQLErrText, StopSign!, OK! ) ROLLBACK USING pt_trans_object; CLOSE cur_state; Return( -1 ) END IF // Loop through remaining records DO WHILE pt_trans_object.sqlcode = 0 // Add value to ddlb ddlb_state.AddItem( ls_name ) // Set the current selection to this item if the riDAT*j d matches IF pl_current_rid = ll_rid THEN ddlb_state.text = ls_name END IF // Get next record FETCH cur_state INTO :ll_rid, :ls_name; IF pt_trans_object.sqlcode = 100 THEN // No more records--break out of loop EXIT ELSEIF pt_trans_object.sqlcode <> 0 THEN // SQL Error MessageBox( "Level Selection", "Could not load states~n~r" + & "SQL Error: " + String( pt_trans_object.sqlcode ) + & DAT*: GI6JNLMOPRS,W^XvYZ\]ab.c>dRfgijlm0qbrzstz|} 2.*Pvrnjf Fd` li_ili_severityll_src_source@ll_src_contact@ll_src_legalent@ll_src_loccoord@ll_src_srcactiv@ll_dev_device@ll_dev_devactiv@ll_pro_process@ll_pro_specsched@DAT*< ll_pro_emisfact@ll_pro_proactiv@ll_str_stractiv@ll_rowcountll_error_valuels_rectypels_categoryls_gutterspacew_mdi_maincase66case69case88case98case114(D`| (D` (-D4-`P-|l----DAT*> - -(-D4-`P-lx  ,@M  n     uo_log -===============================================================================f_write_sum_r4l -%4l - E R R O R CDAT*@  O U N T by R E C O R D T Y P Eh4l -4l -4l -4l -4l -4l - Total Warnings Alerts Notices4l -4lCreating Error Count by Record Type report...setmicrohelpZdw_concheck."setfilterI."filter."rowcount40."idgetitemstringO."severitygetitemnumber y."error_count ySRC0DAT*B 1235DEVPROSTRpl -Facilities4l - Sources facility=Erec_count$f_rightjustifylong88884l - Contacts (=E$88884l - Legal Entities =E$88884l - Location Coordinates =E$88884DAT*D l - Source Activities =E$88884l -4l -Devices4l - Devices devicei>E$88884l - Device Activities i>E$88884l -4l -Processes4l - Processes processi?E$888DAT*F 84l - Process Specific Schedules i?E$88884l - Emission Factors i?E$88884l - Process Activities i?E$88884l -4l -Streams4l - Stream Activities stream9@E$88884l -4l -4DAT*: l -4l -4l -4l |             $ , 4 <          ( < D ` h        0 L T \ d l t             $ ,DAT*J b] oMJI @ @@2  2 D xywidthheighttaborderdataobjectborderstylelivescrollJ  |a"-)DAT*L 9)] oJ|a @ @ )) X1I+@8,>1L,$$d ::message@#  ""2  +clickedDAT*N 2 U xywidthheighttabordertexttextsizeweightfacenamefontfamilyfontpitch% } 3a("'07@K] o%}3a( @ @DAT*P "$) 8}1<@,F,@;@8,1,($"6<@ F hd" ii_retvalsqlca::message<@$@#0 dw_1.updated  ( " "2  +clickedDAT*R 2 U xywidthheighttabordertexttextsizeweightfacenamefontfamilyfontpitch } 3a"'07@K] o}3a @ @DAT*T "2  2 u xywidthheighttabordertextborderstyletextcolorbackcolortextsizeweightfacenamefontfamilyfontpitchA   "'3=GPW` k DAT*] oA  @   @DAT*X   xJ@8,01>,$d ::message@  ""2  +clicked2 U xywidthheighttabordertexttextsizeweightfacenamefontfamilyfontpitch\ vDAT*Z   im Hn "in' 0327ol@ypK] o\m @ @"d$80:I@9),8,J1XDAT*\ ,4$0d ::message@< dw_1,concheck.txtsaveas6% , 4 ""2  +clicked2 U xywidthheighttabordertexttextsizeweightfacenamefontfamilyfontpitchj^@  ^@m ^@"'^@0DAT*^ 7c@@K] ojm @ @"2  2 8 xywidthheighttaborderdataobjectlivescrolla^@ 1 ^@Q  DAT*^@"-] oa1Q  @ @ @ DAT*b 7>G)R)] o=|]F @)) @"J@8,01>,$d ::message@# DAT*d  ""2  +clicked2 U xywidthheighttabordertexttextsizeweightfacenamefontfamilyfontpitch = |]<"'07@K] o=|]< @DAT*f  @"#$$)(880)D8@98,L>5X`$h$)p8)8,1,$Ztd* w_concheck_editmessage::message<#@&@# @#XDAT*h  dw_100getrow idgetitemstring3?00 reselectrow.x  ( D L X` h p   ""2  +clicked2 U xywidthheighttabordertexttextsizeweightfacenamefontfamilyfontpitch\  |]2DAT*v "'07@K] o\|]2 @ @"#8@8, >5t($)88@$)T8,1DAT*l  " " + pt_trans_object.SQLErrText, StopSign!, OK! ) ROLLBACK USING pt_trans_object; CLOSE cur_state; Return( -1 ) END IF LOOP // Close cursor CLOSE cur_state; IF pt_trans_object.sqlcode <> 0 THEN // SQL Error MessageBox( "Level Selection", "Could not load states~n~r" + & "SQL Error: " + String( pt_trans_object.sqlcode ) + & " " + pt_trans_object.SQLErrText, StopSign!, OK! ) ROLLBACK USING pt_trans_object; Return(DAT*n  -1 ) END IF // Normal exit COMMIT USING pt_trans_object; IF pt_trans_object.sqlcode <> 0 THEN // SQL Error MessageBox( "Level Selection", "Could not load states~n~r" + & "SQL Error: " + String( pt_trans_object.sqlcode ) + & " " + pt_trans_object.SQLErrText, StopSign!, OK! ) ROLLBACK USING pt_trans_object; Return( -1 ) END IF Return( 1 ) // end wf_load_states() end function public function integer wf_load_nations (long pl_current_rDAT*p id, transaction pt_trans_object);// INT wf_load_nations() // // Load ddlb_nation // // Use pl_current_rid to pre-set the current nation. // // Returns: 1 Success // 0 Record not found // -1 SQL Error SetPointer( HourGlass! ) // Declare local variables LONG ll_rid STRING ls_name // Declare cursor DECLARE cur_nation CURSOR FOR SELECT rid, name FROM rap_geographic_locations WHERE type = 'NATION' ORDER BY name USING pt_trans_oDAT*r bject; // Open cursor OPEN cur_nation; IF pt_trans_object.sqlcode <> 0 THEN // SQL Error MessageBox( "Level Selection", "Could not load nations~n~r" + & "SQL Error: " + String( pt_trans_object.sqlcode ) + & " " + pt_trans_object.SQLErrText, StopSign!, OK! ) ROLLBACK USING pt_trans_object; Return( -1 ) END IF // Clear ddlb ddlb_nation.Reset() // Get first record FETCH cur_nation INTO :ll_rid, :ls_name; IF pt_transDAT*t _object.sqlcode = 100 THEN // No records found MessageBox( "Level Selection", "No nations found", StopSign!, OK! ) ROLLBACK USING pt_trans_object; CLOSE cur_nation; Return( 0 ) ELSEIF pt_trans_object.sqlcode <> 0 THEN // SQL Error MessageBox( "Level Selection", "Could not load nations~n~r" + & "SQL Error: " + String( pt_trans_object.sqlcode ) + & " " + pt_trans_object.SQLErrText, StopSign!, OK! ) ROLLBACK USING pt_trans_object; CDAT* LOSE cur_nation; Return( -1 ) END IF // Loop through remaining records DO WHILE pt_trans_object.sqlcode = 0 // Add value to ddlb ddlb_nation.AddItem( ls_name ) // Set the current selection to this item if the rid matches IF pl_current_rid = ll_rid THEN ddlb_nation.text = ls_name END IF // Get next record FETCH cur_nation INTO :ll_rid, :ls_name; IF pt_trans_object.sqlcode = 100 THEN // No more records--break out of DAT*x ,\$"<Xtd* w_concheck_editmessage::message<#@&@# @#d8 ?dw_1 0reset/0 0retrieve91H ( 8 @ T \ ""2  +clicked2 U xywidthheighttabordertexttextsizeweightfacenamefontfamilyfontpitchDAT*z   |]"'07@K] o|] @ @"-&/<2  DAT*|  2 - xywidthheighttaborderdataobjectx3 i "] o3i  @ @  2  2 u xywidthheighttabordertextbordeDAT*~ rstyletextcolorbackcolortextsizeweightfacenamefontfamilyfontpitch    "'3=GPW`k] o   @DAT*= @DAT* `   @"X1I+@8,>1L,$$d ::message@  ""2  +clicked2 a xywidthheighttabordertDAT* exttextsizeweightfacenamefontcharsetfontfamilyfontpitch P I`"'07@LW] oPI`  @DAT* "2  2 z xywidthheightalignmentborderdisplayonlybackcolortextsizeweightfacenamefontcharsetfontfamilyfontpitchI^@ 0 [^@ ^@#*^@6@c@IPd@Yed@p] DAT*0oI0[ E @ 1@@DAT* loop EXIT ELSEIF pt_trans_object.sqlcode <> 0 THEN // SQL Error MessageBox( "Level Selection", "Could not load nations~n~r" + & "SQL Error: " + String( pt_trans_object.sqlcode ) + & " " + pt_trans_object.SQLErrText, StopSign!, OK! ) ROLLBACK USING pt_trans_object; CLOSE cur_nation; Return( -1 ) END IF LOOP // Close cursor CLOSE cur_nation; IF pt_trans_object.sqlcode <> 0 THEN // SQL Error MessageBDAT* ox( "Level Selection", "Could not load nations~n~r" + & "SQL Error: " + String( pt_trans_object.sqlcode ) + & " " + pt_trans_object.SQLErrText, StopSign!, OK! ) ROLLBACK USING pt_trans_object; Return( -1 ) END IF // Normal exit ddlb_nation.SelectItem(ddlb_nation.text,1) COMMIT USING pt_trans_object; IF pt_trans_object.sqlcode <> 0 THEN // SQL Error MessageBox( "Level Selection", "Could not load nations~n~r" + & "SQL Error: " + DAT* String( pt_trans_object.sqlcode ) + & " " + pt_trans_object.SQLErrText, StopSign!, OK! ) ROLLBACK USING pt_trans_object; Return( -1 ) END IF Return( 1 ) // end wf_load_nations() end function public function integer wf_load_counties (long pl_current_rid, long pl_parent_rid, transaction pt_trans_object);// INT wf_load_counties() // // Load ddlb_county // // Use pl_parent_rid to limit the selections based upon the // current state. // Use pl_current_rid to pDAT* re-set the current county. // // Returns: 1 Success // 0 Record not found // -1 SQL Error SetPointer( HourGlass! ) // Declare local variables LONG ll_rid STRING ls_name // Declare cursor DECLARE cur_county CURSOR FOR SELECT rid, name FROM rap_geographic_locations WHERE type = 'COUNTY' AND parent_rid = :pl_parent_rid ORDER BY name USING pt_trans_object; // Open cursor OPEN cur_county; IF pt_trans_object.sqlcode <> 0DAT*  THEN // SQL Error MessageBox( "Level Selection", "Could not load counties~n~r" + & "SQL Error: " + String( pt_trans_object.sqlcode ) + & " " + pt_trans_object.SQLErrText, StopSign!, OK! ) ROLLBACK USING pt_trans_object; Return( -1 ) END IF // Clear ddlb ddlb_county.Reset() // Get first record FETCH cur_county INTO :ll_rid, :ls_name; IF pt_trans_object.sqlcode = 100 THEN // No records found MessageBox( "Level DAT* Selection", "No counties found for this state", & StopSign!, OK! ) ROLLBACK USING pt_trans_object; CLOSE cur_county; Return( 0 ) ELSEIF pt_trans_object.sqlcode <> 0 THEN // SQL Error MessageBox( "Level Selection", "Could not load counties~n~r" + & "SQL Error: " + String( pt_trans_object.sqlcode ) + & " " + pt_trans_object.SQLErrText, StopSign!, OK! ) ROLLBACK USING pt_trans_object; CLOSE cur_county; Return( -1 ) END DAT* IF // Loop through remaining records DO WHILE pt_trans_object.sqlcode = 0 // Add value to ddlb ddlb_county.AddItem( ls_name ) // Set the current selection to this item if the rid matches IF pl_current_rid = ll_rid THEN ddlb_county.text = ls_name END IF // Get next record FETCH cur_county INTO :ll_rid, :ls_name; IF pt_trans_object.sqlcode = 100 THEN // No more records--break out of loop EXIT ELSEIF pt_trans_obDAT* ject.sqlcode <> 0 THEN // SQL Error MessageBox( "Level Selection", "Could not load counties~n~r" + & "SQL Error: " + String( pt_trans_object.sqlcode ) + & " " + pt_trans_object.SQLErrText, StopSign!, OK! ) ROLLBACK USING pt_trans_object; CLOSE cur_county; Return( -1 ) END IF LOOP // Close cursor CLOSE cur_county; IF pt_trans_object.sqlcode <> 0 THEN // SQL Error MessageBox( "Level Selection", "Could not loadDAT*  counties~n~r" + & "SQL Error: " + String( pt_trans_object.sqlcode ) + & " " + pt_trans_object.SQLErrText, StopSign!, OK! ) ROLLBACK USING pt_trans_object; Return( -1 ) END IF // Normal exit COMMIT USING pt_trans_object; IF pt_trans_object.sqlcode <> 0 THEN // SQL Error MessageBox( "Level Selection", "Could not load counties~n~r" + & "SQL Error: " + String( pt_trans_object.sqlcode ) + & " " + pt_trans_object.SQLEDAT* rrText, StopSign!, OK! ) ROLLBACK USING pt_trans_object; Return( -1 ) END IF Return( 1 ) // end wf_load_counties() end function public function integer wf_load_sources (long pl_current_rid, long pl_parent_rid, transaction pt_trans_object);// INT wf_load_sources() // // Load ddlb_source // // Use pl_parent_rid to limit the selections based upon the // current county. // Use pl_current_rid to pre-set the current source. // // Returns: 1 Success // 0 Record noDAT* t found // -1 SQL Error SetPointer( HourGlass! ) // Declare local variables LONG ll_rid STRING ls_id STRING ls_name // Declare cursor DECLARE cur_source CURSOR FOR SELECT rid, id, name FROM rap_sources WHERE geographic_county_rid = :pl_parent_rid ORDER BY id USING pt_trans_object; // Open cursor OPEN cur_source; IF pt_trans_object.sqlcode <> 0 THEN // SQL Error MessageBox( "Level Selection", "Could not load sources~DAT* n~r" + & "SQL Error: " + String( pt_trans_object.sqlcode ) + & " " + pt_trans_object.SQLErrText, StopSign!, OK! ) ROLLBACK USING pt_trans_object; Return( -1 ) END IF // Clear ddlb ddlb_source.Reset() // Get first record FETCH cur_source INTO :ll_rid, :ls_id, :ls_name; IF pt_trans_object.sqlcode = 100 THEN // No records found MessageBox( "Level Selection", "No sources found for this county", & DAT*  StopSign!, OK! ) ROLLBACK USING pt_trans_object; CLOSE cur_source; Return( 0 ) ELSEIF pt_trans_object.sqlcode <> 0 THEN // SQL Error MessageBox( "Level Selection", "Could not load sources~n~r" + & "SQL Error: " + String( pt_trans_object.sqlcode ) + & " " + pt_trans_object.SQLErrText, StopSign!, OK! ) ROLLBACK USING pt_trans_object; CLOSE cur_source; Return( -1 ) END IF // Loop through remaining records DO WHILE pt_DAT* trans_object.sqlcode = 0 // Add value to ddlb ddlb_source.AddItem( ls_id + " | " + ls_name ) // Set the current selection to this item if the rid matches IF pl_current_rid = ll_rid THEN ddlb_source.text = ls_id + " | " + ls_name END IF // Get next record FETCH cur_source INTO :ll_rid, :ls_id, :ls_name; IF pt_trans_object.sqlcode = 100 THEN // No more records--break out of loop EXIT ELSEDAT* IF pt_trans_object.sqlcode <> 0 THEN // SQL Error MessageBox( "Level Selection", "Could not load sources~n~r" + & "SQL Error: " + String( pt_trans_object.sqlcode ) + & " " + pt_trans_object.SQLErrText, StopSign!, OK! ) ROLLBACK USING pt_trans_object; CLOSE cur_source; Return( -1 ) END IF LOOP // Close cursor CLOSE cur_source; IF pt_trans_object.sqlcode <> 0 THEN // SQL Error MessageBox( "Level Selection", "CDAT* ould not load sources~n~r" + & "SQL Error: " + String( pt_trans_object.sqlcode ) + & " " + pt_trans_object.SQLErrText, StopSign!, OK! ) ROLLBACK USING pt_trans_object; Return( -1 ) END IF // Normal exit COMMIT USING pt_trans_object; IF pt_trans_object.sqlcode <> 0 THEN // SQL Error MessageBox( "Level Selection", "Could not load sources~n~r" + & "SQL Error: " + String( pt_trans_object.sqlcode ) + & " " + pt_trans_DAT* object.SQLErrText, StopSign!, OK! ) ROLLBACK USING pt_trans_object; Return( -1 ) END IF Return( 1 ) // end wf_load_sources() end function public function integer wf_load_devices (long pl_current_rid, long pl_parent_rid, transaction pt_trans_object);// INT wf_load_devices() // // Load ddlb_device // // Use pl_parent_rid to limit the selections based upon the // current source. // Use pl_current_rid to pre-set the current device. // // Returns: 1 Success // 0DAT*  Record not found // -1 SQL Er // // MAS 14JUN95 changed to select device code instead of name // SetPointer( HourGlass! ) // Declare local variables LONG ll_rid STRING ls_id STRING ls_code // Declare cursor DECLARE cur_device CURSOR FOR SELECT rid, id, code FROM rap_devices WHERE source_rid = :pl_parent_rid ORDER BY id USING pt_trans_object; // Open cursor OPEN cur_device; IF pt_trans_object.sqlcode <> 0 THEDAT* N // SQL Error MessageBox( "Level Selection", "Could not load devices~n~r" + & "SQL Error: " + String( pt_trans_object.sqlcode ) + & " " + pt_trans_object.SQLErrText, StopSign!, OK! ) ROLLBACK USING pt_trans_object; Return( -1 ) END IF // Clear ddlb ddlb_device.Reset() // Get first record FETCH cur_device INTO :ll_rid, :ls_id, :ls_code; IF pt_trans_object.sqlcode = 100 THEN // No records foDAT* und MessageBox( "Level Selection", "No devices found for this source", & StopSign!, OK! ) ROLLBACK USING pt_trans_object; CLOSE cur_device; Return( 0 ) ELSEIF pt_trans_object.sqlcode <> 0 THEN // SQL Error MessageBox( "Level Selection", "Could not load devices~n~r" + & "SQL Error: " + String( pt_trans_object.sqlcode ) + & " " + pt_trans_object.SQLErrText, StopSign!, OK! ) ROLLBACK USING pt_trans_object; CLOSE cur_deviDAT* ce; Return( -1 ) END IF // Loop through remaining records DO WHILE pt_trans_object.sqlcode = 0 // Add value to ddlb ddlb_device.AddItem( ls_id + " | " + ls_code ) // Set the current selection to this item if the rid matches IF pl_current_rid = ll_rid THEN ddlb_device.text = ls_id + " | " + ls_code END IF // Get next record FETCH cur_device INTO :ll_rid, :ls_id, :ls_code; IF pt_trans_object.sqlcoDAT* de = 100 THEN // No more records--break out of loop EXIT ELSEIF pt_trans_object.sqlcode <> 0 THEN // SQL Error MessageBox( "Level Selection", "Could not load devices~n~r" + & "SQL Error: " + String( pt_trans_object.sqlcode ) + & " " + pt_trans_object.SQLErrText, StopSign!, OK! ) ROLLBACK USING pt_trans_object; CLOSE cur_device; Return( -1 ) END IF LOOP // Close cursor CLOSE cur_device; IF pt_trans_DAT* object.sqlcode <> 0 THEN // SQL Error MessageBox( "Level Selection", "Could not load devices~n~r" + & "SQL Error: " + String( pt_trans_object.sqlcode ) + & " " + pt_trans_object.SQLErrText, StopSign!, OK! ) ROLLBACK USING pt_trans_object; Return( -1 ) END IF // Normal exit COMMIT USING pt_trans_object; IF pt_trans_object.sqlcode <> 0 THEN // SQL Error MessageBox( "Level Selection", "Could not load devices~n~r" + & "SQL EDAT* rror: " + String( pt_trans_object.sqlcode ) + & " " + pt_trans_object.SQLErrText, StopSign!, OK! ) ROLLBACK USING pt_trans_object; Return( -1 ) END IF Return( 1 ) // end wf_load_devices() end function public function integer wf_load_processes (long pl_current_rid, long pl_parent_rid, transaction pt_trans_object);// INT wf_load_processes() // // Load ddlb_process // // Use pl_parent_rid to limit the selections based upon the // current device. // Use pl_cuDAT* rrent_rid to pre-set the current process. // // Returns: 1 Success // 0 Record not found // -1 SQL Error SetPointer( HourGlass! ) // Declare local variables LONG ll_rid STRING ls_id STRING ls_name // Declare cursor DECLARE cur_process CURSOR FOR SELECT rid, id, name FROM rap_processes WHERE device_rid = :pl_parent_rid ORDER BY id USING pt_trans_object; // Open cursor OPEN cur_process; IF pt_trans_object.sqlcodDAT* e <> 0 THEN // SQL Error MessageBox( "Level Selection", "Could not load processes~n~r" + & "SQL Error: " + String( pt_trans_object.sqlcode ) + & " " + pt_trans_object.SQLErrText, StopSign!, OK! ) ROLLBACK USING pt_trans_object; Return( -1 ) END IF // Clear ddlb ddlb_process.Reset() // Get first record FETCH cur_process INTO :ll_rid, :ls_id, :ls_name; IF pt_trans_object.sqlcode = 100 THEN DAT* // No records found MessageBox( "Level Selection", "No processes found for this device", & StopSign!, OK! ) ROLLBACK USING pt_trans_object; CLOSE cur_process; Return( 0 ) ELSEIF pt_trans_object.sqlcode <> 0 THEN // SQL Error MessageBox( "Level Selection", "Could not load processes~n~r" + & "SQL Error: " + String( pt_trans_object.sqlcode ) + & " " + pt_trans_object.SQLErrText, StopSign!, OK! ) ROLLBACK USING pt_trans_objecDAT* t; CLOSE cur_process; Return( -1 ) END IF // Loop through remaining records DO WHILE pt_trans_object.sqlcode = 0 // need to handle name being null case // MAS 23SEP94 10:29 p.m IF IsNull(ls_name) THEN ls_name = "" END IF IF IsNull(ls_id) THEN ls_name = "" END IF // Add value to ddlb ddlb_process.AddItem( ls_id + " | " + ls_name ) // Set the current selection to this item if the rid matches IF pl_current_rid = ll_rid THEN ddDAT* lb_process.text = ls_id + " | " + ls_name END IF // Get next record FETCH cur_process INTO :ll_rid, :ls_id, :ls_name; IF pt_trans_object.sqlcode = 100 THEN // No more records--break out of loop EXIT ELSEIF pt_trans_object.sqlcode <> 0 THEN // SQL Error MessageBox( "Level Selection", "Could not load processes~n~r" + & "SQL Error: " + String( pt_trans_object.sqlcode ) + & DAT*  " " + pt_trans_object.SQLErrText, StopSign!, OK! ) ROLLBACK USING pt_trans_object; CLOSE cur_process; Return( -1 ) END IF LOOP // Close cursor CLOSE cur_process; IF pt_trans_object.sqlcode <> 0 THEN // SQL Error MessageBox( "Level Selection", "Could not load processes~n~r" + & "SQL Error: " + String( pt_trans_object.sqlcode ) + & " " + pt_trans_object.SQLErrText, StopSign!, OK! ) ROLLBACK USING pt_trans_object;DAT*  Return( -1 ) END IF // Normal exit COMMIT USING pt_trans_object; IF pt_trans_object.sqlcode <> 0 THEN // SQL Error MessageBox( "Level Selection", "Could not load processes~n~r" + & "SQL Error: " + String( pt_trans_object.sqlcode ) + & " " + pt_trans_object.SQLErrText, StopSign!, OK! ) ROLLBACK USING pt_trans_object; Return( -1 ) END IF Return( 1 ) // end wf_load_processes() end function public function long wf_get_nation_rid (DAT* string ps_nation_name, transaction pt_trans_object);// LONG wf_get_nation_rid() // // Get rid for ps_nation_name // // Returns: rid Success // 0 Record not found // -1 SQL Error SetPointer( HourGlass! ) // Declare local variables INTEGER li_ret_status LONG ll_rid // Make sure ps_nation_name is in ddlb // (Handles case where list is pulled down, but no selection is made) li_ret_status = ddlb_nation.FindItem( ps_nation_name, 1 ) IF li_ret_status = -1 THDAT* EN // Item not found ddlb_nation.Clear() Return( 0 ) END IF SELECT rid INTO :ll_rid FROM rap_geographic_locations WHERE type = 'NATION' AND name = :ps_nation_name USING pt_trans_object; IF pt_trans_object.sqlcode = 100 THEN // Record not found MessageBox( "Level Selection", "Nation record not found for " + & ps_nation_name, StopSign!, OK! ) ROLLBACK USING pt_trans_object; Return( 0 ) ELSEIF pt_trans_object.sqlcode <> 0 THEN // SDAT* QL Error MessageBox( "Level Selection", "Could not find nation~n~r" + & "SQL Error: " + String( pt_trans_object.sqlcode ) + & " " + pt_trans_object.SQLErrText, StopSign!, OK! ) ROLLBACK USING pt_trans_object; Return( -1 ) END IF // Normal exit COMMIT USING pt_trans_object; Return( ll_rid ) // end wf_get_nation_rid() end function public function long wf_get_state_rid (string ps_state_name, long pl_parent_rid, transaction pt_trans_object);//DAT*  LONG wf_get_state_rid() // // Get rid for ps_state_name // // Returns: rid Success // 0 Record not found // -1 SQL Error SetPointer( HourGlass! ) // Declare local variables INTEGER li_ret_status LONG ll_rid // Make sure ps_state_name is in ddlb // (Handles case where list is pulled down, but no selection is made) li_ret_status = ddlb_state.FindItem( ps_state_name, 1 ) IF li_ret_status = -1 THEN // Item not found ddlb_state.Clear() Return(DAT*  0 ) END IF SELECT rid INTO :ll_rid FROM rap_geographic_locations WHERE type = 'STATE' AND parent_rid = :pl_parent_rid AND name = :ps_state_name USING pt_trans_object; IF pt_trans_object.sqlcode = 100 THEN // Record not found MessageBox( "Level Selection", "State record not found for " + & ps_state_name, StopSign!, OK! ) ROLLBACK USING pt_trans_object; Return( 0 ) ELSEIF pt_trans_object.sqlcode <> 0 THEN // SQL Error MessageBox( "LeDAT* vel Selection", "Could not find state~n~r" + & "SQL Error: " + String( pt_trans_object.sqlcode ) + & " " + pt_trans_object.SQLErrText, StopSign!, OK! ) ROLLBACK USING pt_trans_object; Return( -1 ) END IF // Normal exit COMMIT USING pt_trans_object; Return( ll_rid ) // end wf_get_state_rid() end function public function long wf_get_county_rid (string ps_county_name, long pl_parent_rid, transaction pt_trans_object);// LONG wf_get_county_rid() /DAT* / // Get rid for ps_county_name // // Returns: rid Success // 0 Record not found // -1 SQL Error SetPointer( HourGlass! ) // Declare local variables INTEGER li_ret_status LONG ll_rid // Make sure ps_county_name is in ddlb // (Handles case where list is pulled down, but no selection is made) li_ret_status = ddlb_county.FindItem( ps_county_name, 1 ) IF li_ret_status = -1 THEN // Item not found ddlb_county.Clear() Return( 0 ) END IF SELECTDAT*  rid INTO :ll_rid FROM rap_geographic_locations WHERE type = 'COUNTY' AND parent_rid = :pl_parent_rid AND name = :ps_county_name USING pt_trans_object; IF pt_trans_object.sqlcode = 100 THEN // Record not found MessageBox( "Level Selection", "County record not found for " + & ps_county_name, StopSign!, OK! ) ROLLBACK USING pt_trans_object; Return( 0 ) ELSEIF pt_trans_object.sqlcode <> 0 THEN // SQL Error MessageBox( "Level Selection", "CDAT* ould not find county~n~r" + & "SQL Error: " + String( pt_trans_object.sqlcode ) + & " " + pt_trans_object.SQLErrText, StopSign!, OK! ) ROLLBACK USING pt_trans_object; Return( -1 ) END IF // Normal exit COMMIT USING pt_trans_object; Return( ll_rid ) // end wf_get_county_rid() end function public function long wf_get_source_rid (string ps_source_name, long pl_parent_rid, transaction pt_trans_object);// LONG wf_get_source_rid() // // Get rid foDAT* r ps_source_name // // Returns: rid Success // 0 Record not found // -1 SQL Error SetPointer( HourGlass! ) // Declare local variables INTEGER li_ret_status LONG ll_rid STRING ls_id_part STRING ls_name_part // Make sure ps_source_name is in ddlb // (Handles case where list is pulled down, but no selection is made) li_ret_status = ddlb_source.FindItem( ps_source_name, 1 ) IF li_ret_status = -1 THEN // Item not found ddlb_source.Clear() RetDAT* urn( 0 ) END IF // Break ps_source_name into id and name (parts have a | between them) ls_id_part = Left( ps_source_name, Pos( ps_source_name, " | ", 1 ) - 1 ) ls_name_part = Mid( ps_source_name, Pos( ps_source_name, " | ", 1 ) + 3 ) SELECT rid INTO :ll_rid FROM rap_sources WHERE id = :ls_id_part AND name = :ls_name_part AND geographic_county_rid = :pl_parent_rid USING pt_trans_object; IF pt_trans_object.sqlcode = 100 THEN // Record not found MessageBox( "LeveDAT* l Selection", "Source record not found for " + & ps_source_name, StopSign!, OK! ) ROLLBACK USING pt_trans_object; Return( 0 ) ELSEIF pt_trans_object.sqlcode <> 0 THEN // SQL Error MessageBox( "Level Selection", "Could not find source~n~r" + & "SQL Error: " + String( pt_trans_object.sqlcode ) + & " " + pt_trans_object.SQLErrText, StopSign!, OK! ) ROLLBACK USING pt_trans_object; Return( -1 ) END IF // Normal exit COMMIT USDAT* ING pt_trans_object; Return( ll_rid ) // end wf_get_source_rid() end function public function long wf_get_process_rid (string ps_process_name, long pl_parent_rid, transaction pt_trans_object);// LONG wf_get_process_rid() // // Get rid for ps_process_name // // Returns: rid Success // 0 Record not found // -1 SQL Error SetPointer( HourGlass! ) // Declare local variables INTEGER li_ret_status LONG ll_rid STRING ls_id_part STRING ls_name_part DAT* // Make sure ps_process_name is in ddlb // (Handles case where list is pulled down, but no selection is made) li_ret_status = ddlb_process.FindItem( ps_process_name, 1 ) IF li_ret_status = -1 THEN // Item not found ddlb_process.Clear() Return( 0 ) END IF // Break ps_process_name into id and name (parts have a | between them) ls_id_part = Left( ps_process_name, Pos( ps_process_name, " | ", 1 ) - 1 ) ls_name_part = Mid( ps_process_name, Pos( ps_process_name, " | ", 1 ) + 3 ) //DAT*  need to handle the case of name being null // MAS 23SEP94 10:28 pm IF ls_name_part = "" THEN SELECT rid INTO :ll_rid FROM rap_processes WHERE id = :ls_id_part AND device_rid = :pl_parent_rid USING pt_trans_object; ELSE SELECT rid INTO :ll_rid FROM rap_processes WHERE id = :ls_id_part AND name = :ls_name_part AND device_rid = :pl_parent_rid USING pt_trans_object; END IF IF pt_trans_object.sqlcode = 100 THEN //DAT*  Record not found MessageBox( "Level Selection", "Process record not found for " + & ps_process_name, StopSign!, OK! ) ROLLBACK USING pt_trans_object; Return( 0 ) ELSEIF pt_trans_object.sqlcode <> 0 THEN // SQL Error MessageBox( "Level Selection", "Could not find process~n~r" + & "SQL Error: " + String( pt_trans_object.sqlcode ) + & " " + pt_trans_object.SQLErrText, StopSign!, OK! ) ROLLBACK USING pt_trans_object; Return(DAT*  -1 ) END IF // Normal exit COMMIT USING pt_trans_object; Return( ll_rid ) // end wf_get_process_rid() end function public function integer wf_preset_ddlbs ();// INT wf_preset_ddlbs // // Pre-set the ddlbs to the current selection // or start from scratch. // // Returns: 0 Success // -1 Error SetPointer( HourGlass! ) IF istr_level.nation > 0 THEN // A nation is already selected // Load ddlb_nation istr_level.retval = wf_load_nations( istr_level.DAT* nation, sqlca ) IF istr_level.retval <> 1 THEN // Error during wf_load_nations() Return -1 END IF ELSE // No nation (and therefore any other level) is already selected. // Start from scratch--load ddlb_nation istr_level.retval = wf_load_nations( 0, sqlca ) IF istr_level.retval <> 1 THEN // Error during wf_load_nations() Return -1 END IF // Disable the other ddlbs ddlb_state.enabled = FALSE ddlb_county.enabled = FALSE DAT* ddlb_source.enabled = FALSE ddlb_device.enabled = FALSE ddlb_process.enabled = FALSE Return 0 END IF IF istr_level.state > 0 THEN // A state is already selected // Load ddlb_state istr_level.retval = wf_load_states( istr_level.state, istr_level.nation, sqlca ) IF istr_level.retval <> 1 THEN // Error during wf_load_states() Return -1 END IF ELSE // No state is already selected. // Load ddlb_state istr_level.retval = wf_load_states( DAT* 0, istr_level.nation, sqlca ) IF istr_level.retval <> 1 THEN // Error during wf_load_states() ddlb_state.enabled = FALSE END IF // Disable the other ddlbs ddlb_county.enabled = FALSE ddlb_source.enabled = FALSE ddlb_device.enabled = FALSE ddlb_process.enabled = FALSE Return 0 END IF IF istr_level.county > 0 THEN // A county is already selected // Load ddlb_county istr_level.retval = wf_load_counties( istr_level.county, istr_level.DAT* state, sqlca ) IF istr_level.retval <> 1 THEN // Error during wf_load_counties() Return -1 END IF ELSE // No county is already selected. // Load ddlb_county istr_level.retval = wf_load_counties( 0, istr_level.state, sqlca ) IF istr_level.retval <> 1 THEN // Error during wf_load_counties() ddlb_county.enabled = FALSE END IF // Disable the other ddlbs ddlb_source.enabled = FALSE ddlb_device.enabled = FALSE ddlb_process.enDAT* abled = FALSE Return 0 END IF IF istr_level.source > 0 THEN // A source is already selected // Load ddlb_source istr_level.retval = wf_load_sources( istr_level.source, istr_level.county, sqlca ) IF istr_level.retval <> 1 THEN // Error during wf_load_sources() Return -1 END IF ELSE // No source is already selected. // Load ddlb_source istr_level.retval = wf_load_sources( 0, istr_level.county, sqlca ) IF istr_level.retval <> 1 THEN DAT* // Error during wf_load_sources() ddlb_source.enabled = FALSE END IF // Disable the other ddlbs ddlb_device.enabled = FALSE ddlb_process.enabled = FALSE Return 0 END IF IF istr_level.device > 0 THEN // A device is already selected // Load ddlb_device istr_level.retval = wf_load_devices( istr_level.device, istr_level.source, sqlca ) IF istr_level.retval <> 1 THEN // Error during wf_load_devices() Return -1 END IF ELSE // No dDAT* evice is already selected. // Load ddlb_device istr_level.retval = wf_load_devices( 0, istr_level.source, sqlca ) IF istr_level.retval <> 1 THEN // Error during wf_load_devices() ddlb_device.enabled = FALSE END IF // Disable the other ddlbs ddlb_process.enabled = FALSE Return 0 END IF IF istr_level.process > 0 THEN // A process is already selected // Load ddlb_process istr_level.retval = wf_load_processes( istr_level.process, istr_level.DAT* device, sqlca ) IF istr_level.retval <> 1 THEN // Error during wf_load_processes() Return -1 END IF ELSE // No process is already selected. // Load ddlb_process istr_level.retval = wf_load_processes( 0, istr_level.device, sqlca ) IF istr_level.retval <> 1 THEN // Error during wf_load_processes() ddlb_process.enabled = FALSE END IF END IF // Normal return Return 0 // end wf_preset_ddlbs() end function public function integer DAT* wf_put_output ();// INT wf_put_output() // // Put the output for the window back into w_emiss variables // // Returns: 1 Success // 0 Error // Set values from w_emiss //w_emiss.il_nation_rid = il_nation_rid //w_emiss.il_state_rid = il_state_rid //w_emiss.il_county_rid = il_county_rid //w_emiss.il_source_rid = il_source_rid //w_emiss.il_device_rid = il_device_rid //w_emiss.il_process_rid = il_process_rid // Normal return // 28Mar95 - Currently only these levels aDAT* re supported IF istr_level.process > 0 THEN istr_level.msgtext = "Process" istr_level.retval = istr_level.process ELSEIF istr_level.device > 0 THEN istr_level.msgtext = "Device" istr_level.retval = istr_level.device ELSEIF istr_level.source > 0 THEN istr_level.msgtext = "Source" istr_level.retval = istr_level.source ELSEIF istr_level.county > 0 THEN istr_level.msgtext = "County" istr_level.retval = istr_level.county ELSEIF istr_level.state > 0 THEN istr_levDAT* el.msgtext = "State" istr_level.retval = istr_level.state END IF Return 0 // end wf_put_output() end function public function long wf_get_device_rid (string ps_device_code, long pl_parent_rid, transaction pt_trans_object);// LONG wf_get_device_rid() // // Get rid for ps_device_name // // Returns: rid Success // 0 Record not found // -1 SQL Error // // MAS 14JUN95 changed to use code instead of name SetPointer( HourGlass! ) // Declare local variaDAT* bles INTEGER li_ret_status LONG ll_rid STRING ls_id_part STRING ls_code_part // Make sure ps_device_name is in ddlb // (Handles case where list is pulled down, but no selection is made) li_ret_status = ddlb_device.FindItem( ps_device_code, 1 ) IF li_ret_status = -1 THEN // Item not found ddlb_device.Clear() Return( 0 ) END IF // Break ps_device_name into id and name (parts have a | between them) ls_id_part = Left( ps_device_code, Pos( ps_device_code, " | ", 1 ) - 1 DAT* ) ls_code_part = Mid( ps_device_code, Pos( ps_device_code, " | ", 1 ) + 3 ) SELECT rid INTO :ll_rid FROM rap_devices WHERE id = :ls_id_part AND code = :ls_code_part AND source_rid = :pl_parent_rid USING pt_trans_object; IF pt_trans_object.sqlcode = 100 THEN // Record not found MessageBox( "Level Selection", "Device record not found for " + & ps_device_code, StopSign!, OK! ) ROLLBACK USING pt_trans_object; Return( 0 ) ELSEIF pt_trans_object.DAT* sqlcode <> 0 THEN // SQL Error MessageBox( "Level Selection", "Could not find device~n~r" + & "SQL Error: " + String( pt_trans_object.sqlcode ) + & " " + pt_trans_object.SQLErrText, StopSign!, OK! ) ROLLBACK USING pt_trans_object; Return( -1 ) END IF // Normal exit COMMIT USING pt_trans_object; Return( ll_rid ) // end wf_get_device_rid() end function on open;// Center this window this.x = pixelsToUnits((ge_env.screenwidth / 2) - (unitDAT* sToPixels(this.width,XUnitsToPixels!) /2), XPixelsToUnits!) this.y = pixelsToUnits((ge_env.screenheight / 2) - (unitsToPixels(this.height,YUnitsToPixels!) /2), YPixelsToUnits!) //Get incoming structure istr_level = message.PowerObjectParm SetPointer( HourGlass! ) //Assign header text from instance structure value st_heading.text = istr_level.msgtext //// FOR TEST ONLY!! Connect to database //sqlca = CREATE TRANSACTION //sqlca.DBMS = "ODBC" //sqlca.DBParm = "ConnectstringDAT* ='DSN=Rapids Database'" //CONNECT USING sqlca; // //IF sqlca.sqlcode <> 0 THEN // // SQL Error connecting to database // MessageBox( "Emission Estimator", "Error " + String( sqlca.sqlcode ) + & // sqlca.SQLErrText, StopSign!, OK! ) // istr_level.retval = -1 // CloseWithReturn( This, istr_level ) //END IF // Either pre-set the selection to the current information, // or start from scratch. IF wf_preset_ddlbs() < 0 THEN // Error during wf_preset_ddlbs() ClosDAT* eWithReturn( This, istr_level ) END IF // end end on on w_select_level.create this.ddlb_process=create ddlb_process this.ddlb_device=create ddlb_device this.ddlb_source=create ddlb_source this.ddlb_county=create ddlb_county this.ddlb_state=create ddlb_state this.ddlb_nation=create ddlb_nation this.st_process=create st_process this.st_device=create st_device this.st_source=create st_source this.st_county=create st_county this.st_state=create st_state this.st_heading=create st_heDAT* ading this.cb_cancel=create cb_cancel this.cb_ok=create cb_ok this.st_nation=create st_nation this.Control[]={ this.ddlb_process,& this.ddlb_device,& this.ddlb_source,& this.ddlb_county,& this.ddlb_state,& this.ddlb_nation,& this.st_process,& this.st_device,& this.st_source,& this.st_county,& this.st_state,& this.st_heading,& this.cb_cancel,& this.cb_ok,& this.st_nation} end on on w_select_level.destroy destroy(this.ddlb_process) destroy(this.ddlb_device) destroy(this.ddlbDAT* _source) destroy(this.ddlb_county) destroy(this.ddlb_state) destroy(this.ddlb_nation) destroy(this.st_process) destroy(this.st_device) destroy(this.st_source) destroy(this.st_county) destroy(this.st_state) destroy(this.st_heading) destroy(this.cb_cancel) destroy(this.cb_ok) destroy(this.st_nation) end on on close;//// FOR TEST ONLY!!! Shut down transaction //DISCONNECT USING sqlca; // end end on type ddlb_process from dropdownlistbox within w_select_level int X=375 int Y=DAT* 841 int Width=1235 int Height=509 int TabOrder=70 boolean Visible=false boolean Enabled=false BorderStyle BorderStyle=StyleLowered! boolean VScrollBar=true long TextColor=33554432 int TextSize=-8 int Weight=700 string FaceName="Arial" FontFamily FontFamily=Swiss! FontPitch FontPitch=Variable! end type on selectionchanged;// User has made a selection in the process ddlb // Set the process rid il_process_rid = wf_get_process_rid( ddlb_process.text, istr_level.device, sqlca ) IFDAT*  il_process_rid < 1 THEN // Error getting process rid ddlb_process.Clear() istr_level.process = -1 END IF // end end on type ddlb_device from dropdownlistbox within w_select_level int X=375 int Y=697 int Width=1235 int Height=549 int TabOrder=80 BorderStyle BorderStyle=StyleLowered! boolean VScrollBar=true long TextColor=33554432 int TextSize=-8 int Weight=700 string FaceName="Arial" FontFamily FontFamily=Swiss! FontPitch FontPitch=Variable! end type on selectiDAT* onchanged;// User has made a selection in the device ddlb // Set the device rid istr_level.device = wf_get_device_rid( ddlb_device.text, istr_level.source, sqlca ) IF istr_level.device < 1 THEN // Error getting device rid ddlb_device.Clear() istr_level.device = -1 Return END IF // Enable the process ddlb ddlb_process.enabled = TRUE istr_level.process = -1 // Load the process ddlb IF wf_load_processes( 0, istr_level.device, sqlca ) <> 1 THEN // Problem with procesDAT* ses ddlb_process.enabled = FALSE ddlb_process.Reset() END IF // end end on type ddlb_source from dropdownlistbox within w_select_level int X=375 int Y=553 int Width=1235 int Height=545 int TabOrder=40 BorderStyle BorderStyle=StyleLowered! boolean VScrollBar=true long TextColor=33554432 int TextSize=-8 int Weight=700 string FaceName="Arial" FontFamily FontFamily=Swiss! FontPitch FontPitch=Variable! end type on selectionchanged;// User has made a selection in the souDAT* rce ddlb // Set the source rid istr_level.source = wf_get_source_rid( ddlb_source.text, istr_level.county, sqlca ) IF istr_level.source < 1 THEN // Error getting source rid ddlb_source.Clear() istr_level.source = -1 Return END IF // Enable the device ddlb ddlb_device.enabled = TRUE istr_level.device = -1 // Disable and reset the other ddlbs ddlb_process.enabled = FALSE ddlb_process.Reset() istr_level.process = -1 // Load the device ddlb IF wf_load_devices( 0, iDAT* str_level.source, sqlca ) <> 1 THEN // Problem with devices ddlb_device.enabled = FALSE ddlb_device.Reset() END IF // end end on type ddlb_county from dropdownlistbox within w_select_level int X=375 int Y=409 int Width=1235 int Height=533 int TabOrder=30 BorderStyle BorderStyle=StyleLowered! boolean VScrollBar=true long TextColor=33554432 int TextSize=-8 int Weight=700 string FaceName="Arial" FontFamily FontFamily=Swiss! FontPitch FontPitch=Variable! end type oDAT* n selectionchanged;// User has made a selection in the county ddlb // Set the county rid istr_level.county = wf_get_county_rid( ddlb_county.text, istr_level.state, sqlca ) IF istr_level.county < 1 THEN // Error getting county rid ddlb_county.Clear() istr_level.county = -1 Return END IF // Enable the source ddlb ddlb_source.enabled = TRUE istr_level.source = -1 // Disable and reset the other ddlbs ddlb_device.enabled = FALSE ddlb_device.Reset() istr_level.device = -DAT* 1 ddlb_process.enabled = FALSE ddlb_process.Reset() istr_level.process = -1 // Load the source ddlb IF wf_load_sources( 0, istr_level.county, sqlca ) <> 1 THEN // Problem with sources ddlb_source.enabled = FALSE ddlb_source.Reset() END IF // end end on type ddlb_state from dropdownlistbox within w_select_level int X=375 int Y=265 int Width=1235 int Height=537 int TabOrder=20 BorderStyle BorderStyle=StyleLowered! boolean VScrollBar=true long TextColor=33554432 inDAT* t TextSize=-8 int Weight=700 string FaceName="Arial" FontFamily FontFamily=Swiss! FontPitch FontPitch=Variable! end type on selectionchanged;// User has made a selection in the state ddlb // Set the state rid istr_level.state = wf_get_state_rid( ddlb_state.text, istr_level.nation, sqlca ) IF istr_level.state < 1 THEN // Error getting state rid ddlb_state.Clear() istr_level.state = -1 Return END IF // Enable the county ddlb ddlb_county.enabled = TRUE istr_level.coDAT*" unty = -1 // Disable and reset the other ddlbs ddlb_source.enabled = FALSE ddlb_source.Reset() istr_level.source = -1 ddlb_device.enabled = FALSE ddlb_device.Reset() istr_level.device = -1 ddlb_process.enabled = FALSE ddlb_process.Reset() istr_level.process = -1 // Load the county ddlb IF wf_load_counties( 0, istr_level.state, sqlca ) <> 1 THEN // Problem with counties ddlb_county.enabled = FALSE ddlb_county.Reset() END IF // end end on type ddlb_nation from droDAT*$ pdownlistbox within w_select_level int X=375 int Y=121 int Width=1235 int Height=541 int TabOrder=10 BorderStyle BorderStyle=StyleLowered! boolean VScrollBar=true long TextColor=33554432 int TextSize=-8 int Weight=700 string FaceName="Arial" FontFamily FontFamily=Swiss! FontPitch FontPitch=Variable! end type on selectionchanged;// User has made a selection in the nation ddlb // Set the nation rid istr_level.nation = wf_get_nation_rid( ddlb_nation.text, sqlca ) IF istr_level.nDAT*& ation < 1 THEN // Error getting nation rid ddlb_nation.Clear() istr_level.nation = -1 Return END IF // Enable the state ddlb ddlb_state.enabled = TRUE il_state_rid = -1 // Disable and clear the other ddlbs ddlb_county.enabled = FALSE ddlb_county.Reset() istr_level.county = -1 ddlb_source.enabled = FALSE ddlb_source.Reset() istr_level.source = -1 ddlb_device.enabled = FALSE ddlb_device.Reset() istr_level.device = -1 ddlb_process.enabled = FALSE ddlb_process.ResetDAT*( () istr_level.process = -1 // Load the state ddlb IF wf_load_states( 0, istr_level.nation, sqlca ) <> 1 THEN // Problem with states ddlb_state.enabled = FALSE ddlb_state.Reset() END IF // end end on type st_process from statictext within w_select_level int X=55 int Y=841 int Width=284 int Height=73 boolean Visible=false boolean Enabled=false string Text="Process:" Alignment Alignment=Right! boolean FocusRectangle=false long TextColor=8388608 long BackColor=12632DAT** 256 long BorderColor=12632256 int TextSize=-10 int Weight=700 string FaceName="MS Sans Serif" FontFamily FontFamily=Swiss! FontPitch FontPitch=Variable! end type type st_device from statictext within w_select_level int X=92 int Y=705 int Width=247 int Height=73 boolean Enabled=false string Text="Device:" Alignment Alignment=Right! boolean FocusRectangle=false long TextColor=8388608 long BackColor=12632256 long BorderColor=12632256 int TextSize=-10 int Weight=700 string FaceDAT*, Name="MS Sans Serif" FontFamily FontFamily=Swiss! FontPitch FontPitch=Variable! end type type st_source from statictext within w_select_level int X=92 int Y=561 int Width=247 int Height=73 boolean Enabled=false string Text="Source:" Alignment Alignment=Right! boolean FocusRectangle=false long TextColor=8388608 long BackColor=12632256 long BorderColor=12632256 int TextSize=-10 int Weight=700 string FaceName="MS Sans Serif" FontFamily FontFamily=Swiss! FontPitch FontPitch=VariaDAT*. ble! end type type st_county from statictext within w_select_level int X=92 int Y=417 int Width=247 int Height=73 boolean Enabled=false string Text="County:" Alignment Alignment=Right! boolean FocusRectangle=false long TextColor=8388608 long BackColor=12632256 long BorderColor=12632256 int TextSize=-10 int Weight=700 string FaceName="MS Sans Serif" FontFamily FontFamily=Swiss! FontPitch FontPitch=Variable! end type type st_state from statictext within w_select_level int X=DAT*0 92 int Y=273 int Width=247 int Height=73 boolean Enabled=false string Text="State:" Alignment Alignment=Right! boolean FocusRectangle=false long TextColor=8388608 long BackColor=12632256 long BorderColor=12632256 int TextSize=-10 int Weight=700 string FaceName="MS Sans Serif" FontFamily FontFamily=Swiss! FontPitch FontPitch=Variable! end type type st_heading from statictext within w_select_level int X=46 int Y=17 int Width=1582 int Height=73 boolean Enabled=false AlignmentDAT*2  Alignment=Center! boolean FocusRectangle=false long TextColor=8388608 long BackColor=12632256 int TextSize=-10 int Weight=700 string FaceName="Arial" FontFamily FontFamily=Swiss! FontPitch FontPitch=Variable! end type type cb_cancel from commandbutton within w_select_level int X=878 int Y=1161 int Width=247 int Height=109 int TabOrder=60 string Text="Cancel" boolean Cancel=true int TextSize=-10 int Weight=700 string FaceName="Arial" FontFamily FontFamily=Swiss! FontPitch FDAT*4 ontPitch=Variable! end type on clicked;// User wants to cancel out of window istr_level.retval = 0 CloseWithReturn( Parent, istr_level ) end on type cb_ok from commandbutton within w_select_level int X=494 int Y=1161 int Width=247 int Height=109 int TabOrder=50 string Text="OK" boolean Default=true int TextSize=-10 int Weight=700 string FaceName="Arial" FontFamily FontFamily=Swiss! FontPitch FontPitch=Variable! end type on clicked;// User is finished //// FOR TEST!!!DAT*6  //// Display the user's choice //MessageBox( "Level Selection", & // "Nation: " + String( il_nation_rid ) + "~n" + & // "State: " + String( il_state_rid ) + "~n" + & // "County: " + String( il_county_rid ) + "~n" + & // "Source: " + String( il_source_rid ) + "~n" + & // "Device: " + String( il_device_rid ) + "~n" + & // "Process: " + String( il_process_rid ), & // Information!, OK! ) //// End test lines // SDAT*8 et the output information wf_put_output() CloseWithReturn( Parent, istr_level ) end on type st_nation from statictext within w_select_level int X=92 int Y=129 int Width=247 int Height=73 boolean Enabled=false string Text="Nation:" Alignment Alignment=Right! boolean FocusRectangle=false long TextColor=8388608 long BackColor=12632256 long BorderColor=12632256 int TextSize=-10 int Weight=700 string FaceName="MS Sans Serif" FontFamily FontFamily=Swiss! FontPitch FontPitch=VariaDAT*ble! end type DAT*<  4 < D t |                 $ 4 < p x                  4 < t |                D L T DAT*> \ d l t |              @ H P X ` h p x          Y801Px8 z%Fz%6" 4 ^ t xdF ps_stringDAT*@ pl_widthll_strlenll_spacecountll_ils_workstringx %38  (@(8Y801n8 z%dz%6.@ R | dM pl_numpl_widthll_strlenll_spacecountll_ils_stringDAT*B ls_workstring"05 ?  .0$80)x8$80)8$80)8$80)8$80)8$80)8$80) 8($80)088$8@DAT*D 0)8$80)8$80)8,,80)D8L$8T$1)8z')8$80)880)8$80)$88,0)48<$8D0)X88`0)h8p$8x0)880)8$80)8DAT*F 80)8$80)8$8P$1)X8z')`8h$8p0)|880)8$80)880)8$80)8$8@$1)H8z')P8X$8`0)p88x0)8$80)880)DAT*H 8$80)880)8$80)88$0),84$80)<8D$8L$1)8z')8$80)880)8$80)8$80) 8$80)8$$80),84$80)<8DAT*J &Lr  0 V|.Jp6R x!"#$(%D'j()*+,6-\.x/023(4N5j789:d li_iw_mdi_main( ,@MD uo_log-===============================================================================f_write_sum_m3h-3h- E R R O R C O U N T by M E S S A G EDAT*L  T Y P E(3h-3h-3h-3h-3h-3h- Error Total3h- Level Count Records3h-3hCreating Error Count by Message Type report...setmicrohelpZ7-Facility il_sourcecountAf_rightjustifylongDAT*N 3h- Sources3hSRC0f_logmessages- Contacts3hSRC1- Legal Entities3hSRC2- Location Coordinates3hSRC3- Source Activities3hSRC5-3h-Device il_devicecountAB3h- Devicesd3hDEV0- Device Activities3hDEVDAT*P 5-3h-Process il_processcount%-C3h- Processes3hPRO0- Process Specific Schedules3hPRO1- Emission Factors3hPRO2- Process Activities3hPRO5roc-3h-Stream il_streamcountD3DAT*R h- Stream Activities3hSTR5-3h-3h-3h-3h-3h x              ( 0 8      D L        $ 4 < X h p         DAT*T P X ` h |        @ H P X p          , 4 < D              $ , 4 < 1 8 01 801 800$88z%8GDAT*V z&)T98\$)l8t$8|)8$)8$)810T$8)81+)8$8 J$8},$84J@8P$8Xz%z&<%z&z&1)x8z()8&$80)8DAT*X  @ ` >PTdt ps_msgtypeli_severityll_error_valuell_rowcountll_rowls_errormsgls_gutterspacels_severity@ h .:A Mh\- WarningAlert Notice dw_concheck$."left(id,4) = ''setfilterII$."filterd$."DAT*Z id Asetsort@X$."sortc$."rowcount@4$."titlegetitemstringf_leftjustify$."severitygetitemnumber $."error_count uo_logH- f_rightjustifylongbf_write_sum_m3H- 30 T \ l t          $ , @ P x     DAT*\ xY1Lt8z%B11Y@88 z&60 Z p t d8 ps_stringpl_widthll_strlenll_spacecountll_id %3 ... q$80)|8$80)DAT*^ 8$80)8$80)8$80)8$80) 8$80)8$$80),84$8<0)8$80)8$80)8,,80)48,*,* ,* ,*<$1d2808DAT*` F,*x t116D$88L01)h8z'z&8p01)x8z(z&61)8z(z&8z&)8F,* ,* , ,*$1d,*,* ,*  ,*$1808,*  11DAT*b $8801)8z'z&8p01)8z(z&61)8z(z&8z&)8,* X ,* ,*$1d*,*0,* ,* ,*  ,* ,*$1808,*11$8801)8zDAT*d 'z&8p01) 8z(z&61)8z(z&8z&)8,*  ,* @l,*$$1d,*,* ,* ,*  ,* (,*,$1z p808\ ,*11t4$88<01)L8z'z&8p01)T8DAT*f z(z&61)\8z(z&8z&)d8\ ,*1L l$88<01)t8z'z&8p01)|8z(z&61)8z(z&8z&)8\ ,* H ,* :,*$1d ,* ,* ,* ,*  ,* ,*$1H  1DAT*h 1& ,*XT 11 $8801)8z'z&801)8z(z&61)8z(z&8z&)8& ,*  ,*  ,*$1dl ,*r ,*$80)8$80)8$80)8 & L r  DAT*j 0V| "$2&F(J*\,t-1276<F=`?d@~AByz{} 0 &*0@Rl :TpptxH L \ v z        & * < T d  " '& (D )H *b +h ,l /r 0 1 d li_ili_severityll_rowcountll_ridls_codels_gutterspaceDAT*l w_mdi_mainsqlcamat_curunit_curscc_cursic_curreg_cur %, 4C,@MN*@LTt>] >g >p>yP> ( uo_log -===============================================================================f_write_sum_b6l -6l - DAT*n  B A D R E F E R E N C E V A L U E S6l -6l -6l -6l -6l -6l - Reference Table Name Field Name Reference Code Value In Use6l - ------------------------- --------------- -------------------- ------6l -6lCreating Bad Reference Values report...setmicrohelp_suZ$ -Rap_Materialsf_leftjustifyZCodeZZ Y6lDAT*p  -Rap_UnitsZZZ6l -Rap_Scc_Ams_CodesZZZ6l -Rap_Sic_Codes)ZZZ6l -ZZZ6l -Rap_RegulationsZCitationZZ6l -6l -6l -6l |              $ DAT*r , 4      4 < D h x                  $ , 4 L T \ d l t |                  ,-$5 Ik0$: @?DAT*t @?858@k]: @@8}D,-L$5XIkh$: @?@?85p@k]: @@8}9}9}9}9}9}9}$ 9}4$<9}D$T9}\$d9}t$|$$}$$DAT*v $}$1%80$1%80$1%80($1%0880P$1%X8`0|$1%80$1%80$1%80$1%80$1%8DAT*x 0,$1%48<0X$1%`8h0,/1,/|$x,@ T h  @r:l4 f"d ge_env::message(-D /@N x_i rowc@width_c(@yw@ mat@height`@ib_wrote_headerx;DAT*z ib_cancelio<ib_errorsourcejEib_errordevicenFib_errorprocessGib_errorstreamHcb_rules,visiblecb_viewdw(+,enabledL(+Lcb_exitl/$cb_rune0%0%(+facility=Erec_typeactSources=EContactscut=ELegal Entitiest=ELocation Coordinatesln_=ESource Activitiesdeviceamtr>EDAT*| Devicesr>EDevice Activitiesprocess?EProcesses?EProcess Specific Schedules?EEmission Factors?EProcess ActivitiesstreamO@EStream Activities   0 8D L Xh p         4 < D T \ d t |      DAT*~        ( 0 P X |          , 4 X ` |  *0*8L*Td*l******* 4*<LT$DAT* \$d$l$t$|$$$$$$$ |,BXn d ( cb_cancel*cb_viewdw$+$cb_rules@,@uo_log\-\dw_concheckt."t"cb_exit/$$cb_runr0%%uo_time1''uo_s_levelz2//st_1355DAT* dw_ref_code 49 9uo_c_level(5;(;controlDc@*$+@,\-t."/$0%1'2/35 49(5; 0 8L Td l        4 <L T \ d l t |        $($DAT* <$L$`$p$$$$$$$*8FT b p ~ d ` cb_cancel*cb_viewdw_v+cb_rules0,uo_logD-dw_concheckT."cb_exith/$cb_runx0%uo_time1'uo_s_level2/st_135dw_ref_code49uo_c_level5; ( < L ` p DAT*       &wxyz{|}~     &2 8 f_open_filef_writelogheaderf_run_sourcef_run_devicef_run_geof_run_processf_run_streamf_get_sic_namef_get_units_namef_get_materials_namef_get_metrics_namef_rpt_rcd_typef_rightjustifystringf_rightjustifylongf_rpt_msg_typef_logmessagesf_leftjustifyf_rpt_badrefvalues+open+create+destroyDAT* %2?I+Wds     !'/2  xywidthheighttitlebartitlebackcolorcontrolmenuminbDAT* oxmaxboxresizablecb_cancelcb_viewdwcb_rulesuo_logdw_concheckcb_exitcb_runuo_timeuo_s_levelst_1dw_ref_codeuo_c_leveliu_cc_geoiu_cc_sourceiu_cc_deviceiu_cc_processiu_cc_streamib_wrote_headerib_cancelfacility@device@process@stream@il_sourcecountil_devicecountil_processcountil_streamcountib_errorsourceib_errordeviceib_errorprocessib_errorstream(<PdHa mDAT*  "(2>ELV ` j s z " $ % ' / 5d@ 9 ;FGH!IDAT* J(/E<4/EPH/Ed\/Ep|] oam  (1  DAT* @@@     " $ % ' / 5 9 ;FGHIJP3Ex3E3E3Ew x?(xyDAT* Z(,zg{(8|(D}\P~\`\l \x   7DAT*  Jdr&8080:)@:@1@8}1<lH9},DAT* /1,/P$DX ld li_button::message(/@NX Cancel RequestedCancel Consistency Check Processing?ib_cancel><H P ""2  +clickedtype f2 e xywidthheighttabordervisibleenabledtexttextsizeweightfacenamefontfamilyfontpitch  JDAT* ]d"*27@GP[] J]d @ "f$$,$4$#}DAT* ,/L1Z,/<$2d ::message/@ND( dw_concheck."visible." $ , 4 < ""2  +clickedtype f2 U xywidthheighttabordertexttextsizeweightfacenamefontfamilyfontpitch  J]ZDAT* "'07@K] oJ]Z @ @"R2@8,/81F,/$d" w_concheck_view::messageDAT* (2@P/@N  ""2  +clickedtypefr2 U xywidthheighttabordertexttextsizeweightfacenamefontfamilyfontpitchA  J]P"'07@K] oAJDAT* ]P @ @"8d  destroyL"2  +destroy2  xytaborder<A ! 2] oA!!2DAT*  @@1    @      ,*)8),8,*4$1j8<08L0@8,/1,/DAT* $(B jd sqlca::message(*@L/@N settransobject^retrieve1 Retrieve FailedCannot retrieve data from the Concheck database. , 4  %"L%2  +constructortypeck2 N xywidthheighttabordervisibledataobjecttitlebartitleresizable IDAT*  in"@*85 >CD] Iin @ C8@ @ #%LJ@8,/01>,/$DAT* d ::message/@N  "$"2  +clickedtypero2 U xywidthheighttabordertexttextsizeweightfacenamefontfamilyfontpitch  J]F"I'07@K] DAT* oJ]F @ @I"E9}$9}4$H$1<P$`$:W@)x8$$1<9},/1,/$9}9}DAT* $$$}$9}$9}$ 9}4$<9}D$L9}`$h9}x$9}$9}1111$1%$1,$1%41<$1%DDAT* 1L$1%T1\$1%d1t$1%|1$1%1$1%1$1%1$1%1$1%1$1%1)8$8$4$H$(@(8DAT* z')\98d$)t8|$8)8$)8$$$68$$$)88$(($0$@$)X88`R)p88x080@8$$)8$#$)8)8)4DAT* 8)P8X9}`$)t8|$9}$9}$9}$9}$9}$9}$9}9}9}$9},,8 0) 8,/1,/($ ( Nz :XvDAT*  #*$@%V&l()*+ ,:-h./01 2N3|6:;<*=L@hACEGI$L<NNORQzTVY\_`aeh8iVjtklmno pq2tPnd% ::messagecase64w_mdi_main</@N ,@M0 ib_cancel<enableduo_log,-ii_log_file<%,-cb_newX!triggerevent h,-<%DAT* visiblecb_cancelin*xoncb_run0%**cb_exit/$uo_c_level(5; ,- uo_s_level?T2/ uo_timep1' dw_ref_code49 il_sourcecounteAil_devicecountvBil_processcountCil_streamcountDfacility=Erec_count`=E=E=E=Edevicegl>El>EprocessDAT* ?E?E?E?Estream@Ef_writelogheaderxdw_concheck."severity <= T2/ii_severity<%setfilterIP."filterl."id asetsortX."sortc(5;st_level_code!textDEV(5;istr_level,"lf_run_device,z SRC(5;,"source`8f_run_sourceaoyHGEOf_run_geo<{dAction RequiredPlease selecDAT* t a level before proceeding(5;cb_levelom 'setfocusle<,-f_open_sum_files5f_rpt_rcd_typed f_rpt_msg_type$f_rpt_badrefvaluesm<<,-f_close_log2h(5; ,- T2/ p1' 49 **/$ReadysetmicrohelpZ $ 4 H P ` x     DAT*              4 < D L ` h x         $ , 4 < D L T \ d t |               4 H \ d t |      DAT*      ( 0 @ X p        4 P X ` t |                    ( "%"2  +clickedtypeom2 U xywidthheighttabordertexttextsizeweightfacenamefontfamilyfontpitchDAT* w  J]<"O'07@K] owJ]< @ @O"&8dDAT*   destroy'L"2  +destroy2  xytaborder<<  (] o<( @@T1    @   ( ) * +DAT*  , -.8d  destroy/L"2  +destroy2  xytaborder<< A ] o<A @@|1    DAT* @   0 1 2 32  2 xywidthheightenabledtextalignmentfocusrectangletextcolorbackcolortextsizeweightfacenamefontfamilyfontpitch,J  A!@&60?DAT* IS\clw] oJA @ 67@L%OP-/10.2  2  xywidthtaborderPDAT*   ] oq @ [) @ # :8d  destroy;2  DAT*  +destroy2  xytaborder<3  ] o3  @@1    @   < = > ? @ A B CDDAT*2  2 3 rec_typerec_countwarningsalertsnoticesd $+ DAT*   H T h x                $ , 4 < D \.:F@@8 $1808 89z%H$(@(8z(8Pz&T$z&:)@:@@81h$)x8 $DAT* 1d8080:)@:@@81P$1P808 89z%$(@(8z(8Pz&$z&:)@:@@81$1$8z%z&)8$8z%z& $1dDAT* $1808 89z%$(@(8z(8Pz&$z&:)@:@@81P $1808 89z%($(@(8z(8Pz&0$z&:)@:@@818$1F808 89z%@$(@(8z(8Pz&H$z&:)@DAT* :@@811  6"P%&*-./0284l5r679<*=0>@BPDjGHLMNOQRT8WXY[^_adeijlo0p6sFdV pl_current_ridpl_parent_ridpt_trans_objectll_ridls_idls_namecur_source% ,5< B JD>PDAT*  Level SelectionCould not load sources SQL Error:   ddlb_source\,reset>pNo sources found for this county \, | additem1\,text    H T h x                ( 0DAT*  8 @ H \.:F@@8 $1808 89z%H$(@(8z(8Pz&T$z&:)@:@@81h$)x8 $1d8080:)@:@@81P$1P808 89z%DAT* $(@(8z(8Pz&$z&:)@:@@81$1$8z%z&)8$8z%z& $1d$1808 89z%$(@(8z(8Pz&$z&:)@:@@81DAT* P $1808 89z%($(@(8z(8Pz&0$z&:)@:@@818$1F808 89z%@$(@(8z(8Pz&H$z&:)@:@@811"#6%P()-0123587l8r9:<?*@0A@EPGjJKODAT* PQRTUW8Z[\^abdghlmor0s6vFdV pl_current_ridpl_parent_ridpt_trans_objectll_ridls_idls_codecur_device% ,5< B Jp >P Level SelectionCould not load devices SQL Error:   ddlb_device\+reset>pNo devices found for this sourceDAT*  \+ | additem1\+text    H T h x                ( 0 8 @ H 2:F@@8 $1808 8;z%H$(@(8DAT* z(8Pz&T$z&:)@:@@81l$)|8 $1d8080:)@:@@81P$1P808 8;z%$(@(8z(8Pz&$z&:)@:@@81$18DAT* 080$8z%z&)8$8z%z&  $1dV$1808 8;z%$(@(8z(8Pz& $z&:)@:@@81P($1808 8;z%0$(@(DAT* 8z(8Pz&8$z&:)@:@@81@$1~808 8;z%H$(@(8z(8Pz&P$z&:)@:@@811  6"P%&*-./0284l5r679<*=0>@BPFjGtIJMPQUVWX4ZN[R]p`abdgh$j>mnrsuxhyn|~dWDAT*  pl_current_ridpl_parent_ridpt_trans_objectll_ridls_idls_namecur_process% ,5< B J >X Level SelectionCould not load processes SQL Error:   ddlb_process\*reset>tNo processes found for this device can\* | additem1\*textDAT*     H T l |               ( 0 8 @ H P :F@@8$61)(8}1<0$)@81 H$1d8P08`z%:)@:@DAT* @81$18P088z%$(@(8z(8z&$z&:)@:@@81 Nb~!#$%'"*+/0d< ps_nation_namept_trans_objectli_ret_statusll_ridP  ,'5@ ddlb_nation/finditemDAT* 9/clear28Level SelectionNation record not found for Could not find nation SQL Error:    ( 0 @ H    :F@@8$61)(8}1<0$)@81 H$1d 8P08`z%:)@:@@81|$DAT* 18P088z%$(@(8z(8z&$z&:)@:@@81 Nb~ "$%&(&+,01dI ps_state_namepl_parent_ridpt_trans_objectli_ret_statusll_ridd $ ,4B@ ddlb_state.finditem9DAT* .clear)28Level SelectionState record not found for Could not find state SQL Error:  d  ( 0 @ H |   :F@@8$61)(8}1<0$)@81 H$1d 8P08`z%:)@:@@81$18DAT* P088z%$(@(8z(8z&$z&:)@:@@81 Nb~ "$%&(&+,01dJ ps_county_namepl_parent_ridpt_trans_objectli_ret_statusll_ridd % ,5C@ ddlb_county-finditem9-clear)2DAT* 8Level SelectionCounty record not found for Could not find county SQL Error:  ng  ( 0 @ H    \:F@@8$61)(8}1<0$)@818H1@81Yo@o88H1@81R@8tDAT* L$1d8T08dz%:)@:@@81F$1F8T088z%$(@(8z(8z&$z&:)@:@@81 Nb~!""#&$*&8(R*+,.142:6F7Ldb ps_source_namepl_parent_ridpt_trans_objectli_ret_statusll_ridls_id_partls_name_partDAT*  % ,5CJ U @ ddlb_source,finditem9,clear)28 | Level SelectionSource record not found for Could not find source SQL Error:    ( 0 @ L    :F@@8$61),8}1<DAT* 4$)D818L1@81Yo@o88L1@81R@88PL0jT$1d8\08lz%:)@:@@81x$1x8\088z%$(@(8z(8z&$z&:)@:@DAT* @81 Nb~ ".$2%6&:'H)L,P-T.X/\2j4678:=f>lBxC~dc ps_process_namepl_parent_ridpt_trans_objectli_ret_statusll_ridls_id_partls_name_part & ,6DK V @ ddlb_process*finditem9 *clearDAT* 2< | Level SelectionProcess record not found for Could not find process SQL Error:    , 4 D T     F:F@@8$$$1,$<D$L$,)d8}l$t$1<1|$1,)8}$$1<$1DAT* $9}$9}$9} $9},$49}1<$L$1T$\d$l$t$|$,)8}$$1<|1$1$$,)8}$$1<$9}$DAT* 9}$ 9}$9}$$,9}14$D$1LL$T\$d$l$t$,)8}$$1<H1D$1$$,)8}$$1<$9}$9}$9DAT* }$9}1 $0$18$@H$P$X$`$,)x8}$$1<1$1$$,)8}$$1<$9}$9}$9}1$$1$DAT*  $($0$8$,)P8}X$`$1<1Fh$p1x$$,)8}$$1<$9}$9}1$$1$$$$$,)8}$$,$1<1DAT*  4$<1D$L$,)T8}\$d$1< l$t9}1 <$B `!~"#&)*F,l.|12489,:J;h<?BCE8GHJLKMQRST4WDZf[]_bcDejijknqrPtvvyz|6FhF l d sqlca@,|DAT*  istr_level9+nation9+retval49+wf_load_nationsxT9+49+4xT9+4ddlb_state.enabledddlb_county-ddlb_source,ddlb_device+ddlb_process*9+state`@D9+49+D9+wf_load_statesw9+49+49+w9+4.DAT* -,+*9+county<9+49+<9+Dwf_load_countiesy|9+49+49+Dy|9+4-,+*9+source(9+49+(9+<wf_load_sourceszh9+49+49+<zh9+4,+DAT* *9+device9+49+9+(wf_load_devices{@9+49+49+({@9+4+*9+process9+49+9+wf_load_processes|9+49+49+|9+4* $ , < D L d l t |    DAT*           , 4 < L T \ d l t |                    $ , 4 D L T \ d l t                DAT*      0 8 @ H P X ` x                      ( 0 8 P X ` h p x                  $ , 4 < D LDAT*  T \ d l t $$$1~,$<8D0L$\d$l$}rt$$1$80$$$}r$$1z$80$$ $}r$$$1,$48<0DAT* D$LT$\$}rd$t$1r|$80$$$}1"FzBv >"rd @ istr_level9+process9+msgtext4Process9+retvalT9+9+device|9+4Device9+T9+|9+souDAT* rce9+4Source9+T9+9+countyo9+4Countyw9+T9+9+statel9+4State9+T9+l $ , < L \ d l t                  $ , 4 D L T \ d t |DAT*       \:F@@8$61)(8}1<0$)@818H1@81Yo@o88H1@81R@8L$1d8T08dz%:)@:@@81F$1F8T0DAT* 88z%$(@(8z(8z&$z&:)@:@@81 Nb~!#$"%&&*(8*R,-.0344:8F9Ldb ps_device_codepl_parent_ridpt_trans_objectli_ret_statusll_ridls_id_partls_code_part % ,5CJ U @DAT*"  ddlb_device+finditem9+clear28 | Level SelectionDevice record not found for Could not find device SQL Error:    ( 0 @ L     ,$5 Ik0$: @?@?858@k]: @@8}D,L$5XIkh$: @?@?85p@k]: @@8DAT*$ },!$:F@@8$$$6)81<$*@8,!1,!$x (\|#d! ge_envmessage::message<D !@.!@. x@ @width(@y@ 1@height`DAT*& @istr_levelx9+ ^@st_heading5%textx9+msgtextwf_preset_ddlbsx9+   0 8D L Xh p         * 4*<P*Xl*t******DAT*( 0*8L*Th*p**$$$$$$$$$$ $$$$$,$ |,BXn 4Jd 4p ddlb_process*ddlb_device(+(ddlb_sourcDAT** eD,Dddlb_county`-`ddlb_state|.|ddlb_nation/st_process0st_device1!!st_source2""st_county3##st_state$4$$$st_headinga@5%@%cb_cancel\6'\'cb_okx7(x(st_nationif8))controlc@*(+D,`-|./01!2"3#$4$@5%\6'x7(8)  DAT*, 4 <P Xl t      0 8L Th p                 $ , $,$@$T$h$|$$$$$DAT*. $$$$,$*8FT b p ~ d 4x ddlb_process*ddlb_device +ddlb_source4,ddlb_countyH-ddlb_state\.ddlb_nationp/st_process0st_device1!st_source*2"st_countyse3#st_statetpu4$st_heading5%cb_cancel6'cb_ok7(st_nation 8) , @ T DAT*0 h |         , 4,!1(,!$d ::message!@.  &wxyz{|}~     F&2  wf_load_stateswf_load_nationswf_load_countieswf_load_sourceswf_load_deviceswf_load_processeswf_get_nation_ridwf_get_staDAT*2 te_ridwf_get_county_ridwf_get_source_ridwf_get_process_ridwf_preset_ddlbswf_put_outputwf_get_device_rid+open+create+destroy+closeh'8HX)j|      DAT*4 2 G xywidthheighttitlebartitlebackcolorcontrolmenuwindowtypeddlb_processddlb_deviceddlb_sourceddlb_countyddlb_stateddlb_nationst_processst_devicest_sourcest_countyst_statest_headingcb_cancelcb_okst_nationistr_levelil_nation_ridil_state_ridil_county_ridil_source_ridil_device_ridil_process_ridla  "k(2DAT*6 >I V b n z    ! " # $ %d@ ' ( )+!*8] oa DAT*8 k  1  @@@        ! " # $ % ' ( )+5,wDAT*: DX@xT,hxye,zu,{,|}D ~DXD| )D <DAT*<  L iD {&F0$@$6T$d$,)8$1$)8$1DAT*> ,!1,!$Tl d +indexsqlca::message<@,!@.` il_process_rid?ddlb_process *text8istr_levelH9+device\wf_get_process_ridl? *clear2H9+process 0 @ T d        050DAT*@ 2  +selectionchanged2 xywidthheighttabordervisibleenabledborderstylevscrollbartextcolortextsizeweightfacenamefontfamilyfontpitch,w I F"*2>IS\clwDAT*B ] wIF E@ @ @@105 $$8$H$6P$`$,)|8$$1$)DAT*D 8$1,!1,!$$9}$11$ $,)(81<0$89}@$)P8,!1,!X$^ (hd +indexsqlca::message<@,!@.` istr_lDAT*F evelr9+devicebddlb_device,+text@9+sourceiXwf_get_device_ridh9+,+clear29+ddlb_process*enabled9+process9+wf_load_processes@|**reset@>H $ 8 H P ` |               (DAT*H  0 8 @ P X 0502  +selectionchangedtypece2 q xywidthheighttaborderborderstylevscrollbartextcolortextsizeweightfacenamefontfamilyfontpitchw  %P".9CLS\gDAT*J ] ow%P E@ @@ @@1050$$8$H$6P$`$,)|8$$1$)DAT*L 8$1,!1,!$$9}$1$9} $)088$H11P$X$,)p81<x$9}$)8,!1$,!$^ (Fbd +indexDAT*N sqlca::message<@,!@. istr_levelr9+sourcebddlb_source,,text@9+countyiXwf_get_source_ridh9+,,clear29+ddlb_device+enabled9+deviceddlb_processd@**reset@>(9+process@9+wf_load_devices{`++>(DAT*P  $ 8 H P ` |                0 8 H P X p x     0502  +selectionchangedtypece2 q xywidthheighttaborderborderstylevscrollbartextcolortextsizeweightfacenamefontfamilyfontpitchw )DAT*R  !(".9CLS\g] ow)!( E@ @@ @@<1DAT*T  05$$8$H$6P$`$,)|8$$1$)8$1,!1,!$$9}$1 $9}$),84$D1\$d9}l$)tDAT*V 8|$11$$,)81<V$9}$)8,!p1~,!$^ (Fb: Vd +indexsqlca::message<@,!@.0 istr_levelr9+countybddlb_county,-text@9+stateiXDAT*X wf_get_county_ridh9+,-clear29+ddlb_source,enabled9+sourceddlb_device++reset>$9+devicee<ddlb_processobjL*L*>$9+process9+wf_load_sourcesz,,>$ $ 8 H P ` |         DAT*Z        , 4 D \ d l t |          0502  +selectionchangedtypety2 q xywidthheighttaborderborderstylevscrollbartextcolortextsizeweightfacenamefontfamilyfontpitchw  "DAT*\ .9CLS\g] ow E@ @@ @@d105DAT*^ $$8$H$6P$`$,)|8$$1$)8$1,!1,!$$9}$1 $9}$),84$D1X$`9}h$)p8x$1$9}DAT*` $)8$11$$,)81<$ 9}$)8,!1,!$$^ (Fb6v#d +indexsqlca::message<@,!@.,` istr_levelr9+statebddlb_state,.textDAT*b @9+nationiXwf_get_state_rid~h9+,.clear29+ddlb_county-enabled9+countyddlb_source,,reset>$9+source<ddlb_deviceL+L+>$9+device@ddlb_process#**>$9+process9+wf_load_counties`y-->$ $ 8DAT*d  H P ` |                , 4 D X ` h p x                $ 0502  +selectionchangedtypee 2 q xywidthheighttaborderborderstylevscrollbartextcolortextsizeweightDAT*f facenamefontfamilyfontpitchw  ".9CLS\g] ow  E@ @@ DAT*h @@1$05$$8$H$6,)d8l$t$1|$)8$1,!1,!$$9}1$9}$)8$,1DAT*j @$H9}P$)X8`$p1$9}$)8$1$9}$)8$11$ $,)$81<,$49}<$)D8,!1,!L$Hj &BbDAT*l 4Pp!"&d +indexsqlca::message<@,!@.Tx istr_levelr9+nationbddlb_nation,/text@wf_get_nation_rid}P9+,/clear+29+ddlb_state.enabledil_state_ridf_r;ddlb_county--reset> 9+county$ddlb_source4,4,> DAT*n 9+sourcehddlb_devicex+x+> 9+devicepddlb_processele**> 9+process9+wf_load_statesw..>  $ 8 H d l t |             , @ H P X ` p      DAT*p           $ , 4 < D L 0502  +selectionchangedtypeon2 q xywidthheighttaborderborderstylevscrollbartextcolortextsizeweightfacenamefontfamilyfontpitchw y  ".9CDAT*r LS\g] owy  E@ @@ @@10052  2 xywidthheightvisibleenabledteDAT*t xtalignmentfocusrectangletextcolorbackcolorbordercolortextsizeweightfacenamefontfamilyfontpitchT7 I I!). 8 GQ[gp@w] 7IIDAT*v  @   @ 2  2 xywidthheightenabledtextalignmentfocusrectangletextcolorbackcolorbordercolortextsizeweightfacenamefontfamilyfontpitch@\  I!DAT*x &0?IS_ho@x] o\I @  @2  2 DAT*z  xywidthheightenabledtextalignmentfocusrectangletextcolorbackcolorbordercolortextsizeweightfacenamefontfamilyfontpitch@\ 1 I!&0?IS_hox] o\1DAT*| I @  @2  2 xywidthheightenabledtextalignmentfocusrectangletextcolorbackcolorbordercolortextsizeweightfacenamefontfamilyfontpitch@\  IDAT*~ !&0?IS_hox] o\I @  @2  2 DAT*  xywidthheightenabledtextalignmentfocusrectangletextcolorbackcolorbordercolortextsizeweightfacenamefontfamilyfontpitch@\  I! &0?IS_hox] o\DAT* I @   @2  2 | xywidthheightenabledalignmentfocusrectangletextcolorbackcolortextsizeweightfacenamefontfamilyfontpitch.  .I!DAT* +:DNW^gr] o..I @   @~$$1},$*@DAT* 8,!d1r,!4$$Jd ::message!@.< istr_levelr9+retvalb9+ $ , 4 "'"2  +clickedtype f2 \ xywidthheighttabordertextcanceltextsizeweightfacenamefontfamilyfontpitchn  m<DAT* "'.7>GR] onm< @ @"l)8,$*@8,!R1`,!4$DAT* 8d ::message!@.< wf_put_outputistr_level 9+ , 4 "("2  +clickedtypem 2 ] xywidthheighttabordertextdefaulttextsizeweightfacenamefontfamilyfontpitch  m2"'/8DAT* ?HS] om2 @ @"2  2 xywidthheightenabledtextalignmentfocusrectangletextcolorbackcolorbordercolortextsizeweightfacenamefontfamilyfontpitch@\DAT*   I!&0?IS_hox] o\I @ DAT* @2  2 A msgtextnationstatecountysourcedeviceprocessretval $+2: