Jump to content
  • 0

Datum probleem


JeanWM

Question

Posted

Ik loop tegen een datumprobleem aan....

 

Het zoeken naar records wordt gedaan middels een ‘zoeklayout’, + een layout indien geen records gevonden wordt, ieder met de nodige knoppen, zoals ‘Search again’ en ‘Cancel’,

en ‘Find’ en ‘Canel’ voor de zoeklayout...met de nodige 'Halt' en 'Resume' waar het nodig is....

 

Het ‘vinden’ wordt gedaan middels 3 scripts (indien ik hier in detail moet gaan....)

 

Het probleem is nu dat alles netjes opgevangen wordt middels de scripts, zoals naar de invoerlayout indien 1 record gevonden wordt, een lijst-layout indien meerdere gevonden wordt enz., de gewone standaard werkwijze, enkel indien een verkeerde datum ingegeven wordt (bv 31 02 2004).

 

Dan krijg je uiteraard het FM scherm met ‘Revert Field’ en ‘OK’, waarbij de gebruiker soms de mist in gaat.

 

Ik heb dat voorlopig opgevangen met de 508 en 500 capture te verwerken in mijn script, samen met TextToDate velden, maar dat lost het probleem niet op....

 

Iemand een ander idee of workaround ?

5 answers to this question

Recommended Posts

  • 0
Posted

Als je de script stap set error capture[on] gebruikt, komt die melding niet en kan je na perform find[] op de current error checken.

Je kan dan zelf de afhandeling van een foute invoer regelen.

 

Of is dat al wat je doet en wil je daar meer info over.

 

rmw

  • 0
Posted

Set Error Capture staat on...

Het is immers hierop dat de 'redirection' naar de verschillende layouts gebaseerd is...

 

Indien je een capture regelt voor de 400 error alleen krijg je het bericht van verkeerde datum wel...ondanks de Capture on, en dan beginnen de problemen....

 

Dus is er ook een capture voor de 500 en 508 error....

(ook een controle op getalingave..)

 

De 'verwerking' van die capture is gebaseerd op verschillende 'If' en 'Else', waaronder Text to Date en Text to Num (voor verkeerde getalingave)...

 

Ik vind mijn oplossing (die werkt) persoonlijk omslachtig, daarom de vraag hoe anderen dit zouden opvangen....het verkeerd ingeven van een datum (en een getal) in een script voor het vinden van datums ( ¿ of is het data?)...

  • 0
Posted

Si, Sanne, geen probleem,

 

(¿Hoe is't met jou trouwens......?)

 

De eerste script is die die de ‘datumfout’ geeft...

Let wel deze scripts zijn nog ‘in ontwikkeling’...ik laat er al mijn kwaaie bedoelingen op los om de boel op één of andere manier ‘om zeep te helpen’.....

Hierbij viel ik op het datumscherm en ook dat er fouten kunnen komen vanuit een ‘numberfield’....

Dat gaf aanleiding tot het tweede script....

En daar maak ik mij de bedenking...het moet ook op een andere manier kunnen....

 

 

 

Find item 1

 

Allow User Abort [ Off ]

Set Error Capture [ On ]

Perform Script [ "Find item easy 1" ]

[ Sub-scripts ]

If [ Status( CurrentError) = 400 ]

Show Message [ Buttons: "Find again", "Cancel", ""; Data: "There are no valid criteria in this request.

Please type a valid request before clicking "Find"." ]

If [ Status( CurrentMessageChoice) = 1 ]

Perform Script [ "Find item 1" ]

[ Sub-scripts ]

Else

Go to Layout [ Form_Input ]

End If

Else

If [ Status( CurrentFoundCount) = 0 ]

Go to Layout [ Dialogue No Records 1 ]

Beep

Else

If [ Status( CurrentFoundCount) = 1 ]

Go to Layout [ Form_Input ]

Else

Go to Layout [ original layout ]

End If

End If

End If

 

 

 

Script aangepast....

 

Find Item1

 

Set Error Capture [ On ]

If [ Status(CurrentError) = 508 ]

Show Message [ Buttons: "OK", "", ""; Data: "You have entered an invalid date or number. Please check those two fields." ]

Go to Field [ DateField ]

Else

If [ not IsValid(TextToDate(dateText))

and

not IsEmpty(dateText) ]

Show Message [ Buttons: "OK", "", ""; Data: "You have not entered a proper date in the format: mm/dd/yyyy. You

will have to enter all find criteria again." ]

Perform Find

Perform Script [ "Find" ]

[ Sub-scripts ]

Else

If [ TextToNum(numberText) <= 0

and

not IsEmpty(numberText) ]

Show Message [ Buttons: "OK", "", ""; Data: "You have not entered a proper number in the numberfield - is voor oeder item anders field. Numbers

must be entered in digit format. ie: 1, 2 etc. You will have to enter all find criteria again." ]

Perform Find

Perform Script [ "Find" ]

[ Sub-scripts ]

Else

Set Field [ NumberField, numberText ]

Set Field [ numberText, "" ]

Set Field [ dateText_g, dateText ]

Insert Calculated Result [ DateField, Case(

DateFindCriteria = "less_than"; "<" & dateText;

DateFindCriteria = "greater_than"; ">" & dateText;

DateFindCriteria = ""; dateText) ]

[ Select entire contents ]

Set Field [ dateText, "" ]

Set Field [ DateFindCriteria, "" ]

Perform Find

If [ Status(CurrentError) = 400 ]

Show Message

Perform Script [ "Find" ]

[ Sub-scripts ]

Else

If [ Status(CurrentFoundCount) = 0 ]

Show Message [ Buttons: "OK", "", ""; Data: "There are no records that match your request." ]

Go to Layout [ Layout #1 ]

View As

[ View as Form ]

Else

If [ Status(CurrentFoundCount) > 1 ]

Go to Layout [ Layout #1 ]

View As

[ View as List ]

Else

Go to Layout [ Layout #1 ]

View As

[ View as Form ]

End If

End If

End If

End If

End If

End If

 

 

Es todo, listo.... :lol:

 

Jean

  • 0
Posted

Volgens mij werkt Status(CurrentError) alleen maar op de laatst uitgevoerde script stap.

 

In je eerste script is het dus niet mogelijk om op de error van het Perform script te testen. Je zult in het script Find item easy 1 de fout moeten parkeren in een global en daarop testen nadat het script is uitgevoerd.

 

HTH

 

rmw

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