Jump to content
  • 0

"Voeg toe aan factuur (line items)"-scriptje aub


Gido_

Question

Posted

"Dag Allemaal" :-)

 

Heel lang geleden... Ik zie toch nog "bekend volk" :-)

Ik heb zowat een jaar stilgelegen en krijg een vermoedelijk simpel probleempje maar niet opgelost...

 

In een facturatie database (met "line items"-bestand) heb ik een portaal dat uitgevoerde bestellingen laat zien. Wanneer ik op zo'n bestelling klik (scriptje), wil ik dat zij op de factuur terechtkomt. Dit lukt wanneer het slechts één item betreft, maar daarna overschrijft het scriptje steeds het vorige/juist gefactureerde-item, want het kiest altijd de bovenste lijn van het "line items"-portaal... Hoe kan ik een volgend item in de volgende *beschikbare* lijn van het "line items"-portaal plaatsen aub?

(met Go to Portal Row vind ik geen oplossing, omdat de actieve portaal tijdens scriptactivatie het portaal op de bestellingen is... Met een subscript in het "line items"-bestand werken, om daar de nieuwe facturaties toe te voegen is me vreemd genoeg ook nog niet gelukt...)

 

Hartelijk Dank voor elke hulp :-)

Gido_ (FM6)

23 answers to this question

Recommended Posts

  • 0
Posted (edited)

Even kijken of ik het goed begrepen heb: je hebt een bestand met uitgevoerde bestellingen, je hebt een bestand met facturen en je hebt een bestand met factuurregels. Met een script wil je gegevens uit het record met een uitgevoerde bestelling kopieren naar een nieuw record in het bestand met de factuurregels.

 

Je zegt dat je dit nu doet met een script, maar dat het script alleen de eerste keer werkt, en daarna mis gaat.

We zijn vast met z'n allen hier erg benieuwd naar dat script, dus als je dat wilt beschrijven, graag.

 

In het algemeen zou ik de bovenstaande situatie alsvolgt oplossen:

 

- Leg een relatie tussen de Factuurregels en Bestelregels, gebruik makend van het veld "Bestelregel_ID"

 

- Maak in Factuurregels een global aan. Daar gaan we de Bestelregel-ID in zetten waar we de gegevens van willen gebruiken om een nieuwe factuurregel mee te maken

 

- Maak een script in Bestelregels wat het Bestelregel_ID in de global in Factuurregels zet (je hebt hiervoor een permanente link nodig tussen de beide bestanden, een permanente relatie die je kunt krijgen door in beide bestanden de calculatie "1" te maken en daar de relatie op te leggen)

 

- Maak een script in Factuurregels wat een nieuw record maakt, in de Bestelregel-ID-veld het ID uit de global zet (hiermee heb je nu een nieuw, leeg record in Factuurregels met een ID van een bestelregel)

 

- Maak gebruik van de relatie (de set-field-scriptstap) om de gegevens uit de bestelregel in de factuurregel te zetten. Ik denk dat het factuurnummer hier ook bij hoort, dus vanzelf is nu ook de relatie tussen de factuur en de zojuist gemaakte factuurregel geregeld.

 

- Hier en daar wat bijschaven, debuggen en wat error-capturing doen, en dan zou ik klaar zijn

 

Laat me raden: het script wat je nu gebruikt staat in je factuur-bestand en goochelt met knipplak tussen de portal met bestelregels en de portal met factuurregels?

Edited by Guest
  • 0
Posted

:D Ik was bezig ongeveer hetzelfde antwoord in te typen.

 

De knip/plak optie is idd zeeer bewerkelijk, de beschreven methode is beproefd en helemaal oke, maarrrrrr....... :wink:

 

als je meerdere regels tegelijk wilt kopieren, kun je ook nog een importeeractie gebruiken. Hiervoor moet je eerst alle gerelateerde records in de bestellingen selecteren (goto related record, show only related) en vervolgens in je factuurregels een importscript starten dat deze regels ophaalt uit de bestellingen.

  • 0
