Gå til innhold

generere htmlside fra vb6


Anbefalte innlegg

Kan noen peke meg til en side, bok eller lignengde som forklarer hvordan jeg kan generere en html side fra vb6?

 

Jeg tenkte å bruke en htmlside i steden for rapporten som rapportgeneratoren lager, da denne er alt for lite konfigurerbar.

 

Jeg vil lage en matrise med datautplukk fra accessdatabasen til vb-aplikasjonen min.

dager bortover og måltider nedover. Så hvis det ligger "jogge" på mandag kl 10 i basen skal det komme på plass 1,1 osv...

 

Noe slikt:

           mandag tirsdag onsdag ...
kl 10
kl 11
...

 

Hørt noe om at man kan lage labels i en htmlfil og fylle ut disse med data fra vb, men har ikke funnet noen god side som forklarer nærmere.

 

[space]

Lenke til kommentar
Videoannonse
Annonse

Dersom du kan (X)HTML, burde det ikke være så altfor vanskelig å skrive en HTML-generator. En HTML-side er som kjent bygd opp av såkalte tagger - noe som lett kan skrives til en fil.

 

Tar vi utgangspunkt i oppgaven du beskriver, ville det være mest hensiktsmessig å skrive all data til en tabell. Dette kan du eksempelvis gjøre på følgende måte:

 

Public Sub GenerateHTML(sOutput As String, sCaption As String, aData As Recordset)

   Dim x As Field, Free As Long

   ' Ledig fil
   Free = FreeFile

   Open sOutput For Output As #Free

       ' Les fra de første linjene
       aData.MoveFirst
       
       ' Skriv de første linjene i HTML-filen
       Print #Free, "<!DOCTYPE HTML PUBLIC ""-//W3C//DTD HTML 4.01 Transitional//EN"">"
       Print #Free, "<html>" & vbCrLf & "<head>" & vbCrLf & "  <title>" & sCaption & "</title>" & vbCrLf & _
                    "<head>" & vbCrLf & vbCrLf & "<body>" & vbCrLf
       
       ' Sett inn en tabell
       Print #Free, "<table border=""1"">" & vbCrLf & "<tr>"
       
       ' Først skal kolonnenavnene innskrives
       For Each x In aData.Fields
           Print #Free, "<td>" & IIf(Len(x.Name) = 0, " ", x.Name) & "</td>"
       Next
       
       ' Avslutt denne rekken
       Print #Free, "</tr>"
       
       ' Gå igjennom alle rekkene
       Do Until aData.EOF
       
           ' Start en ny rekke i tabellen
           Print #Free, "<tr>" & vbCrLf
       
           For Each x In aData.Fields
               If IsNull(x.Value) Then
                   Print #Free, "<td> </td>"
               Else
                   Print #Free, "<td>" & x.Value & "</td>"
               End If
           Next
           
           ' Avslutt denne rekken
           Print #Free, "</tr>"
       
           aData.MoveNext
       Loop
   
       ' Avslutt tabellen og HTML-filen
       Print #Free, "</table>" & vbCrLf & "</body>" & vbCrLf & "</html>"

End Sub

 

Denne prosedyren kan brukes slik:

 

Dim Database As Database, Record As Recordset

Set Database = OpenDatabase("C:\db1.mdb")
Set Record = Database.OpenRecordset("Ukeaktiviteter")
   
GenerateHTML "C:\Test.html", "Dette er en test", Record

Lenke til kommentar

Bruk API-kallet ShellExecute for å åpne en fil i dens forhåndsbestemte applikasjon:

 

Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long

Const SW_SHOWNORMAL = 1

Private Sub cmdShowReport()

   ShellExecute Me.hwnd, vbNullString, "C:\Test.html", vbNullString, "C:\", SW_SHOWNORMAL

End Sub

Lenke til kommentar
' date='08/02/2005 : 15:59'] støttes i 98 -> XP ?

 

[space]

Såfremt operativsystemet støtter HTML-filer og kan dermed åpne den, tror jeg neppe dette vil by på problemer.

 

ShellExecute-funksjonen krever minst Windows NT 3.1 eller senere - Windows 95 og senere støttes også.

Lenke til kommentar

ShellExecute Me.hwnd, vbNullString, "C:\Test.html", vbNullString, "C:\", SW_SHOWNORMAL

 

Hvordan får jeg dette til å virke med relativ path?

 

I forhold til exe fila ligger htmlfila under rapport\test.html

 

Testa

 

ShellExecute Me.hwnd, vbNullString, "rapport\Test.html", vbNullString, "C:\", SW_SHOWNORMAL

 

og

 

ShellExecute Me.hwnd, vbNullString, "rapport\Test.html", vbNullString, "rapport\", SW_SHOWNORMAL

 

men det funka dårlig.

 

Noen variabel som gir installpath?

 

[space]

Lenke til kommentar

Du kan benytte variabelen App.Path for å erverve programmets lokalisasjon:

 

ShellExecute Me.hwnd, vbNullString, App.Path & IIF(Right(App.Path, 1) = "\", "", "\") & "rapport\test.html", vbNullString, "C:\", SW_SHOWNORMAL

 

Koden etter App.Path legger ganske enkelt til karakteren "\" dersom dette er nødvendig. Er stien til EXE-filen C:\Programmer\DittProgram, vil den legge til karakteren; dette skjer derimot ikke dersom stien er C:\.

Endret av aadnk
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...