DEV ETIQUETAS/VISTA FRAME EDICION
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