09. november 2004 - 13:33Der er
11 kommentarer og 3 løsninger
Dynamisk merge af billede
Hvordan kan jeg includere et dynamisk billede i et flettefelt?
Jeg kan se funktionen Includepicture men kan den den kun tage den samme fil hver gang fx c:\input.jpg? Eller kan jeg lave det dynamisk dvs. ved kunde 1: c:\kunde1.jpg og ved kunde 2: c:\kunde2.jpg?
Hvis nogen kan beskrive Includepicture kan en løsning også være at overskrive input.jpg hver gang jeg fletter, men det ville være rarest blot at angive en sti til hvert dokument.
både og, fletter via en automation fra et ekstern program, men vil gerne kunne skrive forskellige billeder ud afhængig af situationen. F.eks. ved udskrift af produktkort, hvor hvert produkt oftest vil have sit eget billede. Nogle produkter har derfor et billede (en sti) og denne ville jeg gerne merge ind i word til Includepicture eller anden løsning der får billedet på...
Indsæt først et Includepciture felt. Tryk dernæst Skift+F9 for at vise feltkoderne. Placer markøren mellem Includepicture og Mergeformat, og indsæt et Megerfield her, fx
INCLUDEPICTURE {MERGEFIELD ”Billed”} MERGEFORMAT}
"Billed" skal rettes til navnet på det felt i en database eller flettefil, hvor stien til billederne er gemt.
Nu kan du gennemføre en almindelig brevfletning, så udskiftes dine MERGEFIELDS med stien til det pågældende billede, og i det færdige dokument vises nu:
Fejl! Filnavn er ikke anført.
de steder, hvor billederne skulle vises. Marker hele dokumentet (CTRL+A) og tryk F9 for at opdatere dine felter. Så indsætters billederne på rette plads. Tryk pil-tast for at slukek markeringen.
Men husk, at INCLUDEPICTURE gerne vil have stien stående med dobbelte backslashes, når der skal flettes, fx c:\\tb\\u1.jpg
Jeg tvivler ikke på at ovenstående er korrekt, men jeg tror ikkke jeg kan gøre det fra den automation jeg benytter. Jeg tilgår de enkelte flette felter i en rækkefølge baseret på et index. Er mit billede felt fx. det tredje felt, kan jeg ikke tilgå det interne felt via index 4. Og benytter jeg index 3 så overskriver den hele feltet med stien alene. Kan man lave et felt i documentet som ikke kan ses hvori stien kunne skrives, og sætte includepicture til at pege på det? Andre løsninger
Den sti som du skriver at alle billeder har, kommer den med ind i dokumentet efter du har flettet? Jeg tænker her på at lave en makro, der finder alle disse stier og sætter et billede ind i stedet for.
mmm det ved jeg ikke om jeg forstår... Når jeg kalder min automation:
TemplateName := 'c:\skabtest.dot'; CREATE(wrdApp); wrdApp.Visible := TRUE; IF NOT EXISTS(TemplateName) THEN ERROR ('ErrMsgFileNotFound', TemplateName); wrdDoc := wrdApp.Documents.Add(TemplateName); wrdApp.ActiveDocument.Fields.Update; // With Fields in Word wrdRange := wrdApp.ActiveDocument.Fields.Item(1).Result; wrdRange.Text := 'Kunde: Toby Corp.'; wrdRange := wrdApp.ActiveDocument.Fields.Item(2).Result; wrdRange.Text := 'Adresse: Vejen 10'; wrdRange := wrdApp.ActiveDocument.Fields.Item(3).Result; wrdRange.Text := 'c:\\input.jpg';
starter word op og felterne bliver opdateret (kan ses på skærmen, de skifter lige et øjeblik efter.)
Hvad mener du med den sti alle billeder har? Typisk man nok have mulighed for to billeder i dokumentet. Jeg ville derfor gerne kunne angive stien til hvert enkelt. Alternativet bliver at overskrive de samme to filer hver gang.
Jeg ser tre umiddelbare problemer med makroer? -Sikkerhed/rettighed/indstillinger? -distribution? Kan den følge med skabelonen? -Kørsel fra automation? Eller afvikles den automatisk ved åbning?
Hvor får du kundeoplysningerne fra - det ser ud som om de er hard-kodet.
Angående dine problmer med makroer: Sikkerhed: Det er ikke Word der skal tjekke farlige makroer - det skal dit antivirusprogram. Distribution: En makro kan sagtens følge med en skabelon. Kørsel: Kald makroen "AutoNew" og den vil starte, når der dannes et nyt dokumnet på baggrund af skabelonen.
jep de er hardcodet. Det skyldes at jeg blot skal lave en template for fletning. Programmet er Navision og vi skal blot finde ud af hvad der er teknisk muligt Navision<->Word.
Word kan sættes op til at blokere makroer. Dette kan så give problemer på den enkelte klient. Og hvis makroen så bliver kaldt inden mine felter bliver opdateret, hvad er det så værd?
Så det er ikke kun dig der skal bruge skabelonen, men et helt firma - OK. Men den kode du kører må vel også være en makro eller er det kode i Navision? Jeg kender dog ikke Navision nok til at kunne rådgive dig i, hvilke teknikker der vil være bedre at bruge i Navision kontra Word.
Hvis den kode du har indsat ovenfor køres fra Navision (hvilket den sikkert gør), så kunne en makro, der skifter tekst med stivej og filnavn ud, køres lige efter i samme automation - på den måde kommer du udenom eventulle begrænsninger i Word.
Vi benytter en standard automation (som bliver installeret i windows når man installerer Offie/Word). At det er fra Navision er for så vidt ligemeget. Automationen stiller et interface til rådighed fx: wrdApp.Visible := TRUE;
Dette minder måske om en makro, såvidt jeg ved er en automation active x kode i en ocx fil eller en dll fil. Kan man have et skjult flettefelt som bliver indsat i includepicture?
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.