FrameAppWS

<back to all web services

DefinicionQueryRQ

Requires Authentication
The following routes are available for this service:
All Verbs/Utilidades/Consultas/Listados/Definicion
<?php namespace dtos;

use DateTime;
use Exception;
use DateInterval;
use JsonSerializable;
use ServiceStack\{IReturn,IReturnVoid,IGet,IPost,IPut,IDelete,IPatch,IMeta,IHasSessionId,IHasBearerToken,IHasVersion};
use ServiceStack\{ICrud,ICreateDb,IUpdateDb,IPatchDb,IDeleteDb,ISaveDb,AuditBase,QueryDb,QueryDb2,QueryData,QueryData2,QueryResponse};
use ServiceStack\{ResponseStatus,ResponseError,EmptyResponse,IdResponse,ArrayList,KeyValuePair2,StringResponse,StringsResponse,Tuple2,Tuple3,ByteArray};
use ServiceStack\{JsonConverters,Returns,TypeContext};


// @DataContract
class Vista implements JsonSerializable
{
    public function __construct(
        // @DataMember
        /** @var float */
        public float $Codigo=0.0,

        // @DataMember
        /** @var float */
        public float $CodigoBlob=0.0,

        // @DataMember
        /** @var string|null */
        public ?string $Nombre=null,

        // @DataMember
        /** @var string|null */
        public ?string $Descripcion=null,

        // @DataMember
        /** @var string|null */
        public ?string $SQL=null,

        // @DataMember
        /** @var float */
        public float $CodigoTabla=0.0,

        // @DataMember
        /** @var string|null */
        public ?string $GuardarBinario=null,

        // @DataMember
        /** @var string|null */
        public ?string $TipoConsulta=null,

        // @DataMember
        /** @var string|null */
        public ?string $ExportacionDefault=null,

        // @DataMember
        /** @var string|null */
        public ?string $TipoExportacion=null,

        // @DataMember
        /** @var int */
        public int $ParametrosExportacion=0,

        // @DataMember
        /** @var string|null */
        public ?string $CodigoAyuda=null,

        // @DataMember
        /** @var string|null */
        public ?string $EjecutarEnAdm=null,

        // @DataMember
        /** @var string|null */
        public ?string $InfoAdicional=null,

        // @DataMember
        /** @var string|null */
        public ?string $EjecMultiempresa=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['Codigo'])) $this->Codigo = $o['Codigo'];
        if (isset($o['CodigoBlob'])) $this->CodigoBlob = $o['CodigoBlob'];
        if (isset($o['Nombre'])) $this->Nombre = $o['Nombre'];
        if (isset($o['Descripcion'])) $this->Descripcion = $o['Descripcion'];
        if (isset($o['SQL'])) $this->SQL = $o['SQL'];
        if (isset($o['CodigoTabla'])) $this->CodigoTabla = $o['CodigoTabla'];
        if (isset($o['GuardarBinario'])) $this->GuardarBinario = $o['GuardarBinario'];
        if (isset($o['TipoConsulta'])) $this->TipoConsulta = $o['TipoConsulta'];
        if (isset($o['ExportacionDefault'])) $this->ExportacionDefault = $o['ExportacionDefault'];
        if (isset($o['TipoExportacion'])) $this->TipoExportacion = $o['TipoExportacion'];
        if (isset($o['ParametrosExportacion'])) $this->ParametrosExportacion = $o['ParametrosExportacion'];
        if (isset($o['CodigoAyuda'])) $this->CodigoAyuda = $o['CodigoAyuda'];
        if (isset($o['EjecutarEnAdm'])) $this->EjecutarEnAdm = $o['EjecutarEnAdm'];
        if (isset($o['InfoAdicional'])) $this->InfoAdicional = $o['InfoAdicional'];
        if (isset($o['EjecMultiempresa'])) $this->EjecMultiempresa = $o['EjecMultiempresa'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->Codigo)) $o['Codigo'] = $this->Codigo;
        if (isset($this->CodigoBlob)) $o['CodigoBlob'] = $this->CodigoBlob;
        if (isset($this->Nombre)) $o['Nombre'] = $this->Nombre;
        if (isset($this->Descripcion)) $o['Descripcion'] = $this->Descripcion;
        if (isset($this->SQL)) $o['SQL'] = $this->SQL;
        if (isset($this->CodigoTabla)) $o['CodigoTabla'] = $this->CodigoTabla;
        if (isset($this->GuardarBinario)) $o['GuardarBinario'] = $this->GuardarBinario;
        if (isset($this->TipoConsulta)) $o['TipoConsulta'] = $this->TipoConsulta;
        if (isset($this->ExportacionDefault)) $o['ExportacionDefault'] = $this->ExportacionDefault;
        if (isset($this->TipoExportacion)) $o['TipoExportacion'] = $this->TipoExportacion;
        if (isset($this->ParametrosExportacion)) $o['ParametrosExportacion'] = $this->ParametrosExportacion;
        if (isset($this->CodigoAyuda)) $o['CodigoAyuda'] = $this->CodigoAyuda;
        if (isset($this->EjecutarEnAdm)) $o['EjecutarEnAdm'] = $this->EjecutarEnAdm;
        if (isset($this->InfoAdicional)) $o['InfoAdicional'] = $this->InfoAdicional;
        if (isset($this->EjecMultiempresa)) $o['EjecMultiempresa'] = $this->EjecMultiempresa;
        return empty($o) ? new class(){} : $o;
    }
}

// @DataContract
class Tabla implements JsonSerializable
{
    public function __construct(
        // @DataMember
        /** @var float */
        public float $Codigo=0.0,

        // @DataMember
        /** @var string|null */
        public ?string $Propietario=null,

        // @DataMember
        /** @var string|null */
        public ?string $Tipo=null,

        // @DataMember
        /** @var string|null */
        public ?string $Nombre=null,

        // @DataMember
        /** @var string|null */
        public ?string $Alias=null,

        // @DataMember
        /** @var string|null */
        public ?string $Descripcion=null,

        // @DataMember
        /** @var string|null */
        public ?string $ParaReportes=null,

        // @DataMember
        /** @var string|null */
        public ?string $CrearAlIniciar=null,

        // @DataMember
        /** @var int */
        public int $CampoEmpresa=0,

        // @DataMember
        /** @var int */
        public int $CampoUnico=0
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['Codigo'])) $this->Codigo = $o['Codigo'];
        if (isset($o['Propietario'])) $this->Propietario = $o['Propietario'];
        if (isset($o['Tipo'])) $this->Tipo = $o['Tipo'];
        if (isset($o['Nombre'])) $this->Nombre = $o['Nombre'];
        if (isset($o['Alias'])) $this->Alias = $o['Alias'];
        if (isset($o['Descripcion'])) $this->Descripcion = $o['Descripcion'];
        if (isset($o['ParaReportes'])) $this->ParaReportes = $o['ParaReportes'];
        if (isset($o['CrearAlIniciar'])) $this->CrearAlIniciar = $o['CrearAlIniciar'];
        if (isset($o['CampoEmpresa'])) $this->CampoEmpresa = $o['CampoEmpresa'];
        if (isset($o['CampoUnico'])) $this->CampoUnico = $o['CampoUnico'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->Codigo)) $o['Codigo'] = $this->Codigo;
        if (isset($this->Propietario)) $o['Propietario'] = $this->Propietario;
        if (isset($this->Tipo)) $o['Tipo'] = $this->Tipo;
        if (isset($this->Nombre)) $o['Nombre'] = $this->Nombre;
        if (isset($this->Alias)) $o['Alias'] = $this->Alias;
        if (isset($this->Descripcion)) $o['Descripcion'] = $this->Descripcion;
        if (isset($this->ParaReportes)) $o['ParaReportes'] = $this->ParaReportes;
        if (isset($this->CrearAlIniciar)) $o['CrearAlIniciar'] = $this->CrearAlIniciar;
        if (isset($this->CampoEmpresa)) $o['CampoEmpresa'] = $this->CampoEmpresa;
        if (isset($this->CampoUnico)) $o['CampoUnico'] = $this->CampoUnico;
        return empty($o) ? new class(){} : $o;
    }
}

// @DataContract
class Columna implements JsonSerializable
{
    public function __construct(
        // @DataMember
        /** @var float */
        public float $CodigoTabla=0.0,

        // @DataMember
        /** @var float */
        public float $Codigo=0.0,

        // @DataMember
        /** @var string|null */
        public ?string $Nombre=null,

        // @DataMember
        /** @var string|null */
        public ?string $Alias=null,

        // @DataMember
        /** @var string|null */
        public ?string $Descripcion=null,

        // @DataMember
        /** @var string|null */
        public ?string $TipoDato=null,

        // @DataMember
        /** @var string|null */
        public ?string $ObligatorioFormas=null,

        // @DataMember
        /** @var string|null */
        public ?string $Hint=null,

        // @DataMember
        /** @var string|null */
        public ?string $Mayuscula=null,

        // @DataMember
        /** @var int */
        public int $Tamano=0,

        // @DataMember
        /** @var int */
        public int $Escala=0,

        // @DataMember
        /** @var string|null */
        public ?string $Tipo=null,

        // @DataMember
        /** @var string|null */
        public ?string $VlrDefecto=null,

        // @DataMember
        /** @var string|null */
        public ?string $PermiteEditar=null,

        // @DataMember
        /** @var int */
        public int $Orden=0,

        // @DataMember
        /** @var string|null */
        public ?string $Dinamico=null,

        // @DataMember
        /** @var string|null */
        public ?string $ClaseControl=null,

        // @DataMember
        /** @var float */
        public float $JoinLookup=0.0,

        // @DataMember
        /** @var string|null */
        public ?string $EsID=null,

        // @DataMember
        /** @var string|null */
        public ?string $Mascara=null,

        // @DataMember
        /** @var string|null */
        public ?string $MostrarEnLista=null,

        // @DataMember
        /** @var string|null */
        public ?string $InfoAdicional=null,

        // @DataMember
        /** @var string|null */
        public ?string $WHEREDefecto=null,

        // @DataMember
        /** @var string|null */
        public ?string $TieneResumen=null,

        // @DataMember
        /** @var string|null */
        public ?string $FormatoResumen=null,

        // @DataMember
        /** @var string|null */
        public ?string $TipoResumen=null,

        // @DataMember
        /** @var string|null */
        public ?string $PosicionResumen=null,

        // @DataMember
        /** @var string|null */
        public ?string $ResumenEnGrupo=null,

        // @DataMember
        /** @var string|null */
        public ?string $ResumenEnTotal=null,

        // @DataMember
        /** @var int */
        public int $IndiceGrupo=0
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['CodigoTabla'])) $this->CodigoTabla = $o['CodigoTabla'];
        if (isset($o['Codigo'])) $this->Codigo = $o['Codigo'];
        if (isset($o['Nombre'])) $this->Nombre = $o['Nombre'];
        if (isset($o['Alias'])) $this->Alias = $o['Alias'];
        if (isset($o['Descripcion'])) $this->Descripcion = $o['Descripcion'];
        if (isset($o['TipoDato'])) $this->TipoDato = $o['TipoDato'];
        if (isset($o['ObligatorioFormas'])) $this->ObligatorioFormas = $o['ObligatorioFormas'];
        if (isset($o['Hint'])) $this->Hint = $o['Hint'];
        if (isset($o['Mayuscula'])) $this->Mayuscula = $o['Mayuscula'];
        if (isset($o['Tamano'])) $this->Tamano = $o['Tamano'];
        if (isset($o['Escala'])) $this->Escala = $o['Escala'];
        if (isset($o['Tipo'])) $this->Tipo = $o['Tipo'];
        if (isset($o['VlrDefecto'])) $this->VlrDefecto = $o['VlrDefecto'];
        if (isset($o['PermiteEditar'])) $this->PermiteEditar = $o['PermiteEditar'];
        if (isset($o['Orden'])) $this->Orden = $o['Orden'];
        if (isset($o['Dinamico'])) $this->Dinamico = $o['Dinamico'];
        if (isset($o['ClaseControl'])) $this->ClaseControl = $o['ClaseControl'];
        if (isset($o['JoinLookup'])) $this->JoinLookup = $o['JoinLookup'];
        if (isset($o['EsID'])) $this->EsID = $o['EsID'];
        if (isset($o['Mascara'])) $this->Mascara = $o['Mascara'];
        if (isset($o['MostrarEnLista'])) $this->MostrarEnLista = $o['MostrarEnLista'];
        if (isset($o['InfoAdicional'])) $this->InfoAdicional = $o['InfoAdicional'];
        if (isset($o['WHEREDefecto'])) $this->WHEREDefecto = $o['WHEREDefecto'];
        if (isset($o['TieneResumen'])) $this->TieneResumen = $o['TieneResumen'];
        if (isset($o['FormatoResumen'])) $this->FormatoResumen = $o['FormatoResumen'];
        if (isset($o['TipoResumen'])) $this->TipoResumen = $o['TipoResumen'];
        if (isset($o['PosicionResumen'])) $this->PosicionResumen = $o['PosicionResumen'];
        if (isset($o['ResumenEnGrupo'])) $this->ResumenEnGrupo = $o['ResumenEnGrupo'];
        if (isset($o['ResumenEnTotal'])) $this->ResumenEnTotal = $o['ResumenEnTotal'];
        if (isset($o['IndiceGrupo'])) $this->IndiceGrupo = $o['IndiceGrupo'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->CodigoTabla)) $o['CodigoTabla'] = $this->CodigoTabla;
        if (isset($this->Codigo)) $o['Codigo'] = $this->Codigo;
        if (isset($this->Nombre)) $o['Nombre'] = $this->Nombre;
        if (isset($this->Alias)) $o['Alias'] = $this->Alias;
        if (isset($this->Descripcion)) $o['Descripcion'] = $this->Descripcion;
        if (isset($this->TipoDato)) $o['TipoDato'] = $this->TipoDato;
        if (isset($this->ObligatorioFormas)) $o['ObligatorioFormas'] = $this->ObligatorioFormas;
        if (isset($this->Hint)) $o['Hint'] = $this->Hint;
        if (isset($this->Mayuscula)) $o['Mayuscula'] = $this->Mayuscula;
        if (isset($this->Tamano)) $o['Tamano'] = $this->Tamano;
        if (isset($this->Escala)) $o['Escala'] = $this->Escala;
        if (isset($this->Tipo)) $o['Tipo'] = $this->Tipo;
        if (isset($this->VlrDefecto)) $o['VlrDefecto'] = $this->VlrDefecto;
        if (isset($this->PermiteEditar)) $o['PermiteEditar'] = $this->PermiteEditar;
        if (isset($this->Orden)) $o['Orden'] = $this->Orden;
        if (isset($this->Dinamico)) $o['Dinamico'] = $this->Dinamico;
        if (isset($this->ClaseControl)) $o['ClaseControl'] = $this->ClaseControl;
        if (isset($this->JoinLookup)) $o['JoinLookup'] = $this->JoinLookup;
        if (isset($this->EsID)) $o['EsID'] = $this->EsID;
        if (isset($this->Mascara)) $o['Mascara'] = $this->Mascara;
        if (isset($this->MostrarEnLista)) $o['MostrarEnLista'] = $this->MostrarEnLista;
        if (isset($this->InfoAdicional)) $o['InfoAdicional'] = $this->InfoAdicional;
        if (isset($this->WHEREDefecto)) $o['WHEREDefecto'] = $this->WHEREDefecto;
        if (isset($this->TieneResumen)) $o['TieneResumen'] = $this->TieneResumen;
        if (isset($this->FormatoResumen)) $o['FormatoResumen'] = $this->FormatoResumen;
        if (isset($this->TipoResumen)) $o['TipoResumen'] = $this->TipoResumen;
        if (isset($this->PosicionResumen)) $o['PosicionResumen'] = $this->PosicionResumen;
        if (isset($this->ResumenEnGrupo)) $o['ResumenEnGrupo'] = $this->ResumenEnGrupo;
        if (isset($this->ResumenEnTotal)) $o['ResumenEnTotal'] = $this->ResumenEnTotal;
        if (isset($this->IndiceGrupo)) $o['IndiceGrupo'] = $this->IndiceGrupo;
        return empty($o) ? new class(){} : $o;
    }
}

