Jump to content
  • 0

SCRIPT PROBLEEM


lou

Question

Posted

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 answers to this question

Recommended Posts

  • 0
Posted

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
Posted
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
Posted

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
Posted

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
Posted

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
Posted

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
Posted
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
Posted
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
Posted

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
Posted

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
Posted

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
Posted

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.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...