Warning: Illegal string offset 'status' in /home2/icentarb/public_html/icentar/print.php on line 190

Warning: Illegal string offset 'status' in /home2/icentarb/public_html/icentar/print.php on line 190

Warning: Illegal string offset 'status' in /home2/icentarb/public_html/icentar/print.php on line 190

Warning: Illegal string offset 'status' in /home2/icentarb/public_html/icentar/print.php on line 190

Warning: Illegal string offset 'status' in /home2/icentarb/public_html/icentar/print.php on line 190

Warning: Illegal string offset 'status' in /home2/icentarb/public_html/icentar/print.php on line 190

Warning: Illegal string offset 'status' in /home2/icentarb/public_html/icentar/print.php on line 190

Warning: Illegal string offset 'status' in /home2/icentarb/public_html/icentar/print.php on line 190
iCentar » Racunari i oprema » Programirannje i baze podataka » Access » XML i access 2003
zxz 24.07.2011 17:38
Predmet:Re: XML i access 2003

Citat:
A treablo bi mi prije <Parametar> da otvori novi element koji se zove <Parametri>...
Jeli i da zatvori poslije Parametar?

EmirSuvalic 24.07.2011 19:57
Predmet:Re: XML i access 2003

zakatit cu bazu i Å¡emu i xml primjer
Prilozi:
POS.zip (Velicina datoteke:26.33 KB)

zxz 24.07.2011 21:09
Predmet:Re: XML i access 2003

Evo probaj ovo.
Mozda bude koja greskica jer sam kucao direktno ovdje.
Vidi jeli to to sto ti treba.
PreuzmiIzvorni kôd (Visual Basic):
  1. Function Zapisxml()
  2. Dim Tabele(1 To 2) As String
  3. Dim Putanja As String
  4. Dim XmlFile As String
  5. Dim Temp As String
  6.  
  7. Tabele(1) = "Zahtjev" ?osnovna tabela
  8. Tabele(2) = "Parametar"  ' Pridodata tabela
  9. Putanja = "c:\Tring\xml\" 'Putanja zapisa bez imena filea
  10. XmlFile = "stampatinefiskalnidokument.xml" ' Ime xml fajla
  11.  
  12. Application.ExportXML acExportTable, Tabele(1), Putanja & "sys.dll", , , , acUTF8, , , Tabele(2)
  13.  
  14. Close #1
  15. Close #2
  16.  
  17. Open Putanja & "sys.dll" For Input As 1
  18. Open Putanja & XmlFile For Output As 2
  19.     While Not EOF(1)
  20.     Line Input #1, Temp
  21.         If Left(Temp, 9) = "<dataroot" Then
  22.         '<Zahtjev xmlns:xsi="http://www.w3.org/...instance" xmlns:xsd="http://www.w3.org/...Schema">
  23.        '<Zahtjev xmlns:xsi="http://www.w3.org/...instance" xmlns:xsd="http://www.w3.org/...Schema">
  24.        Temp = "<Zahtjev xmlns:xsi=" & Chr(34) & "http://www.w3.org/...instance" & Chr(34) _
  25.         & " xmlns:xsd=" & Chr(34) & "http://www.w3.org/...Schema" & Chr(34) & ">"
  26.         End If
  27.         If Left(Temp, 11) = "</dataroot>" Then
  28.         Temp = "</Zahtjev>"
  29.         End If
  30.         If Left(Temp, 11)="<Parametar>" Then
  31.             Print #2, "<Parametri>"
  32.         end if
  33.     Print #2, Temp
  34.         If Left(Temp, 12)="</Parametar>" Then
  35.         Print #2, "</Parametri>"
  36.         end if
  37.     Wend
  38. Close #1
  39. Close #2
  40. End Function

EmirSuvalic 24.07.2011 22:04
Predmet:Re: XML i access 2003

To je to druže, ti si kralj

zxz 24.07.2011 23:16
Predmet:Re: XML i access 2003

E sad to sve provjeri je li dobro, da nebi opanke derao djaba.
Mozes provjeriti ovdje...

EmirSuvalic 24.07.2011 23:26
Predmet:Re: XML i access 2003

Ako moze još jedno pitanje i necu vise obecavam, može li komentar ovih linija koda

If Left(Temp, 11)="<Parametar>" Then
Print #2, "<Parametri>"
end if
Print #2, Temp
If Left(Temp, 12)="</Parametar>" Then
Print #2, "</Parametri>"
end if[list=ol][/list]

zxz 24.07.2011 23:38
Predmet:Re: XML i access 2003

Forum sluzi za to da se postavljaju pitanja i naravno ako naravno ako nesto mislis da znas sto drugi mozda neznaju da napises.
U temp se ucitava jedan red podataka
If Left(Temp, 11)="<Parametar>" Then' ako je lijevo 11 karaktera u tempu jednako "<Parametar>" tada uradi sledece
Print #2, "<Parametri>" upisi u fajl 2 "<Parametri>"
end if
Print #2, Temp ' upisi u fajl 2 iz memorijske temp koja cita iz fajla 1 tj iz sys.dll
If Left(Temp, 12)="</Parametar>" Then -ovo dole ostalo je isto samo drugi uslov
Print #2, "</Parametri>"
end if[list=ol][/list]

EmirSuvalic 25.07.2011 00:11
Predmet:Re: XML i access 2003

Kako sam ja skonato onaj tvoj prethodni kod ja sada kada dodajem nove linije samo prepravljam sta mi gdje pase evo primjer koji sam ja probao:

If Left(Temp, 9) = "<artikal>" Then
Print #3, "<RacunStavka>"
End If
Print #3, Temp
If Left(Temp, 10) = "</artikal>" Then
Print #3, "</RacunStavka>"
End If

zxz 25.07.2011 00:33
Predmet:Re: XML i access 2003

Objasnjenje cijele procedure Zapisixml

PreuzmiIzvorni kôd (Visual Basic):
  1. Function Zapisxml()
  2. Dim Tabele(1 To 2) As String ' dimenzionisane dvije memorijske pod nazivom tabele
  3. Dim Putanja As String
  4. Dim XmlFile As String
  5. Dim Temp As String
  6.  
  7. Tabele(1) = "Zahtjev" ' ?osnovna tabela ' Upisano u memrijsku Tabele(1)  vrijednost "Zahtjev"
  8. Tabele(2) = "Parametar"  ' Pridodata tabela--Upis u drugu memorijsku
  9. Putanja = "c:\Tring\xml\" 'Putanja zapisa bez imena filea Upis u mem. putanja
  10. XmlFile = "stampatinefiskalnidokument.xml" ' Ime xml fajla Upis u mem xmlfile
  11.  
  12.  
  13. 'export u xml fajl pod nazivom sys.dll na putanji iz memorijske putanja  
  14. Application.ExportXML acExportTable, Tabele(1), Putanja & "sys.dll", , , , acUTF8, , , Tabele(2)
  15.  
  16. Close #1 'Zatvori sekvencialni fajl 1
  17. Close #2 'Zatvori file 2
  18. '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
  19. Inace kada se zavrsi i istestira procedura moze se i brisati.
  20.  
  21. Open Putanja & "sys.dll" For Input As 1 ' Otvori fajl pod nazivom Sys.dll kao 1 i to za citanje
  22. Open Putanja & XmlFile For Output As 2 '' Otvori fajl pod nazivom stampatinefiskalnidokument.xm kao 2 i to za cpisanje
  23. 'Znaci imas otvorena dva fajla jedan za citanje koji je predhodno napravila procedura accessa ExportXML
  24.    While Not EOF(1) 'Pocetak while petlje koja cita file 1 tj. sys.dll
  25.    Line Input #1, Temp ' cita jedan red iz fajla i zapisuje u mem. variablu koju smo dimenzionisali pod nazivom temp
  26.        If Left(Temp, 9) = "<dataroot" Then ' ovo sam prije objasnio.
  27.        'Znaci ako se u Temp u redu slijeva nalazi zapis <dataroot> tada umjesto toga upisi dole ispod
  28.        Temp = "<Zahtjev xmlns:xsi=" & Chr(34) & "http://www.w3.org/...instance" & Chr(34) _
  29.         & " xmlns:xsd=" & Chr(34) & "http://www.w3.org/...Schema" & Chr(34) & ">"
  30.         End If
  31.         If Left(Temp, 11) = "</dataroot>" Then ' ovo sam isto objasnio
  32.        Temp = "</Zahtjev>"
  33.         End If
  34.     Print #2, Temp ' zapisi vrijednost temp u file 2
  35.    Wend ' Kraj petlje
  36. Close #1 ' zatvori fajl 1
  37. Close #2 'Zatvori fajl 2
  38. End Function

kako vidis fajl 3 ne postoji i javit ce ti gresku.

Broj 1 i 2 su brojevi za otvorene fajlove

Branestan 20.11.2021 00:04
Predmet:Re:XML i access 2003

Pozdrav!

Iskoristio sam postojeći kod i prilagodio svojim tabelama ali nikako ne uspijevam dodati podatke iz druge tabele (a trebam dodati i drugu i treću - OBAVEZE i DL1).

Dobijem ovo:
<?xml version="1.0" encoding="UTF-8"?>
<PRIJAVA_1002>
<ZAGLAVLJE>
<VRSTA_PRIJAVE>MPO1</VRSTA_PRIJAVE>
<TIP_PRIJAVE>O</TIP_PRIJAVE>
<JIB>4401295880006</JIB>
<SIFRA_OPSTINE>028</SIFRA_OPSTINE>
<PORESKI_PERIOD_OD>01.09.2021</PORESKI_PERIOD_OD>
<PORESKI_PERIOD_DO>30.09.2021</PORESKI_PERIOD_DO>
<ISPLATNI_PERIOD_OD>01.09.2021</ISPLATNI_PERIOD_OD>
<ISPLATNI_PERIOD_DO>30.09.2021</ISPLATNI_PERIOD_DO>
<POSLODAVAC_KTI/>
<NAMJENA_PRIJAVE>2</NAMJENA_PRIJAVE>
<ISPLATA_PRIMANJA>1</ISPLATA_PRIMANJA>
<NACIN_OBAVLJANJA_SDJELATNOSTI/>
<PO_NALOGU_INSPEKTORA>0</PO_NALOGU_INSPEKTORA>
</ZAGLAVLJE>
</PRIJAVA_1002>

A treba da izgleda ovako:
<?xml version="1.0" encoding="UTF-8"?>
<PRIJAVA_1002>
<ZAGLAVLJE>
<VRSTA_PRIJAVE>MPO1</VRSTA_PRIJAVE>
<TIP_PRIJAVE>O</TIP_PRIJAVE>
<JIB>4401295880006</JIB>
<SIFRA_OPSTINE>028</SIFRA_OPSTINE>
<PORESKI_PERIOD_OD>01.09.2021</PORESKI_PERIOD_OD>
<PORESKI_PERIOD_DO>30.09.2021</PORESKI_PERIOD_DO>
<ISPLATNI_PERIOD_OD>01.09.2021</ISPLATNI_PERIOD_OD>
<ISPLATNI_PERIOD_DO>30.09.2021</ISPLATNI_PERIOD_DO>
<POSLODAVAC_KTI/>
<NAMJENA_PRIJAVE>2</NAMJENA_PRIJAVE>
<ISPLATA_PRIMANJA>1</ISPLATA_PRIMANJA>
<NACIN_OBAVLJANJA_SDJELATNOSTI/>
<PO_NALOGU_INSPEKTORA>0</PO_NALOGU_INSPEKTORA>
</ZAGLAVLJE>
<OBAVEZA>
podaci iz tabele OBAVEZE
</OBAVEZA>
<DL1>
podaci iz tabele DL1
</DL1>
</PRIJAVA_1002>

Zamolio bih ako neko bude u prilici da pogleda Å¡ta nedostaje u kodu, pa da me usmjeri.
Prilozi:
POS_1.rar (Velicina datoteke:32.61 KB)