Foxtable(狐表)用户栏目专家坐堂 → 会计凭证的设计和录入


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

主题:会计凭证的设计和录入

美女呀,离线,留言给我吧!
采菊东篱下
  131楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1881 积分:10368 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2021/6/12 11:18:00 [只看该作者]

删除已存在的行删除行,修改日期依然添加行。

 回到顶部
帅哥,在线噢!
有点蓝
  132楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106654 积分:542453 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/6/12 11:20:00 [只看该作者]

看130楼

 回到顶部
美女呀,离线,留言给我吧!
采菊东篱下
  133楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1881 积分:10368 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2021/6/12 11:45:00 [只看该作者]

借方数不在窗口的表中,无论怎么操作,修改日期,都会添加一行借方数,原来的借方数依然存在。
[此贴子已经被作者于2021/6/12 12:03:35编辑过]

 回到顶部
美女呀,离线,留言给我吧!
采菊东篱下
  134楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1881 积分:10368 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2021/6/12 13:23:00 [只看该作者]

这是添加时定义的行
Dim r As DataRow = DataTables("财务数据源").SQLFind("[字号] = '" & (e.Form.Controls("TextBox2").text).SubString(0,2) & "# And [安日期生成单号辅助列] = '" & e.Form.Controls("dh1").text & "' And [借或贷] = '借'")
这是删除行代码
DataTables("财务数据源").SQLDeleteFor("[字号] = '" & (e.Form.Controls("TextBox2").text).SubString(0,2) & "# And [安日期生成单号辅助列] = '" & e.Form.Controls("dh1").Value & "' And [借或贷] = '借'")
能生成了,双击财务数据源表中的行,能打开对应单据,且e.Form.Controls("dh1").Value没变,说明这些数据都没问题,怎么就不能删除原来的行,不明!
[此贴子已经被作者于2021/6/12 14:43:53编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  135楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106654 积分:542453 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/6/12 14:33:00 [只看该作者]

#号是干嘛用的?!

 回到顶部
美女呀,离线,留言给我吧!
采菊东篱下
  136楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1881 积分:10368 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2021/6/12 16:54:00 [只看该作者]

始终保存一下增加一行借方数据

 回到顶部
帅哥,在线噢!
有点蓝
  137楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106654 积分:542453 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/6/12 16:57:00 [只看该作者]

Dim r As DataRow = DataTables("财务数据源").SQLFind("[字号] = '" & (e.Form.Controls("TextBox2").text).SubString(0,2) & "# And [安日期生成单号辅助列] = '" & e.Form.Controls("dh1").text & "' And [借或贷] = '借'")
If r Is Nothing Then
    r = DataTables("财务数据源").addnew
End If
r("日期") = e.Form.Controls("rq").text
r("凭证号") = e.Form.Controls("dh").text
r("借或贷") = "借"
r("安日期生成单号辅助列") = e.Form.Controls("dh1").text
r("附件张数") = e.Form.Controls("TextBox1").text
r("录入员") = e.Form.Controls("lry").text
r("字号") = (e.Form.Controls("TextBox2").text).SubString(0,2)
r("操作人姓名") = User.Name & " " & Date.Now
r("会计科目") = e.Form.Controls("ComboBox3").Value
r("会计科目辅助列") = (e.Form.Controls("ComboBox3").Value).Split(" ")(1)
If e.Form.Controls("ComboBox2").text = e.form.controls("combobox2").items(1) And e.Form.Controls("ComboBox1").text = e.form.controls("combobox1").items(0) _
    OrElse e.Form.Controls("ComboBox2").text = e.form.controls("combobox2").items(1) And e.Form.Controls("ComboBox1").text = e.form.controls("combobox1").items(1) Then
    r("外币借方金额") =  r("外币金额")
End If
Dim Parts0() As String = r("会计科目").Split("-")
If Parts0.length > 0 Then
    r("借方总账科目") = Parts0(0)
    r("一级科目") = Parts0(0)
    If Parts0.length > 1 Then
        r("二级科目") = Parts0(1)
        If Parts0.length > 2 Then
            r("二级科目") = Parts0(2)
        End If
    End If
End If
r("借方金额") = Tables("收款凭证_Table1").Compute("Sum(金额)")
r("金额") = Tables("收款凭证_Table1").Compute("Sum(金额)")
r.save
Dim drs As List(Of DataRow) = DataTables("财务数据源").SQLSelect("[字号] = '" & (e.Form.Controls("TextBox2").text).SubString(0,2) & "' And [日期] = #" & e.Form.Controls("rq").Value & "# And [安日期生成单号辅助列] = '" & e.Form.Controls("dh1").text & "' And [借或贷] = '贷'")
Dim zheyao As String = ""
For c As Integer = 0 To drs.count - 1
    zheyao = zheyao & drs(c)("摘要") & ","
Next
r("摘要") = zheyao.TrimEnd(",")
r.save
DataTables("财务数据源").LoadOrder = "字号,日期,凭证号,[借或贷] DESC"
DataTables("财务数据源").load
DataTables("财务数据源").DataCols("日期").RaiseDataColChanged()
DataTables("财务数据源").DataCols("凭证号").RaiseDataColChanged()
For i As Integer = DataTables("财务数据源").DataRows.count - 1 To 0 Step -1
    Dim tr As DataRow = DataTables("财务数据源").DataRows(i)
    If tr.Isnull("日期") Then
        tr.delete
    End If
Next

 回到顶部
美女呀,离线,留言给我吧!
采菊东篱下
  138楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1881 积分:10368 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2021/6/12 18:02:00 [只看该作者]

不修改任何数据,直接点两下保存,都会添加一行借方数据。

 回到顶部
美女呀,离线,留言给我吧!
采菊东篱下
  139楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1881 积分:10368 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2021/6/12 21:06:00 [只看该作者]

再加一个条件,删除原来的借方数据重新生成新行,已经解决重复录入问题了。
[此贴子已经被作者于2021/6/12 21:22:59编辑过]

 回到顶部
美女呀,离线,留言给我吧!
采菊东篱下
  140楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1881 积分:10368 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2021/6/15 11:29:00 [只看该作者]

我想把修改日期或删除单号后缺失的凭证号重新自动补上,现在Select语句报错:
e.Sender.WriteValue()
Dim yzdh As WinForm.TextBox = e.Form.Controls("dh")'dh是单号控件
Dim yzdh1 As WinForm.TextBox = e.Form.Controls("dh1")'dh是单号控件
Dim di As String = yzdh.Value 'di单号控件中的变量
Dim di1 As String = yzdh1.Value 'di单号控件中的变量
Dim d As Date  = e.Sender.Value
Dim y As Integer = d.Year
Dim m As Integer = d.Month
Dim Days As Integer = Date.DaysInMonth(y,m)
Dim fd As Date = New Date(y,m,1) '获得该月的第一天
Dim ld As Date = New Date(y,m,Days) '获得该月的最后一天
Dim Max0 As String
Dim max1 As String
Dim idx As Integer
Dim idx1 As Integer
Dim s As String = e.Form.Controls("TextBox2").text
If s.length > 2 Then
    s = s.SubString(0,2)
    Dim flt As String = "[字号] = '" & s & "' And [日期] >= #" & fd & "# And [日期] <= #" & ld & "#"
    Dim bh As String = s & "-" & Format(d,"yyyyMM") & "-" '生成编号的前缀
    Dim dts As Integer = DataTables("财务数据源").Compute("Count([会计科目])","[字号] = '" & s & "' And [日期] >= #" & fd & "# And [日期] <= #" & ld & "# And [凭证号] = '" & di & "'")
    If e.Sender.value IsNot Nothing And dts = 0 Then
        Dim kh As String
        Dim cmd As New SQLCommand
        cmd.CommandText = "Select DISTINCT MIN(凭证号) FR OM {财务数据源} Where 凭证号 NOT IN (SELECT DISTINCT 凭证号 FR OM {财务数据源} Where 日期 BETWEEN #" & fd & "# And #" & ld & "# Group By 字号 HAVING 字号 = '" & s & "')"
        kh = cmd.ExecuteScalar()
        If kh > 0 Then
            di = kh
            yzdh.Value = di
            idx1 = CInt(kh)
            di1 = bh & Format(idx1,"00000")
            yzdh1.Value = di1
        Else
            Max0 = DataTables("财务数据源").Compute("Max(凭证号)",flt) '取得该月的相同工程代码的最大单据编号
            If Max0 > "" Then '如果存在最大单据编号
                idx = CInt(Max0) + 1 '获得最大单据编号的后四位顺序号,并加1
            Else
                idx = 1 '否则顺序号等于1
            End If
            di = idx
            yzdh.Value = di
            Dim dts1 As Integer = DataTables("财务数据源").Compute("Count([会计科目])","[字号] = '" & s & "' And [日期] >= #" & fd & "# And [日期] <= #" & ld & "# And [安日期生成单号辅助列] = '" & di1 & "'")
            If e.Sender.value IsNot Nothing And dts1 = 0 Then
                max1 = DataTables("财务数据源").Compute("Max(安日期生成单号辅助列)",flt) '取得该月的相同工程代码的最大单据编号
                If max1 > "" Then '如果存在最大单据编号
                    idx1 = CInt(max1.Substring(10,5)) + 1 '获得最大单据编号的后五位顺序号,并加1
                Else
                    idx1 = 1 '否则顺序号等于1
                End If
                di1 = bh & Format(idx1,"00000")
                yzdh1.Value = di1
            End If
            messageBox.show(yzdh1.Value)
        End If
    End If
End If
[此贴子已经被作者于2021/6/15 11:30:08编辑过]

 回到顶部