lzq123335 发表于 2005-11-17 11:35:42

关于数据驱动的问题

最近我使用了数据驱动功能,但是很奇怪出现了一些古怪问题:
                  table = "zuobiao.xls";
        ddt_close(table);
        rc = ddt_open(table, DDT_MODE_READ);
        if (rc!= E_OK && rc != E_FILE_OPEN)
                pause("Cannot open table.");
        ddt_get_row_count(table,table_RowCount);

function L_SetItemUnderBasicDimension(DimensionMethod,second,third,fourth,fifth,sixth)
{
        auto result = E_OK;
        win_activate (gProductName);
        set_window (gProductName, 1);
        obj_mouse_click ("标注工具", 14, 15, LEFT);#点击标注工具栏上的标注命令

        switch (DimensionMethod)
        {
                   case 0:
                        win_activate (gProductName);
                        set_window (gProductName, 1);
                        list_select_item("标注类型","基本标注");#选取标注类型
#                        obj_mouse_click("Afx:400000:2b",371,218);
#                                obj_mouse_click("Afx:400000:2b",602,351);
#                               
                        for(table_Row = 1; table_Row <= table_RowCount; table_Row ++)
                        {
                                ddt_set_row(table,table_Row);
                                win_activate (gProductName);
                               set_window (gProductName, 1);
                                obj_mouse_click("Afx:400000:2b",ddt_val(table, "x1") ,ddt_val(table, "y1"));
                        }
#                               
                        if(second==0)
                                L_SetListItem("标注2","文字平行");
                        else
                                L_SetListItem("标注2","文字水平");
                       
                        if(third ==0)
                                L_SetListItem("标注3","长度");
                        else
                                L_SetListItem("标注3","直径");
                       
                        if(fourth==0)
                                L_SetListItem("标注4","正交");
                        else
                                L_SetListItem("标注4","平行");
                                               
                        if(fifth==0)
                                L_SetListItem("标注5","文字居中");
                        else
                                L_SetListItem("标注5","文字拖动");
                               
                        if(sixth==0)
                                L_SetListItem("标注6","文字有边框");
                        else
                                L_SetListItem("标注6","文字无边框");
                        break;       
                       
                case 1:
                        if(        second==0)
                                L_SetListItem("标注2","文字平行");
                        else
                                L_SetListItem("标注2","文字水平");
                               
                        if(third==0)
                                L_SetListItem("标注3","正交");
                        else
                                L_SetListItem("标注3","平行");
                               
                        if(fourth==0)
                                L_SetListItem("标注4","文字有边框");
                        else
                                L_SetListItem("标注4","文字无边框");
                        break;
#                               
#                        case 2:
#                        case 3:
#                        case 4:       
#                        case 5:
#                        cae 6:
#                        case 7:
#                        case 8:
                default:
                report_msg("ERROR Occured when selecting item");
        }                               
    return result;
}

下面是我的主程序,(一部分)其他的不是很重要

                                        for(table_Row = 1; table_Row <= table_RowCount; table_Row ++)
                                        {
                                                ddt_set_row(table,table_Row);
                                        istep++;
                                                DimensionImg="DimensionImg"&istep;
                                                StatusBarImg="StatusBarImg"&istep;

                                                obj_mouse_click ("Afx:400000:2b", ddt_val(table, "PickX"), ddt_val(table, "PickY") , LEFT);
                                        }
                                        ddt_close(table);

现在问题是,我如果把运行的话,会有提示以下错误:

附件是图片。

lzq123335 发表于 2005-11-17 11:36:58

谢谢了,麻烦关注一下!

lzq123335 发表于 2005-11-17 16:02:01

不好意思,发贴得时候没有排版好。
我现在初步知道原因了,因为我再运行程序的时候,脚本需要对你自定义的函数进行检查,而table_Row不是全局变量,在自定义函数中,就无法识别了,因而说它没有声明。同理变量table_RowCount也是的!
这只是我的猜测,不知道对不对。我不知道如何解决。

其实我也试过再我函数中写成
auto table_Row=0;
auto table_RowCount=10;(我有十组数据,但是我以后改变数据书目的时候,难道还要每次在这修改它的值码?,所以我觉得这样肯定不妥)

怎么就没有人来看呢!!!

莹莹.@ 发表于 2005-11-18 09:45:46

嘿嘿,帮顶,期待有人回答!

lzq123335 发表于 2005-11-28 10:19:42

呵呵,问题已经解决。
看来,自己才是最好的老师

wyhwbb 发表于 2006-4-13 15:40:00

还是有人关注的,自己解决了,也要跟大家分享一下嘛,期待哦

jbmw_dzg 发表于 2006-4-19 15:30:25

在你的脚本的开头 声明这个变量 statci table_Row
然后在你的函数里面 extern table_Row就可以了

xihong2004 发表于 2006-4-20 10:34:35

学习一下
页: [1]
查看完整版本: 关于数据驱动的问题