iCAx开思网

标题: kf中如何和电子表格连接 [打印本页]

作者: aoci72681    时间: 2006-7-14 17:33
标题: kf中如何和电子表格连接
请教各位大大

#! NX/KF 4.0

DefClass: New_Class_Name (ug_base_part);

(Integer Modifiable Method Parameter) row:1;

(Child) Box: {
Class, ug_block;
Length, 10;       ==> ss:ask_number: (row:,1)
Width, 10;
Height, 5;
};

(Child) ss: {
Class, ug_spreadsheet;
part_file, "72681_xla.prt";
};

在length改成呼叫数值却出现以下错误讯息

" The following error occurred during updata:
   User error
  While updating object of type in part test.prt  "

"
User error
Function failed:ug_spreadsheet_asknumber:Error in getting the number
Rule:
[Rule in body of function -- source not available yet.]
Stack:
ss:ask_number: (inside ug_spreadsheet_ask_number)
Length: (internal error ask_number)
Box:length:                                                                         "

是哪里设错啦,,请指教??




[ 本帖最后由 aoci72681 于 2006-7-14 17:39 编辑 ]
作者: khzx    时间: 2006-7-14 20:44
酱紫

DefClass: New_Class_Name (ug_base_part);

(Integer Modifiable Method Parameter) row:1;
(number) aa: ug_excel_read("your_excel.xls","1,1"); # "1,1", first row, first column
(Child) Box: {
Class, ug_block;
Length, aa:;    
Width, 10;
Height, 5;
};
作者: davinlee    时间: 2006-7-17 11:44
"your_excel.xls" ==> test_box.xls (我的part name)
Note: Styler input control Length not found in Knowledge Fusion class test_box
why!不知为何?
作者: aoci72681    时间: 2006-7-17 17:37
我试出来了
结果是我忘记先存档了,所以找不到档案


请问 khzx大大
可以使用ug_excel_open_file函数吗
又该如何使用呢?
作者: jnx001    时间: 2006-7-17 19:34
(integer) excel_port: ug_excel_open_file("your_excel.xls",read);
(integer) worksheet_id: ug_excel_get_worksheet_index(excel_port:,"Sheet1");
(list) area_list_string: ug_excel_read_range(excel_port:,worksheet_id:,1,1,1,1);#1,1,1,1为起始行,起始列,结束行,结束列

ug_block中用:
Length, nth(1,area_list_string;
作者: khzx    时间: 2006-7-17 21:44
原贴由jnx001发表:
(integer) excel_port: ug_excel_open_file("your_excel.xls",re


记住:使用结束后要,ug_excel_close_file(),来关闭这个文件并结束其Excel进程。
作者: aoci72681    时间: 2006-7-18 08:33
sorry
再请教3个问题
1. (list) area_list_string: ug_excel_read_range(excel_port:,worksheet_id:,1,1,1,1);#1,1,6,4
其中前5个list 的type为Integer ,其他的24个为string 这样对吗? 不是应该只有24个吗? 怎么会多5个呢?
2.
ug_block
length,nth(1,area_list_string: ) 是可以执行的
但是
length,nth(7,area_list_string: ) 就无法执行..
是type 的问题呢??
3.
ug_excel_close_file该如何使用,是另设一个属性吗?
还是?????

感激不尽,请大大们解疑惑

[ 本帖最后由 aoci72681 于 2006-7-18 08:36 编辑 ]
作者: jnx001    时间: 2006-7-18 09:17
对,上面的程序有问题
1、ug_excel_read_range返回值应该从第6个开始取,list的前5相为其他属性
2、从list取出的为string类型,需要转换
3、使用length,makenumber(nth(7,area_list_string: ) );

感谢khzx:应该关闭文件,用ug_excel_close_file(excel_port:,true);
作者: jnx001    时间: 2006-7-18 09:23
ug_excel_read_range返回的前5项分别为:sheet_id, row_start, col_start, row_end, col_end,
作者: aoci72681    时间: 2006-7-18 09:49
真是太感谢了
由于是刚开始学kf,
以后还有很多问题须向大大们请教
由衷感谢jnx001以及khzx 大大 的帮忙
作者: davinlee    时间: 2006-7-18 10:22
#! NX/KF 4.0
DefClass: lee_box (ug_base_part);

(integer) excel_port: ug_excel_open_file("test.xls",read);
(integer) worksheet_id: ug_excel_get_worksheet_index(excel_port:,"Sheet1");
(list) area_list_string: ug_excel_read_range(excel_port:,worksheet_id:,1,1,5,5);
(List) W_List:{5,10,15,20};
(List) H_List:{5,10,15,20};

(Number) L: makenumber(nth(7,area_list_string);
(Number) W: minlist(W_List;
(Number) H: minlist(H_List;

(Child) Box: {
Class, ug_block;
length, L:;
Width, W:;
Height, H:;
};

question:
1.搭配dlg 时,length的值出不来
2.option menu的width , heigth 虽能完全显示出5,10,15,20,但如何选都只有5有效;
  因为我是用minlist,若用maxlist则只有20有效




欢迎光临 iCAx开思网 (https://www.icax.org/) Powered by Discuz! X3.3