Olen tekemässä tietokantasovellusta VB6:lla ja yritän tulostaa raportteja DataReportilla käyttäen DataEnvironmentia. Kysymys kuuluukin voiko tietokannasta haettujen kenttien kesken tehdä laskutoimituksia raportilla? Siis jos minulla on vaikka kentät vuokra ja neliömäärä, voinko mitenkään saada näitä kenttien tietoja jaettua keskenään jotta saisin tulostumaan myöskin neliöhinnan? Tai jos on kahden vuoden vuokratiedot, voiko niiden erotusta mitenkään saada tulostumaan raportille?
En sano/tiedä onko edes mahdollista DataReportilla noita laskuja hoitaa, sillä paljon helpompi tapa on tehdä ne DataEnvironmentissä kyselyn yhteydessä. Teet sillä kantaan SQL-kyselyn, jossa lasket nuo neliöhinnat ja erotukset, jonka sitten liität raporttiin.
SELECT Neliot, Vuokra, (Vuokra/Neliot) AS Neliohinta FROM Huoneisto
Entäs kun tiedot tulevat näkymästä ja tarvitsen näkymän kaikkia tietoja raportilla. Voinko silti tehdä tuollaisen erittelyn jonnekin kohtaa DataEnvironmentia ja mihin voin tulostaa raportille tuollaisen kyselyn tuloksen?
Jos näkymä on tallennettu kantaan, niin siitä pystyy samalla tavalla tekemään kyselyitä, kuin oikeasta taulustakin. Jos haluat näkymästä kaikki tiedot, niin luettelet ne vain tuossa SELECT:n perässä ja laitat näkymän nimen FROM:n jälkeen.
Lyhyt kertaus DataEnvironmentin käytöstä, että puhutaan samasta asiasta.
DatEnv:n alla on Connection joka sisältää Commandeja. Commandin taas pystyy liittämään DataReport:in, joka esittää Commandin tiedot. Kun Commandia klikkaa hiiren oikealla ja valitsee Properties:n, niin avautuu ikkuna, jossa pystyy määrittelemään Commandin tiedot: esim. nimi, mitä kannan tiedoille tehdään, miten yhteys kantaan on määritelty, alikyselyiden linkitys (Child Command) jne. Samalla sivulla?
Properties-sivun General-osassa saat määriteltyä haetko kannasta suoraan jonkin taulun, näkymän tms. (Database Object) tai sitten suoritatko SQL-kyselyn kantaan, jolloin (SQL)taivas on rajana, mitä voit kannalle tehdä.
Mistä voi johtua, että accessiin päivitetyt taulun tai näkymän sarakkeet eivät päivity enää Visual Basicin puolella?
Päivitätkö Recordsetin?
DatEnv.rsJoku.Requery
Jos Recordset on liitety johonkin objektiin, niin joudut myös päivittämään sen Refresh-komennolla, että saat päivitetyt tiedostot näkyviin.
Aihe on jo aika vanha, joten et voi enää vastata siihen.