Foxtable(狐表)用户栏目专家坐堂 → 公差输入


  共有1791人关注过本帖树形打印复制链接

主题:公差输入

美女呀,离线,留言给我吧!
13775189031
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:825 积分:5733 威望:0 精华:0 注册:2017/12/19 14:46:00
公差输入  发帖心情 Post By:2018/6/19 15:10:00 [只看该作者]

关于公差标注的问题,看了以前的帖子

这段编码要写在哪个事件里?


Dim e = Args(0)
Dim ColName As String = Args(1)

If e.Col.Name = ColName Then
    Dim i1 As Integer
    Dim i2 As Integer
    Dim ary() As String = e.text.split("*")
    Dim swidth As Double = 0
    For i As Integer = 0 To ary.length-1
        Dim t As String = ary(i)
        Dim ts() As String = {"","",""}
        t = t.Replace("^^","|")
        If t.Contains("^")
            Dim ts2() As String = t.Split("^")
            ts(0) = ts2(0)
            If ts2.Length = 2 Then ts(1) = ts2(1)
        ElseIf t.Contains("|")
            Dim ts3() As String = t.Split("|")
            ts(0) = ts3(0)
            If ts3.Length = 2 Then ts(2) = ts3(1)
        End If
        If ts(1) > "" AndAlso ts(1).Contains("|") Then
            Dim ss() As String = ts(1).Split("|")
            ts(1) = ss(0)
            ts(2) = ss(1)
        End If
        StatusBar.Message2 = ts(1)
        Dim reg As new System.Text.RegularExpressions.Regex("^[+0-9\d\.*/]+$")
        Dim reg1 As new System.Text.RegularExpressions.Regex("^[+0-9\d\-+.*/]+$")
        
        If ts.Length >= 2 AndAlso  reg.IsMatch(ts(0))  Then
            
            Dim RectF As RectangleF     '绘制区域
            Dim fnt1 As Font = e.Table.Grid.Cols(e.Col.Name).Style.Font.Clone()   '获取大字体
            If e.Height > fnt1.Height Then
                RectF = New RectangleF(e.x+swidth,e.y + (e.Height - fnt1.Height)/2,e.Width ,fnt1.Height)
            Else
                RectF = New RectangleF(e.x+swidth,e.y,e.Width ,e.Height)
            End If
            
            Dim FI As New C1.C1Preview.Util.FontInfo(fnt1)
            Dim fnt2 As New Font(fnt1.Name,FI.SuperscriptSize)                     '获取小字体
            Dim size As SizeF = e.Graphics.MeasureString(ts(0), fnt1)              '计算大字体的位置
            
            Dim sf As new StringFormat
            sf.Trimming = 2
            e.Graphics.DrawString(ts(0),fnt1,Brushes.Red,RectF ,sf)
            Dim s1,s2 As object
            If ts(1) > "" AndAlso reg1.IsMatch(ts(1)) Then
                e.Graphics.DrawString(ts(1),fnt2,Brushes.Red,new RectangleF(RectF.x + (size.Width - fnt1.size/2 +2),RectF.y ,RectF.Width,RectF.Height) ,sf)
                s1 = e.Graphics.MeasureString(ts(1), fnt2)
            End If
            If ts(2) > "" AndAlso reg1.IsMatch(ts(2)) Then
                e.Graphics.DrawString(ts(2),fnt2,Brushes.Red,new RectangleF(RectF.x + (size.Width - fnt1.size/2 +2),RectF.y+RectF.Height/2+1 ,RectF.Width,RectF.Height) ,sf)
                s2 = e.Graphics.MeasureString(ts(2), fnt2)
            End If
            swidth += size.width
            If s1 IsNot Nothing AndAlso s2 IsNot Nothing Then
                swidth += iif(s1.width>s2.width, s1.width, s2.width)
            ElseIf s1 IsNot Nothing Then
                swidth += s1.width
            Else
                swidth += s2.width
            End If
            If i < ary.length-1 Then
                e.Graphics.DrawString("*",fnt1,Brushes.Red, RectF.x+swidth-3, RectF.y,sf)
                size = e.Graphics.MeasureString("*", fnt1)
                swidth += size.width
            End If
            e.Text = ""
        End If
    Next
End If



 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/6/19 15:51:00 [只看该作者]

自定义函数里面

 

http://www.foxtable.com/webhelp/scr/1486.htm

 


 回到顶部
美女呀,离线,留言给我吧!
13775189031
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:825 积分:5733 威望:0 精华:0 注册:2017/12/19 14:46:00
  发帖心情 Post By:2018/6/19 16:22:00 [只看该作者]

φ32^+0.03^^-0.05

想实现上面的,但是不行?

 回到顶部
美女呀,离线,留言给我吧!
13775189031
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:825 积分:5733 威望:0 精华:0 注册:2017/12/19 14:46:00
  发帖心情 Post By:2018/6/19 16:49:00 [只看该作者]

前面加个符号就不行了!

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/6/19 18:25:00 [只看该作者]

以下是引用13775189031在2018/6/19 16:49:00的发言:
前面加个符号就不行了!

 

具体实例发上来测试。


 回到顶部
美女呀,离线,留言给我吧!
13775189031
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:825 积分:5733 威望:0 精华:0 注册:2017/12/19 14:46:00
  发帖心情 Post By:2018/6/20 12:27:00 [只看该作者]

比如加个直径符号Φ就不行了,要怎么改?
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:上下标绘制 (2).table


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/6/20 14:59:00 [只看该作者]

修改代码

 

        Dim reg As new System.Text.RegularExpressions.Regex("^[+0-9\d\.*/φ]+$")
        Dim reg1 As new System.Text.RegularExpressions.Regex("^[+0-9\d\-+.*/φ]+$")


 回到顶部
美女呀,离线,留言给我吧!
13775189031
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:825 积分:5733 威望:0 精华:0 注册:2017/12/19 14:46:00
  发帖心情 Post By:2018/6/21 9:31:00 [只看该作者]

搞定,谢谢!

 回到顶部