Posted
Laat me raden: het script wat je nu gebruikt staat in je factuur-bestand en goochelt met knipplak tussen de portal met bestelregels en de portal met factuurregels?

Hélaba! :wink: Dat "knip en plak" "verboden" is, daarvan ben ik op de hoogte.

Je lijkt het verder goed begrepen te hebben (denk ik).

Het "scriptje" is in wezen niet meer dan een doodsimpele "set field". Wanneer ik de onderliggende bestelling aanklik op het portaal, wordt zij met een set field in de line items "geplakt". Daardoor wordt zij zichtbaar op het factuur. Maar bij herhaling met een volgend bestellings-item ontstaat geen 2e lijn op mijn factuur, maar wordt de eerste overschreven... :cry:

 

Tot daar al een snel antwoordje. Ik ga nu eerst je antwoord eens bestuderen en proberen uitvoeren. Alvast erg bedankt ervoor, en je hoort spoedig nog van mij :D

  • 0
Posted

@Rony: Bedankt, dat lijkt er idd iets van weg te hebben, maar toont mij momenteel toch veel ingewikkelder dan ik *denk* nodig te hebben; maar misschien kan het niet anders...

@Sanne:

Het lijkt mij dat ik die extra relaties niet nodig heb, maar uiteindelijk weer op hetzelfde probleem uitkom (juist datgene waar je geen details over vertelt, m.n. het "plakken" van de factuurnr...)

Het probleem is dat ik vanuit facturen geen factuurnr naar factuurregels kan "plakken", OMDAT de relatie facturen en factuurregels via dat vakje verloopt...(?)

Ook als ik met een subscriptje werk in factuurregels (New record & "plak" nieuwe factuurnr vanuit facturen), gebeurt dit gewoon niet...

Dat is de kern van het probleem, waar ik toch nog even een truukje voor blijf zoeken voordat ik "ingewikkeld ga doen" :?

  • 0
Posted

Het probleem is dat ik vanuit facturen geen factuurnr naar factuurregels kan "plakken", OMDAT de relatie facturen en factuurregels via dat vakje verloopt...(?)

Ook als ik met een subscriptje werk in factuurregels (New record & "plak" nieuwe factuurnr vanuit facturen), gebeurt dit gewoon niet...

Dat is de kern van het probleem, waar ik toch nog even een truukje voor blijf zoeken voordat ik "ingewikkeld ga doen" :?

dit is de oplossing (zie topic die ik ook hierboven aanduid):

voorzie een veld volgnummer in de beide "lijnen"-bestanden en leg daar een relatie tussen ...

bon-faktuur.zip

  • 0
Posted

Wederom bedankt, maar als slechts gevorderd beginner zie ik te weinig detail-overeenkomst met wat ik voor me heb...

Ik heb het echter opgelost door "allow creation of related records" voor het factuurlijnenportaal AF te zetten.

Nu kan (& moet) ik wél met een subscriptje werken dat het factuurnr erinplakt en doet wat ik wil :lol: Voor het invoegen van extra ad hoc items maak ik gewoon een paar globals met een "voeg in"-knop.

Ik vermoed dat dit voor mij perfect zal blijven voldoen, of voorzien jullie problemen? Uiteindelijk is alleen de live creatie vanuit het portaal afgezet, gecreëerde items kunnen er wél nog in aangepast worden. Het toont zelfs minder verwarrend en geeft een "veiligere" indruk 8)

  • 0
Posted
Wederom bedankt, maar als slechts gevorderd beginner zie ik te weinig detail-overeenkomst met wat ik voor me heb...

ik gebruik geen COPY & PASTE wegens te riskant.

 

de uitleg van wat ik eigenlijk doe, is samengevat hieronder.

