DEV ETIQUETAS/VISTA FRAME EDICION

De Pragma Wiki
Ir a la navegación Ir a la búsqueda

Descripción

La vista denominada pTAGS_FRAME_VISTA toma las definiciones hechas en FRAME EDICION y agrega algunos comandos de modo que la aplicación sepa exactamente qué frame usar para cada pantalla.

Esta etiqueta aplica exclusivamente a:

Componentes de la vista

Etiquetas definidas en clases

Todas las etiquetas definidas en clases y asociadas a la etiqueta FRAME_EDICION se toman directamente, el código es:

/* DEFINEN EN pTAGS... */

SELECT
FTIPO = pTAGSD.FOBJETO
, FCLASE = pTAGSD.FCODIGO
, FINSTANCIA = CASE WHEN pTAGSD.FTAGS = 'INSTANCIA1' THEN 1 ELSE 2 END
, FFRAME = REPLACE(pTAGSD.FCOMANDO, '<TAG FRAME>', '')
, FFRAMECAPTION = prxclases.Descripcion

, FFRAMES =
ISNULL
(
(
SELECT REPLACE(F.FCOMANDO, '<TAG FRAMESUB>', '') FROM pTAGSD F WHERE
F.FOBJETO = pTAGSD.FOBJETO
AND F.FCODIGO = pTAGSD.FCODIGO
AND F.FTAG = pTAGSD.FTAG
AND F.FTAGS = pTAGSD.FTAGS
AND F.FCOMANDO LIKE '%<TAG FRAMESUB>%'
)
,'NA'
)

, FFRAMEARGS =
(
SELECT REPLACE(F.FCOMANDO, '<TAG FRAMETAGS>', '') FROM pTAGSD F WHERE
F.FOBJETO = pTAGSD.FOBJETO
AND F.FCODIGO = pTAGSD.FCODIGO
AND F.FTAG = pTAGSD.FTAG
AND F.FTAGS = pTAGSD.FTAGS
AND F.FCOMANDO LIKE '%<TAG FRAMETAGS>%'
)

, FMODOEDICION = prxclases.DetalleVisual
, FTABLENAME = pTAGSD.FCODIGO
, FCRITERIO = 'prxclases que definen pTAGS'

FROM
pTAGSD

INNER JOIN prxclases ON
prxclases.Codigo = pTAGSD.FCODIGO

WHERE
pTAGSD.FOBJETO = 'PRXCLASES'
AND pTAGSD.FTAG = 'FRAME_EDICION'
AND pTAGSD.FTAGS IN ('INSTANCIA1','INSTANCIA2')
AND pTAGSD.FCOMANDO LIKE '%<TAG FRAME>%'

Clases que no definen etiquetas

Aquellas clases que no definen etiquetas se asocian en la vista a los frames TTfvsDBClientFrameGridClases o TTfvsDBClientFrameMasterClases, el código es:

/* NO DEFINEN EN pTAGS... */

UNION SELECT
FTIPO = 'PRXCLASES'
, FCLASE = prxclases.Codigo
, FINSTANCIA = CASE WHEN pTAGSD_DEF.FCODIGO = 'INSTANCIA1' THEN 1 ELSE 2 END
, FFRAME = CASE WHEN pTAGSD_DEF.FCODIGO = 'INSTANCIA1' THEN 'TTfvsDBClientFrameGridClases' ELSE 'TTfvsDBClientFrameMasterClases' END
, FFRAMECAPTION = prxclases.Descripcion
, FFRAMES = CASE WHEN pTAGSD_DEF.FCODIGO = 'INSTANCIA1' THEN 'NA' ELSE 'TTfvsDBClientFrameScrollBox' END
, FFRAMEARGS = NULL
, FMODOEDICION = prxclases.DetalleVisual
, FTABLENAME = prxclases.Codigo
, FCRITERIO = 'prxclases que no definen pTAGS'

FROM
prxclases

INNER JOIN pTAGSD_DEF ON
pTAGSD_DEF.FTAG = 'FRAME_EDICION'
AND pTAGSD_DEF.FCODIGO IN ('INSTANCIA1','INSTANCIA2')

WHERE
NOT EXISTS
(
SELECT * FROM pTAGS WHERE
pTAGS.FOBJETO = 'prxclases'
AND pTAGS.FCODIGO = prxclases.Codigo
AND pTAGS.FTAG = 'FRAME_EDICION'
)
AND NOT EXISTS
(
SELECT * FROM pTAGS WHERE
pTAGS.FOBJETO = 'prxclases'
AND pTAGS.FCODIGO = prxclases.Codigo
AND pTAGS.FTAG = 'VISIBLE'
AND pTAGS.FTAGS = 'Falso'
)

La vista agrega registros como si se hubieran definido de la siguiente manera:

FOBJETO FCODIGO FTAG FTAGS FLINEA FCOMANDO
PRXCLASES ART FRAME_EDICION INSTANCIA1 1 <TAG FRAME>TTfvsDBClientFrameGridClases
PRXCLASES ART FRAME_EDICION INSTANCIA1 2 <TAG FRAMESUB>NA
PRXCLASES ART FRAME_EDICION INSTANCIA2 1 <TAG FRAME>TTfvsDBClientFrameMasterClases
PRXCLASES ART FRAME_EDICION INSTANCIA2 2 <TAG FRAME>TTfvsDBClientFrameScrollBox

Agregado automático de consultas

El frame TTfvsDBClientFrameGridConsultas se asocia a las consultas directamente, el código es:

/* prxconsultas... */

UNION SELECT
FTIPO = 'prxconsultas'
, FCLASE = prxconsultas.Codigo
, FINSTANCIA = 1
, Frame = 'TTfvsDBClientFrameGridConsultas'
, FrameCaption = prxconsultas.Descripcion
, FrameS = 'NA'
, FrameArgs = NULL
, ModoEdicion = 'master'
, Tablename = prxconsultas.Codigo
, FCRITERIO = 'prxconsultas'
FROM
prxconsultas

Agregado automático de DEV FRAMES

Los frames (de Delphi) se asocian al que tienen definido en el campo NombreFrame, el código es:

/* prxframes... */

UNION SELECT
FTIPO = 'PRXFRAMES'
, FCODIGO = prxframes.Codigo
, FINSTANCIA = 1
, FFRAME = prxframes.NombreFrame
, FFRAMECAPTION = prxframes.Descripcion
, FFRAMES = 'NA'
, FFRAMEARGS = NULL
, FMODOEDICION = 'master'
, FTABLENAME = prxframes.Codigo
, FCRITERIO = 'PRXFRAMES'

FROM
prxframes