home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 5 / 05.iso / a / a523 / 10.ddi / ORDER.IN1 < prev    next >
Encoding:
Text File  |  1990-05-21  |  46.0 KB  |  2,011 lines

  1.  
  2. /* Copyright (c) 1988 by the Oracle Corporation */
  3.  
  4.  
  5. SQL*FORMS_VERSION = 03.00.15.00.00
  6.  
  7. DEFINE FORM
  8.  
  9.    NAME = order
  10.    TITLE = Order Entry
  11.    DEFAULT_MENU_APPLICATION = DEFAULT
  12.    ROOT_MENU = 
  13.    GROUP_NAME = 
  14.    MOUSE_NAVIGATION_LIMIT = 
  15.    VALIDATION_UNIT = 
  16.  
  17.    DEFINE PROCEDURE
  18.  
  19.       NAME = check_total
  20.       DEFINITION = <<<
  21.       procedure check_total is
  22.       begin
  23.          if nvl(:orders.total,0) >=7500
  24.          then display_field('orders.total','bold');
  25.          else display_field('orders.total','normal');
  26.          end if;
  27.       end;
  28.       >>>
  29.  
  30.    ENDDEFINE PROCEDURE
  31.  
  32.    DEFINE PROCEDURE
  33.  
  34.       NAME = checkdate
  35.       DEFINITION = <<<
  36.       procedure checkdate is
  37.       begin
  38.         if (:orders.shipdate is not null) and
  39.            (:orders.orderdate is not null)
  40.           then
  41.             if
  42.                :shipdate < :orderdate 
  43.               then
  44.                 message('WARNING: Ship Date is before Order Date.');
  45.             end if;
  46.         end if;
  47.       end;
  48.       >>>
  49.  
  50.    ENDDEFINE PROCEDURE
  51.  
  52.    DEFINE PROCEDURE
  53.  
  54.       NAME = clear_details
  55.       DEFINITION = <<<
  56.       procedure clear_details is
  57.         temp_total number:=null;
  58.       begin
  59.         if (:system.record_status != 'NEW') then
  60.           go_block('items');
  61.           clear_block;
  62.           select sum(itemtot) into temp_total from item
  63.             where ordid = :orders.ordid;
  64.           if (temp_total != :orders.total)
  65.             then :orders.total:=temp_total;
  66.           end if;
  67.           go_block('orders');
  68.         end if;
  69.       exception
  70.         when others then null;
  71.       end;
  72.       >>>
  73.  
  74.    ENDDEFINE PROCEDURE
  75.  
  76.    DEFINE PROCEDURE
  77.  
  78.       NAME = item_total
  79.       DEFINITION = <<<
  80.       procedure item_total is
  81.         oldtotal number;
  82.       begin
  83.         oldtotal:=nvl(:items.itemtot,0);
  84.         if (:system.record_status != 'QUERY') then
  85.           :items.itemtot := :items.qty * :items.actualprice;
  86.           if (:orders.total is null) then
  87.             :orders.total:=:items.itemtot;
  88.           else
  89.             :orders.total:=:orders.total-oldtotal+nvl(:items.itemtot,0);
  90.           end if;
  91.         end if;
  92.         check_total;
  93.       end;
  94.       >>>
  95.  
  96.    ENDDEFINE PROCEDURE
  97.  
  98.    DEFINE PROCEDURE
  99.  
  100.       NAME = query_details
  101.       DEFINITION = <<<
  102.       procedure query_details is
  103.         vcount number;
  104.       begin
  105.         if (:orders.custid is not null) then
  106.           select count(*) into vcount from item
  107.           where ordid = :orders.ordid;
  108.           if (vcount > 0) then
  109.             go_block('items');
  110.             execute_query(all_records);
  111.             go_block('orders');
  112.           end if;
  113.         end if;
  114.       end;
  115.       >>>
  116.  
  117.    ENDDEFINE PROCEDURE
  118.  
  119.    DEFINE TRIGGER
  120.  
  121.       NAME = key-startup
  122.       TRIGGER_TYPE = V3
  123.       SHOW_KEY = OFF
  124.       DESCRIPTION = 
  125.       TEXT = <<<
  126.       :global.insert := 'N';
  127.       set_input_focus(menu);
  128.       >>>
  129.  
  130.    ENDDEFINE TRIGGER
  131.  
  132.    DEFINE BLOCK
  133.  
  134.       NAME = orders
  135.       DESCRIPTION = orders
  136.       TABLE = ord
  137.       UNIQUE_KEY = OFF
  138.       UPDATE_KEY = OFF
  139.       IN_MENU = ON
  140.       ROWS_DISPLAYED = 1
  141.       ROWS_BUFFERED = 1
  142.       BASE_LINE = 1
  143.       LINES_PER_ROW = 0
  144.       ARRAY_SIZE = 0
  145.       COLUMN_SECURITY = OFF
  146.       ORDERING = <<<
  147.       where custid != -1
  148.       order by ordid
  149.       >>>
  150.  
  151.       DEFINE TRIGGER
  152.  
  153.          NAME = POST-QUERY
  154.          TRIGGER_TYPE = V3
  155.          SHOW_KEY = OFF
  156.          DESCRIPTION = 
  157.          TEXT = <<<
  158.          select name
  159.          into   :orders.custname
  160.          from   customer
  161.          where  :orders.custid = custid;
  162.          check_total;
  163.          >>>
  164.  
  165.       ENDDEFINE TRIGGER
  166.  
  167.       DEFINE TRIGGER
  168.  
  169.          NAME = key-clrblk
  170.          TRIGGER_TYPE = V3
  171.          SHOW_KEY = ON
  172.          DESCRIPTION = 
  173.          TEXT = <<<
  174.          clear_details;
  175.          clear_block;
  176.          >>>
  177.  
  178.       ENDDEFINE TRIGGER
  179.  
  180.       DEFINE TRIGGER
  181.  
  182.          NAME = key-clrrec
  183.          TRIGGER_TYPE = V3
  184.          SHOW_KEY = ON
  185.          DESCRIPTION = 
  186.          TEXT = <<<
  187.          clear_details;
  188.          query_details;
  189.          >>>
  190.  
  191.       ENDDEFINE TRIGGER
  192.  
  193.       DEFINE TRIGGER
  194.  
  195.          NAME = key-crerec
  196.          TRIGGER_TYPE = V3
  197.          SHOW_KEY = ON
  198.          DESCRIPTION = 
  199.          TEXT = <<<
  200.          clear_details;
  201.          create_record;
  202.          >>>
  203.  
  204.       ENDDEFINE TRIGGER
  205.  
  206.       DEFINE TRIGGER
  207.  
  208.          NAME = key-delrec
  209.          TRIGGER_TYPE = V3
  210.          SHOW_KEY = ON
  211.          DESCRIPTION = 
  212.          TEXT = <<<
  213.          declare
  214.            vcount number;
  215.          begin
  216.          select count(*) into vcount from item
  217.          Where ordid = :orders.ordid;
  218.          if (vcount = 0) then
  219.            clear_details;
  220.            delete_record;
  221.            query_details;
  222.          else
  223.            message('Cannot delete master record when matching details exist.');
  224.            raise form_trigger_failure;
  225.          end if;
  226.          end;
  227.          >>>
  228.  
  229.       ENDDEFINE TRIGGER
  230.  
  231.       DEFINE TRIGGER
  232.  
  233.          NAME = key-down
  234.          TRIGGER_TYPE = V3
  235.          SHOW_KEY = ON
  236.          DESCRIPTION = 
  237.          TEXT = <<<
  238.          clear_details;
  239.          down;
  240.          query_details;
  241.          >>>
  242.  
  243.       ENDDEFINE TRIGGER
  244.  
  245.       DEFINE TRIGGER
  246.  
  247.          NAME = key-entqry
  248.          TRIGGER_TYPE = V3
  249.          SHOW_KEY = ON
  250.          DESCRIPTION = 
  251.          TEXT = <<<
  252.          clear_details;
  253.          enter_query;
  254.          query_details;
  255.          >>>
  256.  
  257.       ENDDEFINE TRIGGER
  258.  
  259.       DEFINE TRIGGER
  260.  
  261.          NAME = key-exeqry
  262.          TRIGGER_TYPE = V3
  263.          SHOW_KEY = ON
  264.          DESCRIPTION = 
  265.          TEXT = <<<
  266.          clear_details;
  267.          execute_query;
  268.          query_details;
  269.          >>>
  270.  
  271.       ENDDEFINE TRIGGER
  272.  
  273.       DEFINE TRIGGER
  274.  
  275.          NAME = key-nxtrec
  276.          TRIGGER_TYPE = V3
  277.          SHOW_KEY = ON
  278.          DESCRIPTION = 
  279.          TEXT = <<<
  280.          clear_details;
  281.          next_record;
  282.          query_details;
  283.          >>>
  284.  
  285.       ENDDEFINE TRIGGER
  286.  
  287.       DEFINE TRIGGER
  288.  
  289.          NAME = key-nxtset
  290.          TRIGGER_TYPE = V3
  291.          SHOW_KEY = ON
  292.          DESCRIPTION = 
  293.          TEXT = <<<
  294.          clear_details;
  295.          next_set;
  296.          query_details;
  297.          >>>
  298.  
  299.       ENDDEFINE TRIGGER
  300.  
  301.       DEFINE TRIGGER
  302.  
  303.          NAME = key-prvrec
  304.          TRIGGER_TYPE = V3
  305.          SHOW_KEY = ON
  306.          DESCRIPTION = 
  307.          TEXT = <<<
  308.          clear_details;
  309.          previous_record;
  310.          query_details;
  311.          >>>
  312.  
  313.       ENDDEFINE TRIGGER
  314.  
  315.       DEFINE TRIGGER
  316.  
  317.          NAME = key-scrdown
  318.          TRIGGER_TYPE = V3
  319.          SHOW_KEY = ON
  320.          DESCRIPTION = 
  321.          TEXT = <<<
  322.          clear_details;
  323.          scroll_down;
  324.          query_details;
  325.          >>>
  326.  
  327.       ENDDEFINE TRIGGER
  328.  
  329.       DEFINE TRIGGER
  330.  
  331.          NAME = key-scrup
  332.          TRIGGER_TYPE = V3
  333.          SHOW_KEY = ON
  334.          DESCRIPTION = 
  335.          TEXT = <<<
  336.          clear_details;
  337.          scroll_up;
  338.          query_details;
  339.          >>>
  340.  
  341.       ENDDEFINE TRIGGER
  342.  
  343.       DEFINE TRIGGER
  344.  
  345.          NAME = key-up
  346.          TRIGGER_TYPE = V3
  347.          SHOW_KEY = ON
  348.          DESCRIPTION = 
  349.          TEXT = <<<
  350.          clear_details;
  351.          up;
  352.          query_details;
  353.          >>>
  354.  
  355.       ENDDEFINE TRIGGER
  356.  
  357.       DEFINE FIELD
  358.  
  359.          NAME = ORDID
  360.          DATATYPE = NUMBER
  361.          LENGTH = 4
  362.          DISPLAY_LENGTH = 4
  363.          QUERY_LENGTH = 6
  364.          BASE_TABLE = ON
  365.          PRIMARY_KEY = OFF
  366.          MANDATORY = ON
  367.          DISPLAYED = ON
  368.          PAGE = 1
  369.          LINE = 6
  370.          COLUMN = 19
  371.          HELP = Enter the Order Number.
  372.          LOW_VALUE = 
  373.          HIGH_VALUE = 
  374.          LOV_TEXT = 
  375.          LOV_TITLE = 
  376.          LOV_X = 0
  377.          LOV_Y = 0
  378.          INPUT_MASK = 
  379.          OUTPUT_MASK = 
  380.          EDIT_X = 0
  381.          EDIT_Y = 0
  382.          EDIT_TOP_TITLE = 
  383.          EDIT_BOTTOM_TITLE = 
  384.          EDIT_WORD_WRAP = OFF
  385.          DEFAULT = :sequence.ordid.nextval
  386.          ENFORCE_KEY_FROM = 
  387.          ECHO = ON
  388.          INPUT = OFF
  389.          UPDATE = OFF
  390.          UPDATE_NULL = OFF
  391.          QUERY = ON
  392.          FIXED_LENGTH = OFF
  393.          AUTOSKIP = OFF
  394.          AUTOHELP = OFF
  395.          UPPERCASE = OFF
  396.          PROMPT = 
  397.          PROMPT_POSITION = BESIDE
  398.          PROMPT_REPEAT = OFF
  399.  
  400.       ENDDEFINE FIELD
  401.  
  402.       DEFINE FIELD
  403.  
  404.          NAME = ORDERDATE
  405.          DATATYPE = DATE
  406.          LENGTH = 9
  407.          DISPLAY_LENGTH = 9
  408.          QUERY_LENGTH = 9
  409.          BASE_TABLE = ON
  410.          PRIMARY_KEY = OFF
  411.          MANDATORY = OFF
  412.          DISPLAYED = ON
  413.          PAGE = 1
  414.          LINE = 6
  415.          COLUMN = 65
  416.          HELP = Enter the date the order was placed.
  417.          LOW_VALUE = 
  418.          HIGH_VALUE = 
  419.          LOV_TEXT = 
  420.          LOV_TITLE = 
  421.          LOV_X = 0
  422.          LOV_Y = 0
  423.          INPUT_MASK = mm/dd/yy
  424.          OUTPUT_MASK = mm/dd/yy
  425.          EDIT_X = 0
  426.          EDIT_Y = 0
  427.          EDIT_TOP_TITLE = 
  428.          EDIT_BOTTOM_TITLE = 
  429.          EDIT_WORD_WRAP = OFF
  430.          DEFAULT = $$date$$
  431.          ENFORCE_KEY_FROM = 
  432.          ECHO = ON
  433.          INPUT = ON
  434.          UPDATE = ON
  435.          UPDATE_NULL = OFF
  436.          QUERY = ON
  437.          FIXED_LENGTH = OFF
  438.          AUTOSKIP = OFF
  439.          AUTOHELP = OFF
  440.          UPPERCASE = OFF
  441.          PROMPT = 
  442.          PROMPT_POSITION = BESIDE
  443.          PROMPT_REPEAT = OFF
  444.  
  445.          DEFINE TRIGGER
  446.  
  447.             NAME = on-validate-field
  448.             TRIGGER_TYPE = V3
  449.             SHOW_KEY = OFF
  450.             DESCRIPTION = 
  451.             TEXT = <<<
  452.             checkdate;
  453.             >>>
  454.  
  455.          ENDDEFINE TRIGGER
  456.  
  457.          DEFINE TRIGGER
  458.  
  459.             NAME = key-prvfld
  460.             TRIGGER_TYPE = V3
  461.             SHOW_KEY = OFF
  462.             DESCRIPTION = 
  463.             TEXT = <<<
  464.             next_block;
  465.             last_record;
  466.             previous_field;
  467.             >>>
  468.  
  469.          ENDDEFINE TRIGGER
  470.  
  471.       ENDDEFINE FIELD
  472.  
  473.       DEFINE FIELD
  474.  
  475.          NAME = COMMPLAN
  476.          DATATYPE = CHAR
  477.          LENGTH = 1
  478.          DISPLAY_LENGTH = 1
  479.          QUERY_LENGTH = 1
  480.          BASE_TABLE = ON
  481.          PRIMARY_KEY = OFF
  482.          MANDATORY = OFF
  483.          DISPLAYED = ON
  484.          PAGE = 1
  485.          LINE = 7
  486.          COLUMN = 19
  487.          HELP = Enter the type of commission plan (A, B or C).
  488.          LOW_VALUE = 
  489.          HIGH_VALUE = 
  490.          LOV_TEXT = 
  491.          LOV_TITLE = 
  492.          LOV_X = 0
  493.          LOV_Y = 0
  494.          INPUT_MASK = 
  495.          OUTPUT_MASK = 
  496.          EDIT_X = 0
  497.          EDIT_Y = 0
  498.          EDIT_TOP_TITLE = 
  499.          EDIT_BOTTOM_TITLE = 
  500.          EDIT_WORD_WRAP = OFF
  501.          DEFAULT = A
  502.          ENFORCE_KEY_FROM = 
  503.          ECHO = ON
  504.          INPUT = ON
  505.          UPDATE = ON
  506.          UPDATE_NULL = OFF
  507.          QUERY = ON
  508.          FIXED_LENGTH = OFF
  509.          AUTOSKIP = OFF
  510.          AUTOHELP = ON
  511.          UPPERCASE = OFF
  512.          PROMPT = 
  513.          PROMPT_POSITION = BESIDE
  514.          PROMPT_REPEAT = OFF
  515.  
  516.       ENDDEFINE FIELD
  517.  
  518.       DEFINE FIELD
  519.  
  520.          NAME = SHIPDATE
  521.          DATATYPE = DATE
  522.          LENGTH = 9
  523.          DISPLAY_LENGTH = 9
  524.          QUERY_LENGTH = 9
  525.          BASE_TABLE = ON
  526.          PRIMARY_KEY = OFF
  527.          MANDATORY = OFF
  528.          DISPLAYED = ON
  529.          PAGE = 1
  530.          LINE = 7
  531.          COLUMN = 65
  532.          HELP = Enter the date the order was shipped.
  533.          LOW_VALUE = 
  534.          HIGH_VALUE = 
  535.          LOV_TEXT = 
  536.          LOV_TITLE = 
  537.          LOV_X = 0
  538.          LOV_Y = 0
  539.          INPUT_MASK = mm/dd/yy
  540.          OUTPUT_MASK = mm/dd/yy
  541.          EDIT_X = 0
  542.          EDIT_Y = 0
  543.          EDIT_TOP_TITLE = 
  544.          EDIT_BOTTOM_TITLE = 
  545.          EDIT_WORD_WRAP = OFF
  546.          DEFAULT = 
  547.          ENFORCE_KEY_FROM = 
  548.          ECHO = ON
  549.          INPUT = ON
  550.          UPDATE = ON
  551.          UPDATE_NULL = OFF
  552.          QUERY = ON
  553.          FIXED_LENGTH = OFF
  554.          AUTOSKIP = OFF
  555.          AUTOHELP = OFF
  556.          UPPERCASE = OFF
  557.          PROMPT = 
  558.          PROMPT_POSITION = BESIDE
  559.          PROMPT_REPEAT = OFF
  560.  
  561.          DEFINE TRIGGER
  562.  
  563.             NAME = on-validate-field
  564.             TRIGGER_TYPE = V3
  565.             SHOW_KEY = OFF
  566.             DESCRIPTION = 
  567.             TEXT = <<<
  568.             checkdate;
  569.             >>>
  570.  
  571.          ENDDEFINE TRIGGER
  572.  
  573.       ENDDEFINE FIELD
  574.  
  575.       DEFINE FIELD
  576.  
  577.          NAME = CUSTID
  578.          DATATYPE = NUMBER
  579.          LENGTH = 6
  580.          DISPLAY_LENGTH = 6
  581.          QUERY_LENGTH = 8
  582.          BASE_TABLE = ON
  583.          PRIMARY_KEY = OFF
  584.          MANDATORY = OFF
  585.          DISPLAYED = ON
  586.          PAGE = 1
  587.          LINE = 9
  588.          COLUMN = 21
  589.          HELP = Press [List] for values or [Edit] to enter a new customer.
  590.          LOW_VALUE = 
  591.          HIGH_VALUE = 
  592.          LOV_TEXT = <<<
  593.          select custid, name
  594.          into :orders.custid, :orders.custname
  595.          from customer
  596.          order by name
  597.          >>>
  598.          LOV_TITLE = Customers
  599.          LOV_X = 16
  600.          LOV_Y = 8
  601.          INPUT_MASK = 
  602.          OUTPUT_MASK = 
  603.          EDIT_X = 0
  604.          EDIT_Y = 0
  605.          EDIT_TOP_TITLE = 
  606.          EDIT_BOTTOM_TITLE = 
  607.          EDIT_WORD_WRAP = OFF
  608.          DEFAULT = 
  609.          ENFORCE_KEY_FROM = 
  610.          ECHO = ON
  611.          INPUT = ON
  612.          UPDATE = ON
  613.          UPDATE_NULL = OFF
  614.          QUERY = ON
  615.          FIXED_LENGTH = OFF
  616.          AUTOSKIP = OFF
  617.          AUTOHELP = ON
  618.          UPPERCASE = OFF
  619.          PROMPT = 
  620.          PROMPT_POSITION = BESIDE
  621.          PROMPT_REPEAT = OFF
  622.  
  623.          DEFINE TRIGGER
  624.  
  625.             NAME = on-validate-field
  626.             TRIGGER_TYPE = V3
  627.             SHOW_KEY = OFF
  628.             DESCRIPTION = 
  629.             TEXT = <<<
  630.             if :global.insert = 'N' then
  631.                select name
  632.                into :orders.custname
  633.                from customer
  634.                where :orders.custid = custid;
  635.             end if;
  636.             exception
  637.                when no_data_found then
  638.                   message('Invalid ID.  Please re-enter.');
  639.                   pause;
  640.                   :orders.custid := null;
  641.                   raise form_trigger_failure;
  642.                when too_many_rows then
  643.                   message('Error in data.  Too many rows found.');
  644.             >>>
  645.  
  646.          ENDDEFINE TRIGGER
  647.  
  648.          DEFINE TRIGGER
  649.  
  650.             NAME = key-edit
  651.             TRIGGER_TYPE = V3
  652.             SHOW_KEY = ON
  653.             DESCRIPTION = New Customer
  654.             TEXT = <<<
  655.             :global.insert := 'Y';
  656.             go_block('customers');
  657.             >>>
  658.  
  659.          ENDDEFINE TRIGGER
  660.  
  661.          DEFINE TRIGGER
  662.  
  663.             NAME = key-NXTFLD
  664.             TRIGGER_TYPE = V3
  665.             SHOW_KEY = ON
  666.             DESCRIPTION = 
  667.             TEXT = <<<
  668.             if :orders.custid is null then
  669.                message('Customer ID must be entered.');
  670.                pause;
  671.                raise form_trigger_failure;
  672.             else
  673.                next_block;
  674.                if (form_success) then
  675.                   go_record(1);
  676.                   go_field('items.itemid');
  677.                end if;
  678.             end if;
  679.             >>>
  680.  
  681.          ENDDEFINE TRIGGER
  682.  
  683.       ENDDEFINE FIELD
  684.  
  685.       DEFINE FIELD
  686.  
  687.          NAME = CUSTNAME
  688.          DATATYPE = CHAR
  689.          LENGTH = 50
  690.          DISPLAY_LENGTH = 24
  691.          QUERY_LENGTH = 50
  692.          BASE_TABLE = OFF
  693.          PRIMARY_KEY = OFF
  694.          MANDATORY = OFF
  695.          DISPLAYED = ON
  696.          PAGE = 1
  697.          LINE = 9
  698.          COLUMN = 50
  699.          HELP = 
  700.          LOW_VALUE = 
  701.          HIGH_VALUE = 
  702.          LOV_TEXT = 
  703.          LOV_TITLE = 
  704.          LOV_X = 0
  705.          LOV_Y = 0
  706.          INPUT_MASK = 
  707.          OUTPUT_MASK = 
  708.          EDIT_X = 0
  709.          EDIT_Y = 0
  710.          EDIT_TOP_TITLE = 
  711.          EDIT_BOTTOM_TITLE = 
  712.          EDIT_WORD_WRAP = OFF
  713.          DEFAULT = 
  714.          ENFORCE_KEY_FROM = 
  715.          ECHO = ON
  716.          INPUT = OFF
  717.          UPDATE = OFF
  718.          UPDATE_NULL = OFF
  719.          QUERY = OFF
  720.          FIXED_LENGTH = OFF
  721.          AUTOSKIP = OFF
  722.          AUTOHELP = OFF
  723.          UPPERCASE = OFF
  724.          PROMPT = 
  725.          PROMPT_POSITION = BESIDE
  726.          PROMPT_REPEAT = OFF
  727.  
  728.       ENDDEFINE FIELD
  729.  
  730.       DEFINE FIELD
  731.  
  732.          NAME = TOTAL
  733.          DATATYPE = NUMBER
  734.          LENGTH = 10
  735.          DISPLAY_LENGTH = 10
  736.          QUERY_LENGTH = 10
  737.          BASE_TABLE = ON
  738.          PRIMARY_KEY = OFF
  739.          MANDATORY = OFF
  740.          DISPLAYED = ON
  741.          PAGE = 1
  742.          LINE = 21
  743.          COLUMN = 69
  744.          HELP = 
  745.          LOW_VALUE = 
  746.          HIGH_VALUE = 
  747.          LOV_TEXT = 
  748.          LOV_TITLE = 
  749.          LOV_X = 0
  750.          LOV_Y = 0
  751.          INPUT_MASK = $99999.99
  752.          OUTPUT_MASK = $99999.99
  753.          EDIT_X = 0
  754.          EDIT_Y = 0
  755.          EDIT_TOP_TITLE = 
  756.          EDIT_BOTTOM_TITLE = 
  757.          EDIT_WORD_WRAP = OFF
  758.          DEFAULT = 
  759.          ENFORCE_KEY_FROM = 
  760.          ECHO = ON
  761.          INPUT = OFF
  762.          UPDATE = OFF
  763.          UPDATE_NULL = OFF
  764.          QUERY = ON
  765.          FIXED_LENGTH = OFF
  766.          AUTOSKIP = OFF
  767.          AUTOHELP = OFF
  768.          UPPERCASE = OFF
  769.          PROMPT = 
  770.          PROMPT_POSITION = BESIDE
  771.          PROMPT_REPEAT = OFF
  772.  
  773.       ENDDEFINE FIELD
  774.  
  775.    ENDDEFINE BLOCK
  776.  
  777.    DEFINE BLOCK
  778.  
  779.       NAME = items
  780.       DESCRIPTION = items
  781.       TABLE = item
  782.       UNIQUE_KEY = OFF
  783.       UPDATE_KEY = OFF
  784.       IN_MENU = ON
  785.       ROWS_DISPLAYED = 5
  786.       ROWS_BUFFERED = 5
  787.       BASE_LINE = 15
  788.       LINES_PER_ROW = 1
  789.       ARRAY_SIZE = 0
  790.       COLUMN_SECURITY = OFF
  791.       ORDERING = <<<
  792.       order by itemid
  793.       >>>
  794.  
  795.       DEFINE TRIGGER
  796.  
  797.          NAME = key-clrblk
  798.          TRIGGER_TYPE = V3
  799.          SHOW_KEY = OFF
  800.          DESCRIPTION = 
  801.          TEXT = <<<
  802.          null;
  803.          >>>
  804.  
  805.       ENDDEFINE TRIGGER
  806.  
  807.       DEFINE TRIGGER
  808.  
  809.          NAME = key-clrfrm
  810.          TRIGGER_TYPE = V3
  811.          SHOW_KEY = OFF
  812.          DESCRIPTION = 
  813.          TEXT = <<<
  814.          null;
  815.          >>>
  816.  
  817.       ENDDEFINE TRIGGER
  818.  
  819.       DEFINE TRIGGER
  820.  
  821.          NAME = key-clrrec
  822.          TRIGGER_TYPE = V3
  823.          SHOW_KEY = ON
  824.          DESCRIPTION = 
  825.          TEXT = <<<
  826.          if (:system.record_status = 'INSERT') then
  827.            if (:items.itemtot is not null) then
  828.               :orders.total:= :orders.total - :items.itemtot;
  829.            end if;
  830.          end if;
  831.          clear_record;
  832.          >>>
  833.  
  834.       ENDDEFINE TRIGGER
  835.  
  836.       DEFINE TRIGGER
  837.  
  838.          NAME = key-cquery
  839.          TRIGGER_TYPE = V3
  840.          SHOW_KEY = ON
  841.          DESCRIPTION = 
  842.          TEXT = <<<
  843.          null;
  844.          >>>
  845.  
  846.       ENDDEFINE TRIGGER
  847.  
  848.       DEFINE TRIGGER
  849.  
  850.          NAME = key-crerec
  851.          TRIGGER_TYPE = V3
  852.          SHOW_KEY = ON
  853.          DESCRIPTION = 
  854.          TEXT = <<<
  855.          create_record;
  856.          >>>
  857.  
  858.       ENDDEFINE TRIGGER
  859.  
  860.       DEFINE TRIGGER
  861.  
  862.          NAME = key-delrec
  863.          TRIGGER_TYPE = V3
  864.          SHOW_KEY = ON
  865.          DESCRIPTION = 
  866.          TEXT = <<<
  867.          if (:items.itemtot is not null) then
  868.            :orders.total := :orders.total - :items.itemtot;
  869.          end if;
  870.          delete_record;
  871.          >>>
  872.  
  873.       ENDDEFINE TRIGGER
  874.  
  875.       DEFINE TRIGGER
  876.  
  877.          NAME = key-duprec
  878.          TRIGGER_TYPE = V3
  879.          SHOW_KEY = ON
  880.          DESCRIPTION = 
  881.          TEXT = <<<
  882.          duplicate_record;
  883.          if (:items.itemtot is not NULL) then
  884.            :orders.total := :orders.total + :items.itemtot;
  885.          end if;
  886.          >>>
  887.  
  888.       ENDDEFINE TRIGGER
  889.  
  890.       DEFINE TRIGGER
  891.  
  892.          NAME = key-entqry
  893.          TRIGGER_TYPE = V3
  894.          SHOW_KEY = OFF
  895.          DESCRIPTION = 
  896.          TEXT = <<<
  897.          null;
  898.          >>>
  899.  
  900.       ENDDEFINE TRIGGER
  901.  
  902.       DEFINE TRIGGER
  903.  
  904.          NAME = key-exeqry
  905.          TRIGGER_TYPE = V3
  906.          SHOW_KEY = OFF
  907.          DESCRIPTION = 
  908.          TEXT = <<<
  909.          null;
  910.          >>>
  911.  
  912.       ENDDEFINE TRIGGER
  913.  
  914.       DEFINE FIELD
  915.  
  916.          NAME = ORDID
  917.          DATATYPE = NUMBER
  918.          LENGTH = 6
  919.          DISPLAY_LENGTH = 1
  920.          QUERY_LENGTH = 6
  921.          BASE_TABLE = ON
  922.          PRIMARY_KEY = OFF
  923.          MANDATORY = ON
  924.          DISPLAYED = OFF
  925.          PAGE = 1
  926.          LINE = 1
  927.          COLUMN = 2
  928.          HELP = 
  929.          LOW_VALUE = 
  930.          HIGH_VALUE = 
  931.          LOV_TEXT = 
  932.          LOV_TITLE = 
  933.          LOV_X = 0
  934.          LOV_Y = 0
  935.          INPUT_MASK = 
  936.          OUTPUT_MASK = 
  937.          EDIT_X = 0
  938.          EDIT_Y = 0
  939.          EDIT_TOP_TITLE = 
  940.          EDIT_BOTTOM_TITLE = 
  941.          EDIT_WORD_WRAP = OFF
  942.          DEFAULT = 
  943.          ENFORCE_KEY_FROM = ORDERS.ORDID
  944.          ECHO = OFF
  945.          INPUT = OFF
  946.          UPDATE = OFF
  947.          UPDATE_NULL = OFF
  948.          QUERY = OFF
  949.          FIXED_LENGTH = OFF
  950.          AUTOSKIP = OFF
  951.          AUTOHELP = OFF
  952.          UPPERCASE = OFF
  953.          PROMPT = 
  954.          PROMPT_POSITION = ABOVE
  955.          PROMPT_REPEAT = OFF
  956.  
  957.       ENDDEFINE FIELD
  958.  
  959.       DEFINE FIELD
  960.  
  961.          NAME = ITEMID
  962.          DATATYPE = NUMBER
  963.          LENGTH = 6
  964.          DISPLAY_LENGTH = 4
  965.          QUERY_LENGTH = 6
  966.          BASE_TABLE = ON
  967.          PRIMARY_KEY = OFF
  968.          MANDATORY = ON
  969.          DISPLAYED = ON
  970.          PAGE = 1
  971.          LINE = 1
  972.          COLUMN = 3
  973.          HELP = Enter the item number.
  974.          LOW_VALUE = 
  975.          HIGH_VALUE = 
  976.          LOV_TEXT = 
  977.          LOV_TITLE = 
  978.          LOV_X = 0
  979.          LOV_Y = 0
  980.          INPUT_MASK = 
  981.          OUTPUT_MASK = 
  982.          EDIT_X = 0
  983.          EDIT_Y = 0
  984.          EDIT_TOP_TITLE = 
  985.          EDIT_BOTTOM_TITLE = 
  986.          EDIT_WORD_WRAP = OFF
  987.          DEFAULT = 
  988.          ENFORCE_KEY_FROM = 
  989.          ECHO = ON
  990.          INPUT = ON
  991.          UPDATE = OFF
  992.          UPDATE_NULL = OFF
  993.          QUERY = ON
  994.          FIXED_LENGTH = OFF
  995.          AUTOSKIP = OFF
  996.          AUTOHELP = OFF
  997.          UPPERCASE = OFF
  998.          PROMPT = 
  999.          PROMPT_POSITION = ABOVE
  1000.          PROMPT_REPEAT = OFF
  1001.  
  1002.          DEFINE TRIGGER
  1003.  
  1004.             NAME = key-nxtfld
  1005.             TRIGGER_TYPE = V3
  1006.             SHOW_KEY = ON
  1007.             DESCRIPTION = 
  1008.             TEXT = <<<
  1009.             if :items.itemid is null then
  1010.                message('Item No. must be entered');
  1011.                raise form_trigger_failure;
  1012.             else
  1013.                next_field;
  1014.                if (:items.prodid is null) then
  1015.                   list_values;
  1016.                end if;
  1017.             end if;
  1018.             >>>
  1019.  
  1020.          ENDDEFINE TRIGGER
  1021.  
  1022.          DEFINE TRIGGER
  1023.  
  1024.             NAME = key-prvfld
  1025.             TRIGGER_TYPE = V3
  1026.             SHOW_KEY = ON
  1027.             DESCRIPTION = 
  1028.             TEXT = <<<
  1029.             if (:system.cursor_record != '1') then
  1030.               previous_record;
  1031.             end if;
  1032.             previous_field;
  1033.             >>>
  1034.  
  1035.          ENDDEFINE TRIGGER
  1036.  
  1037.       ENDDEFINE FIELD
  1038.  
  1039.       DEFINE FIELD
  1040.  
  1041.          NAME = PRODID
  1042.          DATATYPE = NUMBER
  1043.          LENGTH = 8
  1044.          DISPLAY_LENGTH = 6
  1045.          QUERY_LENGTH = 8
  1046.          BASE_TABLE = ON
  1047.          PRIMARY_KEY = OFF
  1048.          MANDATORY = ON
  1049.          DISPLAYED = ON
  1050.          PAGE = 1
  1051.          LINE = 1
  1052.          COLUMN = 8
  1053.          HELP = Enter the product identification number.
  1054.          LOW_VALUE = 
  1055.          HIGH_VALUE = 
  1056.          LOV_TEXT = <<<
  1057.          select prodid,descrip into :items.prodid,:items.description
  1058.          from product
  1059.          order by prodid
  1060.          >>>
  1061.          LOV_TITLE = Available Products
  1062.          LOV_X = 17
  1063.          LOV_Y = 9
  1064.          INPUT_MASK = 
  1065.          OUTPUT_MASK = 
  1066.          EDIT_X = 0
  1067.          EDIT_Y = 0
  1068.          EDIT_TOP_TITLE = 
  1069.          EDIT_BOTTOM_TITLE = 
  1070.          EDIT_WORD_WRAP = OFF
  1071.          DEFAULT = 
  1072.          ENFORCE_KEY_FROM = 
  1073.          ECHO = ON
  1074.          INPUT = ON
  1075.          UPDATE = ON
  1076.          UPDATE_NULL = OFF
  1077.          QUERY = ON
  1078.          FIXED_LENGTH = OFF
  1079.          AUTOSKIP = OFF
  1080.          AUTOHELP = OFF
  1081.          UPPERCASE = OFF
  1082.          PROMPT = 
  1083.          PROMPT_POSITION = ABOVE
  1084.          PROMPT_REPEAT = OFF
  1085.  
  1086.          DEFINE TRIGGER
  1087.  
  1088.             NAME = POST-CHANGE
  1089.             TRIGGER_TYPE = V3
  1090.             SHOW_KEY = OFF
  1091.             DESCRIPTION = 
  1092.             TEXT = <<<
  1093.             select descrip, stdprice
  1094.             into :items.description, :items.standardprice
  1095.             from product, price
  1096.             where product.prodid = :items.prodid
  1097.             and price.prodid = :items.prodid
  1098.             and startdate = (select max(startdate)
  1099.                              from price
  1100.                              where price.prodid = :items.prodid);
  1101.             exception
  1102.               when no_data_found then
  1103.                 message('No such product. Press [LIST] for valid Product IDs.');
  1104.                 raise form_trigger_failure;
  1105.               when too_many_rows then
  1106.                 message('Error in data.  Too many rows found.');
  1107.             >>>
  1108.  
  1109.          ENDDEFINE TRIGGER
  1110.  
  1111.       ENDDEFINE FIELD
  1112.  
  1113.       DEFINE FIELD
  1114.  
  1115.          NAME = DESCRIPTION
  1116.          DATATYPE = CHAR
  1117.          LENGTH = 25
  1118.          DISPLAY_LENGTH = 25
  1119.          QUERY_LENGTH = 25
  1120.          BASE_TABLE = OFF
  1121.          PRIMARY_KEY = OFF
  1122.          MANDATORY = OFF
  1123.          DISPLAYED = ON
  1124.          PAGE = 1
  1125.          LINE = 1
  1126.          COLUMN = 15
  1127.          HELP = 
  1128.          LOW_VALUE = 
  1129.          HIGH_VALUE = 
  1130.          LOV_TEXT = 
  1131.          LOV_TITLE = 
  1132.          LOV_X = 0
  1133.          LOV_Y = 0
  1134.          INPUT_MASK = 
  1135.          OUTPUT_MASK = 
  1136.          EDIT_X = 0
  1137.          EDIT_Y = 0
  1138.          EDIT_TOP_TITLE = 
  1139.          EDIT_BOTTOM_TITLE = 
  1140.          EDIT_WORD_WRAP = OFF
  1141.          DEFAULT = 
  1142.          ENFORCE_KEY_FROM = 
  1143.          ECHO = ON
  1144.          INPUT = OFF
  1145.          UPDATE = OFF
  1146.          UPDATE_NULL = OFF
  1147.          QUERY = OFF
  1148.          FIXED_LENGTH = OFF
  1149.          AUTOSKIP = OFF
  1150.          AUTOHELP = OFF
  1151.          UPPERCASE = OFF
  1152.          PROMPT = 
  1153.          PROMPT_POSITION = BESIDE
  1154.          PROMPT_REPEAT = OFF
  1155.  
  1156.       ENDDEFINE FIELD
  1157.  
  1158.       DEFINE FIELD
  1159.  
  1160.          NAME = ACTUALPRICE
  1161.          DATATYPE = NUMBER
  1162.          LENGTH = 10
  1163.          DISPLAY_LENGTH = 10
  1164.          QUERY_LENGTH = 10
  1165.          BASE_TABLE = ON
  1166.          PRIMARY_KEY = OFF
  1167.          MANDATORY = ON
  1168.          DISPLAYED = ON
  1169.          PAGE = 1
  1170.          LINE = 1
  1171.          COLUMN = 41
  1172.          HELP = Enter the actual price of the product.
  1173.          LOW_VALUE = 
  1174.          HIGH_VALUE = 
  1175.          LOV_TEXT = 
  1176.          LOV_TITLE = 
  1177.          LOV_X = 0
  1178.          LOV_Y = 0
  1179.          INPUT_MASK = $99999.99
  1180.          OUTPUT_MASK = $99999.99
  1181.          EDIT_X = 0
  1182.          EDIT_Y = 0
  1183.          EDIT_TOP_TITLE = 
  1184.          EDIT_BOTTOM_TITLE = 
  1185.          EDIT_WORD_WRAP = OFF
  1186.          DEFAULT = 
  1187.          ENFORCE_KEY_FROM = 
  1188.          ECHO = ON
  1189.          INPUT = ON
  1190.          UPDATE = ON
  1191.          UPDATE_NULL = OFF
  1192.          QUERY = ON
  1193.          FIXED_LENGTH = OFF
  1194.          AUTOSKIP = OFF
  1195.          AUTOHELP = OFF
  1196.          UPPERCASE = OFF
  1197.          PROMPT = 
  1198.          PROMPT_POSITION = ABOVE
  1199.          PROMPT_REPEAT = OFF
  1200.  
  1201.          DEFINE TRIGGER
  1202.  
  1203.             NAME = on-validate-field
  1204.             TRIGGER_TYPE = V3
  1205.             SHOW_KEY = OFF
  1206.             DESCRIPTION = 
  1207.             TEXT = <<<
  1208.             item_total;
  1209.             >>>
  1210.  
  1211.          ENDDEFINE TRIGGER
  1212.  
  1213.          DEFINE TRIGGER
  1214.  
  1215.             NAME = key-prvfld
  1216.             TRIGGER_TYPE = V3
  1217.             SHOW_KEY = ON
  1218.             DESCRIPTION = 
  1219.             TEXT = <<<
  1220.             previous_field;
  1221.             if (:items.prodid is null) then
  1222.               list_values;
  1223.             end if;
  1224.             >>>
  1225.  
  1226.          ENDDEFINE TRIGGER
  1227.  
  1228.       ENDDEFINE FIELD
  1229.  
  1230.       DEFINE FIELD
  1231.  
  1232.          NAME = STANDARDPRICE
  1233.          DATATYPE = NUMBER
  1234.          LENGTH = 10
  1235.          DISPLAY_LENGTH = 10
  1236.          QUERY_LENGTH = 10
  1237.          BASE_TABLE = OFF
  1238.          PRIMARY_KEY = OFF
  1239.          MANDATORY = OFF
  1240.          DISPLAYED = ON
  1241.          PAGE = 1
  1242.          LINE = 1
  1243.          COLUMN = 52
  1244.          HELP = 
  1245.          LOW_VALUE = 
  1246.          HIGH_VALUE = 
  1247.          LOV_TEXT = 
  1248.          LOV_TITLE = 
  1249.          LOV_X = 0
  1250.          LOV_Y = 0
  1251.          INPUT_MASK = $99999.99
  1252.          OUTPUT_MASK = $99999.99
  1253.          EDIT_X = 0
  1254.          EDIT_Y = 0
  1255.          EDIT_TOP_TITLE = 
  1256.          EDIT_BOTTOM_TITLE = 
  1257.          EDIT_WORD_WRAP = OFF
  1258.          DEFAULT = 
  1259.          ENFORCE_KEY_FROM = 
  1260.          ECHO = ON
  1261.          INPUT = OFF
  1262.          UPDATE = OFF
  1263.          UPDATE_NULL = OFF
  1264.          QUERY = OFF
  1265.          FIXED_LENGTH = OFF
  1266.          AUTOSKIP = OFF
  1267.          AUTOHELP = OFF
  1268.          UPPERCASE = OFF
  1269.          PROMPT = 
  1270.          PROMPT_POSITION = BESIDE
  1271.          PROMPT_REPEAT = OFF
  1272.  
  1273.       ENDDEFINE FIELD
  1274.  
  1275.       DEFINE FIELD
  1276.  
  1277.          NAME = QTY
  1278.          DATATYPE = NUMBER
  1279.          LENGTH = 10
  1280.          DISPLAY_LENGTH = 5
  1281.          QUERY_LENGTH = 10
  1282.          BASE_TABLE = ON
  1283.          PRIMARY_KEY = OFF
  1284.          MANDATORY = ON
  1285.          DISPLAYED = ON
  1286.          PAGE = 1
  1287.          LINE = 1
  1288.          COLUMN = 63
  1289.          HELP = Enter the quantity desired.
  1290.          LOW_VALUE = 
  1291.          HIGH_VALUE = 
  1292.          LOV_TEXT = 
  1293.          LOV_TITLE = 
  1294.          LOV_X = 0
  1295.          LOV_Y = 0
  1296.          INPUT_MASK = 
  1297.          OUTPUT_MASK = 
  1298.          EDIT_X = 0
  1299.          EDIT_Y = 0
  1300.          EDIT_TOP_TITLE = 
  1301.          EDIT_BOTTOM_TITLE = 
  1302.          EDIT_WORD_WRAP = OFF
  1303.          DEFAULT = 
  1304.          ENFORCE_KEY_FROM = 
  1305.          ECHO = ON
  1306.          INPUT = ON
  1307.          UPDATE = ON
  1308.          UPDATE_NULL = OFF
  1309.          QUERY = ON
  1310.          FIXED_LENGTH = OFF
  1311.          AUTOSKIP = OFF
  1312.          AUTOHELP = OFF
  1313.          UPPERCASE = OFF
  1314.          PROMPT = 
  1315.          PROMPT_POSITION = ABOVE
  1316.          PROMPT_REPEAT = OFF
  1317.  
  1318.          DEFINE TRIGGER
  1319.  
  1320.             NAME = on-validate-field
  1321.             TRIGGER_TYPE = V3
  1322.             SHOW_KEY = OFF
  1323.             DESCRIPTION = 
  1324.             TEXT = <<<
  1325.             item_total;
  1326.             >>>
  1327.  
  1328.          ENDDEFINE TRIGGER
  1329.  
  1330.          DEFINE TRIGGER
  1331.  
  1332.             NAME = key-nxtfld
  1333.             TRIGGER_TYPE = V3
  1334.             SHOW_KEY = OFF
  1335.             DESCRIPTION = 
  1336.             TEXT = <<<
  1337.             if ((:system.last_record = 'FALSE') or
  1338.                 (:system.record_status = 'INSERT'))then
  1339.               next_record;
  1340.             else
  1341.               previous_block;
  1342.             end if;
  1343.             >>>
  1344.  
  1345.          ENDDEFINE TRIGGER
  1346.  
  1347.       ENDDEFINE FIELD
  1348.  
  1349.       DEFINE FIELD
  1350.  
  1351.          NAME = ITEMTOT
  1352.          DATATYPE = NUMBER
  1353.          LENGTH = 10
  1354.          DISPLAY_LENGTH = 10
  1355.          QUERY_LENGTH = 10
  1356.          BASE_TABLE = ON
  1357.          PRIMARY_KEY = OFF
  1358.          MANDATORY = OFF
  1359.          DISPLAYED = ON
  1360.          PAGE = 1
  1361.          LINE = 1
  1362.          COLUMN = 69
  1363.          HELP = 
  1364.          LOW_VALUE = 
  1365.          HIGH_VALUE = 
  1366.          LOV_TEXT = 
  1367.          LOV_TITLE = 
  1368.          LOV_X = 0
  1369.          LOV_Y = 0
  1370.          INPUT_MASK = $99999.99
  1371.          OUTPUT_MASK = $99999.99
  1372.          EDIT_X = 0
  1373.          EDIT_Y = 0
  1374.          EDIT_TOP_TITLE = 
  1375.          EDIT_BOTTOM_TITLE = 
  1376.          EDIT_WORD_WRAP = OFF
  1377.          DEFAULT = 
  1378.          ENFORCE_KEY_FROM = 
  1379.          ECHO = ON
  1380.          INPUT = OFF
  1381.          UPDATE = OFF
  1382.          UPDATE_NULL = OFF
  1383.          QUERY = OFF
  1384.          FIXED_LENGTH = OFF
  1385.          AUTOSKIP = OFF
  1386.          AUTOHELP = OFF
  1387.          UPPERCASE = OFF
  1388.          PROMPT = 
  1389.          PROMPT_POSITION = ABOVE
  1390.          PROMPT_REPEAT = OFF
  1391.  
  1392.       ENDDEFINE FIELD
  1393.  
  1394.    ENDDEFINE BLOCK
  1395.  
  1396.    DEFINE BLOCK
  1397.  
  1398.       NAME = customers
  1399.       DESCRIPTION = customers
  1400.       TABLE = customer
  1401.       UNIQUE_KEY = OFF
  1402.       UPDATE_KEY = OFF
  1403.       IN_MENU = ON
  1404.       ROWS_DISPLAYED = 1
  1405.       ROWS_BUFFERED = 1
  1406.       BASE_LINE = 1
  1407.       LINES_PER_ROW = 0
  1408.       ARRAY_SIZE = 0
  1409.       COLUMN_SECURITY = OFF
  1410.       ORDERING = 
  1411.  
  1412.       DEFINE TRIGGER
  1413.  
  1414.          NAME = key-commit
  1415.          TRIGGER_TYPE = V3
  1416.          SHOW_KEY = ON
  1417.          DESCRIPTION = New Customer
  1418.          TEXT = <<<
  1419.          :orders.custid:= :customers.custid;
  1420.          :system.message_level := 5;
  1421.          commit_form;
  1422.          :system.message_level := 0;
  1423.          select name
  1424.          into :orders.custname
  1425.          from customer
  1426.          where custid = :orders.custid;
  1427.          go_block('orders');
  1428.          go_field('orders.custid');
  1429.          :global.insert := 'N';
  1430.          >>>
  1431.  
  1432.       ENDDEFINE TRIGGER
  1433.  
  1434.       DEFINE FIELD
  1435.  
  1436.          NAME = CUSTID
  1437.          DATATYPE = NUMBER
  1438.          LENGTH = 8
  1439.          DISPLAY_LENGTH = 8
  1440.          QUERY_LENGTH = 8
  1441.          BASE_TABLE = ON
  1442.          PRIMARY_KEY = OFF
  1443.          MANDATORY = ON
  1444.          DISPLAYED = ON
  1445.          PAGE = 2
  1446.          LINE = 1
  1447.          COLUMN = 52
  1448.          HELP = 
  1449.          LOW_VALUE = 
  1450.          HIGH_VALUE = 
  1451.          LOV_TEXT = 
  1452.          LOV_TITLE = 
  1453.          LOV_X = 0
  1454.          LOV_Y = 0
  1455.          INPUT_MASK = 
  1456.          OUTPUT_MASK = 
  1457.          EDIT_X = 0
  1458.          EDIT_Y = 0
  1459.          EDIT_TOP_TITLE = 
  1460.          EDIT_BOTTOM_TITLE = 
  1461.          EDIT_WORD_WRAP = ON
  1462.          DEFAULT = :sequence.custid.nextval
  1463.          ENFORCE_KEY_FROM = 
  1464.          ECHO = ON
  1465.          INPUT = OFF
  1466.          UPDATE = OFF
  1467.          UPDATE_NULL = OFF
  1468.          QUERY = ON
  1469.          FIXED_LENGTH = OFF
  1470.          AUTOSKIP = OFF
  1471.          AUTOHELP = OFF
  1472.          UPPERCASE = OFF
  1473.          PROMPT = 
  1474.          PROMPT_POSITION = BESIDE
  1475.          PROMPT_REPEAT = OFF
  1476.  
  1477.       ENDDEFINE FIELD
  1478.  
  1479.       DEFINE FIELD
  1480.  
  1481.          NAME = NAME
  1482.          DATATYPE = CHAR
  1483.          LENGTH = 45
  1484.          DISPLAY_LENGTH = 40
  1485.          QUERY_LENGTH = 45
  1486.          BASE_TABLE = ON
  1487.          PRIMARY_KEY = OFF
  1488.          MANDATORY = ON
  1489.          DISPLAYED = ON
  1490.          PAGE = 2
  1491.          LINE = 2
  1492.          COLUMN = 20
  1493.          HELP = Enter the name of the customer (required).
  1494.          LOW_VALUE = 
  1495.          HIGH_VALUE = 
  1496.          LOV_TEXT = 
  1497.          LOV_TITLE = 
  1498.          LOV_X = 0
  1499.          LOV_Y = 0
  1500.          INPUT_MASK = 
  1501.          OUTPUT_MASK = 
  1502.          EDIT_X = 0
  1503.          EDIT_Y = 0
  1504.          EDIT_TOP_TITLE = 
  1505.          EDIT_BOTTOM_TITLE = 
  1506.          EDIT_WORD_WRAP = ON
  1507.          DEFAULT = 
  1508.          ENFORCE_KEY_FROM = 
  1509.          ECHO = ON
  1510.          INPUT = ON
  1511.          UPDATE = ON
  1512.          UPDATE_NULL = OFF
  1513.          QUERY = ON
  1514.          FIXED_LENGTH = OFF
  1515.          AUTOSKIP = OFF
  1516.          AUTOHELP = ON
  1517.          UPPERCASE = ON
  1518.          PROMPT = 
  1519.          PROMPT_POSITION = BESIDE
  1520.          PROMPT_REPEAT = OFF
  1521.  
  1522.       ENDDEFINE FIELD
  1523.  
  1524.       DEFINE FIELD
  1525.  
  1526.          NAME = ADDRESS
  1527.          DATATYPE = CHAR
  1528.          LENGTH = 40
  1529.          DISPLAY_LENGTH = 40
  1530.          QUERY_LENGTH = 40
  1531.          BASE_TABLE = ON
  1532.          PRIMARY_KEY = OFF
  1533.          MANDATORY = OFF
  1534.          DISPLAYED = ON
  1535.          PAGE = 2
  1536.          LINE = 4
  1537.          COLUMN = 20
  1538.          HELP = Enter the street address of the customer.
  1539.          LOW_VALUE = 
  1540.          HIGH_VALUE = 
  1541.          LOV_TEXT = 
  1542.          LOV_TITLE = 
  1543.          LOV_X = 0
  1544.          LOV_Y = 0
  1545.          INPUT_MASK = 
  1546.          OUTPUT_MASK = 
  1547.          EDIT_X = 0
  1548.          EDIT_Y = 0
  1549.          EDIT_TOP_TITLE = 
  1550.          EDIT_BOTTOM_TITLE = 
  1551.          EDIT_WORD_WRAP = ON
  1552.          DEFAULT = 
  1553.          ENFORCE_KEY_FROM = 
  1554.          ECHO = ON
  1555.          INPUT = ON
  1556.          UPDATE = ON
  1557.          UPDATE_NULL = OFF
  1558.          QUERY = ON
  1559.          FIXED_LENGTH = OFF
  1560.          AUTOSKIP = OFF
  1561.          AUTOHELP = OFF
  1562.          UPPERCASE = OFF
  1563.          PROMPT = 
  1564.          PROMPT_POSITION = BESIDE
  1565.          PROMPT_REPEAT = OFF
  1566.  
  1567.       ENDDEFINE FIELD
  1568.  
  1569.       DEFINE FIELD
  1570.  
  1571.          NAME = CITY
  1572.          DATATYPE = CHAR
  1573.          LENGTH = 30
  1574.          DISPLAY_LENGTH = 26
  1575.          QUERY_LENGTH = 30
  1576.          BASE_TABLE = ON
  1577.          PRIMARY_KEY = OFF
  1578.          MANDATORY = OFF
  1579.          DISPLAYED = ON
  1580.          PAGE = 2
  1581.          LINE = 5
  1582.          COLUMN = 9
  1583.          HELP = Enter the city where customer is located.
  1584.          LOW_VALUE = 
  1585.          HIGH_VALUE = 
  1586.          LOV_TEXT = 
  1587.          LOV_TITLE = 
  1588.          LOV_X = 0
  1589.          LOV_Y = 0
  1590.          INPUT_MASK = 
  1591.          OUTPUT_MASK = 
  1592.          EDIT_X = 0
  1593.          EDIT_Y = 0
  1594.          EDIT_TOP_TITLE = 
  1595.          EDIT_BOTTOM_TITLE = 
  1596.          EDIT_WORD_WRAP = ON
  1597.          DEFAULT = 
  1598.          ENFORCE_KEY_FROM = 
  1599.          ECHO = ON
  1600.          INPUT = ON
  1601.          UPDATE = ON
  1602.          UPDATE_NULL = OFF
  1603.          QUERY = ON
  1604.          FIXED_LENGTH = OFF
  1605.          AUTOSKIP = OFF
  1606.          AUTOHELP = OFF
  1607.          UPPERCASE = OFF
  1608.          PROMPT = 
  1609.          PROMPT_POSITION = BESIDE
  1610.          PROMPT_REPEAT = OFF
  1611.  
  1612.       ENDDEFINE FIELD
  1613.  
  1614.       DEFINE FIELD
  1615.  
  1616.          NAME = STATE
  1617.          DATATYPE = CHAR
  1618.          LENGTH = 2
  1619.          DISPLAY_LENGTH = 2
  1620.          QUERY_LENGTH = 2
  1621.          BASE_TABLE = ON
  1622.          PRIMARY_KEY = OFF
  1623.          MANDATORY = OFF
  1624.          DISPLAYED = ON
  1625.          PAGE = 2
  1626.          LINE = 5
  1627.          COLUMN = 43
  1628.          HELP = Enter state where customer is located.
  1629.          LOW_VALUE = 
  1630.          HIGH_VALUE = 
  1631.          LOV_TEXT = 
  1632.          LOV_TITLE = 
  1633.          LOV_X = 0
  1634.          LOV_Y = 0
  1635.          INPUT_MASK = 
  1636.          OUTPUT_MASK = 
  1637.          EDIT_X = 0
  1638.          EDIT_Y = 0
  1639.          EDIT_TOP_TITLE = 
  1640.          EDIT_BOTTOM_TITLE = 
  1641.          EDIT_WORD_WRAP = ON
  1642.          DEFAULT = CA
  1643.          ENFORCE_KEY_FROM = 
  1644.          ECHO = ON
  1645.          INPUT = ON
  1646.          UPDATE = ON
  1647.          UPDATE_NULL = OFF
  1648.          QUERY = ON
  1649.          FIXED_LENGTH = OFF
  1650.          AUTOSKIP = OFF
  1651.          AUTOHELP = OFF
  1652.          UPPERCASE = ON
  1653.          PROMPT = 
  1654.          PROMPT_POSITION = BESIDE
  1655.          PROMPT_REPEAT = OFF
  1656.  
  1657.       ENDDEFINE FIELD
  1658.  
  1659.       DEFINE FIELD
  1660.  
  1661.          NAME = ZIP
  1662.          DATATYPE = CHAR
  1663.          LENGTH = 9
  1664.          DISPLAY_LENGTH = 9
  1665.          QUERY_LENGTH = 9
  1666.          BASE_TABLE = ON
  1667.          PRIMARY_KEY = OFF
  1668.          MANDATORY = OFF
  1669.          DISPLAYED = ON
  1670.          PAGE = 2
  1671.          LINE = 5
  1672.          COLUMN = 51
  1673.          HELP = Enter customer's zip code.  (Either 5 or 9 digit code)
  1674.          LOW_VALUE = 
  1675.          HIGH_VALUE = 
  1676.          LOV_TEXT = 
  1677.          LOV_TITLE = 
  1678.          LOV_X = 0
  1679.          LOV_Y = 0
  1680.          INPUT_MASK = 
  1681.          OUTPUT_MASK = 
  1682.          EDIT_X = 0
  1683.          EDIT_Y = 0
  1684.          EDIT_TOP_TITLE = 
  1685.          EDIT_BOTTOM_TITLE = 
  1686.          EDIT_WORD_WRAP = ON
  1687.          DEFAULT = 
  1688.          ENFORCE_KEY_FROM = 
  1689.          ECHO = ON
  1690.          INPUT = ON
  1691.          UPDATE = ON
  1692.          UPDATE_NULL = OFF
  1693.          QUERY = ON
  1694.          FIXED_LENGTH = OFF
  1695.          AUTOSKIP = OFF
  1696.          AUTOHELP = OFF
  1697.          UPPERCASE = OFF
  1698.          PROMPT = 
  1699.          PROMPT_POSITION = BESIDE
  1700.          PROMPT_REPEAT = OFF
  1701.  
  1702.       ENDDEFINE FIELD
  1703.  
  1704.       DEFINE FIELD
  1705.  
  1706.          NAME = AREA
  1707.          DATATYPE = CHAR
  1708.          LENGTH = 5
  1709.          DISPLAY_LENGTH = 5
  1710.          QUERY_LENGTH = 5
  1711.          BASE_TABLE = ON
  1712.          PRIMARY_KEY = OFF
  1713.          MANDATORY = OFF
  1714.          DISPLAYED = ON
  1715.          PAGE = 2
  1716.          LINE = 6
  1717.          COLUMN = 15
  1718.          HELP = Enter the area code of the customer's phone number.
  1719.          LOW_VALUE = 
  1720.          HIGH_VALUE = 
  1721.          LOV_TEXT = 
  1722.          LOV_TITLE = 
  1723.          LOV_X = 0
  1724.          LOV_Y = 0
  1725.          INPUT_MASK = "("999")"
  1726.          OUTPUT_MASK = "("999")"
  1727.          EDIT_X = 0
  1728.          EDIT_Y = 0
  1729.          EDIT_TOP_TITLE = 
  1730.          EDIT_BOTTOM_TITLE = 
  1731.          EDIT_WORD_WRAP = ON
  1732.          DEFAULT = 
  1733.          ENFORCE_KEY_FROM = 
  1734.          ECHO = ON
  1735.          INPUT = ON
  1736.          UPDATE = ON
  1737.          UPDATE_NULL = OFF
  1738.          QUERY = ON
  1739.          FIXED_LENGTH = OFF
  1740.          AUTOSKIP = OFF
  1741.          AUTOHELP = OFF
  1742.          UPPERCASE = OFF
  1743.          PROMPT = 
  1744.          PROMPT_POSITION = BESIDE
  1745.          PROMPT_REPEAT = OFF
  1746.  
  1747.       ENDDEFINE FIELD
  1748.  
  1749.       DEFINE FIELD
  1750.  
  1751.          NAME = PHONE
  1752.          DATATYPE = CHAR
  1753.          LENGTH = 8
  1754.          DISPLAY_LENGTH = 8
  1755.          QUERY_LENGTH = 8
  1756.          BASE_TABLE = ON
  1757.          PRIMARY_KEY = OFF
  1758.          MANDATORY = OFF
  1759.          DISPLAYED = ON
  1760.          PAGE = 2
  1761.          LINE = 6
  1762.          COLUMN = 29
  1763.          HELP = Enter the phone number.
  1764.          LOW_VALUE = 
  1765.          HIGH_VALUE = 
  1766.          LOV_TEXT = 
  1767.          LOV_TITLE = 
  1768.          LOV_X = 0
  1769.          LOV_Y = 0
  1770.          INPUT_MASK = 999"-"9999
  1771.          OUTPUT_MASK = 999"-"9999
  1772.          EDIT_X = 0
  1773.          EDIT_Y = 0
  1774.          EDIT_TOP_TITLE = 
  1775.          EDIT_BOTTOM_TITLE = 
  1776.          EDIT_WORD_WRAP = ON
  1777.          DEFAULT = 
  1778.          ENFORCE_KEY_FROM = 
  1779.          ECHO = ON
  1780.          INPUT = ON
  1781.          UPDATE = ON
  1782.          UPDATE_NULL = OFF
  1783.          QUERY = ON
  1784.          FIXED_LENGTH = OFF
  1785.          AUTOSKIP = OFF
  1786.          AUTOHELP = OFF
  1787.          UPPERCASE = OFF
  1788.          PROMPT = 
  1789.          PROMPT_POSITION = BESIDE
  1790.          PROMPT_REPEAT = OFF
  1791.  
  1792.       ENDDEFINE FIELD
  1793.  
  1794.       DEFINE FIELD
  1795.  
  1796.          NAME = REPID
  1797.          DATATYPE = NUMBER
  1798.          LENGTH = 6
  1799.          DISPLAY_LENGTH = 6
  1800.          QUERY_LENGTH = 6
  1801.          BASE_TABLE = ON
  1802.          PRIMARY_KEY = OFF
  1803.          MANDATORY = ON
  1804.          DISPLAYED = ON
  1805.          PAGE = 2
  1806.          LINE = 8
  1807.          COLUMN = 26
  1808.          HELP = Enter customer's sales rep (required).
  1809.          LOW_VALUE = 
  1810.          HIGH_VALUE = 
  1811.          LOV_TEXT = <<<
  1812.          select empno, ename
  1813.          into :customers.repid
  1814.          from emp
  1815.          where job = 'SALESMAN'
  1816.          order by empno
  1817.          >>>
  1818.          LOV_TITLE = Sales Representatives
  1819.          LOV_X = 43
  1820.          LOV_Y = 9
  1821.          INPUT_MASK = 
  1822.          OUTPUT_MASK = 
  1823.          EDIT_X = 0
  1824.          EDIT_Y = 0
  1825.          EDIT_TOP_TITLE = 
  1826.          EDIT_BOTTOM_TITLE = 
  1827.          EDIT_WORD_WRAP = ON
  1828.          DEFAULT = 
  1829.          ENFORCE_KEY_FROM = 
  1830.          ECHO = ON
  1831.          INPUT = ON
  1832.          UPDATE = ON
  1833.          UPDATE_NULL = OFF
  1834.          QUERY = ON
  1835.          FIXED_LENGTH = OFF
  1836.          AUTOSKIP = OFF
  1837.          AUTOHELP = ON
  1838.          UPPERCASE = OFF
  1839.          PROMPT = 
  1840.          PROMPT_POSITION = BESIDE
  1841.          PROMPT_REPEAT = OFF
  1842.  
  1843.          DEFINE TRIGGER
  1844.  
  1845.             NAME = on-validate-field
  1846.             TRIGGER_TYPE = V3
  1847.             SHOW_KEY = OFF
  1848.             DESCRIPTION = 
  1849.             TEXT = <<<
  1850.             declare
  1851.               is_emp number;
  1852.             begin
  1853.               select count(*) into is_emp from emp
  1854.                 where (empno = :customers.repid) and
  1855.                       (job = 'SALESMAN');
  1856.               if is_emp = 0
  1857.                 then message('No such salesman.  Use list of values.');
  1858.                 raise form_trigger_failure;
  1859.               end if;
  1860.             end;
  1861.             >>>
  1862.  
  1863.          ENDDEFINE TRIGGER
  1864.  
  1865.       ENDDEFINE FIELD
  1866.  
  1867.       DEFINE FIELD
  1868.  
  1869.          NAME = CREDITLIMIT
  1870.          DATATYPE = NUMBER
  1871.          LENGTH = 11
  1872.          DISPLAY_LENGTH = 11
  1873.          QUERY_LENGTH = 11
  1874.          BASE_TABLE = ON
  1875.          PRIMARY_KEY = OFF
  1876.          MANDATORY = OFF
  1877.          DISPLAYED = ON
  1878.          PAGE = 2
  1879.          LINE = 8
  1880.          COLUMN = 49
  1881.          HELP = Enter customer's credit limit.
  1882.          LOW_VALUE = 0
  1883.          HIGH_VALUE = 999999.99
  1884.          LOV_TEXT = 
  1885.          LOV_TITLE = 
  1886.          LOV_X = 0
  1887.          LOV_Y = 0
  1888.          INPUT_MASK = $999999.99
  1889.          OUTPUT_MASK = $999999.99
  1890.          EDIT_X = 0
  1891.          EDIT_Y = 0
  1892.          EDIT_TOP_TITLE = 
  1893.          EDIT_BOTTOM_TITLE = 
  1894.          EDIT_WORD_WRAP = ON
  1895.          DEFAULT = 10000
  1896.          ENFORCE_KEY_FROM = 
  1897.          ECHO = ON
  1898.          INPUT = ON
  1899.          UPDATE = ON
  1900.          UPDATE_NULL = OFF
  1901.          QUERY = ON
  1902.          FIXED_LENGTH = OFF
  1903.          AUTOSKIP = OFF
  1904.          AUTOHELP = OFF
  1905.          UPPERCASE = OFF
  1906.          PROMPT = 
  1907.          PROMPT_POSITION = BESIDE
  1908.          PROMPT_REPEAT = OFF
  1909.  
  1910.       ENDDEFINE FIELD
  1911.  
  1912.       DEFINE FIELD
  1913.  
  1914.          NAME = COMMENTS
  1915.          DATATYPE = LONG
  1916.          LENGTH = 999
  1917.          DISPLAY_LENGTH = 46
  1918.          QUERY_LENGTH = 0
  1919.          BASE_TABLE = ON
  1920.          PRIMARY_KEY = OFF
  1921.          MANDATORY = OFF
  1922.          DISPLAYED = ON
  1923.          PAGE = 2
  1924.          LINE = 10
  1925.          COLUMN = 14
  1926.          HELP = Press [Edit] to edit comments with the Pop-Up Field Editor.
  1927.          LOW_VALUE = 
  1928.          HIGH_VALUE = 
  1929.          LOV_TEXT = 
  1930.          LOV_TITLE = 
  1931.          LOV_X = 0
  1932.          LOV_Y = 0
  1933.          INPUT_MASK = 
  1934.          OUTPUT_MASK = 
  1935.          EDIT_X = 0
  1936.          EDIT_Y = 0
  1937.          EDIT_TOP_TITLE = 
  1938.          EDIT_BOTTOM_TITLE = 
  1939.          EDIT_WORD_WRAP = ON
  1940.          DEFAULT = 
  1941.          ENFORCE_KEY_FROM = 
  1942.          ECHO = ON
  1943.          INPUT = ON
  1944.          UPDATE = ON
  1945.          UPDATE_NULL = OFF
  1946.          QUERY = OFF
  1947.          FIXED_LENGTH = OFF
  1948.          AUTOSKIP = OFF
  1949.          AUTOHELP = ON
  1950.          UPPERCASE = OFF
  1951.          PROMPT = 
  1952.          PROMPT_POSITION = BESIDE
  1953.          PROMPT_REPEAT = OFF
  1954.  
  1955.       ENDDEFINE FIELD
  1956.  
  1957.    ENDDEFINE BLOCK
  1958.  
  1959.  
  1960.    DEFINE SCREEN
  1961.  
  1962.       DEFINE PAGE
  1963.  
  1964.          PAGE = 1
  1965.          POPUP = OFF
  1966.          BORDER = OFF
  1967.          HORIZONTAL_SCROLL_BAR = OFF
  1968.          VERTICAL_SCROLL_BAR = OFF
  1969.          DISSOLVE = OFF
  1970.          TITLE = 
  1971.          PAGE_XS = 0
  1972.          PAGE_YS = 0
  1973.          PAGE_PX0 = 0
  1974.          PAGE_PY0 = 0
  1975.          PAGE_PXS = 0
  1976.          PAGE_PYS = 0
  1977.          PAGE_SX0 = 0
  1978.          PAGE_SY0 = 0
  1979.          MODE = TEXT
  1980.          LINE = 4
  1981.          BOILER = <<<
  1982.                                         Summit   Sports
  1983.          >>>
  1984.          LINE = 6
  1985.          BOILER = <<<
  1986.                 Order No.                                  Date Ordered
  1987.                 Comm  Plan                                 Date Shipped
  1988.          >>>
  1989.          LINE = 9
  1990.          BOILER = <<<
  1991.                 Customer  ID             Customer  Name
  1992.          >>>
  1993.          LINE = 12
  1994.          BOILER = <<<
  1995.                                          Ordered  Items
  1996.          >>>
  1997.          LINE = 14
  1998.          BOILER = <<<
  1999.            Item Code   Product Description       Act. Price Std. Price Qty   Item Total
  2000.          >>>
  2001.          LINE = 21
  2002.          BOILER = <<<
  2003.                                                                 Order Total
  2004.          >>>
  2005.          MODE = BOX
  2006.          LINE = 3
  2007.          BOILER = <<<
  2008.              p----------------------------------------------------------------------q
  2009.              |                                                                      |
  2010.              (----------------------------------------------------------------------)
  2011.              |