Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VBA: Matriisin toteutus

Sivun loppuun

Sinis [02.06.2006 12:16:53]

#

Tarkoituksena olisi tehdä 15x15 matriisi veikkausliigan otteluista. Ensimmäisellä rivillä (vierasjoukkue) ja ensimmäisellä sarakkeella (kotijoukkue) olisi joukkueen nimi ja loppu matriisi (14x14)käsittäisi otteluiden tulokset. Tuloksia pitäisi pystyä lisäämään ja tallentamaan. Milläköhän komponentilla tuota kannattaisi ruveta toteuttamaan? Ajattelin ensin tehdä textboxeilla, mutta niiden käsittely olisi 'hieman' hankalaa. Hieman tarvitsisin vinkkausta oikeaan suuntaan...

Antti Laaksonen [02.06.2006 13:21:29]

#

Tulokset kannattaa tallentaa taulukkoon esim. seuraavasti:

Dim joukkueet(1 To 15) As String
Dim tulokset(1 To 15, 1 To 15, 1 To 2) As Integer

Nyt taulukko joukkueet sisältää joukkueiden nimet. Taulukko tulokset taas sisältää pelien tulokset. Taulukon ensimmäinen ulottuvuus on vaikkapa kotijoukkue, toinen vierasjoukkue ja kolmas kummankin joukkueen maalit.

joukkueet(1) = "FC Honka"
joukkueet(2) = "FC Lahti"
tulokset(1, 2, 1) = 3
tulokset(1, 2, 2) = 1

Tämä tarkoittaa sitä, että FC Hongan tunnus on 1 ja FC Lahden tunnus on 2. Kun FC Honka pelasi kotona FC Lahtea vastaan, FC Honka sai kolme maalia ja FC Lahti yhden. Tällä tavalla kaikki tulokset ovat helposti tarkistettavissa ja muutettavissa.

Tulosten näyttäminen ohjelmassa on sitten toinen juttu. Valmiita kontrolleita taulukon näyttämiseen on useita, esim. FlexGrid. Myös tekstikenttiä voi käyttää, mutta niitä ei kannata luoda käsin vaan ohjelmallisesti (ks. VB-opas). Tulokset voi myös mainiosti tulostaa tavallisesti ikkunaan Print-komennolla. Viimeksi mainitut tavat vaativat enemmän työtä, mutta silloin ohjelma toimii ilman kookkaita lisäkontrolleja.

Sinis [03.06.2006 09:33:06]

#

Kiitoksia vastauksesta. Tällä hetkellä tuo ko. taulukko on tehty exelillä siten, että joukkueiden leikkauspisteessä on ottelun tulos. Ja koska Atlantis ei enää pelaa niin voi olettaa, että ottelut päättyvät yksinumeroisiin lukemiin jolloin voin poimia maalimäärät left:illä ja right:illa. Tämän vuoksi 15x15 matriisi olisi mielestäni toimivin. Ongelma on se, että en tiedä millä komponentilla saisin käyttöliittymään exelin tyyppisen taulukon, johon voisin tulokset syöttää ja sen jälkeen tallentaa txt-tiedostoon. Onko tietojen näyttämiseen ja muokkaamiseen olemassa muuta vaihtoehtoa kuin textboxit?

setä [03.06.2006 13:25:16]

#

Kun syötettävä data on kapealla alueella, kuten tässä maalien määrä, voi textboxien sijasta hyvin käyttää labeleita. Näihin voi numerot syöttää suoraan hiirellä. Ohessa kuva parista labeleilla toteutetuista taulukoista:
http://personal.inet.fi/atk/korant/lbltaulu.png

Sinis [03.06.2006 14:14:42]

#

Toi kuntoilu-taulukko on aika lähellä sitä mitä haen. Olisiko mahdollista saada tuon taulukon koodia niin pääsisin eteenpäin...? Tai muuten hieman tarkentaa miten tuo on toteutettu.

setä [03.06.2006 21:08:33]

#

Tuolta löytyy lomake, jos saat siitä jotain tolkkua. On niin kommentoimatonta koodia ettei kehtaa laittaa näkösälle. Itselle kun ei viitsi paljoa kommentoida ja jälkeenpäin se hieman harmittaa.
http://personal.inet.fi/atk/korant/frmKunto.frm

Merri [04.06.2006 04:47:33]

#

Jos ylimääräiset OCX:t ei pelota, niin Microsoft FlexGrid voi olla ihan näppärä lisäys formille.

setä [04.06.2006 08:54:09]

#

FlexGridin taivuttaminen haluamiini toimintoihin on ainakin mulle paljon työläämpää (jos lainkaan onnistuu) kuin labelien eli labelit on vapaammin koodattavissa.

Sinis [06.06.2006 09:55:01]

#

Toi FlexGrid taipuu aika hyvin tarkoitukseeni. Sedän koodinpätkä aiheutti arvatusti harmaita hapsia, enkä moista koodia olekaan nähnyt kuin omissa tekeleissäni, joista puolen vuoden jälkeen on mahdotonta keksiä mitä koodi tekee ja minkä vuoksi... Kiitokset kuitenkin avusta.


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta