这个例子昨天正好看了,话说那本书的例子都很不错~
+ l: l* r6 E f9 {9 W/ c$ E不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
4 r, x; u) U+ p, C2 Jis
: P+ {* I6 [: _6 }' ?' U# G i,no,m:integer; --定义整型 {& U9 D1 ` {' Q5 S
Buf:object; --定义object2 c- t! Q& C! Q
do6 Y3 @1 E/ |% ^2 U/ B% \
m:=0;7 o6 ]5 T$ k6 D+ _
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)6 y+ @7 Q1 h. t6 e* U! ~
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
[) P7 @+ x# i- ?9 X if PartsNo=m and no<=PartsNo+PartsTable[2,i] then 3 }$ | B) x8 k+ {6 n( ]0 i
@._From:=PartsTable[5,i];
' ]8 s1 i& h, X( r1 \9 T+ K% g/ U @._To:=PartsTable[6,i];4 d( {" f/ ~6 y+ Z' W
if no=PartsNo+PartsTable[2,i] then
8 K7 D. N. J+ z: @ \0 H8 y PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
8 w( e# Q7 }! Q: J9 J1 p8 J. |; P2 b# } x
end;
1 [& ~) p: z' F i:=PartsTable.YDim+1;
8 v7 N, o- k- p# z- v end;# v$ N, z. y* g6 z7 T- l+ D; I
m:=m+PartsTable[2,i];4 o; J1 ^, H' _" K7 D
next;4 h/ i' l, t2 P6 `' g# R! o
& P9 e# D2 r$ C* l# v, X Buf:=str_to_obj(sprint("BF",@._From));1 J4 w" U0 r: j+ v
@.move(Buf);# D( F! x- Q. N4 S# l" C* w T' Z
end; |