<% ' displaypcs.asp - PC List Page (Phase 2 Schema) - Last Updated: 20251110-1440 theme = Request.Cookies("theme") IF theme = "" THEN theme="bg-theme1" END IF %>
<% Dim currentPCStatus, recentFilter, deviceTypeFilter, sel currentPCStatus = Request.QueryString("pcstatus") recentFilter = Request.QueryString("recent") deviceTypeFilter = Request.QueryString("devicetype") ' Check for specialized PCs (CMM, Wax Trace, Measuring Tool) without equipment relationships Dim rsUnlinked, unlinkedCount unlinkedCount = 0 Set rsUnlinked = objConn.Execute("SELECT COUNT(*) as cnt FROM machines m " & _ "WHERE m.machinetypeid IN (41, 42, 43) AND m.isactive = 1 " & _ "AND NOT EXISTS (SELECT 1 FROM machinerelationships mr WHERE (mr.machineid = m.machineid OR mr.related_machineid = m.machineid) AND mr.relationshiptypeid = 3 AND mr.isactive = 1)") If Not rsUnlinked.EOF Then unlinkedCount = CLng(rsUnlinked("cnt") & "") End If rsUnlinked.Close Set rsUnlinked = Nothing If unlinkedCount > 0 Then %> <% End If %>
<% If currentPCStatus <> "" Or recentFilter <> "" Or deviceTypeFilter <> "" Or Request.QueryString("needsrelationship") <> "" Then %> Clear <% End If %>
<% ' Build query based on filters Dim pcStatusFilter, recentDaysFilter, deviceTypeFilterSQL, needsRelationshipFilter, whereClause Dim displayName, hasVnc, vncHost, hasWinrm pcStatusFilter = Request.QueryString("pcstatus") recentDaysFilter = Request.QueryString("recent") deviceTypeFilterSQL = Request.QueryString("devicetype") needsRelationshipFilter = Request.QueryString("needsrelationship") ' Base query with LEFT JOINs to show all PCs strSQL = "SELECT m.machineid, m.hostname, m.serialnumber, m.machinenumber, m.machinestatusid, " & _ "m.modelnumberid, m.osid, m.loggedinuser, m.lastupdated, m.isvnc, m.iswinrm, " & _ "vendors.vendor, models.modelnumber, operatingsystems.operatingsystem, " & _ "c.address AS ipaddress, c.macaddress, " & _ "machinestatus.machinestatus, " & _ "eq.machineid AS equipment_id, eq.machinenumber AS equipment_number " & _ "FROM machines m " & _ "LEFT JOIN models ON m.modelnumberid = models.modelnumberid " & _ "LEFT JOIN vendors ON models.vendorid = vendors.vendorid " & _ "LEFT JOIN operatingsystems ON m.osid = operatingsystems.osid " & _ "LEFT JOIN communications c ON c.machineid = m.machineid AND c.isprimary = 1 " & _ "LEFT JOIN machinestatus ON m.machinestatusid = machinestatus.machinestatusid " & _ "LEFT JOIN machinerelationships mr ON (mr.machineid = m.machineid OR mr.related_machineid = m.machineid) AND mr.isactive = 1 AND mr.relationshiptypeid = 3 " & _ "LEFT JOIN machines eq ON (eq.machineid = mr.related_machineid OR eq.machineid = mr.machineid) AND eq.machineid <> m.machineid AND eq.machinetypeid < 33 " & _ "WHERE m.isactive = 1 AND m.machinetypeid IN (33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43)" ' Apply filters whereClause = "" If pcStatusFilter <> "" Then whereClause = whereClause & "AND m.machinestatusid = " & pcStatusFilter & " " End If If recentDaysFilter <> "" And IsNumeric(recentDaysFilter) Then whereClause = whereClause & "AND m.lastupdated >= DATE_SUB(NOW(), INTERVAL " & recentDaysFilter & " DAY) " End If ' Filter by device type (laptop vs desktop) based on model name patterns If deviceTypeFilterSQL = "laptop" Then whereClause = whereClause & "AND (models.modelnumber LIKE '%Latitude%' OR models.modelnumber LIKE '%Precision%' AND (models.modelnumber NOT LIKE '%Tower%')) " ElseIf deviceTypeFilterSQL = "desktop" Then whereClause = whereClause & "AND (models.modelnumber LIKE '%OptiPlex%' OR models.modelnumber LIKE '%Tower%' OR models.modelnumber LIKE '%Micro%') " End If ' Filter for specialized PCs needing equipment relationships If needsRelationshipFilter = "1" Then whereClause = whereClause & "AND m.machinetypeid IN (41, 42, 43) " & _ "AND NOT EXISTS (SELECT 1 FROM machinerelationships mr WHERE (mr.machineid = m.machineid OR mr.related_machineid = m.machineid) AND mr.relationshiptypeid = 3 AND mr.isactive = 1) " End If strSQL = strSQL & whereClause & "GROUP BY m.machineid ORDER BY m.machinenumber ASC, m.hostname ASC" set rs = objconn.Execute(strSQL) while not rs.eof %> <% rs.movenext wend objConn.Close %>
Hostname Serial Model OS Equipment VNC WinRM
" title="Click to Show PC Details"><% If IsNull(rs("hostname")) Or rs("hostname") = "" Then displayName = rs("serialnumber") Else displayName = rs("hostname") End If Response.Write(displayName) %> <%Response.Write(rs("serialnumber"))%> <%Response.Write(rs("modelnumber"))%> <%Response.Write(rs("operatingsystem"))%> <% ' Equipment relationship column If Not IsNull(rs("equipment_id")) And rs("equipment_id") <> "" Then Response.Write("" & Server.HTMLEncode(rs("equipment_number") & "") & "") Else Response.Write("-") End If %> <% ' VNC column with link hasVnc = False If Not IsNull(rs("isvnc")) Then If rs("isvnc") = True Or rs("isvnc") = 1 Or rs("isvnc") = -1 Then hasVnc = True End If End If If hasVnc And Not IsNull(rs("hostname")) And rs("hostname") <> "" Then vncHost = rs("hostname") & ".logon.ds.ge.com" Response.Write("VNC") ElseIf hasVnc Then Response.Write("VNC") Else Response.Write("-") End If %> <% ' WinRM column hasWinrm = False If Not IsNull(rs("iswinrm")) Then If rs("iswinrm") = True Or rs("iswinrm") = 1 Or rs("iswinrm") = -1 Then hasWinrm = True End If End If If hasWinrm Then Response.Write("WinRM") Else Response.Write("-") End If %>