122 lines
2.3 KiB
Plaintext
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);
|
|
## }
|
|
}
|