? EDEX naar BV Access SQLite

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Andreas Warnaar

Andreas Warnaar

15/03/2008 14:01:00
Quote Anchor link
Ik ben nu al een aantal dagen bezig met een oplossing om EDEX bestanden in een Access database te krijgen.
Of een oplissing om dmv php deze bestanden om te zetten naar csv of excel.

Iemand anders ervaring met deze bestanden..?
 
PHP hulp

PHP hulp

22/12/2024 07:40:36
 

15/03/2008 14:33:00
Quote Anchor link
google
klik
zijn het binaire bestanden of ascii bestanden?
 
Andreas Warnaar

Andreas Warnaar

15/03/2008 15:43:00
Quote Anchor link
@Webmakerij
ASCII bestanden.

Bedankt dit document had ik net nodig... Ik weet niet of ik verkeerd gezocht heb of dat iker over heen gekeken heb.

MVG
Andreas
Gewijzigd op 01/01/1970 01:00:00 door Andreas Warnaar
 
Andreas Warnaar

Andreas Warnaar

15/03/2008 16:00:00
Quote Anchor link
Het idee is een gegevens bron te creeeren voor Infopath Formulieren.
Dus het over zetten van EDEX naar EXCEL of ACCESS zou kunnen maar misschien gewoon naar XML zou ook een optie zijn..

Als iemand dergelijk script in heeft of weet waar ik meer informatie kan vinden heel graag!

MVG
Gewijzigd op 01/01/1970 01:00:00 door Andreas Warnaar
 

15/03/2008 16:30:00
Quote Anchor link
Ik denk dat je gewoon moet beginnen.
Regel voor regel inlezen en dan vervolgens dmv substr en trim een array opbouwen en deze omzetten in CSV of inserten in Access dmv ODBC (klik op mijn naam voor Tutorial).
 
Andreas Warnaar

Andreas Warnaar

16/03/2008 15:37:00
Quote Anchor link
Voor de mensen de mensen die geintresseerd zijn: hier een script dat alles in een array zet. Waarschijnlijk komt er nog een optie bij voor een XML output en een koppeling naar MDB Access database . Hier alvast een Stukje code
Mijn EDEX bestanden komen uit Rovict ESIS. Ik heb in de toelichting een aantal afwijkingen / bijzonderheden toe gelicht.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
<?php
// Laden van alle EDEX bestanden.
$aEDEXLL = file ('EDEXLL.txt');
$aEDEXLK = file ('EDEXLK.txt');
$aEDEXGR = file ('EDEXGR.txt');
$aEDEXGL = file ('EDEXLG.txt');
    
### Record-layout leerlinggegevens in EDEXLL.TXT ################################################################
#                                                                                                                #
#      BRON: http://serveropschool.nl/?section=7&page=36                                                        #
#                                                                                                                #
# Een regel in EDEXLL.TXT bevat de volgende gegevens van een leerling.                                            #
# Nr - Veldnaam - Grootte - Positie - Toelichting                                                                #
# 1 achternaam 40 karakters 01 t/m 40                                                                            #
# 2 tussenvoegsel 10 karakters 41 t/m 50                                                                        #
# 3 voornaam 20 karakters 51 t/m 70                                                                                #
# 4 geboortedatum 8 karakters 71 t/m 78 format: DD/MM/JJ [1]                                                    #
# 5 geslacht 1 karakter 79 format J of M                                                                        #
# 6 land van herkomst  1 karakter 80 numeriek: 0 = autochtoon, 1 = allochtoon                                    #
# 7 leerlingkey 5 karakters 81 t/m 85 numeriek [2]                                                                #
# 8 groeps key 5 karakters 86 t/m 90 alfanumeriek [3]                                                            #
#---------------------------------------------------------------------------------------------------------------#
# [1] Er zijn ook pakketten die een dash in plaats van een slash gebruiken, dus DD-MM-JJ.                        #
# Bij het importeren is het verstandig om met beide varianten rekening te houden.                                #
# [2] Er zijn ook pakketten die een (decimale) punt in de leerlingkey opnemen.                                    #
# [3] Een leerling komt in precies één groep voor.                                                                #
#################################################################################################################


