Jeffrey Posted December 3, 2002 Posted December 3, 2002 In mijn applicatie is het mogelijk door middel van een script om een key field te wijzigen. Dit gebeurd door een script waarin je eerste een nieuw nr moet invoegen in een global field, vervolgens controleert een ander scriptje of het nr al bestaat aangezien deze uniek moet zijn. Maar in dit controle script blijft hij hangen.. het script ziet er als volgt uit.. Ik heb als global fields: totaal records, controle en nieuwnr Clear [select,"Controle"] Go to Record/Request/Page[First] Loop If ["huidignr <> nieuwnr"] Go to Record/Request/Page [Next] Set Field ["Controle", "controle +1"] Else Show message [ "Dit is geen uniek nr, voer een ander in"] Perform Script "nr wijzigen" End if Exit Loop If ["Controle = totaal records"] End Loop Ik wil dus eigenlijk dat het controle script alle records afgaat om te kijken of het nr toevallig al bestaat. Zo ja, dan moet er een nieuw nr ingevoerd worden. Zo nee, dan moet ie verdergaan. Quote
0 Jeffrey Posted December 3, 2002 Author Posted December 3, 2002 Nu klopt mijn loop, althans ik blijf niet hangen. Maar nu komt het volgende probleem.. Het nieuwe nr is een global field.. Ik roep een nieuw scherm op dat gekoppeld is aan het huidige nr. Huidig nr: ..... Nieuw nr: ..... Wanneer hij nu het nieuw nr gaat controleren met het script gaat hij alle records af. En eindigt wanneer hij bij het laatste record is. Maar wijzigt dan ook het nr van het laatste record en niet van de record waar ik mee begonnen was. Wat doe ik dan verkeerd of hoe los ik dit op? Quote
0 miltenb Posted December 6, 2002 Posted December 6, 2002 Hoi, Ik heb even naar je probleem gekeken en begrijp duidelijk niet geheel wat je nu probeert, maar ik heb wel begrepen dat het 'loop'-en van je niet echt een goede/snelle oplossing is... Trouwens gebruik liever geen "clear", maar setfield[controle, ""], want voor clear moet het veld op het scherm staan. Wat ik altijd zelf doe is het volgende: (ik begrijp dat je een global hebt voor de nieuwe key) maak een relatie ( genaam "a") van gNewKey naar huidigeKey (moeten beide van het zelfde type zijn) daarna kun je een heel simpel controleren of je al dan niet een geldige key hebt ingevuld, met een script als Freeze Window if[isvalid(a::huidigeKey)] show message["dit nummer bestaat al"] else set field[huidigeKey, gNewKey] end if Ik hoop dat dit je een beetje helpt, anders moet je maar een vervolg post doen... Joost Quote
Question
Jeffrey
In mijn applicatie is het mogelijk door middel van een script om
een key field te wijzigen.
Dit gebeurd door een script waarin
je eerste een nieuw nr moet invoegen in een global field,
vervolgens controleert een ander scriptje of het nr al
bestaat aangezien deze uniek moet zijn.
Maar in dit controle script blijft hij hangen.. het script ziet er als volgt uit..
Ik heb als global fields: totaal records, controle en nieuwnr
Clear [select,"Controle"]
Go to Record/Request/Page[First]
Loop
If ["huidignr <> nieuwnr"]
Go to Record/Request/Page [Next]
Set Field ["Controle", "controle +1"]
Else
Show message [ "Dit is geen uniek nr, voer een ander in"]
Perform Script "nr wijzigen"
End if
Exit Loop If ["Controle = totaal records"]
End Loop
Ik wil dus eigenlijk dat het controle script alle records afgaat om
te kijken of het nr toevallig al bestaat. Zo ja,
dan moet er een nieuw nr ingevoerd worden. Zo nee,
dan moet ie verdergaan.
2 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.