[ sabacc @ 09.11.2009. 09:00 ] @
Imam problem pri eksportu hijerarhijskih povezanih tabela u xml koristeći office 2003.
Problem je u sledećem: Određena polja ne želim da mi budu u xml dokumentu to može da se reši pomoću upita koji iz tabela vadi samo određene atribute koji mi trebaju, ali da bi povezao upite oni moraju da sadrže polja primarnih i sekundarnih ključeva na osnovu koji su oni povezani (ili tabele ako eksportujem), a xml dokument ne treba da sadrži polja primarnih i sekundarnih ključeva?
[ smal @ 09.11.2009. 12:47 ] @
Ako dobro razumem pitanje, onda ne razumem gde je problem :)
Dakle, ako u query designeru napraviš relacije nad potrebnim tabelama, a izabereš samo željena polja za rezultat upita, šta se dešava?
[ sabacc @ 09.11.2009. 13:16 ] @
I upiti mi moraju biti povezani po poljima ključeva, ne postoji drugi način da ih povežem. Imam hijerarhijske veze između tabela.
1 slog mij e ustanova, drugi je osiguranik, treći usluga četvrti i peti su potrošnja materijala i atribut usluge.
Imam mnogo osiguranika mesečno da bih ručno brisao u exportu. U xml prvi tag mi je usanova u oviru koje su svi osiguranici pa zatim ide tag osiguranik u okviru koje je više usluga, a u okviru usluga su potrošnja materijala i atribut usluge, zatim sledeći osiguranik itd. po istom principu.
[ sabacc @ 09.11.2009. 13:21 ] @
Ako pravim vezu između upita moraju da mi postoje i polja klučevada bih mogao da ih povežem. Ja se kroz upite oslobodim nekih polja koja mi u xml ne trebaju, ali ostaju mi polja ključeva koja mi takođe ne trebaju
[ smal @ 09.11.2009. 14:06 ] @
Aj' ti samo za početak probaj da batališ Query Wizard, već upite kreiraj ručno (Design View). Sve bude jasnije.

[ sabacc @ 10.11.2009. 07:28 ] @
Nikada ne koristim Query Wizard, već upite kreiram ručno kako si mi i napisao, ali kada koristim export shemu u xml on mi prebacuje i polja ključeva koja mi u xml ne trebaju. Pošto mi xml nije jača strana da bih automatski izbrisao ta polja u njemu (ima hiljade redova zapisa), a ručno atribut po atribut je popriličan posao. Znači postoje dve varijante ili u accessu postoji mogućnost definisanja polja za export ili u xml automatsko brisanje naznačenih polja.
[ smal @ 10.11.2009. 08:34 ] @
Koliko vidim, u "Export Schema" meniu postoji i "Include primary key and index information" checkbox, pa to onda treba deselektovati.
I izbunariti kako se to isključuje kroz VBA, pretpostavljam...
[ sabacc @ 10.11.2009. 10:07 ] @
Da probao sam i to u startu, ali ne funkcioniše.
[ smal @ 10.11.2009. 15:14 ] @
Ne znam šta da kažem. Malo sam se igrao i probao sa nekim svojim bazama... eksport i import xml-a iz kverija, i sve radi bez problema, bez PK ili sa, kako već ja želim... Ako možeš, okači primer, pa da vidimo u čemu je konkretan problem.
[ sabacc @ 11.11.2009. 07:50 ] @
Da ,ali kako izvršiš export bez polja ključeva. Uzmi primer dve hijerarhiski povezane tabele odnos jedan prema više (jedan osiguranik ima više usluga). Kroz upite ja filtriram neki vremenski period za export. Znači napraviš dva upita za prvu i drugu tabelu i onda ih u relacijama moraš povezati (ne znam drugi način već samo po poljima ključeva koje onda moraš ubaciti u upit) Znači u xml fajlu za jednog osiguranika moraju biti vezane njegove usluge.
Primer:
Atributi tabele osiguranika Atributi usluga
ID osiguranika-Auto number→ID usluge-Number
Prezime-Text Šifra-text
Ime-Text

Izgled xml kakav treba da bude:
<?xml version="1.0" encoding="UTF-8"?>
<dataroot>
<Osiguranik>
<Prezime>Petrović</Prezime>
<Ime>Petar</Ime>
<Usluga>
<Šifra>1</Šifra>
</Usluga>
</Osiguranik>
</dataroot>

