Query Main=SalDoc Column=KundenNo,SalDoc.CustNo Column=ErtragsKonto,SalItems.ReturnsAccount Column=ArtNo,SalItems.ArtNo Column=TotalAmount,sum(SalItems.TotalAmount) Related=SalItems,SalDocItem,All,,SalDoc.InternalNo = SalItems.SalDocInternalNo Filter=SalDoc.SalProcLevelCd = 4 and SalDoc.ShortCut = 'N' and SalDoc.DocDate >= 01.07.2013 and SalItems.ArtNo <> '' OrderBy=SalDoc.CustNo OrderBy=SalItems.ReturnsAccount MaxRows=All
Query Main=MlsText Column=Key,MlsText.MlsKey Column=Name,if(ContextInfo.DataLangNo = NativeLang.German,MlsText.NameGe,if(ContextInfo.DataLangNo = NativeLang.French,MlsText.NameFr,if(ContextInfo.DataLangNo = NativeLang.Italian,MlsText.NameIt,if(ContextInfo.DataLangNo = NativeLang.English,MlsText.NameEn,MlsText.NameGe)))) Column=ShortName,if(ContextInfo.DataLangNo = NativeLang.German,MlsText.ShortNameGe,if(ContextInfo.DataLangNo = NativeLang.French,MlsText.ShortNameFr,if(ContextInfo.DataLangNo = NativeLang.Italian,MlsText.ShortNameIt,if(ContextInfo.DataLangNo = NativeLang.English,MlsText.ShortNameEn,MlsText.ShortNameGe)))) Column=Info,if(ContextInfo.DataLangNo = NativeLang.German,MlsText.InfoGe,if(ContextInfo.DataLangNo = NativeLang.French,MlsText.InfoFr,if(ContextInfo.DataLangNo = NativeLang.Italian,MlsText.InfoIt,if(ContextInfo.DataLangNo = NativeLang.English,MlsText.InfoEn,MlsText.InfoGe)))) Filter=Key like 'Addr.*' MaxRows=All
Query Main=ObjItem Columns=ObjItem.Number,ObjItem.ObjTypeNo,ObjItem.ObjStructTypeNo,ObjItem.AddrNo,ObjItem.ArtNo,ObjItem.Quantity Columns=SalItem.BoId,Customer.FullName,Customer.Zip,Customer.City Columns=ObjItem.Modifier,Employee.LastName Related=Employee,Addr,1,,Employee.Number = ObjItem.Modifier Related=Customer,Addr,1,,Customer.Number = ObjItem.AddrNo Related=SalDocument,SalDoc,1,,SalDocument.InternalNo= ObjItem.DocInternalNo Related=SalItem,SalDocItem,1,,SalItem.InternalNo = ObjItem.DocItemNumber and SalItem.SalDocInternalNo = ObjItem.DocInternalNo OrderBy=ObjItem.DocInternalNo OrderBy=ObjItem.DocItemNumber Filter=ObjItem.AddrNo=2002 MaxRows=All
Query Main=Art Columns=Art.Number,Art.Name1,ArtName1Sprache2.Name1,ArtName1Sprache3.Name1,ArtName1Sprache4.Name1 Related=ArtName1Sprache2,Art_Name1(Art.InternalNo,2,0) Related=ArtName1Sprache3,Art_Name1(Art.InternalNo,3,0) Related=ArtName1Sprache4,Art_Name1(Art.InternalNo,4,0) Filter=Art.InternalNo=3407 MaxRows=All
/headerreport # Definition Anzahl Datensätze pro Durchlauf. «X(Query.ScrollingCount=10)» # Anzahl Wiederholungen (1x normal plus 3x redo) «X(Query.RedoRepeat=3)» # Definition Basis Request. «XQRY(req.QueryAddr:Query)» «XQRY(req.QueryAddr:addArg=Main=Addr)» «XQRY(req.QueryAddr:addArg=Columns=Addr.Number,Addr.FirstName,Addr.LastName)» «XQRY(req.QueryAddr:addArg=MaxRows=«X(Query.ScrollingCount)»)» «XQRY(req.QueryAddr:addArg=Scrolling=ne)» «XQRY(req.QueryAddr:addArg=OrderBy=Addr.Number)» «XQRY(req.QueryAddr:addArg=OrderBy=Addr.BoPid)» «nXQRY(req.QueryAddr:execute>res.QueryAddr)\A» «nNO(9,NULL)» «REPEAT(9)» «nNO(9)» # Variablen zwischenspeichern. «X(Addr.Number =«XQRS(res.QueryAddr:Addr.Number,«NO(9,0)»)»)» «X(Addr.BoPid =«XQRS(res.QueryAddr:Addr.BoPid,«NO(9,0)»)»)» «X(Addr.FirstName =«XQRS(res.QueryAddr:Addr.FirstName,«NO(9,0)»)»)» «X(Addr.LastName =«XQRS(res.QueryAddr:Addr.LastName,«NO(9,0)»)»)» # Ausgabe der (aktuellen) Response. «/Response.PrintResult» «nzNO(9,0)<«XQRS(res.QueryAddr:rows)\N»\N»«LOOP(9)» # Ausführung des Redo's gem. «X(Query.RedoRepeat)» «nzX(Query.RedoRepeat)=0\N»«GOTO(/)» «nNO(8,NULL)» «REPEAT(8)» «nNO(8)» «/Response.RedoData» «nzNO(8,0)<«X(Query.RedoRepeat)\N»\N»«LOOP(8)» / /Response.RedoData «nXQRS(res.QueryAddr:redo,n,,)» «nNO(9,NULL)» «REPEAT(9)» «nNO(9)» # Variablen zwischenspeichern. «X(Addr.Number =«XQRS(res.QueryAddr:Addr.Number,«NO(9,0)»)»)» «X(Addr.BoPid =«XQRS(res.QueryAddr:Addr.BoPid,«NO(9,0)»)»)» «X(Addr.FirstName =«XQRS(res.QueryAddr:Addr.FirstName,«NO(9,0)»)»)» «X(Addr.LastName =«XQRS(res.QueryAddr:Addr.LastName,«NO(9,0)»)»)» # Ausgabe der (aktuellen) Response. «/Response.PrintResult» # Wenn Counter NO(9) = Anzahl Records, # --> QueryToken speichern und Redo-Argumente definieren. «nzNO(9,0)<«XQRS(res.QueryAddr:rows)\N»\N»«LOOP(9)» / /Response.PrintResult # Ausgabe der Rows. «X(Addr.Number)»/«X(Addr.BoPid)»/«X(Addr.FirstName)»/«X(Addr.LastName)» /
Query Main=SalDocItem Column=ArtGr,SalDocItem.ArtMisC1No Column=Rekap,sum(SalDocItem.TotalAmount) Column=Bez,GrBez.Name Column=Doc,SalDocItem.SalDocInternalNo Related=GrBez,ArtMisC1,1,,GrBez.Number = SalDocItem.ArtMisC1No OrderBy=ArtGr Filter=SalDocItem.SalDocInternalNo=11930 MaxRows=All
Query Main=AddrPoolItem Column=ResBoId,AddrPoolItem.AddrNo Column=StartDate,if(exists(TaskStart)= TRUE,TaskStart.Day,ResCal.Day) Column=EndDate,if(exists(TaskEnd) = TRUE,TaskEnd.Day,ResCal.Day) Column=RGB,if(exists(TaskStart) = TRUE,Tasks.DocTypeCd,ResCal.ResCalCauseNo) Column=Info,if(exists(TaskStart) = FALSE,nmbToStr(ResCal.ResCalCauseNo),"") Column=AsstDocItemBoId,if(exists(TaskStart) = TRUE,if(Tasks.DocTypeCd=3,""+nmbToStr(Tasks.DocInternalNo)+","+nmbToStr(Tasks.DocItemInternalNo),""),"") Column=Type,if(exists(TaskStart) = TRUE,"TASK",if(exists(ResCause)=TRUE,"RESOURCE","")) Related=ResCal,ResCalendar,ALL,,AddrPoolItem.AddrNo = ResCal.ResourceNo and ResCal.ResDayTypeCd = 2 and ResCal.Day >= 01.12.2013 and ResCal.Day <=31.12.2013 Related=ResCause,ResCalCause,,,ResCause.Number = ResCal.ResCalCauseNo Related=Tasks,Task,ALL,,AddrPoolItem.AddrNo = Tasks.ResourceNo Related=TaskStart,TaskDay,,,Tasks.Number=TaskStart.TaskNo and TaskStart.Day >= 01.12.2013 Related=TaskEnd,TaskDay,,,Tasks.Number=TaskStart.TaskNo and TaskEnd.Day <= 31.12.2013 Filter=AddrPoolItem.AddrPoolNo=999998 Distinct=1 OrderBy=ResBoId OrderBy=StartDate MaxRows=All
Query Main=Addr Columns=Addr.Number,Addr.FullName Column=MutationsDatum,Addr.Modified Column=AktuellesDatum,today() Column=AktuelleZeit,time() Filter=Addr.Modified >= dateAdd(today(),-20) MaxRows=All
Query Main=DatePart Column=StartDate,strToDate("01.12.2014") Column=EndDate,strToDate("01.12.2015") Column=DifferenceInDays,dateDiff(01.12.2014,01.12.2015,DatePart.Day) Column=DifferenceInMonth,dateDiff(01.12.2014,01.12.2015,DatePart.Month) Column=DifferenceInYears,dateDiff(01.12.2014,01.12.2015,DatePart.Year) MaxRows=1
Query Main=SalDoc Filter=SalDoc.InternalNo = 123456 Columns=SalDoc.InternalNo,SalDoc.SalProcLevelCd,SalDoc.ShortCut Column=Lieferart, name(SalDoc.Free3,["4,A"],NativeLang.German) MaxRows=All
![]() |
WichtigDas Auslesen von
Bezeichnungen von Codes aus freien Hilfstabellen funktioniert über
name(... nicht. In diesen Fällen müssen Sie mit einer Relation
arbeiten.
Siehe hier: Auslesen von Werten aus
freien Hilfstabellen.
|
Query Main=Addr MaxRows=All Columns=Contact.AddrNo,Contact.Number,Contact.LastName,Addr.IsNextParentCo Filter=Addr.HighParentCompany=1070 or Addr.Number=1070 Related=Contact,Contact,All,,Contact.AddrNo = [Addr.Number] Related=Daughter,Addr,All,,Daughter.NextParentCompany = Contact.AddrNo Columns=Addr.NextParentCompany,Daughter.Number
Query Main=AddrText(2020,1) MaxRows=All Columns=AddrText.Text
Query Main=Hierarchie,AddrPoolFolder_Path(5,0,600) Column=FolderNo,Hierarchie.FolderNo Column=Name,FolderName.Name Related=FolderName,AddrPoolFolder,1,,FolderName.Number=Hierarchie.FolderNo OrderBy=-Hierarchie.Level MaxRows=99
FolderNo | Name |
7
|
Root
|
2
|
Laufende Projekte
|
5
|
Vorstudie
|
Query Main=CustArtCond MaxRows=All Filter=CustArtCond.CustBoType=1 and CustArtCond.CustBoId=1085 and CustArtCond.ArtBoType=1 Column=,CustArtCond.ArtBoId Related=Sortiment,SalCondAdd,First,[-Sortiment.ValidFrom],Sortiment.SuperNo=CustArtCond.NormalAddSuperNo and ((if(Sortiment.ValidFrom=EMPTY_DATE,01.01.1900,Sortiment.ValidFrom) <= today()) and (if(Sortiment.ValidTo=EMPTY_DATE,31.12.2100,Sortiment.ValidTo) >= today())) Column=Kundensortiment,Sortiment.ExtArtNo
Filter=CustArtCond.CustBoType=1 and CustArtCond.CustBoId=1085 and CustArtCond.ArtBoType=1 and Sortiment.ExtArtNo<>""
Query Main=SalDocItem Column=Anzahl_Pos,count() Filter=SalDocItem.SalDocInternalNo=10760 and SalDocItem.ItemNo>0 MaxRows=1
/headerreport # ______________________________________________________________________________________________ # Query Reqeust aufbauen und ausführen «XQRY(reqGetPoolItems:clear)» «XQRY(reqGetPoolItems:addArg =Main=ArtPoolItem)» «XQRY(reqGetPoolItems:addArg =MaxRows=1000)» «XQRY(reqGetPoolItems:addArg =Filter=ArtPoolItem.ArtPoolNo=[1000,2000,3000])» # # Scrolling definieren für 'Redo' «XQRY(reqGetPoolItems:addArg =Scrolling=ne)» «XQRY(reqGetPoolItems:addArg =Columns=Art.InternalNo,Art.Keyword3)» «XQRY(reqGetPoolItems:addArg =OrderBy=Art.Keyword3)» # # OrderBy mit <BOTyp>.BoPid ergänzen, damit die Records eindeutig werden. (Für 'Redo') «XQRY(reqGetPoolItems:addArg =OrderBy=ArtPoolItem.BoPid)» «nXQRY(reqGetPoolItems:execute>resPoolItems)\A» # # Wenn keine Daten gefunden Verarbeitung abbrechen «nz XQRS(resPoolItems:rows)=0\N»«GOTO(/)» # Anzahl Datensätze speichern «X(Response.RowCount=«XQRS(resPoolItems:rows)»)» # ______________________________________________________________________________________________ # INFO: Dieser REPEAT / LOOP wird für REDO benötigt (Wiederholungen) «REPEAT(1)» # ********************************************************************************************** # REPEAT / LOOP Für die Ausgabe des aktuellen Results «nNO(9,NULL)» «REPEAT(9)» «nNO(9)» # ********************************************************************************************** # Ausgabe der gewünschten Daten «XQRS(resPoolItems:Art.InternalNo,«NO(9,0)»)» «XQRS(resPoolItems:Art.Keyword3,«NO(9,0)»)» # «nz NO(9,0)<«X(Response.RowCount)\N»\N»«LOOP(9)» # # ______________________________________________________________________________________________ # REDO ausführen (nächste 1000 Datensätze) # WICHTIG: hier nun 'n' damit der letzte Datensatz des vorangegangenen Request nicht mehr erscheint. «nXQRS(resPoolItems:redo,n,,1000)» «X(Response.RowCount=«XQRS(resPoolItems:rows)»)» # ______________________________________________________________________________________________ # Wiederholen bis RowCount = 0 (keine weiteren Daten) «nz X(Response.RowCount)>0\N»«LOOP(1)» /
Biz.Query Main=Addr Columns=Addr.Free6 MaxRows=100 Column=AddrFree6AsNmb,ifnull(strAsNmb(Addr.Free6), -1) Column=AddrFree6AsDate,ifnull(strAsDate(Addr.Free6), EMPTY_DATE)