[
|../../index.htm#lansa/ladtgub6_0040.htm]
現在地:
データ入力プログラムに使うごく簡単なアプリケーション・テンプレート例を以下に示します。
/ =================================================== / / ASK FOR THE "WORD" ask the user a question./ / Note the prompt text and extended prompt text that / / can be entered on the command.More detailed help / / can also be entered in HELP panels for the template./ / Note the special format of the ANSWER parameter./ / ==================================================== / @@QUESTION PROMPT('Supply word to describe+ WHAT this data entry program wo+ rks with') ANSWER(@@CANS001) EX+ TEND('The word you specify here+ is used to build messages that + appear on the' 'data entry scre+ en panel.You should use ONE wo+ rd only, use lowercase' 'charac+ ters only and only use singular+ form (eg:"customer", "employee+ "' '"order").Do NOT use more t+ han 18 characters in your answe+ r.''Use the HELP function key + for more information and exampl+ es.')HELPIDS (HELP010 HELP020 + HELP030 HELP040 HELP050) / ====================================================/ / GET NAME OF JUST ONE PHYSICAL FILE / / Ask the user to enter the name of a single primary / / file used for data entry.Note the prompt text / / and extended prompt text that can be entered on the / / command.More detailed help can also be entered on / / HELP panels for the template./ / ====================================================/ @@GET_FILS TO(1) PROMPT('Enter name of PHYSICAL file to be used by this template') E+ XTEND('The file name may be specifie+ d partially (to cause a partial' 'li+ st of available files to be displaye+ d), or in left blank (to cause a ful+ l list' 'of available files to be di+ splayed).When a list of files is d+ isplayed,' 'the file required may be+ selected from the list.' ' ' 'Use t+ he HELP function key for more detail+ s about this template and' 'examples+ of the type of RDML applications it + can create.')HELPIDS(HELP010 HELP02+ 0 HELP030 HELP040 HELP050) / =============================================== / / GET FIELDS OF CHOSEN FILE INTO LIST 1 / / Note that all lists must be defined by an / / @@CLR_LST command before being used in an / / application template./ / =============================================== / @@CLR_LST NUMBER(1) @@RTV_FLDS FROM_FILE(1) INTO_LST(1) / =============================================== / / GET KEYS OF CHOSEN FILE INTO LIST 2 / / =============================================== / @@CLR_LST NUMBER(2) @@RTV_KEYS OF_FILE(1) INTO_LST(2) / ================================================= / / GET USER TO CHOOSE FIELDS TO APPEAR ON PANEL / / AND PUT RESULTS INTO LIST 3 / / Note how the keys of the file are used as a / / force list to ensure all the fields are chosen./ / Note the column headings for the selection column / / and that sequence numbers are pre-filled on all / / fields in the selection list.This allows fields / / to be ordered in the desired sequence./ / ================================================= / @@CLR_LST NUMBER(3) @@MAK_LSTS FROM_LSTS(1) FORCE_LSTS(2) INTO_LSTS+ ((3 'Fields to' 'Appear on' 'Entry P+ anel' SEQUENCE *ALL)) HELPIDS(HELP0+ 10 HELP020 HELP030 HELP040 HELP050) / ============================================== / / GET USER TO CHOOSE FIELDS TO WORK WITHIN / / PROGRAM AND PUT RESULTS INTO LIST 4 / / Note that this list only requires the user to / / enter anynon-blank character to select a field./ / ===============================================/ @@CLR_LST NUMBER(4) @@MAK_LSTS FROM_LSTS(1) INTO_LSTS((4 'Fields to ' '+ Work with ''in Program ' *YESNO *NO)) H+ ELPIDS(HELP010 HELP020 HELP030 HELP040 H+ ELP050) / =================================================== / / MERGE FIELDS IN LIST 4 INTO LIST 3 AS HIDDEN / / The fields selected as fields to be worked with in / / the program are merged to list 3 with the *HIDDEN / / attribute if not already selected in list 3 by the / / previous @@MAK_LSTS command./ / =================================================== / @@MRG_LSTS FROM_LSTS((4 HIDDEN)) INTO_LST(3) / =============================================== / / ASK HOW THE PANEL IS TO BE DESIGNED / / =============================================== / @@QUESTION PROMPT('Design fields on data entry+ panel DOWN the screen or ACROSS the+ screen') ANSWER(@@CANS002) EXTEND('+ Reply DOWN or ACROSS only.''If you+ r data entry panel contains 17 (or + less) fields, DOWN is the ' 'reco+ mmended value.If your data entry p+ anel contains more than 17' 'fields+ , ACROSS is the recommended value.'+ 'Use the HELP function key for more+ information and examples.')LOWER(+ NO) VALUES(DOWN ACROSS) HELPIDS(HEL+ P010 HELP020 HELP030 HELP040 HELP05+ 0) / ==================================================/ / GENERATE THE RDML PROGRAM / / The following code consists only of RDML that / / will appear in the generated RDML program./ / Note the use of special @@ variables in the RDML / / commands-these are substituted when the template / / is executed./ / ================================================= / @@COMMENT 'Function control options' FUNCTION OPTIONS(NOMESSAGES *DEFERWRITE) @@COMMENT 'Group and field declarations' / / / The following command will not be accepted by the / / CL syntax checker, it must be forced to be accepted / / as it will be quite valid when the special variable / / @@LST03 is relaced by the list 3 elements when / / executing this template.Do not code / / FIELDS((#@@LST03))as this will generate / / an invalid RDML command.This error / / may also be true for other RDML commands.It / / will be necessary to force these errors to / / be accepted also (e.g. the DESIGN parameter of / / the REQUEST command) / / / GROUP_BY NAME(#PANELDATA) FIELDS(@@LST03) @@COMMENT 'Issue initial data entry message' MESSAGE MSGID(DCU0010) MSGF(DC@M01) + MSGDTA('''@@CANS001''') @@COMMENT 'Do data entry until terminated by + EXIT or CANCEL' BEGIN_LOOP @@COMMENT 'Request user inputs or corrects details' REQUEST FIELDS(#PANELDATA) DESIGN(@@CANS002) IDENTIFY(LABEL) @@COMMENT 'Perform any program level validation here' BEGINCHECK ENDCHECK @@COMMENT 'Attempt to insert data into the data base' INSERT FIELDS((#PANELDATA)) TO_FILE(@@FNAME01) @@COMMENT 'If okay, reset fields and issue accepted message' CHANGE FIELD(#PANELDATA) TO(*DEFAULT) MESSAGE MSGID(DCU0011) MSGF(DC@M01) + MSGDTA('''@@CANS001''') END_LOOP / =============================================== / / CLEAR ALL LISTS USED / / At the end of all application templates, it / / is suggested that all work lists in the / / template are cleared to delete all work records / / from the database./ / =============================================== */ @@CLR_LST NUMBER(1) LST NUMBER(2) @@CLR_LST NUMBER(3) @@CLR_LST NUMBER(4)
[
|../../index.htm#lansa/ladtgub6_0040.htm]