JRecord - Обработка повторяющихся столбцов в cobol copybook
Я использую CopybookInputFormat на git https://github.com/tmalaska/CopybookInputFormat/ чтобы сгенерировать определение таблицы улья из тетради COBOL. В моей тетради много заполнителей (дубликаты столбцов), но, похоже, JRecord неправильно обрабатывает дубликаты имен столбцов. Для приведенной ниже тетради, когда я перебираю столбцы, JRecord печатает только второй заполнитель и игнорирует первый заполнитель.
05 Birth-day PIC X(002)
05 Filler PIC X(008)
05 Birth-Month PIC X(002)
05 Filler PIC X(008)
05 Birth-year PIC X(004)
У кого-нибудь есть какое-то решение для этого? Я знаю, что JRecord 0.80.6 и выше обрабатывает дублирующиеся столбцы, но метод getUniqueField("FIRST-NAME", "PRESIDENT")
нужно имя группы.. но что если в группе есть повторяющиеся столбцы?
1 ответ
Вам не нужно импортировать заполнитель. В Cobol доступ к Наполнителю невозможен. В Коболе Наполнитель говорит " Игнорировать это поле" (или получить к нему доступ другим способом).
Cobol-тетрадь похожа на маску над блоком памяти; Наполнитель используется для пропуска некоторой памяти.
Data !##........##........## (# - accessible bytes; . - inaccessible bytes)
^ ^ ^
! ! !
Birth-day ---+ ! !
Filler ! !
Birth-Month -------------+ !
Filler !
Birth-year -----------------------+
Наполнитель может быть использован для:
- Маскировать поля, которые больше не используются.
- Используется маска данных в переопределении
- Создайте упрощенную версию тетради, когда вам не нужны все поля
- Инициализация поля вывода, т.е.
05 отчет-Дата рождения 10 дд фото 99. 10 заполнитель рис '/'. 10 мм рис 99. 10 заполнитель рис '/'. 10 гггг рис 9999.
- настройка данных таблицы
05 кодов. Код 10 встречается 5 рис 99. 05 наполнитель переопределяет коды рис х (10) значение "0204050612".
Я бы спросил у специалистов Cobol, где вы работаете, что происходит??? Возможные ответы могут быть:
- Данные заполнителя могут не понадобиться.
- Вы должны использовать другую, более сложную тетрадь.
- Тетрадь должна быть обновлена с заполнителями с настоящими именами.