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


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

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

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


加好友 发短信
等级:八尾狐 帖子:1881 积分:10368 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2021/4/9 23:47:00 [显示全部帖子]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:小区车辆管理(040923).rar

密码:888888
我弄来弄去,收付转财务数据源中的借方金额始终不变,贷方可变了。

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


加好友 发短信
等级:八尾狐 帖子:1881 积分:10368 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2021/4/10 22:09:00 [显示全部帖子]

你不要收款凭证窗口保存按钮里下面的如果不为空代码,修改窗口中的数据,收付转财务数据源这张单的借方整行数据不会自动更新,更不会重新统计金额。

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


加好友 发短信
等级:八尾狐 帖子:1881 积分:10368 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2021/4/12 8:28:00 [显示全部帖子]

  我把你的代码细节部份全忽略了,刚看了你的回复我在新增行下加上End if,试了一下收付转财务数据源表此单的借方金额依然没变,我把ie缩小跟软件中的代码一行行核对,发现你的代码中在统计金额后有保存代码,添上这代码后重试可以更新了。
  其实这个问题我昨天已解决了,我的方法是把原来的借方整行删除,重新添加一行重新生成新的数据,另用代码合成了借方摘要,更用代码实现了安日期、凭证号、先借后贷的顺序排列显示,因觉应有替换原数据的方法,就没回,等待你如何解决,始终是你的代码简洁些,现两种方法的代码我都保存,作为学习,谢谢指教。
[此贴子已经被作者于2021/4/12 8:28:56编辑过]

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


加好友 发短信
等级:八尾狐 帖子:1881 积分:10368 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2021/4/26 15:26:00 [显示全部帖子]

