# VMdiView

Un objeto de esta clase representa a una de las vistas centrales de la ventana principal. Algunas de las funciones solo están disponibles cuando el boot-mode de la [VMainWindow](https://doc.velneo.com/27/velneo-vdevelop/scripts/lenguajes/javascript/clases/vmainwindow) es MDI.

Se puede coger el [VRoot](https://doc.velneo.com/27/velneo-vdevelop/scripts/lenguajes/javascript/clases/vroot) que contiene la vista si no es una vista genérica.

## Funciones

**Generales**

| Retorno                                                                                        | Función                           |
| ---------------------------------------------------------------------------------------------- | --------------------------------- |
| [Widget](https://doc.velneo.com/27/velneo-vdevelop/scripts/lenguajes/javascript/clases/widget) | [centralWidget](#centralwidget)() |
| Number                                                                                         | [type](#type)()                   |

**Genéricas de ventana**

| Retorno | Función                                        |
| ------- | ---------------------------------------------- |
| void    | [close](#close)()                              |
| Number  | [height](#height)()                            |
| void    | [hide](#hide)()                                |
| Boolean | [isVisible](#isvisible)()                      |
| void    | [repaint](#repaint)()                          |
| void    | [setFocus](#setfocus)()                        |
| void    | [setStyleSheet](#setstylesheet)( String szSS ) |
| void    | [setTitle](#settitle)( String szTitle )        |
| void    | [show](#show)()                                |
| String  | [styleSheet](#stylesheet)()                    |
| String  | [title](#title)()                              |
| void    | [update](#update)()                            |
| Number  | [width](#width)()                              |
| Number  | [x](#x)()                                      |
| Number  | [y](#y)()                                      |

**Funcionales sólo en MDI**

| Retorno | Función                                            |
| ------- | -------------------------------------------------- |
| Boolean | [isMaximized](#ismaximized)()                      |
| Boolean | [isMinimized](#isminimized)()                      |
| void    | [lower](#lower)()                                  |
| void    | [move](#move)( Number x, Number y )                |
| void    | [raise](#raise)()                                  |
| void    | [resize](#resize)( Number nWidth, Number nHeight ) |
| void    | [showMaximized](#showmaximized)()                  |
| void    | [showMinimized](#showminimized)()                  |
| void    | [showNormal](#shownormal)()                        |

**De sólo vistas de datos**

| [VRoot](https://doc.velneo.com/27/velneo-vdevelop/scripts/lenguajes/javascript/clases/vroot) | [root](#root)() |
| -------------------------------------------------------------------------------------------- | --------------- |

## Enumeraciones

**Tipos de vistas**

* TypeGeneric = 0
* TypeForm = 1
* TypeGrid = 2
* TypeSlot = 3
* TypeTree = 4
* TypeMultiView = 5
* TypeMultiViewTree = 6
* TypeFormBlock = 7
* TypeReportPreview = 8
* TypeViewFlow = 10
* TypeListAlternador = 11
* TypeComboView = 12
* TypeListView = 13
* TypeQmlList = 14
* TypeAdvancedGrid = 15
* TypeQmlForm = 16

## Documentación de funciones

### Funciones generales

#### Widget centralWidget() <a href="#centralwidget" id="centralwidget"></a>

Devuelve el [widget](https://doc.velneo.com/27/velneo-vdevelop/scripts/lenguajes/javascript/clases/widget) incrustado dentro de la vista.

#### Number type() <a href="#type" id="type"></a>

Devuelve el tipo de vista. Ver enum de tipos de vistas.

### Funciones genéricas de ventana

#### void close() <a href="#close" id="close"></a>

Cierra la ventana.

#### Number height() <a href="#height" id="height"></a>

Devuelve el alto en píxeles de la ventana.

#### void hide() <a href="#hide" id="hide"></a>

Oculta la vista.

#### Boolean isVisible() <a href="#isvisible" id="isvisible"></a>

Devuelve true si la vista está visible.

#### void repaint() <a href="#repaint" id="repaint"></a>

Fuerza el repintado de la ventana salvo que esté oculta o las actualizaciones desactivadas.

#### void setFocus() <a href="#setfocus" id="setfocus"></a>

Fija el foco en la ventana.

#### void setStyleSheet( String szSS ) <a href="#setstylesheet" id="setstylesheet"></a>

Cambia el script CSS que se aplicará a la vista.

Parámetros:

* szCSS: texto del script CSS.

#### void setTitle( String szTitle ) <a href="#settitle" id="settitle"></a>

Cambia el título de la ventana.

Parámetros:

* szTitle: texto del título de la ventana.

#### void show() <a href="#show" id="show"></a>

Hace visible la vista.

#### String styleSheet() <a href="#stylesheet" id="stylesheet"></a>

Devuelve el script CSS que se está aplicando a la vista.

#### String title() <a href="#title" id="title"></a>

Devuelve el título de la ventana.

#### void update() <a href="#update" id="update"></a>

Actualiza la ventana. No produce un repintado inmediato para reducir el flicker.

#### Number width() <a href="#width" id="width"></a>

Devuelve el ancho en píxeles de la ventana.

#### Number x() <a href="#x" id="x"></a>

Devuelve la posición x de la ventana en píxeles.

#### Number y() <a href="#y" id="y"></a>

Devuelve la posición y de la ventana en píxeles.

### Funciones de sólo en MDI

#### Boolean isMaximized() <a href="#ismaximized" id="ismaximized"></a>

Devuelve true si la ventana está maximizada.

#### Boolean isMinimized() <a href="#isminimized" id="isminimized"></a>

Devuelve true si la ventana está minimizada.

#### void lower() <a href="#lower" id="lower"></a>

Coloca la ventana en la posición más baja de la pila de ventanas.

#### void move( Number x, Number y ) <a href="#move" id="move"></a>

Mueve la ventana a la posición x, y.

Parámetros:

* x: posición horizontal en píxeles de la esquina superior izquierda de la ventana.
* y: posición vertical en píxeles de la esquina superior izquierda de la ventana.

#### void raise() <a href="#raise" id="raise"></a>

Coloca la ventana en la posición más alta de la pila de ventanas.

#### void resize( Number nWidth, Number nHeight ) <a href="#resize" id="resize"></a>

Modifica el tamaño de la ventana.

Parámetros:

* nWidth: nuevo ancho en píxeles de la ventana.
* nHeight: nuevo alto en píxeles de la ventana.

#### void showMaximized() <a href="#showmaximized" id="showmaximized"></a>

Muestra la ventana maximizada.

#### void showMinimized() <a href="#showminimized" id="showminimized"></a>

Muestra la ventana minimizada.

#### void showNormal() <a href="#shownormal" id="shownormal"></a>

Muestra la ventana normal.

### Funciones de sólo vistas de datos

#### VRoot root() <a href="#root" id="root"></a>

Devuelve un objeto de la clase [VRoot](https://doc.velneo.com/27/velneo-vdevelop/scripts/lenguajes/javascript/clases/vroot) que representa a la vista dentro de la ventana.

## Ejemplos

### 1. Analiza del contenido de la vista actual

```javascript
///////////////////////////////////////////////////////////
// Ejemplo de análisis del contenido de la vista en curso

// Se obtiene la vista en curso
var view = theMainWindow.currentView();

if ( view )
{
    // Cogemos el objeto "root" de la vista
    var root = view.root();

    if ( r / oot )
    {
        // Cogemos el contenido del root: ficha, lista o ninguno
        var rootContent = root.content();

        if ( rootContent )
        {
            if ( root.objectInfo().inputType() == VObjectInfo.IORecord )
            {
                // Si el contenido es un registro
                alert( "Contenido: ficha del registro " + rootContent.fieldToString( "ID" ) + " - " + rootContent.fieldToString( "NAME" ) );
            }
            else if ( root.objectInfo().inputType() == VObjectInfo.IOList )
            {
                // Si el contenido es una lista
                alert( "Contenido: lista de " + rootContent.listSize() + " registros de la tabla " + rootContent.tableInfo().name() );
            }
        }
        else
            alert( "Contenido ninguno" );
    }
    else
        alert( "No es vista de datos" );
}
else
    alert( "No hay ninguna vista" );
```
