Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB6: VB ja Select Case -ongelma

Knappe [24.10.2003 02:24:31]

#

Terve!
Yritän tehdä menun, josta pystyy valitsemaan mitä tietoa datareportissa näytetään. Tein sen ensin If-Then-Else -lauseilla ja sain raporttiin aina tarvittavat tiedot mutta kone alkoi tökkimään kun rivejä alkoi tulla paljon. Aattelin siis kokeilla Select Case -lauseilla mutta ei oikein tunnu toimivan. Alla on lyhennetty pätkä koodia. Siis ainoa joka tökkii on Select Case joka ei käyttäydy kuten luulin sen käyttäytyvän. Kyseessä on kylläkin eka kerta kun sitä kokeilen...

Private Sub cmdOpenReport_Click()
Dim chkMenu As Boolean

'-----PROJECT INFORMATION (always visible)
DataReport1.Sections("temp_detail").Controls("lblProjectInf").Caption = "Project Information"

Select Case chkMenu

    Case chkPanelProp.Value = 0, chkStructure.Value = 0
        MsgBox "No Information Selected!", vbOKOnly

    Case chkPanelProp.Value = 1, chkStructure.Value = 1

        DataReport1.Sections("temp_detail").Controls("lblPanelProp").Caption = "Panel Properties"
        DataReport1.Sections("temp_detail").Controls("lblStructure").Caption = "Static System"
        DataReport1.Show vbModal 'this shows the preview window for the report

    Case chkPanelProp.Value = 0, chkStructure.Value = 1
        DataReport1.Sections("temp_detail").Controls("lblPanelProp").Visible = False

    Case chkPanelProp.Value = 1, chkStructure.Value = 0
        DataReport1.Sections("temp_detail").Controls("lblStructure").Visible = False
        DataReport1.Show vbModal 'this shows the preview window for the report

    Case Else
        MsgBox "Jokin mättää"

End Select
End Sub

Tässä on siis kyseessä kahdesta checkboxista joiden avulla valitaan näkyykö molemmat otsikot, vain toinen tai ei kumpikaan. Lisäksi raportissa on textboxeja ja kuvia mutta poistin ne lauseet tästä esimerkistä.

Tarkoituksena on jatkossa pystyä useamman chkboxin avulla vaikuttamaan raportin sisältöön. Tämähän tarkoittaa sitä, että kun ylempänä oleva sisältö muuttuu "näkymättömäksi" on alempana olevan sisällön siirryttävä ylöspäin. Chkboxeja tulee luultavasti olemaan lähemmäs 20 ja yhdellä pystytään hallitsemaan useita otsikoita ja textbokseja. Select Case -vaihtoehtoja tulee siis aika paljon, ja rivejä myös kun jokaisen otsikon ja tekstin visible ja top-ominaisuuksia muutetaan.

Onko ehdotuksia miten tämän saisi tehokkaasti/paremmin tehtyä?

Eihän tämä hyvältä näytä kun pelkästään kahdella chkboxilla tökkii.
Ongelma: kun valitsen molemmat boxit aukea msgbox, jonka pitäisi aueta silloin kun mitään ei ole valittu. Kun taas en valitse mitään, aukeaa raportti, jossa on molemmat otsikot. Jos valitse boxeista vain toisen, ilmestyy taas msgbox.

Löytyykö ketään, joka jaksoi lukea loppuun asti ja vielä tietää miten homma toimii ja paranee?

Kiiti etukäteen!

Teme [25.10.2003 18:50:09]

#

Saakos noissa Case ... jutuissa olla noita muuttujien määrittelyä? En oo varma mut ainaski eka kerta kun nään tollasta.. Select Case on normaalisti helppokäyttöinen jos sen kanssa ei tarvitse mitän suurta tehdä.

trinit [26.10.2003 11:10:02]

#

lainaus:

Löytyykö ketään, joka jaksoi lukea loppuun asti ja vielä tietää miten homma toimii ja paranee?

Löytyy, mutta en tästäkään varma ole: kokeile muuttaa Case-lausekkeissa olevat pilkut AND:ksi. Esim. rivi

Case chkPanelProp.Value = 0, chkStructure.Value = 0

'Muuttuisi muotoon

Case chkPanelProp.Value = 0 AND chkStructure.Value = 0

'jne. Samat muutokset muihinkin lausekkeihin

Vastaus

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

Tietoa sivustosta