perjantaina, joulukuuta 16, 2022

Joulukalenteri 16: massarekisteröinti

Yksi VRL:n ehdottomasti parhaita toimintoja on mahdollisuus hevosten massarekisteröintiin. Se ei varsinaisesti ole uuden VRL:n toiminnallisuus vaan se löytyi vanhastakin, vaikka siellä se ei välttämättä ollut niin yleisessä jaossa ja tiedossa. Itselläni homma tökkäsi aikoinaan vaaditun CSV-muodon aikaansaamiseen, mutta nyt uuden VRL:n myötä olen opetellut jonkinlaisen metodin yksinkertaisilla työkaluilla.

Lyhyesti: massarekisteröinnissä on tarjolla yksi kenttä, johon syötetään kaikkien rekisteröitävien hevosten tiedot määrätyssä CSV-muodossa (CSV = comma-separated value) ja järjestelmä osaa koostaa niistä suoraan hevosten tiedot rekisteriin. Tietoja ei tarvitse siis syöttää yksi hevonen ja yksi kenttä kerrallaan rekisteröintilomakkeelle. Ohjeet CSV:n koostamiseen löytyvät massarekisteröinti-sivulta ja siellä on linkit myös numerokoodilistoihin. Numerokoodeilla annetaan hevosen rotu, väri, lajipainotus ja syntymämaa. Ylimpänä rivinä CSV-datassa tulee olla otsikkorivi, joka kertoo missä järjestyksessä tietoja syötetään. Rivinvaihto päättää rivin ja seuraavan hevosen tiedot alkavat.

Tässä on esimerkki VRL:n vaatimasta CSV-datasta, vaikka se näyttää aika kauhealta tässä blogin kapeassa tekstikentässä:

"nimi","sukupuoli","rotu","syntymaaika","url","kuollut","sakakorkeus","vari","painotus","syntymamaa","kotitalli","kasvattajanimi","kasvattaja_talli","kasvattaja_tunnus","i_nro","e_nro"
"Orlogskaptajn Ion","2","10","09.09.2020","http://hevosmaailma.net/Ionic/Knabstrupit/orlogskaptajn.html","0","167","","2","","IONI0011","Ion","IONI0011","VRL-00329","VH14-010-0014","VH15-010-0247"

Kuten arvata saattaa, tuollaista muotoa ei oikein viitsi käsin kirjoittaa vaan siihen tarvitaan muita työkaluja. Itse käytän varsinaisen CSV:n koostamiseen LibreOffice Calcia, ilmaisen LibreOfficen taulukkolaskenta-ohjelmaa. Minulla on tallennettuna CSV-tiedosto, jonka avaan Calcilla ja jossa on otsikkorivi valmiina. Jätän siihen aina myös rivin tai pari vanhaa dataa, josta kopioin uusille riveille sellaista dataa, joka on kaikilla hevosilla sama. Esimerkiksi kotitalli on kaikilla sama ja useimmiten myös syntymäpäivät. Kun kopioin nämä uusille riveille jo valmiiksi, ei niihin tarvitse välttämättä koskea uuden hevosen tietoja kirjoittaessa. Vähemmän työtä, näet.

Kun data on valmis Calcissa, joko kopioin kaiken datan Notepad++:aan tai avaan tiedoston sillä. Jos kopioin datan suoraan, arvojen välissä on tabulaattorilyönti, jos avaan tiedoston, välissä on pilkku. Kummassakin tapauksessa käytän Find and replace -toimintoaa siihen, että saan arvojen ympärille lainausmerkit. Suurin osa menee sillä, että korvaan joko tabulaattorilyönnin tai pilkun yhdistelmällä ",". Tällöin täytyy muistaa kuitenkin lisätä lainausmerkit rivien alkuihin ja loppuihin.

Yleensä tässä vaiheessa teen vielä tarkistuksen, ettei dataan ole jäänyt välilyöntejä ennen tai jälkeen datan, VRL:n järjestelmä ei nimittäin niele niitä. Find and replace palvelee tässäkin. Ja sitten ei muuta kuin data osoiteriveineen massarekisteröintikenttään ja valmista alkaa tulla. 

Calcissa, samoin kuin Excelissä ja ehkä muissakin vastaavissa, on pari ongelmaa. Ensinnäkin se haluaa yleensä kopioida kenttiin tekstien fontit ja fonttikoot. Sen pystyy kiertämään klikkaamalla solussa hiiren kakkospainiketta ja valitsemalla Paste Special - Unformatted Text. Asioiden helpottamiseksi tälle Paste Unformatted Text -toiminnolle kannattaa määrittää oma näppäinkomentonsa.

Toinen ongelma ovat päivämäärät. VRL haluaa päivämäärät muodossa pp.kk.vvvv, mutta Calc haluaa ihan väkisin muuttaa päivämäärät muotoon pp.kk.vv. Yritin aikani ränklätä kaikenmoisia data- ja muita asetuksia, mutta en onnistunut tätä muuttamaan. Ongelma väheni siedettäviin mittoihin kun avasin CSV-tiedoston tekstiohjelmalla, muokkasin sitä VRL:n vaatimaan muotoon, tallensin ja avasin uudestaan Calcissa. Tällöin päivämäärät näkyvät soluissa muodossa pp.kk.vvvv, niitä pystyy kopioimaan ja monistamaan ja ne pysyvät samassa muodossa, jos soluun kopioi päivämäärän Paste Unformatted Text -toiminnolla. Vaikeasti selitetty, olisi helpompi näyttää tämä. En tiedä mitä tapahtuu ja miksi, mutta riittää minulle että se toimii. Vihaan Exceliä ja sen serkkuja joka tapauksessa muutenkin.

Todennäköisesti tätä prosessia voisi viilata vielä sieltä ja täältä. Oletan, että jostain on pakko saada tuo päivämäärädata oikeaan muotoon heti alkuunsa ja ehkä jollain tavoin kikkailemalla saisi tavallisen paste-komennon kopioimaan kenttään suoraan muotoilemattoman datan. Varmaan jollain konstilla saisi myös Calcin tuottamaan suoraan ne lainausmerkitkin arvojen ympärille, niin jäisi tuo Notepadilla pulaaminenkin välistä. En ole kuitenkaan mikään taulukkolaskentaohjelmien suurin guru tai edes ystävä (kyllä, minulla on pahoja antipatioita), joten en ole jaksanut näitä selvittää sen kummemmin kun mitään helppoa ratkaisua en ole löytänyt.

Kenties on olemassa jopa suoraan parempia työkaluja CSV:n työstämiseen, en ole niihin tutustunut. Jos muilla lukijoilla on antaa vinkkejä, kuuntelen tosi mielelläni! Tai ylipäänsä kiinnostaa tietää, miten muut massarekisteröintidatan koostavat.

Ei kommentteja: