Updating Report

Tigris Magnus

New Member
I have been asked to update an aging report that our production manager uses to track raw inventory. Currently he can put in a item number and it prints out all the jobs for that item that material was purchased for. He would like it if he could add job number criteria range and/or a date range. I am new to Progress as a language and need some help. Below is the code for the report:

DEFINE VARIABLE qbf-beg-1 AS CHARACTER NO-UNDO.
DEFINE VARIABLE vl-date AS CHARACTER NO-UNDO.
DEFINE VARIABLE vl-time AS CHARACTER NO-UNDO.
DEFINE VARIABLE vl-rel-cost LIKE symix.poitem.item-cost NO-UNDO.
DEFINE VARIABLE vl-exp-cost LIKE symix.poitem.item-cost NO-UNDO.
DEFINE VARIABLE vl-lin AS CHAR FORMAT "x(13)" NO-UNDO.
DEFINE VARIABLE vl-lin1 LIKE vl-lin.

DEFINE BUTTON qbf-ok LABEL "OK" SIZE 8 BY 1 AUTO-GO.
DEFINE BUTTON qbf-ee LABEL "Cancel" SIZE 8 BY 1 AUTO-ENDKEY.

DO ON ERROR UNDO, LEAVE:
FORM SKIP(.5)
"Enter Bachman Item No" AT 2 SPACE(1) SKIP
qbf-beg-1 AT 2 FORMAT "x(7)" SPACE(1)
SKIP(1)
qbf-ok AT 2 qbf-ee SPACE(1) SKIP(.5)

WITH FRAME qbf-ask-1 OVERLAY ATTR-SPACE
NO-LABELS TITLE "Job Material Report"
DEFAULT-BUTTON qbf-ok CANCEL-BUTTON qbf-ee
VIEW-AS DIALOG-BOX THREE-D.

UPDATE qbf-beg-1 qbf-ok qbf-ee
WITH FRAME qbf-ask-1.
END.

HIDE FRAME qbf-ask-1 NO-PAUSE.
DEFINE VARIABLE qbf-007 AS DECIMAL NO-UNDO.
DEFINE VARIABLE qbf-008 AS DECIMAL NO-UNDO.
DEFINE VARIABLE qbf-time AS INTEGER NO-UNDO.
DEFINE BUFFER poitem FOR symix.poitem.

ASSIGN
qbf-time = TIME
vl-date = STRING(TODAY,"99/99/99")
vl-time = STRING(qbf-time,"HH:MM:SS")
vl-lin = FILL("=",13)
vl-lin1 = vl-lin.

FORM
symix.poitem.po-num COLUMN-LABEL "PO" FORMAT "x(7)"
symix.poitem.item COLUMN-LABEL "Item" FORMAT "x(20)"
VIEW-AS TEXT
symix.poitem.ref-num COLUMN-LABEL "Job #" FORMAT "x(7)"
symix.poitem.qty-ordered COLUMN-LABEL "Ordered" FORMAT "-z,zzz,zz9.99"
symix.poitem.qty-received COLUMN-LABEL "Received" FORMAT "-z,zzz,zz9.99"
symix.poitem.item-cost COLUMN-LABEL "Item Cost" FORMAT "-z,zzz,zz9.99"
qbf-008 COLUMN-LABEL "Expect!Cost" FORMAT "-z,zzz,zz9.99"
qbf-007 COLUMN-LABEL "Total!Cost" FORMAT "-z,zzz,zz9.99"
WITH FRAME qbf-report-1 DOWN COLUMN 1 WIDTH 132
NO-ATTR-SPACE NO-VALIDATE NO-BOX USE-TEXT STREAM-IO.
FORM
"Bachman Machine Company" AT 44 SKIP
"Purchase Orders By Job" AT 45 SKIP
"Item No:" AT 48
qbf-beg-1 AT 57 SKIP
symix.ITEM.DESCRIPTION AT 57 SKIP
vl-date AT 01 SKIP
vl-time AT 01 SKIP(1)
WITH FRAME qbf-header PAGE-TOP COLUMN 1 WIDTH 132 NO-ATTR-SPACE
NO-VALIDATE NO-LABELS NO-BOX USE-TEXT STREAM-IO.

FIND FIRST symix.ITEM WHERE ITEM.ITEM = qbf-beg-1
NO-LOCK NO-ERROR.

OUTPUT TO PRINTER page-size 56 PAGED.

PUT "~E(s15H~E&l8D".

DISPLAY
qbf-beg-1
vl-date
vl-time
symix.ITEM.DESCRIPTION
WITH FRAME qbf-header.

FOR EACH symix.job NO-LOCK
WHERE job.ITEM = trim(qbf-beg-1),
EACH symix.poitem no-lock
WHERE trim(symix.poitem.ref-num) = trim(job.job)
AND TRIM(symix.poitem.non-inv-acct) = "50400":


ASSIGN
qbf-007 = symix.poitem.qty-received * symix.poitem.item-cost
qbf-008 = symix.poitem.qty-ordered * symix.poitem.item-cost.

DISPLAY
symix.poitem.po-num
symix.poitem.item
symix.poitem.ref-num
symix.poitem.qty-ordered
symix.poitem.qty-received
symix.poitem.item-cost
qbf-008
qbf-007
WITH FRAME qbf-report-1.

ASSIGN vl-rel-cost = vl-rel-cost + qbf-007
vl-exp-cost = vl-exp-cost + qbf-008
qbf-007 = 0
qbf-008 = 0.

DOWN WITH FRAME qbf-report-1.
END.
DISPLAY
vl-lin @ qbf-007
vl-lin1 @ qbf-008
WITH FRAME qbf-report-1.

DOWN WITH FRAME qbf-report-1.

DISPLAY
vl-rel-cost @ qbf-007
vl-exp-cost @ qbf-008
WITH FRAME qbf-report-1.
put "~E".
OUTPUT CLOSE.
RETURN.
 
Top