这个例子昨天正好看了,话说那本书的例子都很不错~( R; S) \, p$ p: N5 F( r1 N
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
$ {8 k8 {' x4 y; y9 kis
5 X- w9 ~ c- g* r) t/ U i,no,m:integer; --定义整型
6 N+ z% A, D& @$ ~, | Buf:object; --定义object5 O. m6 M/ X8 R, ^% R0 }/ M5 T
do
( G# J$ H9 ~5 H) y/ b# k- y m:=0;9 o/ ?6 S/ V2 E! `
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)) H& [/ S1 k5 P) S7 M: L
for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行3 s, K( N7 z H" u8 K) R( h1 T
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
9 V# N. x# n& a* X @._From:=PartsTable[5,i];
2 T3 h; Y8 e& s% o7 l @._To:=PartsTable[6,i];2 u' a! q/ G% g( J$ N) H
if no=PartsNo+PartsTable[2,i] then
- K! x+ P. f" V" Z$ I' W) Z1 K2 p PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
% R. M1 m7 c5 s, l) h* {/ i8 t; M5 G' G
end;
9 z* r6 s# X) l$ @; _' v i:=PartsTable.YDim+1;7 C) _. t& d) ^8 T- b/ X/ a0 ^
end;
8 Q6 w! w4 ] A$ k: z m:=m+PartsTable[2,i];* @( K7 y- c. j( q1 d
next;% c) A1 e( l* O2 f
* ^# F# N5 e4 }( [ Buf:=str_to_obj(sprint("BF",@._From));) f7 C9 t) D! U* P
@.move(Buf);" ]7 W4 N& E+ M. t+ Q
end; |