Sorteren op veld dat geen key is

Red-EagleRed-Eagle Member Posts: 107
edited 2010-12-03 in NAV Dutch speaking only
Ik ben bezig met tabel Try-Out Quote. Hier zitten een aantal sleutels in helaas niet degene die ik nodig heb. Het toevoegen van een sleutel is geen optie. Nu heb ik op het forum al gelezen dat je een integer tabel moet maken. Dat is me ook gelukt. Alleen nu is mijn probleem dat ik de sorting van velden wil aanpassen, maar ik heb geen idee hoe ik dit moet doen. Ik wil namelijk sorteren als eerste op "Register date" dan "Estimator" en vervolgens "Code" En kan je deze velden dat ook weer requestfields weergeven voordat je je report opstart?

Daarnaast is alleen een integer tabel genoeg of moet ik ook de tabel Try-Out Quote ook laten staan als dataitem?

Comments

  • krikikriki Member, Moderator Posts: 9,112
    Het gemakkelijkste is om een nieuwe tabel te maken met de velden en sleutels die je nodig hebt. Als je de tabel dan ENKEL gebruikt als temptable, is het niet nodig om die in de licentie te zetten (best dat je dat wel in de documentation-section van tabel en report zet en miscchien ook in de version list van de tabel).
    Regards,Alain Krikilion
    No PM,please use the forum. || May the <SOLVED>-attribute be in your title!


  • Red-EagleRed-Eagle Member Posts: 107
    Ik kan alleen maar gebruik maken van de integer gebruik maken en geen nieuwe tabellen toevoegen. Dus het moet op een iets moeilijker manier.
  • krikikriki Member, Moderator Posts: 9,112
    Kun je een sleutel toevoegen aan die tabel? In dat geval kun je de sleutel toevoegen die je nodig hebt en de key-property MaintainSQLIndex op No zetten.
    Regards,Alain Krikilion
    No PM,please use the forum. || May the <SOLVED>-attribute be in your title!


  • Red-EagleRed-Eagle Member Posts: 107
    Wij hebben zo wie zo de native versie. dus met sql kan ik niks doen.


    In mijn report heb ik bij de integer de volgende c/cal code staan:

    Integer - OnPreDataItem()
    TempTryOutQuote.RESET;
    TempTryOutQuote.SETCURRENTKEY(Estimator,"Register Date",Code);
    SETRANGE(Number,TempTryOutQuote.COUNT);


    Integer - OnAfterGetRecord()
    IF Number = 1 THEN
    TempTryOutQuote.FIND('-')
    ELSE
    TempTryOutQuote.NEXT;

    Ik krijg nog steeds de melding dat het geen bestaande sleutel is. Blijkbaar doe ik toch nog iets fout, waardoor hij de sleutel van de tijdelijke tabel niet neemt.
  • krikikriki Member, Moderator Posts: 9,112
    Kijk eens in de tabel om te zien of de velden in de sleutel gelijk zijn aan je SETCURRENTKEY en dat de property "Enabled" true is.
    Regards,Alain Krikilion
    No PM,please use the forum. || May the <SOLVED>-attribute be in your title!


  • SogSog Member Posts: 1,023
    Een tijdelijke tabel heeft dezelfde sleutels als de werkelijke tabel.
    Wat de bedoeling is is om zelf je eigen sorteercode te schrijven zodat je de records die je ophaalt in je werkelijke tabel in volgorde in de tijdelijke tabel steekt. Dit doe je in je try-out-quote dataitem. (hiervan wordt niets afgedrukt!, dus geen secites) Om de volgorde te garanderen (mis/ge)-bruik je best de primairy key, als je deze ook moet weergeven in je rapport, neem dan een andere tabel waar je je integer, en je primary key in kan steken.
    Custom sorting niet op basis van je eigen key is en blijft zo moeilijk als je het jezelf maakt.

    De tabel try-out-quote natuurlijk laten staan, anders zal dit nooit gaan. zo kunnen de filters die daarop worden gezet gebruikt worden om deze niet in je tijdelijke tabel te zetten.
    |Pressing F1 is so much faster than opening your browser|
    |To-Increase|
Sign In or Register to comment.