Får detta felet. Har prövat med en xtra End if både innan ElseIf raden och efter ElseIf blocket men om jag lägger till End if så står det att function förväntas istället.
Kompileringsfel i Microsoft VBScript (0x800A03F6)
'End' förväntas.
/stalbolaget/extranet/ssi/common_functions.ssi, line 129
ElseIf (Cstr(i_item) = "1b") Then
End förväntas och raden i fetstilt står då angiven också:
Function getPrice(i_item, i_selectedAltId, i_priceIndex)
Dim myDate
myDate = (RS_reportInfo.Fields.Item("weight_date").Value)
dim alt1, alt2, alt3, altValue
dim price
price = 0
'
If (Cstr(i_item) = "1") Then
'
If myDate < CDate("2007-05-01") Then
alt1 = 1
alt2 = 2
alt3 = 3
'
if (i_selectedAltId = 1) then
altValue = alt1
elseIf (i_selectedAltId = 2) then
altValue = alt1 + alt2
elseIf (i_selectedAltId = 3) then
altValue = alt1 + alt3
end if
Else
alt1 = 2
alt2 = 2
alt3 = 3
'
if (i_selectedAltId = 1) then
altValue = alt1
elseIf (i_selectedAltId = 2) then
altValue = alt1 + alt2
elseIf (i_selectedAltId = 3) then
altValue = alt1 + alt3
end if
End if
If (hasValue(i_priceIndex)) then
'
price = round(CDbl(i_priceIndex) + altValue,0)
End if
End if
'--------------------------------------------------------------------------
[B]ElseIf (Cstr(i_item) = "1b") Then[/B]
'
alt1 = 1
alt2 = 3
alt3 = 5
'
if (i_selectedAltId = 1) then
altValue = alt1
elseIf (i_selectedAltId = 2) then
altValue = alt2
elseIf (i_selectedAltId = 3) then
altValue = alt3
end if
If (hasValue(i_priceIndex)) then
'
' Calculate price
price = round((CDbl(i_priceIndex) * 1) + altValue, 2)
End if
Koden är rätt hyggligt indenterad, men om du indenterar den ordentligt så ser du nog att du har ett end if som inte hör hemma där det ligger (den som ligger närmast ovanför den långa linjen.)
Dim myDate
myDate = (RS_reportInfo.Fields.Item("weight_date").Value)
Skulle jag inte haft med i funktionen.
Lägg in myDate här: Function getPrice(i_item, i_selectedAltId, i_priceIndex, myDate) och ta med den när du kallar på funktionen i stället. :)
Detta är en funktion som är inkluderad som ssi fil till en annan sida.
Något blir fel när datum ska kollas...verkar som weight_date ignoreras?
Function getPrice(i_item, i_selectedAltId, i_priceIndex)
Dim myDate
myDate = RS_reportInfo("weight_date")
dim alt1, alt2, alt3, altValue
dim price
price = 0
If (Cstr(i_item) = "1") Then
If myDate < CDate("2007-05-01") Then
alt1 = 1
alt2 = 2
alt3 = 3
if (i_selectedAltId = 1) then
altValue = alt1
elseIf (i_selectedAltId = 2) then
altValue = alt1 + alt2
elseIf (i_selectedAltId = 3) then
altValue = alt1 + alt3
end if
Else
alt1 = 2
alt2 = 2
alt3 = 4
if (i_selectedAltId = 1) then
altValue = alt1
elseIf (i_selectedAltId = 2) then
altValue = alt1 + alt2
elseIf (i_selectedAltId = 3) then
altValue = alt1 + alt3
end if
End if
If (hasValue(i_priceIndex)) then
price = round(CDbl(i_priceIndex) + altValue,0)
End if
för att en funktion "kan" inte innehålla någon data(missuppfattar inte mig nu någon)
Men en funktion för mig är en "mall" eller har en funktion att göra. Nu försöker du lägga in ett Recordset "weight_date" vilket inte din funktion känner till alls vad det är för något.
Jag hade ändrat din funktion:
Function getPrice(i_item, i_selectedAltId, i_priceIndex[b],myDate[/b])
och inkludera RS_reportInfo("weight_date") i parametern "myDate
Jag tycker det känns konstigt att du ropar på recordset som inte skapas i funktionen. Har du deklarerat (med dim) recordsetet innan du kör funktionen? Får du något felmeddelande? Vad innehåller weight_date?
Du måste deklarera ditt recordset utanför funktionen, och det är garanterat inte bra i detta fall speciellt om du har din databasanslutning öppen. Därför så borde du lägga värdet utanför, och ta med det när du kallar på funktionen.
Ge oss mer kod... ditt flöde är för mig mycket oklart.. du ger en ½ skriven funktion.. myDate i din ssi fil är den bara där eller du ta även in det i din funktion?
267 ms totalt · 4 externa anrop · v20260731065814-full.e96017d9