Tablas STMT

Este post muestra la integración de las tablas en la librería STMT. También la posibilidad de trabajar con conjuntos de símbolos.

STMT incluye una nueva variable llamada CarpetaTablas donde se mapea la carpeta Views de Visual Chart. Esta variable da acceso a las tablas contenidas en la carpeta y a las subcarpetas.

Tablas

La aplicación adjunta muestra todas las tablas de Visual Chart y los símbolos contenidos en ellas.

Veamos cómo funciona todo. Como siempre, hay que agregar una referencia a la librería STMT y crear, en la ventana de la aplicación creada, una variable de tipo VisualChart:

private VisualChart visualChart;

La ventana tiene un control en árbol para mostrar las carpetas y subcarpetas, un control de lista para las tablas de la carpeta seleccionada y otro control de tipo lista para los símbolos que contiene la tabla seleccionada.

Para rellenar el árbol con las carpetas basta el código siguiente:

CarpetaTablas carpeta = visualChart.CarpetaTablas;
TreeNode nodo = TreeCarpetas.Nodes.Add(carpeta.Nombre);
nodo.Tag = carpeta;

TreeCarpetas.SelectedNode = nodo;
ProcesarSubcarpetas(carpeta, nodo);

Donde ProcesarSubcarpetas es:

private void ProcesarSubcarpetas(CarpetaTablas carpeta, TreeNode nodo)
{
   foreach (CarpetaTablas subcarpeta in carpeta.Carpetas)
   {
      TreeNode subnodo = nodo.Nodes.Add(subcarpeta.Nombre);
      subnodo.Tag = subcarpeta;

      ProcesarSubcarpetas(subcarpeta, subnodo);
   }
}

Lo importante es que visualChart.CarpetaTablas da acceso a la carpeta Views de Visual Chart y, desde ahí, podemos obtener las tablas que contiene a través de la variable Tablas y a las subcarpetas a través de la variable Carpetas.

Aunque no se muestra en el ejemplo, se puede acceder a las tablas y carpetas por nombre y por posición, como en este código:

CarpetaTablas madrid = visualChart.CarpetaTablas["Madrid Stock Exchange"];
int numeroTablas = madrid.Tablas.Count;
for (int i = 0; i < numeroTablas; i++)
{
   Tabla tabla = madrid.Tablas[i];
   ...
}

Tabla comunicaciones = madrid.Tablas["Comunicaciones"];
foreach (string simbolo in comunicaciones)
{
   ...
}

Volviendo a la aplicación, cuando cambia la carpeta seleccionada en el árbol, se obtiene la CarpetaTablas asociada al nodo y se rellenan los controles de lista con su contenido:

private void TreeCarpetas_AfterSelect(object sender, TreeViewEventArgs e)
{
   ListBoxTablas.Items.Clear();
   ListBoxSimbolos.Items.Clear();

   CarpetaTablas carpeta = (CarpetaTablas)e.Node.Tag;
   foreach (Tabla tabla in carpeta.Tablas)
   {
      ListBoxTablas.Items.Add(tabla.Nombre);
   }

   if (ListBoxTablas.Items.Count > 0)
      ListBoxTablas.SelectedIndex = 0;
}

Se limpian los controles de lista, se rellena el control de las tablas y se selecciona la primera tabla. Al seleccionar un elemento en el control de las tablas, se ejecuta el siguiente código:

private void ListBoxTablas_SelectedIndexChanged(object sender, EventArgs e)
{
   ListBoxSimbolos.Items.Clear();

   CarpetaTablas carpeta = (CarpetaTablas)TreeCarpetas.SelectedNode.Tag;
   string nombre = (string)ListBoxTablas.SelectedItem;
   Tabla tabla = carpeta.Tablas[nombre];
   if (tabla != null)
   {
      foreach (string simbolo in tabla)
      {
         ListBoxSimbolos.Items.Add(simbolo);
      }
   }
}

De este modo, se muestran los símbolos de la tabla seleccionada en el control de lista de las tablas. Aquí vemos como acceder a la tabla de un objeto CarpetaTablas a través del nombre de la tabla (el que se muestra en el control de lista de las tablas) y como recorrer los símbolos de la tabla.

También se dispone de otra nueva variable en VisualChart, ConjuntoSimbolos, para definir conjuntos de símbolos fácilmente:

visualChart.ConjuntoSimbolos.Crear(tabla.Nombre, tabla.Consulta);
ConjuntoSimbolos conjunto = visualChart.ConjuntoSimbolos[tabla.Nombre];
int count = conjunto.Simbolos.Count;

El código anterior crea un conjunto de símbolos asociado al nombre que tiene la tabla y con los símbolos de la consulta de la tabla. Después de crear el conjunto, accedemos a él a través del nombre que se le dio (el mismo que la tabla aunque podrías ser un cualquiera) y, con la variable Simbolos obtenemos sus símbolos (se hace la consulta de la tabla).

Si queremos usar los símbolos de la tabla sin hacer la consulta, se puede definir un conjunto así:

visualChart.ConjuntoSimbolos.Crear(tabla.Nombre, tabla);

También se pueden mezclar símbolos en la definición:

visualChart.ConjuntoSimbolos.Crear("Mis Simbolos", tabla.Consulta, "010072MFXI");

Es posible incluso pasar la ruta de un archivo vct de una tabla de Visual Chart.

¿Qué podemos hacer con estos conjuntos de símbolos?

Aparte de usarlos como eso, conjuntos de símbolos asociados a un nombre, se pueden usar en operaciones de tiempo real:

visualChart.TiempoReal.MonitorizarCampo(conjunto, Campo.Ultimo);
visualChart.TiempoReal.DetenerMonitorizacionCampos(conjunto);

Esto es todo por hoy ¿Qué os parece?

Archivo Zip Descargar STMT 0.1.3.zip.

Archivo Zip Descargar C# Tablas.zip.

Archivo Zip Descargar VB .NET Tablas_vb.zip.

Si te ha gustado la entrada, considera hacer una donación Donar. ¿Por qué donar?

Esta entrada fue publicada en Programación, Visual Chart y etiquetada . Guarda el enlace permanente.

Deja un comentario