写完成了,可是问题也出来了~急救~~~~ - ;;;=================================================================*
- ;key1动作反应
- (defun key1()
- (setq n (atoi (get_tile "key1"));取得当前选中项的索引值n
- str (nth n boxlst);从列表框中取出第n个表项:"++D分类四"
- str1 (substr str 1 2);分割出前两位
- str2 (substr str 3);分割出后面诸位
- )
- (cond
- ((= str1 "++") (pro1)(pro3 1));加载对应的中类,并加载数据到textbox
- ((= str1 "--") (pro1-));删除对应的中类,并加载数据到textbox
- ((= str1 " +") (pro2)(pro3 2));加载对应的小类,并加载数据到textbox
- ((= str1 " -") (pro2-));删除对应的小类,并加载数据到textbox
- ((= str1 " ") (pro3 3));加载数据到textbox
- )
- )
- ;加载对应的中类
- (defun pro1 ( / lstn)
- (setq lstn (vl-remove-if '(lambda (x) (/= (strlen (car x)) 2)) lst)
- lstn (vl-remove-if '(lambda (x) (/= (substr (car x) 1 1) (substr str2 1 1))) lstn)
- lstn (mapcar '(lambda(x) (strcat " +" (car x) (cadr x))) lstn);组成准备插入列表框的表lstn
- )
- (setq boxlst (LI-DelLst boxlst n)
- boxlst (LI-append-lstn boxlst n lstn)
- boxlst (LI-append-lstn boxlst n (list (strcat "--" str2)))
- )
- (fill-list-box "key1" boxlst)
- (set_tile "key1" (itoa n))
- )
- ;删除中类
- (defun pro1- ( / lstn)
- (setq lstn (vl-remove-if '(lambda (x) (/= (strlen (car x)) 2)) lst)
- lstn (vl-remove-if '(lambda (x) (/= (substr (car x) 1 1) (substr str2 1 1))) lstn)
- )
- (repeat (1+ (length lstn))
- (setq boxlst (LI-DelLst boxlst n))
- )
- (setq boxlst (LI-append-lstn boxlst n (list (strcat "++" str2))))
- (fill-list-box "key1" boxlst)
- (set_tile "key1" (itoa n))
- )
- ;加载对应的小类================
- (defun pro2 ( / lstn)
- (setq lstn (vl-remove-if '(lambda (x) (/= (strlen (car x)) 3)) lst)
- lstn (vl-remove-if '(lambda (x) (/= (substr (car x) 1 2) (substr str2 1 2))) lstn)
- lstn (mapcar '(lambda(x) (strcat " " (car x) (cadr x))) lstn);组成准备插入列表框的表lstn
- )
- (setq boxlst (LI-DelLst boxlst n)
- boxlst (LI-append-lstn boxlst n lstn)
- boxlst (LI-append-lstn boxlst n (list (strcat " -" str2)))
- )
- (fill-list-box "key1" boxlst)
- (set_tile "key1" (itoa n))
- )
- ;删除小类
- (defun pro2- ( / lstn)
- (setq lstn (vl-remove-if '(lambda (x) (/= (strlen (car x)) 3)) lst)
- lstn (vl-remove-if '(lambda (x) (/= (substr (car x) 1 2) (substr str2 1 2))) lstn)
- )
- (repeat (1+ (length lstn))
- (setq boxlst (LI-DelLst boxlst n))
- )
- (setq boxlst (LI-append-lstn boxlst n (list (strcat " +" str2))))
- (fill-list-box "key1" boxlst)
- (set_tile "key1" (itoa n))
- )
- ;读lst取数值填入文本框
- (defun pro3 (n / lstx)
- (setq lstx (vl-remove-if '(lambda (x) (/= (car x) (substr str2 1 n))) lst))
- (set_tile "key2" (nth 0 (car lstx)))
- (set_tile "key3" (nth 1 (car lstx)))
- )
|