webForumDet fria alternativet

Funktion som länk

ASP

9 svar · 350 visningar · startad av Boorg

Medlem sedan okt. 2004409 inlägg
Frågan#1

Håller på att testa funktioner lite nu.

Får inte denna att funka

Function strQuery(JobNo, Budget, TaskCode, view, OldQuant, monday)
	strQuery = "Jobno=" & JobNo & "&Budget=" & Budget & "&TaskCode=" & TaskCode & "&View=" & View & "&OldQuant=" & OldQuant & "&monday=" & monday
End Function

felrad: Response.Write strQuery(1133)

1. För det första så funkar inte själva funktionen. Felkod:
Microsoft VBScript runtime (0x800A01C2)
Wrong number of arguments or invalid property assignment: 'strQuery'

2. Och hur funkar detta nu. Skulle hellst vilja att, ifall t.ex JobNo är tom så skulle den hämta infot tidigare exempel en QueryString (JobNo = Replace(Request.QueryString("JobNo"), "'", "''")) som jag har längst upp på sidan. Måste jag göra massa ifsatser eller kan man ha det så som det är?

Mvh Jesper

Medlem sedan dec. 200012 464 inlägg
#2

Du måste ange alla parametrar när du anropar funktionen.

Du måste själv hantera logiken för vad som skall hända om jobno är tomt. ??? Jag förstår nog inte vad du menar ???

Medlem sedan okt. 2004409 inlägg
#3

Förkortar koden så att man kanske kan fatta vad jag menar:

Rad 1: JobNo = Replace(Request.QueryString("JobNo"), "'", "''")

Rad 3: Function strQuery(JobNo)
Rad 4:  	strQuery = "Jobno=" & JobNo
Rad 5: End Function

Rad 7: Response.Write "<a href='lista.asp?" & strQuery(0)

Nu vill jag, Ifall är tomt eller 0 eller hur man nu kan göra. Så hämtas JobNo nummret ifrån QueryStringen som är deklarerad i rad 1

Medlem sedan okt. 2004409 inlägg
#4

Finns det något annat sätt att göra detta då?

Skall andvända denna strängen ett antel gånger i koden som querysträng. Men ibland skall det inte vara den informationen som är deklarerad sen innan utan ny som man deklarerar när man hämtar strängen.

Medlem sedan okt. 2004409 inlägg
#5

Förkortar koden så att man kanske kan fatta vad jag menar:

Rad 1: JobNo = Replace(Request.QueryString("JobNo"), "'", "''")

Rad 3: Function strQuery(JobNo)
Rad 4:  	strQuery = "Jobno=" & JobNo
Rad 5: End Function

Rad 7: Response.Write "<a href='lista.asp?" & strQuery(0)

Nu vill jag, Ifall är tomt eller 0 eller hur man nu kan göra. Så hämtas JobNo nummret ifrån QueryStringen som är deklarerad i rad 1

Medlem sedan okt. 2004409 inlägg
#6

Fick göra såhär:

'---- Skriver querysträngen ----
Function strQuery(a, b, c, d, e, f)
	If a = "1" Then a = JobNo
	If b = "2" Then b = Budget
	If c = "3" Then c = TaskCode
	If d = "4" Then d = view
	If e = "5" Then e = oldQuant
	If f = "6" Then f = Monday
	strQuery = "Jobno=" & JobNo & "&Budget=" & Budget & "&TaskCode=" & TaskCode & "&View=" & View & "&OldQuant=" & OldQuant & "&monday=" & monday
End Function

Response.Write strQuery(1,2,3,4,5,6) & "<br>"
Medlem sedan juni 200032 967 inlägg
#7

Hmm...

Vad exakt hade du tänkt att den koden skulle göra?
Du skickar dessutom in tal och jämför med strängar?
Var använder du variablerna a, b, c, d, e och f?

Medlem sedan okt. 2004409 inlägg
#8

@nders skrev:

Hmm...

Vad exakt hade du tänkt att den koden skulle göra?
Du skickar dessutom in tal och jämför med strängar?
Var använder du variablerna a, b, c, d, e och f?

Jag har ett lite data som alltid skall vara med i querystringen när jag andvänder länkar. Då tyckte jag det var smidigare att istället för att skriva ut alla "&JobNo=" osv så gör jag det en gång och så att jag kan ändra dom ifall det behövs. Jag hämtar all infomration från Querystringen sedan innan.

JobNo = Replace(Request.QueryString("JobNo"), "'", "''")
Mode = Replace(request.querystring("Mode"), "'", "''")
view = Replace(request.querystring("view"), "'", "''")
monday = Replace(request.querystring("monday"), "'", "''")
Taskcode = Replace(request.querystring("Taskcode"), "'", "''")
oldQuant = Replace(request.querystring("oldQuant"), "'", "''")
EditID = Replace(request.querystring("EditID"), "'", "''")
AvMark = Replace(request.querystring("AvMark"), "'", "''")
Del = Replace(request.querystring("Del"), "'", "''")
skift = Replace(request.querystring("skift"), "'", "''")

Ifall i datan jag hämtar ifrån JobNo nu är "12345" Så kanske jag vill att det skall vara "54321" på en länk. Då skall jag enkelt kunna andvända strQuery(54321,2,3,4,5,6,7). Så här ser koden ut just nu

Function strQuery(a, b, c, d, e, f, g)
	If a = "1" Then a = JobNo
	If b = "2" Then b = Budget
	If c = "3" Then c = TaskCode
	If d = "4" Then d = view
	If e = "5" Then e = oldQuant
	If f = "6" Then f = Monday
	If g = "7" Then g = Skift
	strQuery = "Jobno=" & a & "&Budget=" & b & "&TaskCode=" & c & "&View=" & d & "&OldQuant=" & e & "&monday=" & f & "&Skift=" & g
End Function
Medlem sedan juni 200032 967 inlägg
#9

Ja, nu använder du ju åtminstone variablerna i funktionen. Men vad händer om man skickar in värdet 5 för d? Då blir view=5 i querystringen, fungerar det?

Det känns lite som att du går över ån efter vatten samtidigt som du häller det tappade smöret över björnskinnet. Men å andra sidan så förstår jag inte riktigt vad du håller på med. =)

Medlem sedan okt. 2004409 inlägg
#10

hehe... det e inte många så gör ;)

Jag håller på med ett stor tidsplan system. Där det fungerar ungeför som i exel. Man kan klicka i en ruta (som är en vecka) Och skriva kommentarer osv. Men iochmed att det blir rätt mycket knappar behöver jag ett smidigt sätt att andvända querysträngen på. Då tyckte jag det var lämpligt med en sådan funktion.

Det är aldrig någon av dom som är en enkel sifra. Antingen så är dom ett datum eller så är dom en liten sträng.

Men har du något bättre förslag på hur man kan lösa det så är jag idel öra :)

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