### Uitzonderling van EDEX export van ESIS .#####################################################################
# Esis reserveerd niet de juiste hoeveelheid tekens voor Groep dit zorgt voor onregelmatigheid in de regels.    #
# Een groep kan uit meerdere tekens bestaan.                                                                    #
# In de laatste regel van de foreach word er niet van het begin gerekent maar vanaf het einde.                    #
# Zo ontrekken we de datum en groep.                                                                            #
# ESIS gebruikt ook een Schooljaar. Deze staat niet in record lay-out omschreven.                                 #
#################################################################################################################


#### EDEXLL.TXT ####

foreach ($aEDEXLL as $line_num => $line) {

    $aLL[$line_num]['achternaam']    =trim(substr($line, 0,40),"");    // 1
    $aLL[$line_num]['tussenvoeg']    =trim(substr($line,40,10),"");    // 2
    $aLL[$line_num]['voornaam']        =trim(substr($line,50,20),"");    // 3
    $aLL[$line_num]['geboortedatum']=trim(substr($line,70,8),"");    // 4
    $aLL[$line_num]['geslacht']        =trim(substr($line,78,1),"");    // 5
    $aLL[$line_num]['herkomst']        =trim(substr($line,79,1),"");    // 6
    $aLL[$line_num]['leerlingkey']    =trim(substr($line,80,5),"");    // 7
    $aLL[$line_num]['groep']        =trim(substr($line,85,-11),"");    // 8
    $aLL[$line_num]['schooljaar']    =trim(substr($line,-11),"");    // 9
    }

#### Einde EDEXLL.TXT ###########################################################################################


### Record-layout leerkrachtgegevens in EDEXLK.TXT ##############################################################
#                                                                                                                #
#      BRON: http://serveropschool.nl/?section=7&page=36                                                        #
#                                                                                                                #
# Een regel in EDEXLK.TXT bevat de volgende gegevens van een leerkracht.                                        #
# Nr - Veldnaam - Grootte - Positie - Toelichting                                                                #
# 1 achternaam 40 karakters 01 t/m 40                                                                            #
# 2 tussenvoegsel 10 karakters 41 t/m 50                                                                        #
# 3 voornaam 20 karakters 51 t/m 70                                                                                #
# 4 leerkrachtkey 5 karakters 71 t/m 75 alfanumeriek                                                            #
#                                                                                                                #
#################################################################################################################


#### EDEX.TXT ####

foreach($aEDEXLK as $line_num =>$line){
    $aLK[$line_num]['achternaam']        =trim(substr($line, 0,40),"");
    $aLK[$line_num]['tussenvoeg']        =trim(substr($line, 40,10),"");
    $aLK[$line_num]['voornaam']            =trim(substr($line, 50,20),"");
    $aLK[$line_num]['leerkrachtkey']    =trim(substr($line, 70,5),"");
}


#### Einde EDEXLK.TXT ############################################################################################


### Record-layout groepgegevens in EDEXGR.TXT ###################################################################
#                                                                                                                #
#      BRON: http://serveropschool.nl/?section=7&page=36                                                        #
#                                                                                                                #
# Een regel in EDEXGR.TXT bevat de volgende gegevens van een groep.                                                #
# Nr - Veldnaam - Grootte - Positie - Toelichting                                                                #
# 1 groepsnaam 30 karakters 01 t/m 30                                                                            #
# 2 jaargroep 1 karakter 31 1 t/m 8 voor jaargroepen 1 t/m 8;                                                    #
# S voor speciaal onderwijs; H voor historische groepen [1]                                                        #
# 3 groepkey 5 karakters 32 t/m 36 alfanumeriek                                                                    #
#                                                                                                                #
#################################################################################################################

### Uitzonderling van EDEX export van ESIS .#####################################################################
# ESIS staat mEer tekens toe in velden dan word aangegeven in Recaord lay-out                                    #
# In het geval van speciaal onderwijs of combinatie groepen ( 7/8 ) kunnen er meerder tekens in het veld groep    #
# voorkomen. In dit geval is er gekozen dan een groep uit maximaal 5 tekens kan bestaan.                        #
#################################################################################################################

