以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  金额头怎么实现呢?  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=153427)

--  作者:nxhylczh
--  发布时间:2020/8/10 23:59:00
--  金额头怎么实现呢?

图片点击可在新窗口打开查看此主题相关图片如下:23123.png
图片点击可在新窗口打开查看

如题  像这样的金额对怎么实现呢?

--  作者:有点蓝
--  发布时间:2020/8/11 8:27:00
--  
参考:http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=149123&skin=0
--  作者:nxhylczh
--  发布时间:2020/8/11 9:39:00
--  
老师  是金额头  不是金额线!
--  作者:有点蓝
--  发布时间:2020/8/11 9:44:00
--  
一样的用法,把第一行作为金额头绘制文字即可
--  作者:nxhylczh
--  发布时间:2020/8/12 17:32:00
--  
        e.StartDraw
        For i As Integer = 1 To 10
            If i Mod 3 = 0 Then
                If i = 9 Then
                    pn = Pens.Red
                Else
                    pn = Pens.LightSlateGray
                End If
            Else
                pn = Pens.tan
            End If
            n = CInt(e.Width / 11)  \'获取单位宽度
            e.Graphics.DrawLine(pn,e.x+i*n,e.y,e.x+i*n,e.y+e.Height)
            If e.Row.IsNull(e.Col.Name) = False Then
                If e.Row(e.Col.name)<> 0 Then
                    e.text = ""
                    e.Graphics.DrawString(CStr(GetDigit(e.Row(e.Col.name),8-i,"")),New Font("雅黑",10),Brushes.Black,e.x +(i+1/3)*n,e.Y + e.Height*1/3)
                Else
                    e.Text=""
                End If
            End If
        Next
        e.EndDraw

百 十  亿  千 佰 十 万 千 佰 十 元 角 分

老师  麻烦您写一下吧!我不会


--  作者:有点蓝
--  发布时间:2020/8/12 17:43:00
--  
Dim pn As Pen
Dim n As Integer
If e.Col.name.EndsWith("金额") AndAlso e.Col.IsNumeric Then
    Dim str() As String = {"百","十","亿","千","佰","十","万","千","佰","十","元","角","分"}
    For i As Integer = 1 To 10
        If i Mod 3 = 0 Then
            If i = 9 Then
                pn = Pens.Red
            Else
                pn = Pens.LightSlateGray
            End If
        Else
            pn = Pens.tan
        End If
        n = cint(e.Width / 11)  \'获取单位宽度
        e.Graphics.DrawLine(pn,e.x+i*n,e.y,e.x+i*n,e.Height)
        If e.Row.Index = 0 Then
            e.Graphics.DrawString(str(i-1),new Font("宋体",9),Brushes.black ,e.x +(i+1/5)*n,e.Y + e.Height*1/5)
        End If
        If e.Row.IsNull(e.Col.Name) = False Then
            e.text = ""
            e.Graphics.DrawString(cstr(GetDigit(e.Row(e.Col.name),8-i)),new Font("宋体",9),Brushes.red,e.x +(i+1/5)*n,e.Y + e.Height*1/5)
        End If
    Next
End If

--  作者:nxhylczh
--  发布时间:2020/8/12 23:29:00
--  
画不出来,如图所示:
图片点击可在新窗口打开查看此主题相关图片如下:无标1题.png
图片点击可在新窗口打开查看

现在还有一个问题 就是会留出空白,在鼠标进入事件也写了e.Table.Refresh 这行代码
同时 有数据的地方也不显示了

[此贴子已经被作者于2020/8/12 23:29:10编辑过]

--  作者:有点蓝
--  发布时间:2020/8/13 8:45:00
--  
把表格样式改为“无”或者“foxtable经典蓝”
--  作者:nxhylczh
--  发布时间:2020/8/13 11:06:00
--  

图片点击可在新窗口打开查看此主题相关图片如下:无标2题.png
图片点击可在新窗口打开查看
老师  是在表头上,在借方金额和贷方金额的下方。

--  作者:有点蓝
--  发布时间:2020/8/13 11:35:00
--  
只能在第一行绘制,无法在标题处绘制。