这个例子昨天正好看了,话说那本书的例子都很不错~
, e6 M' b7 K7 e n% j- Y& a不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
C, D. h' A$ S) [7 Kis- T; G/ N4 h# m
i,no,m:integer; --定义整型/ k/ N; X7 n- h
Buf:object; --定义object5 e0 F- D5 p- T1 G
do
0 Q4 m2 p2 E: W: I3 a3 ~ m:=0;
7 S \4 q3 |: q- Y no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
+ Q# V+ S, K; l, n for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
{7 Z* s l& E" C9 M if PartsNo=m and no<=PartsNo+PartsTable[2,i] then ' Z* M" t" j+ L4 v l7 f1 r$ z
@._From:=PartsTable[5,i];
% [: P/ M6 d' Z7 C: {0 S. ^( T @._To:=PartsTable[6,i];. O4 s, X6 M: N3 P+ j4 b8 d
if no=PartsNo+PartsTable[2,i] then
1 {& v U7 h& E% E PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
2 d% `, a* o4 O' l8 P, Q: k& V' \, a
end;
9 l% L+ Y+ @2 S8 Z+ i i:=PartsTable.YDim+1;
) h: X# G, l; a6 z% P end;
" }) B X; p. w/ U& W- V m:=m+PartsTable[2,i];; T8 m: H. u- m) S! D) h8 `. f! [ W
next;% y, h% o. {) ] R3 D( \
6 H" W. e4 n' |+ G4 q2 r
Buf:=str_to_obj(sprint("BF",@._From));
K$ t0 |3 I% W. f/ J& i% L: f @.move(Buf);. H; x( S n* @! F E; e
end; |