webForumDet fria alternativet

WildCard i Sökning trubbel...

ASP

0 svar · 114 visningar · startad av T_Codez

Medlem sedan juli 2001458 inlägg
Frågan#1

Hej hopp igen...

Nu har jag ett eminent bekymmer. Jag vill kunna ha en select kontroll som skickar med *. Och så långt så går det bra... Men sen är det *grumf* :(

Och jag kan inte begripa varför (GÄLLER vProdGroup). Jag hoppar tillbaka till och ska försöka ger er en "Kodöversikt".

Jag har 4 kontroller. 2 stycken "select" och ett textfält. Sedan har jag en Submitknapp.

När sidan laddas 1:a ggn så gäller följande för kontrollerna (ripar resten. Blir mycke annars).

<!--#include virtual="/asp/asp_lib.asp" -->

<%
vWarehouse = ""
vProdGroup = ""
vThickness = "All"

vStatus = request.querystring("Status")

if  vStatus = 1 then

  vWarehouse = request.form("lbWarehouse")

  if request.form("lbProdGroup") = "All" then
   vProdGroup = "*"
  else
   vProdGroup = request.form("lbProdGroup")
  end if

  if request.form("fldThickness") = "All" then
   vThickness = "*"
  else
   vThickness = request.form("fldThickness")
  end if
end if
%> 

<form class="BG_blue" action="index.asp?Status=1" method="post">
<br><%
if  vStatus = 1 then
	 if vWarehouse = "" Then
	  mess = " You have to select a warehouse. Please try again"
	  response.write "<font color=red><b>&nbsp;" &mess &"</b></font>"
	 end if
end if%>
<table width="650" border="0" cellspacing="0" cellpadding="0">
    <tr> 
      <td>Warehouse to query:&nbsp;</td>
      <td><% 
	if Trim(Session("IsSalesman"))="L" Then
	 call Create_Lb_Warehouse(vWarehouse)
	else
	 call Create_Lb_AllWarehouse(vWarehouse) 
	end if
	%></td>
      <td></td>
    </tr>
</table>

<table>
 <tr> 
  <td>Product:&nbsp;</td>
  <td><% Call Create_Lb_ProdGroup(vProdGroup)%></td>
  <td><input type="submit" class="skicka_knapp" name="imagefield" title="Search" Value="Search Item"></td>
 </tr>
 <tr> 
  <td>Thickness: </td>
	<%
	  'Added to abort all chances for user to see a star (*) in form. 
	  IF vThickness = "*" Then
             vThickness = "All"
          END IF
        %>
  <td><input type="text" name="fldThickness" size="4" maxlength="4" value="<% response.write vThickness %>">&nbsp;mm.</td>
  <td><input type="button" class="skicka_knapp" title="Advanced Search" Value="More..." onclick="location.href='advanced.asp';">
  </td>
 </tr>
</table>
</form>

Funktionen <% Call Create_Lb_ProdGroup(vProdGroup)%> som anropas finns i en includefil och ser ut så här:

Sub Create_Lb_ProdGroup(vProdGroup)
  aProdGroup = Session("sProdGroup")
  Response.Write "<select name='lbProdGroup' size=1>"
  Response.write "<option value='All'>All</option>" 

 for i = 0 to uBound(aProdGroup)-1
  Response.Write "<option value='" & aProdGroup(i,1) & "' " 
  if Trim(cSTR(vProdGroup)) = aProdGroup(i,1) then
   response.write "selected "
  end if
 Response.write  ">" & aProdGroup(i,2)
  Next
Response.Write "</select>"
end sub

Som sagt så långt är allt okay. Men sen när jag kommer in på sidan det 2:a varvet... Ger den mitt egna felmeddelande som finns på raden markerat med ##### nedan.

Och kanske är det så att man inte kan ha * som jämförelsevillkor... Vad tror ni?

SQL-Delen:

<% 	
if vStatus=1 then	
	
 vSQL = "SELECT xb.lagplatsnamn, ars.artnr, ars.lagsaldo, ar.q_tjl, ar.q_lgd, ar.q_brd, " 	&_
	 "vg.varugruppbeskr, vg.VaruGruppKod, ar.artvikt, ars.LagResAnt, ars.lagbestant, "    	&_
	 "ar.q_arkod1, ar.q_arkod2, ar.q_arkod3 "                                   		&_
	 "FROM ar, ars, vg, xb "                                                         	&_
	 "WHERE ar.artnr = ars.artnr "                  					&_
	 "AND vg.varugruppkod = ar.varugruppkod "       					&_
	 "AND xb.lagstalle = ars.lagstalle "            					&_ 
	 "AND vg.VaruGruppKod = '" & vProdGroup & "' " 

	if  vWarehouse <> "" then
		vSQL = vSQL & "AND xb.LagStalle = '" & vWarehouse & "' "
	end if
	
	if isNumeric(vThickness) then
		vSQL = vSQL & "AND ar.q_tjl = " & cInt(vThickness) & " " 
	end if 

	vSQL = vSQL & " Order by vg.varugruppbeskr asc, ar.q_tjl asc, ar.q_brd asc, ar.q_lgd asc"

	Set vConn = Server.CreateObject("ADODB.Connection")
    	vConn.open "DSN=proddb","sa","hardox" 
 	Set Rs = Server.CreateObject("ADODB.Recordset")
    	rs.Open vSQL, vConn, 3, 3 'rad 184

	vStartRow = "<font face='Verdana, Arial, Helvetica, sans-serif' size='1'>"
	vStopRow = "</font>" 
			vEven = "#FFFFCC"
			vOdd  = "#CCCCCC"
%>
<% if Rs.Recordcount = 0 OR Rs.Recordcount = -1 then %>
	<table width="650" border="0" cellspacing="0" cellpadding="0">
 	 <tr bgcolor="#0000BB"> 
   	  <td align="center" width="*" height="20" > 
           <p><b><font face="Verdana, Arial, Helvetica, sans-serif" size="1" color="#FFFFFF">No 
           Rows found that equals Your criteria ######</font></b> </p>
          </td>
	 </tr>
       	</table>
<%else%>
	***RIPPAT***
<%end IF%>

Hoppas någon kan förklara varför det inte vill sig för mig....

:x

Tack för uppmärksamheten

mvh
/Tony

260 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)
131 ms — ändringar (db)