Foros del Web » Programando para Internet » Javascript »

Pasar de VBScript a JavaScript

Estas en el tema de Pasar de VBScript a JavaScript en el foro de Javascript en Foros del Web. Hola a todos... tengo el siguiente código dentro de un ASP llamado opc.asp Código PHP: < HTML > < HEAD > < TITLE > APP  ...
  #1 (permalink)  
Antiguo 30/01/2006, 11:04
Avatar de josemari11  
Fecha de Ingreso: agosto-2004
Ubicación: Fuenlabrada (Madrid)
Mensajes: 95
Antigüedad: 19 años, 8 meses
Puntos: 0
Pasar de VBScript a JavaScript

Hola a todos... tengo el siguiente código dentro de un ASP llamado opc.asp
Código PHP:
<HTML>
<
HEAD>
<
TITLE>APP :: Menu de opciones</TITLE>
<
link rel="stylesheet" href="estilos.css">
<
SCRIPT language="vbscript">
sub Fechas(fInicial,fFinal)
f=document.Form.dateField.value
p
=document.miForm.periodo.value
sub saltoVentas
()
    
Fechas fInicial,fFinal
    parent
.principal.location="clientes/ventas.asp?fechaI=" fInicial "&fechaF=" fFinal
end sub 
</SCRIPT>
 
(RESUMIDO) y luego un enlace que hace lo siguiente:
Código PHP:
<A HREF="#" onClick="saltoVentas">Ventas</A
Además de un conjunto de marcos en el index.asp definidos...
Código PHP:
<FRAMESET COLS="225,*" bordercolor="#000000">
  <
FRAME SRC="opc.asp" name=lista noresize>
  <
FRAME SRC="principal.asp" name=principal noresize>
</
FRAMESET>
<
NOFRAMES>
Necesito frames...
</
NOFRAMES
Pues resulta que necesito que me funcione en Mozilla y este navegador no soporta el vbscript. ¿QUÉ PUEDO HACER?

GRAAAAACIAS
  #2 (permalink)  
Antiguo 30/01/2006, 16:48
Avatar de dogduck  
Fecha de Ingreso: enero-2006
Ubicación: ¿Atlantida, Hesperides, Islas afortunadas?
Mensajes: 2.231
Antigüedad: 18 años, 4 meses
Puntos: 19
No lo he probado , así que puede que tenga error ...
Código:
<SCRIPT language="JavaScript"> 
//sub Fechas(fInicial,fFinal) 
function Fechas(fInicial,fFinal) {
f=document.Form.dateField.value 
p=document.miForm.periodo.value 
//end sub
} //end function
//sub saltoVentas() 
function saltoVentas(){
    Fechas(fInicial,fFinal);
    principal.location="clientes/ventas.asp?fechaI="+fInicial+"&fechaF="+fFinal 
//end sub  
}//end function
</SCRIPT>
  #3 (permalink)  
Antiguo 31/01/2006, 02:42
Avatar de josemari11  
Fecha de Ingreso: agosto-2004
Ubicación: Fuenlabrada (Madrid)
Mensajes: 95
Antigüedad: 19 años, 8 meses
Puntos: 0
De acuerdo

¡Muchas gracias! En cuanto llegue a casa lo pruebo y ya posteo si acaso no funciona...

Hasta luego.
  #4 (permalink)  
Antiguo 31/01/2006, 07:50
Avatar de josemari11  
Fecha de Ingreso: agosto-2004
Ubicación: Fuenlabrada (Madrid)
Mensajes: 95
Antigüedad: 19 años, 8 meses
Puntos: 0
Pues me parece que no funciona. Si puedes y me haces el favor, te paso el documento por email, le echas un vistazo y si acaso lo modificas. Yo he estado haciendo cambios, pero no me hace nada, ni en iexplorer ni en mozilla al poner eso.

¿Me harías ese favor? Gracias.
  #5 (permalink)  
