>我有一个任务来循环遍历单列表"合约",并且对于每个循环,使用合约中的值调用一个程序"MyProgram"。最后将所有循环的结果显示在表格中。
Indata:
=================
Contracts.dbf
=================
P01
C04
CH45
T31
Result:
===========================
ResultFile.dbf
===========================
P01 C04 CH45 T31
---------------------------
100 11 302 -872
9.63 0 45.2 342
每个合约的值在 MyProgram 中生成,MyProgram 将合约作为参数,并生成一列与标题相同的合约结果。所以使用我的程序合同 P01 给
======
P01
------
100
9.63
到目前为止,我的程序看起来像
SELECT distinct contract FROM bs_case
COPY TO contracts.dbf
NbContracts =RECCOUNT()
CLOSE TABLES
counter = 1
DO WHILE counter < NbContracts
&& calling MyProgram ()
counter = counter + 1
ENDDO
我无法从"合同.dbf中提取合同名称,并且真的不知道如何创建最终结果文件"结果文件.dbf"
试试这个,它是伪的,但应该可以工作:
******
SELECT 0
CREATE CURSOR MyResults ( columnName C(10), value1 I, value2 N(8,2) ) &&Result cursor
SELECT contracts
LOCATE &&Go to top of file.
SCAN &&start loop
=MyProgram(FIELD(1), contracts.ColumnName) &&Pass name of column and it's value
ENDSCAN
SELECT MyResults &&View results.
BROWSE LAST NORMAL
PROCEDURE MyProgram(fieldname, value1)
***Do stuff to
***generate calculatedvalue1 and calculatedvalue2
***Insert name of column, value1 and value2
INSERT INTO MyResults (columnName, value1, value2) ;
VALUES(fieldname, calculatedvalue1, calculatedvalue2)
END PROC