// @DataContract
class Frame implements JsonSerializable
{
    public function __construct(
        // @DataMember
        /** @var float */
        public float $Codigo=0.0,

        // @DataMember
        /** @var string|null */
        public ?string $SQL=null,

        // @DataMember
        /** @var array<string>|null */
        public ?array $Campos1=null,

        // @DataMember
        /** @var array<string>|null */
        public ?array $Campos2=null,

        // @DataMember
        /** @var DefinicionTabla|null */
        public ?DefinicionTabla $TablaFrame=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['Codigo'])) $this->Codigo = $o['Codigo'];
        if (isset($o['SQL'])) $this->SQL = $o['SQL'];
        if (isset($o['Campos1'])) $this->Campos1 = JsonConverters::fromArray('string', $o['Campos1']);
        if (isset($o['Campos2'])) $this->Campos2 = JsonConverters::fromArray('string', $o['Campos2']);
        if (isset($o['TablaFrame'])) $this->TablaFrame = JsonConverters::from('DefinicionTabla', $o['TablaFrame']);
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->Codigo)) $o['Codigo'] = $this->Codigo;
        if (isset($this->SQL)) $o['SQL'] = $this->SQL;
        if (isset($this->Campos1)) $o['Campos1'] = JsonConverters::toArray('string', $this->Campos1);
        if (isset($this->Campos2)) $o['Campos2'] = JsonConverters::toArray('string', $this->Campos2);
        if (isset($this->TablaFrame)) $o['TablaFrame'] = JsonConverters::to('DefinicionTabla', $this->TablaFrame);
        return empty($o) ? new class(){} : $o;
    }
}

// @DataContract
class DetalleIndices implements JsonSerializable
{
    public function __construct(
        // @DataMember
        /** @var float */
        public float $CodigoTabla=0.0,

        // @DataMember
        /** @var string|null */
        public ?string $NombreIndice=null,

        // @DataMember
        /** @var float */
        public float $CodigoColumna=0.0,

        // @DataMember
        /** @var string|null */
        public ?string $TipoCalculo=null,

        // @DataMember
        /** @var string|null */
        public ?string $Secuencia=null,

        // @DataMember
        /** @var string|null */
        public ?string $NombreColumna=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['CodigoTabla'])) $this->CodigoTabla = $o['CodigoTabla'];
        if (isset($o['NombreIndice'])) $this->NombreIndice = $o['NombreIndice'];
        if (isset($o['CodigoColumna'])) $this->CodigoColumna = $o['CodigoColumna'];
        if (isset($o['TipoCalculo'])) $this->TipoCalculo = $o['TipoCalculo'];
        if (isset($o['Secuencia'])) $this->Secuencia = $o['Secuencia'];
        if (isset($o['NombreColumna'])) $this->NombreColumna = $o['NombreColumna'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->CodigoTabla)) $o['CodigoTabla'] = $this->CodigoTabla;
        if (isset($this->NombreIndice)) $o['NombreIndice'] = $this->NombreIndice;
        if (isset($this->CodigoColumna)) $o['CodigoColumna'] = $this->CodigoColumna;
        if (isset($this->TipoCalculo)) $o['TipoCalculo'] = $this->TipoCalculo;
        if (isset($this->Secuencia)) $o['Secuencia'] = $this->Secuencia;
        if (isset($this->NombreColumna)) $o['NombreColumna'] = $this->NombreColumna;
        return empty($o) ? new class(){} : $o;
    }
}

class ColCountByScreen implements JsonSerializable
{
    public function __construct(
        /** @var int */
        public int $lg=0,
        /** @var int */
        public int $md=0,
        /** @var int */
        public int $sm=0,
        /** @var int */
        public int $xs=0
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['lg'])) $this->lg = $o['lg'];
        if (isset($o['md'])) $this->md = $o['md'];
        if (isset($o['sm'])) $this->sm = $o['sm'];
        if (isset($o['xs'])) $this->xs = $o['xs'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->lg)) $o['lg'] = $this->lg;
        if (isset($this->md)) $o['md'] = $this->md;
        if (isset($this->sm)) $o['sm'] = $this->sm;
        if (isset($this->xs)) $o['xs'] = $this->xs;
        return empty($o) ? new class(){} : $o;
    }
}

enum ItemTypeForm : string
{
    case simple = 'simple';
    case group = 'group';
    case tabbed = 'tabbed';
    case empty = 'empty';
}

class EmptyItemForm implements JsonSerializable
{
    public function __construct(
        /** @var ItemTypeForm|null */
        public ?ItemTypeForm $itemType=null,
        /** @var int */
        public int $visibleIndex=0
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['itemType'])) $this->itemType = JsonConverters::from('ItemTypeForm', $o['itemType']);
        if (isset($o['visibleIndex'])) $this->visibleIndex = $o['visibleIndex'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->itemType)) $o['itemType'] = JsonConverters::to('ItemTypeForm', $this->itemType);
        if (isset($this->visibleIndex)) $o['visibleIndex'] = $this->visibleIndex;
        return empty($o) ? new class(){} : $o;
    }
}

class dxForm implements JsonSerializable
{
    public function __construct(
        /** @var ColCountByScreen|null */
        public ?ColCountByScreen $colCountByScreen=null,
        /** @var string|null */
        public ?string $labelLocation=null,
        /** @var bool|null */
        public ?bool $readOnly=null,
        /** @var array<EmptyItemForm>|null */
        public ?array $items=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['colCountByScreen'])) $this->colCountByScreen = JsonConverters::from('ColCountByScreen', $o['colCountByScreen']);
        if (isset($o['labelLocation'])) $this->labelLocation = $o['labelLocation'];
        if (isset($o['readOnly'])) $this->readOnly = $o['readOnly'];
        if (isset($o['items'])) $this->items = JsonConverters::fromArray('EmptyItemForm', $o['items']);
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->colCountByScreen)) $o['colCountByScreen'] = JsonConverters::to('ColCountByScreen', $this->colCountByScreen);
        if (isset($this->labelLocation)) $o['labelLocation'] = $this->labelLocation;
        if (isset($this->readOnly)) $o['readOnly'] = $this->readOnly;
        if (isset($this->items)) $o['items'] = JsonConverters::toArray('EmptyItemForm', $this->items);
        return empty($o) ? new class(){} : $o;
    }
}

class ValidationRule implements JsonSerializable
{
    public function __construct(
        /** @var string|null */
        public ?string $type=null,
        /** @var string|null */
        public ?string $message=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['type'])) $this->type = $o['type'];
        if (isset($o['message'])) $this->message = $o['message'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->type)) $o['type'] = $this->type;
        if (isset($this->message)) $o['message'] = $this->message;
        return empty($o) ? new class(){} : $o;
    }
}

class LookupGrid implements JsonSerializable
{
    public function __construct(
        /** @var bool|null */
        public ?bool $allowClearing=null,
        /** @var string|null */
        public ?string $displayExpr=null,
        /** @var string|null */
        public ?string $valueExpr=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['allowClearing'])) $this->allowClearing = $o['allowClearing'];
        if (isset($o['displayExpr'])) $this->displayExpr = $o['displayExpr'];
        if (isset($o['valueExpr'])) $this->valueExpr = $o['valueExpr'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->allowClearing)) $o['allowClearing'] = $this->allowClearing;
        if (isset($this->displayExpr)) $o['displayExpr'] = $this->displayExpr;
        if (isset($this->valueExpr)) $o['valueExpr'] = $this->valueExpr;
        return empty($o) ? new class(){} : $o;
    }
}

class ColumnGrid implements JsonSerializable
{
    public function __construct(
        /** @var string|null */
        public ?string $caption=null,
        /** @var string|null */
        public ?string $dataField=null,
        /** @var string|null */
        public ?string $dataType=null,
        /** @var int */
        public int $visibleIndex=0,
        /** @var array<ValidationRule>|null */
        public ?array $validationRules=null,
        /** @var LookupGrid|null */
        public ?LookupGrid $lookup=null,
        /** @var bool|null */
        public ?bool $allowEditing=null,
        /** @var bool|null */
        public ?bool $encodeHtml=null,
        /** @var array<string,Object>|null */
        public ?array $editorOptions=null,
        /** @var int|null */
        public ?int $groupIndex=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['caption'])) $this->caption = $o['caption'];
        if (isset($o['dataField'])) $this->dataField = $o['dataField'];
        if (isset($o['dataType'])) $this->dataType = $o['dataType'];
        if (isset($o['visibleIndex'])) $this->visibleIndex = $o['visibleIndex'];
        if (isset($o['validationRules'])) $this->validationRules = JsonConverters::fromArray('ValidationRule', $o['validationRules']);
        if (isset($o['lookup'])) $this->lookup = JsonConverters::from('LookupGrid', $o['lookup']);
        if (isset($o['allowEditing'])) $this->allowEditing = $o['allowEditing'];
        if (isset($o['encodeHtml'])) $this->encodeHtml = $o['encodeHtml'];
        if (isset($o['editorOptions'])) $this->editorOptions = JsonConverters::from(JsonConverters::context('Dictionary',genericArgs:['string','Object']), $o['editorOptions']);
        if (isset($o['groupIndex'])) $this->groupIndex = $o['groupIndex'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->caption)) $o['caption'] = $this->caption;
        if (isset($this->dataField)) $o['dataField'] = $this->dataField;
        if (isset($this->dataType)) $o['dataType'] = $this->dataType;
        if (isset($this->visibleIndex)) $o['visibleIndex'] = $this->visibleIndex;
        if (isset($this->validationRules)) $o['validationRules'] = JsonConverters::toArray('ValidationRule', $this->validationRules);
        if (isset($this->lookup)) $o['lookup'] = JsonConverters::to('LookupGrid', $this->lookup);
        if (isset($this->allowEditing)) $o['allowEditing'] = $this->allowEditing;
        if (isset($this->encodeHtml)) $o['encodeHtml'] = $this->encodeHtml;
        if (isset($this->editorOptions)) $o['editorOptions'] = JsonConverters::to(JsonConverters::context('Dictionary',genericArgs:['string','Object']), $this->editorOptions);
        if (isset($this->groupIndex)) $o['groupIndex'] = $this->groupIndex;
        return empty($o) ? new class(){} : $o;
    }
}

