13. april 2003 - 15:13Der er
9 kommentarer og 1 løsning
Genere word fil, med oplysninger fra access via ASP
Hej
Jeg har et kunde systemet kørende, som er lavet i ASP og med en Access database. Når jeg nu står på et bestemt kundekort, skal jeg kunne trykke på en knap som starter et standard brev i word og indsætter firmanavn, adresse o.s.v.
Det burde ikke være noget problem at lave. Men inden du kan komme videre, må du finde en komponent til din webserver, som skal installeres. Derfor skal du have fysisk adgang til serveren. Disse komponenter kan findes under GPL-licenser, hvorfor de er gratis.
I klienten kan du med vbscript (lidt nemmere i det her tilfælde end at bruge javascript), oprette er nyt Word-object, åbne et dokument fra fx en web-server og køre et antal søg/erstat.
Som fx:
On Error Resume Next Set objWord = CreateObject("Word.Application") if Err.Number=0 then objWord.Visible = true Set newDoc=objWord.Documents.Open("sti til din skabelon") newDoc.focus Set docRange=newDoc.Content Set docFind=docRange.Find docFind.Execute "FirmaNavn",,,,,,,,,"<%=rsSet.Fields("FirmaNavn")%>",2 newDoc.SaveAs "sti og navn til dokument" else msgbox "Du skal give rettigheder til scripting af activex not marked safe for scripting" end if
Det er ikke asp. Det er client-side script (som jeg også skrev tidligere). Men scriptet laves fra asp, for at få data med ud.
Så fx:
<script language=vbscript> sub StartWord On Error Resume Next Set objWord = CreateObject("Word.Application") if Err.Number=0 then objWord.Visible = true Set newDoc=objWord.Documents.Open("sti til din skabelon") newDoc.focus Set docRange=newDoc.Content Set docFind=docRange.Find docFind.Execute "FirmaNavn",,,,,,,,,"<%=rsSet.Fields("FirmaNavn")%>",2 newDoc.SaveAs "sti og navn til dokument" else msgbox "Du skal give rettigheder til scripting af activex not marked safe for scripting" end if end sub </script> <body onload="StartWord()">
Som du kan se har jeg sat firmanavn ind i scriptet fra databasen.
Det kommer an på om du har alle informationer (det der skal ind i dokumentet) på den side du står på nu. Hvis ikke, så kunne du åbne et nyt vindue, som henter informationerne, starter word, og lukker igen:
worddoc.asp: <% ' Åben databasen Set con= ..... bla bla
Set rsSet=con.Execute("SELECT * FROM Firmaer WHERE FirmaID=" & Request("ID"))
if not rsSet.EOF then %><html> <script language=vbscript> sub StartWord On Error Resume Next Set objWord = CreateObject("Word.Application") if Err.Number=0 then objWord.Visible = true Set newDoc=objWord.Documents.Open("sti til din skabelon") newDoc.focus Set docRange=newDoc.Content Set docFind=docRange.Find docFind.Execute "FirmaNavn",,,,,,,,,"<%=rsSet.Fields("FirmaNavn")%>",2 newDoc.SaveAs "sti og navn til dokument" else msgbox "Du skal give rettigheder til scripting af activex not marked safe for scripting" end if window.close end sub </script> <body onload="StartWord()"></body></html><% else %> <html><body onload="window.close()"></body></html> <% end if rsSet.Close %>
Noget der ligner: <% ' Åben databasen Set con= ..... bla bla
Set rsSet=con.Execute("SELECT * FROM Firmaer WHERE FirmaID=" & Request("ID"))
if not rsSet.EOF then %><script language=vbscript> sub StartWord On Error Resume Next Set objWord = CreateObject("Word.Application") if Err.Number=0 then objWord.Visible = true Set newDoc=objWord.Documents.Open("sti til din skabelon") newDoc.focus Set docRange=newDoc.Content Set docFind=docRange.Find docFind.Execute "FirmaNavn",,,,,,,,,"<%=rsSet.Fields("FirmaNavn")%>",2 newDoc.SaveAs "sti og navn til dokument" else msgbox "Du skal give rettigheder til scripting af activex not marked safe for scripting" end if end sub </script> <a href="#Åben dokument" onclick="StartWord();return false">Klik her</a> <% end if rsSet.Close %>
Synes godt om
Ny brugerNybegynder
Din løsning...
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.