Foxtable(狐表)用户栏目专家坐堂 → [求助]关于代码编制的问题


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

主题:[求助]关于代码编制的问题

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/3/18 21:33:00 [显示全部帖子]

1、你说的是报表?excel报表?你excel模板发上来看看。

 

2、输入录入的时候,自动在收、发表添加添加数据?

 

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

 

3、编码问题

 


Select e.DataCol.Name
    Case "代码","月"
        If e.DataRow.IsNull("代码") OrElse e.DataRow.IsNull("月") Then
            e.DataRow("单据编号") = Nothing
        Else
            Dim bh As String = e.DataRow("代码") & format( val(e.DataRow("月")), "00")  & "-" '生成编号的前缀
            If e.DataRow("单据编号").StartsWith(bh) = False '如果单据编号前缀不符
                Dim max As String
                Dim idx As Integer
                Dim flt As String
                flt = "代码 = '"& e.DataRow("代码")   & "' and 月 = '"& e.DataRow("月") & "'"
                 max = e.DataTable.Compute("Max(单据编号)",flt) '取得该月的相同工程代码的最大单据编号
                If max > "" Then '如果存在最大单据编号
                    idx = CInt(max.Substring(bh.length,3)) + 1 '获得最大单据编号的后三位顺序号,并加1
                Else
                    idx = 1 '否则顺序号等于1
                End If
                e.DataRow("单据编号") = bh & Format(idx,"000")
            End If
        End If
End Select


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/3/20 12:00:00 [显示全部帖子]

1、

 

Select e.DataCol.Name
    Case "代码","月"
        If e.DataRow.IsNull("代码") OrElse e.DataRow.IsNull("月") Then
            e.DataRow("单据编号") = Nothing
        Else
            Dim bh As String = e.DataRow("代码") & format( val(e.DataRow("月")), "00")  & "-" '生成编号的前缀
            If e.DataRow("单据编号").StartsWith(bh) = False '如果单据编号前缀不符
                Dim max As String
                Dim idx As Integer
                Dim flt As String
                flt = "代码 = '"& e.DataRow("代码") & "' and 月 = '"& e.DataRow("月") & "' and _Identify <> " & e.DataRow("_Identify")
                Dim fdr = e.DataTable.find(flt, "单据编号 desc, _Identify desc") '取得该月的相同工程代码的最大单据编号
                If fdr IsNot Nothing Then
                    If fdr("打印属性") = "已打印" Then '如果存在最大单据编号
                        idx = CInt(fdr("单据编号").Substring(bh.length,3)) + 1 '获得最大单据编号的后三位顺序号,并加1
                        e.DataRow("单据编号") = bh & Format(idx,"000")
                    Else
                        e.DataRow("单据编号") = fdr("单据编号")
                    End If
                Else
                    idx = 1 '否则顺序号等于1
                    e.DataRow("单据编号") = bh & Format(idx,"000")
                End If
               
            End If
        End If
End Select


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/3/20 12:04:00 [显示全部帖子]

2、加入一个判断即可,如

 

If e.DataCol.Name = "出入库" Then

    If e.DataRow("出入库") = "收" Then

 

    ElseIf e.DataRow("出入库") = "发" Then

 

    End If

End If


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/3/21 12:31:00 [显示全部帖子]

改成这样

 

Select Case e.DataCol.name
    Case "总码", "出入库"
        If e.DataRow("出入库") = "收" Then
            Dim dr As DataRow = DataTables("收").Find("总码= '" & e.DataRow("总码") & "'")
            If dr Is Nothing Then
                dr = DataTables("收").AddNew()
                dr("总码") = e.DataRow("总码")
                dr("日期") = e.DataRow("录入时间")
                dr("物品类别") = e.DataRow("物品类别")
                dr("资金类别") = e.DataRow("资金类别")
                dr("名称") = e.DataRow("名称")
                dr("规格") = e.DataRow("规格")
                dr("单位") = e.DataRow("单位")
                dr("数量") = e.DataRow("数量")
                dr("单价") = e.DataRow("单价")
                dr("金额") = e.DataRow("金额")
                dr("供货商") = e.DataRow("供货商")
                dr("经手人") = e.DataRow("经手人")
                dr("单据编号") = e.DataRow("单据编号")
                dr("备注") = e.DataRow("备注")
            End If
        End If
       
    Case  "数量","金额"
        If e.DataRow("出入库") = "收" Then
            Dim dr As DataRow = DataTables("收").Find("总码 = '" & e.DataRow("总码") & "'")
            If dr IsNot Nothing Then
                dr(e.DataCol.Name) = e.DataRow(e.DataCol.Name)
            End If
        End If
End Select
    
   

 


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/3/22 17:00:00 [显示全部帖子]

参考代码

 

