[Date Prev][Date Next][Thread Prev][Thread Next]
[Author Index] [Date Index] [Thread Index]
[SQR-USERS Info] [SQRUG Home Page]

Strange problem with STOP QUIET



I am having a rather bizarre problem in the following block of code.  Note that right after the columns you will find the show 'stop test' line, followed by a stop quiet.  When executing the program as it is, the stop quiet works like its supposed to.  However, if I move the line move &A.COMPANY to $COMPANY up above the show and the stop quiet, the program hangs on the stop quiet.  Instead of terminating, the show still displays, but then the program just sits.  This also happens when the move &A.PAYGROUP... line is moved above the show and stop lines.  It does NOT, however, occur if the move &A.PAY_END_DT... line, or any of the others above the show and stop lines.

This is totally bizarre to me.  Why would a move effect the performance of a stop quiet?  I am using SQR 3.0.18.1.1, Oracle 7.3.3.2 and Windows NT.  Command line is including the standard ALLMAXES.MAX delivered with PeopleSoft.  This occurs whether running from SQRW or from Process Scheduler.

I have demonstrated this to two other SQR programmers to make sure I'm not cracking up.

begin-select
A.COMPANY       () on-break level=1 print=never procedure=company-change
A.PAYGROUP      () on-break level=2 print=never procedure=paygroup-change
A.PAY_END_DT    () on-break level=3 print=never procedure=payenddate-change
B.OFF_CYCLE
B.PAGE#
B.LINE#
B.PAYCHECK_OPTION
B.CHECK#        (+1,{check}) on-break level=4 print=change/top-page
B.CHECK_DT
B.NAME          (,{name}) on-break level=4 print=change/top-page
B.EMPLID
B.NET_PAY
  move &B.EMPLID to $emplid
  show 'stop test'
  stop quiet
  move &A.COMPANY to $Company
  move &A.PAYGROUP to $paygroup
  move &A.PAY_END_DT to $payenddate
  if #found = 0
    do load-company
    do load-paygroup
  end-if
  add 1 to #found
  move &B.NET_PAY to #work
  do convert-to-zone-decimal(#work,2,8,#return,$amount)
  move '1' to $action
  do format-datetime(&B.CHECK_DT,$tmp,{DEFYMD},'','')
  move $tmp to $checkdate ~~XX~XX~XX
  move &B.CHECK# to $check
  move &B.NAME to $Name
  move 0 to #lines_in_group
  evaluate &B.PAYCHECK_OPTION
    when = 'R'
      do get-reversal-detail
      break
    when = '&'
      do get-distribution
    when-other
      print &B.NET_PAY  (,{amount})     edit 999,999,999.99mi
      array-add &B.NET_PAY to Totals(4) total
      do generate-828-transaction
      add &B.NET_PAY to #total_trans
  end-evaluate


from PS_PAY_CALENDAR A, PS_PAY_CHECK B
WHERE [$SlctCalendar]
  AND B.OFF_CYCLE IN ($SlctOffCycleA, $SlctOffCycleB)
  AND B.PAGE# BETWEEN #SlctPageFrom AND #SlctPageThru
  AND B.COMPANY    = A.COMPANY
  AND B.PAYGROUP   = A.PAYGROUP
  AND B.PAY_END_DT = A.PAY_END_DT
  AND B.PAYCHECK_STATUS = 'F'
  AND B.PAYCHECK_OPTION IN ('&','C','M','R')
  AND B.CHECK# > 0
order by A.COMPANY, A.PAYGROUP, A.PAY_END_DT, B.CHECK#
end-select