class EditingGrid implements JsonSerializable
{
    public function __construct(
        /** @var bool|null */
        public ?bool $allowAdding=null,
        /** @var bool|null */
        public ?bool $allowDeleting=null,
        /** @var bool|null */
        public ?bool $allowUpdating=null,
        /** @var string|null */
        public ?string $mode=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['allowAdding'])) $this->allowAdding = $o['allowAdding'];
        if (isset($o['allowDeleting'])) $this->allowDeleting = $o['allowDeleting'];
        if (isset($o['allowUpdating'])) $this->allowUpdating = $o['allowUpdating'];
        if (isset($o['mode'])) $this->mode = $o['mode'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->allowAdding)) $o['allowAdding'] = $this->allowAdding;
        if (isset($this->allowDeleting)) $o['allowDeleting'] = $this->allowDeleting;
        if (isset($this->allowUpdating)) $o['allowUpdating'] = $this->allowUpdating;
        if (isset($this->mode)) $o['mode'] = $this->mode;
        return empty($o) ? new class(){} : $o;
    }
}

class gridSummaryGroupItems implements JsonSerializable
{
    public function __construct(
        /** @var string|null */
        public ?string $column=null,
        /** @var string|null */
        public ?string $displayFormat=null,
        /** @var bool|null */
        public ?bool $showInGroupFooter=null,
        /** @var string|null */
        public ?string $summaryType=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['column'])) $this->column = $o['column'];
        if (isset($o['displayFormat'])) $this->displayFormat = $o['displayFormat'];
        if (isset($o['showInGroupFooter'])) $this->showInGroupFooter = $o['showInGroupFooter'];
        if (isset($o['summaryType'])) $this->summaryType = $o['summaryType'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->column)) $o['column'] = $this->column;
        if (isset($this->displayFormat)) $o['displayFormat'] = $this->displayFormat;
        if (isset($this->showInGroupFooter)) $o['showInGroupFooter'] = $this->showInGroupFooter;
        if (isset($this->summaryType)) $o['summaryType'] = $this->summaryType;
        return empty($o) ? new class(){} : $o;
    }
}

class gridSummaryTotalItems implements JsonSerializable
{
    public function __construct(
        /** @var string|null */
        public ?string $column=null,
        /** @var string|null */
        public ?string $displayFormat=null,
        /** @var string|null */
        public ?string $summaryType=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['column'])) $this->column = $o['column'];
        if (isset($o['displayFormat'])) $this->displayFormat = $o['displayFormat'];
        if (isset($o['summaryType'])) $this->summaryType = $o['summaryType'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->column)) $o['column'] = $this->column;
        if (isset($this->displayFormat)) $o['displayFormat'] = $this->displayFormat;
        if (isset($this->summaryType)) $o['summaryType'] = $this->summaryType;
        return empty($o) ? new class(){} : $o;
    }
}

class gridSummary implements JsonSerializable
{
    public function __construct(
        /** @var array<gridSummaryGroupItems>|null */
        public ?array $groupItems=null,
        /** @var array<gridSummaryTotalItems>|null */
        public ?array $totalItems=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['groupItems'])) $this->groupItems = JsonConverters::fromArray('gridSummaryGroupItems', $o['groupItems']);
        if (isset($o['totalItems'])) $this->totalItems = JsonConverters::fromArray('gridSummaryTotalItems', $o['totalItems']);
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->groupItems)) $o['groupItems'] = JsonConverters::toArray('gridSummaryGroupItems', $this->groupItems);
        if (isset($this->totalItems)) $o['totalItems'] = JsonConverters::toArray('gridSummaryTotalItems', $this->totalItems);
        return empty($o) ? new class(){} : $o;
    }
}

class dxDataGrid implements JsonSerializable
{
    public function __construct(
        /** @var array<ColumnGrid>|null */
        public ?array $columns=null,
        /** @var bool|null */
        public ?bool $showColumnLines=null,
        /** @var bool|null */
        public ?bool $showRowLines=null,
        /** @var bool|null */
        public ?bool $rowAlternationEnabled=null,
        /** @var bool|null */
        public ?bool $showBorders=null,
        /** @var EditingGrid|null */
        public ?EditingGrid $editing=null,
        /** @var gridSummary|null */
        public ?gridSummary $summary=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['columns'])) $this->columns = JsonConverters::fromArray('ColumnGrid', $o['columns']);
        if (isset($o['showColumnLines'])) $this->showColumnLines = $o['showColumnLines'];
        if (isset($o['showRowLines'])) $this->showRowLines = $o['showRowLines'];
        if (isset($o['rowAlternationEnabled'])) $this->rowAlternationEnabled = $o['rowAlternationEnabled'];
        if (isset($o['showBorders'])) $this->showBorders = $o['showBorders'];
        if (isset($o['editing'])) $this->editing = JsonConverters::from('EditingGrid', $o['editing']);
        if (isset($o['summary'])) $this->summary = JsonConverters::from('gridSummary', $o['summary']);
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->columns)) $o['columns'] = JsonConverters::toArray('ColumnGrid', $this->columns);
        if (isset($this->showColumnLines)) $o['showColumnLines'] = $this->showColumnLines;
        if (isset($this->showRowLines)) $o['showRowLines'] = $this->showRowLines;
        if (isset($this->rowAlternationEnabled)) $o['rowAlternationEnabled'] = $this->rowAlternationEnabled;
        if (isset($this->showBorders)) $o['showBorders'] = $this->showBorders;
        if (isset($this->editing)) $o['editing'] = JsonConverters::to('EditingGrid', $this->editing);
        if (isset($this->summary)) $o['summary'] = JsonConverters::to('gridSummary', $this->summary);
        return empty($o) ? new class(){} : $o;
    }
}

class DefinicionTabla implements JsonSerializable
{
    public function __construct(
        /** @var Tabla|null */
        public ?Tabla $Tabla=null,
        /** @var array<Columna>|null */
        public ?array $Columnas=null,
        /** @var array<DetalleJoinTabla>|null */
        public ?array $Lookups=null,
        /** @var array<Frame>|null */
        public ?array $Frames=null,
        /** @var array<DetalleIndices>|null */
        public ?array $DetalleLlave=null,
        /** @var dxForm|null */
        public ?dxForm $Form=null,
        /** @var dxDataGrid|null */
        public ?dxDataGrid $DataGrid=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['Tabla'])) $this->Tabla = JsonConverters::from('Tabla', $o['Tabla']);
        if (isset($o['Columnas'])) $this->Columnas = JsonConverters::fromArray('Columna', $o['Columnas']);
        if (isset($o['Lookups'])) $this->Lookups = JsonConverters::fromArray('DetalleJoinTabla', $o['Lookups']);
        if (isset($o['Frames'])) $this->Frames = JsonConverters::fromArray('Frame', $o['Frames']);
        if (isset($o['DetalleLlave'])) $this->DetalleLlave = JsonConverters::fromArray('DetalleIndices', $o['DetalleLlave']);
        if (isset($o['Form'])) $this->Form = JsonConverters::from('dxForm', $o['Form']);
        if (isset($o['DataGrid'])) $this->DataGrid = JsonConverters::from('dxDataGrid', $o['DataGrid']);
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->Tabla)) $o['Tabla'] = JsonConverters::to('Tabla', $this->Tabla);
        if (isset($this->Columnas)) $o['Columnas'] = JsonConverters::toArray('Columna', $this->Columnas);
        if (isset($this->Lookups)) $o['Lookups'] = JsonConverters::toArray('DetalleJoinTabla', $this->Lookups);
        if (isset($this->Frames)) $o['Frames'] = JsonConverters::toArray('Frame', $this->Frames);
        if (isset($this->DetalleLlave)) $o['DetalleLlave'] = JsonConverters::toArray('DetalleIndices', $this->DetalleLlave);
        if (isset($this->Form)) $o['Form'] = JsonConverters::to('dxForm', $this->Form);
        if (isset($this->DataGrid)) $o['DataGrid'] = JsonConverters::to('dxDataGrid', $this->DataGrid);
        return empty($o) ? new class(){} : $o;
    }
}

class DetalleJoinTabla implements JsonSerializable
{
    public function __construct(
        /** @var float */
        public float $Codigo=0.0,
        /** @var string|null */
        public ?string $CampoAMostrar=null,
        /** @var array<string>|null */
        public ?array $Campos1=null,
        /** @var array<string>|null */
        public ?array $Campos2=null,
        /** @var array<string>|null */
        public ?array $Operadores=null,
        /** @var array<array<string,Object>>|null */
        public ?array $Datos=null,
        /** @var float */
        public float $CodigoTabla1=0.0,
        /** @var string|null */
        public ?string $SQL=null,
        /** @var DefinicionTabla|null */
        public ?DefinicionTabla $TablaDetalle=null,
        /** @var Vista|null */
        public ?Vista $Vista=null,
        /** @var string|null */
        public ?string $Version=null,
        /** @var string|null */
        public ?string $Ordenar=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['Codigo'])) $this->Codigo = $o['Codigo'];
        if (isset($o['CampoAMostrar'])) $this->CampoAMostrar = $o['CampoAMostrar'];
        if (isset($o['Campos1'])) $this->Campos1 = JsonConverters::fromArray('string', $o['Campos1']);
        if (isset($o['Campos2'])) $this->Campos2 = JsonConverters::fromArray('string', $o['Campos2']);
        if (isset($o['Operadores'])) $this->Operadores = JsonConverters::fromArray('string', $o['Operadores']);
        if (isset($o['Datos'])) $this->Datos = JsonConverters::fromArray('Dictionary<String,Object>', $o['Datos']);
        if (isset($o['CodigoTabla1'])) $this->CodigoTabla1 = $o['CodigoTabla1'];
        if (isset($o['SQL'])) $this->SQL = $o['SQL'];
        if (isset($o['TablaDetalle'])) $this->TablaDetalle = JsonConverters::from('DefinicionTabla', $o['TablaDetalle']);
        if (isset($o['Vista'])) $this->Vista = JsonConverters::from('Vista', $o['Vista']);
        if (isset($o['Version'])) $this->Version = $o['Version'];
        if (isset($o['Ordenar'])) $this->Ordenar = $o['Ordenar'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->Codigo)) $o['Codigo'] = $this->Codigo;
        if (isset($this->CampoAMostrar)) $o['CampoAMostrar'] = $this->CampoAMostrar;
        if (isset($this->Campos1)) $o['Campos1'] = JsonConverters::toArray('string', $this->Campos1);
        if (isset($this->Campos2)) $o['Campos2'] = JsonConverters::toArray('string', $this->Campos2);
        if (isset($this->Operadores)) $o['Operadores'] = JsonConverters::toArray('string', $this->Operadores);
        if (isset($this->Datos)) $o['Datos'] = JsonConverters::toArray('Dictionary<String,Object>', $this->Datos);
        if (isset($this->CodigoTabla1)) $o['CodigoTabla1'] = $this->CodigoTabla1;
        if (isset($this->SQL)) $o['SQL'] = $this->SQL;
        if (isset($this->TablaDetalle)) $o['TablaDetalle'] = JsonConverters::to('DefinicionTabla', $this->TablaDetalle);
        if (isset($this->Vista)) $o['Vista'] = JsonConverters::to('Vista', $this->Vista);
        if (isset($this->Version)) $o['Version'] = $this->Version;
        if (isset($this->Ordenar)) $o['Ordenar'] = $this->Ordenar;
        return empty($o) ? new class(){} : $o;
    }
}