Antiguo 31/01/2006, 07:57
Avatar de dogduck  
Fecha de Ingreso: enero-2006
Ubicación: ¿Atlantida, Hesperides, Islas afortunadas?
Mensajes: 2.231
Antigüedad: 18 años, 4 meses
Puntos: 19
Hombre no se trata de eso . Esto es un foro y de lo que se trata es de compartir y de aprender . Con lo que te contesté solo te daba una pista de como pasar un procedimiento en vbs a una funcion en js ... Yo no soy un guru ni de JS ni de VBS, estoy aprendiendo , ni trabajo por encargo .Así que Postea el documento , y si incluye altos secretos los "disimulas" , por ejemplo una ip o una user:password , no tiene por que ser el real ...
Seguro que entre todos , hay alguien que te puede ayudar
. También puedes postear en el foro "otras tecnologias" que incluye vbs

Suerte
  #6 (permalink)  
Antiguo 31/01/2006, 08:16
Avatar de josemari11  
Fecha de Ingreso: agosto-2004
Ubicación: Fuenlabrada (Madrid)
Mensajes: 95
Antigüedad: 19 años, 8 meses
Puntos: 0
Ok, si lo que iba a hacer es eso, postear el código, no hay absolutamente nada que deba ocultar, así que allá va la parte donde está el script de vbs:

<SCRIPT language="vbscript">
sub Fechas(fInicial,fFinal)
f=document.Form.dateField.value
p=document.miForm.periodo.value
if p="Intervalo" then
fInicial=document.miForm.fInicial.value
fFinal=document.miform.fFinal.value
end if
if p="Diario" then
fInicial=Day(f) & "/" & Month(f) & "/" & Year(f)
fFinal=Day(DateAdd("d",1,f)) & "/" & Month(DateAdd("d",1,f)) & "/" & Year(DateAdd("d",1,f))
//msgBox "Diario del " & fInicial & " al " & fFinal
end if
if p="Semanal" then
diaSemana=datepart("w",f,vbMonday)-1
fInicial=Day(dateadd("d",diaSemana*-1,f)) & "/" & Month(dateadd("d",diaSemana*-1,f)) &"/"& Year(dateadd("d",diaSEmana*-1,f))
fFinal=Day(dateadd("d",7,fInicial)) & "/" & Month(dateadd("d",7,fInicial)) &"/"& Year(dateadd("d",7,fInicial))
//msgBox "Semanal del " & fInicial & " al " & fFinal
end if
if p="Mensual" then
fInicial="1/" & Month(f) & "/" & Year(f)
fFinal="1/" & Month(DateAdd("m",1,f)) & "/" & Year(DateAdd("m",1,f))
//msgBox "Mensual del " & fInicial & " al " & fFinal
end if
if p="Trimestral" then
mes= month(f)
if mes=1 or mes=2 or mes= 3 then
fInicial="1/1/" & Year(f)
fFinal="1/4/" & Year(f)
end if
if mes=4 or mes=5 or mes=6 then
fInicial="1/4/" & Year(f)
fFinal ="1/7/" & Year(f)
end if
if mes=7 or mes=8 or mes=9 then
fInicial="1/7/" & Year(f)
fFinal="1/10/" & Year(f)
end if
if mes=10 or mes=11 or mes=12 then
fInicial="1/10/" & Year(f)
fFinal="1/1/" & Year(dateadd("m",12,f))
end if
//msgBox "Trimestral del " & fInicial & " al " & fFinal
end if
if p="Anual" then
fInicial="1/1/" & Year(f)
fFinal="1/1/" & Year(DateAdd("m",12,f))
//msgBox "Anual del " & fInicial & " al " & fFinal
end if
end sub

sub saltoPortes()
Fechas fInicial,fFinal
parent.principal.location="proveedores/portes.asp?sqlWhere=WHERE%20'" & fInicial & "'<=%20pro2002f.fecha%20AND%20pro2002f.fecha<' " & fFinal & "' "
end sub

sub saltoCuotas()
Fechas fInicial,fFinal
parent.principal.location="proveedores/cuotas.asp?sqlWhere=WHERE%20'" & fInicial & "'<=%20pro2002f.fecha%20AND%20pro2002f.fecha<' " & fFinal & "'"
end sub

sub saltoVentas()
Fechas fInicial,fFinal
parent.principal.location="clientes/ventas.asp?fechaI=" & fInicial & "&fechaF=" & fFinal
end sub

