P8000/WEGA/contrib/ingres/dbs/demo/amx/06.x

49 lines
984 B
Plaintext

/*
** Wir moechten die Betriebsstruktur (Unterstellungsverhaeltnisse)
** recherchieren.
*/
## shared Dt
## i2 leiter;
## char name[21];
int niveau;
amx(argc, argv)
int argc;
char **argv;
{
/*
** Wird kein Argument gegeben, liefert `atoi()' den Wert `0'.
*/
leiter = atoi(argv[1]);
## open Personal
/*
** Ausgangspunkt der Betriebsstruktur ist der Direktor, also die
** Leiternummer `0'.
*/
## retrieve Personal $Leiter == leiter (name = $Name, leiter = $Num)
## {
suche_mitarbeiter();
## }
## close Personal
fflush(stdout);
}
/*
** `suche_mitarbeiter' sucht rekursiv alle Unterstellten eines Angestellten.
*/
suche_mitarbeiter()
{
register int i;
/*
** Die C-Variable `niveau' verwaltet die Unterstellungstiefe,
** un optische Einrueckungen vornehmen zu koennen.
*/
niveau++;
for (i = niveau - 1; i; --i)
putchar('\t');
printf("%-20s %4d\n", name, leiter);
## retrieve Personal $Leiter == leiter (name = $Name, leiter = $Num)
## {
suche_mitarbeiter();
## }
--niveau;
}