class DefinicionQueryRS implements JsonSerializable
{
    public function __construct(
        /** @var Vista|null */
        public ?Vista $Vista=null,
        /** @var Tabla|null */
        public ?Tabla $Tabla=null,
        /** @var string|null */
        public ?string $Descripcion=null,
        /** @var array<Columna>|null */
        public ?array $Columnas=null,
        /** @var array<Columna>|null */
        public ?array $Parametros=null,
        /** @var array<DetalleJoinTabla>|null */
        public ?array $Lookups=null,
        /** @var array<DetalleJoinTabla>|null */
        public ?array $Detalles=null,
        /** @var dxDataGrid|null */
        public ?dxDataGrid $DataGrid=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['Vista'])) $this->Vista = JsonConverters::from('Vista', $o['Vista']);
        if (isset($o['Tabla'])) $this->Tabla = JsonConverters::from('Tabla', $o['Tabla']);
        if (isset($o['Descripcion'])) $this->Descripcion = $o['Descripcion'];
        if (isset($o['Columnas'])) $this->Columnas = JsonConverters::fromArray('Columna', $o['Columnas']);
        if (isset($o['Parametros'])) $this->Parametros = JsonConverters::fromArray('Columna', $o['Parametros']);
        if (isset($o['Lookups'])) $this->Lookups = JsonConverters::fromArray('DetalleJoinTabla', $o['Lookups']);
        if (isset($o['Detalles'])) $this->Detalles = JsonConverters::fromArray('DetalleJoinTabla', $o['Detalles']);
        if (isset($o['DataGrid'])) $this->DataGrid = JsonConverters::from('dxDataGrid', $o['DataGrid']);
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->Vista)) $o['Vista'] = JsonConverters::to('Vista', $this->Vista);
        if (isset($this->Tabla)) $o['Tabla'] = JsonConverters::to('Tabla', $this->Tabla);
        if (isset($this->Descripcion)) $o['Descripcion'] = $this->Descripcion;
        if (isset($this->Columnas)) $o['Columnas'] = JsonConverters::toArray('Columna', $this->Columnas);
        if (isset($this->Parametros)) $o['Parametros'] = JsonConverters::toArray('Columna', $this->Parametros);
        if (isset($this->Lookups)) $o['Lookups'] = JsonConverters::toArray('DetalleJoinTabla', $this->Lookups);
        if (isset($this->Detalles)) $o['Detalles'] = JsonConverters::toArray('DetalleJoinTabla', $this->Detalles);
        if (isset($this->DataGrid)) $o['DataGrid'] = JsonConverters::to('dxDataGrid', $this->DataGrid);
        return empty($o) ? new class(){} : $o;
    }
}

enum Lenguajes : string
{
    case ES = 'ES';
    case PT = 'PT';
    case EN = 'EN';
}

class VersionLookup implements JsonSerializable
{
    public function __construct(
        /** @var float */
        public float $CodLookup=0.0,
        /** @var string|null */
        public ?string $Version=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['CodLookup'])) $this->CodLookup = $o['CodLookup'];
        if (isset($o['Version'])) $this->Version = $o['Version'];
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->CodLookup)) $o['CodLookup'] = $this->CodLookup;
        if (isset($this->Version)) $o['Version'] = $this->Version;
        return empty($o) ? new class(){} : $o;
    }
}

class DefinicionQueryRQ implements JsonSerializable
{
    public function __construct(
        /** @var int */
        public int $IDVista=0,
        /** @var Lenguajes|null */
        public ?Lenguajes $Lenguaje=null,
        /** @var bool|null */
        public ?bool $DatosLookups=null,
        /** @var array<VersionLookup>|null */
        public ?array $VersionesLookupCliente=null
    ) {
    }

    /** @throws Exception */
    public function fromMap($o): void {
        if (isset($o['IDVista'])) $this->IDVista = $o['IDVista'];
        if (isset($o['Lenguaje'])) $this->Lenguaje = JsonConverters::from('Lenguajes', $o['Lenguaje']);
        if (isset($o['DatosLookups'])) $this->DatosLookups = $o['DatosLookups'];
        if (isset($o['VersionesLookupCliente'])) $this->VersionesLookupCliente = JsonConverters::fromArray('VersionLookup', $o['VersionesLookupCliente']);
    }
    
    /** @throws Exception */
    public function jsonSerialize(): mixed
    {
        $o = [];
        if (isset($this->IDVista)) $o['IDVista'] = $this->IDVista;
        if (isset($this->Lenguaje)) $o['Lenguaje'] = JsonConverters::to('Lenguajes', $this->Lenguaje);
        if (isset($this->DatosLookups)) $o['DatosLookups'] = $this->DatosLookups;
        if (isset($this->VersionesLookupCliente)) $o['VersionesLookupCliente'] = JsonConverters::toArray('VersionLookup', $this->VersionesLookupCliente);
        return empty($o) ? new class(){} : $o;
    }
}

PHP DefinicionQueryRQ DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv

HTTP + JSV

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

POST /Utilidades/Consultas/Listados/Definicion HTTP/1.1 
Host: soluser-recaudo.sgsas.co 
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length

