Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

xml+DataSet-CrystalReport

[es] :: .NET :: xml+DataSet-CrystalReport

[ Pregleda: 2251 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

mmilinca

Član broj: 57773
Poruke: 60
82.208.209.*



Profil

icon xml+DataSet-CrystalReport02.03.2006. u 09:40 - pre 220 meseci


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>


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


3. inace Crystal Report vidi DataSet koji sam napravio ali kao prazan, sta da izmenim
 
Odgovor na temu

Oliver Klaćik
Vice President, Thunder Road Software
Inc.
Stara Pazova

Član broj: 34059
Poruke: 242
80.93.231.*

Sajt: www.thunderroadsoftware.c..


Profil

icon Re: xml+DataSet-CrystalReport03.03.2006. u 09:17 - pre 220 meseci
Gledam ovaj tvoj kod i nije mi jasno šta pokušavaš sa XML-om, kada iz baze puniš DataSet i njega stavljaš kao DataSource. A iz uvoda sam zaključio da hoćeš da prekopiraš podatke iz DataSet-a u XML, pa da XML staviš kao DataSource...

Objasni malo bolje...

A ono što si stavio pod komentar, gde koristiš WriteXmlSchema metodu... Ona zapisuje samo šemu, dok WriteXml zapisuje podatke, ali kao što rekoh ne shvatam šta pokušavaš...
Oliver 'FAQ' Klaćik
 
Odgovor na temu

ntadic
bg

Član broj: 38173
Poruke: 75
194.106.174.*

ICQ: 317199697


Profil

icon Re: xml+DataSet-CrystalReport07.03.2006. u 11:29 - pre 220 meseci
puni report iz stored procedure. end of story.
I tako...
 
Odgovor na temu

mmilinca

Član broj: 57773
Poruke: 60
82.208.209.*



Profil

icon Re: xml+DataSet-CrystalReport09.03.2006. u 07:27 - pre 220 meseci

Da Olivere , u pravu si.
Zelim da kao sto rekoh u uvodu hocu da prekopirampodatke iz DataSet-a u XML, pa da XML stavim kao DataSource...
Evo koda koji je to uspeo, mada me buni koceptualno, please saveti za ispravke...

Code:

'prvo cu kreirati temporary tabelu MPSTANJE
        conn.connectionstring = KonekcioniString
        Try
            conn.Open()
            Dim SQL2, sql3 As String
            SQL2 = "CREATE TEMPORARY TABLE mpstanje " _
                 & " SELECT PROIZVODI.Klasa, KATEGORIJE.KategID, KATEGORIJE.Naziv, PROIZVODI.Artikl, DETALJI.Karak, DETALJI.Kom, DETALJI.Isp," _
                 & " If(Karak='ULAZ',Kom,Kom*(-1)) AS Expr1, If(Isp='kvar','Kvar','') AS Expr2," _
                 & " PROIZVODI.ArtID, PRODAJA.Datum, PRODAJA.Izdavanje, PRODAJA.Dan " _
                 & " FROM (KATEGORIJE INNER JOIN PROIZVODI ON KATEGORIJE.KategID = PROIZVODI.KategID) " _
                 & " INNER JOIN (PRODAJA INNER JOIN DETALJI ON PRODAJA.ProdId = DETALJI.ProdId) ON PROIZVODI.Artikl = DETALJI.Artikl " _
                 & " WHERE PRODAJA.Izdavanje='MP' " _
                 & " ORDER BY PROIZVODI.ArtID"
myCommand.Connection = conn
myCommand.CommandText = SQL2
 mysqlAdapter.SelectCommand = myCommand
myCommand.ExecuteNonQuery()

            'obavim SELECT nad TEMPORARY TABLE
Dim myCommand3 As New MySqlCommand
myCommand3.Connection = conn
myCommand3.CommandText = " select mplokali.mpid,mplokali.podizdavanje," _
& " mpstanje.klasa, mpstanje.kategid,mpstanje.naziv, mpstanje.artikl,mpstanje.karak,mpstanje.kom,mpstanje.isp," _
& "  mpstanje.expr1, mpstanje.expr2, mpstanje.artid, mpstanje.datum, mpstanje.izdavanje, mpstanje.dan " _
& " from mplokali left join mpstanje " _
& " on mplokali.podizdavanje=mpstanje.dan "
            Dim mysqladapter3 As New MySqlDataAdapter
            mysqladapter3.SelectCommand = myCommand3
            mysqladapter3.Fill(mydata3)
            crReportDocument = New crKombinovanoMP2
            crReportDocument.SetDataSource(mydata3)
            CrystalReportViewer1.ReportSource = crReportDocument
            conn.Close()
            conn.Dispose()
        Catch
        End Try


Naravno napravio sam i .xsd fajl, koji koristim kao izvor podataka u crKombinovanoMP2, s tim sto mu je struktura ista kao i set podataka koje vraca zadnji upit (mpid,podizdavanje,klasa,kategid,...)

Koliko je vazno da se struktura poklapa, da se poklapa tip podataka, velika,mala slova. Da li je moguce nekako drugacije referencirati podatke, na neki prazan xml fajl ili nesto slicno.

Opet se izvinjavam zbog mogucih nonsensa

pozdrav!

 
Odgovor na temu

[es] :: .NET :: xml+DataSet-CrystalReport

[ Pregleda: 2251 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.