这个例子昨天正好看了,话说那本书的例子都很不错~
2 ?3 F2 P3 V) ^: m) M不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
2 ?7 ` g6 A0 y" J% X9 gis; t: _5 d+ ?" {/ P; i# X* @
i,no,m:integer; --定义整型1 v3 A# A8 V. C6 f
Buf:object; --定义object( x1 P5 X; n9 r, w
do% r2 N& @! r3 s- P
m:=0;* v1 ^: A1 x( D! d2 h; f
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)& ]; a0 z: x/ A, t
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
% u; \5 ]" U$ i/ K' T( G if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
1 Q, B. B3 `5 P3 p1 T @._From:=PartsTable[5,i]; 1 U2 v6 q' a+ @" G( y: J% V* Z
@._To:=PartsTable[6,i];
" h- ~7 O/ T5 b/ \) A2 c3 j if no=PartsNo+PartsTable[2,i] then 9 H$ E, R1 v5 R* p2 @
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)( O2 m j7 i5 x% S* g; S- C" [' C
* w" ~* l0 m4 u1 T }. [# w3 e
end;! f8 T. {1 e' U+ X! K
i:=PartsTable.YDim+1;
' N3 k# d# O1 n4 o9 w end;
9 {9 Y* Y4 k# Y. l. ^8 m2 _6 G, f m:=m+PartsTable[2,i];
4 Q9 H _4 O+ g9 O5 C; ] next;
# u/ s8 b, \1 s1 Y$ V7 ~
" q5 u! Y+ Y2 C" R0 \# K Buf:=str_to_obj(sprint("BF",@._From));
) {' f% V' e4 X% z3 J5 Q @.move(Buf);7 p. L- P& X& s, g6 y. J
end; |