{
	IDVista: 0,
	Lenguaje: ES,
	DatosLookups: False,
	VersionesLookupCliente: 
	[
		{
			CodLookup: 0,
			Version: String
		}
	]
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	Vista: 
	{
		Codigo: 0,
		CodigoBlob: 0,
		Nombre: String,
		Descripcion: String,
		SQL: String,
		CodigoTabla: 0,
		GuardarBinario: String,
		TipoConsulta: String,
		ExportacionDefault: String,
		TipoExportacion: String,
		ParametrosExportacion: 0,
		CodigoAyuda: String,
		EjecutarEnAdm: String,
		InfoAdicional: String,
		EjecMultiempresa: String
	},
	Tabla: 
	{
		Codigo: 0,
		Propietario: String,
		Tipo: String,
		Nombre: String,
		Alias: String,
		Descripcion: String,
		ParaReportes: String,
		CrearAlIniciar: String,
		CampoEmpresa: 0,
		CampoUnico: 0
	},
	Descripcion: String,
	Columnas: 
	[
		{
			CodigoTabla: 0,
			Codigo: 0,
			Nombre: String,
			Alias: String,
			Descripcion: String,
			TipoDato: String,
			ObligatorioFormas: String,
			Hint: String,
			Mayuscula: String,
			Tamano: 0,
			Escala: 0,
			Tipo: String,
			VlrDefecto: String,
			PermiteEditar: String,
			Orden: 0,
			Dinamico: String,
			ClaseControl: String,
			JoinLookup: 0,
			EsID: String,
			Mascara: String,
			MostrarEnLista: String,
			InfoAdicional: String,
			WHEREDefecto: String,
			TieneResumen: String,
			FormatoResumen: String,
			TipoResumen: String,
			PosicionResumen: String,
			ResumenEnGrupo: String,
			ResumenEnTotal: String,
			IndiceGrupo: 0
		}
	],
	Parametros: 
	[
		{
			CodigoTabla: 0,
			Codigo: 0,
			Nombre: String,
			Alias: String,
			Descripcion: String,
			TipoDato: String,
			ObligatorioFormas: String,
			Hint: String,
			Mayuscula: String,
			Tamano: 0,
			Escala: 0,
			Tipo: String,
			VlrDefecto: String,
			PermiteEditar: String,
			Orden: 0,
			Dinamico: String,
			ClaseControl: String,
			JoinLookup: 0,
			EsID: String,
			Mascara: String,
			MostrarEnLista: String,
			InfoAdicional: String,
			WHEREDefecto: String,
			TieneResumen: String,
			FormatoResumen: String,
			TipoResumen: String,
			PosicionResumen: String,
			ResumenEnGrupo: String,
			ResumenEnTotal: String,
			IndiceGrupo: 0
		}
	],
	Lookups: 
	[
		{
			Codigo: 0,
			CampoAMostrar: String,
			Campos1: 
			[
				String
			],
			Campos2: 
			[
				String
			],
			Operadores: 
			[
				String
			],
			Datos: 
			[
				{
					String: {}
				}
			],
			CodigoTabla1: 0,
			SQL: String,
			TablaDetalle: 
			{
				Tabla: 
				{
					Codigo: 0,
					Propietario: String,
					Tipo: String,
					Nombre: String,
					Alias: String,
					Descripcion: String,
					ParaReportes: String,
					CrearAlIniciar: String,
					CampoEmpresa: 0,
					CampoUnico: 0
				},
				Columnas: 
				[
					{
						CodigoTabla: 0,
						Codigo: 0,
						Nombre: String,
						Alias: String,
						Descripcion: String,
						TipoDato: String,
						ObligatorioFormas: String,
						Hint: String,
						Mayuscula: String,
						Tamano: 0,
						Escala: 0,
						Tipo: String,
						VlrDefecto: String,
						PermiteEditar: String,
						Orden: 0,
						Dinamico: String,
						ClaseControl: String,
						JoinLookup: 0,
						EsID: String,
						Mascara: String,
						MostrarEnLista: String,
						InfoAdicional: String,
						WHEREDefecto: String,
						TieneResumen: String,
						FormatoResumen: String,
						TipoResumen: String,
						PosicionResumen: String,
						ResumenEnGrupo: String,
						ResumenEnTotal: String,
						IndiceGrupo: 0
					}
				],
				Lookups: 
				[
					{
						Codigo: 0,
						CampoAMostrar: String,
						Campos1: 
						[
							String
						],
						Campos2: 
						[
							String
						],
						Operadores: 
						[
							String
						],
						Datos: 
						[
							{
								String: {}
							}
						],
						CodigoTabla1: 0,
						SQL: String,
						TablaDetalle: 
						{
							Tabla: 
							{
								Codigo: 0,
								Propietario: String,
								Tipo: String,
								Nombre: String,
								Alias: String,
								Descripcion: String,
								ParaReportes: String,
								CrearAlIniciar: String,
								CampoEmpresa: 0,
								CampoUnico: 0
							},
							Columnas: 
							[
								{
									CodigoTabla: 0,
									Codigo: 0,
									Nombre: String,
									Alias: String,
									Descripcion: String,
									TipoDato: String,
									ObligatorioFormas: String,
									Hint: String,
									Mayuscula: String,
									Tamano: 0,
									Escala: 0,
									Tipo: String,
									VlrDefecto: String,
									PermiteEditar: String,
									Orden: 0,
									Dinamico: String,
									ClaseControl: String,
									JoinLookup: 0,
									EsID: String,
									Mascara: String,
									MostrarEnLista: String,
									InfoAdicional: String,
									WHEREDefecto: String,
									TieneResumen: String,
									FormatoResumen: String,
									TipoResumen: String,
									PosicionResumen: String,
									ResumenEnGrupo: String,
									ResumenEnTotal: String,
									IndiceGrupo: 0
								}
							],
							Lookups: 
							[
								{
									Codigo: 0,
									CampoAMostrar: String,
									Campos1: 
									[
										String
									],
									Campos2: 
									[
										String
									],
									Operadores: 
									[
										String
									],
									Datos: 
									[
										{
											String: {}
										}
									],
									CodigoTabla1: 0,
									SQL: String,
									TablaDetalle: 
									{
										Tabla: 
										{
											Codigo: 0,
											Propietario: String,
											Tipo: String,
											Nombre: String,
											Alias: String,
											Descripcion: String,
											ParaReportes: String,
											CrearAlIniciar: String,
											CampoEmpresa: 0,
											CampoUnico: 0
										},
										Columnas: 
										[
											{
												CodigoTabla: 0,
												Codigo: 0,
												Nombre: String,
												Alias: String,
												Descripcion: String,
												TipoDato: String,
												ObligatorioFormas: String,
												Hint: String,
												Mayuscula: String,
												Tamano: 0,
												Escala: 0,
												Tipo: String,
												VlrDefecto: String,
												PermiteEditar: String,
												Orden: 0,
												Dinamico: String,
												ClaseControl: String,
												JoinLookup: 0,
												EsID: String,
												Mascara: String,
												MostrarEnLista: String,
												InfoAdicional: String,
												WHEREDefecto: String,
												TieneResumen: String,
												FormatoResumen: String,
												TipoResumen: String,
												PosicionResumen: String,
												ResumenEnGrupo: String,
												ResumenEnTotal: String,
												IndiceGrupo: 0
											}
										],
										Frames: 
										[
											{
												Codigo: 0,
												SQL: String,
												Campos1: 
												[
													String
												],
												Campos2: 
												[
													String
												]
											}
										],
										DetalleLlave: 
										[
											{
												CodigoTabla: 0,
												NombreIndice: String,
												CodigoColumna: 0,
												TipoCalculo: String,
												Secuencia: String,
												NombreColumna: String
											}
										],
										Form: 
										{
											colCountByScreen: 
											{
												lg: 0,
												md: 0,
												sm: 0,
												xs: 0
											},
											labelLocation: String,
											readOnly: False,
											items: 
											[
												{
													itemType: simple,
													visibleIndex: 0
												}
											]
										},
										DataGrid: 
										{
											"columns": 
											[
												{
													"caption": "String",
													"dataField": "String",
													"dataType": "String",
													"visibleIndex": 0,
													"validationRules": 
													[
														{
															"type": "String",
															"message": "String"
														}
													],
													"lookup": 
													{
														"allowClearing": false,
														"displayExpr": "String",
														"valueExpr": "String"
													},
													"allowEditing": false,
													"encodeHtml": false,
													"editorOptions": 
													{
														"String": {}
													},
													"groupIndex": 0
												}
											],
											"showColumnLines": false,
											"showRowLines": false,
											"rowAlternationEnabled": false,
											"showBorders": false,
											"editing": 
											{
												"allowAdding": false,
												"allowDeleting": false,
												"allowUpdating": false,
												"mode": "String"
											},
											"summary": 
											{
												"groupItems": 
												[
													{
														"column": "String",
														"displayFormat": "String",
														"showInGroupFooter": false,
														"summaryType": "String"
													}
												],
												"totalItems": 
												[
													{
														"column": "String",
														"displayFormat": "String",
														"summaryType": "String"
													}
												]
											}
										}
									},
									Vista: 
									{
										Codigo: 0,
										CodigoBlob: 0,
										Nombre: String,
										Descripcion: String,
										SQL: String,
										CodigoTabla: 0,
										GuardarBinario: String,
										TipoConsulta: String,
										ExportacionDefault: String,
										TipoExportacion: String,
										ParametrosExportacion: 0,
										CodigoAyuda: String,
										EjecutarEnAdm: String,
										InfoAdicional: String,
										EjecMultiempresa: String
									},
									Version: String,
									Ordenar: String
								}
							],
							Frames: 
							[
								{
									Codigo: 0,
									SQL: String,
									Campos1: 
									[
										String
									],
									Campos2: 
									[
										String
									],
									TablaFrame: 
									{
										Tabla: 
										{
											Codigo: 0,
											Propietario: String,
											Tipo: String,
											Nombre: String,
											Alias: String,
											Descripcion: String,
											ParaReportes: String,
											CrearAlIniciar: String,
											CampoEmpresa: 0,
											CampoUnico: 0
										},
										Columnas: 
										[
											{
												CodigoTabla: 0,
												Codigo: 0,
												Nombre: String,
												Alias: String,
												Descripcion: String,
												TipoDato: String,
												ObligatorioFormas: String,
												Hint: String,
												Mayuscula: String,
												Tamano: 0,
												Escala: 0,
												Tipo: String,
												VlrDefecto: String,
												PermiteEditar: String,
												Orden: 0,
												Dinamico: String,
												ClaseControl: String,
												JoinLookup: 0,
												EsID: String,
												Mascara: String,
												MostrarEnLista: String,
												InfoAdicional: String,
												WHEREDefecto: String,
												TieneResumen: String,
												FormatoResumen: String,
												TipoResumen: String,
												PosicionResumen: String,
												ResumenEnGrupo: String,
												ResumenEnTotal: String,
												IndiceGrupo: 0
											}
										],
										Lookups: 
										[
											{
												Codigo: 0,
												CampoAMostrar: String,
												Campos1: 
												[
													String
												],
												Campos2: 
												[
													String
												],
												Operadores: 
												[
													String
												],
												Datos: 
												[
													{
														String: {}
													}
												],
												CodigoTabla1: 0,
												SQL: String,
												Vista: 
												{
													Codigo: 0,
													CodigoBlob: 0,
													Nombre: String,
													Descripcion: String,
													SQL: String,
													CodigoTabla: 0,
													GuardarBinario: String,
													TipoConsulta: String,
													ExportacionDefault: String,
													TipoExportacion: String,
													ParametrosExportacion: 0,
													CodigoAyuda: String,
													EjecutarEnAdm: String,
													InfoAdicional: String,
													EjecMultiempresa: String
												},
												Version: String,
												Ordenar: String
											}
										],
										Frames: 
										[
											{
												Codigo: 0,
												SQL: String,
												Campos1: 
												[
													String
												],
												Campos2: 
												[
													String
												]
											}
										],
										DetalleLlave: 
										[
											{
												CodigoTabla: 0,
												NombreIndice: String,
												CodigoColumna: 0,
												TipoCalculo: String,
												Secuencia: String,
												NombreColumna: String
											}
										],
										Form: 
										{
											colCountByScreen: 
											{
												lg: 0,
												md: 0,
												sm: 0,
												xs: 0
											},
											labelLocation: String,
											readOnly: False,
											items: 
											[
												{
													itemType: simple,
													visibleIndex: 0
												}
											]
										},
										DataGrid: 
										{
											"columns": 
											[
												{
													"caption": "String",
													"dataField": "String",
													"dataType": "String",
													"visibleIndex": 0,
													"validationRules": 
													[
														{
															"type": "String",
															"message": "String"
														}
													],
													"lookup": 
													{
														"allowClearing": false,
														"displayExpr": "String",
														"valueExpr": "String"
													},
													"allowEditing": false,
													"encodeHtml": false,
													"editorOptions": 
													{
														"String": {}
													},
													"groupIndex": 0
												}
											],
											"showColumnLines": false,
											"showRowLines": false,
											"rowAlternationEnabled": false,
											"showBorders": false,
											"editing": 
											{
												"allowAdding": false,
												"allowDeleting": false,
												"allowUpdating": false,
												"mode": "String"
											},
											"summary": 
											{
												"groupItems": 
												[
													{
														"column": "String",
														"displayFormat": "String",
														"showInGroupFooter": false,
														"summaryType": "String"
													}
												],
												"totalItems": 
												[
													{
														"column": "String",
														"displayFormat": "String",
														"summaryType": "String"
													}
												]
											}
										}
									}
								}
							],
							DetalleLlave: 
							[
								{
									CodigoTabla: 0,
									NombreIndice: String,
									CodigoColumna: 0,
									TipoCalculo: String,
									Secuencia: String,
									NombreColumna: String
								}
							],
							Form: 
							{
								colCountByScreen: 
								{
									lg: 0,
									md: 0,
									sm: 0,
									xs: 0
								},
								labelLocation: String,
								readOnly: False,
								items: 
								[
									{
										itemType: simple,
										visibleIndex: 0
									}
								]
							},
							DataGrid: 
							{
								"columns": 
								[
									{
										"caption": "String",
										"dataField": "String",
										"dataType": "String",
										"visibleIndex": 0,
										"validationRules": 
										[
											{
												"type": "String",
												"message": "String"
											}
										],
										"lookup": 
										{
											"allowClearing": false,
											"displayExpr": "String",
											"valueExpr": "String"
										},
										"allowEditing": false,
										"encodeHtml": false,
										"editorOptions": 
										{
											"String": {}
										},
										"groupIndex": 0
									}
								],
								"showColumnLines": false,
								"showRowLines": false,
								"rowAlternationEnabled": false,
								"showBorders": false,
								"editing": 
								{
									"allowAdding": false,
									"allowDeleting": false,
									"allowUpdating": false,
									"mode": "String"
								},
								"summary": 
								{
									"groupItems": 
									[
										{
											"column": "String",
											"displayFormat": "String",
											"showInGroupFooter": false,
											"summaryType": "String"
										}
									],
									"totalItems": 
									[
										{
											"column": "String",
											"displayFormat": "String",
											"summaryType": "String"
										}
									]
								}
							}
						},
						Vista: 
						{
							Codigo: 0,
							CodigoBlob: 0,
							Nombre: String,
							Descripcion: String,
							SQL: String,
							CodigoTabla: 0,
							GuardarBinario: String,
							TipoConsulta: String,
							ExportacionDefault: String,
							TipoExportacion: String,
							ParametrosExportacion: 0,
							CodigoAyuda: String,
							EjecutarEnAdm: String,
							InfoAdicional: String,
							EjecMultiempresa: String
						},
						Version: String,
						Ordenar: String
					}
				],
				Frames: 
				[
					{
						Codigo: 0,
						SQL: String,
						Campos1: 
						[
							String
						],
						Campos2: 
						[
							String
						],
						TablaFrame: 
						{
							Tabla: 
							{
								Codigo: 0,
								Propietario: String,
								Tipo: String,
								Nombre: String,
								Alias: String,
								Descripcion: String,
								ParaReportes: String,
								CrearAlIniciar: String,
								CampoEmpresa: 0,
								CampoUnico: 0
							},
							Columnas: 
							[
								{
									CodigoTabla: 0,
									Codigo: 0,
									Nombre: String,
									Alias: String,
									Descripcion: String,
									TipoDato: String,
									ObligatorioFormas: String,
									Hint: String,
									Mayuscula: String,
									Tamano: 0,
									Escala: 0,
									Tipo: String,
									VlrDefecto: String,
									PermiteEditar: String,
									Orden: 0,
									Dinamico: String,
									ClaseControl: String,
									JoinLookup: 0,
									EsID: String,
									Mascara: String,
									MostrarEnLista: String,
									InfoAdicional: String,
									WHEREDefecto: String,
									TieneResumen: String,
									FormatoResumen: String,
									TipoResumen: String,
									PosicionResumen: String,
									ResumenEnGrupo: String,
									ResumenEnTotal: String,
									IndiceGrupo: 0
								}
							],
							Lookups: 
							[
								{
									Codigo: 0,
									CampoAMostrar: String,
									Campos1: 
									[
										String
									],
									Campos2: 
									[
										String
									],
									Operadores: 
									[
										String
									],
									Datos: 
									[
										{
											String: {}
										}
									],
									CodigoTabla1: 0,
									SQL: String,
									TablaDetalle: 
									{
										Tabla: 
										{
											Codigo: 0,
											Propietario: String,
											Tipo: String,
											Nombre: String,
											Alias: String,
											Descripcion: String,
											ParaReportes: String,
											CrearAlIniciar: String,
											CampoEmpresa: 0,
											CampoUnico: 0
										},
										Columnas: 
										[
											{
												CodigoTabla: 0,
												Codigo: 0,
												Nombre: String,
												Alias: String,
												Descripcion: String,
												TipoDato: String,
												ObligatorioFormas: String,
												Hint: String,
												Mayuscula: String,
												Tamano: 0,
												Escala: 0,
												Tipo: String,
												VlrDefecto: String,
												PermiteEditar: String,
												Orden: 0,
												Dinamico: String,
												ClaseControl: String,
												JoinLookup: 0,
												EsID: String,
												Mascara: String,
												MostrarEnLista: String,
												InfoAdicional: String,
												WHEREDefecto: String,
												TieneResumen: String,
												FormatoResumen: String,
												TipoResumen: String,
												PosicionResumen: String,
												ResumenEnGrupo: String,
												ResumenEnTotal: String,
												IndiceGrupo: 0
											}
										],
										Lookups: 
										[
											{
												Codigo: 0,
												CampoAMostrar: String,
												Campos1: 
												[
													String
												],
												Campos2: 
												[
													String
												],
												Operadores: 
												[
													String
												],
												Datos: 
												[
													{
														String: {}
													}
												],
												CodigoTabla1: 0,
												SQL: String,
												Vista: 
												{
													Codigo: 0,
													CodigoBlob: 0,
													Nombre: String,
													Descripcion: String,
													SQL: String,
													CodigoTabla: 0,
													GuardarBinario: String,
													TipoConsulta: String,
													ExportacionDefault: String,
													TipoExportacion: String,
													ParametrosExportacion: 0,
													CodigoAyuda: String,
													EjecutarEnAdm: String,
													InfoAdicional: String,
													EjecMultiempresa: String
												},
												Version: String,
												Ordenar: String
											}
										],
										Frames: 
										[
											{
												Codigo: 0,
												SQL: String,
												Campos1: 
												[
													String
												],
												Campos2: 
												[
													String
												]
											}
										],
										DetalleLlave: 
										[
											{
												CodigoTabla: 0,
												NombreIndice: String,
												CodigoColumna: 0,
												TipoCalculo: String,
												Secuencia: String,
												NombreColumna: String
											}
										],
										Form: 
										{
											colCountByScreen: 
											{
												lg: 0,
												md: 0,
												sm: 0,
												xs: 0
											},
											labelLocation: String,
											readOnly: False,
											items: 
											[
												{
													itemType: simple,
													visibleIndex: 0
												}
											]
										},
										DataGrid: 
										{
											"columns": 
											[
												{
													"caption": "String",
													"dataField": "String",
													"dataType": "String",
													"visibleIndex": 0,
													"validationRules": 
													[
														{
															"type": "String",
															"message": "String"
														}
													],
													"lookup": 
													{
														"allowClearing": false,
														"displayExpr": "String",
														"valueExpr": "String"
													},
													"allowEditing": false,
													"encodeHtml": false,
													"editorOptions": 
													{
														"String": {}
													},
													"groupIndex": 0
												}
											],
											"showColumnLines": false,
											"showRowLines": false,
											"rowAlternationEnabled": false,
											"showBorders": false,
											"editing": 
											{
												"allowAdding": false,
												"allowDeleting": false,
												"allowUpdating": false,
												"mode": "String"
											},
											"summary": 
											{
												"groupItems": 
												[
													{
														"column": "String",
														"displayFormat": "String",
														"showInGroupFooter": false,
														"summaryType": "String"
													}
												],
												"totalItems": 
												[
													{
														"column": "String",
														"displayFormat": "String",
														"summaryType": "String"
													}
												]
											}
										}
									},
									Vista: 
									{
										Codigo: 0,
										CodigoBlob: 0,
										Nombre: String,
										Descripcion: String,
										SQL: String,
										CodigoTabla: 0,
										GuardarBinario: String,
										TipoConsulta: String,
										ExportacionDefault: String,
										TipoExportacion: String,
										ParametrosExportacion: 0,
										CodigoAyuda: String,
										EjecutarEnAdm: String,
										InfoAdicional: String,
										EjecMultiempresa: String
									},
									Version: String,
									Ordenar: String
								}
							],
							Frames: 
							[
								{
									Codigo: 0,
									SQL: String,
									Campos1: 
									[
										String
									],
									Campos2: 
									[
										String
									],
									TablaFrame: 
									{
										Tabla: 
										{
											Codigo: 0,
											Propietario: String,
											Tipo: String,
											Nombre: String,
											Alias: String,
											Descripcion: String,
											ParaReportes: String,
											CrearAlIniciar: String,
											CampoEmpresa: 0,
											CampoUnico: 0
										},
										Columnas: 
										[
											{
												CodigoTabla: 0,
												Codigo: 0,
												Nombre: String,
												Alias: String,
												Descripcion: String,
												TipoDato: String,
												ObligatorioFormas: String,
												Hint: String,
												Mayuscula: String,
												Tamano: 0,
												Escala: 0,
												Tipo: String,
												VlrDefecto: String,
												PermiteEditar: String,
												Orden: 0,
												Dinamico: String,
												ClaseControl: String,
												JoinLookup: 0,
												EsID: String,
												Mascara: String,
												MostrarEnLista: String,
												InfoAdicional: String,
												WHEREDefecto: String,
												TieneResumen: String,
												FormatoResumen: String,
												TipoResumen: String,
												PosicionResumen: String,
												ResumenEnGrupo: String,
												ResumenEnTotal: String,
												IndiceGrupo: 0
											}
										],
										Lookups: 
										[
											{
												Codigo: 0,
												CampoAMostrar: String,
												Campos1: 
												[
													String
												],
												Campos2: 
												[
													String
												],
												Operadores: 
												[
													String
												],
												Datos: 
												[
													{
														String: {}
													}
												],
												CodigoTabla1: 0,
												SQL: String,
												Vista: 
												{
													Codigo: 0,
													CodigoBlob: 0,
													Nombre: String,
													Descripcion: String,
													SQL: String,
													CodigoTabla: 0,
													GuardarBinario: String,
													TipoConsulta: String,
													ExportacionDefault: String,
													TipoExportacion: String,
													ParametrosExportacion: 0,
													CodigoAyuda: String,
													EjecutarEnAdm: String,
													InfoAdicional: String,
													EjecMultiempresa: String
												},
												Version: String,
												Ordenar: String
											}
										],
										Frames: 
										[
											{
												Codigo: 0,
												SQL: String,
												Campos1: 
												[
													String
												],
												Campos2: 
												[
													String
												]
											}
										],
										DetalleLlave: 
										[
											{
												CodigoTabla: 0,
												NombreIndice: String,
												CodigoColumna: 0,
												TipoCalculo: String,
												Secuencia: String,
												NombreColumna: String
											}
										],
										Form: 
										{
											colCountByScreen: 
											{
												lg: 0,
												md: 0,
												sm: 0,
												xs: 0
											},
											labelLocation: String,
											readOnly: False,
											items: 
											[
												{
													itemType: simple,
													visibleIndex: 0
												}
											]
										},
										DataGrid: 
										{
											"columns": 
											[
												{
													"caption": "String",
													"dataField": "String",
													"dataType": "String",
													"visibleIndex": 0,
													"validationRules": 
													[
														{
															"type": "String",
															"message": "String"
														}
													],
													"lookup": 
													{
														"allowClearing": false,
														"displayExpr": "String",
														"valueExpr": "String"
													},
													"allowEditing": false,
													"encodeHtml": false,
													"editorOptions": 
													{
														"String": {}
													},
													"groupIndex": 0
												}
											],
											"showColumnLines": false,
											"showRowLines": false,
											"rowAlternationEnabled": false,
											"showBorders": false,
											"editing": 
											{
												"allowAdding": false,
												"allowDeleting": false,
												"allowUpdating": false,
												"mode": "String"
											},
											"summary": 
											{
												"groupItems": 
												[
													{
														"column": "String",
														"displayFormat": "String",
														"showInGroupFooter": false,
														"summaryType": "String"
													}
												],
												"totalItems": 
												[
													{
														"column": "String",
														"displayFormat": "String",
														"summaryType": "String"
													}
												]
											}
										}
									}
								}
							],
							DetalleLlave: 
							[
								{
									CodigoTabla: 0,
									NombreIndice: String,
									CodigoColumna: 0,
									TipoCalculo: String,
									Secuencia: String,
									NombreColumna: String
								}
							],
							Form: 
							{
								colCountByScreen: 
								{
									lg: 0,
									md: 0,
									sm: 0,
									xs: 0
								},
								labelLocation: String,
								readOnly: False,
								items: 
								[
									{
										itemType: simple,
										visibleIndex: 0
									}
								]
							},
							DataGrid: 
							{
								"columns": 
								[
									{
										"caption": "String",
										"dataField": "String",
										"dataType": "String",
										"visibleIndex": 0,
										"validationRules": 
										[
											{
												"type": "String",
												"message": "String"
											}
										],
										"lookup": 
										{
											"allowClearing": false,
											"displayExpr": "String",
											"valueExpr": "String"
										},
										"allowEditing": false,
										"encodeHtml": false,
										"editorOptions": 
										{
											"String": {}
										},
										"groupIndex": 0
									}
								],
								"showColumnLines": false,
								"showRowLines": false,
								"rowAlternationEnabled": false,
								"showBorders": false,
								"editing": 
								{
									"allowAdding": false,
									"allowDeleting": false,
									"allowUpdating": false,
									"mode": "String"
								},
								"summary": 
								{
									"groupItems": 
									[
										{
											"column": "String",
											"displayFormat": "String",
											"showInGroupFooter": false,
											"summaryType": "String"
										}
									],
									"totalItems": 
									[
										{
											"column": "String",
											"displayFormat": "String",
											"summaryType": "String"
										}
									]
								}
							}
						}
					}
				],
				DetalleLlave: 
				[
					{
						CodigoTabla: 0,
						NombreIndice: String,
						CodigoColumna: 0,
						TipoCalculo: String,
						Secuencia: String,
						NombreColumna: String
					}
				],
				Form: 
				{
					colCountByScreen: 
					{
						lg: 0,
						md: 0,
						sm: 0,
						xs: 0
					},
					labelLocation: String,
					readOnly: False,
					items: 
					[
						{
							itemType: simple,
							visibleIndex: 0
						}
					]
				},
				DataGrid: 
				{
					"columns": 
					[
						{
							"caption": "String",
							"dataField": "String",
							"dataType": "String",
							"visibleIndex": 0,
							"validationRules": 
							[
								{
									"type": "String",
									"message": "String"
								}
							],
							"lookup": 
							{
								"allowClearing": false,
								"displayExpr": "String",
								"valueExpr": "String"
							},
							"allowEditing": false,
							"encodeHtml": false,
							"editorOptions": 
							{
								"String": {}
							},
							"groupIndex": 0
						}
					],
					"showColumnLines": false,
					"showRowLines": false,
					"rowAlternationEnabled": false,
					"showBorders": false,
					"editing": 
					{
						"allowAdding": false,
						"allowDeleting": false,
						"allowUpdating": false,
						"mode": "String"
					},
					"summary": 
					{
						"groupItems": 
						[
							{
								"column": "String",
								"displayFormat": "String",
								"showInGroupFooter": false,
								"summaryType": "String"
							}
						],
						"totalItems": 
						[
							{
								"column": "String",
								"displayFormat": "String",
								"summaryType": "String"
							}
						]
					}
				}
			},
			Vista: 
			{
				Codigo: 0,
				CodigoBlob: 0,
				Nombre: String,
				Descripcion: String,
				SQL: String,
				CodigoTabla: 0,
				GuardarBinario: String,
				TipoConsulta: String,
				ExportacionDefault: String,
				TipoExportacion: String,
				ParametrosExportacion: 0,
				CodigoAyuda: String,
				EjecutarEnAdm: String,
				InfoAdicional: String,
				EjecMultiempresa: String
			},
			Version: String,
			Ordenar: String
		}
	],
	Detalles: 
	[
		{
			Codigo: 0,
			CampoAMostrar: String,
			Campos1: 
			[
				String
			],
			Campos2: 
			[
				String
			],
			Operadores: 
			[
				String
			],
			Datos: 
			[
				{
					String: {}
				}
			],
			CodigoTabla1: 0,
			SQL: String,
			TablaDetalle: 
			{
				Tabla: 
				{
					Codigo: 0,
					Propietario: String,
					Tipo: String,
					Nombre: String,
					Alias: String,
					Descripcion: String,
					ParaReportes: String,
					CrearAlIniciar: String,
					CampoEmpresa: 0,
					CampoUnico: 0
				},
				Columnas: 
				[
					{
						CodigoTabla: 0,
						Codigo: 0,
						Nombre: String,
						Alias: String,
						Descripcion: String,
						TipoDato: String,
						ObligatorioFormas: String,
						Hint: String,
						Mayuscula: String,
						Tamano: 0,
						Escala: 0,
						Tipo: String,
						VlrDefecto: String,
						PermiteEditar: String,
						Orden: 0,
						Dinamico: String,
						ClaseControl: String,
						JoinLookup: 0,
						EsID: String,
						Mascara: String,
						MostrarEnLista: String,
						InfoAdicional: String,
						WHEREDefecto: String,
						TieneResumen: String,
						FormatoResumen: String,
						TipoResumen: String,
						PosicionResumen: String,
						ResumenEnGrupo: String,
						ResumenEnTotal: String,
						IndiceGrupo: 0
					}
				],
				Lookups: 
				[
					{
						Codigo: 0,
						CampoAMostrar: String,
						Campos1: 
						[
							String
						],
						Campos2: 
						[
							String
						],
						Operadores: 
						[
							String
						],
						Datos: 
						[
							{
								String: {}
							}
						],
						CodigoTabla1: 0,
						SQL: String,
						TablaDetalle: 
						{
							Tabla: 
							{
								Codigo: 0,
								Propietario: String,
								Tipo: String,
								Nombre: String,
								Alias: String,
								Descripcion: String,
								ParaReportes: String,
								CrearAlIniciar: String,
								CampoEmpresa: 0,
								CampoUnico: 0
							},
							Columnas: 
							[
								{
									CodigoTabla: 0,
									Codigo: 0,
									Nombre: String,
									Alias: String,
									Descripcion: String,
									TipoDato: String,
									ObligatorioFormas: String,
									Hint: String,
									Mayuscula: String,
									Tamano: 0,
									Escala: 0,
									Tipo: String,
									VlrDefecto: String,
									PermiteEditar: String,
									Orden: 0,
									Dinamico: String,
									ClaseControl: String,
									JoinLookup: 0,
									EsID: String,
									Mascara: String,
									MostrarEnLista: String,
									InfoAdicional: String,
									WHEREDefecto: String,
									TieneResumen: String,
									FormatoResumen: String,
									TipoResumen: String,
									PosicionResumen: String,
									ResumenEnGrupo: String,
									ResumenEnTotal: String,
									IndiceGrupo: 0
								}
							],
							Lookups: 
							[
								{
									Codigo: 0,
									CampoAMostrar: String,
									Campos1: 
									[
										String
									],
									Campos2: 
									[
										String
									],
									Operadores: 
									[
										String
									],
									Datos: 
									[
										{
											String: {}
										}
									],
									CodigoTabla1: 0,
									SQL: String,
									TablaDetalle: 
									{
										Tabla: 
										{
											Codigo: 0,
											Propietario: String,
											Tipo: String,
											Nombre: String,
											Alias: String,
											Descripcion: String,
											ParaReportes: String,
											CrearAlIniciar: String,
											CampoEmpresa: 0,
											CampoUnico: 0
										},
										Columnas: 
										[
											{
												CodigoTabla: 0,
												Codigo: 0,
												Nombre: String,
												Alias: String,
												Descripcion: String,
												TipoDato: String,
												ObligatorioFormas: String,
												Hint: String,
												Mayuscula: String,
												Tamano: 0,
												Escala: 0,
												Tipo: String,
												VlrDefecto: String,
												PermiteEditar: String,
												Orden: 0,
												Dinamico: String,
												ClaseControl: String,
												JoinLookup: 0,
												EsID: String,
												Mascara: String,
												MostrarEnLista: String,
												InfoAdicional: String,
												WHEREDefecto: String,
												TieneResumen: String,
												FormatoResumen: String,
												TipoResumen: String,
												PosicionResumen: String,
												ResumenEnGrupo: String,
												ResumenEnTotal: String,
												IndiceGrupo: 0
											}
										],
										Frames: 
										[
											{
												Codigo: 0,
												SQL: String,
												Campos1: 
												[
													String
												],
												Campos2: 
												[
													String
												]
											}
										],
										DetalleLlave: 
										[
											{
												CodigoTabla: 0,
												NombreIndice: String,
												CodigoColumna: 0,
												TipoCalculo: String,
												Secuencia: String,
												NombreColumna: String
											}
										],
										Form: 
										{
											colCountByScreen: 
											{
												lg: 0,
												md: 0,
												sm: 0,
												xs: 0
											},
											labelLocation: String,
											readOnly: False,
											items: 
											[
												{
													itemType: simple,
													visibleIndex: 0
												}
											]
										},
										DataGrid: 
										{
											"columns": 
											[
												{
													"caption": "String",
													"dataField": "String",
													"dataType": "String",
													"visibleIndex": 0,
													"validationRules": 
													[
														{
															"type": "String",
															"message": "String"
														}
													],
													"lookup": 
													{
														"allowClearing": false,
														"displayExpr": "String",
														"valueExpr": "String"
													},
													"allowEditing": false,
													"encodeHtml": false,
													"editorOptions": 
													{
														"String": {}
													},
													"groupIndex": 0
												}
											],
											"showColumnLines": false,
											"showRowLines": false,
											"rowAlternationEnabled": false,
											"showBorders": false,
											"editing": 
											{
												"allowAdding": false,
												"allowDeleting": false,
												"allowUpdating": false,
												"mode": "String"
											},
											"summary": 
											{
												"groupItems": 
												[
													{
														"column": "String",
														"displayFormat": "String",
														"showInGroupFooter": false,
														"summaryType": "String"
													}
												],
												"totalItems": 
												[
													{
														"column": "String",
														"displayFormat": "String",
														"summaryType": "String"
													}
												]
											}
										}
									},
									Vista: 
									{
										Codigo: 0,
										CodigoBlob: 0,
										Nombre: String,
										Descripcion: String,
										SQL: String,
										CodigoTabla: 0,
										GuardarBinario: String,
										TipoConsulta: String,
										ExportacionDefault: String,
										TipoExportacion: String,
										ParametrosExportacion: 0,
										CodigoAyuda: String,
										EjecutarEnAdm: String,
										InfoAdicional: String,
										EjecMultiempresa: String
									},
									Version: String,
									Ordenar: String
								}
							],
							Frames: 
							[
								{
									Codigo: 0,
									SQL: String,
									Campos1: 
									[
										String
									],
									Campos2: 
									[
										String
									],
									TablaFrame: 
									{
										Tabla: 
										{
											Codigo: 0,
											Propietario: String,
											Tipo: String,
											Nombre: String,
											Alias: String,
											Descripcion: String,
											ParaReportes: String,
											CrearAlIniciar: String,
											CampoEmpresa: 0,
											CampoUnico: 0
										},
										Columnas: 
										[
											{
												CodigoTabla: 0,
												Codigo: 0,
												Nombre: String,
												Alias: String,
												Descripcion: String,
												TipoDato: String,
												ObligatorioFormas: String,
												Hint: String,
												Mayuscula: String,
												Tamano: 0,
												Escala: 0,
												Tipo: String,
												VlrDefecto: String,
												PermiteEditar: String,
												Orden: 0,
												Dinamico: String,
												ClaseControl: String,
												JoinLookup: 0,
												EsID: String,
												Mascara: String,
												MostrarEnLista: String,
												InfoAdicional: String,
												WHEREDefecto: String,
												TieneResumen: String,
												FormatoResumen: String,
												TipoResumen: String,
												PosicionResumen: String,
												ResumenEnGrupo: String,
												ResumenEnTotal: String,
												IndiceGrupo: 0
											}
										],
										Lookups: 
										[
											{
												Codigo: 0,
												CampoAMostrar: String,
												Campos1: 
												[
													String
												],
												Campos2: 
												[
													String
												],
												Operadores: 
												[
													String
												],
												Datos: 
												[
													{
														String: {}
													}
												],
												CodigoTabla1: 0,
												SQL: String,
												Vista: 
												{
													Codigo: 0,
													CodigoBlob: 0,
													Nombre: String,
													Descripcion: String,
													SQL: String,
													CodigoTabla: 0,
													GuardarBinario: String,
													TipoConsulta: String,
													ExportacionDefault: String,
													TipoExportacion: String,
													ParametrosExportacion: 0,
													CodigoAyuda: String,
													EjecutarEnAdm: String,
													InfoAdicional: String,
													EjecMultiempresa: String
												},
												Version: String,
												Ordenar: String
											}
										],
										Frames: 
										[
											{
												Codigo: 0,
												SQL: String,
												Campos1: 
												[
													String
												],
												Campos2: 
												[
													String
												]
											}
										],
										DetalleLlave: 
										[
											{
												CodigoTabla: 0,
												NombreIndice: String,
												CodigoColumna: 0,
												TipoCalculo: String,
												Secuencia: String,
												NombreColumna: String
											}
										],
										Form: 
										{
											colCountByScreen: 
											{
												lg: 0,
												md: 0,
												sm: 0,
												xs: 0
											},
											labelLocation: String,
											readOnly: False,
											items: 
											[
												{
													itemType: simple,
													visibleIndex: 0
												}
											]
										},
										DataGrid: 
										{
											"columns": 
											[
												{
													"caption": "String",
													"dataField": "String",
													"dataType": "String",
													"visibleIndex": 0,
													"validationRules": 
													[
														{
															"type": "String",
															"message": "String"
														}
													],
													"lookup": 
													{
														"allowClearing": false,
														"displayExpr": "String",
														"valueExpr": "String"
													},
													"allowEditing": false,
													"encodeHtml": false,
													"editorOptions": 
													{
														"String": {}
													},
													"groupIndex": 0
												}
											],
											"showColumnLines": false,
											"showRowLines": false,
											"rowAlternationEnabled": false,
											"showBorders": false,
											"editing": 
											{
												"allowAdding": false,
												"allowDeleting": false,
												"allowUpdating": false,
												"mode": "String"
											},
											"summary": 
											{
												"groupItems": 
												[
													{
														"column": "String",
														"displayFormat": "String",
														"showInGroupFooter": false,
														"summaryType": "String"
													}
												],
												"totalItems": 
												[
													{
														"column": "String",
														"displayFormat": "String",
														"summaryType": "String"
													}
												]
											}
										}
									}
								}
							],
							DetalleLlave: 
							[
								{
									CodigoTabla: 0,
									NombreIndice: String,
									CodigoColumna: 0,
									TipoCalculo: String,
									Secuencia: String,
									NombreColumna: String
								}
							],
							Form: 
							{
								colCountByScreen: 
								{
									lg: 0,
									md: 0,
									sm: 0,
									xs: 0
								},
								labelLocation: String,
								readOnly: False,
								items: 
								[
									{
										itemType: simple,
										visibleIndex: 0
									}
								]
							},
							DataGrid: 
							{
								"columns": 
								[
									{
										"caption": "String",
										"dataField": "String",
										"dataType": "String",
										"visibleIndex": 0,
										"validationRules": 
										[
											{
												"type": "String",
												"message": "String"
											}
										],
										"lookup": 
										{
											"allowClearing": false,
											"displayExpr": "String",
											"valueExpr": "String"
										},
										"allowEditing": false,
										"encodeHtml": false,
										"editorOptions": 
										{
											"String": {}
										},
										"groupIndex": 0
									}
								],
								"showColumnLines": false,
								"showRowLines": false,
								"rowAlternationEnabled": false,
								"showBorders": false,
								"editing": 
								{
									"allowAdding": false,
									"allowDeleting": false,
									"allowUpdating": false,
									"mode": "String"
								},
								"summary": 
								{
									"groupItems": 
									[
										{
											"column": "String",
											"displayFormat": "String",
											"showInGroupFooter": false,
											"summaryType": "String"
										}
									],
									"totalItems": 
									[
										{
											"column": "String",
											"displayFormat": "String",
											"summaryType": "String"
										}
									]
								}
							}
						},
						Vista: 
						{
							Codigo: 0,
							CodigoBlob: 0,
							Nombre: String,
							Descripcion: String,
							SQL: String,
							CodigoTabla: 0,
							GuardarBinario: String,
							TipoConsulta: String,
							ExportacionDefault: String,
							TipoExportacion: String,
							ParametrosExportacion: 0,
							CodigoAyuda: String,
							EjecutarEnAdm: String,
							InfoAdicional: String,
							EjecMultiempresa: String
						},
						Version: String,
						Ordenar: String
					}
				],
				Frames: 
				[
					{
						Codigo: 0,
						SQL: String,
						Campos1: 
						[
							String
						],
						Campos2: 
						[
							String
						],
						TablaFrame: 
						{
							Tabla: 
							{
								Codigo: 0,
								Propietario: String,
								Tipo: String,
								Nombre: String,
								Alias: String,
								Descripcion: String,
								ParaReportes: String,
								CrearAlIniciar: String,
								CampoEmpresa: 0,
								CampoUnico: 0
							},
							Columnas: 
							[
								{
									CodigoTabla: 0,
									Codigo: 0,
									Nombre: String,
									Alias: String,
									Descripcion: String,
									TipoDato: String,
									ObligatorioFormas: String,
									Hint: String,
									Mayuscula: String,
									Tamano: 0,
									Escala: 0,
									Tipo: String,
									VlrDefecto: String,
									PermiteEditar: String,
									Orden: 0,
									Dinamico: String,
									ClaseControl: String,
									JoinLookup: 0,
									EsID: String,
									Mascara: String,
									MostrarEnLista: String,
									InfoAdicional: String,
									WHEREDefecto: String,
									TieneResumen: String,
									FormatoResumen: String,
									TipoResumen: String,
									PosicionResumen: String,
									ResumenEnGrupo: String,
									ResumenEnTotal: String,
									IndiceGrupo: 0
								}
							],
							Lookups: 
							[
								{
									Codigo: 0,
									CampoAMostrar: String,
									Campos1: 
									[
										String
									],
									Campos2: 
									[
										String
									],
									Operadores: 
									[
										String
									],
									Datos: 
									[
										{
											String: {}
										}
									],
									CodigoTabla1: 0,
									SQL: String,
									TablaDetalle: 
									{
										Tabla: 
										{
											Codigo: 0,
											Propietario: String,
											Tipo: String,
											Nombre: String,
											Alias: String,
											Descripcion: String,
											ParaReportes: String,
											CrearAlIniciar: String,
											CampoEmpresa: 0,
											CampoUnico: 0
										},
										Columnas: 
										[
											{
												CodigoTabla: 0,
												Codigo: 0,
												Nombre: String,
												Alias: String,
												Descripcion: String,
												TipoDato: String,
												ObligatorioFormas: String,
												Hint: String,
												Mayuscula: String,
												Tamano: 0,
												Escala: 0,
												Tipo: String,
												VlrDefecto: String,
												PermiteEditar: String,
												Orden: 0,
												Dinamico: String,
												ClaseControl: String,
												JoinLookup: 0,
												EsID: String,
												Mascara: String,
												MostrarEnLista: String,
												InfoAdicional: String,
												WHEREDefecto: String,
												TieneResumen: String,
												FormatoResumen: String,
												TipoResumen: String,
												PosicionResumen: String,
												ResumenEnGrupo: String,
												ResumenEnTotal: String,
												IndiceGrupo: 0
											}
										],
										Lookups: 
										[
											{
												Codigo: 0,
												CampoAMostrar: String,
												Campos1: 
												[
													String
												],
												Campos2: 
												[
													String
												],
												Operadores: 
												[
													String
												],
												Datos: 
												[
													{
														String: {}
													}
												],
												CodigoTabla1: 0,
												SQL: String,
												Vista: 
												{
													Codigo: 0,
													CodigoBlob: 0,
													Nombre: String,
													Descripcion: String,
													SQL: String,
													CodigoTabla: 0,
													GuardarBinario: String,
													TipoConsulta: String,
													ExportacionDefault: String,
													TipoExportacion: String,
													ParametrosExportacion: 0,
													CodigoAyuda: String,
													EjecutarEnAdm: String,
													InfoAdicional: String,
													EjecMultiempresa: String
												},
												Version: String,
												Ordenar: String
											}
										],
										Frames: 
										[
											{
												Codigo: 0,
												SQL: String,
												Campos1: 
												[
													String
												],
												Campos2: 
												[
													String
												]
											}
										],
										DetalleLlave: 
										[
											{
												CodigoTabla: 0,
												NombreIndice: String,
												CodigoColumna: 0,
												TipoCalculo: String,
												Secuencia: String,
												NombreColumna: String
											}
										],
										Form: 
										{
											colCountByScreen: 
											{
												lg: 0,
												md: 0,
												sm: 0,
												xs: 0
											},
											labelLocation: String,
											readOnly: False,
											items: 
											[
												{
													itemType: simple,
													visibleIndex: 0
												}
											]
										},
										DataGrid: 
										{
											"columns": 
											[
												{
													"caption": "String",
													"dataField": "String",
													"dataType": "String",
													"visibleIndex": 0,
													"validationRules": 
													[
														{
															"type": "String",
															"message": "String"
														}
													],
													"lookup": 
													{
														"allowClearing": false,
														"displayExpr": "String",
														"valueExpr": "String"
													},
													"allowEditing": false,
													"encodeHtml": false,
													"editorOptions": 
													{
														"String": {}
													},
													"groupIndex": 0
												}
											],
											"showColumnLines": false,
											"showRowLines": false,
											"rowAlternationEnabled": false,
											"showBorders": false,
											"editing": 
											{
												"allowAdding": false,
												"allowDeleting": false,
												"allowUpdating": false,
												"mode": "String"
											},
											"summary": 
											{
												"groupItems": 
												[
													{
														"column": "String",
														"displayFormat": "String",
														"showInGroupFooter": false,
														"summaryType": "String"
													}
												],
												"totalItems": 
												[
													{
														"column": "String",
														"displayFormat": "String",
														"summaryType": "String"
													}
												]
											}
										}
									},
									Vista: 
									{
										Codigo: 0,
										CodigoBlob: 0,
										Nombre: String,
										Descripcion: String,
										SQL: String,
										CodigoTabla: 0,
										GuardarBinario: String,
										TipoConsulta: String,
										ExportacionDefault: String,
										TipoExportacion: String,
										ParametrosExportacion: 0,
										CodigoAyuda: String,
										EjecutarEnAdm: String,
										InfoAdicional: String,
										EjecMultiempresa: String
									},
									Version: String,
									Ordenar: String
								}
							],
							Frames: 
							[
								{
									Codigo: 0,
									SQL: String,
									Campos1: 
									[
										String
									],
									Campos2: 
									[
										String
									],
									TablaFrame: 
									{
										Tabla: 
										{
											Codigo: 0,
											Propietario: String,
											Tipo: String,
											Nombre: String,
											Alias: String,
											Descripcion: String,
											ParaReportes: String,
											CrearAlIniciar: String,
											CampoEmpresa: 0,
											CampoUnico: 0
										},
										Columnas: 
										[
											{
												CodigoTabla: 0,
												Codigo: 0,
												Nombre: String,
												Alias: String,
												Descripcion: String,
												TipoDato: String,
												ObligatorioFormas: String,
												Hint: String,
												Mayuscula: String,
												Tamano: 0,
												Escala: 0,
												Tipo: String,
												VlrDefecto: String,
												PermiteEditar: String,
												Orden: 0,
												Dinamico: String,
												ClaseControl: String,
												JoinLookup: 0,
												EsID: String,
												Mascara: String,
												MostrarEnLista: String,
												InfoAdicional: String,
												WHEREDefecto: String,
												TieneResumen: String,
												FormatoResumen: String,
												TipoResumen: String,
												PosicionResumen: String,
												ResumenEnGrupo: String,
												ResumenEnTotal: String,
												IndiceGrupo: 0
											}
										],
										Lookups: 
										[
											{
												Codigo: 0,
												CampoAMostrar: String,
												Campos1: 
												[
													String
												],
												Campos2: 
												[
													String
												],
												Operadores: 
												[
													String
												],
												Datos: 
												[
													{
														String: {}
													}
												],
												CodigoTabla1: 0,
												SQL: String,
												Vista: 
												{
													Codigo: 0,
													CodigoBlob: 0,
													Nombre: String,
													Descripcion: String,
													SQL: String,
													CodigoTabla: 0,
													GuardarBinario: String,
													TipoConsulta: String,
													ExportacionDefault: String,
													TipoExportacion: String,
													ParametrosExportacion: 0,
													CodigoAyuda: String,
													EjecutarEnAdm: String,
													InfoAdicional: String,
													EjecMultiempresa: String
												},
												Version: String,
												Ordenar: String
											}
										],
										Frames: 
										[
											{
												Codigo: 0,
												SQL: String,
												Campos1: 
												[
													String
												],
												Campos2: 
												[
													String
												]
											}
										],
										DetalleLlave: 
										[
											{
												CodigoTabla: 0,
												NombreIndice: String,
												CodigoColumna: 0,
												TipoCalculo: String,
												Secuencia: String,
												NombreColumna: String
											}
										],
										Form: 
										{
											colCountByScreen: 
											{
												lg: 0,
												md: 0,
												sm: 0,
												xs: 0
											},
											labelLocation: String,
											readOnly: False,
											items: 
											[
												{
													itemType: simple,
													visibleIndex: 0
												}
											]
										},
										DataGrid: 
										{
											"columns": 
											[
												{
													"caption": "String",
													"dataField": "String",
													"dataType": "String",
													"visibleIndex": 0,
													"validationRules": 
													[
														{
															"type": "String",
															"message": "String"
														}
													],
													"lookup": 
													{
														"allowClearing": false,
														"displayExpr": "String",
														"valueExpr": "String"
													},
													"allowEditing": false,
													"encodeHtml": false,
													"editorOptions": 
													{
														"String": {}
													},
													"groupIndex": 0
												}
											],
											"showColumnLines": false,
											"showRowLines": false,
											"rowAlternationEnabled": false,
											"showBorders": false,
											"editing": 
											{
												"allowAdding": false,
												"allowDeleting": false,
												"allowUpdating": false,
												"mode": "String"
											},
											"summary": 
											{
												"groupItems": 
												[
													{
														"column": "String",
														"displayFormat": "String",
														"showInGroupFooter": false,
														"summaryType": "String"
													}
												],
												"totalItems": 
												[
													{
														"column": "String",
														"displayFormat": "String",
														"summaryType": "String"
													}
												]
											}
										}
									}
								}
							],
							DetalleLlave: 
							[
								{
									CodigoTabla: 0,
									NombreIndice: String,
									CodigoColumna: 0,
									TipoCalculo: String,
									Secuencia: String,
									NombreColumna: String
								}
							],
							Form: 
							{
								colCountByScreen: 
								{
									lg: 0,
									md: 0,
									sm: 0,
									xs: 0
								},
								labelLocation: String,
								readOnly: False,
								items: 
								[
									{
										itemType: simple,
										visibleIndex: 0
									}
								]
							},
							DataGrid: 
							{
								"columns": 
								[
									{
										"caption": "String",
										"dataField": "String",
										"dataType": "String",
										"visibleIndex": 0,
										"validationRules": 
										[
											{
												"type": "String",
												"message": "String"
											}
										],
										"lookup": 
										{
											"allowClearing": false,
											"displayExpr": "String",
											"valueExpr": "String"
										},
										"allowEditing": false,
										"encodeHtml": false,
										"editorOptions": 
										{
											"String": {}
										},
										"groupIndex": 0
									}
								],
								"showColumnLines": false,
								"showRowLines": false,
								"rowAlternationEnabled": false,
								"showBorders": false,
								"editing": 
								{
									"allowAdding": false,
									"allowDeleting": false,
									"allowUpdating": false,
									"mode": "String"
								},
								"summary": 
								{
									"groupItems": 
									[
										{
											"column": "String",
											"displayFormat": "String",
											"showInGroupFooter": false,
											"summaryType": "String"
										}
									],
									"totalItems": 
									[
										{
											"column": "String",
											"displayFormat": "String",
											"summaryType": "String"
										}
									]
								}
							}
						}
					}
				],
				DetalleLlave: 
				[
					{
						CodigoTabla: 0,
						NombreIndice: String,
						CodigoColumna: 0,
						TipoCalculo: String,
						Secuencia: String,
						NombreColumna: String
					}
				],
				Form: 
				{
					colCountByScreen: 
					{
						lg: 0,
						md: 0,
						sm: 0,
						xs: 0
					},
					labelLocation: String,
					readOnly: False,
					items: 
					[
						{
							itemType: simple,
							visibleIndex: 0
						}
					]
				},
				DataGrid: 
				{
					"columns": 
					[
						{
							"caption": "String",
							"dataField": "String",
							"dataType": "String",
							"visibleIndex": 0,
							"validationRules": 
							[
								{
									"type": "String",
									"message": "String"
								}
							],
							"lookup": 
							{
								"allowClearing": false,
								"displayExpr": "String",
								"valueExpr": "String"
							},
							"allowEditing": false,
							"encodeHtml": false,
							"editorOptions": 
							{
								"String": {}
							},
							"groupIndex": 0
						}
					],
					"showColumnLines": false,
					"showRowLines": false,
					"rowAlternationEnabled": false,
					"showBorders": false,
					"editing": 
					{
						"allowAdding": false,
						"allowDeleting": false,
						"allowUpdating": false,
						"mode": "String"
					},
					"summary": 
					{
						"groupItems": 
						[
							{
								"column": "String",
								"displayFormat": "String",
								"showInGroupFooter": false,
								"summaryType": "String"
							}
						],
						"totalItems": 
						[
							{
								"column": "String",
								"displayFormat": "String",
								"summaryType": "String"
							}
						]
					}
				}
			},
			Vista: 
			{
				Codigo: 0,
				CodigoBlob: 0,
				Nombre: String,
				Descripcion: String,
				SQL: String,
				CodigoTabla: 0,
				GuardarBinario: String,
				TipoConsulta: String,
				ExportacionDefault: String,
				TipoExportacion: String,
				ParametrosExportacion: 0,
				CodigoAyuda: String,
				EjecutarEnAdm: String,
				InfoAdicional: String,
				EjecMultiempresa: String
			},
			Version: String,
			Ordenar: String
		}
	],
	DataGrid: 
	{
		"columns": 
		[
			{
				"caption": "String",
				"dataField": "String",
				"dataType": "String",
				"visibleIndex": 0,
				"validationRules": 
				[
					{
						"type": "String",
						"message": "String"
					}
				],
				"lookup": 
				{
					"allowClearing": false,
					"displayExpr": "String",
					"valueExpr": "String"
				},
				"allowEditing": false,
				"encodeHtml": false,
				"editorOptions": 
				{
					"String": {}
				},
				"groupIndex": 0
			}
		],
		"showColumnLines": false,
		"showRowLines": false,
		"rowAlternationEnabled": false,
		"showBorders": false,
		"editing": 
		{
			"allowAdding": false,
			"allowDeleting": false,
			"allowUpdating": false,
			"mode": "String"
		},
		"summary": 
		{
			"groupItems": 
			[
				{
					"column": "String",
					"displayFormat": "String",
					"showInGroupFooter": false,
					"summaryType": "String"
				}
			],
			"totalItems": 
			[
				{
					"column": "String",
					"displayFormat": "String",
					"summaryType": "String"
				}
			]
		}
	}
}