入力制御データセットからマルチラベルのフォーマットを作成する

[OS]ALL
[リリース] 8.1, 8.2
[キーワード] format, multilabel

[質問]

フォーマットを制御データセットから作成しています。マルチラベルのフォーマットも同様に作成しようとしていますが、次のエラーメッセージが出てしまいます。どのようにすればマルチラベルフォーマットを作成できますか。

ERROR: XXXXXX-XXXXXX は既に指定された範囲または値と重なり合っています。

[回答]

入力制御データセットからフォーマットを作成する場合、START、LABEL、FMTNAMEの各変数が最低限必要となります。マルチラベルフォーマットを作成する場合、これらに加えて変数HLO(値としてMが格納されている)が必要です。さらにマルチラベルフォーマットの性格上、変数ENDも必要となります。

■ マルチラベルフォーマットの定義例

    PROC FORMAT ;
      VALUE MULF(MULTILABEL) 11    = '小6'
                             12    = '中1'
                             13    = '中2'
                             14    = '中3'
                             15    = '高1'
                             16    = '高2'
                             17    = '高3'
                             11    = '小学生'
                             12-14 = '中学生'
                             15-17 = '高校生'
      ;
    RUN ;
マルチラベルフォーマットの定義例と同等のフォーマットを入力制御データセットから作成する場合、次のデータセットが必要です。

    FMTNAME    START    END    LABEL     HLO

     MULF       11      11     小6       M
     MULF       11      11     小学生     M
     MULF       12      12     中1       M
     MULF       12      14     中学生     M
     MULF       13      13     中2       M
     MULF       14      14     中3       M
     MULF       15      15     高1       M
     MULF       15      17     高校生     M
     MULF       16      16     高2       M
     MULF       17      17     高3       M

なお、変数HLOの値は「SM」でもかまいません(FORMATプロシジャを使って制御データセットを作成した場合、HLOの内容はSMになります)。