Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Felipe Fonseca

Problema ao usar Call

Recommended Posts

Boa Noite pessoa,

 

O problema eh o seguinte...

 

se eu uso .... sem o CALL a variavel carrega normalmente, agora se eu uso o CALL eu nao consigo usar o valor da variavel .... o Que tenho que fazer quando char o CALL eu conseguir usar o valor da variavel ... ???

 

Vou tentar resumir o codigo abaxio pra vcs entenderem ...

 

 

Arquivo q contem o CALL q chama VerificaLocalidade.asp

SUB VerificaLocalidades	IF vPtaA = "JNU" OR vPtaA = "FCS" OR vPtaA = "BCV" OR vPtaA = "COJ" OR vPtaA = "MIB" OR vPtaA = "TUR" OR vPtaA = "SRW" OR vPtaA = "PZL" OR  vPtaA = "CTE" OR vPtaA = "IMR" OR vPtaA = "CKB" OR vPtaA = "BMW" OR vPtaA = "CLP" OR vPtaA = "NOES" OR vPtaA = "SPGA" OR vPtaA = "SLN" OR vPtaA = "PTOP" OR vPtaA = "ENH" THEN												vGraProc = "JNU"	ELSE		vGraProc = vGraA 		END IF		IF vPtaB = "JNU" OR vPtaB = "FCS" OR vPtaB = "BCV" OR vPtaB = "COJ" OR vPtaB = "MIB" OR vPtaB = "TUR" OR vPtaB = "SRW" OR vPtaB = "PZL" OR  vPtaB = "CTE" OR vPtaB = "IMR" OR vPtaB = "CKB" OR vPtaB = "BMW" OR vPtaB = "CLP" OR vPtaB = "NOES" OR vPtaB = "SPGA" OR vPtaB = "SLN" OR vPtaB = "PTOP" OR vPtaB = "ENH" THEN								vGraProc = "JNU"	ELSE		vGraProc = vGraB 		END IF	END SUB

ai eu coloquei o INCUDE NA PAGINA .. e chamei assim

CALL VerificaLocalidades

 

ai tipo assim... ele entra beleza ... mas nao consigo usar o conteudo da variavel vGraProc na continucao do codigo ... pq isso ocorre?

IF RsDuplo.EOF THEN			call VerificaLocalidades						QueryLimite = "SELECT * FROM Breno_A_04 WHERE DataAgendamento = '" & vDataAgend & "' AND SubGraA = '" & vGraProc & "'"			Set RSLimite = objConn.Execute(QueryLimite)
ta vendo ali ... eu preciso do valor de vGraProc que eu carrego quando chamo o CALL VerificaLocalidades....

 

Tipo .. se eu colocar ... o conteudo do CALL direto na pagina e nao usao o INCLUDE ... funciona normamente ....

Acho q estou dando algum vacilo com esse CALL ...

 

alguem pode me ajudar ... ??

Compartilhar este post


Link para o post
Compartilhar em outros sites

um SUB não retorna valores, você precisa fazer uma FUNCTION

 

ASP
FUNCTION VerificaLocalidades(vPtaA)

    IF vPtaA = "JNU" OR vPtaA = "FCS" OR vPtaA = "BCV" OR vPtaA = "COJ" OR vPtaA = "MIB" OR vPtaA = "TUR" OR vPtaA = "SRW" OR vPtaA = "PZL" OR  vPtaA = "CTE" OR vPtaA = "IMR" OR vPtaA = "CKB" OR vPtaA = "BMW" OR vPtaA = "CLP" OR vPtaA = "NOES" OR vPtaA = "SPGA" OR vPtaA = "SLN" OR vPtaA = "PTOP" OR vPtaA = "ENH" THEN                                        

        vGraProc = "JNU"

    ELSE

        vGraProc = vGraA    

    END IF

   

    IF vPtaB = "JNU" OR vPtaB = "FCS" OR vPtaB = "BCV" OR vPtaB = "COJ" OR vPtaB = "MIB" OR vPtaB = "TUR" OR vPtaB = "SRW" OR vPtaB = "PZL" OR  vPtaB = "CTE" OR vPtaB = "IMR" OR vPtaB = "CKB" OR vPtaB = "BMW" OR vPtaB = "CLP" OR vPtaB = "NOES" OR vPtaB = "SPGA" OR vPtaB = "SLN" OR vPtaB = "PTOP" OR vPtaB = "ENH" THEN                

       

        vGraProc = "JNU"

    ELSE

        vGraProc = vGraB    

    END IF

    VerificaLocalidades = vGraProc

END FUNCTION

 

variavelLocalidade = "IMR"

QueryLimite = "SELECT * FROM Breno_A_04 WHERE DataAgendamento = '" & vDataAgend & "' AND SubGraA = '" & VerificaLocalidades(varaivelLocalidade) & "'"

 

perceba que há diferença, criei uma função que recebe um valor, no exemplo a string IMR, ela entra no bloco de função, faz a veriricação e retorna para o nome da função o valor armazenado na variavel vGraProc

Compartilhar este post


Link para o post
Compartilhar em outros sites

