Options

Lookup in Requestform

KarenKaren Member Posts: 79
edited 2005-06-29 in NAV Dutch speaking only
Ik heb het volgende probleem:

Op het hoofdmenu > Inkoop heb ik een menu toegevoegd met 2 menu-items. Bij het klikken op eender welke menu-item wordt hetzelfde form geopend maar natuurlijk met andere gegevens in.

Als ik nu op de form een afdruk wil doen wordt het request form geopend. Bij veldA op het request form kan ik een lookup doen. Bij het klikken op de lookupbutton wordt een Form geopend waaruit men kan kiezen. Maar ik wil niet dat alle keuzes hier getoond worden.
(Dus afhankelijk van het geopende form mag in de lookup maar een bepaald aantal gegevens getoond worden)

Iemand een idee?

Comments

  • Options
    DenSterDenSter Member Posts: 8,304
  • Options
    KarenKaren Member Posts: 79
    versie 2.60
  • Options
    DenSterDenSter Member Posts: 8,304
    Je kan in de OnLookup code van VeldA de filters programmeren die gebruikt worden als het lookup form wordt geopend.
  • Options
    KarenKaren Member Posts: 79
    Maar telkens als ik code schrijf in de OnLookup dan kan ik geen lookup meer doen. Het knopje werkt dan niet.
  • Options
    DenSterDenSter Member Posts: 8,304
    Dat klopt. Zodra je code schrijft in de OnLookup trigger, werkt de 'normale' lookup niet meer, die moet je dan helemaal programmeren.

    Ik weet niet precies wat je wil doen. Je kan een conditie ingeven in de tablerelation property van een veld. Kijke bijvoorbeeld naar het "No." veld van de Sales Line tabel, die afhankelijk van het type in een andere tabel kijkt. Je kan ook condities ingeven die een andere filter zet afhankelijk van een veldwaarde.
  • Options
    KarenKaren Member Posts: 79
    Ik heb nu de code voor het lookup form geschreven. Dit gaat nu gelijk het hoort. Hij geeft ook de geselecteerde waarde terug aan het request form.

    In het requestform heb ik nog een klein probleem. In de filter komt niet direct de nieuwe waarde te staan. Moet eerst in de volgende lijn klikken en dan terug op de eerste lijn. Pas dan staat de nieuwe waarde er.

    Maar op tabel niveau kan ik gene update doen!

    Hoe moet ik dit oplossen?
  • Options
    DenSterDenSter Member Posts: 8,304
    Probeer de waarde toe te passen als filter op het gekozen veld.

    Rec.SETFILTER("Selected Field",'=%1',ReturnedValue);

    Waar 'Rec' de tabel van het onderliggende dataitem is.
  • Options
    KarenKaren Member Posts: 79
    Dat had ik reeds gedaan. Maar ik zou een of andere refresh/update moeten kunnen doen
  • Options
    KarenKaren Member Posts: 79
    Dit is dus mijn probleem: de nieuwe waarde1 die via het lookupform opgezocht werd, wordt er niet onmiddellijk ingezet

    Voorbeeld requestform:

    Veld Filter

    VeldA waarde1


    En hoe kan ik ervoor zorgen dat men meerdere waardes in die filter van het request form kan zetten door ze allemaal apart uit het lookupform te halen?

    Voorbeeld requestform:

    Veld Filter

    VeldA waarde1|waarde2|waarde3
  • Options
    krikikriki Member, Moderator Posts: 9,090
    Creeer een variabele met de form die je als lookup wilt gebruiken.
    In de OnLookup van het veld waar je de filter wilt zettten:
    clear(frmLookup);
    IF frmLookup.RUNMODAL = ACTION::LOOKUPOK THEN BEGIN
      txtMyFilterField := frmLookup.GetFilter();
    END;
    

    in de lookup-form:
    In de OK-button :
    CurrForm.SETSELECTIONFILTER(rec);
    txtFilter := '';
    IF FIND('-') THEN
      REPEAT
        txtFilter := '|' + "The Field";
      UNTIL NEXT = 0;
    txtFilter := COPYSTR(txtFilter,2);
    

    Functie GetFilter die een text als return-value heeft
    EXIT(txtFilter)
    


    Ik heb de code niet uitgeprobeerd, maar het zal iets in deze aard zijn.
    Regards,Alain Krikilion
    No PM,please use the forum. || May the <SOLVED>-attribute be in your title!


  • Options
    KarenKaren Member Posts: 79
    Ik krijg een foutmelding op volgende code:
    txtMyFilterField := frmLookup.GetFilter();

    Ik kan dus geen GETFILTER() doen op een formvariabele
  • Options
    KarenKaren Member Posts: 79
    Sorry, had het laatste niet goed gelezen...

    Ga het nog eens proberen...
  • Options
    KarenKaren Member Posts: 79
    Mijn tweede probleem is opgelost. Maar volgende probleem nog steeds niet:

    De nieuwe waarde1 die via het lookupform opgezocht werd, wordt er niet onmiddellijk in mijn request form gezet

    Voorbeeld requestform:

    Veld Filter

    VeldA waarde1

    Ik moet eerst naar de volgende regel gaan met de cursor en daarna terug naar de regel met veldA voor de nieuwe waarde erin gezet word
  • Options
    krikikriki Member, Moderator Posts: 9,090
    Probeer eens dit te zetten in de OnLookup-trigger van je veld:
    clear(frmLookup);
    IF frmLookup.RUNMODAL = ACTION::LOOKUPOK THEN BEGIN
      Text := frmLookup.GetFilter();
      EXIT(TRUE);
    END;
    
    Regards,Alain Krikilion
    No PM,please use the forum. || May the <SOLVED>-attribute be in your title!


  • Options
    KarenKaren Member Posts: 79
    Werkt ook niet
    ](*,) ](*,) ](*,)
  • Options
    krikikriki Member, Moderator Posts: 9,090
    Ik heb even een voorbeeld uitgewerkt:

    In de Lookup-form in de Ok-button:
    OnPush()
    CurrForm.SETSELECTIONFILTER(Rec);
    txtFilter := '';
    IF FIND('-') THEN
      REPEAT
        txtFilter += '|' + Code;
      UNTIL NEXT = 0;
    txtFilter := COPYSTR(txtFilter,2);
    

    Functie GetFilter in de lookup-form
    GetFilter() : Text[100]
    
    EXIT(txtFilter);
    

    Onlookup-trigger van je veld:
    OnLookup(VAR Text : Text[260];) : Boolean
    CLEAR(frmKrikiExample);
    frmKrikiExample.LOOKUPMODE(TRUE);
    IF frmKrikiExample.RUNMODAL = ACTION::LookupOK THEN BEGIN
      Text := frmKrikiExample.GetFilter();
      EXIT(TRUE);
    END;
    
    Regards,Alain Krikilion
    No PM,please use the forum. || May the <SOLVED>-attribute be in your title!


Sign In or Register to comment.