sub saltoPresupuestos()
Fechas fInicial,fFinal
parent.principal.location="clientes/presupuestos.asp?fechaI=" & fInicial & "&fechaF=" & fFinal
end sub

sub saltoInexistencias()
Fechas fInicial,fFinal
parent.principal.location="clientes/inexistencias.asp?fechaI=" & fInicial & "&fechaF=" & fFinal
end sub

sub saltoProveedoresFacturas()
Fechas fInicial,fFinal
parent.principal.location="proveedores/facturas.asp?sqlWhere=WHERE%20'" & fInicial & "'<=%20fecha%20AND%20fecha<'" & fFinal & "'"
end sub

sub saltoImportar()
Fechas fInicial,fFinal
parent.principal.location="proveedores/importar.asp?sqlWhere=WHERE%20'" & fInicial & "'<=%20fecha%20AND%20fecha<'" & fFinal & "'"
end sub

sub saltoProveedoresExistencias()
Fechas fInicial,fFinal
parent.principal.location="proveedores/existencias.asp?sql=AND+'" & fInicial & "'<=%20fecha%20AND%20fecha<'" & fFinal & "'"
end sub

</SCRIPT>


Luego, dentro del body tengo el "Form"
<form name="Form">
<input type="hidden" name="dateField" value="<%= Date() %>">
</form>


Y otro miform, que no tiene mayor historia tampoco. Y luego los links de este estilo:
<li><A HREF="#" onClick="saltoVentas">Ventas</A></li>
<li><A HREF="#" onClick="saltoInexistencias">Inexistencias</A></li>
<li><A HREF="#" onClick="saltoPresupuestos">Presupuestos</A></li>
  #7 (permalink)  
Antiguo 31/01/2006, 08:40
Avatar de dogduck  
Fecha de Ingreso: enero-2006
Ubicación: ¿Atlantida, Hesperides, Islas afortunadas?
Mensajes: 2.231
Antigüedad: 18 años, 4 meses
Puntos: 19
Pués verás :

Los

sub loquesea()
...
end sub


los puedes sustituir por funciones en javascript

function loquesea(){ ....}
los & que indican concatenación de strings en vbs lo puedes sustituir por +en js

las variables las declaras e inicializas con la palabra reservada var
despues puedes referirte a ellas sin var

la fechas y tiempos en js:

//obtienes la fecha y hora de el sistema de el lado del cliente
var fecha=new Date();
var anno=fecha.getFullYear();
var mes=fecha.getMonth()+1;
var dia=fecha.getDate();
var hora=fecha.getHours();
var minutos=fecha.getMinutes();
var segundos=fecha.getSeconds();
....

El condicional en js por ejmplo
if (p=="diario") { ...} else { ...}
o si p es distinto
if (p!="otracosa"){...} else {...}
...
Te recomiendo la FAQ

Suerte
  #8 (permalink)  
Antiguo 31/01/2006, 08:47
Avatar de josemari11  
Fecha de Ingreso: agosto-2004
Ubicación: Fuenlabrada (Madrid)
Mensajes: 95
Antigüedad: 19 años, 8 meses
Puntos: 0
Gracias, voy a ver que puedo hacer...
  #9 (permalink)  
