maanantai 16. helmikuuta 2015

MS Access 2013 - Viitenumeron laskenta

Hyödyllinen koodinpätkä, jolla voi VBA-scriptissä laskea viitenumeron.
HUOM. Finanssialan keskusliitto (http://www.fkl.fi/teemasivut/sepa/tekninen_dokumentaatio/Dokumentit/kotimaisen_viitteen_rakenneohje.pdf) määrittää, että 
viitenumeron pituus tulee olla vähintään 3 merkkiä + tarkiste.

Seuraava funktio laskee viitenumeron tarkisteen:

Function LaskeViite(ByVal numerosarja As String) As String
    'Muuttujien esittely
    Dim origSarja As String ' alkuperäinen numerosarja
    Dim Laskuri As Byte ' laskuri
    Dim sarjanPituus As Byte ' numerosarjan pituus
    Dim tarkisteNumero As Byte ' tarkistenumero
    Dim sarjanSumma As String ' numerosarjan summa
    Dim kertoimet(2) As Byte ' kertoimet
    Dim i As Integer
    Dim j As Integer
    Dim refnumber As String     'Viitenumero ilman jarjestelyä
    Dim outstr As String
    Dim UusiViite As String     'Viitenumero 5 mrk. ryhmissä

    'muuttujien alustus
    origSarja = numerosarja
    sarjanPituus = Len(numerosarja)
    Laskuri = 0
    sarjanSumma = 0
    tarkisteNumero = 0
    kertoimet(0) = 7: kertoimet(1) = 3: kertoimet(2) = 1

    'tarkistetaan annetun numerosarjan pituus ja sisältö
    If (sarjanPituus < 1 Or sarjanPituus > 19) Or Not IsNumeric(numerosarja) Then GoTo Viite_Error

        'käydään numerosarja lävitse
        Do While Laskuri < sarjanPituus
            sarjanSumma = sarjanSumma + (Mid(numerosarja, sarjanPituus - Laskuri, 1) * kertoimet(Laskuri Mod 3))
            Laskuri = Laskuri + 1 'laskurin inkrementointi
        Loop

    'lasketaan tarkistenumero (sarjan summasta seuraava täysi kymmen - sarjan summa)
    tarkisteNumero = (10 - (sarjanSumma Mod 10)) Mod 10

    'palautetaan kutsuvaan aliohjelmaan alkuperäinen numerosarja ja tarkisteNumero
    LaskeViite = origSarja & tarkisteNumero

    refnumber = origSarja & tarkisteNumero
    strlen = Len(origSarja & tarkisteNumero)
    ' / Järjestetään 5 merkin ryhmiin

    If strlen > 5 Then
    j = 0
    For i = strlen To 1 Step -1
        j = j + 1
        If j = 6 Then
            outstr = outstr & " "
            j = 1
        End If
        outstr = outstr & Mid(refnumber, i, 1)
    Next
    UusiViite = ""
    For i = Len(outstr) To 1 Step -1
        UusiViite = UusiViite & Mid(outstr, i, 1)
    Next i

    LaskeViite = UusiViite

    End If

    Exit Function

Viite_Error:

    On Error GoTo 0
    Err.Raise vbObjectError + 1001, , "Viitenumeroksi laskettava numerosarja virheellinen"
    LaskeViite = ""
    Exit Function

End Function

maanantai 9. helmikuuta 2015

VB.net - Tietojen vieminen Excel.CSV tiedostoon

Excelin CSV- muotoiseen tauluun voi viedä VB.net koodissa dataa. Esim. puolipisteellä erotellaan arvot toisistaaan. Jos haluat viedä yhteen Excel soluun dataa, joka sisältää puolipisteen, se on tehtävä näin hankalan näköisesti:

ExcelSolu = """" & EkaMuuttuja & ";" & TokaMuuttuja & """"

torstai 29. tammikuuta 2015

Datasepän koodikoulu 2015 alkanut

Dataseppä aloitti koodikoulun Raudaskosken koululla.

Koodikoulun tarkoitus on tutustuttaa koulun opettajat ja oppilaat (1-6 luokat) koodauksen alkeisiin, ja antaa mielikuva siitä, että koodauskin voi olla helppoa ja innostavaa. Opiskelussa käytetään apuna tarkoitusta varten tehtyä Blogia, josta löytyvät ohjeet alkuun pääsemiseksi (=dataseppa.wordpress.com).

Ensimmäiset koodikoulut opettajien ja 6- luokan kanssa on nyt tammikuussa 2015 käyty. Dataseppä sai hyvää palautetta sekä opettajilta, että oppilailta:
"Koodaus ei ole vaikeaa!",
"Madalsi kynnystä aloittaa ohjelmoinnin opetus, kun se tulee opetussuunnitelmiin 2016 syksyllä!".

Tästä on hyvä jatkaa! Seuraavat koodikoulut pidetään helmi-maaliskuussa, jotta kaikki Raudaskosken koulun oppilaat saavat kokeilla ohjelmointia. Tänä keväänä saatujen kokemusten avulla koodikoulun sisältöä kehitellään edelleen. Tavoitteenahan on aloittaa Raudaskosken koululla 1-6 luokkalaisille suunnattu Datasepän Koodauskerho syksyllä 2015. Siellä voidaankin sitten alkaa opetella vaikka robottien ohjelmointia, nettisivujen tekoa tai mobiiliohjelmointia.

Kaikki Datasepän koodikoulun suorittaneet tulevat saamaan diplomin:


Koodikoulun Raudaskosken koulun oppilaille tarjoaa yhdessä Dataseppä ja Raudaskylän kyläyhdistys.




perjantai 23. tammikuuta 2015

Mikä on Entity Framework 6 ?



Entity framework 
= object-relational mapper (ORM) framework

To read or update data, you can use ADO.NET directly by using classes such as SqlCommand, SqlDataReader, SqlDataAdapter, and DataSet. The recommended alternative is to let an object-relational mapper (ORM) framework such as the Entity Framework handle the low-level code that interfaces with an ADO.NET data provider. If you use ADO.NET directly, you have to manually write and execute SQL queries. You also have to write code that converts data from the database's format into objects, properties, and collections that you can work with in code.

Suomeksi:
  • koodiin ei tarvitse kirjoittaa SQL:ää ja komentaa ADO.NET:iä, vaan Entity frameworkista löytyy nopeampi tapa toteuttaa tauluun kirjoitus, luku, päivitys yms.
  • vähempi koodia, vähemmän virhemahdollisuuksia  
  • kun koodi käyttää ORM:ää, niin kantojen siirto SQL serveriltä Windows Azure SQL databaseen onnistuu ilman muutoksia  
  • jos tuntuu, että SQL olisi tehokkaampi jossain erikoistapauksessa, niin: see Advanced Entity Framework Scenarios for an MVC Web Application on the ASP.NET site

keskiviikko 31. joulukuuta 2014

Nyt on aika siirtyä sähköiseen rahtikirjaan !

DataSeppä on tehnyt jälleenmyyntisopimuksen Unifaun Oy:n kanssa. Tämä tarkoittaa, että Dataseppä saa toteuttaa integraatioita asiakkaan tietojärjestelmän (ERP) ja Unifaun kuljetustilaus järjestelmän välille. Tämän tyyppisellä integraatiolla mahdollistetaan sähköinen rahtikirja ja automaattiset kuljetustilaukset.  

Unifaun kautta voidaan välittää sähköisesti kuljetustilaukset eli rahtitiedot seuraaville rahdinkuljettajille: Bring Parcels, DB Schenker, DHL, DPD, DSV Road, GLS, Itella Posti, Itella Logistics, Kaukokiito, Kiitolinja, Matkahuolto, PostNord, TNT, UPK ja UPS.

Hyödyt tavarantoimittajalle:

ü    Tavaravirran läpinäkyvyys tukee ja tehostaa yrityksesi asiakaspalveluprosessia.
ü    Automaattinen EDI ja kuljetusliikkeen omat rahtiasiakirjat edesauttavat jakeluprosessin jouhevuutta ja vähentävät reklamaatioita.
ü    Automatisoitu tulostusprosessi minimoi virheitä ja nopeuttaa käsittelyä tuoden kustannustehokkuutta lähettämötoimintaasi.
ü    Yrityksellesi riittää yksi järjestelmä, yksi tulostintyyppi sekä yksi tarrakoko.
ü    Enää ei tarvitse täytellä esitäytettyjä rahtikirjoja tai syöttää tietoa manuaalisesti.
ü    Parannat laatua ja tiedon oikeellisuuden hallintaa, mikä auttaa yritystäsi säästämään sekä aikaa että rahaa!