[VB2005] XML als input voor form-opbouw

Pagina: 1
Acties:
  • 210 views sinds 30-01-2008
  • Reageer

  • easydisk
  • Registratie: Februari 2000
  • Laatst online: 14-02 22:52
Wat: Een pda applicatie (voor windows CE5/Mobile2005, gemaakt met Visual Basic 2005) die gebruikt wordt om wat gegevens in te voeren.

Nu is wat er in te voeren is, redelijk statisch, maar dat kan soms wel eens verschillen (aanpassing ca 1x per jaar) en om dan niet elke keer de applicatie te moeten aanpassen en compileren dacht ik aan een xml file die de invoer bevat.

Om het niet oneindig groot te maken wil ik het beperken en daarom heb ik het volgende gedefinieerd:
2x dropdown menu-tjes
--1ste is: steen, glas, hout
--2de is afhankelijk van 1, en voor steen bijv. vulkaansteen, maansteen, etc

dan de invoer (afhankelijk van gevonden waarde) welke maximaal 4 verschillende invoeren heeft
--locatie, gewicht, volume, opmerking


voorbeeld:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
<gevonden>
<object>
    <naam>steen</naam>
    <types>
        <type>
            <name>vulkaan steen</name>
            <input>
                <name>locatie</name>
                <description>Het land waar deze steen is gevonden</description>
                <type>string</type>
                <required/>
            </input>
            <input>
                <name>gewicht</name>
                <description>het gewicht van deze steen in gram</description>
                <type>integer</type>
                <required/>
            </input>
            <input>
                <name>opmerking</name>
                <type>text</type>
            </input>
        </type>

        <type>
            <name>maan steen</name>
            <input>
                <name>locatie</name>
                <type>string</type>
                <required/>
            </input>
            <input>
                <name>volume</name>
                <type>integer</type>
                <required/>
            </input>
            <input>
                <name>opmerking</name>
                <type>text</type>
            </input>
        </type>
    </types>
</object>

<object>
    <naam>glas</naam>
         ..... bla .. bla..
</object>

<object>
    <naam>hout</naam>    

</object>
</gevonden>


Nu wil ik dat dus gaan inlezen met Visual Basic en dan in een gecombineerde array/structue invoeren.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Public Structure input
  dim name as string
  dim description as string
  dim type as string
  dim required as boolean
End structure

Public Structure type
  dim naam as string
  dim input() as input
End structure

Public structure gevondenobjecten
  dim naam as string
  dim type() as type
end structure

dim alles() as gevondenobjecten


En hiermee dus het scherm op te bouwen.

Verder: de gegevens worden in een (sql) database opgeslagen die een aantal kolomen heeft.

code:
1
2
3
4
5
id, category, naam, locatie, gewicht, volume, opmerking  (LET OP !!! dit komt overeen met de gekozen namen in de XML file)

// en dan kan er dus een regel zijn
10, steen, vulkaan steen, frankrijk, 145, NULL, 'gevonden op een zonnige dag in juli'
11, steen, maan steen, spanje, NULL, 99, 'het is hier een koude dag in juli'


Uiteraard als je plots ook de kleur van het object wilt invoeren moet je toch de applicatie aanpassen, maar dat is te voorkomen door nu goed vooruit te denken, maar ik kan niet voorzien dat er binnenkort ook 'metaal' gevonden gaat worden.

Nu is het wel zo dat bijv.
code:
1
2
3
4
5
            <input>
                <name>gewicht</name>
                <type>integer</type>
                <required/>
            </input>

heel vaak terug zal komen (altijd integer en indien gespecificeerd altijd required (verplicht invoeren))

Handiger dit eruit te halen en anders op te schrijven ?
code:
1
2
3
4
5
6
7
locatie is string en required, gewicht, volume zijn integers en required, opmerking is text vast in vbasic programmeren...
        <type>
            <name>vulkaan steen</name>
            <input>locatie</input>
            <input>gewicht</input>
            <input>opmerking</input>
        </type>


Al met al: Wat vinden jullie hier van, is dit handig, kan het beter/makkelijker, begin ik aan iets te ingewikkelds/onmogelijks ? Wie heeft hier voorbeelden van ? etc ?

Als je het in het programmacode vast 'inbakt' zal je toch ook moeten invoeren dat (bijvoorbeeld) de waarde volume een integer is en verplicht is.

[ Voor 12% gewijzigd door easydisk op 03-04-2006 20:19 ]


  • RedRose
  • Registratie: Juni 2001
  • Niet online

RedRose

Icebear

easydisk schreef op maandag 03 april 2006 @ 20:16:
Als je het in het programmacode vast 'inbakt' zal je toch ook moeten invoeren dat (bijvoorbeeld) de waarde volume een integer is en verplicht is.
Wellicht zou je daarom eens naar XSD kunnen kijken in plaats van XML. Misschien is dat overkill voor wat je wil doen, maar binnen XSD heb je beschikking over onder andere data types en kan je andere voorwaarden zetten voor correcte invoer per veld.

http://www.w3schools.com/schema/schema_intro.asp

Sundown Circus