Согласно документам AcuCOBOL (которые я использую):
Когда используется соответствующая фраза,
выбранные элементарные предметы в
исходная группа перемещена в
соответствующие предметы в dest-group.
Это рассматривается как серия Формат
1 MOVE заявления, по одному для каждого
соответствующая пара элементов данных.
Движение формата 1 выглядит следующим образом:
ПЕРЕМЕСТИТЬ исходный элемент ДО {dest-item}
С учетом следующего файла и определения рабочего хранилища
DATA DIVISION.
FILE SECTION.
FD PRODUCT-INFO-FILE.
01 PRODUCT-INFO-RECORD.
03 PI-HOLD-PROD PIC x(12).
03 PI-HOLD-DESC PIC x(30).
03 PI-HOLD-DISC PIC 9(01).
03 PI-HOLD-TOTAL PIC 9(08)V99.
WORKING-STORAGE SECTION.
01 HOLD-FIELDS-DEST.
03 WS-HOLD-PROD PIC x(12).
03 WS-HOLD-DESC PIC x(30).
03 WS-HOLD-DISC PIC 9(01).
03 WS-HOLD-TOTAL PIC 9(08)V99.
Делаем это:
MOVE CORRESPONDING PRODUCT-INFO-RECORD TO HOLD-FIELDS-DEST.
будет таким же, как это:
MOVE PI-HOLD-PROD TO WS-HOLD-PROD.
MOVE PI-HOLD-DESC TO WS-HOLD-DESC.
MOVE PI-HOLD-DISC TO WS-HOLD-DISC.
MOVE PI-HOLD-TOTAL TO WS-HOLD-TOTAL.
Это спасло 3 строки кода. Многие файлы шире.
EDIT:
Это также из того же набора документов ...
В следующей таблице приведены
комбинации источника-элемента и
Dest-Item, которые разрешены MOVE
заявление. Числа в таблице
номера "Общих правил" в
этот раздел, где каждая комбинация
описано:
Sending Category: Receiving Item Category:
Alphabetic Alphanumeric/Alphanumeric Edited Numeric /Numeric Edited
Alphabetic Yes (12) Yes (13) No (15)
Alphanumeric Yes (12) Yes (13) Yes (14)
Alphanumeric Edited Yes (12) Yes (13) No (15)
Numeric Integer No (15) Yes (13) Yes (14)
Numeric
Non-integer No (15) No (15) Yes (14)
Numeric Edited No (15) Yes (13) Yes (14)
'12. Когда dest-item буквенный, происходит выравнивание и заполнение пробела
в соответствии со стандартным выравниванием
правила.
'13. Когда dest-item редактируется буквенно-цифровым или буквенно-цифровым способом, обоснование и
заполнение пространства происходит в соответствии с
Стандартные правила выравнивания. Если
исходный элемент подписан числовым
Операционный знак не перемещен. Если
знак занимает отдельный символ
положение, что знак не
перемещен, а размер исходного элемента равен
рассматривается как на единицу меньше.
'14. Когда dest-элемент является числовым или числовым редактором, десятичная точка
происходит выравнивание и заполнение нулями
в соответствии со стандартным выравниванием
правила. Если исходный элемент не подписан, он
считается положительным. Если
dest-item не подписан, абсолют
значение source-item перемещено. Если
Dest-элемент подписан, его знак установлен
на знак источника-элемента. Если
исходный элемент отредактирован в числовом виде, это
"отредактированный" первый такой, что dest-item
получает то же числовое значение.
'15. Следующие шаги недопустимы: алфавитный или буквенно-цифровой отредактированный
элемент данных не может быть перемещен в
числовой или числовой отредактированный элемент данных.
Числовой или числовой отредактированный элемент данных
не может быть перемещен в алфавитный
вещь. Нецелочисленный числовой элемент данных
нельзя перевести на буквенно-цифровой или
буквенно-цифровой отредактированный элемент данных.