OK ..... Entendi Perfeitamente ....Entao esse seria meu Return neh ..... no VB nao tem return ???o retorno ... seria chamar uma variavel carregála e depois usala chamando a funcao com o nome da variavel...igual você fez ai em cima ... ?eu tentei fazer uma funçao mas dava erro de codigo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Hi ... Agora deu outro problema .. eh o seguinte ...

 

vou tenta explicar o problema ...

tenho a pontaA, pontaB, GraA, GraB

 

entao ... faco a vericaçao com a funçao com ...

 

variavelLocalidade = vPtaA

beleza .... ai se entrar no IF ... beleza ... ele recebe o valor JNU .... agora se entrar no ELSE... eu preciso que a variavel receba o valor de vGraA

 

a mesma coisa pra pontaB

variavelLocalidade = vPtaB

se entrar no ELSE ... recebe o valor de GraB

 

mas nao ta funcinando ... olha pra você ver ....

 

fiz 2 funcoes ... na verdade nem sei se precisa ... mas eu fiz asism ..?

FUNCTION VerificaLocalidadesA(vPta)	IF vPta = "JNU" OR vPta = "FCS" OR vPta = "BCV" OR vPta = "COJ" OR vPta = "MIB" OR vPta = "TUR" OR vPta = "SRW" OR vPta = "PZL" OR  vPta = "CTE" OR vPta = "IMR" OR vPta = "CKB" OR vPta = "BMW" OR vPta = "CLP" OR vPta = "NOES" OR vPta = "SPGA" OR vPta = "SLN" OR vPta = "PTOP" OR vPta = "ENH" THEN												vGraProc = "JNU"	ELSE				vGraProc = vGraA	END IF		VerificaLocalidades = vGraProc END FUNCTIONFUNCTION VerificaLocalidadesB(vPta)	IF vPta = "JNU" OR vPta = "FCS" OR vPta = "BCV" OR vPta = "COJ" OR vPta = "MIB" OR vPta = "TUR" OR vPta = "SRW" OR vPta = "PZL" OR  vPta = "CTE" OR vPta = "IMR" OR vPta = "CKB" OR vPta = "BMW" OR vPta = "CLP" OR vPta = "NOES" OR vPta = "SPGA" OR vPta = "SLN" OR vPta = "PTOP" OR vPta = "ENH" THEN														vGraProc = "JNU"	ELSE					vGraProc = vGra	END IF		VerificaLocalidades = vGraProc END FUNCTION

 

Na Ponta A

variavelLocalidade = vPtaA			QueryLimite = "SELECT * FROM Breno_A_04 WHERE DataAgendamento = '" & vDataAgend & "' AND SubGraA = '" & VerificaLocalidadesA(varaivelLocalidade) & "'"

Na PontaB

variavelLocalidade = vPtaB			QueryLimite = "SELECT * FROM Breno_B_04 WHERE DataAgendamento = '" & vDataAgend & "' AND SubGraB = '" & VerificaLocalidadesA(varaivelLocalidade) & "'"

entenddeu ? preciso q quando entre no ELSE ... o valor carregaodo seja o da variavel GraA ou GraB ...

 

deu pra entender?

Compartilhar este post


Link para o post
Compartilhar em outros sites

desculpe, na correria não me atentei a isso....você pode passar mais um parametro na função, veja se isso resolve

ASP
FUNCTION VerificaLocalidades(vPtaA)

    IF vPtaA = "JNU" OR vPtaA = "FCS" OR vPtaA = "BCV" OR vPtaA = "COJ" OR vPtaA = "MIB" OR vPtaA = "TUR" OR vPtaA = "SRW" OR vPtaA = "PZL" OR  vPtaA = "CTE" OR vPtaA = "IMR" OR vPtaA = "CKB" OR vPtaA = "BMW" OR vPtaA = "CLP" OR vPtaA = "NOES" OR vPtaA = "SPGA" OR vPtaA = "SLN" OR vPtaA = "PTOP" OR vPtaA = "ENH" THEN                                        

        vGraProc = "JNU"

    ELSE

        vGraProc = vGraA    

    END IF

   

    IF vPtaB = "JNU" OR vPtaB = "FCS" OR vPtaB = "BCV" OR vPtaB = "COJ" OR vPtaB = "MIB" OR vPtaB = "TUR" OR vPtaB = "SRW" OR vPtaB = "PZL" OR  vPtaB = "CTE" OR vPtaB = "IMR" OR vPtaB = "CKB" OR vPtaB = "BMW" OR vPtaB = "CLP" OR vPtaB = "NOES" OR vPtaB = "SPGA" OR vPtaB = "SLN" OR vPtaB = "PTOP" OR vPtaB = "ENH" THEN                

        vGraProc = "JNU"

    ELSE

        vGraProc = vGraB    

    END IF

    VerificaLocalidades = vGraProc

END FUNCTION

 

variavelLocalidadeA = "IMR"

variavelLocalidadeB = "BCV"

 

QueryLimite = "SELECT * FROM Breno_A_04 WHERE DataAgendamento = '" & vDataAgend & "' AND SubGraA = '" & VerificaLocalidades(varaivelLocalidadeA,variavelLocalidadeB) & "'"

Compartilhar este post


Link para o post
Compartilhar em outros sites

isso mesmo....se você retornar pra função em forma de array vai ter que tratar os dados depois pra poder separar

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.