Antiguo 31/01/2006, 09:19
Avatar de josemari11  
Fecha de Ingreso: agosto-2004
Ubicación: Fuenlabrada (Madrid)
Mensajes: 95
Antigüedad: 19 años, 8 meses
Puntos: 0
Hola de nuevo, espero que también tardes poco en contestarme, como antes (gracias por ello). Estoy pasando el código de un lenguaje a otro y me encuentro con este problema:
Llevo esto
function Fechas(fInicial,fFinal) {
var f=document.Form.dateField.value
var p=document.miForm.periodo.value
alert('Fecha: '+f+' - '+p)

y como p por defecto esta en mensual, solo estoy intentando esto otro:
if (p=="Mensual") {
fInicial="1/"+(f.getMonth())+"/"+(f.getYear());
fFinal="1/"+(f.getMonth())+"/"+(f.getYear());
alert('Mensual del '+fInicial+' al '+fFinal);
}

pero me da error. Dice que getMonth no es una función.
En la parte de cada función de enlace onclick he puesto esto (en la que estoy probando):
function saltoPortes(){
var fInicial,fFinal;
Fechas(fInicial,fFinal);
principal.location="proveedores/portes.asp?sqlWhere=WHERE%20'"+fInicial+"'<=%20pro 2002f.fecha%20AND%20pro2002f.fecha<'"+fFinal+"' "
}


Otra vez te pido tu genial ayuda. Gracias.
  #10 (permalink)  
Antiguo 31/01/2006, 09:51
Avatar de dogduck  
Fecha de Ingreso: enero-2006
Ubicación: ¿Atlantida, Hesperides, Islas afortunadas?
Mensajes: 2.231
Antigüedad: 18 años, 4 meses
Puntos: 19
Lo 1º ¿ Para que necesitas pasarle 2 parametros a la funcion Fechas , si no los usas para condicionar el valor de nada ...

Prueba con esto, por lo que veo f y p deben de ser de tipo date (fecha):

var f = new Date(document.form.datefield.value);
var p = new Date(document.miForm.periodo.value);

Lo que no entiendo es que si f y p son del tipo date lo comparas con un String en if (p=="Mensual") ¿ No será Mensual otra variable de tipo Date o de tipo string ?

Si es date contra string:if (p.getMonth()==Mensual) {...}
y si es date contra date: if (p.getMonth()==Mensual.getMonth()){...}

...

Oye eso de genial ayuda suena o a peloteo o a sarcasmo ...
  #11 (permalink)  
Antiguo 31/01/2006, 10:19
Avatar de josemari11  
Fecha de Ingreso: agosto-2004
Ubicación: Fuenlabrada (Madrid)
Mensajes: 95
Antigüedad: 19 años, 8 meses
Puntos: 0
Lo primero lo de la ayuda, lo digo en serio, muchas gracias. Te cuento otra vez, el valor de miForm.periodo es un string (Semanal, Mensual, Diario, ...)

Entonces... ¿cuál es el problema después de meter este código que me has pasado? Pues te cuento, el campo dateField de Form contiene la fecha estilo "31/01/2006" y cuando he puesto este último código:
var f = new Date(document.Form.dateField.value);
var p = document.miForm.periodo.value;
var d=f.getDay()
var m=(f.getMonth()+1)
var y=f.getYear()
alert('Fecha: '+d+'/'+m+'/'+y+' - '+p)


Me dice que estamos a "2/7/2008", así que creo que esta forma no nos vale. Por lo de "p" no me preocupo, porque al ser un string, me lo hace bien, se mete en el IF de "mensual" y ahí es donde me casca.

Es más, he hecho otro alert de fInicial y fFinal en el procedimiento
function saltoPortes(){
var fInicial,fFinal;
Fechas(fInicial,fFinal);
alert('De '+fInicial+' a '+fFinal);
principal.location="proveedores/portes.asp?sqlWhere=WHERE%20'"+fInicial+"'<=%20pro 2002f.fecha%20AND%20pro2002f.fecha<'"+fFinal+"' "
}

y no me lo llega a mostrar, me dice "De undefined a undefined". ¿Tengo que hacer algún return en la función de Fechas?
A ver si conseguimos sacarlo. Gracias de nuevo.

Última edición por josemari11; 31/01/2006 a las 10:29
  #12 (permalink)  
Antiguo 31/01/2006, 10:37
Avatar de dogduck  
Fecha de Ingreso: enero-2006
Ubicación: ¿Atlantida, Hesperides, Islas afortunadas?
Mensajes: 2.231
Antigüedad: 18 años, 4 meses
Puntos: 19
Claro se nos olvidaba que se usa el formato anglo en las fechas .Me temo que tendrás que leer ...

http://www.forosdelweb.com/showthrea...856#post326199

yo que tu creaba una función intermedia para que me transformara de mm/dd/yyyy a dd/mm/yyyyy
function transforma(cadena){//cadena en formato dd/mm/yyyy
...//...tratamiento de strings ...
return lafecha; //lafecha seria una cadena en formato mm/dd/yyyy
}

y para llamarla :
var f = new Date(transforma(document.Form.dateField.value));

Seguro que si buscas la encuentras ya hecha...
Suerte
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:22.