#### EDEXGR.TXT ####

foreach($aEDEXGR as $line_num =>$line){
    $aGR[$line_num]['groepsnaam']        =trim(substr($line, 0,30),"");    // 1
    $aGR[$line_num]['jaargroep']        =trim(substr($line, 29,5),"");    // 2
    $aGR[$line_num]['groepskey']        =trim(substr($line, 34),"");    // 3
}

#### Einde EDEXGR.TXT ###########################################################################################


### Record-layout koppeling leerkrachten en groepen in EDEXLG.TXT ###############################################
#                                                                                                                #
#      BRON: http://serveropschool.nl/?section=7&page=36                                                        #
#                                                                                                                #
# Een regel in EDEXLG.TXT geeft aan welke leerkracht bij welke groep behoort. Hierbij kan het voorkomen dat een    #
# leerkracht bij verschillende groepen behoort, en dat bij een groep verschillende leerkrachten horen.            #
# Nr - Veldnaam -  Grootte - Positie - Toelichting                                                                #
# 1 leerkrachtkey 5 karakters 01 t/m 05 alfanumeriek; zie EDEXLK.TXT; koppeling met veld 4                        #
# 2 groepkey 5 karakters 06 t/m 10 alfanumeriek; zie EDEXGR.TXT; koppeling met veld 3                            #
#################################################################################################################


foreach($aEDEXLG as $line_num =>$line){
    $aLG[$line_num]['leerkrachtkey']    =trim(substr($line, 0,5),"");    // 1
    $aLG[$line_num]['groepskey']        =trim(substr($line, 5,5),"");    // 2
}

#### Einde EDEXLG.TXT ###########################################################################################
?>

<PRE>
<?php
Print_r($aGR);
Print_r($aLG);
Print_r($aLL);
Print_r($aLK);
?>

</PRE>
Gewijzigd op 01/01/1970 01:00:00 door Andreas Warnaar
 

16/03/2008 16:46:00
Quote Anchor link
Gelieve scripts te posten in de scriptlib: klik
Anders is het terugvinden zo moeilijk.

Het is trouwens Rovict ESIS
 
Andreas Warnaar

Andreas Warnaar

17/03/2008 00:35:00
Quote Anchor link
HEHE...

Ik zal het script in de scriptlib plaatse zodra het idee is uit gewerkt.. Tot die tijd zal ik de wijzigingen hier plaatsen..

Als je opmerkingen hebt of andere toevoegingen gaarne me het per PM te melden of in deze topic.


## Code update: Maakt nu een xml bestand aan van de leerlingen.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
<?php

// Laden van alle EDEX bestanden.
$aEDEXLL = file ('EDEXLL.txt');
$aEDEXLK = file ('EDEXLK.txt');
$aEDEXGR = file ('EDEXGR.txt');
$aEDEXLG = file ('EDEXLG.txt');
    
### Record-layout leerlinggegevens in EDEXLL.TXT ################################################################
#                                                                                                                #
#      BRON: http://serveropschool.nl/?section=7&page=36                                                        #
#                                                                                                                #
# Een regel in EDEXLL.TXT bevat de volgende gegevens van een leerling.                                            #
# Nr - Veldnaam - Grootte - Positie - Toelichting                                                                #
# 1 achternaam 40 karakters 01 t/m 40                                                                            #
# 2 tussenvoegsel 10 karakters 41 t/m 50                                                                        #
# 3 voornaam 20 karakters 51 t/m 70                                                                                #
# 4 geboortedatum 8 karakters 71 t/m 78 format: DD/MM/JJ [1]                                                    #
# 5 geslacht 1 karakter 79 format J of M                                                                        #
# 6 land van herkomst  1 karakter 80 numeriek: 0 = autochtoon, 1 = allochtoon                                    #
# 7 leerlingkey 5 karakters 81 t/m 85 numeriek [2]                                                                #
# 8 groeps key 5 karakters 86 t/m 90 alfanumeriek [3]                                                            #
#---------------------------------------------------------------------------------------------------------------#
# [1] Er zijn ook pakketten die een dash in plaats van een slash gebruiken, dus DD-MM-JJ.                        #
# Bij het importeren is het verstandig om met beide varianten rekening te houden.                                #
# [2] Er zijn ook pakketten die een (decimale) punt in de leerlingkey opnemen.                                    #
# [3] Een leerling komt in precies één groep voor.                                                                #
#################################################################################################################


