这个例子昨天正好看了,话说那本书的例子都很不错~$ W5 Z J3 F" m& x3 i% U
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。8 }1 K) O) j, V! P8 Q! K# N$ w
is ~# A$ K1 t# Y/ v9 X+ o9 W+ z
i,no,m:integer; --定义整型: i3 a) i8 m3 R1 Y* P4 w! b, {: ]8 B
Buf:object; --定义object& f) d+ j* R' Z- ]" ~7 v
do- P7 S$ G) x& O4 w/ H- e
m:=0;% _" B* `' U! M( `- d* ^# x0 T2 r
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
3 e& ~" _! p! `+ j7 x' v/ A for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行, E+ V- ^- k+ u& @) p: \: b
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
; G# A: }, P4 A! |+ u8 q @._From:=PartsTable[5,i]; ) V" L: W" \) Z; `7 A$ t) u
@._To:=PartsTable[6,i];
% e$ ^ Q. |6 M+ E% N, w1 b i5 C; A if no=PartsNo+PartsTable[2,i] then
9 t+ C& I2 U: e- r$ [& Y6 _ PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
$ O4 A9 X7 ^- D; ^. H: ~% B- a0 O& M
end;
3 }7 d' x# q2 Y/ h, n6 y2 C; g# r i:=PartsTable.YDim+1;
/ s- [9 j3 g( g end;
% n# C3 C& H2 ?4 Q0 ]9 A1 u4 V m:=m+PartsTable[2,i];
6 ~& {; J# T$ x2 M9 T* x/ \ next;
5 B0 N% F# ]# F; o' t, D% E2 q: i 2 I3 `1 u/ b& U1 r p
Buf:=str_to_obj(sprint("BF",@._From));
7 b7 m, Z) m% X! m" ?2 ] @.move(Buf);% ]; n9 {( \: N# W* d
end; |