kijk maar wat je er mee aankunt.

 

  • doe dit eerst :
    maak in je bestelbonlijnen en faktuurlijnen een numeriek veld aan dat automatisch wordt ingevuld met een serieel nummer. Leg een relatie tussen deze twee velden (relatienaam = SerieelNummer)
     
    vanuit de bestelbon :
    toon eerst alle gerelateerde records in je bestelbonlijnen (relatie=BestelbonID)
    maak via een setfield een faktuur aan
    zet het gemaakte faktuurnummer even opzij (heb je later nog nodig)
     
    vanuit de bestelbonlijnen :
    maak een loopje door alle bestelbonlijnen heen
    via een setfield maak je een faktuurlijn aan (relatie=SerieelNummer)
    via een setfield stel je het faktuurnummer in in de faktuurlijn (relatie=SerieelNummer)
    via een setfield breng je nu ook al je werboninfo over (relatie=SerieelNummer)
     

  • 0
Posted
Je zegt dat je dit nu doet met een script, maar dat het script alleen de eerste keer werkt, en daarna mis gaat.

We zijn vast met z'n allen hier erg benieuwd naar dat script, dus als je dat wilt beschrijven, graag.

Gido gebruikt de relatie die ligt op bestelbonid, en dan wijst de pointer in zijn bestelbonlijnen altijd naar het eerste record. maw dat eerste record wordt telkens overschreven. de eerste keer dat ie dat script draait wordt een lijn aangemaakt en bij de volgende keer wordt diezelfde lijn overschreven. de oplossing zit hem in het maken van een relatie tussen de geselecteerde bestelbonlijn en de bijhorende (overeenkomstige) faktuurlijn waarbij je in de relatie het maken van gerelateerde records toelaat. (hetgeen ik in de post hierboven beschrijf als de relatie SerieelNummer)

  • 0
Posted

Ik probeer nog even de situatie helder te krijgen. Ik zie dat Rony schrijft over bestelbon-regels/lijnen:

 

Je hebt een bestand met bestelbonnen en die bestelbonnen hebben bestelregels, dus er is ook een bestand met bestelregels. En je hebt een bestand met facturen en een bestand met factuurregels.

Ik kijk nu dus naar 4 bestanden.

 

Als ik naar een factuur kijk, dan zie ik een portal met factuurregels: de regels die bij de factuur horen.

 

Als ik verder naar de factuur kijk, zie ik dan een portal met bestelbonnen (die ieder voor zich weer bestelregels hebben die ik dan niet zie), of zie ik een portal met bestelregels (die bij bestelbonnen horen die ik dan niet zie)?

  • 0
Posted

Jawel Sanne, zelfs als ik "allow creation of related records" ook activeer *blijft* jouw systeem het blijkbaar doen! 8) Dit lijkt perfect wat ik zocht, ik ga dat morgen even verifiëren en uiteenrafelen; ik zie toch al nergens copyrights tenminste... :wink:

 

Rony, ik werk dus inderdaad zonder bestellijnen en met slechts 3 files, dus daarom is het op het eerste zicht wat te ingewikkeld voor mijn huidige behoefte; maar ik ga het sowieso ook nog eens bekijken :D

 

In elk geval erg bedankt voor de supersnelle hulp allemaal :D

  • 0
Posted

Ik doe dit ongeveer als Sanne:

Eén layout met twee portalen (bestellingenregels en factuurregels)

  • een knop in de bestellingregels portaal met een subscript om id nummer in een globaal veld te zetten

Verder gebruik ik geen subscripts en blijf in hetzelfde bestand:


  • dan ga ik naar een veld in de factuurregels portaal om de juiste portaal te kiezen voor de volgende stap:
    vervolgens ga ik naar de laatste regel in de factuurregels portaal (dat is de lege regel die klaarstaat om een nieuw record te maken in factuurregels)
    en gebruik een setfield (via de #1 relatie en de global) om een nieuwe factuurregel te maken en het bestellingregel id in de factuurregels te krijgen

 

En ik doe dat net als Sanne met.......... jawel: ligfietsen, vouwfietsen én -die was je vergeten Sanne ;-)- kinderkarren!

  • 0
