Foxtable(狐表)用户栏目专家坐堂 → 关于合并


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

主题:关于合并

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


加好友 发短信
等级:四尾狐 帖子:997 积分:6752 威望:0 精华:0 注册:2018/6/8 16:17:00
  发帖心情 Post By:2018/8/16 17:05:00 [只看该作者]

以下是引用有点甜在2018/8/16 16:20:00的发言:

1、

 

Dim t As Table = e.Form.controls("table1").Table
Dim ls As object = t.GetCheckedRows
If ls.count = 0 Then ls = t.Rows
Dim dt As DataTable = DataTables("表A")
For Each r As Row In ls
    Dim dr As DataRow = dt.find("身份证号='" & r("身份证号") & "'")
    If dr Is Nothing Then
        Dim d As Double
        If Double.TryParse(r("年龄"),d) = False Then
            r.DataRow.SetError("年龄", "不是数字")
        Else
            dr = dt.AddNew()
            For Each dc As Col In t.Cols
                If dt.DataCols.Contains(dc.name) Then
                    dr(dc.Name) = r(dc.name)
                End If
            Next
        End If
    End If
Next
msgbox("合并完成")

 

2、动态添加一列,如果出错的,标记一下,最后你可以根据标记列筛选出数据

 

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

 

老师,对于上面的验证,性别只能是男和女,且不能为空,该如何实现呀?


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


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

        If Double.TryParse(r("年龄"),d) = False Then
            r.DataRow.SetError("年龄", "不是数字")
        ElseIf r("性别") <> "男" andalso r("性别") <> "女" Then

            r.DataRow.SetError("性别", "有问题")

        Else
            dr = dt.AddNew()
            For Each dc As Col In t.Cols
                If dt.DataCols.Contains(dc.name) Then
                    dr(dc.Name) = r(dc.name)
                End If
            Next
        End If


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


加好友 发短信
等级:四尾狐 帖子:997 积分:6752 威望:0 精华:0 注册:2018/6/8 16:17:00
  发帖心情 Post By:2018/8/16 18:09:00 [只看该作者]

以下是引用有点甜在2018/8/16 17:08:00的发言:

        If Double.TryParse(r("年龄"),d) = False Then
            r.DataRow.SetError("年龄", "不是数字")
        ElseIf r("性别") <> "男" andalso r("性别") <> "女" Then

            r.DataRow.SetError("性别", "有问题")

        Else
            dr = dt.AddNew()
            For Each dc As Col In t.Cols
                If dt.DataCols.Contains(dc.name) Then
                    dr(dc.Name) = r(dc.name)
                End If
            Next
        End If

老师,对应上面的验证:

1、错误行在table1中会有error提示,但是导出后就没了,如何给错误单位格标红,用户导出后,也可以看到错误的位置?

 


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


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

以下是引用susu312在2018/8/16 18:09:00的发言:

老师,对应上面的验证:

1、错误行在table1中会有error提示,但是导出后就没了,如何给错误单位格标红,用户导出后,也可以看到错误的位置?

 

 

你这个就麻烦了 http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=119223&skin=0

 

 


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


加好友 发短信
等级:四尾狐 帖子:997 积分:6752 威望:0 精华:0 注册:2018/6/8 16:17:00
  发帖心情 Post By:2018/8/16 21:19:00 [只看该作者]

以下是引用有点甜在2018/8/16 20:26:00的发言:

 

你这个就麻烦了 http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=119223&skin=0

 

 

老师,看到导出来有颜色的EXCEl表格,感觉真的是好强大,但是,我不会做,求帮助

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目25.table

[此贴子已经被作者于2018/8/16 21:19:04编辑过]

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


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

Dim dlg As New SaveFileDialog '定义一个新的SaveFileDialog
dlg.Filter = "Excel文件|*.xls;*.xlsx" '设置筛选器
Dim flg As New SaveExcelFlags
flg.CellStyle = True
Dim dt As Table = e.Form.controls("table1").Table
If dlg.ShowDialog = DialogResult.Ok Then '如果用户单击了确定按钮
    Dim Book As New XLS.Book '定义一个Excel工作簿
    Dim Sheet As XLS.Sheet = Book.Sheets(0) '引用工作簿的第一个工作表
    Dim Style As Xls.Style = Book.NewStyle '新建一个样式
    Style.BackColor = Color.Red '样式的背景颜色设为红色
    For c As Integer = 0 To dt.Cols.Count -1 '添加列标题
        Sheet(0, c).Value = dt.Cols(c).Name
    Next
    For r As Integer = 0 To dt.Rows.Count - 1 '填入数据
        For c As Integer = 0 To dt.Cols.Count -1
            Sheet(r +1, c).Value = dt.rows(r)(c)
            If dt.rows(r).DataRow.GetError(dt.Cols(c).name) > "" Then
                Sheet(r + 1,c).Style = Style '设置折扣单元格的样式
            End If
        Next
    Next
    '打开工作簿
    Book.Save(dlg.FileName)
    Dim Proc As New Process
    Proc.File = dlg.FileName
    Proc.Start()
End If

 

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

 


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


加好友 发短信
等级:四尾狐 帖子:997 积分:6752 威望:0 精华:0 注册:2018/6/8 16:17:00
  发帖心情 Post By:2018/8/16 22:31:00 [只看该作者]

