这个例子昨天正好看了,话说那本书的例子都很不错~
9 D- g5 w/ a6 y; u) p不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。- M/ T" D( C! i8 S- h
is
8 ~6 i6 c7 c! ?- d: g, J( I i,no,m:integer; --定义整型+ [) [! \) k* V7 u/ q
Buf:object; --定义object
2 @9 g; c1 n: p3 n. B* L1 U$ _do- w2 Y* r2 v- A q3 ^4 c
m:=0;' R+ ~) |! D9 A. D. h' M0 W! W1 [
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
. J4 P$ [4 a2 Y) [- {0 y& O, Z for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
/ C3 v7 w# R, I$ P: L, f if PartsNo=m and no<=PartsNo+PartsTable[2,i] then ) N( d* _6 [. o3 K/ L
@._From:=PartsTable[5,i];
S3 ~0 ?( l% e/ k6 S% Z @._To:=PartsTable[6,i];
8 P3 a1 o$ e: W( Q if no=PartsNo+PartsTable[2,i] then
- |" e. y; T& P! N. D" m PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
/ [& t/ W) |$ Y& s& W
# @9 \+ f6 _2 A9 `; t end;
1 I7 M' t0 z: B i:=PartsTable.YDim+1;5 S7 S8 S: L6 v0 V+ ]+ R7 E
end;. [, s I+ X# l; [- L8 K9 o2 V
m:=m+PartsTable[2,i];# }6 M# r s, c/ l. B
next;
, ~ w) w- v) l v5 Z2 I& e" s. l* d: I* Y/ u
Buf:=str_to_obj(sprint("BF",@._From));6 Z1 ~3 y q. U. j% L* w
@.move(Buf);5 G( t" Z5 h4 @
end; |