lou Posted May 19, 2008 Posted May 19, 2008 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? Quote
0 Rony Rabijns Posted May 19, 2008 Posted May 19, 2008 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() Quote
0 hbrendel Posted May 19, 2008 Posted May 19, 2008 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 [] Quote
0 lou Posted May 20, 2008 Author Posted May 20, 2008 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. Quote
0 Rony Rabijns Posted May 20, 2008 Posted May 20, 2008 Post dat script (bestand) eens als je wil. Quote
0 lou Posted May 20, 2008 Author Posted May 20, 2008 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 Quote
0 hbrendel Posted May 20, 2008 Posted May 20, 2008 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? Quote
0 Rony Rabijns Posted May 20, 2008 Posted May 20, 2008 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 "". Quote
0 hbrendel Posted May 20, 2008 Posted May 20, 2008 (edited) terzijde:Dat kan eventueel door te zoeken met "". Ik krijg dan dit: Edited May 20, 2008 by Guest Quote
0 hbrendel Posted May 20, 2008 Posted May 20, 2008 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. Quote
0 AvD Posted May 20, 2008 Posted May 20, 2008 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. Quote
0 hbrendel Posted May 20, 2008 Posted May 20, 2008 I stand corrected. Na Rony's post probeerde ik "". Met "=" heeft het wel het gewenste resultaat. Weer wat geleerd! Quote
0 hbrendel Posted May 20, 2008 Posted May 20, 2008 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. Quote
0 lou Posted May 21, 2008 Author Posted May 21, 2008 Yesssssssssss...... Het werkt. Geweldig bedankt. Wie kan mij wat aanbevelen om mij ook eens grondig te verdiepen in de geheimen van de Filemaker scripts. Quote
0 Koen Van Hulle Posted May 21, 2008 Posted May 21, 2008 Om te beginnen de ingebouwde FileMaker Help. Als je nieuw bent in de materie moet je ook de bijgeleverde tutorial eens proberen. Die vind je in de map English Extras (of de taal die je geinstalleerd hebt) >Electronic Documentation > FMP9_Tutorial.pdf De FileMaker Training Series zijn ook een echte aanrader: http://www.filemaker.nl/support/training/fts.html Koen Quote
0 lou Posted May 21, 2008 Author Posted May 21, 2008 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. Quote
0 hbrendel Posted May 21, 2008 Posted May 21, 2008 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. Quote
0 lou Posted May 21, 2008 Author Posted May 21, 2008 Bedankt van harte. Ik ga me in de "scriptwereld" verdiepen. Quote
Question
lou
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
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.