CREATE OR REPLACE TRIGGER EFT_NOM.cg$BUR_GTT_SPREADSHEET BEFORE UPDATE ON GTT_SPREADSHEET FOR EACH ROW DECLARE cg$rec cg$GTT_SPREADSHEET.cg$row_type; cg$ind cg$GTT_SPREADSHEET.cg$ind_type; cg$old_rec cg$GTT_SPREADSHEET.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.SPREADSHEET_ID := :new.SPREADSHEET_ID; cg$ind.SPREADSHEET_ID := (:new.SPREADSHEET_ID IS NULL AND :old.SPREADSHEET_ID IS NOT NULL ) OR (:new.SPREADSHEET_ID IS NOT NULL AND :old.SPREADSHEET_ID IS NULL) OR NOT(:new.SPREADSHEET_ID = :old.SPREADSHEET_ID) ; cg$GTT_SPREADSHEET.cg$table(cg$GTT_SPREADSHEET.idx).SPREADSHEET_ID := :old.SPREADSHEET_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$GTT_SPREADSHEET.cg$table(cg$GTT_SPREADSHEET.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$GTT_SPREADSHEET.cg$table(cg$GTT_SPREADSHEET.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$GTT_SPREADSHEET.cg$table(cg$GTT_SPREADSHEET.idx).CELL_VALUE := :old.CELL_VALUE; 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$GTT_SPREADSHEET.cg$table(cg$GTT_SPREADSHEET.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$GTT_SPREADSHEET.cg$table(cg$GTT_SPREADSHEET.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$GTT_SPREADSHEET.cg$table(cg$GTT_SPREADSHEET.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$GTT_SPREADSHEET.cg$table(cg$GTT_SPREADSHEET.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$GTT_SPREADSHEET.cg$table(cg$GTT_SPREADSHEET.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$GTT_SPREADSHEET.cg$table(cg$GTT_SPREADSHEET.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$GTT_SPREADSHEET.cg$table(cg$GTT_SPREADSHEET.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$GTT_SPREADSHEET.cg$table(cg$GTT_SPREADSHEET.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$GTT_SPREADSHEET.cg$table(cg$GTT_SPREADSHEET.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$GTT_SPREADSHEET.cg$table(cg$GTT_SPREADSHEET.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$GTT_SPREADSHEET.cg$table(cg$GTT_SPREADSHEET.idx).CELL_WRAP := :old.CELL_WRAP; cg$GTT_SPREADSHEET.idx := cg$GTT_SPREADSHEET.idx + 1; if not (cg$GTT_SPREADSHEET.called_from_package) then cg$GTT_SPREADSHEET.validate_arc(cg$rec); cg$GTT_SPREADSHEET.validate_domain(cg$rec, cg$ind); cg$GTT_SPREADSHEET.validate_domain_cascade_update(cg$old_rec); cg$GTT_SPREADSHEET.upd(cg$rec, cg$ind, FALSE); cg$GTT_SPREADSHEET.called_from_package := FALSE; end if; :new.CELL_VALUE := cg$rec.CELL_VALUE; :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; -- Application_logic Post-Before-Update-row <> -- Application_logic Post-Before-Update-row << End >> END; /