Ga naar inhoud
  • 0

SCRIPT PROBLEEM


lou

Vraag

Geplaatst:

ik geraak er niet uit.....

enkel die records waar in het veld "einde" niets staat, moet ik hebben. (geen probleem).

Maar van de records die ik dan te zien krijg zouden bv. deze die vroeger vallen dan 30/05/2008 moeten blijven staan.

Dus een script waarin enkel dat getoond wordt waarbij in "einde" niets staat en die vroeger vallen dan 30/05/2008.

Die "30/05/2008" is echter niet altijd eenzelfde datum dus moet er een datum kunnen worden ingevoerd naar keuze.

Hoe zet ik dit in een script?

17 antwoorden op deze vraag

Aanbevolen berichten

  • 0
Geplaatst:

Je zou een dialoogvenster kunnen tonen die je een datum vraagt. En met die waarde het script starten.

 

Zo uit de losse pols (en niet-idiotenveilig) :

 

Show custom dialog() met inputveld "gDatum"

Enter Find()

Set Field(einde = "")

Set Field(datum < gDatum)

Perform Find()

  • 0
Geplaatst:
Go to Layout ["myLayout"]
Set Variable [$Date; Value:myTable::gDate  // globaal veld om de gewenste datum te achterhalen]
Enter Find Mode []
Set Field [myTable::einde; "*"]
Omit Record
New Record/Request
Set Field [myTable::datum; "<" & $Date]
Perform Find []

  • 0
Geplaatst:

Bedankt mensen, maar ik krijg dit niet klaar.

Beide scripts getest, aangepast, uren lang.

Nagezien en nog eens nagezien.

Het werkt niet bij mij.

Zal dat script gedoe maar vergeten en het anders oplossen.

Toch nogmaals bedankt.

  • 0
Geplaatst:

Show Custom Dialog [ Title: "SELECTEER ALLES VOOR DEZE DATUM"; Message: "Breng de datum in"; Buttons: “OK”, “Cancel”; Input #1: Data::gdate ]

Enter Find Mode [ ] [ Pause ]

 

Set Field [ Data::Einde; Data::Einde = " " ]

 

Set Field [ Data::Lev_Date; Data::Lev_Date < Data::gdate ]

 

Perform Find [ ]

gdate = global field

  • 0
Geplaatst:

Schakel om te beginnen de instelling 'Pause' uit bij 'Enter Find Mode'. Het script stelt zelf zijn criteria in en hoeft niet te wachten op invoer.

 

Ten tweede: de 'Set Field' step zou er zo moeten uitzien:

 

Set Field [Data::Einde; ]

 

Je value is nu Data::Einde = " "

 

Dit is een vergelijking, die als waarde 'waar' (1) of 'onwaar' (0) oplevert. Dit werkt echter niet in Find Mode. Je moet een echte waarde invoeren. Dit kan een globaal veld zijn.

 

Je zoekt echter naar 'lege waarde'. Je kunt in dit geval niet zomaar niets invoeren, want dan denkt FileMaker dat je geen criteria hebt ingevoerd en zoekt dus niet op dit veld. Zie mijn eerdere post hoe je dit oplost.

 

Heb je het script dat ik hierboven heb gepost eigenlijk uitgeprobeerd?

  • 0
Geplaatst:

Je zoekt echter naar 'lege waarde'. Je kunt in dit geval niet zomaar niets invoeren, want dan denkt FileMaker dat je geen criteria hebt ingevoerd en zoekt dus niet op dit veld.

 

terzijde:

Dat kan eventueel door te zoeken met "".

  • 0
Geplaatst:
Dit werkt echter niet in Find Mode. Je moet een echte waarde invoeren.

Ik bedoel hiermee dat er in Find Mode geen veldwaarde beschikbaar is om de vergelijking mee uit te voeren.

 

De inhoud van een globaal veld is wel beschikbaar in Find Mode en daarom kun je een globaal veld gebruiken om een zoekcriterium in te stellen.

  • 0
Geplaatst:
Je zoekt echter naar 'lege waarde'. Je kunt in dit geval niet zomaar niets invoeren, want dan denkt FileMaker dat je geen criteria hebt ingevoerd en zoekt dus niet op dit veld.

Velden zoeken zonder inhoud doe je in FileMaker met het =-teken. Het gelijkheidsteken, gevolgd door niets, betekent dat je alle records zoekt die in dat veld geen inhoud hebben.

Dit is de door FileMaker voorziene standaardprocedure.

Wil je alle records waarvoor iets in een veld staat, dan kan je dat op dezelfde manier doen met Omit erbij, maar FileMaker voorziet standaard de oude DOS-methode met de asterisk (niet de Astérix, want die woont in Gallië).

 

Wil je bijvoorbeeld alle records van Antwerpenaren waarvoor de Geboortedatum niet ingevuld is, dan zet je in Find Modus in het veld Gemeente iets als "Antw" en in het veld Geboortedatum een gelijkheidsteken.

  • 0
Geplaatst:

OK, nog één keer dan:

 

(zorg op voorhand dat het veld 'gdate' de gewenste datum bevat)

(vul voor 'myLayout' de gewenste layout in, die gebaseerd is op de tabel 'Data')

Go to Layout ["myLayout" (Data)]
Enter Find Mode []
Set Field [Data::Einde; "="]
Set Field [Data::Lev_Date; "<" & Data::gdate]
Perform Find []

Dit zou het toch echt moeten doen.

  • 0
Geplaatst:

Yesssssssssss......

Het werkt.

Geweldig bedankt.

Wie kan mij wat aanbevelen om mij ook eens grondig te verdiepen in de geheimen van de Filemaker scripts.

  • 0
Geplaatst:

Misschien toch nog één keertje hbrendel?

 

Als ik nu bijkomend nog één veld wil uitsluiten: bv. in het veld "SI" staat een " X " als het artikel in zilver is.

Ik wil nu die artikels (gefilterd met jouw script) maar hierin mogen die , waarbij SI een " X " heeft ook niet meer staan.

...........en dit is de laatste keer.

  • 0
Geplaatst:

Voeg aan je script toe:

Enter Find mode []
Set Field [Data::SI; "X"]
Omit Record
Constrain Found Set []

Maar zo langzamerhand lijkt het erop dat je beter een relatie kunt maken die aan al die voorwaarden voldoet, en dan simpelweg de scriptstap "Go to Related Record' aanroepen.

Doe mee aan dit gesprek

Je kunt dit nu plaatsen en later registreren. Indien je reeds een account hebt, log dan nu in om het bericht te plaatsen met je account.

Gast
Beantwoord deze vraag...

×   Geplakt als verrijkte tekst.   Plak in plaats daarvan als platte tekst

  Er zijn maximaal 75 emoji toegestaan.

×   Je link werd automatisch ingevoegd.   Tonen als normale link

×   Je vorige inhoud werd hersteld.   Leeg de tekstverwerker

×   Je kunt afbeeldingen niet direct plakken. Upload of voeg afbeeldingen vanaf een URL in

×
×
  • Nieuwe aanmaken...