Jump to content
  • 0

Perform find script


idmix.be

Question

Posted (edited)

Kan iemand me helpen met het volgende ? 

Ik heb een script, die een perform find uitvoert.

Dit script werkt prima met tekstvelden, maar niet wanneer ik wil zoeken op een getal.

Het script moet de zoekactie uitvoeren in een calculatieveld dat als resultaat een numerieke waarde heeft.

Het globale veld van waaruit de zoekactie start is ook van het numerieke type.

Ook als ik de zoekactie uitvoer vanuit de find mode, dus zonder script, krijg ik de melding "no records match this find criteria", terwijl die er wel degelijk zijn.

Hieronder het script.

Wat zie ik over het hoofd ?  

Alvast bedankt voor jullie input.

  • #PURPOSE: To filter the current found set of Transaction by filter criteria inputted by the user.
  • #Start, End Context: Transaction, Transaction
  • #Globals: None
  • #Parameters: None
  • #Results: None
  • #2014-06-20, EB, Created script.
  • #2017-04-28, JH, Now using JSON to pass parameters.
  • #2017-09-01,jk, duplicated from find.CON, adapted
  • #2017-09-09, jk, adapted variables to global variables so perform script (sort) could be integrated
  •  
  •  
  • #----------TRAP INTERFACE ERRORS-----------
  • Allow User Abort [ Off ]
  • Set Error Capture [ On ]
  •  
  •  
  • #----------POPULATE SCRIPT PARAMETERS AND VARIABLES-----------
  • #Parameters
  • Set Variable [ $$activeObjectName; Value:JSONGetElement( Get( ScriptParameter ) ; "activeObjectName" ) ]
  • #Variables
  • Set Variable [ $$selectionSelectionSize; Value:Get( ActiveSelectionSize ) ]
  • Set Variable [ $$selectionStartPosition; Value:Get( ActiveSelectionStart ) ]
  • Set Variable [ $$transactionnumber; Value:bTRANS_start_dsc::zzgTransactionnumber ]
  • // Set Variable [ $$transactiontype; Value:bTRANS_start_dsc::zzgTransactiontype ]
  • Set Variable [ $$amount; Value:bTRANS_start_dsc::zzgAmount ]
  • Set Variable [ $$vendor; Value:bTRANS_start_dsc::zzgVendor ]
  • Set Variable [ $$transactionstate; Value:bTRANS_start_dsc::zzgTransactionstate ]
  •  
  • #----------FILTER LIST OF INSPECTORS BASED ON FILTER CRITERIA-----------
  • Freeze Window
  • #Omit all records if the user didn't enter anything into filter fields
  • Set Variable [ $criteriaPresentFlag; Value:Case( not IsEmpty ( $$transactionnumber) or not IsEmpty ( $$vendor) or not IsEmpty ( $$amount) or not IsEmpty ( $$transactionstate ) ; 1 ; "" ) ]
  • If [ $criteriaPresentFlag = 1 ]
  • Enter Find Mode [ ]
  • Set Field [ bTRANS_start_dsc::Transactionnumber; $$transactionnumber ]
  • // Set Field [ bAPP_Transactiontype::Codevalue; $$transactiontype ]
  • Set Field [ bCON.vendor::NameFirst_NameLast; $$vendor ]
  • Set Field [ bBUYline::zzcTotalofBUYlines_VATin; $$amount ]
  • Set Field [ bAPP_Buystate::Codevalue; $$transactionstate ]
  • Perform Find [ ]
  • Else
  • Show All Records
  • Go to Record/Request/Page [ First ]
  • End If
  •  
  • #----------SORT RECORDS
  • Perform Script [ “gen.SortLists (gear, con, buy)”; Parameter: "buy" ]
  •  
  • #----------RETURN TO ORIGINAL FIELD AND ITS SELECTION LOCATION-----------
  • Go to Object [ Object Name: $$activeObjectName ]
  • Set Selection [ Start Position$$selectionStartPosition; End Position$$selectionStartPosition + $$selectionSelectionSize ]
  •  
  •  
  • #Variables
  • Set Variable [ $$activeObjectName; Value:"" ]
  • Set Variable [ $$selectionSelectionSize; Value:"" ]
  • Set Variable [ $$selectionStartPosition; Value:"" ]
  • Set Variable [ $$transactionnumber; Value:"" ]
  • // Set Variable [ $$transactiontype; Value:"" ]
  • Set Variable [ $$amount; Value:"" ]
  • Set Variable [ $$transactionstate; Value:"" ]
  • Set Variable [ $$vendor; Value:"" ]
  •  
  • #----------WRAP-UP-----------
  • Exit Script [ Result: 1 ]

 

 

Edited by idmix.be

4 answers to this question

Recommended Posts

  • 1
Posted

Summary-fields tonen resultaten op 3 manieren: 

1) Over de gevonden set met records
2) Over de gerelateerde records
3) Over het break-field van gesorteerde records in een resumé-layout (je moet dan subresumé-delen hebben op je layout)

Zoeken op summary-fields gaat vrijwel nooit goed, heel soms krijg je een resultaat, maar dat is niet betrouwbaar.

  • 0
Posted
1 uur geleden zei idmix.be:

Het script moet de zoekactie uitvoeren in een calculatieveld dat als resultaat een numerieke waarde heeft.

Het globale veld van waaruit de zoekactie start is ook van het numerieke type.

Heb je al gezocht op alleen maar een waarde waarvan je weet dat één of meer van de records die ook daadwerkelijk heeft?

Hoe is dat berekende veld precies gedefinieerd, het is toch geen berekening met een globaal resultaat? Daarop kan je namelijk niet zoeken. Ik zie dat je

  • Set Error Capture [ On ]

gebruikt, maar nergens in je script een variabele of global vult met Get ( LastError ). Niet na het instellen van een veld en ook niet na het uitvoeren van de zoekopdracht. (zie ook https://fmhelp.filemaker.com/help/16/fmp/en/index.html#page/FMP_Help/set-error-capture.html , https://fmhelp.filemaker.com/help/16/fmp/en/index.html#page/FMP_Help%2Fget-lasterror.html%23wwconnect_header en https://fmhelp.filemaker.com/help/16/fmp/en/index.html#page/FMP_Help%2Ferror-codes.html%23wwconnect_header voor meer informatie daarover)

  • 0
Posted (edited)

Hey Menno

bedankt voor je reactie.  Ik zet de set error capture om het modify find dialog box van FM te onderdrukken.

Ik heb uiteraard al gezocht op een waarde die zeker bestaat.  Krijg sowieso een 401 error, dus geen records gevonden.

Het berekende veld is een unstored calculation van een summary field opgeteld met een calculatieveld (dat gebaseerd is op de optelling van twee summary fields)  

Kunnen de summaryfields de boosdoener zijn ?

In bijlage een screenshot van de betrokken velden en hun definities.  Alle calculaties geven een nummeriek resultaat.

Het blauw gemarkeerde veld is het veld waarin gezocht wordt.

 

Screen Shot 2018-03-20 at 16.48.06.png

Edited by idmix.be

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