以下是引用有点甜在2018/8/16 22:25:00的发言:

Dim dlg As New SaveFileDialog '定义一个新的SaveFileDialog
dlg.Filter = "Excel文件|*.xls;*.xlsx" '设置筛选器
Dim flg As New SaveExcelFlags
flg.CellStyle = True
Dim dt As Table = e.Form.controls("table1").Table
If dlg.ShowDialog = DialogResult.Ok Then '如果用户单击了确定按钮
    Dim Book As New XLS.Book '定义一个Excel工作簿
    Dim Sheet As XLS.Sheet = Book.Sheets(0) '引用工作簿的第一个工作表
    Dim Style As Xls.Style = Book.NewStyle '新建一个样式
    Style.BackColor = Color.Red '样式的背景颜色设为红色
    For c As Integer = 0 To dt.Cols.Count -1 '添加列标题
        Sheet(0, c).Value = dt.Cols(c).Name
    Next
    For r As Integer = 0 To dt.Rows.Count - 1 '填入数据
        For c As Integer = 0 To dt.Cols.Count -1
            Sheet(r +1, c).Value = dt.rows(r)(c)
            If dt.rows(r).DataRow.GetError(dt.Cols(c).name) > "" Then
                Sheet(r + 1,c).Style = Style '设置折扣单元格的样式
            End If
        Next
    Next
    '打开工作簿
    Book.Save(dlg.FileName)
    Dim Proc As New Process
    Proc.File = dlg.FileName
    Proc.Start()
End If

 

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

 

 

 

老师,我也想来着,您看我的思路可以不?

 

Dim dlg As New SaveFileDialog '定义一个新的SaveFileDialog
dlg.Filter = "Excel文件|*.xls;*.xlsx" '设置筛选器
Dim flg As New SaveExcelFlags
flg.CellStyle = True
Dim t As Table = e.Form.controls("table1").Table
If dlg.ShowDialog = DialogResult.Ok Then '如果用户单击了确定按钮
     t.SaveExcel(dlg.FileName, "人员信息",flg)  '保存文件
End If
Dim App As New MSExcel.Application
Dim Wb As MSExcel.Workbook = App.WorkBooks.Open(dlg.FileName)
Dim Ws As MSExcel.WorkSheet = Wb.WorkSheets(1)
Dim Rg As MSExcel.Range = Ws.UsedRange

'For Each r As Row In t.Rows
    'For Each dc As Col In t.Cols   ''对于table1中的每一列
       'If  r.GetError(dc)) IsNot Nothing  Then
           'Ws.cells(r.index+t.HeaderRows+1, dc.Index+1).Interior.Color = RGB(clr.r, clr.g, clr.b) 这里赋值红色
       'End If
    'Next
'Next
app.visible = True

 

 

我先去理解您的代码

 

 

还是您的办法简单易理解。

[此贴子已经被作者于2018/8/16 22:36:42编辑过]

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


加好友 发短信
等级:四尾狐 帖子:997 积分:6752 威望:0 精华:0 注册:2018/6/8 16:17:00
  发帖心情 Post By:2018/8/16 22:51:00 [只看该作者]

老师,我还想请教一个问题:

 

导入功能:字段验证部分代码:

 

If r("性别") <> "男" AndAlso r("性别") <> "女" Then
            r.DataRow.SetError("性别", "只能为男或女")
            r.DataRow("标记")=1 
        ElseIf Double.TryParse(r("年龄"),d) = False Then
            r.DataRow.SetError("年龄", "不是数字")
            r.DataRow("标记")=1 
        ElseIf r("离退休单位").IsNull Then
           r.DataRow.SetError("离退休单位", "不能为空")
            r.DataRow("标记")=1 
        ElseIf r("离退休部门").IsNull Then
           r.DataRow.SetError("离退休部门", "不能为空")
            r.DataRow("标记")=1 
        Else    

 

您看我现在对字段都是这样验证的,

 

1、比如离退休单位、离退休部门、离退休职务,专业技术职务、这些字段都要求它非空,而且不能超过多少字?这个统一限定,还是一个字段一个字段限定? 能统一的话尽量不一个一个来

2、联系方式非空,且11位,且 都为数字,这个咋验证呀?

 

3、对于字段是时间类型的,应该要检查它是否为合法时间,就想检查合法数字一样?

 

    

   


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


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

类型转换参考

 

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

 

判断是否为空 If r("某列") = nothing then

 

If r("某列") <> nothing then

 

判断字符数量,参考 If cstr(r("某列")).length = 11 then

 

你尽量一项一项的判断吧,你现在还没到简化代码的程度。先做最基础的。


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


加好友 发短信
等级:四尾狐 帖子:997 积分:6752 威望:0 精华:0 注册:2018/6/8 16:17:00
  发帖心情 Post By:2018/8/17 8:27:00 [只看该作者]

以下是引用有点甜在2018/8/16 23:29:00的发言:

类型转换参考

 

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

 

判断是否为空 If r("某列") = nothing then

 

If r("某列") <> nothing then

 

判断字符数量,参考 If cstr(r("某列")).length = 11 then

 

你尽量一项一项的判断吧,你现在还没到简化代码的程度。先做最基础的。

非常非常感谢老师,我明白啦,不懂了再问您哈

 回到顶部
总数 23 上一页 1 2 3 下一页