这个例子昨天正好看了,话说那本书的例子都很不错~
: `% v; f- c1 k3 X0 ]$ @0 ~不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
* w& q, n6 w6 x6 {+ y: @2 [, N) Tis
' M: u1 ?& q# ~$ j5 P* G. ? i,no,m:integer; --定义整型
% `" Z2 E6 j N6 \: y Buf:object; --定义object
7 @# q! i2 F4 D. cdo2 K- o9 m# k: x: s
m:=0;$ m/ e3 Y" C1 [& L
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
) u [! H0 A% l9 d2 j1 M$ w, S for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行' e+ y) d& T" X1 z" x
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then # ]; H. H. z7 _8 \7 n
@._From:=PartsTable[5,i];
& ?/ ?( i+ v7 P2 t4 @6 b @._To:=PartsTable[6,i];
( q& X3 i q4 x' U if no=PartsNo+PartsTable[2,i] then % _% }. W" B( ]& z f n h$ Y
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去). f1 M' \& b; @: p9 H R% g
" k) K4 i3 K: F! C( ~9 y, ^" \, Z
end;9 s2 q4 w+ y! G' J
i:=PartsTable.YDim+1;
5 z8 n( c/ A+ ?5 Q% |. z end;7 I( ]: ?2 X3 O# s. `& q
m:=m+PartsTable[2,i];6 h% p* |. p) q7 g
next;* ?; B3 G9 w# X* S% \
3 C+ b% n% @1 y* b) D# c Buf:=str_to_obj(sprint("BF",@._From));. b1 v% }$ q7 Y/ q0 U6 G1 `
@.move(Buf);; ^1 r/ N, f2 ?; t; a
end; |