CREATE OR REPLACE TRIGGER EFT_NOM.cg$BUR_SPREADSHEET_TEMPLATE_VA BEFORE UPDATE ON SPREADSHEET_TEMPLATE_VALUES FOR EACH ROW DECLARE cg$rec cg$SPREADSHEET_TEMPLATE_VALUES.cg$row_type; cg$ind cg$SPREADSHEET_TEMPLATE_VALUES.cg$ind_type; cg$old_rec cg$SPREADSHEET_TEMPLATE_VALUES.cg$row_type; BEGIN -- Application_logic Pre-Before-Update-row <> -- Application_logic Pre-Before-Update-row << End >> -- Load cg$rec/cg$ind values from new cg$rec.CREATED_BY := :new.CREATED_BY; cg$ind.CREATED_BY := (:new.CREATED_BY IS NULL AND :old.CREATED_BY IS NOT NULL ) OR (:new.CREATED_BY IS NOT NULL AND :old.CREATED_BY IS NULL) OR NOT(:new.CREATED_BY = :old.CREATED_BY) ; cg$SPREADSHEET_TEMPLATE_VALUES.cg$table(cg$SPREADSHEET_TEMPLATE_VALUES.idx).CREATED_BY := :old.CREATED_BY; cg$rec.SPTV_ID := :new.SPTV_ID; cg$ind.SPTV_ID := (:new.SPTV_ID IS NULL AND :old.SPTV_ID IS NOT NULL ) OR (:new.SPTV_ID IS NOT NULL AND :old.SPTV_ID IS NULL) OR NOT(:new.SPTV_ID = :old.SPTV_ID) ; cg$SPREADSHEET_TEMPLATE_VALUES.cg$table(cg$SPREADSHEET_TEMPLATE_VALUES.idx).SPTV_ID := :old.SPTV_ID; cg$rec.NAME := :new.NAME; cg$ind.NAME := (:new.NAME IS NULL AND :old.NAME IS NOT NULL ) OR (:new.NAME IS NOT NULL AND :old.NAME IS NULL) OR NOT(:new.NAME = :old.NAME) ; cg$SPREADSHEET_TEMPLATE_VALUES.cg$table(cg$SPREADSHEET_TEMPLATE_VALUES.idx).NAME := :old.NAME; cg$rec.SPTE_ID := :new.SPTE_ID; cg$ind.SPTE_ID := (:new.SPTE_ID IS NULL AND :old.SPTE_ID IS NOT NULL ) OR (:new.SPTE_ID IS NOT NULL AND :old.SPTE_ID IS NULL) OR NOT(:new.SPTE_ID = :old.SPTE_ID) ; cg$SPREADSHEET_TEMPLATE_VALUES.cg$table(cg$SPREADSHEET_TEMPLATE_VALUES.idx).SPTE_ID := :old.SPTE_ID; cg$rec.X_AXIS := :new.X_AXIS; cg$ind.X_AXIS := (:new.X_AXIS IS NULL AND :old.X_AXIS IS NOT NULL ) OR (:new.X_AXIS IS NOT NULL AND :old.X_AXIS IS NULL) OR NOT(:new.X_AXIS = :old.X_AXIS) ; cg$SPREADSHEET_TEMPLATE_VALUES.cg$table(cg$SPREADSHEET_TEMPLATE_VALUES.idx).X_AXIS := :old.X_AXIS; cg$rec.Y_AXIS := :new.Y_AXIS; cg$ind.Y_AXIS := (:new.Y_AXIS IS NULL AND :old.Y_AXIS IS NOT NULL ) OR (:new.Y_AXIS IS NOT NULL AND :old.Y_AXIS IS NULL) OR NOT(:new.Y_AXIS = :old.Y_AXIS) ; cg$SPREADSHEET_TEMPLATE_VALUES.cg$table(cg$SPREADSHEET_TEMPLATE_VALUES.idx).Y_AXIS := :old.Y_AXIS; cg$rec.CELL_VALUE := :new.CELL_VALUE; cg$ind.CELL_VALUE := (:new.CELL_VALUE IS NULL AND :old.CELL_VALUE IS NOT NULL ) OR (:new.CELL_VALUE IS NOT NULL AND :old.CELL_VALUE IS NULL) OR NOT(:new.CELL_VALUE = :old.CELL_VALUE) ; cg$SPREADSHEET_TEMPLATE_VALUES.cg$table(cg$SPREADSHEET_TEMPLATE_VALUES.idx).CELL_VALUE := :old.CELL_VALUE; cg$rec.X_RANGE := :new.X_RANGE; cg$ind.X_RANGE := (:new.X_RANGE IS NULL AND :old.X_RANGE IS NOT NULL ) OR (:new.X_RANGE IS NOT NULL AND :old.X_RANGE IS NULL) OR NOT(:new.X_RANGE = :old.X_RANGE) ; cg$SPREADSHEET_TEMPLATE_VALUES.cg$table(cg$SPREADSHEET_TEMPLATE_VALUES.idx).X_RANGE := :old.X_RANGE; cg$rec.Y_RANGE := :new.Y_RANGE; cg$ind.Y_RANGE := (:new.Y_RANGE IS NULL AND :old.Y_RANGE IS NOT NULL ) OR (:new.Y_RANGE IS NOT NULL AND :old.Y_RANGE IS NULL) OR NOT(:new.Y_RANGE = :old.Y_RANGE) ; cg$SPREADSHEET_TEMPLATE_VALUES.cg$table(cg$SPREADSHEET_TEMPLATE_VALUES.idx).Y_RANGE := :old.Y_RANGE; cg$rec.CELL_DATATYPE := :new.CELL_DATATYPE; cg$ind.CELL_DATATYPE := (:new.CELL_DATATYPE IS NULL AND :old.CELL_DATATYPE IS NOT NULL ) OR (:new.CELL_DATATYPE IS NOT NULL AND :old.CELL_DATATYPE IS NULL) OR NOT(:new.CELL_DATATYPE = :old.CELL_DATATYPE) ; cg$SPREADSHEET_TEMPLATE_VALUES.cg$table(cg$SPREADSHEET_TEMPLATE_VALUES.idx).CELL_DATATYPE := :old.CELL_DATATYPE; cg$rec.CELL_FORMAT_MASK := :new.CELL_FORMAT_MASK; cg$ind.CELL_FORMAT_MASK := (:new.CELL_FORMAT_MASK IS NULL AND :old.CELL_FORMAT_MASK IS NOT NULL ) OR (:new.CELL_FORMAT_MASK IS NOT NULL AND :old.CELL_FORMAT_MASK IS NULL) OR NOT(:new.CELL_FORMAT_MASK = :old.CELL_FORMAT_MASK) ; cg$SPREADSHEET_TEMPLATE_VALUES.cg$table(cg$SPREADSHEET_TEMPLATE_VALUES.idx).CELL_FORMAT_MASK := :old.CELL_FORMAT_MASK; cg$rec.CELL_BORDER := :new.CELL_BORDER; cg$ind.CELL_BORDER := (:new.CELL_BORDER IS NULL AND :old.CELL_BORDER IS NOT NULL ) OR (:new.CELL_BORDER IS NOT NULL AND :old.CELL_BORDER IS NULL) OR NOT(:new.CELL_BORDER = :old.CELL_BORDER) ; cg$SPREADSHEET_TEMPLATE_VALUES.cg$table(cg$SPREADSHEET_TEMPLATE_VALUES.idx).CELL_BORDER := :old.CELL_BORDER; cg$rec.CELL_BACKGROUND := :new.CELL_BACKGROUND; cg$ind.CELL_BACKGROUND := (:new.CELL_BACKGROUND IS NULL AND :old.CELL_BACKGROUND IS NOT NULL ) OR (:new.CELL_BACKGROUND IS NOT NULL AND :old.CELL_BACKGROUND IS NULL) OR NOT(:new.CELL_BACKGROUND = :old.CELL_BACKGROUND) ; cg$SPREADSHEET_TEMPLATE_VALUES.cg$table(cg$SPREADSHEET_TEMPLATE_VALUES.idx).CELL_BACKGROUND := :old.CELL_BACKGROUND; cg$rec.CELL_MERGE := :new.CELL_MERGE; cg$ind.CELL_MERGE := (:new.CELL_MERGE IS NULL AND :old.CELL_MERGE IS NOT NULL ) OR (:new.CELL_MERGE IS NOT NULL AND :old.CELL_MERGE IS NULL) OR NOT(:new.CELL_MERGE = :old.CELL_MERGE) ; cg$SPREADSHEET_TEMPLATE_VALUES.cg$table(cg$SPREADSHEET_TEMPLATE_VALUES.idx).CELL_MERGE := :old.CELL_MERGE; cg$rec.CELL_FONT := :new.CELL_FONT; cg$ind.CELL_FONT := (:new.CELL_FONT IS NULL AND :old.CELL_FONT IS NOT NULL ) OR (:new.CELL_FONT IS NOT NULL AND :old.CELL_FONT IS NULL) OR NOT(:new.CELL_FONT = :old.CELL_FONT) ; cg$SPREADSHEET_TEMPLATE_VALUES.cg$table(cg$SPREADSHEET_TEMPLATE_VALUES.idx).CELL_FONT := :old.CELL_FONT; cg$rec.CELL_FONTSIZE := :new.CELL_FONTSIZE; cg$ind.CELL_FONTSIZE := (:new.CELL_FONTSIZE IS NULL AND :old.CELL_FONTSIZE IS NOT NULL ) OR (:new.CELL_FONTSIZE IS NOT NULL AND :old.CELL_FONTSIZE IS NULL) OR NOT(:new.CELL_FONTSIZE = :old.CELL_FONTSIZE) ; cg$SPREADSHEET_TEMPLATE_VALUES.cg$table(cg$SPREADSHEET_TEMPLATE_VALUES.idx).CELL_FONTSIZE := :old.CELL_FONTSIZE; cg$rec.CELL_ALIGN := :new.CELL_ALIGN; cg$ind.CELL_ALIGN := (:new.CELL_ALIGN IS NULL AND :old.CELL_ALIGN IS NOT NULL ) OR (:new.CELL_ALIGN IS NOT NULL AND :old.CELL_ALIGN IS NULL) OR NOT(:new.CELL_ALIGN = :old.CELL_ALIGN) ; cg$SPREADSHEET_TEMPLATE_VALUES.cg$table(cg$SPREADSHEET_TEMPLATE_VALUES.idx).CELL_ALIGN := :old.CELL_ALIGN; cg$rec.COL_WIDTH := :new.COL_WIDTH; cg$ind.COL_WIDTH := (:new.COL_WIDTH IS NULL AND :old.COL_WIDTH IS NOT NULL ) OR (:new.COL_WIDTH IS NOT NULL AND :old.COL_WIDTH IS NULL) OR NOT(:new.COL_WIDTH = :old.COL_WIDTH) ; cg$SPREADSHEET_TEMPLATE_VALUES.cg$table(cg$SPREADSHEET_TEMPLATE_VALUES.idx).COL_WIDTH := :old.COL_WIDTH; cg$rec.ROW_HEIGHT := :new.ROW_HEIGHT; cg$ind.ROW_HEIGHT := (:new.ROW_HEIGHT IS NULL AND :old.ROW_HEIGHT IS NOT NULL ) OR (:new.ROW_HEIGHT IS NOT NULL AND :old.ROW_HEIGHT IS NULL) OR NOT(:new.ROW_HEIGHT = :old.ROW_HEIGHT) ; cg$SPREADSHEET_TEMPLATE_VALUES.cg$table(cg$SPREADSHEET_TEMPLATE_VALUES.idx).ROW_HEIGHT := :old.ROW_HEIGHT; cg$rec.CELL_WRAP := :new.CELL_WRAP; cg$ind.CELL_WRAP := (:new.CELL_WRAP IS NULL AND :old.CELL_WRAP IS NOT NULL ) OR (:new.CELL_WRAP IS NOT NULL AND :old.CELL_WRAP IS NULL) OR NOT(:new.CELL_WRAP = :old.CELL_WRAP) ; cg$SPREADSHEET_TEMPLATE_VALUES.cg$table(cg$SPREADSHEET_TEMPLATE_VALUES.idx).CELL_WRAP := :old.CELL_WRAP; cg$rec.CREATED_ON := :new.CREATED_ON; cg$ind.CREATED_ON := (:new.CREATED_ON IS NULL AND :old.CREATED_ON IS NOT NULL ) OR (:new.CREATED_ON IS NOT NULL AND :old.CREATED_ON IS NULL) OR NOT(:new.CREATED_ON = :old.CREATED_ON) ; cg$SPREADSHEET_TEMPLATE_VALUES.cg$table(cg$SPREADSHEET_TEMPLATE_VALUES.idx).CREATED_ON := :old.CREATED_ON; cg$SPREADSHEET_TEMPLATE_VALUES.idx := cg$SPREADSHEET_TEMPLATE_VALUES.idx + 1; if not (cg$SPREADSHEET_TEMPLATE_VALUES.called_from_package) then cg$SPREADSHEET_TEMPLATE_VALUES.validate_arc(cg$rec); cg$SPREADSHEET_TEMPLATE_VALUES.validate_domain(cg$rec, cg$ind); cg$SPREADSHEET_TEMPLATE_VALUES.validate_domain_cascade_update(cg$old_rec); cg$SPREADSHEET_TEMPLATE_VALUES.upd(cg$rec, cg$ind, FALSE); cg$SPREADSHEET_TEMPLATE_VALUES.called_from_package := FALSE; end if; :new.CREATED_BY := cg$rec.CREATED_BY; :new.NAME := cg$rec.NAME; :new.SPTE_ID := cg$rec.SPTE_ID; :new.X_AXIS := cg$rec.X_AXIS; :new.Y_AXIS := cg$rec.Y_AXIS; :new.CELL_VALUE := cg$rec.CELL_VALUE; :new.X_RANGE := cg$rec.X_RANGE; :new.Y_RANGE := cg$rec.Y_RANGE; :new.CELL_DATATYPE := cg$rec.CELL_DATATYPE; :new.CELL_FORMAT_MASK := cg$rec.CELL_FORMAT_MASK; :new.CELL_BORDER := cg$rec.CELL_BORDER; :new.CELL_BACKGROUND := cg$rec.CELL_BACKGROUND; :new.CELL_MERGE := cg$rec.CELL_MERGE; :new.CELL_FONT := cg$rec.CELL_FONT; :new.CELL_FONTSIZE := cg$rec.CELL_FONTSIZE; :new.CELL_ALIGN := cg$rec.CELL_ALIGN; :new.COL_WIDTH := cg$rec.COL_WIDTH; :new.ROW_HEIGHT := cg$rec.ROW_HEIGHT; :new.CELL_WRAP := cg$rec.CELL_WRAP; :new.CREATED_ON := cg$rec.CREATED_ON; -- Application_logic Post-Before-Update-row <> -- Application_logic Post-Before-Update-row << End >> END; /