From 04e68443040c7abad84d66477e98f93bed701760 Mon Sep 17 00:00:00 2001 From: Lars-Dominik Braun Date: Mon, 4 Feb 2019 13:09:03 +0100 Subject: Initial import --- app/schulis/2.2.1/src/insert schulis | 472 +++++++++++++++++++++++++++++++++++ 1 file changed, 472 insertions(+) create mode 100644 app/schulis/2.2.1/src/insert schulis (limited to 'app/schulis/2.2.1/src/insert schulis') 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! ")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; + -- cgit v1.2.3