红色代码的定义有问题的,它是窗口上动态生成,动态绑定到财务数据源上的表,执行代码后直接把财务数据源上的日期、凭证号、安日期生成单号辅助列、字号全改为一样了!
Select Case e.StripItem.Name
    Case "保存" '保存代
        If e.Form.Controls("rq").text = "" Then
            messagebox.show("请选择日期")
            Return
        ElseIf Tables("收款凭证_Table1").Compute("Count([贷方科目])") = 0 Then
            Return
        End If
        For Each dt As DataRow In Tables("收款凭证_Table1").DataTable.Select("[贷方科目] Is not null")
            Dim Parts() As String = dt("明细科目").Split("-")
            dt("日期") = e.Form.Controls("rq").text
            dt("凭证号") = e.Form.Controls("dh").text
            dt("安日期生成单号辅助列") = e.Form.Controls("dh1").text
            dt("附件张数") = e.Form.Controls("TextBox1").text
            dt("录入员") = e.Form.Controls("lry").text
            dt("会计科目") = dt("贷方科目") & "-" & dt("明细科目")
            dt("字号") = "收"
            dt("借或贷") = "贷"
            dt("贷方金额") =  dt("金额")
            dt("操作人姓名") = User.Name & " " & Date.Now
            If Parts.length > 0 Then
                dt("二级科目") = Parts(0)
                If Parts.length > 1 Then
                    dt("三级科目") = Parts(1)
                    If Parts.length > 2 Then
                        dt("四级科目") = Parts(2)
                        If Parts.length > 3 Then
                            dt("五级科目") = Parts(3)
                        End If
                    End If
                End If
            End If
            dt.Save
        Next
        'DataTables("财务数据源").LoadOrder = "日期,字号,[借或贷] = '借',凭证号"
        'DataTables("财务数据源").Save()
        DataTables("财务数据源").load
        Dim r As DataRow = DataTables("财务数据源").SQLFind("[字号] = '收' And [日期] = #" & e.Form.Controls("rq").Value & "# 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("字号") = "收"
        r("操作人姓名") = User.Name & " " & Date.Now
        r("会计科目") = e.Form.Controls("ComboBox3").Value
        Dim Parts0() As String = r("会计科目").Split("-")
        If Parts0.length > 0 Then
            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.save
        Dim drs As List(Of DataRow) = DataTables("财务数据源").Select("[字号] = '收' 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(",")
        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
        DataTables("财务数据源").LoadOrder = "日期,字号,[借或贷] = '借',凭证号"
        DataTables("财务数据源").Save()
        DataTables("财务数据源").load
[此贴子已经被作者于2021/4/26 15:43:37编辑过]

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


加好友 发短信
等级:八尾狐 帖子:1881 积分:10368 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2021/4/26 15:39:00 [显示全部帖子]

它应该加上[字号] = "收" And  [凭证号] = e.Form.Controls("dh").text 两个条件
For Each dt As DataRow In Tables("收款凭证_Table1").DataTable.Select("[字号] = '收' And [日期] = #" & e.Form.Controls("rq").text & "# And  [凭证号] = '" & e.Form.Controls("dh").text & "' And [贷方科目] Is not null")
但这两个条件在窗口的不同控件上,不在窗口的表里,这样定义行得通吗?另这不是用代码绑定在窗口的表上吗?执行 DataTables("财务数据源").Save()时金额没自动保存。

[此贴子已经被作者于2021/5/2 19:04:08编辑过]

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


加好友 发短信
等级:八尾狐 帖子:1881 积分:10368 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2021/4/26 15:42:00 [显示全部帖子]

DataTables("财务数据源").LoadOrder = "日期,字号,[借或贷] = '借',凭证号"
这代码有用,财务数据源是分页加载表,加上它安日期、字号、先借、后贷、凭证号排列,显示才正常。

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


加好友 发短信
等级:八尾狐 帖子:1881 积分:10368 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2021/4/26 15:48:00 [显示全部帖子]

窗口是这样绑定财务数据源表的:
If e.Form.Controls("ComboBox2").text = e.form.controls("combobox2").items(0) And e.Sender.text = e.form.controls("combobox1").items(0) Then
    With Tables("收款凭证_Table1")
        For i As Integer = .Rows.count - 1 To 0 Step -1
            .Rows(i).Delete
        Next
        .DataSource = DataTables("财务数据源")
        .Fill("select * fro m {财务数据源} where [_Identify] Is Null",False)
        .SetColVisibleWidth("摘要|300|贷方科目|100|明细科目|250|金额|100")
        .AddNew(10)
        .Cols("贷方科目").DropForm = "科目"
        .Cols("金额").GrandTotal = True
        .GrandTotal = True
        '设合计二字居中方法一
        'For Each cl As Col In Tables("月租收费_Table1").Cols '设所有列的数据居中
        'cl.TextAlign = TextAlignEnum.Center
        'Next
        '设合计二字居中方法二
        Dim r As Row
        For i As Integer = 0 To .Rows.Count(True) - 1 'Count加上参数True
            r = .Rows(i,True) 'Rows也需要加上参数True
            If r.Level Then '如果是合计行
                .Cols("摘要").TextAlign = TextAlignEnum.Center
            End If
        Next
    End With

以下代码省略

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


加好友 发短信
等级:八尾狐 帖子:1881 积分:10368 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2021/4/26 16:05:00 [显示全部帖子]

Tables("收款凭证_Table1").DataTable
窗口上的表绑定了财务数据源,它相当于DataTables("财务数据源")吗?如果相当,为何执行DataTables("财务数据源").Save(),窗口中的金额没自动保存到财务数据源表的金额列中?

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


加好友 发短信
等级:八尾狐 帖子:1881 积分:10368 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2021/4/26 21:32:00 [显示全部帖子]

我要实现先借,后贷顺序怎实现?
DataTables("财务数据源").LoadOrder = "日期,字号,[借或贷],凭证号"

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


加好友 发短信
等级:八尾狐 帖子:1881 积分:10368 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2021/4/26 21:51:00 [显示全部帖子]

那我75楼的代码显然错了, 
   .DataSource = DataTables("财务数据源")
   .Fill("select * fro m {财务数据源} where [_Identify] Is Null",False)
两者只能用其一,作为录入窗口只能用  .DataSource = DataTables("财务数据源")绑定表,它可以修改后保存,
.Fill("select * fro m {财务数据源} where 安日期生成单号辅助列 = '" & e.Row("安日期生成单号辅助列") & "' And [字号] = '付' And [凭证号] = '" & e.Row("凭证号") & "' And [借或贷] = '借'",False)用于生成查询窗口,因为我们要安条件查询,哪财务数据源表中的行弹出窗口,修改数据后保存,用.DataSource怎么设条件语句?
[此贴子已经被作者于2021/4/26 22:01:06编辑过]

 回到顶部
总数 111 上一页 1 2 3 4 5 6 7 8 9 10 下一页 ..12