Select Case e.DataCol.name
    Case "总码", "出入库"
        If e.DataRow("出入库") = "收" Then
            Dim dr As DataRow = DataTables("收").Find("总码= '" & e.DataRow("总码") & "'")
            If dr Is Nothing Then
                dr = DataTables("收").AddNew()
                dr("总码") = e.DataRow("总码")
                dr("日期") = e.DataRow("录入时间")
                dr("物品类别") = e.DataRow("物品类别")
                dr("资金类别") = e.DataRow("资金类别")
                dr("名称") = e.DataRow("名称")
                dr("规格") = e.DataRow("规格")
                dr("单位") = e.DataRow("单位")
                dr("数量") = e.DataRow("数量")
                dr("单价") = e.DataRow("单价")
                dr("金额") = e.DataRow("金额")
                dr("供货商") = e.DataRow("供货商")
                dr("经手人") = e.DataRow("经手人")
                dr("单据编号") = e.DataRow("单据编号")
                dr("备注") = e.DataRow("备注")
            ElseIf e.DataRow("出入库") = "发" Then

                '这里写代码
            End If
        End If
       
    Case  "数量","金额"
        If e.DataRow("出入库") = "收" Then
            Dim dr As DataRow = DataTables("收").Find("总码 = '" & e.DataRow("总码") & "'")
            If dr IsNot Nothing Then
                dr(e.DataCol.Name) = e.DataRow(e.DataCol.Name)
            End If
        ElseIf e.DataRow("出入库") = "发" Then

            '这里写代码
        End If
End Select


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/3/22 17:16:00 [显示全部帖子]

Select Case e.DataCol.name
    Case "总码", "出入库"
        If e.DataRow("出入库") = "收" Then

            e.DataRow.Save
            Dim dr As DataRow = DataTables("收").Find("总码= '" & e.DataRow("_Identify") & "'")
            If dr Is Nothing Then
                dr = DataTables("收").AddNew()
                dr("总码") = e.DataRow("_Identify")
                dr("日期") = e.DataRow("录入时间")
                dr("物品类别") = e.DataRow("物品类别")
                dr("资金类别") = e.DataRow("资金类别")
                dr("名称") = e.DataRow("名称")
                dr("规格") = e.DataRow("规格")
                dr("单位") = e.DataRow("单位")
                dr("数量") = e.DataRow("数量")
                dr("单价") = e.DataRow("单价")
                dr("金额") = e.DataRow("金额")
                dr("供货商") = e.DataRow("供货商")
                dr("经手人") = e.DataRow("经手人")
                dr("单据编号") = e.DataRow("单据编号")
                dr("备注") = e.DataRow("备注")
            ElseIf e.DataRow("出入库") = "发" Then

                '这里写代码
            End If
        End If
       
    Case  "数量","金额"
        If e.DataRow("出入库") = "收" Then
            Dim dr As DataRow = DataTables("收").Find("总码 = '" & e.DataRow("_Identify") & "'")
            If dr IsNot Nothing Then
                dr(e.DataCol.Name) = e.DataRow(e.DataCol.Name)
            End If
        ElseIf e.DataRow("出入库") = "发" Then

            '这里写代码
        End If
End Select


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/3/22 21:04:00 [显示全部帖子]

Select Case e.DataCol.name
    Case "总码", "出入库", "数量","金额"
        If e.DataRow("出入库") = "收" Then
            e.DataRow.Save
            Dim dr As DataRow = DataTables("收").Find("总码= '" & e.DataRow("_Identify") & "'")
            If dr Is Nothing Then
                dr = DataTables("收").AddNew()
                dr("总码") = e.DataRow("_Identify")
            End If
            dr("日期") = e.DataRow("录入时间")
            dr("物品类别") = e.DataRow("物品类别")
            dr("资金类别") = e.DataRow("资金类别")
            dr("名称") = e.DataRow("名称")
            dr("规格") = e.DataRow("规格")
            dr("单位") = e.DataRow("单位")
            dr("数量") = e.DataRow("数量")
            dr("单价") = e.DataRow("单价")
            dr("金额") = e.DataRow("金额")
            dr("供货商") = e.DataRow("供货商")
            dr("经手人") = e.DataRow("经手人")
            dr("单据编号") = e.DataRow("单据编号")
            dr("备注") = e.DataRow("备注")
        ElseIf e.DataRow("出入库") = "发" Then
           
            '这里写代码
        End If
End Select

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/3/23 14:32:00 [显示全部帖子]

以下是引用冰点1976在2018/3/23 13:25:00的发言:

 ElseIf e.DataRow("出入库") = "发" Then
           
            '这里写代码
        End If
End Select
  

   老师还需要写什么代码啊?

 

 

拷贝【收】的代码,写到发【发】那里去,然后修改各个列名,匹配【发】表。


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/3/27 11:36:00 [显示全部帖子]

以下是引用冰点1976在2018/3/27 11:27:00的发言:
老师,请问我做的收发存仓库管理系统,现在出现数据录入里改动了经手人、数量等列内容后,以前已经编号的信息行(自动生成的日期、经手人)为何也会改变,如何只改变新增行的日期和经手人,而不动已经生成好的日期呢?

 

你修改的是原来的记录?你修改了对应的行也修改这个是符合逻辑的吧?你希望修改的时候不变?请举例说明。


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/3/27 11:38:00 [显示全部帖子]

以下是引用冰点1976在2018/3/27 11:30:00的发言:
If e.DataCol.name = "总码" AndAlso e.newvalue <> Nothing Then
    e.DataRow("日期") = Date.now
End If
这是自动生成日期的代码

If e.DataCol.name = "总码" AndAlso e.newvalue <> Nothing Then
    e.DataRow("经手人") = User.name
End If

这是自动生成经手人的代码

 

请贴出你datacolchanged事件的完整代码。红色代码那里,把经手人、日期去掉,即可

 

Case "总码", "出入库", "数量","金额", "经手人", "日期"


 回到顶部
总数 11 1 2 下一页