2013

May

07

Av Rolf

Kopiera och klistra är en helt oumbärlig funktion. Ofta kopieras det från Word-dokument, webben eller något annat ställe där text är utformad på något sätt. Det kan vara fet eller kursiv stil, färg, varierande storlek och typsnitt. Utformningen är inte intressant när man klistrar in det i en FileMaker-databas. Ändå följer den med.

Det går förstås att undvika. Använder du tangentkommando Skift-Alt-Cmd-V på Mac eller Skift-Ctrl-V på Windows så klistrar du bara in texten du kopierat, utan utformning.

Jag har dock svårt att komma ihåg alla tangentkommando och klistra in är något jag gör ofta, att trycka på tre eller fyra tangenter varje gång är i alla fall några för många 🙂

Det finns en alternativ lösning som kräver en beräkningsfunktion, men är ändå enkel. I FileMaker finns en beräkningsfunktion som heter TextFormatRemove, den gör precis som den heter och som man önskar. Alla utformningar för en text tas bort och endast texten blir kvar.

Om du använder den i en automatisk beräkning för ett fält så utförs beräkningen när du skrivit något, eller klistrat in något, i fältet.

Nackdelen är att du behöver lägga in beräkningen på samtliga fält du vill klistra in i, men det är å andra sidan samma beräkning för alla så du kan kopiera och klistra!

Välj att definiera fält och markera ett fält (Text, Numeriskt, Datum eller Tidsstämpel) du vill lägga in beräkningen på i listan. Klicka på knappen Tillval för fältet och markera kryssrutan Beräknat värde. I formelfältet som visas anger du beräkning som i bilden.

TextRemove1

Funktionen Egenvärde hämtar innehållet i aktuellt fält. Du kan alltså kopiera formeln och använda den utan ändring i alla andra fält.

När du klickat på OK kommer du tillbaka till dialogrutan Tillval för fältet. Tänk på att ta bort kryssrutan Ersätt inte befintligt värde.

TextRemove2

Upprepa för alla fält du vill klistra in i.

Sedan kan du klistra in med Ctrl-V och Cmd-V som vanligt 🙂

Kommentarer

2013-05-08 Fabian

Ett relaterat tips som jag råkade upptäcka är att om man ångrar (cmd + z) efter att ha klistrat in så tas formateringen bort. Ångrar men en gång till tas det man klistrade in bort. Smidigt! Smile

2013-05-08 Rolf

Helt rätt! Ångrar man ett steg tas utformningen som klistrats in bort.

2014-01-31 Camilla

Mycket användbart! Men jag skulle samtidigt vilja ha med Upper(egenvärde) på samma fält, t ex vill ha orten med versaler. Hittar inte lösningen...

2014-01-31 Rolf

Vill du göra om till versaler använder du samma teknik men istället formeln:

Upper(TextFormatRemove(Egenvärde))

2014-01-31 Camilla

Tack så mycket!

2014-08-05 FF

Manusutlösare är ju kul – gjorde en variant på din lösning med "Tilldela fält [TextFormatRemove ( Get ( AktivtFältinnehåll ) )]". Verkar funka fint och vara tillräckligt generellt för att kunna användas där man så önskar. :)

2014-08-11 Rolf

Manus-trigger är ytterligare ett sätt för samma funktion.

Tänk på att du manus-triggers är per layout, du behöver lägga till manus-triggern för fältet på alla layouter där du vill ha funktionen.


Manuset består av ett manussteg, Tilldela fält[Get (AktivtFältinnehåll)]. Med funktionen Get(AktivtFältinnehåll) får du innehållet i det aktiva fältet där manus-triggern är definierad. I och med att ett fält är aktivt tilldelas det utan att du behöver ange det.


Har du många fält och få layouter kan denna metod gå snabbare att göra eftersom du kan markera alla fält på en gång och tilldela samma manus-trigger på samtliga fält på en layout, förutsatt att inget fält behöver annan manus-trigger förstås. Om det går snabbare att köra kan dock diskuteras?

2018-03-23 Camilla

Skulle vilja få med "trim" på något sätt... Får lätt med blanksteg i början och tomma vagnreturer i slutet vid klistra in. Något förslag?

2018-03-23 Rolf

Jag använder ofta en egen funktion kallad "Supertrim" som du hittar här: https://www.briandunning.com/cf/904

Funktionen tar bort mellanslag och vagnreturer som inleder eller avslutar texten som du skriver eller klistrar in i fältet. Placera funktionen i fältet som en automatisk beräkning (Beräknat värde), t.ex. Supertrim (Self), där Self refererar till värdet i fältet.

Vill/kan du inte använda en egen funktion kan du klistra in en variant av den som automatisk beräkning:

Let([
t2 = Substitute( Self; [ " "; "" ]; [ " "; "" ]; [ " "; "" ]; [ "¶"; "" ]; [ Char(10); "" ] );
first_char = Position( Self; Left( t2; 1 ); 0; 1 );
last_char = Position( Self; Right( t2; 1 ); Length( Self); -1 )
];
If( first_char > 0; Middle( Self; first_char; last_char - first_char + 1 ); "" )
)

2018-03-23 Camilla

Tack för hjälpen och trevlig helg!

Skriv en kommentar

Din epost-adress stannar hos oss.