这个例子昨天正好看了,话说那本书的例子都很不错~7 A/ ]3 \3 F) Q( b5 _" x
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
8 J7 k: B8 t5 z% K0 J6 Y5 ]is
: x9 z; x8 [+ {, t i,no,m:integer; --定义整型2 N# q7 c% U1 |8 e
Buf:object; --定义object
; ?% M4 @, p7 k8 Ado3 X( `+ b# x y( u
m:=0;$ X8 y4 P) |4 o' Q
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
5 ?4 ?; ]' s. q" Q% H for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行9 o% k2 E9 m7 K, W" T3 S" [+ P; H
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
$ P9 q. e$ a+ Z. x( y2 E0 ~; ^ @._From:=PartsTable[5,i];
. p' Q2 {8 Z3 e4 p+ M4 D8 g" T1 L, v @._To:=PartsTable[6,i];& Q5 ^% d5 |% _( T& g
if no=PartsNo+PartsTable[2,i] then 6 J4 }: P) {4 }- ^% v$ B5 h( I, r
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)! {- m; [1 O' T" ^
0 [, H6 J- M" a/ ]6 G! e, i: [
end;
- n7 V0 h$ ^9 P+ ` y4 l3 k i:=PartsTable.YDim+1; e/ V- I4 r& x7 o* {7 O
end; i' j! z, Y" T& K8 {0 U6 f
m:=m+PartsTable[2,i];
& ]; Z$ u. ^7 ?9 K. M% { next;
+ [3 M6 c) c* }( T9 g" ^ ( n0 h! b, l* V+ C( y6 E
Buf:=str_to_obj(sprint("BF",@._From));
! F5 N; A9 Q2 |% C/ l @.move(Buf);
' \9 q' a% D) Y+ c+ S( eend; |