这个例子昨天正好看了,话说那本书的例子都很不错~6 T9 w7 c/ J! a- t
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
K8 C! W7 X9 T# @is6 d. a$ [ [2 v6 `- }
i,no,m:integer; --定义整型
7 T# K, t5 ]# u; X+ C9 ?4 G7 G Buf:object; --定义object N* V4 N4 H2 W0 U. D# @1 ^7 a
do2 B8 O. B. o0 g1 `
m:=0;
) o: d. ?6 ~+ R' r4 g no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
; |. a0 r- M- A- } for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
0 F0 \& c$ u$ L# h) G9 t+ o8 l3 _ if PartsNo=m and no<=PartsNo+PartsTable[2,i] then # r) [' m8 f- Z) @3 c
@._From:=PartsTable[5,i];
% _, u& E) f5 B' [" U @._To:=PartsTable[6,i];
- s: X9 M+ Q2 S& p: ~8 v if no=PartsNo+PartsTable[2,i] then
$ v: Y. s& w) ]+ V5 Q F0 n PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去), c8 z a& ~* l
6 T9 f2 K* `0 U1 ^ B4 V4 S J end;
6 e: x( `4 G! b( {' A8 M0 `6 d i:=PartsTable.YDim+1;4 Z3 T8 }+ J; w. s
end;
( Q/ x7 P' k& O2 s; b5 f3 i5 _2 w2 e m:=m+PartsTable[2,i];
9 D# ~% ]2 {" ]% \6 F next;4 E( W# D& s& u
1 U% a8 f) _4 R4 S1 H
Buf:=str_to_obj(sprint("BF",@._From));
# K* V0 q$ I8 p) P# x; ]/ c" {; z3 Y @.move(Buf);: ?, ?8 A/ s: W# `0 W/ O" S
end; |