这个例子昨天正好看了,话说那本书的例子都很不错~3 r5 D, I$ e2 \7 S/ x3 a2 I! d
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。2 ]5 A6 D& E' ~- ^" Y! A" u6 J
is
/ N$ e/ _0 o' I; k4 [7 I i,no,m:integer; --定义整型) O2 a6 w, Q. O8 ^# @
Buf:object; --定义object) Z* K* }% K- P% j4 `7 a6 S$ \
do
* O) q* B, _% ~: c: O' t m:=0;
% r% @0 L# \+ C4 g3 U no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
+ \% A, T/ h9 O1 x7 ~; f" t4 H* | for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行) T" f! X/ c7 I0 T! \
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
% { {3 ?( M) n) ` @._From:=PartsTable[5,i]; / R2 L2 |: `8 G. I
@._To:=PartsTable[6,i];
8 J+ \# V& V. k' R1 H if no=PartsNo+PartsTable[2,i] then
- ?* {; g6 M3 j" e7 d2 l PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
/ c) R2 o/ y7 k+ f1 c1 I' s/ E, v& i4 D9 j
end;
' P/ ~" d2 W5 _# i i:=PartsTable.YDim+1;9 e% ]2 k. ?& r, V2 F1 ~% [
end;
$ C! @- S* Z1 n4 b m:=m+PartsTable[2,i];+ h3 j5 J9 V% ~; V
next;: D; J2 k& N$ C/ i1 ^
( A4 u- Y. E8 S Y9 z9 z
Buf:=str_to_obj(sprint("BF",@._From));' y( S& [1 n0 R6 E" h, D- e
@.move(Buf);% Q2 Y1 X, ]. x# Z8 V+ U
end; |