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
