Array de VBScript a JavaScript
Publicado por Rubinenca (2 intervenciones) el 09/06/2014 21:05:23
Hola,
Hace días que le estoy dando vueltas y no consigo que me salga, estoy desesperada, espero me puedan ayudar.
Tengo una web en ASP donde hemos quitado los componentes Flash que generaban los gráficos para incorporar esta funcionalidad mediante una librería JavaScript.
En una misma página ASP se leen unos ficheros de texto, se guardan los datos en unos arrays y estos se deben pasar a las funciones javascript. Todo esto no está en una función, ya que dependiendo de las opciones del menú seleccionadas se leen unos ficheros o otros. Es un código muy extenso.
En estas variables LisOp, LisCo, LisVo tengo los datos. El problema es cuando quiero pasar esta información a javascript:
En el ejemplo he dejado unos valores fijos para que se vea como se pasan a la función addRow, pero aquí deben estar los arrays creados en visual basic script LisOp, LisVo, LisCo. Con los valores fijos me funciona sin problemas. A continuación detallo algunos ejemplos de código que hice justo en la parte de la función JavaScript addRow para añadir los datos en la gráfica:
He probado la función VBArray(arrayObj).toArray(); pero me da error y no me crea las gráficas:
He probado de hacer el bucle del for en VBScript dentro de la función draw() pero tampoco funciona:
¿Alguna idea? ¿Cómo tengo que hacerlo?
Necesito vuestra ayuda urgentemente.
Muchas gracias por todo.
Hace días que le estoy dando vueltas y no consigo que me salga, estoy desesperada, espero me puedan ayudar.
Tengo una web en ASP donde hemos quitado los componentes Flash que generaban los gráficos para incorporar esta funcionalidad mediante una librería JavaScript.
En una misma página ASP se leen unos ficheros de texto, se guardan los datos en unos arrays y estos se deben pasar a las funciones javascript. Todo esto no está en una función, ya que dependiendo de las opciones del menú seleccionadas se leen unos ficheros o otros. Es un código muy extenso.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<%@ LANGUAGE="VBSCRIPT" %>
<%
···
ReDim LisOp(numop) 'Array Op
ReDim LisCo(numop) 'Array Co
ReDim LisVo(numop) 'Array Vo
aux = opciones
for i = 1 to numop
p = InStr(aux,",")
if p > 0 Then
LisOp(i - 1) = Left(aux,(p - 1))
aux = Right(aux,(Len(aux) - p))
else
LisOp(i - 1) = aux
aux = ""
end if
Next
···
%>
En estas variables LisOp, LisCo, LisVo tengo los datos. El problema es cuando quiero pasar esta información a javascript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" content="text/html; charset=iso-8859-1">
<META HTTP-EQUIV="refresh" CONTENT="<%= TieRefresco%>">
<script type="text/javascript" src="http://www.google.com/jsapi"></script>
<script language="JavaScript">
google.load('visualization', '1', {'packages': ['table', 'corechart']});
google.setOnLoadCallback(draw);
function draw() {
var options = {title: '',
legend: {position: "none"},
hAxis: {textStyle: {color: 'black', fontName: 'Arial Black', size:16}}
};
//create data table object
var datat = new google.visualization.DataTable(); //DataTable Roles
//define columns
datat.addColumn('string','<%=tOpciones%>'); // Implicit domain column.
datat.addColumn('number', '<%=tVotos%>'); // Implicit data column.
datat.addColumn({type: 'string', role: 'style'});
datat.addColumn({type: 'string', role: 'annotation'});
for (var i = 0; i < <%=numop%>-1; i++) {
datat.addRow(['OP1', 450, 'color: green', '450']);
}
···
</script>
</HEAD>
<BODY>
···
En el ejemplo he dejado unos valores fijos para que se vea como se pasan a la función addRow, pero aquí deben estar los arrays creados en visual basic script LisOp, LisVo, LisCo. Con los valores fijos me funciona sin problemas. A continuación detallo algunos ejemplos de código que hice justo en la parte de la función JavaScript addRow para añadir los datos en la gráfica:
He probado la función VBArray(arrayObj).toArray(); pero me da error y no me crea las gráficas:
1
2
3
4
5
6
7
8
9
var arrayObj;
var jsArray;
arrayObj = LisOp
jsArray = VBArray(arrayObj).toArray();
for (var i = 0; i < <%=numop%>-1; i++) {
datat.addRow([jsArray[i], 450, 'color: green', '450']);
}
He probado de hacer el bucle del for en VBScript dentro de la función draw() pero tampoco funciona:
1
2
3
<%for i = 0 to numop%>
datat.addRow([<%=LisOp(i)%>, <%=LisVo(i)%>, <%=LisCo(i)%>,<%=LisVo(i)%>])
<%next%>
¿Alguna idea? ¿Cómo tengo que hacerlo?
Necesito vuestra ayuda urgentemente.
Muchas gracias por todo.
Valora esta pregunta


0