如何从数据库写入指定的xml?

时间:2019-07-18 18:00:22

标签: xml vb.net

我正在为妈妈(波斯尼亚和黑塞哥维那)编写一个名为薪金管理的小型程序。我需要从数据库(数据表)中编写一个XML文件。

我设法编写了一个XML文件,但是在第二个文件中,我遇到了一个问题:我不知道如何将员工分组并用XML编写整年甚至几个月的文件。

我尽了一切,但无法解决问题。

Private Sub Button_Click(sender As Object, e As RoutedEventArgs)

    Dim JIBPoslodavac As String = Nothing
    Dim NazivPoslodavca As String = Nothing
    Dim BrojZahtjeva As String = "1"
    Dim DatumPodnosenja As String = DateTime.Now.ToString("yyyy-MM-dd")
    Dim SifraDjelP As String = Nothing

    databasePath = lblPath.Content
    Dim cnc As New OleDbConnection("provider=microsoft.ace.oledb.12.0;" &
    " data source=" & databasePath & ";persist security info=false;")

    cnc.Open()
    cmp.CommandText = "Select  JIB, Naziv, VrstaD  from tblPoslodavac "
    cmp.Connection = cnc
    drp = cmp.ExecuteReader

    If drp.HasRows Then
        drp.Read()

        JIBPoslodavac = drp.Item("JIB") & ""                       '  &"" resolve null value error '
        NazivPoslodavca = drp.Item("Naziv") & ""
        SifraDjelP = drp.Item("VrstaD")

        drp.Close()

    End If

    cnc.Close()

    Dim PeriodOD As Date
    Dim PeriodDO As Date
    Dim JMB As String

    Dim cn As New OleDbConnection("provider=microsoft.ace.oledb.12.0;" &
    " data source=" & databasePath & ";persist security info=false;")
    cn.Open()
    cm.CommandText = "select  *from  MIPObracunatePlate"
    cm.Connection = cn
    Dim adp As New OleDbDataAdapter(cm)
    Dim dt As New DataTable
    adp.Fill(ds)
    adp.Fill(dt)

    dr = cm.ExecuteReader

    If dr.HasRows Then
        dr.Read()

        PeriodOD = dr.Item("PeriodOd") & ""                       '  &"" resolve null value error '
        PeriodDO = dr.Item("PeriodDo") & ""

        drp.Close()

    End If

    Dim PerOD As String = PeriodOD.ToString("yyyy-MM-dd")
    Dim PerDO As String = PeriodDO.ToString("yyyy-MM-dd")

    Dim BrojUposlenih As Integer = dt.Rows.Count

    Dim ImeR As String
    Dim JMBR As String
    Dim VrstaI As String
    Dim RadniSati As Double
    Dim BolovanjeSati As Double
    Dim BruttoPlata As Double
    Dim NetoPStvari As Double
    Dim UkupnoBruto As Double
    Dim NetoPlaca As Double
    Dim FaktorODbitka As Double
    Dim IznosOdbitka As Double
    Dim OsnovicaPoreza As Double
    Dim IznosPoreza As Double
    Dim OpcinaRadnika As String

    Dim settings As New XmlWriterSettings()
    settings.Indent = True

    Dim XmlWrt As XmlWriter = XmlWriter.Create("C:\Test\GIP.xml", settings)

    With XmlWrt
        .WriteStartElement("PaketniUvozObrazaca", "urn:PaketniUvozObrazaca_V1_0.xsd")
        .WriteStartElement("PodaciOPoslodavcu")
        .WriteElementString("JIBPoslodavca", JIBPoslodavac)
        .WriteElementString("NazivPoslodavca", NazivPoslodavca.ToUpper)
        .WriteElementString("BrojZahtjeva", BrojZahtjeva)
        .WriteElementString("DatumPodnosenja", DatumPodnosenja)
        .WriteEndElement()

        .WriteStartElement("Obrazac1022")
            .WriteStartElement("Dio1PodaciOPoslodavcuIPoreznomObvezniku")

        .Close()
    End With
End Sub

这是示例XML文件。

