BL.Sys.FOP.Common 1 TCHUI.TForm ========================================================================================================================== PROPERTIES . ========================================================================================================================== TCHUI.TAction TCHUI.TAction TCHUI.TAction TCHUI.TAction TCHUI.TAction TCHUI.TAction TCHUI.TAction TCHUI.TAction TCHUI.TAction TCHUI.TLabel TCHUI.TLabel TCHUI.TLabel TCHUI.TLabel TCHUI.TLabel TCHUI.TLabel TCHUI.TLabel TCHUI.TLabel TCHUI.TLabel TCHUI.TLabel TCHUI.TButton TCHUI.TButton TCHUI.TButton TCHUI.TLijst TCHUI.TDataSetList TCHUI.TLijst TCHUI.TDataSetList CHUI.FOP.Print.dlgDetail "{$$$NULLOREF}" CHUI.FOP.Print.dlgDetail "{$$$NULLOREF}" CHUI.FOP.Print.dlgAddendum "{$$$NULLOREF}" TCHUI.TContextMenu TCHUI.TContextMenu TCHUI.TMenuItem TCHUI.TMenuItem TCHUI.TMenuItem TCHUI.TMenuItem TCHUI.TMenuItem TCHUI.TMenuItem TCHUI.TMenuItem TCHUI.TMenuItem TCHUI.TMenuItem TCHUI.TMenuItem TCHUI.TMenuItem TCHUI.TMenuItem TCHUI.TMenuItem TCHUI.TMenuItem TCHUI.TMenuItem TCHUI.TMenuItem Properties %String %Boolean %String %String 1 Parameters PrintTo cols waiting 1 2 3 4 5 6 7 8 9 10 11 cols Log 1 2 3 4 5 6 7 Popupkey % TypeCounts 1 2 3 ========================================================================================================================== METHODs . ========================================================================================================================== Value:%String %Status expression AsCaption:%Boolean=0 %String lbID Wildcard:%String,PrintOneFile:%Boolean .") ;Geselecteerde printgroup voor reprint achterhalen Set PrintGroup=..lstLog.GetSelectedData(..#colLMsg) Quit:(PrintGroup="") ;Form aanmaken om bijhorende bestanden in weer te geven Set Msg=$S(PrintOneFile:"Selecteer een bestand:",1:"Selecteer een of meerdere bestanden:") Set frmList=##class(TCHUI.Dlg.TList).CreateAndPrepare(..Caption,Msg,,60,18,"Reprint",'PrintOneFile) ;'PrintOneFile=checkboxlist Set DocBaseDirectoryUtils = ##class(BL.Sys.FOP.DocBaseDirectoryUtils).%New() ;Bijhorende bestanden aan lijst toevoegen Do areAddReprintFilesToList(frmList,PrintGroup,DocBaseDirectoryUtils.GeefOMRPrintDirNtw()) Do areAddReprintFilesToList(frmList,PrintGroup,DocBaseDirectoryUtils.GeefOMRSourceDirNtw()) ;Form weergeven Quit:(frmList.ShowModal()=$$$mrCancel) ;Vragen om afdruk bevestiging Set lbSelectedKey=frmList.lbSelectedKey Set NrOfFiles=$LL(lbSelectedKey) Quit:(NrOfFiles=0) /*** New code: check existence of PrintGroup in PrintLog + determine PrintData ***/ /*** ***/ ; Modified by WimV on 07/09/2009 Set (lbFiles,lbRepair)="" For Loop=1:1:$LL(lbSelectedKey) Do . Set FileName=$LI(lbSelectedKey,Loop) . Set FileName=$E(FileName,2,999) . . ; Get PrintGroup Data to Repair the Print Log (Added by WimV on 07/09/2009) . Set PrintGroup=..FGetRepairPrintGroup(FileName, .NrOfSendings,.NrOfPages,.NrOfDocs,.lbIDs) . Quit:($$$MsgBox(..Caption,$$areBuildConfirmMsg(),$$$mbOkCancel)=$$$mrCancel) . Set blnRepair=($$$cmPrint.FindInPrintLog(PrintGroup)="")&&(NrOfDocs>0) . . ; Add to Print Log (Added by WimV on 07/09/2009) . Do:(blnRepair) ##class(BL.FOP.Print).AddPrintToLog($$$pltPrint,PrintGroup,%Application.User.%Id(),NrOfSendings,NrOfPages,NrOfDocs,lbIDs) . . ; Create new lists . Set lbFiles=lbFiles_$LB($LI(lbSelectedKey,Loop)) . Set lbRepair=lbRepair_$LB(blnRepair) Set lbSelectedKey=lbFiles ; Overwrite with modified list Set NrOfFiles=$LL(lbSelectedKey) Set Msg="Er word(en) "_NrOfFiles_" bestand(en)"_" terug afgedrukt." Do:(NrOfFiles=0) $$$ShowMsgBoxSimple(..Caption,Msg) Quit:(NrOfFiles=0) Quit:(NrOfFiles'=1)&&($$$MsgBox(..Caption,Msg_" Doorgaan?",$$$mbOkCancel)=$$$mrCancel) /*** Previous code by TomR ***/ /*** *** / Set Msg=$S(NrOfFiles=1:$E($LI(lbSelectedKey),2,999)_" wordt",1:"Er word(en) "_NrOfFiles_" bestand(en)")_" terug afgedrukt. Doorgaan?" Quit:($$$MsgBox(..Caption,Msg,$$$mbOkCancel)=$$$mrCancel) /*** ***/ Do $$$CreateProgressFM(..Caption,"Bezig met opnieuw afdrukken...") ;Afdrukken Set Status="" Set FileName="" For Loop=1:1:$LL(lbSelectedKey) Do Quit:(Status'="") . Set FileName=$LI(lbSelectedKey,Loop) . Set FPrefix=$E(FileName,1) . Set FileName=$E(FileName,2,999) . . ; Print! . If FPrefix=$$$SourceDirKeyPrefix Do . . Set Status=##class(BL.Flow.Factuur.Doc).MergePrintOMR(FileName,..FGetPrinterName()) ;indien nog in sourcedir, mergeprint oproepen, deze verplaatst en print het bestand . . Set Status=$S($$$ISOK(Status):"",1:$$ParseStatus^vhLib(Status)) . Else Do . . Set Status=$$$cmPrint.PrintPDF(FileName,..FGetPrinterName()) . . ; Update Progress bar . Do $$$ChangeFMPB((Loop*100)\NrOfFiles) Do $$$DestroyFM ;Resultaat van reprint weergeven If Status="" Do . Do $$$ShowMsgBoxSimple(..Caption,"De opdracht werd succesvol uitgevoerd.") Else Do . Do $$$ShowMsgBoxSimple(..Caption,"Fout tijdens afdrukken '"_FileName_"': "_Status) Quit ;------------- areAddReprintFilesToList(List,PrintGroup,NetworkDir) Set Query="%Library.File:FileSet" Set RS=##class(%ResultSet).%New(Query) If RS=$$$NULLOREF Do Quit . Do $$$ShowMsgBoxSimple(..Caption,"Kan geen nieuwe instantie van de query '"_Query_"' maken.") //Set tmpStatus=RS.Execute(Dir,"*"_PrintGroup_"*.*","DateModified") Set tmpStatus=RS.Execute(NetworkDir,Wildcard,"DateModified") If $$$ISERR(tmpStatus) Do Quit . Do $$$ShowMsgBoxSimple(..Caption,"Fout bij het uitvoeren van de query '"_Query_"': "_$C(13,10)_$$ParseStatus^vhLib(tmpStatus)) #dim OMRSourceDirNtw As %String = DocBaseDirectoryUtils.GeefOMRSourceDirNtw() Set Cnt=0 For Quit:('RS.Next()) Do . Quit:(RS.Data("Type")="D") . ;RS.Get("Name") . ;RS.Get("Type") . ;RS.Get("Size") . ;RS.Get("DateCreated") . ;RS.Get("DateModified") . ;RS.Get("ItemName") . If NetworkDir = OMRSourceDirNtw Do .. Set ItemName="* "_RS.Data("ItemName") .. Set Key=$$$SourceDirKeyPrefix_RS.Data("Name") . Else Do .. Set ItemName=RS.Data("ItemName") .. Set Key=$$$PrintDirKeyPrefix_RS.Data("Name") . Do List.AddItem(ItemName_" ("_$$GetHumanFileSize^vhLib(RS.Data("Size"))_")",Key) Quit ;------------- areBuildConfirmMsg() #define SplitFName(%v) $S(($L(%v)>50)&&($L(%v,"\")>5)&&(%v?1"\\"1.E1"\"1.E1"\".E):$P(%v,"\",1,5)_$$$CRLF_"\"_$P(%v,"\",6,99) ,1:%v) Set Msg="File : "_$$$SplitFName(FileName)_$$$CRLF If PrintGroup="" Do . Set Msg=Msg_"Kan de Printgroep niet afleiden uit filename. "_$$$CRLF . Set Msg=Msg_$$$CRLF . Set Msg=Msg_"Dit bestand toch afdrukken?"_$$$CRLF Else Do . Set Msg=Msg_$$$CRLF . Set Msg=Msg_"PrintGroep: "_PrintGroup_$$$CRLF . Set Msg=Msg_$S($G(NrOfDocs)>0:" #zend: "_(+$G(NrOfSendings))_" | #pages: "_(+$G(NrOfPages))_" | #docs: "_NrOfDocs_"", 1:" !!! Geen data (docs) gevonden !!!")_$$$CRLF . Set Msg=Msg_$$$CRLF . Set Msg=Msg_"Dit bestand afdrukken?"_$$$CRLF Quit Msg ]]> Geeft de data terug voor het herstellen van de gegevens van een printgroup. Wanneer de MergePrintOMR()-opdracht niet volledig afgewerkt kon worden, dan zijn de Log-gegevens voor deze printgroup ook niet bijgewerkt. Meestal is de MergePPOD succesvol, maar loopt het soms mis bij het printen, i.e. NADAT PPODMerge() de .ps-file aangemaakt heeft. Via de FileName wordt hier de "PrintData" voor PrintGroup met een Query uit PPOD opgehaald (Count Docs + lbIDs) Met deze data kan de PrintLog terug aangevuld worden (bvb. na het herdrukken van de file FileName) Added by WimV on 04/09/2009 %String lbType %Boolean ========================================================================================================================== EVENTs . ========================================================================================================================== 0 { #dim InsertAtPosition As %Integer = 0 Do Sender.SetData(InsertAtPosition,$LB("(Missing : "_##class(TECH.ListUtils).ListToPieces(OntbrekendeItems,",")_")")) } } Catch { #dim Exception As TECH.Exceptions.Exception = ##class(TECH.ExceptionHandler).Catch() Do ##class(vhLib.Logger).LogEnMailExceptie(Exception) } Quit ]]> PrintGroepNaamLijst:%ListOfDataTypes 1 %ListOfDataTypes Sender:TCHUI.TControlBasis Sender:TCHUI.TControlBasis Sender:TCHUI.TControlBasis Sender:TCHUI.TControlBasis Sender:TCHUI.TControlBasis Sender:TCHUI.TControlBasis Sender:TCHUI.TControlBasis Sender:TCHUI.TControlBasis Sender:TCHUI.TControlBasis ================================================================================================================================================= Sender:TCHUI.TControlBasis ------------------------------------------------------------------------------------------------------------------------------------------------- Sender:TCHUI.TControlBasis PRINT om te wijzigen).",$$$mbOkCancel)=$$$mrCancel)) If ..FPrintSelected Do . Set lbType=..lstWaiting.GetColDataAsLB(..#colWType,..#colWSelected,0) //paramval 0 levert een unieke lijst op Else Do . Set lbType=..lstWaiting.GetColDataAsLB(..#colWType,,0) Quit:('..FValidateTypesInQueue(lbType)) ;Doorheen lijst lopen Set Loop="" Set AvgPageSpeed=0 Set SumPageSpeed=AvgPageSpeed Do $$$CreateProgressFM(..Caption,"Bezig met verwerken...") Set Status="" For Set Loop=..dslWaiting.QueryOrder(1,Loop) Quit:((Loop="") || (Status'="")) Do . Do ..dslWaiting.Load(Loop) . Quit:(..FPrintSelected && '..dslWaiting.Get(..#colWSelected)) . Set lbID=..dslWaiting.Get(..#colWIDs) . Set Type=..dslWaiting.Get(..#colWType) . Set Regio=..dslWaiting.Get(..#colWRegio) . Set Manual=..dslWaiting.Get(..#colWManual) . Set Taal=..dslWaiting.Get(..#colWTaal) . Set NrOfPages=..dslWaiting.Get(..#colWNrOfPages) . Set lbAddendumInfo=..dslWaiting.Get(..#colWAddendumInfo) . ;Printgroep opbouwen adhv vars . Set PrintGroup=$$$cmPrint.GetPrintGroup(Type,Regio,Manual,Taal) . Do $$$ChangeFM("Bezig met verwerken van '"_PrintGroup_"'...") . ;Printgroep invullen en afdrukken . Set IsReprint=($$$cmPrint.IsReset(Type)) . Set Status=$$$cmPrint.Print(lbID,PrintGroup,lbAddendumInfo,..FActiveAddendumName,..FGetPrinterName(),.varDuration,%Application.User.%Id(),IsReprint) . Do WLIP^vhDBG(96,"d:"_(varDuration/NrOfPages)_"s/page") . Do $$$ChangeFMPB((Loop*100)\..dslWaiting.Count) Do $$$DestroyFM Do ..lstWaiting.Refresh() Do ..lstLog.RefreshTop() ;Eventuele boodschap weergeven If Status="" Do . Do $$$ShowMsgBoxSimple(..Caption,"De taken werden succesvol aangemaakt.") Else Do . Do $$$ShowMsgBoxSimple(..Caption,"FOUT: "_$C(13,10,13,10)_Status) ;reset (mogelijk ingesteld door acPrintSelectedExecute) Set ..FPrintSelected=0 Quit ]]> ------------------------------------------------------------------------------------------------------------------------------------------------- Sender:TCHUI.TControlBasis PRINT om te wijzigen).",$$$mbOkCancel)=$$$mrCancel)) Set Type=..lstWaiting.GetSelectedData(..#colWType) Quit:('..FValidateTypesInQueue($LB(Type))) Set lbID=..lstWaiting.GetSelectedData(..#colWIDs) Set Regio=..lstWaiting.GetSelectedData(..#colWRegio) Set Manual=..lstWaiting.GetSelectedData(..#colWManual) Set Taal=..dslWaiting.Get(..#colWTaal) Set lbAddendumInfo=..lstWaiting.GetSelectedData(..#colWAddendumInfo) Set IsReprint=($$$cmPrint.IsReset(Type)) ;Printgroep opbouwen adhv vars Set PrintGroup=$$$cmPrint.GetPrintGroup(Type,Regio,Manual,Taal) Do $$$CreateFM(..Caption,"Bezig met verwerken van '"_PrintGroup_"'...") ;Printgroep invullen en afdrukken Set Status=$$$cmPrint.Print(lbID,PrintGroup,lbAddendumInfo,..FActiveAddendumName,..FGetPrinterName(),,%Application.User.%Id(),IsReprint) Do $$$DestroyFM ;Lijst vernieuwen Do ..lstWaiting.Refresh() Do ..lstLog.RefreshTop() ;Eventuele boodschap weergeven If Status="" Do . Do $$$ShowMsgBoxSimple(..Caption,"De taak werd succesvol aangemaakt ("_PrintGroup_").") Else Do . Do $$$ShowMsgBoxSimple(..Caption,"FOUT: "_$C(13,10,13,10)_Status) Quit ]]> ------------------------------------------------------------------------------------------------------------------------------------------------- Sender:TCHUI.TControlBasis ------------------------------------------------------------------------------------------------------------------------------------------------- Sender:TCHUI.TControlBasis ------------------------------------------------------------------------------------------------------------------------------------------------- Sender:TCHUI.TControlBasis ------------------------------------------------------------------------------------------------------------------------------------------------- Sender:TCHUI.TControlBasis ================================================================================================================================================= Sender:TCHUI.TControlBasis Sender:TCHUI.TControlBasis,KeyCode:%String Sender:TCHUI.TControlBasis Sender:TCHUI.TControlBasis,KeyCode:%String Sender:TCHUI.TControlBasis,CanClose:%Boolean