以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- listview怎么去掉详细信息? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=176714) |
-- 作者:wukangppbb -- 发布时间:2022/4/24 11:13:00 -- listview怎么去掉详细信息? 老师,listview怎么去掉详细信息?直接在“生成”这个按钮里面实现呢? Dim lvw As WinForm.ListView = e.Form.Controls("ListView1") lvw.StopRedraw() \'暂停绘制 lvw.Columns.Clear() \'清除原来的列 lvw.Rows.Clear() \'清除原来的行 lvw.Images.Clear() \'清除原来的图片 lvw.View = ViewMode.Details \'显示模式为详细信息 lvw.GridLines = True \'显示网格线 Dim cls() As String = {"国家","人口","面积","语言","宗教","洲"} \'指定要显示的各列 Dim wds() As Integer = {100,100,130,80,80,80} \'定义列宽 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 lvw.Columns("人口").Text = "人口(万)" \'修改人口列的标题 lvw.Columns("人口").TextAlign = HorizontalAlignment.Right \'人口列靠右对齐 lvw.Columns("面积").TextAlign = HorizontalAlignment.Right \'面积列靠右对齐 For Each dr As DataRow In DataTables("国家").DataRows \'从数据表中提取数据 Dim Key As String = dr("图标") Dim r As WinForm.ListViewRow = lvw.Rows.Add() \'增加一行 lvw.Images.AddImage(Key, Key & ".ico", Key & "48.ico") \'添加代表这个国家的一对图标 r.ImageKey = Key \'指定图标键值 For Each cl As String In cls \'逐列取值 Select Case cl Case "人口","面积" \'如果是人口列或面积列 r(cl) = format(dr(cl),"#,000") \'则显示千位分割符号 Case Else r(cl) = dr(cl) End Select Next Next lvw.ResumeRedraw() \'恢复绘制 If e.Sender.Checked = True Then Dim lvw As WinForm.ListView = e.Form.Controls("ListView1") lvw.View = ViewMode.Details \'显示模式切换为详细内容 End If |
-- 作者:有点蓝 -- 发布时间:2022/4/24 11:20:00 -- 按钮里默认显示模式就是详细内容啊,不需要详细信息勾选,直接去掉即可 |
-- 作者:wukangppbb -- 发布时间:2022/4/24 11:38:00 -- 我这么写存在空值,是哪里错误了? 我这么写取到空值,是哪里错误了? Dim lvw As WinForm.ListView = e.Form.Controls("ListView1") lvw.StopRedraw() \'暂停绘制 lvw.Columns.Clear() \'清除原来的列 lvw.Rows.Clear() \'清除原来的行 lvw.Images.Clear() \'清除原来的图片 lvw.View = ViewMode.Details \'显示模式为详细信息 lvw.GridLines = True \'显示网格线 Dim cls() As String = {"客户地区","客户代码","客户名称","客户联系电话","客户等级"} \'指定要显示的各列 Dim wds() As Integer = {100,100,130,80,80,80} \'定义列宽 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 "cl" r(cl) = dr(cl) End Select Next Next lvw.ResumeRedraw() \'恢复绘制
|
-- 作者:有点蓝 -- 发布时间:2022/4/24 11:40:00 -- For Each dr As DataRow In DataTables("订单").DataRows \'从数据表中提取数据 Dim r As WinForm.ListViewRow = lvw.Rows.Add() \'增加一行 For Each cl As String In cls \'逐列取值 r(cl) = dr(cl) Next Next
|
-- 作者:wukangppbb -- 发布时间:2022/4/24 13:42:00 -- 怎么写这个确定按钮? 怎么写这个确定按钮? 点击“确定”,勾选好的,订单客户名称填充到“客户评估表”里面的“订单客户”列里面,华南客户名称填充到“华南客户列”里面。 |
-- 作者:有点蓝 -- 发布时间:2022/4/24 13:54:00 -- 参考:http://www.foxtable.com/webhelp/topics/2778.htm |
-- 作者:wukangppbb -- 发布时间:2022/4/24 16:34:00 -- 多选框输入 老师,其实我是下图这么一个需求,我改了代码,是可以输入了。 但是有个需求,复选的内容写入“客户评估”表的时候,是用“,”分开全部汇总写在一个单元格里面,而不是每一个复选占用一个单元格。 比如,复选了listview1里面的华北,华南的客户,客户名称汇总显示在一个单元格。 这样。“确定”按钮应该怎么写? Dim lvw As WinForm.ListView = e.Form.Controls("ListView1") Dim vls As String = "" Dim dr As DataRow For Each vr As WinForm.ListViewRow In lvw.CheckedRows dr = DataTables("客户评估").Find("订单客户 is null") If dr Is Nothing Then dr = DataTables("客户评估").AddNew End If dr("订单客户") = vr("客户名称") Next Dim lvw2 As WinForm.ListView = e.Form.Controls("ListView2") Dim vls2 As String = "" Dim dr2 As DataRow For Each vr As WinForm.ListViewRow In lvw2.CheckedRows dr2 = DataTables("客户评估").Find(vr("地区") & "客户 is null") If dr2 Is Nothing Then dr2 = DataTables("客户评估").AddNew End If dr2(vr("地区") & "客户") = vr("客户名称") Next Dim lst As new List(of String) Tables("客户评估").Current("订单客户") = String.Join(",",lst.ToArray) Tables("客户评估").Current("华南客户") = String.Join(",",lst.ToArray) forms("客户评估").close |
-- 作者:有点蓝 -- 发布时间:2022/4/24 16:40:00 -- 填好的数据是怎么样的?请举例说明 |
-- 作者:wukangppbb -- 发布时间:2022/4/24 17:07:00 -- 就是这么一个效果 就是这么一个效果 [此贴子已经被作者于2022/4/26 17:12:02编辑过]
|
-- 作者:有点蓝 -- 发布时间:2022/4/24 17:14:00 -- Dim lvw As WinForm.ListView = e.Form.Controls("ListView1") Dim vls As String = "" Dim dr As DataRow = DataTables("客户评估").AddNew For Each vr As WinForm.ListViewRow In lvw.CheckedRows vls = vls & "," vr("客户名称") Next dr("订单客户") = vls.trim(",")
|