Prikazi cijelu temu 22.11.2021 00:11
zxz Van mreze
Administrator
Registrovan od:03.02.2009
Lokacija:Tuzla


Predmet:Re:XML i access 2003
PreuzmiIzvorni kôd (Visual Basic):
  1. Function Zapisxml()
  2. Dim Tabele(0 To 4) As String ' dimenzionisane 4 memorijske pod nazivom tabele
  3. Dim Putanja As String
  4. Dim XmlFile As String
  5. Dim Temp As String
  6.  
  7. Tabele(1) = "ZAGLAVLJE" ' ?osnovna tabela ' Upisano u memrijsku Tabele(1)  vrijednost "Zahtjev"
  8. Tabele(2) = "OBAVEZA"  ' Pridodata tabela--Upis u drugu memorijsku
  9. Tabele(3) = "DL1"  ' Pridodata tabela--Upis u drugu memorijsku
  10. Tabele(4) = "DL2"  ' Pridodata tabela--Upis u drugu memorijsku
  11. Putanja = "d:\" 'Putanja zapisa bez imena filea Upis u mem. putanja
  12. XmlFile = DMin("JIB", "Radnja") & ".xml" ' Ime xml fajla Upis u mem xmlfile
  13.  
  14. 'export u xml fajl pod nazivom sys.dll na putanji iz memorijske putanja
  15.    Set objOtherTbls = Application.CreateAdditionalData
  16.     objOtherTbls.Add Tabele(2)
  17.     objOtherTbls.Add Tabele(3)
  18.     objOtherTbls.Add Tabele(4)
  19.  
  20. Application.ExportXML acExportTable, Tabele(1), Putanja & "sys.dll", , , , acUTF8, acPersistReportML, , objOtherTbls
  21.  
  22. Close #1 'Zatvori sekvencialni fajl 1
  23. Close #2 'Zatvori file 2
  24. 'Ovo se sam stavio samo zato ako dodje do greske pa pokrenes proceduru a ne dodje do kraja onda znaju ostati otvoreni fajlovi pa procedura poslije nece da radi
  25. 'Inace kada se zavrsi i istestira procedura moze se i brisati.
  26.  
  27. Open Putanja & "sys.dll" For Input As 1 ' Otvori fajl pod nazivom Sys.dll kao 1 i to za citanje
  28. Open Putanja & XmlFile For Output As 2 '' Otvori fajl pod nazivom stampatinefiskalnidokument.xm kao 2 i to za cpisanje
  29. 'Znaci imas otvorena dva fajla jedan za citanje koji je predhodno napravila procedura accessa ExportXML
  30.    While Not EOF(1) 'Pocetak while petlje koja cita file 1 tj. sys.dll
  31. START:
  32.     Line Input #1, Temp ' cita jedan red iz fajla i zapisuje u mem. variablu koju smo dimenzionisali pod nazivom temp
  33.        If Left(Temp, 9) = "<dataroot" Then ' ovo sam prije objasnio.
  34.        'Znaci ako se u Temp u redu slijeva nalazi zapis <dataroot> tada umjesto toga upisi dole ispod
  35.        Temp = "<PRIJAVA_1002>"
  36.         End If
  37.         If Left(Temp, 11) = "</dataroot>" Then ' ovo sam isto objasnio
  38.        Temp = "</PRIJAVA_1002>"
  39.         End If
  40.         If Left(Temp, 35) = "<POSLODAVAC_KTI>0</POSLODAVAC_KTI>" Then
  41.         Temp = "<POSLODAVAC_KTI/>"
  42.         End If
  43.         If Left(Temp, 35) = "<POSLODAVAC_KTI>1</POSLODAVAC_KTI>" Then
  44.         End If
  45.         If Left(Temp, 80) = "<NACIN_OBAVLJANJA_SDJELATNOSTI>0</NACIN_OBAVLJANJA_SDJELATNOSTI>" Then
  46.         Temp = "<NACIN_OBAVLJANJA_SDJELATNOSTI/>"
  47.         End If
  48.         If Left(Temp, 80) = "<PO_NALOGU_INSPEKTORA>0</PO_NALOGU_INSPEKTORA>" Then
  49.         Temp = "<PO_NALOGU_INSPEKTORA/>"
  50.         End If
  51. '--------------------------------------------------------------------------------
  52. Dim tmp As String
  53. '--------------------------------------------------------------------------------
  54.        If InStr(tmp, Mid(Temp, 2)) > 0 Then
  55.         Line Input #1, Temp
  56.         tmp = Temp
  57.         GoTo START
  58.         End If
  59.  
  60. '----------------------------------------------------------------------------------
  61.        Print #2, tmp ' zapisi vrijednost temp u file 2
  62.        tmp = Temp
  63. '---------------------------------------------------------------------------------
  64.    Wend ' Kraj petlje
  65. Close #1 ' zatvori fajl 1
  66. Close #2 'Zatvori fajl 2
  67. End Function

Podrska samo putem foruma, jer samo tako i ostali imaju koristi od toga.