help: running total problem
From: Qi Y. Zeng <qizeng_at_acsu.buffalo.edu>
Date: Thu, 31 Mar 1994 02:46:20 GMT
Message-ID: <CnID19.IDs_at_acsu.buffalo.edu>
Date: Thu, 31 Mar 1994 02:46:20 GMT
Message-ID: <CnID19.IDs_at_acsu.buffalo.edu>
qizeng
/* Copyright (c) 1988 by the Oracle Corporation */
SQL*FORMS_VERSION = 03.00.16.12.07
TERSE = ON
DEFINE FORM
NAME = CU_BO
TITLE = cu_bo
DEFAULT_MENU_APPLICATION = DEFAULT
VALIDATION_UNIT = FIELD
DEFINE PROCEDURE
NAME = CAL_TOTAL DEFINITION = <<< Procedure cal_total IS BEGIN SELECT NVL(AMOUNT_DUE,0) INTO :CU.TOTAL_OUTSTANDING FROM BOOKINGS WHERE BOOKINGS.CUST_NO = :CU.CUST_NO AND BOOKINGS.PAID != 'Y'; EXCEPTION WHEN no_data_found THEN :CU.TOTAL_OUTSTANDING := 0; END; >>>
ENDDEFINE PROCEDURE DEFINE PROCEDURE
NAME = check_package_failure DEFINITION = <<< procedure check_package_failure is begin if not form_success then raise FORM_TRIGGER_FAILURE; end if; end; >>>
ENDDEFINE PROCEDURE DEFINE PROCEDURE
NAME = clear_cu_details DEFINITION = <<< procedure clear_cu_details ( checkmaster boolean, opt number ) is begin if ( not checkmaster or ((:cu.CUST_NO is not null)) ) then clear_details('bo', 'cu', opt); end if ; go_block('cu'); end; >>>
ENDDEFINE PROCEDURE DEFINE PROCEDURE
NAME = clear_details DEFINITION = <<< procedure clear_details ( detail char, master char, opt number ) is begin go_block(detail); check_package_failure; if :system.block_status = 'CHANGED' then clear_block(opt); if :system.block_status = 'CHANGED' then go_block(master); raise FORM_TRIGGER_FAILURE; end if; end if; clear_block; end; >>>
ENDDEFINE PROCEDURE DEFINE PROCEDURE
NAME = query_cu_details DEFINITION = <<< procedure query_cu_details is begin if ( (:cu.CUST_NO is not null) and :system.record_status != 'NEW' ) then query_details('bo'); end if; go_block('cu'); end; >>>
ENDDEFINE PROCEDURE DEFINE PROCEDURE
NAME = query_details DEFINITION = <<< procedure query_details ( detail char ) is begin go_block(detail); check_package_failure; execute_query; end; >>>
ENDDEFINE PROCEDURE DEFINE BLOCK
NAME = cu DESCRIPTION = cu TABLE = customers ROWS_DISPLAYED = 1 BASE_LINE = 1 LINES_PER_ROW = 0 ARRAY_SIZE = 0 DEFINE TRIGGER NAME = KEY-CLRBLK TRIGGER_TYPE = V3 TEXT = <<< clear_cu_details(TRUE, ASK_COMMIT); clear_block; exception when form_trigger_failure then null;
>>>
ENDDEFINE TRIGGER DEFINE TRIGGER NAME = KEY-CLRREC TRIGGER_TYPE = V3 TEXT = <<< clear_record; clear_cu_details(FALSE, ASK_COMMIT); query_cu_details; exception when form_trigger_failure then null;
>>>
ENDDEFINE TRIGGER DEFINE TRIGGER NAME = KEY-CREREC TRIGGER_TYPE = V3 TEXT = <<< clear_cu_details(TRUE, ASK_COMMIT); create_record; exception when form_trigger_failure then null;
>>>
ENDDEFINE TRIGGER DEFINE TRIGGER NAME = KEY-DELREC TRIGGER_TYPE = V3 TEXT = <<< declare cursor detail_cur is select 'x' from bookings where CUST_NO = :cu.CUST_NO; detail_dummy char(1); begin open detail_cur; fetch detail_cur into detail_dummy; if ( detail_cur%found ) then message ('Cannot delete master record when matching detail records exist.'); close detail_cur; raise form_trigger_failure; end if; close detail_cur; end; begin delete_record; clear_cu_details(FALSE, NO_COMMIT); query_cu_details; exception when form_trigger_failure then null; end;
>>>
ENDDEFINE TRIGGER DEFINE TRIGGER NAME = KEY-DOWN TRIGGER_TYPE = V3 TEXT = <<< clear_cu_details(TRUE, ASK_COMMIT); down; query_cu_details; exception when form_trigger_failure then null;
>>>
ENDDEFINE TRIGGER DEFINE TRIGGER NAME = KEY-ENTQRY TRIGGER_TYPE = V3 TEXT = <<< clear_cu_details(TRUE, ASK_COMMIT); enter_query; query_cu_details; exception when form_trigger_failure then null;
>>>
ENDDEFINE TRIGGER DEFINE TRIGGER NAME = KEY-EXEQRY TRIGGER_TYPE = V3 TEXT = <<< clear_cu_details(TRUE, ASK_COMMIT); execute_query; query_cu_details; exception when form_trigger_failure then null;
>>>
ENDDEFINE TRIGGER DEFINE TRIGGER NAME = KEY-NXTREC TRIGGER_TYPE = V3 TEXT = <<< clear_cu_details(TRUE, ASK_COMMIT); next_record; query_cu_details; exception when form_trigger_failure then null;
>>>
ENDDEFINE TRIGGER DEFINE TRIGGER NAME = KEY-NXTSET TRIGGER_TYPE = V3 TEXT = <<< clear_cu_details(TRUE, ASK_COMMIT); next_set; query_cu_details; exception when form_trigger_failure then null;
>>>
ENDDEFINE TRIGGER DEFINE TRIGGER NAME = KEY-PRVREC TRIGGER_TYPE = V3 TEXT = <<< clear_cu_details(TRUE, ASK_COMMIT); previous_record; query_cu_details; exception when form_trigger_failure then null;
>>>
ENDDEFINE TRIGGER DEFINE TRIGGER NAME = KEY-SCRDOWN TRIGGER_TYPE = V3 TEXT = <<< clear_cu_details(TRUE, ASK_COMMIT); scroll_down; query_cu_details; exception when form_trigger_failure then null;
>>>
ENDDEFINE TRIGGER DEFINE TRIGGER NAME = KEY-SCRUP TRIGGER_TYPE = V3 TEXT = <<< clear_cu_details(TRUE, ASK_COMMIT); scroll_up; query_cu_details; exception when form_trigger_failure then null;
>>>
ENDDEFINE TRIGGER DEFINE TRIGGER NAME = KEY-UP TRIGGER_TYPE = V3 TEXT = <<< clear_cu_details(TRUE, ASK_COMMIT); up; query_cu_details; exception when form_trigger_failure then null;
>>>
ENDDEFINE TRIGGER DEFINE FIELD NAME = CUST_NO DATATYPE = NUMBER LENGTH = 4 DISPLAY_LENGTH = 4 QUERY_LENGTH = 4 MANDATORY = ON PAGE = 1 LINE = 4 COLUMN = 20 HELP = Enter value for : CUST_NO UPDATE = OFF ENDDEFINE FIELD DEFINE FIELD NAME = CUST_NAME DATATYPE = CHAR LENGTH = 8 DISPLAY_LENGTH = 8 QUERY_LENGTH = 8 PAGE = 1 LINE = 4 COLUMN = 60 HELP = Enter value for : CUST_NAME ENDDEFINE FIELD DEFINE FIELD NAME = ADDRESS DATATYPE = CHAR LENGTH = 15 DISPLAY_LENGTH = 15 QUERY_LENGTH = 15 PAGE = 1 LINE = 6 COLUMN = 20 HELP = Enter value for : ADDRESS ENDDEFINE FIELD DEFINE FIELD NAME = CITY DATATYPE = CHAR LENGTH = 10 DISPLAY_LENGTH = 10 QUERY_LENGTH = 10 PAGE = 1 LINE = 6 COLUMN = 60 HELP = Enter value for : CITY ENDDEFINE FIELD DEFINE FIELD NAME = ZIP_CODE DATATYPE = NUMBER LENGTH = 7 DISPLAY_LENGTH = 7 QUERY_LENGTH = 7 PAGE = 1 LINE = 8 COLUMN = 20 HELP = Enter value for : ZIP_CODE ENDDEFINE FIELD DEFINE FIELD NAME = CONTACT DATATYPE = CHAR LENGTH = 5 DISPLAY_LENGTH = 5 QUERY_LENGTH = 5 PAGE = 1 LINE = 8 COLUMN = 60 HELP = Enter value for : CONTACT ENDDEFINE FIELD DEFINE FIELD NAME = PAY_METHOD DATATYPE = CHAR LENGTH = 6 DISPLAY_LENGTH = 6 QUERY_LENGTH = 6 PAGE = 1 LINE = 10 COLUMN = 20 HELP = Enter value for : PAY_METHOD ENDDEFINE FIELD DEFINE FIELD NAME = TOTAL_OUTSTANDING DATATYPE = RMONEY LENGTH = 8 DISPLAY_LENGTH = 8 QUERY_LENGTH = 8 BASE_TABLE = OFF MANDATORY = ON PAGE = 1 LINE = 12 COLUMN = 60 ECHO = OFF INPUT = OFF UPDATE = OFF AUTOHELP = ON ENDDEFINE FIELD
ENDDEFINE BLOCK DEFINE BLOCK
NAME = bo DESCRIPTION = bo TABLE = bookings ROWS_DISPLAYED = 2 BASE_LINE = 15 LINES_PER_ROW = 1 ARRAY_SIZE = 0 DEFINE TRIGGER NAME = PRE-QUERY TRIGGER_TYPE = V3 TEXT = <<< cal_total;
>>>
ENDDEFINE TRIGGER DEFINE FIELD NAME = BOOKING_NO DATATYPE = NUMBER LENGTH = 5 DISPLAY_LENGTH = 5 QUERY_LENGTH = 5 MANDATORY = ON PAGE = 1 LINE = 1 COLUMN = 2 HELP = Enter value for : BOOKING_NO ENDDEFINE FIELD DEFINE FIELD NAME = AMOUNT_DUE DATATYPE = NUMBER LENGTH = 8 DISPLAY_LENGTH = 8 QUERY_LENGTH = 8 PAGE = 1 LINE = 1 COLUMN = 15 HELP = Enter value for : AMOUNT_DUE ENDDEFINE FIELD DEFINE FIELD NAME = PAID DATATYPE = CHAR LENGTH = 1 DISPLAY_LENGTH = 1 QUERY_LENGTH = 1 PAGE = 1 LINE = 1 COLUMN = 30 HELP = Enter value for : PAID ENDDEFINE FIELD DEFINE FIELD NAME = CUST_NO DATATYPE = NUMBER LENGTH = 1 DISPLAY_LENGTH = 1 QUERY_LENGTH = 1 MANDATORY = ON DISPLAYED = OFF PAGE = 1 LINE = 1 COLUMN = 79 ENFORCE_KEY_FROM = cu.CUST_NO ECHO = OFF INPUT = OFF UPDATE = OFF QUERY = OFF ENDDEFINE FIELD
ENDDEFINE BLOCK DEFINE SCREEN DEFINE PAGE
PAGE = 1 PAGE_XS = 0 PAGE_YS = 0 PAGE_PX0 = 0 PAGE_PY0 = 0 PAGE_PXS = 0 PAGE_PYS = 0 PAGE_SX0 = 0 PAGE_SY0 = 0 MODE = TEXT LINE = 2 BOILER = <<< ======== CU ========
>>>
LINE = 4 BOILER = <<< CUST_NO CUST_NAME
>>>
LINE = 6 BOILER = <<< ADDRESS CITY
>>>
LINE = 8 BOILER = <<< ZIP_CODE CONTACT
>>>
LINE = 10 BOILER = <<< PAY_METHOD ------------------------------------------------------------------------------- Total Outstanding
>>>
LINE = 14 BOILER = <<< Bookings Cost Paid?
>>>
ENDDEFINE PAGE DEFINE PAGE PAGE = 2 PAGE_XS = 0 PAGE_YS = 0 PAGE_PX0 = 0 PAGE_PY0 = 0 PAGE_PXS = 0 PAGE_PYS = 0 PAGE_SX0 = 0 PAGE_SY0 = 0 MODE = TEXT LINE = 2 BOILER = <<< ======== BO ========
>>>
ENDDEFINE PAGE
ENDDEFINE SCREEN ENDDEFINE FORM
-- qizeng_at_acsu.buffalo.edu testReceived on Thu Mar 31 1994 - 04:46:20 CEST