U xml prici sam veoma kratko,ni nedelju dana.
Radim na win vb.net,mysql aplikaciji. Do sada sam izvestaje CR pravio koriscenjem DataTable, tako sto na formi obavim upit i prosledim podatke izvestaju.
Problem je sto imam neke upite iz access-a(a koje treba da realizujem u mysql), koji zahtevaju da koristim temporary table ili nesto drugo. CR ne podrzava temp.table, pa se setih xml-a. Mozda da napravim .xsd fajl, napunim ga i pozovem u reportu, jer DataSet ne umem da prosledim reportu, ako je nastao kao produkt vise upita zaredom.
!!!Za sve nonsense koje sam naveo u objasnjenju ili pitanjima se unapred izvinjavam
Evo nesto koda
1. napravio sam pesice xml fajl
Code:
<?xml version="1.0" encoding="utf-8" ?>
<xs:schema id="probniXML" targetNamespace="http://tempuri.org/Dataset1.xsd" elementFormDefault="qualified"
attributeFormDefault="qualified" xmlns="http://tempuri.org/Dataset1.xsd" xmlns:mstns="http://tempuri.org/Dataset1.xsd"
xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xs:element name="probniXML2" msdata:IsDataSet="true">
<xs:complexType>
<xs:choice maxOccurs="unbounded">
<xs:element name="NISpom">
<xs:complexType>
<xs:sequence>
<xs:element name="klasa" type="xs:string" />
<xs:element name="artikl" type="xs:string" />
<xs:element name="ArtId" type="xs:integer" />
<xs:element name="Centext" type="xs:string" />
<xs:element name="KategId" type="xs:integer" />
<xs:element name="Naziv" type="xs:string" />
<xs:element name="Karak" type="xs:string" />
<xs:element name="Kom" type="xs:integer" />
<xs:element name="Isp" type="xs:string" />
<xs:element name="expr1" type="xs:integer" />
<xs:element name="expr2" type="xs:string" />
<xs:element name="datum" type="xs:date" />
<xs:element name="izdavanje" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
<xs:unique name="Dataset1Key1" msdata:PrimaryKey="true">
<xs:selector xpath=".//mstns:authors" />
<xs:field xpath="mstns:au_id" />
</xs:unique>
</xs:element>
</xs:schema>
<?xml version="1.0" encoding="utf-8" ?>
<xs:schema id="probniXML" targetNamespace="http://tempuri.org/Dataset1.xsd" elementFormDefault="qualified"
attributeFormDefault="qualified" xmlns="http://tempuri.org/Dataset1.xsd" xmlns:mstns="http://tempuri.org/Dataset1.xsd"
xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xs:element name="probniXML2" msdata:IsDataSet="true">
<xs:complexType>
<xs:choice maxOccurs="unbounded">
<xs:element name="NISpom">
<xs:complexType>
<xs:sequence>
<xs:element name="klasa" type="xs:string" />
<xs:element name="artikl" type="xs:string" />
<xs:element name="ArtId" type="xs:integer" />
<xs:element name="Centext" type="xs:string" />
<xs:element name="KategId" type="xs:integer" />
<xs:element name="Naziv" type="xs:string" />
<xs:element name="Karak" type="xs:string" />
<xs:element name="Kom" type="xs:integer" />
<xs:element name="Isp" type="xs:string" />
<xs:element name="expr1" type="xs:integer" />
<xs:element name="expr2" type="xs:string" />
<xs:element name="datum" type="xs:date" />
<xs:element name="izdavanje" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
<xs:unique name="Dataset1Key1" msdata:PrimaryKey="true">
<xs:selector xpath=".//mstns:authors" />
<xs:field xpath="mstns:au_id" />
</xs:unique>
</xs:element>
</xs:schema>
2. kod u load-ovanju forme
Code:
conn.connectionstring = KonekcioniString
'Try
conn.Open()
Dim SQL2 As String
'SQL2 = "select z.ime,z.prezime , i.isplata,i.datisplate as DatumIsplate from zaposleni z, isplate i where z.MaticniBroj=i.sifra order by i.datIsplate asc"
SQL2 = " SELECT P.Klasa, K.KategID, K.Naziv, P.Artikl, D.Karak, D.Kom, D.Isp," _
& " If(Karak='ULAZ',Kom,Kom*(-1)) AS Expr1, If(Isp='kvar','Kvar','') AS Expr2," _
& " P.ArtID, PRODAJA.Datum, P.Centext, PRODAJA.Izdavanje " _
& " FROM (KATEGORIJE k INNER JOIN PROIZVODI p ON K.KategID = P.KategID)" _
& " INNER JOIN (PRODAJA INNER JOIN DETALJI d ON PRODAJA.ProdId = D.ProdId) ON P.Artikl = D.Artikl" _
& " HAVING PRODAJA.Datum>04/26/1998 AND k.kategId<24 AND PRODAJA.Izdavanje=?IzdavanjeParam " _
& " ORDER BY P.ArtID"
myCommand.Connection = conn
myCommand.CommandText = SQL2
mysqlAdapter.SelectCommand = myCommand
myCommand.Parameters.Add("?IzdavanjeParam", parIzdavanje)
Dim ds As DataSet
'MessageBox.Show("1")
mysqlAdapter.Fill(myData)
'dgPodaci.DataSource = myData
'icitavanje izvestaja i njegovo otvaranje na formi
'Dim tabela As probniXML2.NISpomDataTable
'tabela = myData
'ds.WriteXmlSchema("probnixml2.xsd")
crReportDocument = New crStanje
crReportDocument.SetDataSource(myData)
CrystalReportViewer1.ReportSource = crReportDocument
conn.connectionstring = KonekcioniString
'Try
conn.Open()
Dim SQL2 As String
'SQL2 = "select z.ime,z.prezime , i.isplata,i.datisplate as DatumIsplate from zaposleni z, isplate i where z.MaticniBroj=i.sifra order by i.datIsplate asc"
SQL2 = " SELECT P.Klasa, K.KategID, K.Naziv, P.Artikl, D.Karak, D.Kom, D.Isp," _
& " If(Karak='ULAZ',Kom,Kom*(-1)) AS Expr1, If(Isp='kvar','Kvar','') AS Expr2," _
& " P.ArtID, PRODAJA.Datum, P.Centext, PRODAJA.Izdavanje " _
& " FROM (KATEGORIJE k INNER JOIN PROIZVODI p ON K.KategID = P.KategID)" _
& " INNER JOIN (PRODAJA INNER JOIN DETALJI d ON PRODAJA.ProdId = D.ProdId) ON P.Artikl = D.Artikl" _
& " HAVING PRODAJA.Datum>04/26/1998 AND k.kategId<24 AND PRODAJA.Izdavanje=?IzdavanjeParam " _
& " ORDER BY P.ArtID"
myCommand.Connection = conn
myCommand.CommandText = SQL2
mysqlAdapter.SelectCommand = myCommand
myCommand.Parameters.Add("?IzdavanjeParam", parIzdavanje)
Dim ds As DataSet
'MessageBox.Show("1")
mysqlAdapter.Fill(myData)
'dgPodaci.DataSource = myData
'icitavanje izvestaja i njegovo otvaranje na formi
'Dim tabela As probniXML2.NISpomDataTable
'tabela = myData
'ds.WriteXmlSchema("probnixml2.xsd")
crReportDocument = New crStanje
crReportDocument.SetDataSource(myData)
CrystalReportViewer1.ReportSource = crReportDocument
3. inace Crystal Report vidi DataSet koji sam napravio ali kao prazan, sta da izmenim