BL.Sys.FOP.Common 1 %RegisteredObject FOP.DocRepo.PostProcOutData 1 FileName:%String,PrinterName:%String="" %String 1 %String 999 Do . Set ^BL.FOP.Print.GroupNr=0 Set PrintGroupNr=$I(^BL.FOP.Print.GroupNr) Set PrintGroup=PrintGroup_"-"_PrintGroupNr Set varDuration=0 Set StartTime=$PIECE($ZTIMESTAMP,",",2) ;PrintGroup en Addenduminfo in db aanpassen Set Status=##class(BL.FOP.Print).UpdatePrintGroupAndAddendum(lbID,PrintGroup,lbAddendumInfo,AddendumName,IsReprint) Quit:(Status'="") "UpdatePrintGroupAndAddendum: "_Status ;Enkele vars uitlezen voor log verderop Do ..GetWaitingCountVars(PrintGroup,.NrOfSendings,.NrOfPages,.NrOfDocs) ;Print! If PrinterName="" Do ;Default printing . Set Status=##class(BL.Flow.Factuur.Doc).MergePrintOMR(PrintGroup) Else Do . Set Status=##class(BL.Flow.Factuur.Doc).MergePrintOMR(PrintGroup,PrinterName) Set varDuration=$PIECE($ZTIMESTAMP,",",2)-StartTime ;Error! Quit:($$$ISERR(Status)) "MergePrintOMR: "_$$ParseStatus^vhLib(Status) ;Ok! ;Addendums gezet (zelfde addendum voor meerdere docs in een envelop instellen, reeds gedane updaten) Merge:('IsReprint) ^BL.FOP.Print.Addendum(AddendumName)=^BL.FOP.Print.AddendumTMP(AddendumName,PrintGroup) ;Log (en quit indien status ok) Do ..AddPrintToLog($$$pltPrint,PrintGroup,UserID,NrOfSendings,NrOfPages,NrOfDocs,lbID) Quit "" ]]> =================================================================================================== 1 lbID:%String,PrintGroup,lbAddendumInfo:%String,AddendumName:%String,IsReprint:%Boolean=0 %String =================================================================================================== 1 ID:%String,PrintGroup:%String,lbAddendumInfo:%String,RS:%ResultSet=$$$NULLOREF %String 1 ID:%String,PrintGroup:%String,RS:%ResultSet=$$$NULLOREF %String 1 ID:%String,NewRegio:%String,RS:%ResultSet=$$$NULLOREF %String =================================================================================================== lbAddendumInfo: $LB(TaalA,AddendumInfoA,TaalB,AddendumInfoB,TaalC,AddendumInfoC,...) waarbij AddendumInfoA de inhoud voor het addenduminfo veld is met taal=TaalA 1 lbAddendumInfo %String =================================================================================================== 1 Type:%String %Boolean 1 lbID:%String %String =================================================================================================== 1 lbID:%String,TypeSuffix:%String,Status:%String %String =================================================================================================== 1 ID:%String,Type:%String,Status:%String,RS:%ResultSet=$$$NULLOREF,blnResetPrintGroup:%Boolean=0 %String =================================================================================================== 1 ============================================================================================================ 1 Type %Integer KeyWords LIKE :Task) AND (Task->KeyWords LIKE :Type)) Quit Count ]]> =================================================================================================== Returns a list of ID's from PPOD of the requested PrintGroup. Also the total number of Sendings, Pages, Docs can be retrieved via params by ref (.local) 1 %List =================================================================================================== 1 PrintGroup:%String %String =================================================================================================== 1 expression Type:%String,Regio:%String,Manual:%Boolean,Taal:%String="" %String ============================================================================================================ 1 expression Regio:%String %Boolean ============================================================================================================ 1 expression %String ============================================================================================================ 1 MaximumPapersInEnvelope:%Integer ============================================================================================================ 1 Wijzigingen aan de layout van de log ook doorvoeren naar QGetLog ROWSPEC 1 Type:%String,Msg:%String,UserID:%String,NrOfSendings:%Integer,NrOfPages:%Integer,NrOfDocs:%Integer,lbID:%String,LogDatum:%String="" Zoekt naar de PrintGroup in de PrintLog en geeft het LogID ervan terug. PrintGroup moet wel voldoende lang zijn (liefst volledig zelfs) om een relevant resultaat terug te geven. Bvb: "FACTUUR-BE-NF-121" (volledig : OK) , "FACTUUR-BE-NF" (onvolledig : niet OK) Added by WimV on 07/09/2009 1 PrintGroup:%String %String ============================================================================================================ QGetCompletedPrintGroups . ============================================================================================================ 1 0 %Status 1 QGetLogExecute 0 %Status 1 QGetLogExecute 0 %Status ------------------------------------------------------------------------------------------------------------ %Query ============================================================================================================ QGetWaitingPrintGroups . ============================================================================================================ 1 0 %Status MaxPapersInEnvelope)) . ;Huidige row cachen aangezien we er straks opnieuw gaan doorlopen . m aRS($I(tmpCnt))=tmpRS.Data . Set aRS(tmpCnt,$$$arsIndex)=Index . Set aRS(tmpCnt,$$$arsAddendumTray)=AddendumTray ;Sortering van de talen ophalen New lbTaalSort Set lbTaalSort=##class(Res.PI.Taal).GetLBTaalSort() #Define aiDocRef 1 #Define aiEnvelopeKey 2 #Define riNrOfSendings 4 #Define riNrOfPages 5 #Define riNrOfDocs 6 #Define rilbTaal 7 #Define rilbID 8 #Define rilbAddendumInfo 9 ;Doorheen cache-versie van resultset lopen, nu weten we of de row tot manuele verwerking behoort of niet New Manual,KlantNr,lbRow Kill aRow Set tmpCnt="" For Set tmpCnt=$O(aRS(tmpCnt)) Quit:(tmpCnt="") Do . Set Index=aRS(tmpCnt,$$$arsIndex) . Set AddendumTray=aRS(tmpCnt,$$$arsAddendumTray) . Set EnvelopeKey=aRS(tmpCnt,"EnvelopeKey") . Set Taal=aRS(tmpCnt,"Taal") . Set Type=aRS(tmpCnt,"Type") . Set Regio=aRS(tmpCnt,"Regio") . Set KlantNr=aRS(tmpCnt,"KlantNr") . Set Manual=aPapersInEnvelope(Index,EnvelopeKey,$$$apieManual) . Set:(Manual) Index=Index_".MAN" . If $D(aRow(Index)) Do .. Set lbRow=aRow(Index) .. Set lbTaal=$LI(lbRow,$$$rilbTaal) .. If '$LF(lbTaal,Taal) Do ... Set $LI(lbRow,$$$rilbTaal)=$$SortLBTaal(lbTaalSort,lbTaal_$LB(Taal)) ;We hebben de volgorde van de talen graag altijd hetzelfde ... Set $LI(lbRow,$$$rilbAddendumInfo)=$$ConcatAddendumInfo($LI(lbRow,$$$rilbAddendumInfo),Taal,AddendumTray) .. If '$D(aRow(Index,$$$aiEnvelopeKey,aRS(tmpCnt,"EnvelopeKey"))) Do ... Set $LI(lbRow,$$$riNrOfSendings)=$LI(lbRow,$$$riNrOfSendings)+1 ... Set aRow(Index,$$$aiEnvelopeKey,aRS(tmpCnt,"EnvelopeKey"))=1 .. Set $LI(lbRow,$$$riNrOfPages)=$LI(lbRow,$$$riNrOfPages)+aRS(tmpCnt,"NrOfPages") .. If '$D(aRow(Index,$$$aiDocRef,aRS(tmpCnt,"DocRef"))) Do ... Set $LI(lbRow,$$$riNrOfDocs)=$LI(lbRow,$$$riNrOfDocs)+1 ... Set aRow(Index,$$$aiDocRef,aRS(tmpCnt,"DocRef"))=1 .. Set $LI(lbRow,$$$rilbID)=$LI(lbRow,$$$rilbID)_$LB(aRS(tmpCnt,"ID")) .. Set aRow(Index)=lbRow . Else Do .. Set aRow(Index)=$LB(Type,Regio,Manual,1,aRS(tmpCnt,"NrOfPages"),1,$LB(Taal),$LB(aRS(tmpCnt,"ID")),$$ConcatAddendumInfo("",Taal,AddendumTray)) .. Set aRow(Index,$$$aiDocRef,aRS(tmpCnt,"DocRef"))=1 .. Set aRow(Index,$$$aiEnvelopeKey,aRS(tmpCnt,"EnvelopeKey"))=1 Set Loop="" Quit $$$OK ;----------------------------------- ;lbTaalSort: alle mogelijke talen in een $LB gesorteerd (uit Res.PI.Taal) ;lbTaal: ongesorteerde lijst van talen ;lbTaalSorted(=functie resultaat): lbTaal gesorteerd adhv lbTaalSort SortLBTaal(lbTaalSort,lbTaal) New TaalLoop,lbTaalSorted,tmpTaal Set lbTaalSorted="" For TaalLoop=1:1:$LL(lbTaalSort) Do . Set tmpTaal=$LI(lbTaalSort,TaalLoop) . Set:($LF(lbTaal,tmpTaal)) lbTaalSorted=lbTaalSorted_$LB(tmpTaal) Quit lbTaalSorted ConcatAddendumInfo(lbAddendumInfo, Taal,Tray) Quit:(+Tray=0) lbAddendumInfo Quit:($LF(lbAddendumInfo,Taal)) lbAddendumInfo Quit lbAddendumInfo_$LB(Taal,Tray) ]]> 1 QGetWaitingPrintGroupsExecute 0 %Status 1 QGetWaitingPrintGroupsExecute 0 %Status ------------------------------------------------------------------------------------------------------------ %Query AddendumName:%String ------------------------------------------------------------------------------------------------------------ ... WHERE (Status="W") AND (userstring9='' OR userstring9 Is Null OR userstring0 LIKE "%-RE") %SQLQuery SELECT postprocoutdata_id As ID, userstring0 As Type, userstring1 As Regio, userstring2 As Taal, userstring8 As EnvelopeKey, numofpages As NrOfPages, numofpapers As NrOfPapers, userstring4 As DocRef, userstring3 As KlantNr FROM FOP_DocRepo.PostProcOutData WHERE (Status='W') AND (userstring9='' OR userstring9 Is Null) ORDER BY Type,Regio,EnvelopeKey,DocRef,Taal ============================================================================================================ %SQLQuery SELECT postprocoutdata_id As ID, userstring0 As Type, userstring1 As Regio, userstring2 As Taal, userstring8 As EnvelopeKey, numofpages As NrOfPages, numofpapers As NrOfPapers, userstring4 As DocRef, userstring3 As KlantNr, userstring9 As PrintGroup, status As Status FROM FOP_DocRepo.PostProcOutData WHERE Status='C' ORDER BY DocRef ============================================================================================================ %SQLQuery KeyWords,Count(*) As Cnt FROM Sys_FOP.TaskQueue WHERE (Task->KeyWords LIKE '%PrintToPPOD%') OR (Task->KeyWords LIKE '%RenderToPPOD%') GROUP BY Task->KeyWords]]>