Avatar billede hede98 Nybegynder
13. april 2003 - 15:13 Der 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.

Word filen ligger på webserveren..
Avatar billede left Nybegynder
13. april 2003 - 17:07 #1
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.

Word:
http://www.hotscripts.com/ASP/Scripts_and_Components/Documents/

Excel:
http://www.hotscripts.com/ASP/Scripts_and_Components/Excel_and_ASP/

Find selv en der passer dig :-)
Avatar billede mortrr Praktikant
13. april 2003 - 17:44 #2
Du kunne også scripte word i klienten, og lave søg/erstat på den måde.
Det kræver selvfølgelig at brugeren giver lov til det.
Avatar billede hede98 Nybegynder
13. april 2003 - 18:41 #3
hvad mener du med scripte word i klienten, brugeren får/giver alle de rettigheder der kræves.
Det eneste krav er at den skal åbne et word program.
Avatar billede mortrr Praktikant
13. april 2003 - 19:03 #4
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
Avatar billede hede98 Nybegynder
13. april 2003 - 19:08 #5
Hvordan kalder jeg koden og hvor i mit asp dokument skal jeg indsætte det..
Avatar billede mortrr Praktikant
13. april 2003 - 19:12 #6
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.
Avatar billede hede98 Nybegynder
13. april 2003 - 19:24 #7
ok... men hvis jeg laver et tekst link, hvordan skal den kalde funktionen
Avatar billede mortrr Praktikant
13. april 2003 - 19:35 #8
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:

<a href="#Åben dokument" onclick="window.open('worddoc.asp?ID=123','word');return false">Klik her</a>

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
%>
Avatar billede hede98 Nybegynder
13. april 2003 - 20:54 #9
Jeg har alle info på den side jeg står på....
Avatar billede mortrr Praktikant
14. april 2003 - 10:26 #10
Så kan du køre scriptet med det samme.

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
%>
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester