zxz |
23.11.2021 01:09 |
Predmet:Re:XML i access 2003
Ako se radi o tagu <STAVKA1> ja ne vidim gdje nije izmijenjeno ili te ne razumijem sta hoces.
Rekao si gore da tag <STAVKA1> promijenis u tag <STAVKA>.
Ovaj xml koji si dao nema nigdje taga <STAVKA1> ili ja ne vidim. |
zxz |
23.11.2021 01:26 |
Predmet:Re:XML i access 2003
Sad sam vidio ovaj tekst
Citat:Treba da izmijeni ovo <GRUPA1>1</GRUPA1> tako da bude <STAVKA>
i vjerovatno si na ovo mislio da ne radi
PreuzmiIzvorni kôd (Visual Basic): If InStr(Temp, "1>") > 0 Then
If InStr(Temp, "</") > 0 Then
Temp = "</STAVKA>"
Else
Temp = "<STAVKA>"
End If
End If
Print #2, tmp ' zapisi vrijednost temp u file 2
tmp = Temp
Ova si polja mogao promijeniti i u accesu a ne da mijenjas poslije kada zapises xml. |
zxz |
24.11.2021 18:21 |
Predmet:Re:XML i access 2003
Evo ti kod mada u tabelama po meni imas viska polja.
U svim tabelama imas polje gruša i polje stavka iz kojih tzi netrebaju podaci.
Odnosno podai su uvijek 1.
Ja bih prepravio tabele pa preuredio kod.
PreuzmiIzvorni kôd (Visual Basic):Function Zapisxml()
Dim Putanja As String, Temp As String, XmlFile As String
Dim I As Integer
Const BrojTabela = 5
Putanja = "d:\" 'Putanja zapisa bez imena filea Upis u mem. putanja
'XmlFile = DMin("JIB", "Radnja") & ".xml" ' Ime xml fajla Upis u mem xmlfile
Close #1 'Zatvori sekvencialni fajl 1
Open Putanja & "dd.XML" For Output As 1
Temp = "<PRIJAVA_1002>"
Print #1, Temp
Temp = "<script id=" & Chr(34) & "tinyhippos-injected" & Chr(34) & "/>"
Print #1, Temp
For I = 1 To BrojTabela
ImeTabele = Choose(I, "ZAGLAVLJE", "OBAVEZA", "DL1", "DL3", "DL5")
Temp = "<" & ImeTabele & ">"
Print #1, Temp
If I > 1 Then
Temp = "<STAVKA>"
Print #1, Temp
End If
TabeleUpis (ImeTabele)
If I > 1 Then
Temp = "</STAVKA>"
Print #1, Temp
End If
Temp = "</" & ImeTabele & ">"
Print #1, Temp
Next I
Temp = "</PRIJAVA_1002>"
Print #1, Temp
Close #1
End Function
Function TabeleUpis(ImeTabele)
Dim Db As Database
Dim Rs As Recordset
Dim I As Integer, FieldsCount As Integer, Start As Integer
Dim Temp As String
Set Db = CurrentDb
Set Rs = Db.OpenRecordset(ImeTabele)
FieldsCount = Rs.Fields.Count - 1
'MsgBox Rs.Fields(0).Name
'Exit Function
If ImeTabele <> "ZAGLAVLJE" Then
Start = 1
End If
Do While Not Rs.EOF
For I = Start To FieldsCount - Start
Temp = "<" & Rs.Fields(I).Name & ">" & Rs.Fields(I).Value & "</" & Rs.Fields(I).Name & ">"
Print #1, Temp
Next I
Rs.MoveNext
Loop
End Function
|
zxz |
24.11.2021 19:22 |
Predmet:Re:XML i access 2003
Trebat ce ti i konvertor kodne strane vjerovatno.
Nemam za cirilicu ali negdje ima.
Ako ti je baza na latinici onda imam konvertor. |
zxz |
25.11.2021 00:03 |
Predmet:Re:XML i access 2003
Treba i za svaki ucitani red tag stavka . U gornjem slucaju je za svaku tabelu.
Evo ispravlhen kod.
Mozda je najbolje da mi das link za validator pa kad sredim da zakacim.
Option Compare Database
PreuzmiIzvorni kôd (Visual Basic):Function Zapisxml()
Dim Putanja As String, Temp As String, XmlFile As String
Dim I As Integer
Const BrojTabela = 5
Putanja = "d:\" 'Putanja zapisa bez imena filea Upis u mem. putanja
'XmlFile = DMin("JIB", "Radnja") & ".xml" ' Ime xml fajla Upis u mem xmlfile
Close #1 'Zatvori sekvencialni fajl 1
Open Putanja & "dd.XML" For Output As 1
Temp = "<PRIJAVA_1002>"
Print #1, Temp
Temp = "<script id=" & Chr(34) & "tinyhippos-injected" & Chr(34) & "/>"
Print #1, Temp
For I = 1 To BrojTabela
ImeTabele = Choose(I, "ZAGLAVLJE", "OBAVEZA", "DL1", "DL3", "DL5")
Temp = "<" & ImeTabele & ">"
Print #1, Temp
TabeleUpis (ImeTabele)
Temp = "</" & ImeTabele & ">"
Print #1, Temp
Next I
Temp = "</PRIJAVA_1002>"
Print #1, Temp
Close #1
End Function
Function TabeleUpis(ImeTabele)
Dim Db As Database
Dim Rs As Recordset
Dim I As Integer, FieldsCount As Integer, Start As Integer
Dim Temp As String
Set Db = CurrentDb
Set Rs = Db.OpenRecordset(ImeTabele)
FieldsCount = Rs.Fields.Count - 1
'MsgBox Rs.Fields(0).Name
'Exit Function
If ImeTabele <> "ZAGLAVLJE" Then
Start = 1
End If
Do While Not Rs.EOF
If ImeTabele <> "ZAGLAVLJE" Then
Temp = "<STAVKA>"
Print #1, Temp
End If
For I = Start To FieldsCount - Start
Temp = "<" & Rs.Fields(I).Name & ">" & Rs.Fields(I).Value & "</" & Rs.Fields(I).Name & ">"
Print #1, Temp
Next I
If ImeTabele <> "ZAGLAVLJE" Then
Temp = "</STAVKA>"
Print #1, Temp
End If
Rs.MoveNext
Loop
End Function
|
Branestan |
25.11.2021 00:37 |
Predmet:Re:XML i access 2003
Još ovo nedostaje, da izmijeni stavke ZAGLAVLJA:
If Left(Temp, 35) = "<POSLODAVAC_KTI>0</POSLODAVAC_KTI>" Then
Temp = "<POSLODAVAC_KTI/>"
End If
If Left(Temp, 35) = "<POSLODAVAC_KTI>1</POSLODAVAC_KTI>" Then
Temp= "<POSLODAVAC_KTI>X</POSLODAVAC_KTI>"
End If
If Left(Temp, 80) = "<NACIN_OBAVLJANJA_SDJELATNOSTI>0</NACIN_OBAVLJANJA_SDJELATNOSTI>" Then
Temp = "<NACIN_OBAVLJANJA_SDJELATNOSTI/>"
End If
If Left(Temp, 35) = "<PO_NALOGU_INSPEKTORA>0</PO_NALOGU_INSPEKTORA>" Then
Temp = "<PO_NALOGU_INSPEKTORA/>"
End If |
zxz |
25.11.2021 01:28 |
Predmet:Re:XML i access 2003
Nema mi to logike:
Vidi sta pise:
<xs:element name="POSLODAVAC_KTI" minOccurs="1">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="1"/>
<xs:enumeration value="X"/>
<xs:enumeration value=""/>
</xs:restriction>
</xs:simpleType>
</xs:element>
znaci vrijednosti koje se mogu upisati su:
1 i x
a ako je prazan string onda nema podatatak i pise se zatvoreni tag.
Posto je kod tebe svuda bilo podataka ovo nisam ni gledao.
Ja mogu prepraviti kod da upisuje ovo i ako nema podataka ali bi ostalo trebalo u bazi ispraviti.
Nevalja ovo sa if jer moze neko izmijeniti u bazi nesto.
trebalo bi ispravno napraviti. |
zxz |
25.11.2021 01:37 |
Predmet:Re:XML i access 2003
evo ispravljen kod a ostalo popravi u bazi odnosno napisi ispravno.
PreuzmiIzvorni kôd (Visual Basic):Function TabeleUpis(ImeTabele)
Dim Db As Database
Dim Rs As Recordset
Dim I As Integer, FieldsCount As Integer, Start As Integer
Dim Temp As String
Set Db = CurrentDb
Set Rs = Db.OpenRecordset(ImeTabele)
FieldsCount = Rs.Fields.Count - 1
'MsgBox Rs.Fields(0).Name
'Exit Function
If ImeTabele <> "ZAGLAVLJE" Then
Start = 1
End If
Do While Not Rs.EOF
If ImeTabele <> "ZAGLAVLJE" Then
Temp = "<STAVKA>"
Print #1, Temp
End If
For I = Start To FieldsCount - Start
If Format$(Rs.Fields(I).Value) <> "" Then
Temp = "<" & Rs.Fields(I).Name & ">" & Rs.Fields(I).Value & "</" & Rs.Fields(I).Name & ">"
Else
Temp = "<" & Rs.Fields(I).Name & "/>"
End If
Print #1, Temp
Next I
If ImeTabele <> "ZAGLAVLJE" Then
Temp = "</STAVKA>"
Print #1, Temp
End If
Rs.MoveNext
Loop
End Function
|