Ir para conteúdo

POWERED BY:

Arquivado

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

Ambrosio

Problema com variáveis!

Recommended Posts

Galera...

eu ja tinha feito outro tópico, mas tava esquisita a forma que eu formulei a minha pergunta e tava fazendo confusões.

Aqui eu pus o código certinho e preciso de uma ajuda.

 

<%//calculo dados Máquina 4	SET ds_4 = CON.execute("SELECT SUM(tempo) AS tt FROM dados WHERE maquina = '4 ")	if ds_4("tt") <> "" then des_4 = ds_4("tt") / 60 else des_4 = 0 end if	SET pd_4 = CON.execute("SELECT SUM(prod) AS pp FROM dados WHERE maquina = '4 ")	if pd_4("pp") <> "" then pro_4 = pd_4("tt") / 60 else pro_4 = 0 end if	total_4 = des_4 * pro_4//calculo dados Máquina 7	SET ds_7 = CON.execute("SELECT SUM(tempo) AS tt FROM dados WHERE maquina = '7 ")	if ds_7("tt") <> "" then des_7 = ds_7("tt") / 60 else des_7 = 0 end if	SET pd_7 = CON.execute("SELECT SUM(prod) AS pp FROM dados WHERE maquina = '7 ")	if pd_7("pp") <> "" then pro_7 = pd_7("tt") / 60 else pro_7 = 0 end if	total_7 = des_7 * pro_7%>

No ínicio do programa, eu rodo esses calculos

 

E nos links das maquinas onde eu chamo essa sub fica assim

 

<a href="dados.asp?action=ver_maquina&cod=4"><font color="#336699">Máquina 4</font> -   <a href="dados.asp?action=ver_maquina&cod=7"><font color="#336699">Máquina 7</font>

Ae eu tenho uma sub que vizualiza esses dados de acordo com a maquina escolhida

 

<%sub ver_maquinasCMaq = CStr(Request.QueryString("cod"))set CON = Server.CreateObject("ADODB.Connection")CON.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&maq_dbsql_machine = "SELECT * FROM maquinas WHERE codigo = '"&CMaq&"' "set RS_machine = CON.execute(sql_machine)desempenho = des_(((+CMaq)))producao = pro_(((+CMaq)))total = total_(((+CMaq)))%><p><b><font face="Verdana" size="2">Máquina: <%Response.Write CMaq%> - <%=RS_machine("maquina")%></font></b></p><p>Desempenho: <%Response.Write desempenho%><br>Produção: <%Response.Write producao%><br>Total: <%Response.Write total%>

O que eu to precisando é definir uma variável que completa outra variavel de acordo com o Request.QueryString.

 

No caso de eu ter selecionado por exemplo o link da maquina 4, deveria ser mostrados as variáveis des_4, pro_4 e total_4 no lugar das variaveis desempenho, producao e total respectivamente!

 

Como posso fazer isso?

 

Abraços.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se for somente as duas máquinas, você pode usar o if:

...If CMaq = 4 Then   desempenho = des_4   producao = pro_4   total = total_4ElseIf CMaq = 7   desempenho = des_7   producao = pro_7   total = total_7End If...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pensei em usar isso!Mas não sao somente 2 maquinasNem mesmo essa quantidade de calculosSao uns 20 resultados pra pouco mais de 30 maquinas!Tem alguma forma de faze-lo?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pensei em usar isso!Mas não sao somente 2 maquinasNem mesmo essa quantidade de calculosSao uns 20 resultados pra pouco mais de 30 maquinas!Tem alguma forma de faze-lo?

CaraO ideal numa situação como essa é você tentar identificar os padrões, ou seja, o que acontece sempre igual.. e criar uma função pra fazer isso, parametrizando o que mudar.No seu caso, analisando rapidamente, a função poderia receber como parametro a maquina e o calculo.. e retornar o resultado.Assim, na sua pagina você apenas recuperaria a maquina escolhida, e chamaria a função várias vezes para cada calculo. Fazendo isso dentro de um Loop, você conseguirá exibir as informações de todas as máquinas de forma genérica.Algo tipo assim:
Function CalculosMaquina(calculo, maquina)	Dim resultado, colunaBD, des, pro	Select Case calculo		Case "Desempenho"			colunaBD = "tt"		Case "Producao" 			colunaBD = "pp"		Case "Total"			des = CalculosMaquina("Desempenho", maquina)			pro = CalculosMaquina("Producao", maquina)			resultado = des * pro	End Select				SET rs = CON.execute("SELECT SUM(tempo) AS "& colunaBD &" FROM dados WHERE maquina = '"& maquina)	if rs(colunaBD) <> "" then resultado = rs(colunaBD) / 60 else resultado = 0 end if			CalculosMaquina = resultadoEnd Function
E na página, após recuperar a maquina selecionada, na hora de exibir os resultados, faz assim:
desempenho = CalculosMaquina("Desempenho",CMaq)producao = CalculosMaquina("Producao",CMaq)total = CalculosMaquina("Total",CMaq)
Mais ou menos isso.. fazendo uma função e usando recursão pra economizar código, você consegue resolver pros exemplos que você postou. Porém se você tiver mais calculos, ou se tiver algum calculo que seja diferente do que você postou, você vai precisar adaptar a função, seguindo a idéia.você pode passar direto a coluna do Banco de Dados como parametro tb se achar melhor.. eu criei os termos Desempenho, Producao e Total, apenas pra ficar mais legivel.. e deixar as colunas encapsuladas na função.AbraçoCassiano.

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.