这个例子昨天正好看了,话说那本书的例子都很不错~$ f7 Q* @% Z3 E9 q
不过你还得把前面的表格看明白了才行,不然我这边解释也不行的。
' Y. J9 n n7 w' s) ?+ z% Pis
: p' D; ]# w) W3 `5 L i,no,m:integer; --定义整型
' J5 ]2 w, K1 f8 Y6 [ Buf:object; --定义object
1 G# M1 X( a B' n0 B7 w, X) _do5 P6 [' a" {% l
m:=0;4 `5 {7 o% W) {5 Q7 Y
no:=@.getNo; --拾取进入系统的实体编号(每一个物体系统都会默认的给他一个编号的,出来你自己定义外)
& V+ i1 v! o4 M A- c% T% e for i:=1 to PartsTable.Ydim loop --YDIm就是指这个表格一共多少行3 R* S7 Y k9 f& f
if PartsNo=m and no<=PartsNo+PartsTable[2,i] then
# Z4 H" {* O! N0 s @._From:=PartsTable[5,i];
/ ]0 I% Z" Q) Z; V4 E- U @._To:=PartsTable[6,i];
. p. g E' ^% H. p; c7 k: w* |/ U if no=PartsNo+PartsTable[2,i] then , p9 t8 L, L8 S6 J# s/ e' w
PartsNo:=PartsNo+PartsTable[2,i]; --这边整个语句实际就是在说,PartsNo就是要运送的数目(表格第二列的都是运送数目),而no与m就是用来辅助不断向下读取表格的数据的(这个逻辑你要自己推敲,说的话可就长了,把数字一个个带进去)
) t+ u2 F7 {; h3 e# P0 [# W4 k, V' _( r7 H# u
end;7 Z, h' T, m8 }; W4 |3 z$ I3 h
i:=PartsTable.YDim+1;- Z+ P& R) Z. d3 x6 e3 l+ W
end;
/ O! V/ t" _# q m:=m+PartsTable[2,i];
- J7 ^9 r, v4 s next;
6 ~9 Y9 v+ Q G1 s. r4 T' o 9 P+ _$ j6 V+ {& S$ e0 @3 `
Buf:=str_to_obj(sprint("BF",@._From));
: R- G5 [& y; O2 J. O5 Y @.move(Buf);* u4 F. F K- Y% u u, m. v
end; |