Ga naar inhoud
  • 0

Custom Function


Rob532

Vraag

Goedenavond

Al enige tijd ben ik aan het stoeien met een custom functie en wel voor het invoeren van telefoonnumers.

Ik wil dat ze automatisch een vaste schrijfwijze krijgen.

Veel gezocht op internet en een voorbeeld gevonden bij Brian Dunning. Maar nu het aanpassen......

Voor GSM nummers is dat wel gelukt maar die verrekte gewone telefoonnummers in Nederland...

We kennen in Nederland 29 Kengetallen die maar uit 3 cijfers bestaan.

Dus ik wil een Case functie gebruiken. Ik denk maar dat iets in de trent van:

 

Let (pnum = Substitute( text; [ " "; "" ]; [ "("; ""]; [ ")"; ""]; [ "-"; ""]; [ "."; ""]; [ "x"; ""] ) ;

Case(

Left(="010";3); Left(pnum;3) & " "& Middle(pnum; 4;4) & " " & Right(pnum;3) ;

Left(="020";3); Left(pnum;3) & " "& Middle(pnum; 4;4) & " " & Right(pnum;3) ;

Left(="030";3); Left(pnum;3) & " "& Middle(pnum; 4;4) & " " & Right(pnum;3) ;

Length(pnum) = 10 ; "(+" & Left(pnum;4) & ") " & Middle(pnum; 5;3) & " " & Right(pnum;3) ;

pnum)

)

 

 

Uiteraard moet de lijst uitgebreid worden naar de 29 kengetallen

Het telefoonnummer is een tekstveld

Volgens mij zit de problematiek in Left(="010";3)

 

Wie kan mij op weg helpen?  Alvast bedankt

Link naar reactie

3 antwoorden op deze vraag

Aanbevolen berichten

  • 0

Je kan het eens proberen met deze:

Let ( [ 
	pnum = Filter ( text ; "1234567890" ) ; 
	type = Case ( 
		PatternCount ( "¶061¶062¶063¶064¶065¶068¶069¶" ;  & Left ( pnum ; 3 ) &  ) ; 6 ; // mobiele nummers
		PatternCount ( "¶08¶09¶" ;  & Left ( pnum ; 2 ) &  ) ; 8 ; // 08x of 09x zijn tot 12 cijfers lang
		PatternCount ( 
			"¶010¶013¶014¶015¶020¶023¶024¶026¶030¶033" & 
			"¶035¶036¶038¶040¶043¶044¶045¶046¶050¶053" & 
			"¶055¶058¶070¶071¶073¶074¶075¶076¶078¶079¶" ;  & Left ( pnum ; 3 ) &  ) ; 3 ; // 3 cijfers 010 ... 079
		4 ) // overige met 4 cijfers
] ; 
	Case ( 
		type = 8 ; Left ( pnum ; 4 ) & " " & Middle ( pnum ; 5 ; 4 ) & " " & Middle ( pnum ; 9 ; 4 ) ; 
		length ( pnum )  10 ; "Lengte is onjuist." ; 
		type = 6 ; Left ( pnum ; 2 ) & " " & Middle ( pnum ; 3 ; 4 ) & " " & Middle ( pnum ; 7 ; 4 ) ; 
		type = 3 ; Left ( pnum ; 3 ) & " " & Middle ( pnum ; 4 ; 3 ) & " " & Middle ( pnum ; 7 ; 4 ) ; 
		type = 4 ; Left ( pnum ; 4 ) & " " & Middle ( pnum ; 5 ; 3 ) & " " & Middle ( pnum ; 8 ; 3 ) )
)

Hij werkt denk ik voor de meeste gewone telefoonnummers, maar voor de "niet geografische nummers" niet. Wanneer je die wel gebruikt, zal je die eerst nog even moeten checken en de formule daarop moeten aanpassen. Zie daarvoor deze wikipedia-pagina met wat meer info.

Een hele andere methode heb ik beschreven op FileMakerTips, dat werkt met een tabelletje en maskers die je opgeeft.

Link naar reactie
  • 0

Als je ook buitenlandse nummers (buiten de BeNeLux) wilt opzoeken, dan kan je ook een koppeling maken met een webservice zoals Phone Format Lookup API van Twilio die is volledig gratis wanneer je alleen het formaat controleert.

De techniek is natuurlijk volkomen anders, want je gaat gebruik maken van Insert from URL en de JSON-functies. Hun documentatie is best duidelijk: https://www.twilio.com/docs/lookup/api Hiermee weet je meteen of het geldig nummer is (maar je controleert er niet mee of het bestaat)

Een voorbeeldje met Twilio kan je vinden op: FileMakerTips.nl

Link naar reactie

Doe mee aan dit gesprek

Je kunt dit nu plaatsen en later registreren. Indien je reeds een account hebt, log dan nu in om het bericht te plaatsen met je account.

Gast
Beantwoord deze vraag...

×   Geplakt als verrijkte tekst.   Plak in plaats daarvan als platte tekst

  Er zijn maximaal 75 emoji toegestaan.

×   Je link werd automatisch ingevoegd.   Tonen als normale link

×   Je vorige inhoud werd hersteld.   Leeg de tekstverwerker

×   Je kunt afbeeldingen niet direct plakken. Upload of voeg afbeeldingen vanaf een URL in

×
×
  • Nieuwe aanmaken...