Beste forummensen,
hetgeen is aan de hand:
omdat het aanschaffen van Table Designer vanaf mijn kant niet is doorgegaan. Moest ik een andere manier vinden om rapporten te genereren.
Nu ben ik al zover dat ik een omzetoverzicht van 1 jaar kan weergeven en het weergeven van een vergelijkingsperiode zal ook niet al te moeilijk zijn.
ECHTER... duurt het eeuwen (langer dan 20min) voordat het rapportje eindelijk klaar is met genereren.
Heb waarschijnlijk ergens een fout gemaakt (anders duurde het niet zo lang) en nu vraag ik mij af waar die fout ergens kan zitten. Ennuh aan mijn laptop ligt het niet O:)
_ = indent.
Gen. Business Posting Group
_Gen. Product Posting Group
SETFILTER("Gen. Product Posting Group".Code, '> 1000');
__Sales Invoice Header
RESET;
SETRANGE("Gen. Bus. Posting Group", "Gen. Business Posting Group".Code);
SETFILTER("Posting Date", Filter_String);
___Sales Invoice Line
DataItemLink > Document No.=FIELD(No.)
SETRANGE("Gen. Prod. Posting Group", "Gen. Product Posting Group".Code);
SETFILTER(Amount, '<> 0');
Mocht het niet duidelijk zijn, wil ik de .fob altijd opsturen.
VOORBEELD UITVOER:
Bakkerij grossier < Bus. Group
(1)BAK GROSS_ACTIES_-5_-33,63 (Bus. Group./Prod.Group/Sales Invoice Header (totaal van alle lines die voldoen aan BAK GROSS_ACTIES)
-5,00_-33,63
(2)BAK GROSS_ACTIES_-1_-628,58
-6,00__-662,21
(3)BAK GROSS_ACTIES_-1_-1.991,68
-7,00__-2.653,89 <=- Totaal van 1 , 2 , 3
et.
Remco de Jong
Bachelor of Business Administration and Information Technology
minor Application Development
" Don't use comma (,) use dot (.) "
0
Comments
Heb je bij je dataitems ook sleutels opgegeven die de velden bevatten waarop je filtert?
Als je dit niet doet ben ik bang dat het lastig wordt om het rapport sneller te maken.
Bekijk na afloop de resultaten van de Client Monitor. Worden voor bepaalde akties te veel records gelezen? Kan, met toepassing van de juiste sleutels, het aantal te lezen records worden verkleind? Worden sommige records >1 keer gelezen (in dat geval kan locaal bufferen uitkomst bieden)? Duren bepaalde akties langer dan ~ 10 ms?
Jan Hoek
Product Developer
Mprise Products B.V.
Gen. Business Posting Group
SORTING(Code) ORDER(Ascending)
Gen. Product Posting Group
SORTING(Code) ORDER(Ascending)
Sales Invoice Header
SORTING(No.) ORDER(Ascending)
Sales Invoice Line
SORTING(Document No.,Line No.) ORDER(Ascending)
met dataitemlink Document No.=FIELD(No.)
Clientmonitor, weer iets nieuws voor mij.. nog niet mee gewerkt want ben nog geen performance-issues tegen gekomen. Is disabled (licht grijs)
Ps. Voor elke klantengroep een productgroep. Ongeveer 12 * 20.
Dan elke 'factuur' (aardig wat dus) en daarvan de lijnen... enorm veel dus, filter al op klantengroep, productgroep en boekingsdatum.
Bachelor of Business Administration and Information Technology
minor Application Development
" Don't use comma (,) use dot (.) "
Voor de client monitor heb je een licentie nodig
Sales Invoice Header:
No.
Order no.
Pre-Assigned No.
Service Mgt. Document
Sell To Customer, Ext. Document No.
Sell To Customer, Order Date
Sell To Customer, No.
Bill-to Customer No.
Posting Date
Sales Invoice Line
Document No, Line No.
etc..
Gen. Bus. Posting Group
De reden dat ik heb gefilterd op Document No. is omdat ik eerst filter op de header (productgroep) en dan moet ie gelijk de lijnen in dat document vinden voor optelling.
Dit heb ik tevens nodig om te kunnen filteren op Boekingsdatum..
Dimensies zijn niet ingericht om hierop een rapportageschema te maken..
Bachelor of Business Administration and Information Technology
minor Application Development
" Don't use comma (,) use dot (.) "
Anders moet je ff de afd. support van je solution center bellen om een sleutel op boekingsgroep/boekingsdatum te maken.
8)
Of ff pb-tje sturen
Succes...
Hoop niet dat er kosten aan verbonden zijn, want dan moeten we dit weer in overleg gooien, wat weer een aantal dagen wachttijd kan kosten
Kan gelukkig altijd nog wel vooruit met het werk wat ik hier heb liggen.
Bachelor of Business Administration and Information Technology
minor Application Development
" Don't use comma (,) use dot (.) "
Ik denk dat ik de business group en product group weg zou laten, en het zou oplossen door sales header te groeperen op business groep, and de line op product group.
RIS Plus, LLC
Echter.. hoe krijg ik de uitvoer dan net zoals in het voorbeeldje hier:
http://members.home.nl/jopje/navision/uitvoer_rapport.gif
Met grouptotal en dan met groupfooter.. neem ik aan...
want de volgende stap is het genereren van een voorgaande periode en dan een vergelijking (verschil, marge, groei etc..).
Bachelor of Business Administration and Information Technology
minor Application Development
" Don't use comma (,) use dot (.) "
Sorry, wat zei je ook alweer? 8)
RIS Plus, LLC
Daar gaat weer een topic....
Maak een sleutel aan met die twee velden. Maak een nieuw rapport aan met de Sales Line, en gebruik de wizard. In de wizard geef je vervolgens je totaalvelden en je groepvelden aan, en als het goed is doet Navision de rest voor je. Op dat moment hoef je alleen maar je sections bij te werken.
RIS Plus, LLC
Die staat weer in de header ervan #-o
Mark Brummel: Het moest nog even geheim blijven, maar ik wilde tegen het eind van mijn stage een vlaai richting Apeldoorn sturen. (of een quiche) als dank voor de hulp, maaruh.. niet verder vertellen :-$
Sleutels aanmaken? SETCURRENTKEY of is het met 'Table Designer', want die hebben we toch maar niet aangeschaft...
62.000+ records aan factuurregels O:)
Bachelor of Business Administration and Information Technology
minor Application Development
" Don't use comma (,) use dot (.) "
Waarom koop je die niet? Hij kost niets. Evenveel als 10 tabellen en die krijg je er gratis bij.
Dus
(10 tabellen) = evenduur als (10 tabellen + tabledesigner) 8)
Daarnaast is er een groot risico dat performance teruggaat mocht er een verkeerde koppeling zijn.
Zie topic
Bachelor of Business Administration and Information Technology
minor Application Development
" Don't use comma (,) use dot (.) "
Ik zou in jouw plaats een "bold new strategy" aannemen:
- In een apart Dataitem de Sales Lines al zoveel mogelijk filteren op sleutel
- In dat dataitem de data overzetten in een temp-tabel voor zoverre de boekingsdatum van de header binnen de range ligt. Dit zal inderdaad vereisen dat je ALLE lijnen overloopt --> best een progressbar op programmeren.
- Dan daarNA geneste dataitems voor produkt en bedrijfsboekingsgroepen
- In het diepste dataitem filter je je temp-tabel op de twee groepen en kopieer je alles naar een 2e temp
- In dat dataitem steek je nog een dataitem van type Integerwaarmee je je tweede temp overloopt en op secties zet.
De snelheid zit hem in het feit dat je je data cached in RAM-geheugen (je PC moet dus wel een jaar aan regels in RAM kunnen houden) en daar dan de bewerkingen op doet. Dit zou VEEL sneller moeten gaan. De enige wachttijd zit hem dan in het eerste stuk waar de lijnen ingeladen moeten worden.
Jouw eerste algoritme is een licht n^4-algoritme. Dit is een zwaar n-algoritme. Voor "voldoende" gegevens is een n-algoritme sneller dan een n^2-algoritme. Laat staan een n^4 !!
"I tried filtering life, but the universe returned an Internal Error"