### Intialize static lists for $this_rep = "swrdetb.hts"; @selectionList = ( "ANTENNA.manufacturerC/Manufacturer", "ANTENNA.site_keyI/Site Key"); my (@fieldNames) = ( "Site ID:", "Antenna ID:", "Manufacturer:", "Diameter (meters):", "Model:", "Diameter Minor (m):", "Building Height AGL (m):", "Diameter Major (m):", "Max Antenna Height AGL (m):", "Quantity:", "Max Antenna Height AMSL (m):", "Total Power (Watts):", "Max Antenna Height Above Rooftop (m):", "Total EIRP (dBW):"); require "webrep.pl"; ### Main web report logic module ### Report specific subroutines sub DataSelect { # get data for full report &doFromWhere(); $select = qq ! SELECT distinct SITE.site_id, ANTENNA.antenna_id, ANTENNA.manufacturer, ANTENNA.diameter, ANTENNA.model, ANTENNA.diameter_minor , ANTENNA.height_bldg_agl , ANTENNA.diameter_major , ANTENNA.height_max_agl , ANTENNA.quantity, ANTENNA.height_max_amsl , ANTENNA.max_input_power , ANTENNA.height_max_aroof , ANTENNA.max_output_eirp, ANTENNA.antenna_key $fromWhere ORDER BY $SORT !; } sub doFromWhere { #setup FROM and WHERE clauses &setFromWhere(); $fromWhere = qq ! FROM ANTENNA, V_SITE_ANTENNA_FREQ, SITE WHERE $subsystem_code $f_state $selectionCriteria ( V_SITE_ANTENNA_FREQ.filing_key = SITE.filing_key ) and ( ANTENNA.site_key = SITE.site_key ) and ( V_SITE_ANTENNA_FREQ.site_key = SITE.site_key) and ( V_SITE_ANTENNA_FREQ.antenna_key = ANTENNA.antenna_key) !; } sub doFromWhereCount { #setup FROM and WHERE clauses &setFromWhere(); $fromWhere = qq ! FROM ANTENNA, V_SITE_ANTENNA_FREQ, SITE WHERE $subsystem_code $f_state $selectionCriteria ( V_SITE_ANTENNA_FREQ.filing_key = SITE.filing_key ) and ( ANTENNA.site_key = SITE.site_key ) and ( V_SITE_ANTENNA_FREQ.site_key = SITE.site_key) and ( V_SITE_ANTENNA_FREQ.antenna_key = ANTENNA.antenna_key) !; } sub setTitle { print qq !ANTENNA DETAILS!; } sub setStuff { print qq !
FCC $fsList Application List
!; } sub doRows { my ($total) = $ws_form{COUNT}; if ($total == 0) { $total = $returned; } # if not specified use all for ($i = 1; $i < $returned && $total-- > 0; ) { print qq !
!; $j = 14; for ($k = 0; $k < $j; ) { print "
$fieldNames[$k++] $rs[$i++]"; if ( $k < $j ) { print "$fieldNames[$k++] $rs[$i++]"; } } print "
"; &doGain($rs[$i]); # print gain list &doFreq($rs[$i]); # print freq list &doFreqCoord($rs[$i++]); # print freq list } } sub doGain { my ( $antennaKey ) = @_; my (@rs, $rs, @rs2, $rs2, $select, $i, $j, $k, $returned ); my (@headers) = ( 30, "Antenna Gain (dBi)", 30, "@ (Ghz)"); $select = "SET ROWCOUNT 0"; @rs = callSql ($ws_db, $select); $select = qq ! SELECT ANTENNA_GAIN.gain, CONVERT(FLOAT,ANTENNA_GAIN.frequency) FROM ANTENNA_GAIN WHERE ( ANTENNA_GAIN.antenna_key = $antennaKey ) ORDER BY ANTENNA_GAIN.frequency !; #print "$select
"; @rs = callSql ($ws_db, $select); if ($rs[0] == 0) { print "Unable to access $procDb table info$end"; } else { $returned = $#rs-1; #Number of elements in returned array if ( $returned > 0 ) { print qq ! !; for ($k = 0; $k < $#headers; ) { print qq ! !; } print ""; for ($i = 1; $i < $returned; ) { print ""; } print "
$headers[$k++]
"; print $rs[$i++] ne "" ? $rs[$i-1] : ' '; print ""; print $rs[$i++] ne "" ? $rs[$i-1] : ' '; print "
"; } }} sub doFreq { my ( $antennaKey ) = @_; my (@rs, $rs, @rs2, $rs2, $select, $i, $j, $k, $returned ); my (@headers) = ( 30, "Polarization", 30, "Max EIRP/Carrier (dBW)", 30, "Max EIRP Density/Carrier (dBW)", 30, "Emission Designator", 30, "Frequency Lower (MHz)", 30, "Frequency Upper (MHz)", 30, "T/R Mode"); $select = qq ! SELECT FREQUENCY.polarization_code , FREQUENCY.eirp , FREQUENCY.eirp_density , FREQUENCY.emission , RTRIM(LTRIM(STR(CONVERT(FLOAT,FREQUENCY.frequency_lower),10,4))), RTRIM(LTRIM(STR(CONVERT(FLOAT,FREQUENCY.frequency_upper),10,4))), FREQUENCY.trans_mode FROM FREQUENCY WHERE ( FREQUENCY.antenna_key = $antennaKey ) ORDER BY FREQUENCY.frequency_lower, FREQUENCY.emission !; #print "$select
"; @rs = callSql ($ws_db, $select); if ($rs[0] == 0) { print "Unable to access $procDb table info$end"; } else { $returned = $#rs-1; #Number of elements in returned array if ( $returned > 0 ) { print qq ! !; for ($k = 0; $k < $#headers; ) { print qq ! !; } print ""; for ($i = 1; $i < $returned; ) { print ""; } print "
$headers[$k++]
"; print $rs[$i++] ne "" ? $rs[$i-1] : ' '; for ($k = 0; $k++ < 6; ) { print ""; print $rs[$i++] ne "" ? $rs[$i-1] : ' '; } print "
"; } }} sub doFreqCoord { my ( $antennaKey ) = @_; my (@rs, $rs, @rs2, $rs2, $select, $i, $j, $k, $returned ); my (@headers) = ( 30, "Azimuth Angle Eastern Limit", 30, "Azimuth Angle Western Limit", 30, "Antenna Elevation Angle Eastern Limit", 30, "Antenna Elevation Angle Western Limit", 30, "Lower Fre- quency Limit", 30, "Upper Fre- quency Limit", 30, "Max EIRP Density (dBW/ 4KHz)", 30, "Satellite Arc Eastern Limit", 30, "Satellite Arc Western Limit", 30, "Satellite Orbit Type"); $select = qq ! SELECT FREQ_COORD.azimuth_east , FREQ_COORD.azimuth_west , FREQ_COORD.elevation_east , FREQ_COORD.elevation_west , RTRIM(LTRIM(STR(CONVERT(FLOAT,FREQ_COORD.freq_limit_low),10,4))), RTRIM(LTRIM(STR(CONVERT(FLOAT,FREQ_COORD.freq_limit_high),10,4))), FREQ_COORD.horiz_max_density , FREQ_COORD.sat_arc_east , FREQ_COORD.sat_hemi_east , FREQ_COORD.sat_arc_west , FREQ_COORD.sat_hemi_west , FREQ_COORD.sat_orbit_type FROM FREQ_COORD WHERE ( FREQ_COORD.antenna_key = $antennaKey ) ORDER BY FREQ_COORD.freq_limit_low !; #print "$select
"; @rs = callSql ($ws_db, $select); if ($rs[0] == 0) { print "Unable to access $procDb table info$end"; } else { $returned = $#rs-1; #Number of elements in returned array if ( $returned > 0 ) { print qq ! !; for ($k = 0; $k < $#headers; ) { print qq ! !; } print ""; for ($i = 1; $i < $returned; ) { print ""; } print "
$headers[$k++]
"; print $rs[$i++] ne "" ? $rs[$i-1] : ' '; for ($k = 0; $k++ < 6; ) { print ""; print $rs[$i++] ne "" ? $rs[$i-1] : ' '; } for ($k = 0; $k++ < 2; ) { print ""; print $rs[$i++] ne "" ? $rs[$i-1] : ' '; print $rs[$i++] ne "" ? " $rs[$i-1]" : ' '; } print ""; print $rs[$i++] ne "" ? $rs[$i-1] : ' '; print "
"; } }}