図6

Figure 6 - Using a Monitor block


*.. 1 ...+... 2 ...+... 3 ...+... 4 ...+... 5 ...+... 6 ...+... 7 ...+... 8
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++

/Free

  Monitor;
     Dou %EOF(TimeRecord);
      Read TimeRecord;
      If %EOF(TimeRecord);
        Leave;
      Else;
        TotalPay = (RegHours * Rate)
                       + (OvtHours * Rate * 1.5)
                       + (DblHours * Rate * 2);
        Update TimeRecord;
      Endif;
    Enddo;
  On-error 1218;                    // Record locked
        Dsply 'TimeRecord record locked.';
        Leave;
  On-error 1011:1211:*FILE;              // File error
        Dsply 'Unexpected file error occurred.';
        Leave;
  On-error *PROGRAM;                // Non-file error
        Dsply 'Unexpected program error occurred.';
        Leave;
  Endmon;

  *INLR = *ON;
  Return;

  /End-Free