Ga naar inhoud
  • 0

Copy en Paste


HeMa

Vraag

Ik ben just started met FM, en heb versie 4.1 Engels.

Ik heb nu 2 bestanden.

In bestand 1 geeft met bv een woord in.

Dan moet dat woord in bestand 2 worden opgezocht.

Ik probeer met een script copy en paste, maar als bestand 2 open is

blijkt er geen paste te zijn gebeurd in het gewenste veld.

Wat is een juist en werken script hiervoor.

En....wat is een boek met goede uitleg over FM.

Het handboek is me toch te rommelig.

Ik werkte vroeger met Omnis, dat was echt een gemak.

Link naar reactie

10 antwoorden op deze vraag

Aanbevolen berichten

  • 0

Probeer de copy/paste functie te vermijden en in de plaats daarvan de SetField-functie te gebruiken.

 

M.a.w.: creëer eerst een relatie tussen de beide bestanden en gebruik die vervolgens

om in het script dat je aanmaakt via de SetField-functie het bewuste veld in het andere bestand op te vullen.

Dit script kan je dan aan een knop linken die je bij het hoofd inputveld plaatst.

 

Op deze manier vermijd je ook dat gelijktijd lopende programma's die misschien ook de copy-functie gebruiken geen andere gegevens in je plakboek hebben geplaatst.

 

SetField is waterdicht.

Link naar reactie
  • 0

Dank je.

Dat heb ik nu ook al hier en daar gevonden en gebruikt.

Nu echter wordt het betreffende bestand geopend en

gebeurd er niets meer.

Wat zijn de juiste scriptitems in welke volgorde.

Find all

en dan.....hoe worden ze zichtbaar ?

En werkt het ook via de browser nadien ?

Jammer maar Omnis was iets duidelijker, is echter spijtig niet meer betaalbaar.

Kostte jaren geleden al duizenden guldens.

Link naar reactie
  • 0

Wat je zou kunnen doen is het volgende;

 

DataBase01

- matchveld

- inputveld

- global01 (= global tekstveld)

DataBase02

- matchveld

- global02 (= global tekstveld)

- klantnaam

- klantadres

 

KlantRelatie: DB02_matchveld <--> DB01_matchveld

 

Vervolgens maakt je in DB02 het script 'ZoekKlant' aan;

 

> Show All Records

> Set Field (global02, KlantRelatie::global01)

> Enter Find Mode

> Set Field (Klantnaam, global02)

> Set Error Capture [On]

> Perform find

> If [status (Current Error) = 401] (= indien er geen overeenkomstige records zijn)

Show Message ["Geen overeenkomsten gevonden"]

> End If

> Clear[select,"global02"]

 

Maak in DB01 het script 'Activeer' aan;

 

> Set Field (global01, inputveld)

> Perform Script[sub-scripts, External: "DB02"] (selecteer script 'ZoekKlant')

> Clear[select,"global01"]

 

Maak in DB01 een button en link die met het 'Activeer'-script.

 

In DB01 vul je in het inputveld een klantnaam in.

en druk op de button.

Link naar reactie
  • 0

global01 en global02 zijn 'global'-velden. Dit kan je specifiëren wanneer je nieuwe velden aanmaakt via het Define fields menupunt.

 

Eenvoudig uitgelegd zijn global-velden, velden waarvan de waarde voor het volledige bestand (dus ongeacht welk record geselecteerd is) dezelfde is.

 

Uit je vraagstelling leid ik inderdaad af dat je best eerst een goeie beginnershandleiding leest. Hier kan ik je weinig raad in geven.

 

Ikzelf ben er ooit aan begonnen door de Filemakerhandleiding eens grondig door te nemen. De fijnere details pik je dan onderweg wel op. :D

Link naar reactie
  • 0

Ben inderdaad begonnenom het verhaal eens uit te testen,

maar enkele items weet ik toch niet in te geven of de commando's

hiervoor zijn er bij 4.1 niet.

BV:

> Show All Records

Show all records is er niet.

> Set Field (global02, KlantRelatie::global01)

global 2 kan niet ingegeven worden, klantrelate enz wel

> Set Field (Klantnaam, global02)

Dit lukt niet omdat ik bij setfield maar 1 veldnaam kan ingeven.

Of zie ik niet alles wat er staat.....

Link naar reactie
  • 0

Jammer, maar het doet niet wat ik wil.

Nogeens:

In bestand 1 moet bij ingave een record worden aangemaakt de ingave in veld 1.

Dat gegeven wordt opgezocht in bestand 2.

Aanwezige gevonden records tonen.

Verder niets.

Nu springt de handel heen en weer en moet er steeds weer worden ingegeven.

Ik wil de gemaakte bestanden wel meesturen maar zie hier geen optie daarvoor.

Ik zal wel weer eens aan de slag gaan en kijken hoe dit simpel is te meken.

In Omnis was dit super simpel maar bij FM noet je wel een echte kronkel hebben om te kunnen programmeren, maar we zullen doorgaan.

Link naar reactie
  • 0

> Show All Records = de functie die er voor zorgt dat alle records in de database terug beschikbaar zijn tijdens het zoeken. (Je hebt wel gelijk; in versie 4 van FM heette dit nog anders. Ik ben echter vergeten hoe)

 

> Set Field (global02, KlantRelatie::global01) :

De eerste parameters binnen de haakjes en voor de separator (",") is het veld waarin je data wil plaatsen. De tweede parameter na de separator is de waarde die je in dat veld wil stoppen. (= in ons voorbeeld; de waarde van veld "global01" uit de andere database). Je kan deze waarde definiëren door in het scherm "script definition" de scriptstep: "Set Field (global02, KlantRelatie::global01)" te selecteren en vervolgens op de knop "Settings" te drukken.

Nu kan je definiëren wat de invulwaarde van veld "global02" moet zijn.

 

 

Succes

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