以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  怎样将字符转换为系统类??  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=53283)

--  作者:jaegea
--  发布时间:2014/7/4 9:49:00
--  怎样将字符转换为系统类??

怎样将字符串转换为系统类?比如

Dim str as string = "Barpro.Symbology.Code39"

Dim Bar As New BarCodeBuilder
Bar
.Symbology = str    ‘此处要怎么转换?


--  作者:Bin
--  发布时间:2014/7/4 9:52:00
--  
http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=52612&skin=0
--  作者:jaegea
--  发布时间:2014/7/4 10:42:00
--  

看了,但看不太明白,如何達到以下兩點要求

1. 如何遍歷出條碼的類型

2. 如何將一個字符串轉換為條碼類型?Bar.Symbology = str    ‘此处要怎么转换?


--  作者:有点甜
--  发布时间:2014/7/4 10:44:00
--  

 不能直接用,要动态编译一下。

 

类似 http://www.foxtable.com/help/topics/1487.htm

 

Dim Code As String
Code = "Dim t As " & "ControlTypeEnum" & vbcrlf
Code = Code & "return t"
Functions.Add("getType",Code)
Functions.Complie()

Dim b As object = Functions.Execute("getType")
Functions.Remove("getType")

For Each e As String In  [Enum].GetNames(b.Gettype())
    output.show(e)
Next


--  作者:有点甜
--  发布时间:2014/7/4 10:44:00
--  
 如果不嫌麻烦,你就判断每个字符串是什么,对应的写不同的代码。
--  作者:jaegea
--  发布时间:2014/7/4 10:50:00
--  

就是因為條碼的類型太多了將近一百種,一條一條判斷代碼太笨重了,所以才想通過類型的轉換去執行


--  作者:jaegea
--  发布时间:2014/7/4 10:51:00
--  
上面的代碼只能是遍歷出所有控件類型,無法遍歷出單一控件,即條碼的類型
--  作者:jaegea
--  发布时间:2014/7/4 10:54:00
--  
替換了一下,找到遍歷出條碼類型的方法了,那怎樣轉換呢?
--  作者:有点甜
--  发布时间:2014/7/4 10:57:00
--  

代码

 

Dim str As String = "Barpro.Symbology.Code39"

Dim Code As String
Code = Code & "return " & str
Functions.Add("myFunc",Code)
Functions.Complie()

Dim b As object = Functions.Execute("myFunc")
Functions.Remove("myFunc")

Dim Bar As New BarCodeBuilder
Bar.Symbology = b


--  作者:jaegea
--  发布时间:2014/7/4 11:07:00
--  
搞定,謝謝