2014-10-27 32 views
-1

我想在01-WS-PRINT REC中獲得此移動語句,但由於某種原因,當我編譯它時說「MOVE」無效。掃描在接下來恢復....想法?移動是無效的 - COBOL

01 WS-PRINT-REC 
    10 M-DESC PIC X(25). 
    10 FILLER PIC X(02). 
    10 M-DATA PIC X(25). 
    MOVE 'STOCK SYMBOL' TO M-DESC. 
    MOVE MK-SYMBOL TO M-DATA. 
    PERFORM 700-PRINT-LINE. 
+0

我不知道COBOL,但你需要'MOVE MK-符號M-DATA'經過一段時間的? – ooga 2014-10-27 21:52:05

+0

感謝它,雖然 – Rob 2014-10-27 21:53:50

+1

你不能把代碼放在工作存儲部分。 – EJP 2014-10-27 22:06:26

回答

3

COBOL程序是結構化的。 有一個數據部門(分爲工作存儲部分和本地存儲部分)。你的數據聲明應該在那裏完成。 然後你有一個程序部門,你把你的代碼(這裏是移動語句)。

您不能在數據部門中使用「MOVE」。因爲您無法在程序部門中聲明變量。

此外,如前所述,你不應該在每句話結束時使用一段時間。

例如:

DATA DIVISION. 
WORKING-STORAGE DIVISION. 
01 WS-PRINT-REC 
    10 M-DESC PIC X(25). 
    10 FILLER PIC X(02). 
    10 M-DATA PIC X(25). 

PROCEDURE DIVISION. 

MAIN. 

    MOVE 'STOCK SYMBOL' TO M-DESC 
    MOVE MK-SYMBOL  TO M-DATA 

    PERFORM 700-PRINT-LINE 
    . 
+0

歡迎沿着。你在幾分鐘內就得到了Upvote,與StackOverflow的這個角落不同。比使用'LOCAL-STORAGE SECTION'更常見的是使用'LINKAGE SECTION'。沒有任何價值的'FILLER'對於印刷行來說是不好的做法。當你看到一個簡單的錯字或缺乏基本語言知識的問題時,請不要回答這個問題,直到它得到改進。你會從評論中得到這個想法,並從這個問題的負面評分中得知(儘管這裏的OP比Upvotes更幸運)。 – 2014-10-28 09:31:35