### Uitzonderling van EDEX export van ESIS .#####################################################################
# Esis reserveerd niet de juiste hoeveelheid tekens voor Groep dit zorgt voor onregelmatigheid in de regels.    #
# Een groep kan uit meerdere tekens bestaan.                                                                    #
# In de laatste regel van de foreach word er niet van het begin gerekent maar vanaf het einde.                    #
# Zo ontrekken we de datum en groep.                                                                            #
# ESIS gebruikt ook een Schooljaar. Deze staat niet in record lay-out omschreven.                                 #
#################################################################################################################


#### EDEXLL.TXT ####

foreach ($aEDEXLL as $line_num => $line) {

    $aLL[$line_num]['achternaam']    =trim(substr($line, 0,40)," ");    // 1
    $aLL[$line_num]['tussenvoeg']    =trim(substr($line,40,10)," ");    // 2
    $aLL[$line_num]['voornaam']        =trim(substr($line,50,20)," ");    // 3
    $aLL[$line_num]['geboortedatum']=trim(substr($line,70,8)," ");    // 4
    $aLL[$line_num]['geslacht']        =trim(substr($line,78,1)," ");    // 5
    $aLL[$line_num]['herkomst']        =trim(substr($line,79,1)," ");    // 6
    $aLL[$line_num]['leerlingkey']    =trim(substr($line,80,5)," ");    // 7
    $aLL[$line_num]['groep']        =trim(substr($line,85,-11)," ");    // 8
    $aLL[$line_num]['schooljaar']    =trim(substr($line,-11)," ");    // 9
    }

#### Einde EDEXLL.TXT ###########################################################################################

### Record-layout leerkrachtgegevens in EDEXLK.TXT ##############################################################
#                                                                                                                #
#      BRON: http://serveropschool.nl/?section=7&page=36                                                        #
#                                                                                                                #
# Een regel in EDEXLK.TXT bevat de volgende gegevens van een leerkracht.                                        #
# Nr - Veldnaam - Grootte - Positie - Toelichting                                                                #
# 1 achternaam 40 karakters 01 t/m 40                                                                            #
# 2 tussenvoegsel 10 karakters 41 t/m 50                                                                        #
# 3 voornaam 20 karakters 51 t/m 70                                                                                #
# 4 leerkrachtkey 5 karakters 71 t/m 75 alfanumeriek                                                            #
#                                                                                                                #
#################################################################################################################


#### EDEX.TXT ####

foreach($aEDEXLK as $line_num =>$line){
    $aLK[$line_num]['achternaam']        =trim(substr($line, 0,40)," ");
    $aLK[$line_num]['tussenvoeg']        =trim(substr($line, 40,10)," ");
    $aLK[$line_num]['voornaam']            =trim(substr($line, 50,20)," ");
    $aLK[$line_num]['leerkrachtkey']    =trim(substr($line, 70,5)," ");
}


#### Einde EDEXLK.TXT ############################################################################################


### Record-layout groepgegevens in EDEXGR.TXT ###################################################################
#                                                                                                                #
#      BRON: http://serveropschool.nl/?section=7&page=36                                                        #
#                                                                                                                #
# Een regel in EDEXGR.TXT bevat de volgende gegevens van een groep.                                                #
# Nr - Veldnaam - Grootte - Positie - Toelichting                                                                #
# 1 groepsnaam 30 karakters 01 t/m 30                                                                            #
# 2 jaargroep 1 karakter 31 1 t/m 8 voor jaargroepen 1 t/m 8;                                                    #
# S voor speciaal onderwijs; H voor historische groepen [1]                                                        #
# 3 groepkey 5 karakters 32 t/m 36 alfanumeriek                                                                    #
#                                                                                                                #
#################################################################################################################

