#*****************************************************************************# # Macro Name : trnotes.rep # # Author : ARBep (Template) # # Date : January 2001 # # Function : Reports on transmittal data. # # Arguments In : mode - 1 = view report # # 2 = print report directly # # Arguments Out : None # #*****************************************************************************# arguments mode : integer locals # SNFP Label Printing ARBep Start: tmpfile : string; # SNFP Label Printing End. FROM_uname : string ; FROM_login : string ; FROM_orgnname : string ; FROM_orgnadd1 : string ; FROM_orgnadd2 : string ; FROM_orgnadd3 : string ; FROM_orgnadd4 : string ; FROM_orgnadd5 : string ; FROM_orgntel : string ; FROM_orgnfax : string ; FROM_orgnx1 : string ; FROM_orgnx2 : string ; FROM_orgnx3 : string ; FROM_utel : string ; FROM_uemail : string ; FROM_ux1 : string ; FROM_ux2 : string ; FROM_ux3 : string ; rname : string ; fname : string ; sname : string ; comments : string ; -- 1st line of text action : string ; -- action (reason for issue) due : string ; -- 'reply by' date docName : string ; cur1 : integer; today : string ; L_Print : boolean; L_Close : boolean; template : string ; -- Transmittal slip template s0 : string ; i0 : integer; edm_send : string ; edmdevs : boolean; xdir : string ; ok : boolean begin let edm_send = @(140097) -- eDM_Send -- Get details of whom is sending the Transmittal notes let QEDMuid = QEDMcrorig EDM get user let QEDMorgnid = QEDMuorgn EDM get organisation let FROM_uname = QEDMuname let FROM_login = QEDMulogin let FROM_utel = QEDMutel let FROM_uemail = QEDMuemail let FROM_ux1 = QEDMux1 let FROM_ux2 = QEDMux2 let FROM_ux3 = QEDMux3 let FROM_orgnname = QEDMorgnname let FROM_orgnadd1 = QEDMorgnadd1 let FROM_orgnadd2 = QEDMorgnadd2 let FROM_orgnadd3 = QEDMorgnadd3 let FROM_orgnadd4 = QEDMorgnadd4 let FROM_orgnadd5 = QEDMorgnadd5 let FROM_orgntel = QEDMorgntel let FROM_orgnfax = QEDMorgnfax let FROM_orgnx1 = QEDMorgnx1 let FROM_orgnx2 = QEDMorgnx2 let FROM_orgnx3 = QEDMorgnx3 -- Get recipients for copy request SQL execute EDM_cur3 "SELECT RT.ID, R.SNAME, R.FNAME " "FROM RECEIPTS RT, RECIPIENTS R " "WHERE RT.RECIPIENT = R.ID " "AND RT.REQUEST = :QEDMcrid " "ORDER BY R.SNAME, R.FNAME" EndSQL # SNFP Label Printing ARBep Start: FileAction temp tmpfile EndFileAction openout tmpfile mprint "##Bookmark=Recipient" nl "##StepOff" nl endprint closeout # SNFP Label Printing End. let Qerrorno = 0 while Qerrorno = 0 loop SQL fetch EDM_cur3 QEDMrtid QEDMrecipsname QEDMrecipfname EndSQL if Qerrorno = 0 then -- get the comments from the XRECEIPTS table let comments = "" SQL execute cur1 "SELECT COMMENTS FROM XRECEIPTS WHERE ID = :QEDMrtid" EndSQL SQL fetch cur1 comments EndSQL SQL break cur1 -- Get recipient details EDM get receipt let QEDMrecipid = QEDMrtrecipient EDM get recipient let QEDMorgnid = QEDMreciporgn EDM get organisation -- get data about recipient let QEDMuid = QEDMreciplogin EDM get user -- Get the transmittal action/due date SQL execute cur1 "SELECT A.NAME, :RTOCHAR: TR.DUE" RTOCHAR2 "FROM RECEIPTS RT, TRANSMITTALS TR, ACTIONS A" "WHERE RT.ACTION = A.ID AND TR.RECEIPT = RT.ID" "AND RT.ID = :QEDMrtid" EndSQL SQL fetch cur1 action due EndSQL SQL break cur1 -- Are we doing a transfer OR using the EDM_Send device ? if EDMxfer_On then let edmdevs = true let xdir = "j" + strint(QEDMprjid) + "@" + EDMxfer_sendDir else SQL execute cur1 "SELECT TR.ID FROM TRANSMITTALS TR, RECEIPTS R, MEDIA M" "WHERE R.ID=:QEDMrtid AND R.ID=TR.RECEIPT AND TR.MEDIA=M.ID AND" "M.NAME=:edm_send" EndSQL SQL fetch cur1 i0 EndSQL SQL break cur1 let edmdevs = (Qerrorno=0) if edmdevs then let xdir = "j" + strint(QEDMprjid) + "_" + strint(QEDMrtid) + "@" + EDMxfer_sendDir endif endif let s0 = PROJ_name + "@@TRANSMITTALS" Function path s0 s0 runa makedir.hcl@@GENutils ( s0 ok ) let docName = "TR" + strint(QEDMrtid) + ".doc@" + s0 Function path docName docName FileAction exists docName i0 EndFileAction if (QEDMcrsub = "") or (i0 >= 0) then let docName = "" endif runa gettoday.hcl@@EDMutils ( today ) if QEDMcrsub /= "" then runa compdate.hcl@@EDMutils ( QEDMcrsub RTODAY i0 ) if i0 < 0 then let today = QEDMcrsub endif endif -- Write the data file. Uncomment items as necessary. System delete QEDMreport EndSystem -- ensure empty report file openout QEDMreport mprint -- from user organisation details "##Bookmark=FROM_company" nl FROM_orgnname nl # "##Bookmark=FROM_address1" nl # FROM_orgnadd1 nl # "##Bookmark=FROM_address2" nl # FROM_orgnadd2 nl # "##Bookmark=FROM_address3" nl # FROM_orgnadd3 nl # "##Bookmark=FROM_address4" nl # FROM_orgnadd4 nl # "##Bookmark=FROM_address5" nl # FROM_orgnadd5 nl # "##Bookmark=FROM_orgntel" nl # FROM_orgntel nl # "##Bookmark=FROM_orgnfax" nl # FROM_orgnfax nl # "##Bookmark=FROM_orgnx1" nl # FROM_orgnx1 nl # "##Bookmark=FROM_orgnx2" nl # FROM_orgnx2 nl # "##Bookmark=FROM_orgnx3" nl # FROM_orgnx3 nl -- from user details "##Bookmark=FROM_name" nl FROM_uname nl "##Bookmark=FROM_login" nl FROM_login nl # "##Bookmark=FROM_utel" nl # FROM_utel nl # "##Bookmark=FROM_uemail" nl # FROM_uemail nl # "##Bookmark=FROM_ux1" nl # FROM_ux1 nl # "##Bookmark=FROM_ux2" nl # FROM_ux2 nl # "##Bookmark=FROM_ux3" nl # FROM_ux3 nl -- distribution details "##Bookmark=ReplyNo" nl QEDMrtid nl "##Bookmark=RequestNo" nl QEDMcrref nl -- to user details "##Bookmark=TO_name" nl QEDMrecipfname " " QEDMrecipsname nl # "##Bookmark=TO_utel" nl # QEDMutel nl # "##Bookmark=TO_uemail" nl # QEDMuemail nl # "##Bookmark=TO_ux1" nl # QEDMux1 nl # "##Bookmark=TO_ux2" nl # QEDMux2 nl # "##Bookmark=TO_ux3" nl # QEDMux3 nl -- to organisation details "##Bookmark=TO_company" nl QEDMorgnname nl "##Bookmark=TO_address1" nl QEDMorgnadd1 nl "##Bookmark=TO_address2" nl QEDMorgnadd2 nl "##Bookmark=TO_address3" nl QEDMorgnadd3 nl "##Bookmark=TO_address4" nl QEDMorgnadd4 nl "##Bookmark=TO_address5" nl QEDMorgnadd5 nl # "##Bookmark=TO_orgntel" nl # QEDMorgntel nl # "##Bookmark=TO_orgnfax" nl # QEDMorgnfax nl # "##Bookmark=TO_orgnx1" nl # QEDMorgnx1 nl # "##Bookmark=TO_orgnx2" nl # QEDMorgnx2 nl # "##Bookmark=TO_orgnx3" nl # QEDMorgnx3 nl "##BOOKMARK=PROJECT" nl PROJ_displayname " " PROJ_title nl "##BOOKMARK=DATE" nl today nl "##BOOKMARK=SUBMITDATE" nl -- if QEDMcrsub = "" then -- "Not submitted" nl -- else QEDMcrsub nl -- endif "##BOOKMARK=REASON" nl action nl "##BOOKMARK=COMMENTS" nl comments nl "##BOOKMARK=TABLE" nl endprint closeout # SNFP Label Printing ARBep Start: if not edmsevs then openout tmpfile mprint QEDMrecipfname " " QEDMrecipsname nl QEDMorgnname nl QEDMorgnadd1 nl QEDMorgnadd2 nl QEDMorgnadd3 nl QEDMorgnadd4 nl QEDMorgnadd5 nl "##StepOn" nl "##StepOff" nl endprint closeout endif # SNFP Label Printing End. -- get the transmittal details into QEDMreport. The information we retrieve depends on -- whether this is a German project: if SNFP_GermanProj then let QEDMrepform = "^S^N^S^N^S^N^S^N^S^N^S^N^S^N^I" SQL execute cur1 "SELECT XTR.DRAWING, XTR.REVISION, XTR.SCALE, XTR.TITLE, XTR.STATUS, XTR.CADNAME," MoreSQL else let QEDMrepform = "^S^N^S^N^S^N^S^N^I" SQL execute cur1 "SELECT XTR.DRAWING, XTR.REVISION, XTR.TITLE," MoreSQL endif SQL more "M.NAME :RCONCAT: '/' :RCONCAT: P.NAME, TR.COPIES" "FROM TRANSMITTALS TR, XTRANSMITTALS XTR, MEDIA M, PAPERSIZE P" "WHERE TR.ID=XTR.ID AND TR.RECEIPT=:QEDMrtid" "AND TR.MEDIA=M.ID AND TR.PSIZE=P.ID" MoreSQL -- Now add an ordering clause: if SNFP_TransOrder then SQL more "ORDER BY SUBSTR(XTR.PACKAGE,1,1),LENGTH(XTR.PACKAGE), XTR.PACKAGE," -- 1. order by package "SIGN (INSTR(TRANSLATE(SUBSTR(XTR.DRAWING,LENGTH(XTR.DRAWING)-2,3), " -- 2. split into numeric and non-numeric "'ABCDEFGHIJKLMNOPQRSTUVWXYZ-_/', 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX' ), 'X') )," -- last 3 chars of drawing name "LPAD(XTR.SHEET,4,'0')," -- 3. order by numeric sheet "SUBSTR(XTR.DRAWING, LENGTH(XTR.DRAWING)-2, 3)" -- 4. order by last 3 chars (digits) of drawing name EndSQL else SQL more "ORDER BY SIGN(TR.COPIES),XTR.DRAWING" EndSQL endif EDM report cur1 openout QEDMreport -- CC other recipients if required if EDM_CCrecip then lprint "##BOOKMARK=CC" lprint @(59819) -- "CC: " SQL execute cur1 "SELECT DISTINCT R.FNAME :RCONCAT: ' ' :RCONCAT: R.SNAME :RCONCAT: '@' :RCONCAT: O.NAME, R.SNAME, R.FNAME" "FROM RECEIPTS RT, RECIPIENTS R, ORGANISATIONS O " "WHERE RT.RECIPIENT = R.ID " "AND RT.REQUEST = :QEDMcrid " "AND R.ORGANISATION = O.ID" "AND RT.ID != :QEDMrtid" -- don't include the recipients own receipt "AND R.ID != :QEDMrtrecipient" -- and the case where same recipient receives for different action "ORDER BY R.SNAME, R.FNAME" EndSQL while Qerrorno = 0 loop SQL fetch cur1 rname sname fname EndSQL if Qerrorno = 0 then lprint rname endif endloop SQL break cur1 endif mprint "##BOOKMARK=ACK" nl "Acknowledgement Details for transmittal No. " PROJ_displayname "/" QEDMrtid "." " Please sign and return by " due nl "##END" nl endprint closeout -- QEDMreport if SNFP_GermanProj then let template = "trnotesG.dot@" + PROJ_name + "@@TRANSMITTALS" else let template = "trnotes.dot@" + PROJ_name + "@@TRANSMITTALS" endif System exists template i0 EndSystem if i0 < 0 then if SNFP_GermanProj then let template = "trnotesG.dot@@EDMconfig" else let template = "trnotes.dot@@EDMconfig" endif endif --------------------------------------------------------------------------- -- Create the transmittal note in Word --------------------------------------------------------------------------- let L_Print = (mode = 2) let L_Close = L_Print runa word_rep.hcl@@EDMoffice ( template QEDMreport L_Print docName L_Close false Qerrorno ) -- Copy the transmittal report if we are sending: if edmdevs then runa makedir.hcl@@GENutils ( xdir ok ) let xdir = "TR" + strint(QEDMrtid) + ".doc@" + xdir System copy docName xdir EndSystem endif endif endloop SQL break EDM_cur3 # SNFP Label Printing ARBep Start: if not edmdevs then openout tmpfile lprint "##END" closeout runa word_rep.hcl@@EDMoffice ( "label.dot" tmpfile false "" false false Qerrorno ) endif System delete tmpfile EndSystem # SNFP Label Printing End. if L_Close then let WordObj = nothing endif label EXIT end