这个例子昨天正好看了,话说那本书的例子都很不错~ R& v7 e& h7 l: x( R U; S$ C
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
& e# W$ f: Y1 z. pis
7 S$ f0 U: @ S; x i,no,m:integer; --定义整型
# F' K7 g" E5 P* \ Buf:object; --定义object8 a: @6 J. q U0 H v1 F4 W& W
do
1 K. ^* z/ r5 y* v) d5 r7 A$ j! U m:=0;( c" V% k5 {7 X) S6 ~- m
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
+ n, F; f2 ~" a0 e) [# V for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
% @) x# q- h- i" r if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
+ [+ x+ p) E9 X+ e+ o" k3 D) ~ @._From:=PartsTable[5,i];
' B# u- f/ b+ r, S M @._To:=PartsTable[6,i];- D K' D/ o( X
if no=PartsNo+PartsTable[2,i] then 8 g( b2 X8 C: K5 T5 f4 @ u
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
( [5 h3 f1 e" x' |, Y
( i2 ?1 [- t6 C end;- j5 S* v1 g6 n, ?" S! U9 G( c
i:=PartsTable.YDim+1;
* ]/ J9 d. l R0 C7 ^2 t8 j; V end;
- B- E) I' W7 C7 i4 R+ R m:=m+PartsTable[2,i];
6 @( a, F m& B% y" q& q next;0 e3 K" n! L, ~5 S' M9 w
$ R- `, Q5 W' ?* @2 q% i1 P- b" Y Buf:=str_to_obj(sprint("BF",@._From));
, u1 h+ t' X1 F6 ?6 k- c0 R% G @.move(Buf);$ e9 ]& i$ |; q! _
end; |