以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  逻辑型字段问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=178995)

--  作者:wukangppbb
--  发布时间:2022/8/2 14:25:00
--  逻辑型字段问题

老师:

      问一下,这种逻辑型字段到了ListView 里面就变成了 true 与false  ,怎么调整为”是“与”否“?
.
图片点击可在新窗口打开查看

--  作者:有点蓝
--  发布时间:2022/8/2 14:34:00
--  
怎么生成ListView 的?
--  作者:wukangppbb
--  发布时间:2022/8/2 16:00:00
--  回复:(有点蓝)怎么生成ListView 的?
用了一个按钮
图片点击可在新窗口打开查看

Dim lvw As WinForm.ListView = e.Form.Controls("ListView1")
lvw.StopRedraw() \'暂停绘制
lvw.Columns.Clear() \'清除原来的列
lvw.Rows.Clear() \'清除原来的行
lvw.Images.Clear() \'清除原来的图片
lvw.GridLines = True \'显示网格线
lvw.MultiSelect = False \'禁止按Ctrl多选
lvw.CheckBoxes = True \'显示复选框
lvw.View = ViewMode.Details \'显示模式为详细信息
Dim cls() As String = {"集团公司","公司名称","公司属性","公司层次","是否并表","控股比例","归属母公司","公司代码"} \'指定要显示的各列
Dim wds() As Integer = {"200","200","200","200","200","200","200","200"} \'定义列宽
For i As Integer = 0 To  cls.Length - 1
    Dim c As WinForm.ListViewColumn = lvw.Columns.Add()
    c.Name = cls(i) \'指定列名
    c.Text = cls(i)\'指定列标题
    c.Width = wds(i) \'指定列宽

--  作者:有点蓝
--  发布时间:2022/8/2 16:10:00
--  
赋值的代码呢!!!

按单元格赋值的时候,自己判断是true就设置为“是”

--  作者:wukangppbb
--  发布时间:2022/8/2 16:30:00
--  回复:(有点蓝)赋值的代码呢!!!按单元格赋值的时...
写的好像有问题,麻烦老师改改


For Each dr As DataRow In DataTables("公司架构维护").DataRows \'从数据表中提取数据
    Dim r As  WinForm.ListViewRow =  lvw.Rows.Add() \'增加一行
    For Each cl As String In cls \'逐列取值
        Select Case cl
            Case "控股比例" \'
                r(cl) = format(dr(cl),"00.0%") \'则显示千位分割符号
            Case "是否并表"
                If cl= True Then
                    r(cl) = "是"
                End If
            Case Else
                r(cl) = dr(cl)
        End Select
    Next
Next
lvw.ResumeRedraw() \'恢复绘制

--  作者:有点蓝
--  发布时间:2022/8/2 16:35:00
--  
有什么问题?能不能尽量一次性把问题描述完整,不要老是一截一截的
--  作者:wukangppbb
--  发布时间:2022/8/2 17:14:00
--  回复:(有点蓝)有什么问题?能不能尽量一次性把问题...
现在的需求是:表格里面的打勾的效果怎么在listview 里面显示出来?  

以下是表格的显示
图片点击可在新窗口打开查看

以下是listview 里面的显示


图片点击可在新窗口打开查看


生成的代码:
Dim lvw As WinForm.ListView = e.Form.Controls("ListView1")
lvw.StopRedraw() \'暂停绘制
lvw.Columns.Clear() \'清除原来的列
lvw.Rows.Clear() \'清除原来的行
lvw.Images.Clear() \'清除原来的图片
lvw.GridLines = True \'显示网格线
lvw.MultiSelect = False \'禁止按Ctrl多选
lvw.CheckBoxes = True \'显示复选框
lvw.View = ViewMode.Details \'显示模式为详细信息
Dim cls() As String = {"集团公司","公司名称","公司属性","公司层次","是否并表","控股比例","归属母公司","公司代码"} \'指定要显示的各列
Dim wds() As Integer = {"200","200","200","200","200","200","200","200"} \'定义列宽
For i As Integer = 0 To  cls.Length - 1
    Dim c As WinForm.ListViewColumn = lvw.Columns.Add()
    c.Name = cls(i) \'指定列名
    c.Text = cls(i)\'指定列标题
    c.Width = wds(i) \'指定列宽
Next
For Each dr As DataRow In DataTables("公司架构维护").DataRows \'从数据表中提取数据
    Dim r As  WinForm.ListViewRow =  lvw.Rows.Add() \'增加一行
    For Each cl As String In cls \'逐列取值
        Select Case cl
            Case "控股比例" \'
                r(cl) = format(dr(cl),"00.0%") \'则显示千位分割符号
            Case Else
                r(cl) = dr(cl)
        End Select
    Next
Next
lvw.ResumeRedraw() \'恢复绘制



--  作者:有点蓝
--  发布时间:2022/8/2 17:22:00
--  
无法显示打勾效果,只能使用其它字符替代,比如是/否
--  作者:wukangppbb
--  发布时间:2022/8/3 14:58:00
--  回复:(有点蓝)无法显示打勾效果,只能使用其它字符...
这个写进去以后报错了,转换不成“是”与“否”。

 For Each cl As String In cls \'逐列取值
        Select Case cl
            Case "控股比例" \'
                r(cl) = format(dr(cl),"00.0%") \'则显示千位分割符号
            Case "是否并表"
                If cl = True Then
                    r(cl) =  "是"
                    If cl = False Then
                        r(cl) =  "否"
                    End If
                End If
            Case Else
                r(cl) = dr(cl)
        End Select
图片点击可在新窗口打开查看

--  作者:有点蓝
--  发布时间:2022/8/3 15:00:00
--  
            Case "是否并表"
                If dr(cl) = True Then
                    r(cl) =  "是"
                else
                    r(cl) =  "否"
                End If
           Case Else