Dit is een UitvoeringInfoLijstVerwerker, maar één van de oude stijl, die namelijk de gegevens nog moet bij elkaar zoeken. Kent de rollen die getoond moeten worden. 1 APPS.Halux.PPS.Document.impl.BulkTekstDocumentAfdrukker Deze maakt een platte lijst van alle HalfFabItems. APPS.Halux.PPS.Activiteit.impl.common.OnderdelenPicking.HalffabItemNaarKnoopVisitor 1 N.B. Dit gaat over een lijnen in de zin van "Lijn 1 aka die met de kartonmachin"; dus niet over onderdelenpickinglijnen. APPS.Halux.PPS.impl.Formatter.ProductieLijn 1 DOM.PM.ProductTypeAPI 1 DOM.PM.ProductAPI 1 APPS.Halux.ProductieAPI 1 APPS.Halux.common.impl.ProductieAansturingService 1 %ArrayOfDataTypes APPS.common.Print.Kolommen.Document list 1 APPS.common.Print.Kolommen.Document 1 %String list 1 APPS.Halux.common.Batch 1 PlatteHalffabItemLijstMaker:APPS.Halux.PPS.Activiteit.impl.common.OnderdelenPicking.HalffabItemNaarKnoopVisitor 1 1 %Status 1 UitvoeringInfoLijst:APPS.Halux.PPS.dto.UitvoeringInfoLijst,ToeleveringIDVoorPCDataOnderdelenPickingDocument:%Integer=0 %ListOfObjects ELEMENTTYPE="APPS.common.Print.Kolommen.Document" 0) { #dim BatchID As %String = UitvoeringInfoLijst.GetAt(1).BatchID Set ..Batch = ##class(APPS.ApplicatieContext).Instance().GeefProductieAPI().GeefBatchService().GeefBatch(BatchID) #dim BatchCategorie As APPS.Halux.common.enu.Categorie = ..Batch.GeefCategorie() #dim BatchProductiegroep As APPS.Halux.common.enu.ProductieGroep = ..Batch.GeefProductieGroep() } While GesorteerdeOnderdeelPickingsPerToelevering.HasNext() { Do ..MaakDocumentEnVoegToeAanDocumenten(GesorteerdeOnderdeelPickingsPerToelevering.Next(), BatchCategorie, BatchProductiegroep, ToeleveringIDVoorPCDataOnderdelenPickingDocument) } Quit ..Documenten ]]> OnderdelenPickingUitvoeringInfo:APPS.Halux.PPS.Activiteit.impl.common.dto.OnderdelenPickingUitvoeringInfo 1 1 Verpakking:TECH.Enumeration 1 TECH.String 1 1 1 1 Hook om bvb. een stukje Assemblagekarren-verwerking aan te hangen. OnderdelenPickingUitvoeringInfo:APPS.Halux.PPS.Activiteit.impl.common.dto.OnderdelenPickingUitvoeringInfo 1 1 TECH.String HalffabItemVoorKnoop:DOM.PM.Maatwerk.Calc.HF.IHalffabItem,UitvoeringInfo:APPS.Halux.PPS.Activiteit.impl.common.dto.OnderdelenPickingUitvoeringInfo 1 APPS.Halux.PPS.Document.impl.common.OnderdelenPicking.OnderdeelPickingBinaireKnoop 1 1 GesorteerdeOnderdeelPickingsVoor1Toelevering:APPS.Halux.PPS.Document.impl.common.OnderdelenPicking.OnderdeelPickingBinaireKnoop,Categorie:APPS.Halux.common.enu.Categorie="",Productiegroep:APPS.Halux.common.enu.ProductieGroep="",ToeleveringIDVoorPCDataOnderdelenPickingDocument:%Integer=0 1 0) && (##class(TECH.StringUtils).Equals(..Batch.GeefCategorie(), ##class(APPS.Halux.common.enu.Categorie).TAORbox(), ##class(APPS.Halux.common.enu.Categorie).Legrabox()))) { Do ..ZetDataVoorPCDataOnderdelenPickingDocument(DataVoorLijn, ToeleveringIDVoorPCDataOnderdelenPickingDocument) } Set DataVoorVorigeLijn = DataVoorLijn } If $IsObject(..Document){ Do ..Document.ZetSubSubtitel(..GeefSubSubtitel()) Do ..Documenten.Insert(..Document) } } ]]> DataVoorLijn:APPS.Halux.PPS.Document.impl.common.OnderdelenPicking.OnderdeelPickingBinaireKnoop,ToeleveringIDVoorPCDataOnderdelenPickingDocument:%Integer DataVoorVorigeLijn:APPS.Halux.PPS.Document.impl.common.OnderdelenPicking.OnderdeelPickingBinaireKnoop,DataVoorLijn:APPS.Halux.PPS.Document.impl.common.OnderdelenPicking.OnderdeelPickingBinaireKnoop 1 %Boolean GesorteerdeUitvoeringInfoIterator:TECH.Iterator 1 TECH.Iterator GesorteerdeUitvoeringInfoIterator:TECH.Iterator 1 TECH.Iterator $length(OorspronkelijkProduct.HFV.Omschrijving) { Set Product.HFV.Omschrijving = OorspronkelijkProduct.HFV.Omschrijving } Set SequentieNummerOorspronkelijkProduct = ..GeefSequentieNummer(OorspronkelijkProduct) Set SequentieNummerProduct = ..GeefSequentieNummer(Product) Do ..ZetHoogsteSequentienummerIndienNodig(Product,SequentieNummerProduct, SequentieNummerOorspronkelijkProduct) } } If (SamengesteldeLijst.Count() = 0 || $$$Not(OvereenkomstigProductGevonden)){ Do SamengesteldeLijst.Insert(OorspronkelijkProduct) } Do SamengesteldeLijstIterator.Reset() } If SamengesteldeLijst.Count() > 0 { Set GesorteerdeUitvoeringInfoIterator = SamengesteldeLijstIterator } Else { Do GesorteerdeUitvoeringInfoIterator.Reset() } Quit GesorteerdeUitvoeringInfoIterator ]]> GesorteerdeUitvoeringInfoIterator:TECH.Iterator 1 TECH.Iterator 0 { Set GesorteerdeUitvoeringInfoIterator = SamengesteldeLijstIterator } Else { Do GesorteerdeUitvoeringInfoIterator.Reset() } Quit GesorteerdeUitvoeringInfoIterator ]]> GesorteerdeUitvoeringInfoIterator:TECH.Iterator,Variant:%String 1 TECH.Iterator GesorteerdeUitvoeringInfoIterator:TECH.Iterator 1 TECH.Iterator 0 { Set GesorteerdeUitvoeringInfoIterator = SamengesteldeLijstIterator } Else { Do GesorteerdeUitvoeringInfoIterator.Reset() } Quit GesorteerdeUitvoeringInfoIterator ]]> Variant:%String,LadeHoogte:%String,Kleur:%String,KlantID:%String 1 = '"_Datum_"' or GeldigTot is null) and (GeldigVan <= '"_Datum_"' or GeldigVan is null) and LadeKleur = '"_Kleur_"' and LadeHoogte = '"_LadeHoogte_"' and Klantbeperking = '"_KlantID_"'" #dim QueryAPI As TECH.Query.QueryAPI = ##class(TECH.Context).Instance().GeefQueryAPI() #dim ResultSet As TECH.ResultSet = QueryAPI.GetResultSet(##class(TECH.DynamicQuery).%New(SqlStatement, $LB())) If ResultSet.Next() { Set PRNrAfdekkap = ResultSet.GetData(1) } Else { Set SqlStatement = "SELECT ProductID FROM " _SqlTableName _" WHERE " _"(GeldigTot >= '"_Datum_"' or GeldigTot is null) and (GeldigVan <= '"_Datum_"' or GeldigVan is null) and LadeKleur = '"_Kleur_"' and LadeHoogte = '"_LadeHoogte_"' and Klantbeperking is null" Set ResultSet = QueryAPI.GetResultSet(##class(TECH.DynamicQuery).%New(SqlStatement, $LB())) If ResultSet.Next() { Set PRNrAfdekkap = ResultSet.GetData(1) } Else { Do ##class(TECH.Exceptions.DataNotFoundException).Throw("Geen data gevonden voor "_SqlStatement_".") } } Quit PRNrAfdekkap ]]> Variant:%String,Kleur:%String,KlantID:%String 1 = '"_Datum_"' or GeldigTot is null) and (GeldigVan <= '"_Datum_"' or GeldigVan is null) and LadeKleur = '"_Kleur_"' and Klantbeperking = '"_KlantID_"'" #dim QueryAPI As TECH.Query.QueryAPI = ##class(TECH.Context).Instance().GeefQueryAPI() #dim ResultSet As TECH.ResultSet = QueryAPI.GetResultSet(##class(TECH.DynamicQuery).%New(SqlStatement, $LB())) If ResultSet.Next() { Set PRNrAfdekkap = ResultSet.GetData(1) } Else { Set SqlStatement = "SELECT ProductID FROM " _SqlTableName _" WHERE " _"(GeldigTot >= '"_Datum_"' or GeldigTot is null) and (GeldigVan <= '"_Datum_"' or GeldigVan is null) and LadeKleur = '"_Kleur_"' and Klantbeperking is null" Set ResultSet = QueryAPI.GetResultSet(##class(TECH.DynamicQuery).%New(SqlStatement, $LB())) If ResultSet.Next() { Set PRNrAfdekkap = ResultSet.GetData(1) } Else { Do ##class(TECH.Exceptions.DataNotFoundException).Throw("Geen data gevonden voor "_SqlStatement_".") } } Quit PRNrAfdekkap ]]> ProductID:%Integer 1 TECH.String Product:APPS.Halux.PPS.Document.impl.common.OnderdelenPicking.OnderdeelPickingBinaireKnoop 1 %Boolean Product:APPS.Halux.PPS.Document.impl.common.OnderdelenPicking.OnderdeelPickingBinaireKnoop 1 %Boolean Product:APPS.Halux.PPS.Document.impl.common.OnderdelenPicking.OnderdeelPickingBinaireKnoop 1 %Boolean Product:APPS.Halux.PPS.Document.impl.common.OnderdelenPicking.OnderdeelPickingBinaireKnoop,OorspronkelijkProduct:APPS.Halux.PPS.Document.impl.common.OnderdelenPicking.OnderdeelPickingBinaireKnoop 1 %Boolean Product:APPS.Halux.PPS.Document.impl.common.OnderdelenPicking.OnderdeelPickingBinaireKnoop,OorspronkelijkProduct:APPS.Halux.PPS.Document.impl.common.OnderdelenPicking.OnderdeelPickingBinaireKnoop 1 %Boolean Product:APPS.Halux.PPS.Document.impl.common.OnderdelenPicking.OnderdeelPickingBinaireKnoop,OorspronkelijkProduct:APPS.Halux.PPS.Document.impl.common.OnderdelenPicking.OnderdeelPickingBinaireKnoop 1 %Boolean Product:APPS.Halux.PPS.Document.impl.common.OnderdelenPicking.OnderdeelPickingBinaireKnoop 1 %Integer 0 { #dim OPProduct As APPS.Halux.PPS.Activiteit.impl.common.dto.OnderdelenPickingUitvoeringInfo = OnderdelenPickingUitvoeringInfoLijst.GetAt(1) Set SequentieNummer = OPProduct.SequentieNummer } } Quit SequentieNummer ]]> Product:APPS.Halux.PPS.Document.impl.common.OnderdelenPicking.OnderdeelPickingBinaireKnoop,SequentieNummerProduct:%Integer,SequentieNummerOorspronkelijkProduct:%Integer 1 0 { #dim OPProduct As APPS.Halux.PPS.Activiteit.impl.common.dto.OnderdelenPickingUitvoeringInfo = OnderdelenPickingUitvoeringInfoLijst.GetAt(1) Set OPProduct.SequentieNummer = SequentieNummerOorspronkelijkProduct } } } ]]> DataVoorLijn:APPS.Halux.PPS.Document.impl.common.OnderdelenPicking.OnderdeelPickingBinaireKnoop,VermeldOmschrijvingEnKorttekst:%Boolean 1 0 { #dim OPEenProduct As APPS.Halux.PPS.Activiteit.impl.common.dto.OnderdelenPickingUitvoeringInfo = OPVoorEenProductLijst.GetAt(1) Do ..InitDocumentIndienNodig(OPEenProduct) #dim EersteKolomBreedte As %Integer = ..Document.DocumentType.GeefKolomDefinitie(1).Breedte Set GeWordWrapteProductOmschrijvingLijnen = ##class(TECH.ListIterator).%New(##class(TECH.StringUtils).WordWrap(DataVoorLijn.HFV.GeefOmschrijving(),EersteKolomBreedte)) Set OPEenProductIt = ##class(TECH.ListIterator).%New(OPVoorEenProductLijst) While OPEenProductIt.HasNext() { Do ..ProcessToegevoegdItem(OPEenProductIt.Next()) } } } // Verdeel de data voor dit halffab over lijnen: Set OnderdelenPickingen = ##class(TECH.ListIterator).%New(DataVoorLijn.PickingsPerMaatwerkProductID) While OnderdelenPickingen.HasNext() || GeWordWrapteProductOmschrijvingLijnen.HasNext() { #dim Lijn As %String = "" // Zet een volgend aantal en eventueel lengte in bepaalde kolommen. If OnderdelenPickingen.HasNext() { Set OPVoorEenProductLijst = OnderdelenPickingen.Next() If OPVoorEenProductLijst.Count() > 0 { Set OPEenProduct = OPVoorEenProductLijst.GetAt(1) Set Lijn = "\\\\"_OPEenProduct.DossierCode_" "_OPVoorEenProductLijst.Count() If ((DataVoorLijn.HFV.GeefLengte()'= "") || VermeldKorttekst) && EersteLijnProduct { Set $Piece(Lijn,"\",3) = DataVoorLijn.HFV.GeefAantal() Set $Piece(Lijn,"\",4) = DataVoorLijn.HFV.GeefLengte() Set EersteLijnProduct = 0 } If VermeldKorttekst { // Op de eerste lijn van het Halffab staat soms de korttekst. Set $Piece(Lijn,"\",2) = DataVoorLijn.HFV.GeefKorttekst() Set VermeldKorttekst = 0 } Set VorigOPEenProduct = OPEenProduct } } // Zet een volgend deel van de halffab-omschrijving in kolom 1. If GeWordWrapteProductOmschrijvingLijnen.HasNext() { #dim ProductOmschrijving As %String = GeWordWrapteProductOmschrijvingLijnen.Next() Set:VermeldOmschrijving $Piece(Lijn,"\",1) = ProductOmschrijving Set:('GeWordWrapteProductOmschrijvingLijnen.HasNext()) VermeldOmschrijving = 0 } If (Lijn'="") { Do ..Document.VoegLijnToe(Lijn,"\") } } ]]> UitvoeringInfoLijst:APPS.Halux.PPS.dto.UitvoeringInfoLijst 1 TECH.Iterator 1 APPS.Halux.PPS.Activiteit.impl.common.OnderdelenPicking.HalffabItemNaarKnoopVisitor UitvoeringInfo:APPS.Halux.PPS.Activiteit.impl.common.dto.OnderdelenPickingUitvoeringInfo 1 %ListOfObjects ELEMENTTYPE="DOM.PM.Maatwerk.Calc.HF.IHalffabItem" IngegevenKenmerken:DOM.PM.MaatwerkProduct,HalffabItem:DOM.PM.Maatwerk.Calc.HF.IHalffabItem 1 %Boolean 0)) ]]> IngegevenKenmerken:DOM.PM.MaatwerkProduct,HalffabItem:DOM.PM.Maatwerk.Calc.HF.IHalffabItem 1 %Boolean FilterType:DOM.PM.Maatwerk.Filter.enu.FilterType,Rolnaam:%String 1 1 %Boolean