summaryrefslogtreecommitdiff
path: root/app/schulis/2.2.1/src/insert schulis
diff options
context:
space:
mode:
Diffstat (limited to 'app/schulis/2.2.1/src/insert schulis')
-rw-r--r--app/schulis/2.2.1/src/insert schulis472
1 files changed, 472 insertions, 0 deletions
diff --git a/app/schulis/2.2.1/src/insert schulis b/app/schulis/2.2.1/src/insert schulis
new file mode 100644
index 0000000..a28c829
--- /dev/null
+++ b/app/schulis/2.2.1/src/insert schulis
@@ -0,0 +1,472 @@
+LET versionsnummer=" 2.2.1";INT VAR kanal:=0,meinestation:=0;ROW 2TEXT VAR
+ausbaustufe;ausbaustufe(1):="0,1,6,";ausbaustufe(2):="0,1,6,3,4,2,5,";INT
+VAR ausbaustufenr:=1;LET teilsystem4="4",teilsystem6="6",teilsystem2="2",
+teilsystem5="5";LET praefixtrenner=".",teilsystemtrenner=",",allgemeinedatei=
+"0";TEXT VAR gueltigepraefixe:=",";TEXT VAR installverzeichnis:="";TASK VAR
+tasksourcequelle,testtask;BOOL VAR fehlerbeiinsert:=FALSE ,
+idanichtinstallierbar:=FALSE ;LET stundenplanpraefix="Stundenplan-*";LET
+kurswahlpraefix="Kurswahl-*";TEXT VAR qtt:="SCHULIS-Quellen";page;TEXT VAR
+procaufruf1:="setze schulis zeichensatz(""",procaufruf2:=
+"setze ida zeichensatz(""",procaufrufende:=""")",gewzeichensatz:="";BOOL VAR
+exists:=TRUE ;disablestop;gewzeichensatz:=font(1);IF iserrorTHEN clearerror;
+line;putline("Vor Installation bitte Fonttabelle in "+
+"Task 'configurator' laden!");enablestop;ELSE enablestop;WHILE existsREP page
+;cursor(10,10);put("Bitte gewünschten Schrifttyp für Listen und andere");
+cursor(10,11);put("Druckausgaben angeben : ");editget(gewzeichensatz);exists
+:=NOT fontexists(gewzeichensatz)PER ;procaufruf1CAT gewzeichensatz;
+procaufruf1CAT procaufrufende;procaufruf2CAT gewzeichensatz;procaufruf2CAT
+procaufrufende;startinsertinggesamtsystem;commanddialogue(FALSE );forget(all)
+;commanddialogue(TRUE );FI ;BOOL PROC einzurichten(TEXT CONST teilsystemnr):
+pos(gueltigepraefixe,teilsystemtrenner+teilsystemnr+teilsystemtrenner)>0END
+PROC einzurichten;TEXT PROC inv(TEXT CONST txt):""+txt+"�"ENDPROC inv;PROC
+startinsertinggesamtsystem:TASK VAR t;INT VAR msgcode;DATASPACE VAR ds:=
+nilspace;maske;maskentexteinitialisieren;maskentexte;IF NOT maskeeditiert
+THEN LEAVE startinsertinggesamtsystemFI ;line;kanal:=channel;taskpassword(
+taskpasswort);beginpassword(beginnpasswort);fetch((ALL sourcetaskbaisydb)
+LIKE "*BAISY-0",sourcetaskbaisydb);INT VAR pospraefixende;THESAURUS VAR thes
+:=allLIKE "*.BAISY-0";TEXT VAR datenraumname;INT VAR indexthes:=0;get(thes,
+datenraumname,indexthes);WHILE indexthes>0REP pospraefixende:=pos(
+datenraumname,praefixtrenner);ausbaustufenr:=int(subtext(datenraumname,1,
+pospraefixende-1));forget(datenraumname,quiet);get(thes,datenraumname,
+indexthes)PER ;gueltigepraefixeCAT ausbaustufe(ausbaustufenr);
+tasksourcequelle:=sourcetaskbaisy;checkoff;fetchundinsert("BASIS.files");
+break(quiet);disablestop;IF NOT fehlerbeiinsertTHEN begin("ACCESS",PROC
+startinsertingaccess,t);call(t,0,ds,msgcode);IF msgcode=0THEN fehlerbeiinsert
+:=TRUE FI ;FI ;IF NOT fehlerbeiinsertTHEN begin("baisy server",PROC
+startinsertingbaisyserver,t);call(t,0,ds,msgcode);IF msgcode=0THEN
+fehlerbeiinsert:=TRUE FI ;FI ;IF NOT fehlerbeiinsertTHEN begin("ida server",
+PROC startinsertingidaserver,t);call(t,0,ds,msgcode);IF msgcode=0THEN
+fehlerbeiinsert:=TRUE FI ;FI ;IF NOT fehlerbeiinsertTHEN begin(
+"anschreiben server",PROC startinsertinganschreibenserver,t);call(t,0,ds,
+msgcode);IF msgcode=0THEN fehlerbeiinsert:=TRUE FI ;FI ;IF NOT
+fehlerbeiinsertTHEN begin("statistik server",PROC
+startinsertingstatistikserver,t);call(t,0,ds,msgcode);IF msgcode=0THEN
+fehlerbeiinsert:=TRUE FI ;FI ;IF NOT fehlerbeiinsertTHEN begin(
+"kurswahl server",PROC startinsertingkurswahlserver,t);call(t,0,ds,msgcode);
+IF msgcode=0THEN fehlerbeiinsert:=TRUE FI ;FI ;IF NOT fehlerbeiinsertTHEN
+begin("stundenplan server",PROC startinsertingstundenplanserver,t);call(t,0,
+ds,msgcode);IF msgcode=0THEN fehlerbeiinsert:=TRUE FI ;FI ;IF NOT
+fehlerbeiinsertTHEN begin("DB.kom",PROC startinsertingdbkom,t);call(t,0,ds,
+msgcode);IF msgcodeMOD 2=0THEN fehlerbeiinsert:=TRUE FI ;IF msgcode>=2THEN
+idanichtinstallierbar:=TRUE FI FI ;clearerror;enablestop;continue(kanal);
+putline("Hier ist wieder "+name(myself));putline("SCHULIS ist "+fehler+
+" eingerichtet !");IF idanichtinstallierbarTHEN putline(
+"Das Modul ""Anwenderspezifische Druckausgaben"" wurde nicht eingerichtet,");
+putline("da die EUMEL-Textverarbeitung fehlt !");lineFI ;IF NOT
+fehlerbeiinsertTHEN putline(
+"Bitte Task ""isp.archive"" unter SYSUR einrichten!");putline(
+"Bitte Task ""LOG"" unter SYSUR einrichten! <RETURN>")ELSE putline(
+"Bitte beliebige Taste (außer STOP und SV) drücken !")FI ;pause;
+freeglobalmanager.fehler:IF fehlerbeiinsertTHEN "FEHLERHAFT"ELSE
+"ordnungsgemäß"FI .END PROC startinsertinggesamtsystem;PROC
+startinsertingbaisyserver:TASK VAR ruftask;INT VAR msgcodert;DATASPACE VAR
+dsrt:=nilspace;wait(dsrt,msgcodert,ruftask);continue(kanal);line;putline(name
+(myself));tasksourcequelle:=sourcetaskbaisy;line;IF taskpasswort=""THEN
+taskpassword("-")ELSE taskpassword(taskpasswort)FI ;beginpassword(
+beginnpasswort);disablestop;fetch((ALL sourcetaskbaisydb)LIKE "*BAISY-*",
+sourcetaskbaisydb);INT VAR pospraefixende;THESAURUS VAR thes:=allLIKE (text(
+ausbaustufenr)+".BAISY-*");TEXT VAR datenraumname,neuername;INT VAR indexthes
+:=0;get(thes,datenraumname,indexthes);WHILE indexthes>0REP pospraefixende:=
+pos(datenraumname,praefixtrenner);neuername:=subtext(datenraumname,
+pospraefixende+1);rename(datenraumname,neuername);get(thes,datenraumname,
+indexthes)PER ;fetchundinsert("BAISY SERVER.files");IF iserrorTHEN putline(
+errormessage);clearerror;fehlerbeiinsert:=TRUE FI ;enablestop;putline(name(
+myself)+" ist komplett.");break(quiet);IF fehlerbeiinsertTHEN msgcodert:=0
+ELSE msgcodert:=1FI ;send(ruftask,msgcodert,dsrt);do("baisy server")END PROC
+startinsertingbaisyserver;PROC startinsertingidaserver:TASK VAR ruftask;INT
+VAR msgcodert;DATASPACE VAR dsrt:=nilspace;wait(dsrt,msgcodert,ruftask);
+continue(kanal);line;putline(name(myself));tasksourcequelle:=
+sourcetaskschulis;#fehlerbeiinsert:=FALSE ;#line;IF taskpasswort=""THEN
+taskpassword("-")ELSE taskpassword(taskpasswort)FI ;beginpassword(
+beginnpasswort);disablestop;fetchundinsert("0.IDA SERVER.files");IF iserror
+THEN putline(errormessage);clearerror;fehlerbeiinsert:=TRUE FI ;enablestop;
+putline(name(myself)+" ist komplett.");break(quiet);IF fehlerbeiinsertTHEN
+msgcodert:=0ELSE msgcodert:=1FI ;send(ruftask,msgcodert,dsrt);do("ida server"
+)END PROC startinsertingidaserver;PROC startinsertingstundenplanserver:TASK
+VAR ruftask;INT VAR msgcodert;DATASPACE VAR dsrt:=nilspace;wait(dsrt,
+msgcodert,ruftask);continue(kanal);line;putline(name(myself));#
+fehlerbeiinsert:=FALSE ;#line;taskpassword("-");beginpassword("-");fetch((
+ALL sourcetaskschulisdb)LIKE stundenplanpraefix,sourcetaskschulisdb);putline(
+name(myself)+" ist komplett.");break(quiet);msgcodert:=1;send(ruftask,
+msgcodert,dsrt);freeglobalmanager;END PROC startinsertingstundenplanserver;
+PROC startinsertingstatistikserver:TASK VAR ruftask;INT VAR msgcodert;
+DATASPACE VAR dsrt:=nilspace;wait(dsrt,msgcodert,ruftask);continue(kanal);
+line;putline(name(myself));tasksourcequelle:=sourcetaskschulis;#
+fehlerbeiinsert:=FALSE ;#line;IF taskpasswort=""THEN taskpassword("-")ELSE
+taskpassword(taskpasswort)FI ;beginpassword(beginnpasswort);disablestop;
+fetchundinsert("5.STATISTIK SERVER.files");IF iserrorTHEN putline(
+errormessage);clearerror;fehlerbeiinsert:=TRUE FI ;enablestop;putline(name(
+myself)+" ist komplett.");break(quiet);IF fehlerbeiinsertTHEN msgcodert:=0
+ELSE msgcodert:=1FI ;send(ruftask,msgcodert,dsrt);do("statistik manager")END
+PROC startinsertingstatistikserver;PROC startinsertingkurswahlserver:TASK
+VAR ruftask;INT VAR msgcodert;DATASPACE VAR dsrt:=nilspace;wait(dsrt,
+msgcodert,ruftask);continue(kanal);line;putline(name(myself));#
+fehlerbeiinsert:=FALSE ;#line;taskpassword("-");beginpassword("-");fetch((
+ALL sourcetaskschulisdb)LIKE kurswahlpraefix,sourcetaskschulisdb);putline(
+name(myself)+" ist komplett.");break(quiet);msgcodert:=1;send(ruftask,
+msgcodert,dsrt);freeglobalmanager;END PROC startinsertingkurswahlserver;PROC
+startinsertinganschreibenserver:TASK VAR ruftask;INT VAR msgcodert;DATASPACE
+VAR dsrt:=nilspace;wait(dsrt,msgcodert,ruftask);continue(kanal);line;putline(
+name(myself));#fehlerbeiinsert:=FALSE ;#line;taskpassword(taskpasswort);
+beginpassword(beginnpasswort);disablestop;fetch("VORDRUCKE.files",
+sourcetaskvordrucke);fetch(ALL "VORDRUCKE.files",sourcetaskvordrucke);
+clearerror;enablestop;putline(name(myself)+" ist komplett.");break(quiet);
+msgcodert:=1;send(ruftask,msgcodert,dsrt);freeglobalmanager;END PROC
+startinsertinganschreibenserver;PROC startinsertingdbdd:TASK VAR t,ruftask;
+INT VAR msgcodert,msgcode;DATASPACE VAR dsrt:=nilspace,ds:=nilspace;wait(dsrt
+,msgcodert,ruftask);continue(kanal);line;putline(name(myself));line;
+taskpassword(taskpasswort);beginpassword(beginnpasswort);disablestop;
+tasksourcequelle:=sourcetaskschulis;fetchundinsert("0.IDA SICHERUNG.files");
+tasksourcequelle:=sourcetaskbaisy;fetchundinsert("SICHERUNG.files");do(
+"postfix ("""")");do("ausgabe namen");do("kf (TRUE)");IF iserrorTHEN putline(
+errormessage);clearerror;fehlerbeiinsert:=TRUE FI ;enablestop;IF NOT
+fehlerbeiinsertTHEN erzeugeeumelbasebaisy;erzeugeeumelbaseschulis;FI ;break(
+quiet);IF NOT fehlerbeiinsertTHEN begin("statistik sicherung",PROC
+startinsertingstatistiksich,t);call(t,0,ds,msgcode);IF msgcode=0THEN
+fehlerbeiinsert:=TRUE FI ;FI ;IF NOT fehlerbeiinsertTHEN begin(
+"schulis sicherung",PROC startinsertingschulissich,t);call(t,0,ds,msgcode);
+IF msgcode=0THEN fehlerbeiinsert:=TRUE FI ;FI ;IF NOT fehlerbeiinsertTHEN
+begin("baisy sicherung",PROC startinsertingbaisysich,t);call(t,0,ds,msgcode);
+IF msgcode=0THEN fehlerbeiinsert:=TRUE FI ;FI ;IF NOT fehlerbeiinsertTHEN
+begin("ida sicherung",PROC startinsertingidasich,t);call(t,0,ds,msgcode);IF
+msgcode=0THEN fehlerbeiinsert:=TRUE FI ;FI ;IF fehlerbeiinsertTHEN msgcodert
+:=0ELSE msgcodert:=1FI ;send(ruftask,msgcodert,dsrt);freeglobalmanagerEND
+PROC startinsertingdbdd;PROC startinsertingstatistiksich:TASK VAR ruftask;
+INT VAR msgcodert;DATASPACE VAR dsrt:=nilspace;wait(dsrt,msgcodert,ruftask);
+continue(kanal);line;putline(name(myself));line;taskpassword(taskpasswort);
+beginpassword(beginnpasswort);break(quiet);msgcodert:=1;send(ruftask,
+msgcodert,dsrt);do("statistik(TRUE)");do(" postfix ("""") ");commanddialogue(
+FALSE );do("isp monitor sicherungstask(""Statistik"")")END PROC
+startinsertingstatistiksich;PROC startinsertingidasich:TASK VAR ruftask;INT
+VAR msgcodert;DATASPACE VAR dsrt:=nilspace;wait(dsrt,msgcodert,ruftask);
+continue(kanal);line;putline(name(myself));line;taskpassword(taskpasswort);
+beginpassword(beginnpasswort);break(quiet);msgcodert:=1;send(ruftask,
+msgcodert,dsrt);do("ida(TRUE)");do("open mit loeschen (FALSE)");do(
+" postfix ("""") ");do(" fetch dd (""EUMELbase.schulis"") ");do(
+" BOOL VAR b:: db open (""EUMELbase.schulis"") ");commanddialogue(FALSE );do(
+"isp monitor sicherungstask(""EUMELbase.schulis"")")ENDPROC
+startinsertingidasich;PROC startinsertingschulissich:TASK VAR ruftask;INT
+VAR msgcodert;DATASPACE VAR dsrt:=nilspace;wait(dsrt,msgcodert,ruftask);
+continue(kanal);line;putline(name(myself));line;taskpassword(taskpasswort);
+beginpassword(beginnpasswort);tasksourcequelle:=sourcetaskschulisdb;fetch((
+ALL tasksourcequelle)LIKE "EUMELbase.schulis*",tasksourcequelle);break(quiet)
+;msgcodert:=1;send(ruftask,msgcodert,dsrt);do(
+"isp monitor sicherungstask(""EUMELbase.schulis"")")ENDPROC
+startinsertingschulissich;PROC startinsertingbaisysich:TASK VAR ruftask;INT
+VAR msgcodert;DATASPACE VAR dsrt:=nilspace;wait(dsrt,msgcodert,ruftask);
+continue(kanal);line;putline(name(myself));line;taskpassword(taskpasswort);
+beginpassword(beginnpasswort);tasksourcequelle:=sourcetaskbaisydb;fetch((ALL
+tasksourcequelle)LIKE "EUMELbase.baisy*",tasksourcequelle);fetch((ALL
+tasksourcequelle)LIKE "*BAISY-*",tasksourcequelle);rename(text(ausbaustufenr)
++".BAISY-0","BAISY-0");rename(text(ausbaustufenr)+".BAISY-1","BAISY-1");break
+(quiet);msgcodert:=1;send(ruftask,msgcodert,dsrt);do(
+"isp monitor sicherungstask(""EUMELbase.baisy"")")ENDPROC
+startinsertingbaisysich;PROC startinsertingdbkom:TASK VAR t,ruftask;INT VAR
+msgcodert,msgcode;DATASPACE VAR dsrt:=nilspace,ds:=nilspace;wait(dsrt,
+msgcodert,ruftask);continue(kanal);line;putline(name(myself));
+tasksourcequelle:=sourcetaskbaisy;#fehlerbeiinsert:=FALSE ;#
+idanichtinstallierbar:=FALSE ;line;taskpassword(taskpasswort);beginpassword(
+beginnpasswort);disablestop;fetch("EUMELbase.schulis",sourcetaskschulisdb);
+fetchundinsert("DB.files");IF iserrorTHEN putline(errormessage);clearerror;
+fehlerbeiinsert:=TRUE FI ;enablestop;break(quiet);IF NOT fehlerbeiinsertTHEN
+begin("DB.dd",PROC startinsertingdbdd,t);call(t,0,ds,msgcode);IF msgcode=0
+THEN fehlerbeiinsert:=TRUE FI ;FI ;IF NOT fehlerbeiinsertTHEN begin(
+"standard",PROC startinsertingstandard,t);call(t,0,ds,msgcode);IF msgcodeMOD
+2=0THEN fehlerbeiinsert:=TRUE FI ;IF msgcode>=2THEN idanichtinstallierbar:=
+TRUE FI FI ;continue(kanal);putline(name(myself)+" ist komplett.");break(
+quiet);IF fehlerbeiinsertTHEN msgcodert:=0ELSE msgcodert:=1FI ;IF
+idanichtinstallierbarTHEN msgcodert:=msgcodert+2FI ;send(ruftask,msgcodert,
+dsrt);freeglobalmanager;END PROC startinsertingdbkom;PROC
+startinsertingstandard:TASK VAR t,ruftask;INT VAR msgcodert,msgcode;
+DATASPACE VAR dsrt:=nilspace,ds:=nilspace;wait(dsrt,msgcodert,ruftask);
+continue(kanal);line;putline(name(myself));tasksourcequelle:=sourcetaskbaisy;
+#fehlerbeiinsert:=FALSE ;#idanichtinstallierbar:=FALSE ;line;taskpassword(
+taskpasswort);beginpassword(beginnpasswort);disablestop;fetchundinsert(
+"STANDARD.files");IF iserrorTHEN putline(errormessage);clearerror;
+fehlerbeiinsert:=TRUE FI ;enablestop;break(quiet);IF einzurichten(teilsystem6
+)THEN IF NOT fehlerbeiinsertTHEN IF procexists("autopageform")THEN begin(
+"ida",PROC startinsertingida,t);call(t,0,ds,msgcode);IF msgcode=0THEN
+fehlerbeiinsert:=TRUE FI ELSE idanichtinstallierbar:=TRUE FI FI ;FI ;
+fehlerbeiinsert:=FALSE ;IF NOT fehlerbeiinsertTHEN begin(
+"anschrlist werkzeuge",PROC startinsertinganschrlistwerkzeuge,t);call(t,0,ds,
+msgcode);IF msgcode=0THEN fehlerbeiinsert:=TRUE FI ;FI ;fehlerbeiinsert:=
+FALSE ;IF NOT fehlerbeiinsertTHEN begin("erfassungen",PROC
+startinsertingerfassungen,t);call(t,0,ds,msgcode);IF msgcode=0THEN
+fehlerbeiinsert:=TRUE FI ;FI ;fehlerbeiinsert:=FALSE ;IF NOT fehlerbeiinsert
+THEN begin("anwendung",PROC startinsertinganwendung,t);call(t,0,ds,msgcode);
+IF msgcode=0THEN fehlerbeiinsert:=TRUE FI ;FI ;continue(kanal);putline(name(
+myself)+" ist komplett.");break(quiet);IF fehlerbeiinsertTHEN msgcodert:=0
+ELSE msgcodert:=1FI ;IF idanichtinstallierbarTHEN msgcodert:=msgcodert+2FI ;
+send(ruftask,msgcodert,dsrt);freeglobalmanager;END PROC
+startinsertingstandard;PROC startinsertingaccess:TASK VAR t,ruftask;INT VAR
+msgcodert,msgcode;DATASPACE VAR dsrt:=nilspace,ds:=nilspace;wait(dsrt,
+msgcodert,ruftask);continue(kanal);line;putline(name(myself));
+tasksourcequelle:=sourcetaskeumelbase;#fehlerbeiinsert:=FALSE ;#line;
+taskpassword(taskpasswort);beginpassword(beginnpasswort);disablestop;
+fetchundinsert("ACCESS.files");IF iserrorTHEN putline(errormessage);
+clearerror;fehlerbeiinsert:=TRUE FI ;enablestop;break(quiet);IF NOT
+fehlerbeiinsertTHEN begin("LOCAL",PROC startinsertinglocal,t);call(t,0,ds,
+msgcode);IF msgcode=0THEN fehlerbeiinsert:=TRUE FI ;FI ;IF NOT
+fehlerbeiinsertTHEN begin("DB REORG",PROC startinsertingdbreorg,t);call(t,0,
+ds,msgcode);IF msgcode=0THEN fehlerbeiinsert:=TRUE FI ;FI ;continue(kanal);
+putline(name(myself)+" ist komplett.");break(quiet);IF fehlerbeiinsertTHEN
+msgcodert:=0ELSE msgcodert:=1FI ;send(ruftask,msgcodert,dsrt);
+freeglobalmanagerEND PROC startinsertingaccess;PROC startinsertinglocal:TASK
+VAR t,ruftask;INT VAR msgcodert,msgcode;DATASPACE VAR dsrt:=nilspace,ds:=
+nilspace;wait(dsrt,msgcodert,ruftask);continue(kanal);line;putline(name(
+myself));tasksourcequelle:=sourcetaskschulis;line;taskpassword(taskpasswort);
+beginpassword(beginnpasswort);disablestop;fetchundinsert("0.LOCAL.files");IF
+iserrorTHEN putline(errormessage);clearerror;fehlerbeiinsert:=TRUE FI ;
+enablestop;break(quiet);IF NOT fehlerbeiinsertTHEN begin("MM",PROC
+startinsertingmm,t);call(t,0,ds,msgcode);IF msgcode=0THEN fehlerbeiinsert:=
+TRUE FI ;FI ;continue(kanal);putline(name(myself)+" ist komplett.");break(
+quiet);IF fehlerbeiinsertTHEN msgcodert:=0ELSE msgcodert:=1FI ;send(ruftask,
+msgcodert,dsrt);freeglobalmanagerEND PROC startinsertinglocal;PROC
+startinsertingdbreorg:TASK VAR t,ruftask;INT VAR msgcodert,msgcode;DATASPACE
+VAR dsrt:=nilspace,ds:=nilspace;wait(dsrt,msgcodert,ruftask);continue(kanal);
+line;putline(name(myself));tasksourcequelle:=sourcetaskbaisy;line;
+taskpassword(taskpasswort);beginpassword(beginnpasswort);disablestop;
+fetchundinsert("DB REORG.files");IF iserrorTHEN putline(errormessage);
+clearerror;fehlerbeiinsert:=TRUE FI ;enablestop;putline(name(myself)+
+" ist komplett.");break(quiet);IF fehlerbeiinsertTHEN msgcodert:=0ELSE
+msgcodert:=1FI ;send(ruftask,msgcodert,dsrt);do("db reorganisation manager")
+END PROC startinsertingdbreorg;PROC startinsertingmm:TASK VAR ruftask;INT
+VAR msgcodert;DATASPACE VAR dsrt:=nilspace;wait(dsrt,msgcodert,ruftask);
+continue(kanal);line;putline(name(myself));tasksourcequelle:=
+sourcetaskeumelbase;line;taskpassword(taskpasswort);beginpassword(
+beginnpasswort);disablestop;fetchundinsert("MM BAISY.files");IF iserrorTHEN
+fehlerbeiinsert:=TRUE ;putline(errormessage);clearerrorFI ;enablestop;putline
+(name(myself)+" ist komplett.");enablestop;break(quiet);IF fehlerbeiinsert
+THEN msgcodert:=0ELSE msgcodert:=1FI ;send(ruftask,msgcodert,dsrt);do(
+"generate db manager")END PROC startinsertingmm;PROC erzeugeeumelbasebaisy:
+disablestop;testtask:=/"EUMELbase.baisy";IF iserrorTHEN clearerror;
+tasksourcequelle:=sourcetaskbaisydb;fetch((ALL tasksourcequelle)LIKE
+"EUMELbase.baisy*",tasksourcequelle);do(
+"BOOL VAR b:: create db (""EUMELbase.baisy"")");do(
+"restore db (""EUMELbase.baisy"")");commanddialogue(FALSE );forget(all);
+commanddialogue(TRUE );FI ;enablestopENDPROC erzeugeeumelbasebaisy;PROC
+erzeugeeumelbaseschulis:disablestop;testtask:=/"EUMELbase.schulis";IF iserror
+THEN clearerror;tasksourcequelle:=sourcetaskschulisdb;fetch((ALL
+tasksourcequelle)LIKE "EUMELbase.schulis*",tasksourcequelle);do(
+"BOOL VAR b:: create db (""EUMELbase.schulis"")");do(
+"restore db (""EUMELbase.schulis"")");commanddialogue(FALSE );forget(all);
+commanddialogue(TRUE );FI ;enablestopENDPROC erzeugeeumelbaseschulis;PROC
+startinsertinganwendung:TASK VAR ruftask,t;INT VAR msgcodert,i;DATASPACE VAR
+dsrt:=nilspace;wait(dsrt,msgcodert,ruftask);continue(kanal);line;putline(name
+(myself));tasksourcequelle:=sourcetaskschulis;line;taskpassword(taskpasswort)
+;beginpassword(beginnpasswort);disablestop;tasksourcequelle:=sourcetaskbaisy;
+checkoff;fetchundinsert("ANWENDUNG.files");IF iserrorTHEN putline(
+errormessage);clearerror;fehlerbeiinsert:=TRUE FI ;enablestop;break(quiet);
+FOR iFROM 1UPTO anzahlschulistasksREP IF NOT fehlerbeiinsertTHEN begin(
+"schulis"+text(i),PROC startschulis1,t);FI ;PER ;continue(kanal);putline(name
+(myself)+" ist komplett.");break(quiet);IF fehlerbeiinsertTHEN msgcodert:=0
+ELSE msgcodert:=1FI ;send(ruftask,msgcodert,dsrt);freeglobalmanager;END PROC
+startinsertinganwendung;PROC startinsertinganschrlistwerkzeuge:TASK VAR
+ruftask,t;INT VAR msgcodert,msgcode;DATASPACE VAR dsrt:=nilspace,ds:=nilspace
+;wait(dsrt,msgcodert,ruftask);continue(kanal);line;putline(name(myself));
+tasksourcequelle:=sourcetaskschulis;#fehlerbeiinsert:=FALSE ;#line;
+taskpassword(taskpasswort);beginpassword(beginnpasswort);disablestop;
+fetchundinsert("0.ANSCHRLISTWERKZEUGE.files");do(procaufruf1);fetchundinsert(
+"0.ANSCHRLISTWERKZEUGE TEIL2.files");IF iserrorTHEN putline(errormessage);
+clearerror;fehlerbeiinsert:=TRUE FI ;enablestop;break(quiet);IF einzurichten(
+teilsystem5)THEN fehlerbeiinsert:=FALSE ;IF NOT fehlerbeiinsertTHEN
+installverzeichnis:="5.STATISTIK.files";begin("statistik",PROC
+startinsertinganwendungstask,t);call(t,0,ds,msgcode);IF msgcode=0THEN
+fehlerbeiinsert:=TRUE FI ;FI ;FI ;IF einzurichten(teilsystem2)THEN
+fehlerbeiinsert:=FALSE ;IF NOT fehlerbeiinsertTHEN installverzeichnis:=
+"2.AUSWERTUNGEN KURSWAHL.files";begin("auswertungen kurswahl",PROC
+startinsertinganwendungstask,t);call(t,0,ds,msgcode);IF msgcode=0THEN
+fehlerbeiinsert:=TRUE FI ;FI ;FI ;IF einzurichten(teilsystem4)THEN
+fehlerbeiinsert:=FALSE ;IF NOT fehlerbeiinsertTHEN installverzeichnis:=
+"4.AUSWERTUNGEN STUNDENPLAN 3.files";begin("auswertungen stundenplan 3",PROC
+startinsertinganwendungstask,t);call(t,0,ds,msgcode);IF msgcode=0THEN
+fehlerbeiinsert:=TRUE FI ;FI ;fehlerbeiinsert:=FALSE ;IF NOT fehlerbeiinsert
+THEN installverzeichnis:="4.AUSWERTUNGEN STUNDENPLAN 2.files";begin(
+"auswertungen stundenplan 2",PROC startinsertinganwendungstask,t);call(t,0,ds
+,msgcode);IF msgcode=0THEN fehlerbeiinsert:=TRUE FI ;FI ;fehlerbeiinsert:=
+FALSE ;IF NOT fehlerbeiinsertTHEN installverzeichnis:=
+"4.AUSWERTUNGEN STUNDENPLAN.files";begin("auswertungen stundenplan",PROC
+startinsertinganwendungstask,t);call(t,0,ds,msgcode);IF msgcode=0THEN
+fehlerbeiinsert:=TRUE FI ;FI ;FI ;fehlerbeiinsert:=FALSE ;IF NOT
+fehlerbeiinsertTHEN installverzeichnis:="0.ANSCHREIBEN.files";begin(
+"anschreiben",PROC startinsertinganwendungstask,t);call(t,0,ds,msgcode);IF
+msgcode=0THEN fehlerbeiinsert:=TRUE FI ;FI ;fehlerbeiinsert:=FALSE ;IF NOT
+fehlerbeiinsertTHEN installverzeichnis:="0.LISTEN 2.files";begin("listen 2",
+PROC startinsertinganwendungstask,t);call(t,0,ds,msgcode);IF msgcode=0THEN
+fehlerbeiinsert:=TRUE FI ;FI ;fehlerbeiinsert:=FALSE ;IF NOT fehlerbeiinsert
+THEN installverzeichnis:="0.LISTEN.files";begin("listen",PROC
+startinsertinganwendungstask,t);call(t,0,ds,msgcode);IF msgcode=0THEN
+fehlerbeiinsert:=TRUE FI ;FI ;continue(kanal);putline(name(myself)+
+" ist komplett.");break(quiet);IF fehlerbeiinsertTHEN msgcodert:=0ELSE
+msgcodert:=1FI ;send(ruftask,msgcodert,dsrt);freeglobalmanager;END PROC
+startinsertinganschrlistwerkzeuge;PROC startinsertinganwendungstask:TASK VAR
+ruftask,t;INT VAR msgcodert;DATASPACE VAR dsrt:=nilspace;wait(dsrt,msgcodert,
+ruftask);continue(kanal);line;putline(name(myself));tasksourcequelle:=
+sourcetaskschulis;#fehlerbeiinsert:=FALSE ;#line;taskpassword(taskpasswort);
+beginpassword(beginnpasswort);disablestop;fetchundinsert(installverzeichnis);
+IF iserrorTHEN putline(errormessage);clearerror;fehlerbeiinsert:=TRUE FI ;
+enablestop;break(quiet);IF NOT fehlerbeiinsertTHEN begin(name(myself)+
+" manager",PROC starteaufrufmanager,t);FI ;continue(kanal);putline(name(
+myself)+" ist komplett.");break(quiet);IF fehlerbeiinsertTHEN msgcodert:=0
+ELSE msgcodert:=1FI ;send(ruftask,msgcodert,dsrt);freeglobalmanager;END PROC
+startinsertinganwendungstask;PROC startinsertingerfassungen:TASK VAR ruftask,
+t;INT VAR msgcodert,msgcode;DATASPACE VAR dsrt:=nilspace,ds:=nilspace;wait(
+dsrt,msgcodert,ruftask);continue(kanal);line;putline(name(myself));
+tasksourcequelle:=sourcetaskschulis;#fehlerbeiinsert:=FALSE ;#line;
+taskpassword(taskpasswort);beginpassword(beginnpasswort);disablestop;
+fetchundinsert("0.ERFASSUNGEN.files");IF iserrorTHEN putline(errormessage);
+clearerror;fehlerbeiinsert:=TRUE FI ;enablestop;break(quiet);IF einzurichten(
+teilsystem2)THEN fehlerbeiinsert:=FALSE ;IF NOT fehlerbeiinsertTHEN
+installverzeichnis:="2.ERFASSUNGEN KURSWAHL 2.files";begin(
+"erfassungen kurswahl 2",PROC startinsertinganwendungstask,t);call(t,0,ds,
+msgcode);IF msgcode=0THEN fehlerbeiinsert:=TRUE FI ;FI ;fehlerbeiinsert:=
+FALSE ;IF NOT fehlerbeiinsertTHEN installverzeichnis:=
+"2.ERFASSUNGEN KURSWAHL.files";begin("erfassungen kurswahl",PROC
+startinsertinganwendungstask,t);call(t,0,ds,msgcode);IF msgcode=0THEN
+fehlerbeiinsert:=TRUE FI ;FI ;FI ;IF einzurichten(teilsystem4)THEN IF NOT
+fehlerbeiinsertTHEN installverzeichnis:="4.ERFASSUNGEN STUNDENPLAN.files";
+begin("erfassungen stundenplan",PROC startinsertingerfassungenstundenplan,t);
+call(t,0,ds,msgcode);IF msgcode=0THEN fehlerbeiinsert:=TRUE FI ;FI ;FI ;
+fehlerbeiinsert:=FALSE ;IF NOT fehlerbeiinsertTHEN installverzeichnis:=
+"0.ERFASSUNGEN EINZELN 2.files";begin("erfassungen einzeln 2",PROC
+startinsertinganwendungstask,t);call(t,0,ds,msgcode);IF msgcode=0THEN
+fehlerbeiinsert:=TRUE FI ;FI ;fehlerbeiinsert:=FALSE ;IF NOT fehlerbeiinsert
+THEN installverzeichnis:="0.ERFASSUNGEN EINZELN.files";begin(
+"erfassungen einzeln",PROC startinsertinganwendungstask,t);call(t,0,ds,
+msgcode);IF msgcode=0THEN fehlerbeiinsert:=TRUE FI ;FI ;fehlerbeiinsert:=
+FALSE ;IF einzurichten(teilsystem4)THEN IF NOT fehlerbeiinsertTHEN
+installverzeichnis:="4.ERFASSUNGEN LISTENWEISE 3.files";begin(
+"erfassungen listenweise 3",PROC startinsertinganwendungstask,t);call(t,0,ds,
+msgcode);IF msgcode=0THEN fehlerbeiinsert:=TRUE FI ;FI ;fehlerbeiinsert:=
+FALSE ;IF NOT fehlerbeiinsertTHEN installverzeichnis:=
+"4.ERFASSUNGEN LISTENWEISE 2.files";begin("erfassungen listenweise 2",PROC
+startinsertinganwendungstask,t);call(t,0,ds,msgcode);IF msgcode=0THEN
+fehlerbeiinsert:=TRUE FI ;FI ;FI ;fehlerbeiinsert:=FALSE ;IF NOT
+fehlerbeiinsertTHEN installverzeichnis:="0.ERFASSUNGEN LISTENWEISE.files";
+begin("erfassungen listenweise",PROC startinsertinganwendungstask,t);call(t,0
+,ds,msgcode);IF msgcode=0THEN fehlerbeiinsert:=TRUE FI ;FI ;continue(kanal);
+putline(name(myself)+" ist komplett.");break(quiet);IF fehlerbeiinsertTHEN
+msgcodert:=0ELSE msgcodert:=1FI ;send(ruftask,msgcodert,dsrt);
+freeglobalmanager;END PROC startinsertingerfassungen;PROC
+startinsertingerfassungenstundenplan:TASK VAR ruftask,t;INT VAR msgcodert;
+DATASPACE VAR dsrt:=nilspace;wait(dsrt,msgcodert,ruftask);continue(kanal);
+line;putline(name(myself));tasksourcequelle:=sourcetaskschulis;#
+fehlerbeiinsert:=FALSE ;#line;taskpassword(taskpasswort);beginpassword(
+beginnpasswort);disablestop;fetchundinsert("4.ERFASSUNGEN STUNDENPLAN.files")
+;IF iserrorTHEN putline(errormessage);clearerror;fehlerbeiinsert:=TRUE FI ;
+enablestop;break(quiet);IF NOT fehlerbeiinsertTHEN begin(name(myself)+
+" manager",PROC starteaufrufmanagersingletask,t);FI ;continue(kanal);putline(
+name(myself)+" ist komplett.");break(quiet);IF fehlerbeiinsertTHEN msgcodert
+:=0ELSE msgcodert:=1FI ;send(ruftask,msgcodert,dsrt);freeglobalmanager;END
+PROC startinsertingerfassungenstundenplan;PROC starteaufrufmanager:do(
+"starte aufruf manager")ENDPROC starteaufrufmanager;PROC
+starteaufrufmanagersingletask:do("starte aufruf manager(1)")ENDPROC
+starteaufrufmanagersingletask;PROC startinsertingida:TASK VAR ruftask,t;INT
+VAR msgcodert;DATASPACE VAR dsrt:=nilspace;wait(dsrt,msgcodert,ruftask);
+continue(kanal);line;putline(name(myself));tasksourcequelle:=
+sourcetaskschulis;line;taskpassword(taskpasswort);beginpassword(
+beginnpasswort);disablestop;fetchundinsert("6.IDA.files");do(procaufruf2);IF
+iserrorTHEN putline(errormessage);clearerror;fehlerbeiinsert:=TRUE FI ;
+enablestop;break(quiet);IF NOT fehlerbeiinsertTHEN begin("ida manager",PROC
+starteaufrufmanager,t);FI ;continue(kanal);putline(name(myself)+
+" ist komplett.");break(quiet);IF fehlerbeiinsertTHEN msgcodert:=0ELSE
+msgcodert:=1FI ;send(ruftask,msgcodert,dsrt);freeglobalmanager;END PROC
+startinsertingida;PROC startbaisy1:do("monitor")END PROC startbaisy1;PROC
+startschulis1:disablestop;startschulisunterdisablestop;IF iserrorTHEN
+clearerrorFI ;enablestop;do("monitor")END PROC startschulis1;PROC
+startschulisunterdisablestop:enablestop;do(
+"oeffne datenbank (""EUMELbase.schulis"")");do("starte schulis");END PROC
+startschulisunterdisablestop;PROC fetchundinsert(TEXT CONST datname):IF
+fehlerbeiinsertTHEN LEAVE fetchundinsertFI ;disablestop;fetch(datname,
+tasksourcequelle);putline("Task "+name(myself)+" wird eingerichtet !");INT
+VAR indexnr:=0;TEXT VAR thesname;THESAURUS VAR thes:=ALL datname;get(thes,
+thesname,indexnr);WHILE indexnr>0REP IF dateizuberuecksichtigen(thesname)
+THEN fetch(thesname,tasksourcequelle);putline(thesname);INT VAR taskkanal:=
+channel;break(quiet);insert(thesname);continue(taskkanal);IF iserrorTHEN
+fehlerbeiinsert:=TRUE ;put(errormessage);clearerrorFI ;forget(thesname,quiet)
+FI ;get(thes,thesname,indexnr);PER ;commanddialogue(FALSE );forget(datname,
+quiet);commanddialogue(TRUE );enablestop.END PROC fetchundinsert;BOOL PROC
+dateizuberuecksichtigen(TEXT CONST dateiname):INT VAR pospraefixende:=pos(
+dateiname,praefixtrenner);TEXT VAR dateipraefix:=subtext(dateiname,1,
+pospraefixende-1);IF dateipraefix=""THEN TRUE ELIF dateipraefix=
+allgemeinedateiTHEN TRUE ELIF dateipraefix>"9"THEN TRUE ELSE pos(
+gueltigepraefixe,teilsystemtrenner+dateipraefix+teilsystemtrenner)>0FI END
+PROC dateizuberuecksichtigen;LET invers="",inversoff="",cdown=10,cup=3,esc=
+27,hop=1,zeilenlaenge=80,strichelement="=",maxiofelder=15;TYPE MASKENTEXTE =
+STRUCT (INT x,y,l,TEXT t,BOOL lfest);ROW maxiofelderMASKENTEXTE VAR mt;TASK
+PROC sourcetask(INT CONST i):IF int(mt[i+1].t)<>meinestationTHEN int(mt[i+1].
+t)/mt[i].tELSE /mt[i].tFI ENDPROC sourcetask;TASK PROC sourcetaskbaisy:
+sourcetask(1)ENDPROC sourcetaskbaisy;TASK PROC sourcetaskschulis:sourcetask(3
+)ENDPROC sourcetaskschulis;TASK PROC sourcetaskeumelbase:sourcetask(5)
+ENDPROC sourcetaskeumelbase;TASK PROC sourcetaskvordrucke:sourcetask(7)
+ENDPROC sourcetaskvordrucke;TASK PROC sourcetaskbaisydb:sourcetask(9)ENDPROC
+sourcetaskbaisydb;TASK PROC sourcetaskschulisdb:sourcetask(11)ENDPROC
+sourcetaskschulisdb;INT PROC anzahlschulistasks:int(mt[13].t)ENDPROC
+anzahlschulistasks;TEXT PROC taskpasswort:mt[14].tENDPROC taskpasswort;TEXT
+PROC beginnpasswort:mt[15].tENDPROC beginnpasswort;PROC writexytext(INT
+CONST x,y,TEXT CONST t):cursor(x,y);write(t)ENDPROC writexytext;PROC
+writexyinvers(INT CONST x,y,TEXT CONST t):cursor(x,y);write(invers+t+
+inversoff)ENDPROC writexyinvers;PROC strich(INT CONST zeile):writexytext(1,
+zeile,zeilenlaenge*strichelement)ENDPROC strich;PROC kosmetik:page;strich(1);
+strich(4);strich(23);kopf.kopf:writexyinvers(27,2," S C H U L I S ");
+writexytext(10,3,"Installationsprogramm für SCHULIS Version "+versionsnummer)
+.ENDPROC kosmetik;PROC maske:kosmetik;fuss;rumpf.fuss:writexyinvers(2,24,
+"ESC HOP = Start CURSOR UP/DOWN = nächstes/voriges Feld ESC ESC = Abbruch"
+);.rumpf:writexytext(3,5,
+"BAISY-Quelltexte in Task : auf Station:");
+writexytext(3,7,
+"SCHULIS-Quelltexte in Task : auf Station:");
+writexytext(3,9,
+"EUMELbase-Quelltexte in Task: auf Station:");
+writexytext(3,11,
+"Vordrucke in Task : auf Station:");
+writexytext(3,13,
+"BAISY-Datenbank in Task : auf Station:");
+writexytext(3,15,
+"SCHULIS-Datenbank in Task : auf Station:");
+writexytext(3,20,"Anzahl der Arbeitsplätze für SCHULIS:");writexytext(3,22,
+"Task-Password: Beginn-Password:").ENDPROC maske;
+TEXT PROC mystation:text(station(myself))ENDPROC mystation;PROC
+maskentexteinitialisieren:setmt(1,33,5,27,"BAISY-Quellen");setmt(2,75,5,3,
+mystation,TRUE );setmt(3,33,7,27,"SCHULIS-Quellen");setmt(4,75,7,3,mystation,
+TRUE );setmt(5,33,9,27,"EUMELbase-Quellen");setmt(6,75,9,3,mystation,TRUE );
+setmt(7,33,11,27,"VORDRUCKE");setmt(8,75,11,3,mystation,TRUE );setmt(9,33,13,
+27,"BAISY-SCHULIS-DB");setmt(10,75,13,3,mystation,TRUE );setmt(11,33,15,27,
+"BAISY-SCHULIS-DB");setmt(12,75,15,3,mystation,TRUE );setmt(13,45,20,3,"1",
+TRUE );setmt(14,18,22,21,"");setmt(15,60,22,21,"");ENDPROC
+maskentexteinitialisieren;PROC setmt(INT CONST i,px,py,pl,TEXT CONST pt):
+setmt(i,px,py,pl,pt,FALSE )ENDPROC setmt;PROC setmt(INT CONST i,px,py,pl,
+TEXT CONST pt,BOOL CONST pf):mt[i].x:=px;mt[i].y:=py;mt[i].l:=pl;mt[i].t:=pt;
+mt[i].lfest:=pfENDPROC setmt;PROC maskentexte:INT VAR i;FOR iFROM 1UPTO
+maxiofelderREP writexytext(mt[i].x,mt[i].y,text(mt[i].t,mt[i].l))PER ENDPROC
+maskentexte;BOOL PROC maskeeditiert:INT VAR fnr:=1,editl;TEXT VAR exitchar:=
+"";REP cursor(mt[fnr].x,mt[fnr].y);bestimmeeditlaenge;editget(mt[fnr].t,editl
+,mt[fnr].l,"�
+","��?",exitchar);exitchar:=exitcharSUB length(exitchar);
+SELECT code(exitchar)OF CASE cup:vorigesfeldCASE cdown:naechstesfeldCASE esc:
+kosmetik;cursor(8,10);IF yes(
+"Soll die Installation tatsächlich abgebrochen werden")THEN LEAVE
+maskeeditiertWITH FALSE ELSE restorescreenFI CASE hop:kosmetik;cursor(1,10);
+IF yes("Soll mit der Installation von SCHULIS begonnen werden")THEN page;
+LEAVE maskeeditiertWITH TRUE ELSE restorescreenFI OTHERWISE :naechstesfeld
+ENDSELECT PER ;FALSE .restorescreen:maske;maskentexte.naechstesfeld:fnr:=(fnr
+MOD maxiofelder)+1.vorigesfeld:IF fnr=1THEN fnr:=maxiofelderELSE fnrDECR 1FI
+.bestimmeeditlaenge:IF mt[fnr].lfestTHEN editl:=mt[fnr].lELSE editl:=maxint-1
+FI .ENDPROC maskeeditiert;LET endofpermanenttable=32767;DATASPACE VAR
+bulletinds:=nilspace;FILE VAR bulletinfile;TEXT VAR buffer,objectname,pattern
+;INT VAR packetlink,linenumber;BOOL VAR found:=TRUE ;BOOL PROC procexists(
+TEXT CONST procname):prepbulletin;objectname:=compress(procname);scan(
+objectname);nextsymbol(pattern);packetlink:=endofpermanenttable;standardhelp.
+prepbulletin:forget(bulletinds);bulletinds:=nilspace;bulletinfile:=
+sequentialfile(output,bulletinds);linenumber:=0;buffer:="".standardhelp:
+toobject(pattern);found.END PROC procexists;PROC toobject(TEXT CONST
+searchedobject):LET endofhashtable=1023;INT VAR permanentpointer,index,ntlink
+;ntlink:=0;FOR indexFROM 1UPTO LENGTH searchedobjectREP ntlinkINCR ntlink;IF
+ntlink>endofhashtableTHEN ntlinkDECR endofhashtableFI ;ntlink:=(ntlink+code(
+searchedobjectSUB index))MOD 1024PER ;found:=FALSE ;WHILE yetanotherntentry
+REP permanentpointer:=cdbint(ntlink+1);objectname:=cdbtext(ntlink+2);IF
+objectname=searchedobjectTHEN found:=TRUE ;LEAVE toobjectFI PER .
+yetanotherntentry:ntlink:=cdbint(ntlink);ntlink<>0.END PROC toobject;INT
+PROC cdbint(INT CONST index):EXTERNAL 116END PROC cdbint;TEXT PROC cdbtext(
+INT CONST index):EXTERNAL 117END PROC cdbtext;
+