P8000/WEGA/contrib/ingres/dbs/demo/dbsr/tot.x

122 lines
2.3 KiB
Plaintext

## shared Dbsr
## int lev;
## char ot[14];
## char ut[14];
## char name[31];
## char me[3];
## int m;
## int menge;
## int meng;
int count;
int mengen[20];
char titname[31];
char titnr[13];
amx()
{
long old;
long new;
char buf[BUFSIZ];
extern long time();
setbuf(stdout, buf);
printf("DBS/R-DEMONSTRATIONSBEISPIEL:\n");
printf("Strukturstueckliste fuer das Teil Nr. 10 (20 Stueck)\n");
fflush(stdout);
## open Total
## open Teile
## open Inf
old = time((char *) 0);
## use (exclusive Total, shared Teile, shared Inf)
## retrieve Total { delete }
## retrieve Teile $T == "0000000000010" (ot = $T, name = $Name, me = $Me)
## {
lev = 0;
menge = 20;
mengen[lev] = 20;
printf("\nStueckliste %-s %-s\n", ot, name);
printf("\n\tAufl.St.\t Gegenst.Nr. Gegenst.Bez.\t\t ME Menge\n");
fflush(stdout);
AAsmove(ot, ut);
AAsmove(ut, titnr);
AAsmove(name, titname);
app();
AAsmove(ut, ot),
stl_structure();
## }
printtot();
## commit
## close Inf
## close Total
## close Teile
new = time((char *) 0);
printf("\nEXECUTE %ld sec\n", new - old);
fflush(stdout);
}
stl_structure()
{
register int i;
lev++;
## retrieve Inf $Ot == ot (ut = $Ut, m = $M)
## {
menge = mengen[--lev] * m;
mengen[++lev] = menge;
## retrieve Teile $T == ut (name = $Name, me = $Me)
## {
putchar('\t');
for (i = lev; i; --i)
putchar('.');
printf("%d\t\t", lev);
printf("%13s %-30s %-2s %5d\n", ut, name, me, menge);
fflush(stdout);
app();
## }
AAsmove(ut, ot);
stl_structure();
## }
--lev;
}
app()
{
register int count;
register int i;
count = 0;
i++;
## retrieve Total $T == ut (meng = $Menge)
## {
count++;
menge += meng;
## replace ($Menge = menge)
## }
if (!count)
## append Total
## ($Lev = lev, $T = ut, $Name = name, $Menge = menge, $Me = me)
}
printtot()
{
printf("\n\tDBS/R-DEMONSTRATIONSBEISPIEL:\n");
printf("\tTotale Stueckliste fuer das Teil Nr. 10 (20 Stueck)\n");
printf("\n\tStueckliste %-s %-s\n", titnr, titname);
printf("\n\t Gegenst.Nr. Gegenst.Bez. ME Menge\n");
fflush(stdout);
## retrieve Total $T != "0000000000010"
## (ut = $T, name = $Name, menge = $Menge, me = $Me)
## {
printf("\t%13s %-30s %-2s %5d\n", ut, name, me, menge);
fflush(stdout);
## }
}