Results 1 to 11 of 11

Thread: E-mail merge met database gegevens

  1. #1

    E-mail merge met database gegevens

    Hi,

    Vanuit mijn applicatie moeten 2 e-mail berichten verstuurd worden, zonder
    tussenkomst van de gebruiker, hiervoor gebruik ik Indy...werkt perfect.
    Deze e-mail dient tekst te bevatten inclusief database gegevens.
    Dit is te maken vanuit de source code MAAR men wil de tekst van de mail
    zelf aan kunnen passen.

    Nu zit ik te denken aan een soort MailMerge oplossing waarbij men een tekst
    bestand maakt, bijv. MailBestelling.txt met hierin de standaard tekst en daar
    waar database info moet komen bepaalde veldnamen. Je krijgt dan zoiets
    als :

    Beste [klantnaam],

    Hierbij bevestigigen wij de order van [dag]-[maand]-[jaar] onder
    ordernummer [ordernummer].....


    Bovenstaand is natuurlijk te realiseren...en dit tekst bestand kun je inlezen
    in de body, de database variabelen kun je van te voren genereren, maar
    hoe kun je nu de samenvoeging realiseren, dus het zoek-vervanging principe.

    Zijn er voorbeelden of kant en klare oplossing hoe dit te realiseren is.

    Greetz Peter

  2. #2
    Senior Member walterheck's Avatar
    Join Date
    Oct 2001
    Location
    Belo Horizonte, Brasil
    Posts
    4,212
    Ten eerste: heb je een reden om de tekst die je nu in je tekstbestand wil zetten niet ook gewoon in de database te zetten?
    Daarnaast kan je met de standaard string replace functies in Delphi al een hoop doen. Als je veel en snel wilt mergen zou je de fastStrings routines kunnen gebruiken. Zoek daarvoor even zelf (of wacht toit iemand hier wel de tijd heeft om een link te zoeken ) op NLDelphi of google.
    Nee, de Romeinen spraken geen ISO-8859-1 LATIN

  3. #3
    Hi,

    Het is geen probleem om de tekst in een database te zetten,
    dat is ook zo gerealiseerd omdat we toch een database hebben
    met een aantal settings, waar dit onderdeel van kan zijn.

    Weet nu naar aanleiding van je mail waar ik het ergens moet
    zoeken....thankx. Ik ga eerst ff aan de hand van je antwoord
    Googlen om te kijken wat de mogelijkheden zijn....en als iemand
    dit al een keer heeft uitgevonden hou ik me natuurlijk aanbevolen.

    Greetz
    Peter

  4. #4
    Ik maak zelf gebruik van het component TPageproducer tabblad Internet.
    Hiermee kan ik HTML pagina's samenvoegen met databasevelden.
    Een nadeel is dat je HTML pagina handmatig moet aanpassen HTML editors vinden #naam niet zo leuk.

  5. #5
    Bert,

    Bedankt.. zal eens kijken en zoeken naar een voorbeeld.
    Ik heb het met name nodig om e-mail berichten te maken, mag plain text
    zijn maar ook zeker html. Liefst dat alles onder water gebeurd zodat de
    gebruiker hier niet meer wordt lastig gevallen.

    Heb inmiddels iets gevonden wat mogelijk bruikbaar zou kunnen zijn :

    http://delphi.about.com/library/bluc/text/uc060901h.htm

  6. #6
    Je kunt kunt het met een SQL statement oplossen:

    Code:
    SELECT 'Geachte ' || KlantNaam || ',' 
    FROM Klanten 
    WHERE KlantId = :IdKlant;
    of met FormatStr:

    Code:
    Aanhef := FormatStr('Geachte %s,', [KlantNaam]);
    Mijn voorkeur zou hebben om de tekst op de server in een stored procedure op te halen met sql waarbij ook de template in delen opgeslagen is in de database. Als je het goed doet kan je dan altijd later een brief reconstrueren zonder dat je hem helemaal opslaat.

  7. #7
    TDelphiDeveloper Baldo's Avatar
    Join Date
    Apr 2002
    Location
    Hellevoetsluis
    Posts
    498
    Ik ben een artikel aan het schrijven om ditzelfde in PHP te doen. Let op: het is nog niet af dus er missen nog stukjes tekst, maar je zou wel kunnen kijken naar mijn oplossing om dit in Delphi te maken. Het lijkt sterk op wat pageproducers doen.
    Why is it that every time I think I'm holding all the cards, it turns out we're playing chess?
    Download Re-Depend, onmisbaar als je met packages build

  8. #8
    Let op dat wanneer je || gebruikt om je velden aan elkaar te plakken om zo je veld al compleet te krijgen er niet een veld NULL mag zijn, dan wordt je hele regel NULL

  9. #9
    TDelphiDeveloper Baldo's Avatar
    Join Date
    Apr 2002
    Location
    Hellevoetsluis
    Posts
    498
    @dees: dat ligt aan welke database je gebruikt, in bijvoorbeeld Oracle werkt dat wel gewoon.
    Why is it that every time I think I'm holding all the cards, it turns out we're playing chess?
    Download Re-Depend, onmisbaar als je met packages build

  10. #10
    En in de MS databases kun je IIF gebruiken om dit af te vangen..
    1+1=b

  11. #11
    Hi

    bedankt voor jullie suggesties, ik kan hier zeker mee vooruit
    en ga eens wat dingen uit proberen.

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •