Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13

Discussione: funzione esterna

  1. #1

    funzione esterna

    Salve a tutti,
    ho una funzione, ma non mi passa le variabili:

    codice:
    pos = Request.Form("posizione")
    
    call decidi()
    
    Response.write ("posizione= "&Qpos)
    
    //... saltiamo il codice, e a fine pagina ho:
    public sub decidi()
    Dim Qpos
    Dim contr 
    
    if pos = "" OR pos = "scegliere" then 
    	Qpos = "0=0"
    	else
    	Qpos = "posizione = '"&pos&"'"
    	contr = 1
    end if
    end sub
    dove sbaglio???

    grazie, ciao.

  2. #2
    non va perché dichiari QPos *dentro* la sub e quindi non è visibile all'esterno.

    trasforma così
    codice:
    pos = Request.Form("posizione")
    
    QPos=decidi(pos)
    
    Response.write ("posizione= "&Qpos)
    
    //... saltiamo il codice, e a fine pagina ho:
    public Function decidi(poze)
    Dim Qpos
    Dim contr 
    
    if poze = "" OR poze = "scegliere" then 
    	Qpos = "0=0"
    	else
    	Qpos = "posizione = '" & poze & "'"
    	contr = 1
    end if
    
    decidi=QPos
    end function
    non so a cosa serva 'contr'....

  3. #3
    Thnx Optime, ma mi sa che devo postarti il codice completo, forse potrai indicarmi la soluzione migliore

    codice:
    pos = Request.Form("posizione")
    lng = Request.Form("lingua")
    trtt = Request.Form("trattamento")
    sist = Request.Form("sistemazione")
    intEst = Request.Form("interniEsterni")
    sport = Request.Form("sportBenessere")
    corsi = Request.Form("attivitaCorsi")
    
    call decidi()
    
    Response.write (...tutte le variabili...)
    
    // funzione in fondo alla pagina
    
    public sub decidi()
    Dim Qpos, Qtrtt, Qsist, Qlng, QintEst, Qsport, Qcorsi
    Dim contr 
    
    if pos = "" OR pos = "scegliere" then 
    	Qpos = "0=0"
    	else
    	Qpos = "posizione = '"&pos&"'"
    	contr = 1
    end if
    
    if trtt = "Solo Ristorazione" then 
    	Qtrtt = "trattamento = 'Solo Ristorazione'" 
    	contr = 1
    elseIf trtt = "Pensione" then
    	Qtrtt = "(trattamento like '%Pensione Completa%' OR trattamento like '%Mezza Pensione%')" 
    	contr = 1
    else 
    	Qtrtt = "0=0"
    end if
    
    if sist = "" OR sist = "scegliere" then
    	Qsist = "0=0"
    	else
    	Qsist = "tipoSistemazione = '"&sist&"'"
    	contr = 1
    end if
    
    if lng <> "" then 
    	contr = 1
    	lng = replace(lng,"'","''")
    	arrLng = split(lng,",")
    	for x = 0 to Ubound(arrLng)
    		if x = 0 then Qlng = "(0=0"
    		if trim(arrLng(x)) <> "" then
    			Qlng = Qlng & " AND [lingue parlate] like '%"&arrLng(x)&"%'"
    		end if
    	next
    	Qlng = Qlng & ")"	
    	else
    	Qlng = "0=0"
    end if
    
    if intEst <> "" then
    	contr = 1
    	intEst = replace(intEst,"'","''")
    	arrIntEst = split(intEst,",")
    	for x = 0 to Ubound(arrIntEst)
    		if x = 0 then QintEst = "(0=0"
    		if trim(arrIntEst(x)) <> "" then
    			QintEst = QintEst & " AND ServiziInterniEsterni like '%"&arrIntEst(x)&"%'"
    		end if
    	next
    	QintEst = QintEst &")"
    	else
    	QintEst = "0=0"
    end if	
    
    if sport <> "" then
    	contr = 1
    	sport = replace(sport,"'","''")
    	arrSport = split(sport,",")
    	for x = 0 to Ubound(arrSport)
    		if x = 0 then Qsport = "(0=0"
    		if trim(arrSport(x)) <> "" then
    			Qsport = Qsport & " AND sportBenessere like '%"&arrSport(x)&"%'"
    		end if
    	next
    	Qsport = Qsport &")"
    	else
    	Qsport = "0=0"
    end if	
    
    if corsi <> "" then
    	contr = 1
    	corsi = replace(corsi,"'","''")
    	arrCorsi = split(corsi,",")
    	for x = 0 to Ubound(arrCorsi)
    		if x = 0 then Qcorsi = "(0=0"
    		if trim(arrCorsi(x)) <> "" then
    			Qcorsi = Qcorsi & " AND sportBenessere like '%"&Qcorsi(x)&"%'"
    		end if
    	next
    	Qcorsi = Qcorsi &")"
    	else
    	Qcorsi = "0=0"
    end if	
    end sub

  4. #4
    ti ho già indicato il difetto: le variabili dimensionate DENTRO la sub NON si vedono fuori.

    soluzione: dimensiona le variabili FUORI dalla sub. That easy!


  5. #5
    Ok, ti ringrazio, avevo postato il codice completo, nel caso esisteva un'altra soluzione più sbrigativa.
    Purtroppo, devo passare anche un parametro nella funzione, e poi a furia di passare i parametri potrei incasinarmi.

    Scusa se sono un po pesante, ma volevo un altro consiglio:
    siccome quella procedura che ho postato devo ripeterla solo due volte, mi conviene riportare tutto il codice per due volte nella pagina, escludendo la funzione, o mi conviene creare la funzione e impegnarmi a passare tutti i parametri come mi hai indicato tu nel post???

  6. #6
    1. riusala
    2. puoi NON passare i parametri, se li dichiari fuori

  7. #7
    Ok, allora, per facilitare le cose, ho spezzettato la funzione e la prima, copiando il codice che mi hai postato te funziona, ma...

    2. puoi NON passare i parametri, se li dichiari fuori


    è questo quello che non riesco a capire

    come si fa co sti benedetti parametri???

  8. #8
    ma dario, che stai a di'

    dentro

    sub pippo

    dim dariomarco

    end sub

    fuori

    dim dariomarco

    sub pippo

    end sub


    ci vuole tanto?

  9. #9
    e lascia perdere quello che ti ho postato io, non sapevo che la tua funzione fosse ben più complessa

  10. #10
    Ok, sei riuscito a confondermi le idee!
    cmq ti posto il primo pesso della funzione, potresti correggermela pls???

    [code]
    pos = Request.Form("posizione")
    lng = Request.Form("lingua")
    trtt = Request.Form("trattamento")

    Dim Qpos, Qtrtt, Qlng
    Dim contr

    Qpos = decidi(pos)

    Response.write ...

    // funzione a fine pagina

    public function decidi(pos)
    Dim Qpos, Qtrtt, Qlng

    Dim contr

    if pos = "" OR pos = "scegliere" then
    Qpos = "0=0"
    else
    Qpos = "posizione = '"&pos&"'"
    contr = 1
    end if

    if trtt = "Solo Ristorazione" then
    Qtrtt = "trattamento = 'Solo Ristorazione'"
    contr = 1
    elseIf trtt = "Pensione" then
    Qtrtt = "(trattamento like '%Pensione Completa%' OR trattamento like '%Mezza Pensione%')"
    contr = 1
    else
    Qtrtt = "0=0"
    end if

    if sist = "" OR sist = "scegliere" then
    Qsist = "0=0"
    else
    Qsist = "tipoSistemazione = '"&sist&"'"
    contr = 1
    end if

    decidi = Qpos

    end function
    [code]

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.