### Uitzonderling van EDEX export van ESIS .#####################################################################
# ESIS staat mEer tekens toe in velden dan word aangegeven in Recaord lay-out                                    #
# In het geval van speciaal onderwijs of combinatie groepen ( 7/8 ) kunnen er meerder tekens in het veld groep    #
# voorkomen. In dit geval is er gekozen dan een groep uit maximaal 5 tekens kan bestaan.                        #
#################################################################################################################

#### EDEXGR.TXT ####

foreach($aEDEXGR as $line_num =>$line){
    $aGR[$line_num]['groepsnaam']        =trim(substr($line, 0,30)," ");    // 1
    $aGR[$line_num]['jaargroep']        =trim(substr($line, 29,5)," ");    // 2
    $aGR[$line_num]['groepskey']        =trim(substr($line, 34)," ");    // 3
}

#### Einde EDEXGR.TXT ###########################################################################################


### Record-layout koppeling leerkrachten en groepen in EDEXLG.TXT ###############################################
#                                                                                                                #
#      BRON: http://serveropschool.nl/?section=7&page=36                                                        #
#                                                                                                                #
# Een regel in EDEXLG.TXT geeft aan welke leerkracht bij welke groep behoort. Hierbij kan het voorkomen dat een    #
# leerkracht bij verschillende groepen behoort, en dat bij een groep verschillende leerkrachten horen.            #
# Nr - Veldnaam -  Grootte - Positie - Toelichting                                                                #
# 1 leerkrachtkey 5 karakters 01 t/m 05 alfanumeriek; zie EDEXLK.TXT; koppeling met veld 4                        #
# 2 groepkey 5 karakters 06 t/m 10 alfanumeriek; zie EDEXGR.TXT; koppeling met veld 3                            #
#################################################################################################################


foreach($aEDEXLG as $line_num =>$line){
    $aLG[$line_num]['leerkrachtkey']    =trim(substr($line, 0,5)," ");    // 1
    $aLG[$line_num]['groepskey']        =trim(substr($line, 5,5)," ");    // 2
}

#### Einde EDEXLG.TXT ###########################################################################################

class cls_EdexXML extends DomDocument{
    private $m_Root;
    private $m_Datum;
    Private $m_aLL;
    private $m_aLK;
    private $m_aGL;
    private $m_aGR;

    function
__construct(){
        parent::__construct('1.0');

        $this->m_Root= $this->createElement("root");
        $this->m_Root= $this->appendChild($this->m_Root);
        
        $this->m_Datum = $this->createElement("update_datum");
        $this->m_Datum = $this->m_Root->appendChild($this->m_Datum);
        $Node = $this->createTextNode(date("m-d-y H:i "));
        $Node = $this->m_Datum->appendChild($Node);

    }

    function
XML($ap_List, $p_ElementName){


        foreach ($ap_List as $key => $value){
            $p_ParentElement =  $this->createElement($p_ElementName);
            $p_ParentElement = $this->m_Root->appendChild($p_ParentElement);
            $p_ParentElement->setAttribute("id", $key);
            foreach ($value as $ChildElement =>$Node ){
                if (!empty($ChildElement)){
                    $ChildElement = $this->createElement($ChildElement);
                    $ChildElement = $p_ParentElement->appendChild($ChildElement);
                    $Node = $this->createTextNode($Node);
                    $Node = $ChildElement->appendChild($Node);
                }    
            }
        }
        
    }
}

?>


<?php
//Print_r($aLL);
$Object = new cls_EdexXML;
$Object->XML($aLL,'leerling');
$Object->XML($aLK,'leerkracht');
$Object->XML($aGR,'groepen');
$Object->XML($aLG,'Leerkachtengroepen');
$Object->save("edex.xml");
?>
Gewijzigd op 01/01/1970 01:00:00 door Andreas Warnaar
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.