这个例子昨天正好看了,话说那本书的例子都很不错~" r$ M, N$ X% U( v
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
" M7 N- H: `" Yis( {( ?/ o3 y! L8 ~2 ^
i,no,m:integer; --定义整型
/ I+ g/ @$ j" y Buf:object; --定义object ^2 r+ M) l, p# r
do
. v' e. O8 m7 @, `( u m:=0;, m: R+ [. p5 N
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
! {4 U8 l3 N; h: D+ h for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
! r1 J4 z$ q8 z; S, M. P0 V3 l# b9 d if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
( ?5 \# U6 B* p+ E5 I @._From:=PartsTable[5,i]; ) T4 l" E" t/ ~9 ?
@._To:=PartsTable[6,i];
. o; L+ q; w/ L1 @, e8 `8 }- H. x if no=PartsNo+PartsTable[2,i] then
& m# a" P4 l2 e+ ^2 b; h PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)/ C( D9 _/ }! S
6 {* _& I9 P( y$ t& P. z
end;
, K- W0 R7 r9 C& Z4 l* Y. F% m i:=PartsTable.YDim+1;
; O! I4 O% ?! N1 K5 C; E+ M$ J end;
" ?0 ^3 U$ {) Z6 }; D9 c1 v4 |" w m:=m+PartsTable[2,i];
9 i* w4 Z2 _; q. H9 s3 H! } next;9 |4 L5 `: P: L
$ u1 P. A6 O5 v7 h9 W
Buf:=str_to_obj(sprint("BF",@._From));+ n0 g/ v* s. R/ b; i3 W" b6 t0 ^
@.move(Buf);' C3 H6 d8 e4 ~- D- z; j% v
end; |