Posted
vervolgens ga ik naar de laatste regel in de factuurregels portaal (dat is de lege regel die klaarstaat om een nieuw record te maken in factuurregels) en gebruik een setfield (via de #1 relatie en de global) om een nieuwe factuurregel te maken en het bestellingregel id in de factuurregels te krijgen

Dat is inderdaad wat ik van in den beginne vroeg, maar niet klaarkrijg... Hoe ga je naar een (volgende) beschikbare factuur-portaalregel, wanneer je scriptknop zich in een andere relatie bevindt? (op het bestellingsportaal)

 

Ik heb het nu ook erg kunnen vereenvoudigen hier, maar werk toch nog steeds met een extern 'New & set factuurnr'-scriptje dat ik dacht te kunnen vermijden...

  • 0
Posted (edited)
en gebruik een setfield (via de #1 relatie en de global) om een nieuwe factuurregel te maken en het bestellingregel id in de factuurregels te krijgen

 

Ja, ik snap je, en de gegevens in de factuurregel zijn opzoekwaarden naar de bestelregel?

 

Ik heb het opzetje hierbij gedaan. De 1-relatie heb je dan overigens niet nodig.

S2_Factuur_Bestelling.zip

Edited by Guest
  • 0
Posted
Hoe ga je naar een (volgende) beschikbare factuur-portaalregel, wanneer je scriptknop zich in een andere relatie bevindt?

 

Gido, dat doe je door eerst naar een veld van die portal te gaan. FileMaker zit dan in dat portaal. En dan ga je naar de laatste portalrow, die, als je de relatie hebt ingesteld op "records maken toegestaan" een nieuw, leeg, record is. Als je daar dan een waarde inplempt (de global die je eerst hebt opgehaald) dan wordt er een nieuw, gerelateerd record gemaakt.

 

Zie opzetje vorige post.

 

Ik ben wel benieuwd waarom je zo tegen het aanroepen van een extern script zou zijn: wat is daar het probleem mee?

 

Frank, je methode werkt natuurlijk. Maar mag ik er ook voorzichtig mijn mening over geven?

  • 0
Posted
Ik ben wel benieuwd waarom je zo tegen het aanroepen van een extern script zou zijn: wat is daar het probleem mee?

Geen psychologisch probleem mee, maar het vereist al naargelang wel een boel extra globals en gedoe. Veel veel makkelijker om simpelweg de bestellingsinfo (die ik "in handen heb" door op een bestelregel te drukken) in het portaal van de factuurregels te kunnen "plakken". Dit ga ik dus nog eens proberen, het zou de "ultieme oplossing" zijn toch 8)

 

Het is trouwens toch wat ik eerst vroeg. Is het niet "grappig" hoe men dikwijls eerst met ingewikkelde oplossingen komt aandragen? :wink::P

  • 0
Posted

OK, ik zie dat dit normaal gezien de oplossing zou moeten zijn. Maar...: het werkt zeer onbetrouwbaar. Ca 30% van de tijd selecteert het de eerste portal row en overschrijft wat daar stond. Nochtans staat het script op "last portal row". Ik ga ook eerst naar een veld uit dat portaal en ik probeerde al allerlei varianten waarbij het veld of portaal eerst al dan niet volledig geselecteerd wordt. Ook "exit record" heb ik al geprobeerd... :?

  • 0
Posted

Gido, bedoel je dat het 2e opzetje dat ik heb gepost niet werkt, of dat wat je in je eigen applicatie hebt gemaakt niet goed werkt?

 

Met elke versie FileMaker Pro werk je?

 

Ik heb mijn 2e opzetje (dus niet de "ingewikkelde") alleen uitgetest in 6.0v4.

  • 0
Posted

mm, dat opzetje heb ik ook wel interesse in (kamp met het zelfde probleem) maar als newbie hier is het me nog niet duidelijk waar ik dit dan download. Wie help even??

Thanks in advance

Fileman

 

 

Sorry, ik zie het al.

Je moet dus wel ingelogd zijn ;-)

  • 0
Posted

Heb hetzelfde probleem gehad. Ik heb een script gemaakr die alsvolgt gaat:

Eerst in het portaal bestelbonID kopiëren.

Vervolgens ga naar veld BestelbonID in het portaal van de factuurlijnen

selecteer portaal rij eerste

selecteer portaalrij laatste

selecteer portaalrij volgende

plakken in veld bestelbonID

 

Zo lukt het bi jmij.

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