,a ja u exportu dobijem:
<?xml version="1.0" encoding="UTF-8"?>
<dataroot>
<Osiguranik>
<ID osiguranika>1</ID osiguranika>
<Prezime>Petrović</Prezime>
<Ime>Petar</Ime>
<Usluga>
<ID usluge>1</ID usluge>
<Šifra>1</Šifra>
</Usluga>
</Osiguranik>
</dataroot>

[ sabacc @ 23.11.2009. 07:07 ] @
Rešenje sam našao u xml. Imao sam veliku pomoć na tom forumu.
code ide ovako:

<?xml version="1.0" encoding="UTF-8" ?>

<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="/ | @* | node()">
<xsl:if test="name(.)!='IDOsiguranika' or name(..)!='Osiguranik'">
<xsl:copy>
<xsl:apply-templates select="@* | node()"/>
</xsl:copy>
</xsl:if>
</xsl:template>
</xsl:stylesheet>

Možete brisati atribut po atribut. Koristio sam xslt u altova xmlspy
[ zliki @ 02.03.2010. 08:42 ] @
Zdravo, nailazim na slicne probleme kao i ti onda. Naime i ja treba da odradim el. fakturu, tek su mi sada rekli da je format promenjen, znaci kasnimo nekih dva meseca. Znaci stvar je hitna.
Uradio sam strukturu baze u access-u i probao da exportujem podatke. Nailazim na iste probleme. Polja prim kljuceva se javljaju u XML dokumentu.

Ako imas vremena, poslacu ti strukturu baze koju sam juce odradio, cisto me zanima da li su te relacije (objasnjenje rzzo-a nije bas najbolje).

Hvala puno unapred..

Pozdrav
[ zliki @ 02.03.2010. 13:29 ] @
Evo instalirao sam XMLSpy i kopirao tvoj kod u i radi. Brise mi ID_Osiguranika iz taga Osiguranik.

kako sad da obrisem i PK u ostalim tagovima? Kako si resio taj problem?

Pozdrav.
[ zliki @ 02.03.2010. 13:34 ] @
Evo instalirao sam XMLSpy i kopirao tvoj kod u i radi. Brise mi ID_Osiguranika iz taga Osiguranik.

kako sad da obrisem i PK u ostalim tagovima? Kako si resio taj problem?

Pozdrav.
[ sabacc @ 04.03.2010. 13:43 ] @
Sada sam tek pogledao poruku:
Što se tiče brisanja atributa u različitim tagovima samo menjaš <xsl:if test="name(.)!='IDU' or name(..)!='Usluga_atribut'">

Znači IDU ti je polje u tagu a Usluga_atribut ti je tag. Kada hoćeš neki drugi na primer IDO atribut taga Osiguranik prmena je samo
<xsl:if test="name(.)!='IDO' or name(..)!='Osiguranik'"> i onda ponovo isti postupak kroz XML SPY
[ sabacc @ 04.03.2010. 13:50 ] @
Veze u bazi su ti dobro postavljene!!!
[ zliki @ 04.03.2010. 14:03 ] @
HVala ti puno.

E sad da li tp znaci da moram da koristim svakako ona spy softver za menjanje xml fajla?

Mogu li jednim xsl fajlom da resim ovo brisanje da ne moram da koritim spy vec da pri exportu iz baze prozovem transfor taj jedan fajl i dobijem zeljeni efekat?

Kazi mi, kako si izbacio onaj tag

<dataroot itd.> ?

Kako si resio problem praznih polja, ne pojavljuju mi se u xml fajlu? Mozda i ne treba da se pojavljuju!

Molim te da mi odgovoris na ova pitanja, hvala ti puno jos jednom!

Pozdrav
[ sabacc @ 05.03.2010. 08:00 ] @
Kada postavljaš Access bazu u tabelama staviš da ti je svako polje po default prazan string "" to znači da če pri export u xml polje koje nema vrednost biti prikazano u xml u suprotnom ako nisi tako postavio polja u access koja su ti prazna (Is null) neće biti prikazana.
xml ti je text sa određenim pravilima možeš da ga otvoriš u notepad i da izbrišeš što ti ne treba tako ga snimiš i promenio si xml dokument (pitanje za brisanje).
Što se tiče brisanja tagova i atributa nisam uspeo da transformišem xml u jednoj iteraciji problem je malo veći mogućnost stvaranja bagova. Na poslu ne mogu sve da stignem to mi je u nekom narednom periodu zadatak. Inače nije ti ni ovo problem faktura se šalje 1 mesečno. Ja sam 1 februara poslao za januar i sada šaljem februar.
Pozdrav.