这个例子昨天正好看了,话说那本书的例子都很不错~' K* i) {/ V% M& v3 r
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
9 a2 y. w. l. Kis8 [, g' H( f# Q/ C/ i" E6 b
i,no,m:integer; --定义整型
; \6 W" V, J- s( z* D) j& t Buf:object; --定义object( A D1 G2 K# V) S' L7 m
do
2 |+ Y+ x- `: Y5 f* @ m:=0;* q. j* P$ `0 a/ R, y5 S
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)8 i( z; h* l4 k4 |* l+ G* n1 K9 N
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
& p/ F8 Q; P& X7 E2 z if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
, w9 Q F* ~+ a8 L* n @._From:=PartsTable[5,i]; * h* Z R, D/ @
@._To:=PartsTable[6,i];0 \0 q* P4 p8 Z4 G+ B$ l+ B
if no=PartsNo+PartsTable[2,i] then " p/ R' U& w! I% ^% f; V
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)2 ~" c* b' X* z8 F7 \ P; n1 {
, Z& s2 z+ s4 P+ d( i end;* Y, W5 z7 t- l* ]' i
i:=PartsTable.YDim+1;
+ e1 h, S G0 _9 ` j end;
! F1 h! X3 r) J1 A0 e% b5 [8 t6 F m:=m+PartsTable[2,i];
& P9 v6 N+ q) a! a7 F4 m) T next;$ d$ }9 k' z; Z x
( V* w7 f: B& X3 E+ D, z( S) ~% J
Buf:=str_to_obj(sprint("BF",@._From));0 h1 B1 I+ N# L9 w- U
@.move(Buf);$ R( T4 u& k" o4 P+ }" V% o7 r3 j
end; |