这个例子昨天正好看了,话说那本书的例子都很不错~2 e1 \5 p% p& w, b* `* j% `* \
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。* m0 b: s) N" q/ s" c7 v5 I: l( R1 q
is
& ~9 J& G! R$ @7 G$ k i,no,m:integer; --定义整型
! m9 ?- X1 c/ y1 @9 A! H% P Buf:object; --定义object
, Q% f# O, T3 s- fdo+ |7 n8 t* \' i% j% J
m:=0;- I0 ~) ]% |% L# `/ E! X; }
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
/ C3 p7 d. l4 U2 n for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行
: K; ]3 o7 R! d$ N if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
$ Y2 D6 M2 s) X7 N) [ @._From:=PartsTable[5,i]; ' ]: y! g# A% I. Q% w4 Y/ z
@._To:=PartsTable[6,i];
* W q% ^8 }" Y9 g- U% U( ] if no=PartsNo+PartsTable[2,i] then
( R$ r& c; O$ a PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
1 }% u, k5 w! w3 n0 C! F
|1 R6 c# S9 {0 Y: P end;
" l) L1 y! s' S8 h- ]( \ i:=PartsTable.YDim+1;
. V$ X3 m, |' l1 L end;$ Y5 Q/ o* L* ^9 N$ S$ o- n9 t0 M/ E; D
m:=m+PartsTable[2,i];( _7 `0 o0 l0 }, l- M7 ~+ N
next;7 P. q; C* F4 c+ ]
* v; C4 l) T# w, z$ _* f0 A9 ?
Buf:=str_to_obj(sprint("BF",@._From));
. w4 m, M, z' T1 o# d# f @.move(Buf);
9 l# u& ?, c3 i7 P" u$ kend; |