FCLT#63518 Kolommen omdraaien in 'TRANSPORT: Flexkenmerken Meldingen'
svn path=/Database/trunk/; revision=48559
This commit is contained in:
@@ -960,10 +960,10 @@ CREATE OR REPLACE PACKAGE BODY fac AS
|
||||
CURSOR old_rap
|
||||
IS
|
||||
SELECT fac_usrrap_cols_key column_id
|
||||
, fac_usrrap_cols_volgnr
|
||||
, fac_usrrap_cols_volgnr column_seq
|
||||
, fac_usrrap_cols_column_name column_name
|
||||
, fac_usrrap_cols_caption
|
||||
, fac_usrrap_cols_filter
|
||||
, fac_usrrap_cols_caption column_caption
|
||||
, fac_usrrap_cols_filter column_filter
|
||||
, fac_usrrap_cols_datatype column_datatype
|
||||
FROM fac_usrrap_cols
|
||||
WHERE fac_usrrap_key = p_usrrap_key
|
||||
@@ -988,6 +988,9 @@ CREATE OR REPLACE PACKAGE BODY fac AS
|
||||
WHERE table_name = UPPER(cp_viewname)
|
||||
ORDER BY column_id;
|
||||
|
||||
TYPE t_rap_col IS VARRAY(200) OF old_rap%ROWTYPE;
|
||||
|
||||
|
||||
v_error_nr NUMBER;
|
||||
v_viewname fac_usrrap.fac_usrrap_view_name%TYPE;
|
||||
v_procname fac_usrrap.fac_usrrap_view_name%TYPE;
|
||||
@@ -1005,6 +1008,12 @@ CREATE OR REPLACE PACKAGE BODY fac AS
|
||||
v_column_caption fac_usrrap_cols.fac_usrrap_cols_caption%TYPE;
|
||||
v_column_visible fac_usrrap_cols.fac_usrrap_cols_visible%TYPE;
|
||||
v_column_filter fac_usrrap_cols.fac_usrrap_cols_filter%TYPE;
|
||||
|
||||
v_rap_cols t_rap_col := t_rap_col();
|
||||
v_column_prev fac_usrrap_cols.fac_usrrap_cols_column_name%TYPE;
|
||||
v_newkey fac_usrrap_cols.fac_usrrap_cols_key%TYPE;
|
||||
v_index NUMBER := 0;
|
||||
|
||||
BEGIN
|
||||
BEGIN
|
||||
SELECT SUBSTR(fac_usrrap_view_name, INSTR(fac_usrrap_view_name, '.')+1) viewname
|
||||
@@ -1085,6 +1094,15 @@ CREATE OR REPLACE PACKAGE BODY fac AS
|
||||
END LOOP;
|
||||
END IF;
|
||||
--
|
||||
-- Vul array met de huidige volgorde van kolommen
|
||||
FOR rap_col IN old_rap
|
||||
LOOP
|
||||
v_index := v_index + 1;
|
||||
v_rap_cols.EXTEND;
|
||||
v_rap_cols(v_index) := rap_col;
|
||||
END LOOP;
|
||||
v_column_prev := '';
|
||||
--
|
||||
-- Nieuwe en gewijzigde kolommen
|
||||
FOR c_new IN new_rap(v_viewname)
|
||||
LOOP
|
||||
@@ -1170,8 +1188,33 @@ CREATE OR REPLACE PACKAGE BODY fac AS
|
||||
, v_column_filter
|
||||
, c_new.column_datatype
|
||||
, v_column_visible
|
||||
);
|
||||
)
|
||||
RETURNING fac_usrrap_cols_key
|
||||
INTO v_newkey;
|
||||
--
|
||||
-- Voeg nieuwe kolom toe aan array op de juiste plaats.
|
||||
v_rap_cols.EXTEND;
|
||||
FOR i IN REVERSE v_rap_cols.FIRST .. v_rap_cols.LAST
|
||||
LOOP
|
||||
IF ((i=1) OR (v_rap_cols(i-1).column_name = v_column_prev))
|
||||
THEN
|
||||
v_rap_cols(i).column_name := c_new.column_name;
|
||||
v_rap_cols(i).column_id := v_newkey;
|
||||
EXIT;
|
||||
ElSE
|
||||
v_rap_cols(i) := v_rap_cols(i-1);
|
||||
END IF;
|
||||
END LOOP;
|
||||
|
||||
END IF;
|
||||
v_column_prev := c_new.column_name;
|
||||
END LOOP;
|
||||
-- Volgorde van kolommen opnieuw vastleggen.
|
||||
FOR i IN v_rap_cols.FIRST .. v_rap_cols.LAST
|
||||
LOOP
|
||||
UPDATE fac_usrrap_cols
|
||||
SET fac_usrrap_cols_volgnr = i * 10
|
||||
WHERE fac_usrrap_cols_key = v_rap_cols(i).column_id;
|
||||
END LOOP;
|
||||
-- Update lastrefresh.
|
||||
UPDATE fac_usrrap
|
||||
|
||||
Reference in New Issue
Block a user