<?xml version="1.0" encoding="UTF-8"?><PaketniUvozObrazaca xmlns="urn:PaketniUvozObrazaca_V1_0.xsd">
  <PodaciOPoslodavcu>
    <JIBPoslodavca>4319671855002</JIBPoslodavca>
    <NazivPoslodavca>XXX D.O.O.</NazivPoslodavca>
    <BrojZahtjeva>2</BrojZahtjeva>
    <DatumPodnosenja>2019-07-18</DatumPodnosenja>
  </PodaciOPoslodavcu>
  <Obrazac1022>
    <Dio1PodaciOPoslodavcuIPoreznomObvezniku>
      <JIBJMBPoslodavca>4319671855002</JIBJMBPoslodavca>
      <Naziv>XXX D.O.O.</Naziv>
      <AdresaSjedista>DOBOJ</AdresaSjedista>
      <JMBZaposlenika>1908982125022</JMBZaposlenika>
      <ImeIPrezime>NIKO NEZNANOVIĆ</ImeIPrezime>
      <AdresaPrebivalista>DOBOJ</AdresaPrebivalista>
      <PoreznaGodina>2016</PoreznaGodina>
    </Dio1PodaciOPoslodavcuIPoreznomObvezniku>
    <Dio2PodaciOPrihodimaDoprinosimaIPorezu>
      <PodaciOPrihodimaDoprinosimaIPorezu>
        <Mjesec>1</Mjesec>
        <IsplataZaMjesecIGodinu>12/2015</IsplataZaMjesecIGodinu>
        <VrstaIsplate>1</VrstaIsplate>
        <IznosPrihodaUNovcu>579.71</IznosPrihodaUNovcu>
        <IznosPrihodaUStvarimaUslugama>0.00</IznosPrihodaUStvarimaUslugama>
        <BrutoPlaca>579.71</BrutoPlaca>
        <IznosZaPenzijskoInvalidskoOsiguranje>98.55</IznosZaPenzijskoInvalidskoOsiguranje>
        <IznosZaZdravstvenoOsiguranje>72.46</IznosZaZdravstvenoOsiguranje>
        <IznosZaOsiguranjeOdNezaposlenosti>8.70</IznosZaOsiguranjeOdNezaposlenosti>
        <UkupniDoprinosi>179.71</UkupniDoprinosi>
        <PlacaBezDoprinosa>400.00</PlacaBezDoprinosa>
        <FaktorLicnihOdbitakaPremaPoreznojKartici>1.000</FaktorLicnihOdbitakaPremaPoreznojKartici>
        <IznosLicnogOdbitka>300.00</IznosLicnogOdbitka>
        <OsnovicaPoreza>100.00</OsnovicaPoreza>
        <IznosUplacenogPoreza>10.00</IznosUplacenogPoreza>
        <NetoPlaca>390.00</NetoPlaca>
        <DatumUplate>2016-01-08</DatumUplate>
      </PodaciOPrihodimaDoprinosimaIPorezu>
      <PodaciOPrihodimaDoprinosimaIPorezu>
        <Mjesec>2</Mjesec>
        <IsplataZaMjesecIGodinu>1/2016</IsplataZaMjesecIGodinu>
        <VrstaIsplate>1</VrstaIsplate>
        <IznosPrihodaUNovcu>579.71</IznosPrihodaUNovcu>
        <IznosPrihodaUStvarimaUslugama>0.00</IznosPrihodaUStvarimaUslugama>
        <BrutoPlaca>579.71</BrutoPlaca>
        <IznosZaPenzijskoInvalidskoOsiguranje>98.55</IznosZaPenzijskoInvalidskoOsiguranje>
        <IznosZaZdravstvenoOsiguranje>72.46</IznosZaZdravstvenoOsiguranje>
        <IznosZaOsiguranjeOdNezaposlenosti>8.70</IznosZaOsiguranjeOdNezaposlenosti>
        <UkupniDoprinosi>179.71</UkupniDoprinosi>
        <PlacaBezDoprinosa>400.00</PlacaBezDoprinosa>
        <FaktorLicnihOdbitakaPremaPoreznojKartici>1.000</FaktorLicnihOdbitakaPremaPoreznojKartici>
        <IznosLicnogOdbitka>300.00</IznosLicnogOdbitka>
        <OsnovicaPoreza>100.00</OsnovicaPoreza>
        <IznosUplacenogPoreza>10.00</IznosUplacenogPoreza>
        <NetoPlaca>390.00</NetoPlaca>
        <DatumUplate>2016-02-08</DatumUplate>
      </PodaciOPrihodimaDoprinosimaIPorezu>
      <PodaciOPrihodimaDoprinosimaIPorezu>
        <Mjesec>3</Mjesec>
        <IsplataZaMjesecIGodinu>2/2016</IsplataZaMjesecIGodinu>
        <VrstaIsplate>1</VrstaIsplate>
        <IznosPrihodaUNovcu>579.71</IznosPrihodaUNovcu>
        <IznosPrihodaUStvarimaUslugama>0.00</IznosPrihodaUStvarimaUslugama>
        <BrutoPlaca>579.71</BrutoPlaca>
        <IznosZaPenzijskoInvalidskoOsiguranje>98.55</IznosZaPenzijskoInvalidskoOsiguranje>
        <IznosZaZdravstvenoOsiguranje>72.46</IznosZaZdravstvenoOsiguranje>
        <IznosZaOsiguranjeOdNezaposlenosti>8.70</IznosZaOsiguranjeOdNezaposlenosti>
        <UkupniDoprinosi>179.71</UkupniDoprinosi>
        <PlacaBezDoprinosa>400.00</PlacaBezDoprinosa>
        <FaktorLicnihOdbitakaPremaPoreznojKartici>1.000</FaktorLicnihOdbitakaPremaPoreznojKartici>
        <IznosLicnogOdbitka>300.00</IznosLicnogOdbitka>
        <OsnovicaPoreza>100.00</OsnovicaPoreza>
        <IznosUplacenogPoreza>10.00</IznosUplacenogPoreza>
        <NetoPlaca>390.00</NetoPlaca>
        <DatumUplate>2016-03-04</DatumUplate>
      </PodaciOPrihodimaDoprinosimaIPorezu>
      <Ukupno>
        <IznosPrihodaUNovcu>6956.52</IznosPrihodaUNovcu>
        <IznosPrihodaUStvarimaUslugama>0.00</IznosPrihodaUStvarimaUslugama>
        <BrutoPlaca>6956.52</BrutoPlaca>
        <IznosZaPenzijskoInvalidskoOsiguranje>1182.60</IznosZaPenzijskoInvalidskoOsiguranje>
        <IznosZaZdravstvenoOsiguranje>869.52</IznosZaZdravstvenoOsiguranje>
        <IznosZaOsiguranjeOdNezaposlenosti>104.40</IznosZaOsiguranjeOdNezaposlenosti>
        <UkupniDoprinosi>2156.52</UkupniDoprinosi>
        <PlacaBezDoprinosa>4800.00</PlacaBezDoprinosa>
        <IznosLicnogOdbitka>3600.00</IznosLicnogOdbitka>
        <OsnovicaPoreza>1200.00</OsnovicaPoreza>
        <IznosUplacenogPoreza>120.00</IznosUplacenogPoreza>
        <NetoPlaca>4680.00</NetoPlaca>
      </Ukupno>
    </Dio2PodaciOPrihodimaDoprinosimaIPorezu>
    <Dio3IzjavaPoslodavcaIsplatioca>
      <JIBJMBPoslodavca>4319671855002</JIBJMBPoslodavca>
      <DatumUnosa>2019-07-18</DatumUnosa>
      <NazivPoslodavca>XXX D.O.O.</NazivPoslodavca>
    </Dio3IzjavaPoslodavcaIsplatioca>
    <Dokument>
      <Operacija>Novi</Operacija>
    </Dokument>
  </Obrazac1022>
  <Obrazac1022>
    <Dio1PodaciOPoslodavcuIPoreznomObvezniku>
      <JIBJMBPoslodavca>4319671855002</JIBJMBPoslodavca>
      <Naziv>XXX D.O.O.</Naziv>
      <AdresaSjedista>DOBOJ</AdresaSjedista>
      <JMBZaposlenika>1101976125227</JMBZaposlenika>
      <ImeIPrezime>PERO PERIĆ</ImeIPrezime>
      <AdresaPrebivalista>DOBOJ</AdresaPrebivalista>
      <PoreznaGodina>2016</PoreznaGodina>
    </Dio1PodaciOPoslodavcuIPoreznomObvezniku>
    <Dio2PodaciOPrihodimaDoprinosimaIPorezu>
      <PodaciOPrihodimaDoprinosimaIPorezu>
        <Mjesec>1</Mjesec>
        <IsplataZaMjesecIGodinu>12/2015</IsplataZaMjesecIGodinu>
        <VrstaIsplate>1</VrstaIsplate>
        <IznosPrihodaUNovcu>579.71</IznosPrihodaUNovcu>
        <IznosPrihodaUStvarimaUslugama>0.00</IznosPrihodaUStvarimaUslugama>
        <BrutoPlaca>579.71</BrutoPlaca>
        <IznosZaPenzijskoInvalidskoOsiguranje>98.55</IznosZaPenzijskoInvalidskoOsiguranje>
        <IznosZaZdravstvenoOsiguranje>72.46</IznosZaZdravstvenoOsiguranje>
        <IznosZaOsiguranjeOdNezaposlenosti>8.70</IznosZaOsiguranjeOdNezaposlenosti>
        <UkupniDoprinosi>179.71</UkupniDoprinosi>
        <PlacaBezDoprinosa>400.00</PlacaBezDoprinosa>
        <FaktorLicnihOdbitakaPremaPoreznojKartici>1.000</FaktorLicnihOdbitakaPremaPoreznojKartici>
        <IznosLicnogOdbitka>300.00</IznosLicnogOdbitka>
        <OsnovicaPoreza>100.00</OsnovicaPoreza>
        <IznosUplacenogPoreza>10.00</IznosUplacenogPoreza>
        <NetoPlaca>390.00</NetoPlaca>
        <DatumUplate>2016-01-08</DatumUplate>
      </PodaciOPrihodimaDoprinosimaIPorezu>
      <PodaciOPrihodimaDoprinosimaIPorezu>
        <Mjesec>2</Mjesec>
        <IsplataZaMjesecIGodinu>1/2016</IsplataZaMjesecIGodinu>
        <VrstaIsplate>1</VrstaIsplate>
        <IznosPrihodaUNovcu>579.71</IznosPrihodaUNovcu>
        <IznosPrihodaUStvarimaUslugama>0.00</IznosPrihodaUStvarimaUslugama>
        <BrutoPlaca>579.71</BrutoPlaca>
        <IznosZaPenzijskoInvalidskoOsiguranje>98.55</IznosZaPenzijskoInvalidskoOsiguranje>
        <IznosZaZdravstvenoOsiguranje>72.46</IznosZaZdravstvenoOsiguranje>
        <IznosZaOsiguranjeOdNezaposlenosti>8.70</IznosZaOsiguranjeOdNezaposlenosti>
        <UkupniDoprinosi>179.71</UkupniDoprinosi>
        <PlacaBezDoprinosa>400.00</PlacaBezDoprinosa>
        <FaktorLicnihOdbitakaPremaPoreznojKartici>1.000</FaktorLicnihOdbitakaPremaPoreznojKartici>
        <IznosLicnogOdbitka>300.00</IznosLicnogOdbitka>
        <OsnovicaPoreza>100.00</OsnovicaPoreza>
        <IznosUplacenogPoreza>10.00</IznosUplacenogPoreza>
        <NetoPlaca>390.00</NetoPlaca>
        <DatumUplate>2016-02-08</DatumUplate>
      </PodaciOPrihodimaDoprinosimaIPorezu>
      <Ukupno>
        <IznosPrihodaUNovcu>6956.52</IznosPrihodaUNovcu>
        <IznosPrihodaUStvarimaUslugama>0.00</IznosPrihodaUStvarimaUslugama>
        <BrutoPlaca>6956.52</BrutoPlaca>
        <IznosZaPenzijskoInvalidskoOsiguranje>1182.60</IznosZaPenzijskoInvalidskoOsiguranje>
        <IznosZaZdravstvenoOsiguranje>869.52</IznosZaZdravstvenoOsiguranje>
        <IznosZaOsiguranjeOdNezaposlenosti>104.40</IznosZaOsiguranjeOdNezaposlenosti>
        <UkupniDoprinosi>2156.52</UkupniDoprinosi>
        <PlacaBezDoprinosa>4800.00</PlacaBezDoprinosa>
        <IznosLicnogOdbitka>3600.00</IznosLicnogOdbitka>
        <OsnovicaPoreza>1200.00</OsnovicaPoreza>
        <IznosUplacenogPoreza>120.00</IznosUplacenogPoreza>
        <NetoPlaca>4680.00</NetoPlaca>
      </Ukupno>
    </Dio2PodaciOPrihodimaDoprinosimaIPorezu>
    <Dio3IzjavaPoslodavcaIsplatioca>
      <JIBJMBPoslodavca>4319671855002</JIBJMBPoslodavca>
      <DatumUnosa>2019-07-18</DatumUnosa>
      <NazivPoslodavca>XXX D.O.O.</NazivPoslodavca>
    </Dio3IzjavaPoslodavcaIsplatioca>
    <Dokument>
      <Operacija>Novi</Operacija>
    </Dokument>
  </Obrazac1022>
</PaketniUvozObrazaca>

0 个答案:

没有答案