Foxtable(狐表)用户栏目专家坐堂 → 编写下次自动生成的起号


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

主题:编写下次自动生成的起号

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


加好友 发短信
等级:幼狐 帖子:187 积分:1434 威望:0 精华:0 注册:2017/10/21 17:27:00
编写下次自动生成的起号  发帖心情 Post By:2017/11/26 22:10:00 [显示全部帖子]

有点甜老师:

         谢谢您这两天的指导,我按您的指导,已经将所作的表格进一步完善了.现在有两个问题.一是:如果某人第一天售出的是3张,我手工录入起号是5001,止号是5003.要是第二天.他又售出10张,如何写编码自动生成下次的起号.也就是从5004到5013张.另外如何计算表中的结存金额.现将我按您的指导写的编码及相关截图符上..请老师将组合后的代码帮我写一下.

 

           Select Case e.DataCol.Name
    Case "姓名","上年结转_张数","领入_张数","售出_张数","结存张数","产品","入库","出库"
        Dim dr As DataRow
        Dim mr As DataRow = e.DataRow
        Dim drs As List(of DataRow)
        dr = e.DataTable.Find("[_SortKey] < " & mr("_SortKey") & " And [姓名] = '" & mr("姓名") & "'", "[_SortKey] Desc")
        If dr Is Nothing Then '如果没有上一行,说明本行就是同产品的第一行
            mr("结存张数") = mr("上年结转_张数") + mr("领入_张数") - mr("售出_张数")
            dr = mr
        End If
        drs = e.DataTable.Select("[_SortKey] >= " & dr("_SortKey") & " And [姓名] = '" & dr("姓名") & "'")
        For i As Integer = 1 To drs.Count - 1 '重算余下行的余额
            drs(i)("结存张数") = drs(i-1)("结存张数") + drs(i)("上年结转_张数") + drs(i)("领入_张数") - drs(i)("售出_张数")
        Next
End Select


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


加好友 发短信
等级:幼狐 帖子:187 积分:1434 威望:0 精华:0 注册:2017/10/21 17:27:00
  发帖心情 Post By:2017/11/26 22:15:00 [显示全部帖子]


图片点击可在新窗口打开查看此主题相关图片如下:h_o2txqulg$lwg$1){(m9n.png
图片点击可在新窗口打开查看

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


加好友 发短信
等级:幼狐 帖子:187 积分:1434 威望:0 精华:0 注册:2017/10/21 17:27:00
  发帖心情 Post By:2017/11/27 6:34:00 [显示全部帖子]

我刚学,还不太会呢..图片点击可在新窗口打开查看
             请问怎么写"结存金额"的公式?
              怎么把"结存金额"的编码和起号的编码和我已经写好的编码放在一起,怎么编写?

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


加好友 发短信
等级:幼狐 帖子:187 积分:1434 威望:0 精华:0 注册:2017/10/21 17:27:00
  发帖心情 Post By:2017/11/27 10:02:00 [显示全部帖子]

有点甜老师:
           结l结存金额,就是每个人收费金额的累加。比如第一天收了500,累计是500。第二天收了200,累计是700。第三天是150,累计是850……

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


加好友 发短信
等级:幼狐 帖子:187 积分:1434 威望:0 精华:0 注册:2017/10/21 17:27:00
  发帖心情 Post By:2017/11/27 10:06:00 [显示全部帖子]

有点甜老师:
           还有一个问题,怎么把起号和结存金额的编码和我已经写好的编码放在一起,成为一个datacolchange的代码?

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


加好友 发短信
等级:幼狐 帖子:187 积分:1434 威望:0 精华:0 注册:2017/10/21 17:27:00
  发帖心情 Post By:2017/11/27 11:16:00 [显示全部帖子]

老师:

      我按您的指导加进去编 码了。结存金额已经成功了。可是自动生成起号代码我加进去后,没反应,是不是我写错了。请老师给改正一下

 

Select Case e.DataCol.Name

    Case "姓名","上年结转_张数","领入_张数","售出_张数","结存张数","售出_废piao","售出_金额"

        Dim dr As DataRow

        Dim mr As DataRow = e.DataRow

        Dim drs As List(of DataRow)

        dr = e.DataTable.Find("[_SortKey] < " & mr("_SortKey") & " And [姓名] = '" & mr("姓名") & "'", "[_SortKey] Desc")

        If dr Is Nothing Then '如果没有上一行,说明本行就是同产品的第一行

            dr = e.DataTable.Find("[_SortKey] < " & mr("_SortKey") & " And [姓名] = '" & mr("姓名") & "'", "[_SortKey] Desc")

            dr("售出_起号") = dr("售出_止号") + 1

            mr("结存张数") = mr("上年结转_张数") + mr("领入_张数") - mr("售出_张数")- mr("售出_废piao")

            mr("结存金额") = mr("售出_金额")

            dr = mr

        End If

        drs = e.DataTable.Select("[_SortKey] >= " & dr("_SortKey") & " And [姓名] = '" & dr("姓名") & "'")

        For i As Integer = 1 To drs.Count - 1 '重算余下行的余额

            drs(i)("结存张数") = drs(i-1)("结存张数") + drs(i)("上年结转_张数") + drs(i)("领入_张数") - drs(i)("售出_张数")- drs(i)("售出_废piao")

            drs(i)("结存金额") = drs(i-1)("结存金额") + drs(i)("售出_金额")

        Next

End Select


 


图片点击可在新窗口打开查看此主题相关图片如下:e@z(gfl671ttf$o7)}(hg.png
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:@%}ed4}(0af56(wd21vwcl7.jpg
图片点击可在新窗口打开查看

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


加好友 发短信
等级:幼狐 帖子:187 积分:1434 威望:0 精华:0 注册:2017/10/21 17:27:00
  发帖心情 Post By:2017/11/27 15:46:00 [显示全部帖子]

有点甜老师:
        请您帮我改一下以上的编码!我编的有错误,编码中下次的自动起、止号不能随着我手工录入售出张数后自动生成!敬等老师帮我改一下编码!????????????



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


加好友 发短信
等级:幼狐 帖子:187 积分:1434 威望:0 精华:0 注册:2017/10/21 17:27:00
  发帖心情 Post By:2017/11/27 15:47:00 [显示全部帖子]

谢谢老师!我马上试一下!????????

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


加好友 发短信
等级:幼狐 帖子:187 积分:1434 威望:0 精华:0 注册:2017/10/21 17:27:00
  发帖心情 Post By:2017/11/27 16:16:00 [显示全部帖子]

有点甜老师:

           出现如下错误提示

              .NET Framework 版本:2.0.50727.8669
Foxtable 版本:2017.10.26.1
错误所在事件:表,明细账,DataColChanged
详细错误信息:
调用的目标发生了异常。
从字符串“”到类型“Double”的转换无效。
输入字符串的格式不正确。


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


加好友 发短信
等级:幼狐 帖子:187 积分:1434 威望:0 精华:0 注册:2017/10/21 17:27:00
  发帖心情 Post By:2017/11/27 17:02:00 [显示全部帖子]

老师:

     我作的这个表是按您推见的流水账的代码改过来的,刚才我发现流水账中还有一个Aftermoverow的事件代码。请问我作的表中要不要也写这个代码。如果写,要怎么改写?

     Dim Key As Decimal
Dim Index As Integer
Dim Filter As String
Dim r As Row
Index = Math.Min(e.OldIndex, e.NewIndex)
Key = e.Table.Rows(Index)("_SortKey")
r = e.Table.Rows(e.NewIndex)
Filter = "[_SortKey] >= " & Key & " And [产品] = '" & r("产品") & "'"
e.Table.DataTable.DataCols("入库").RaiseDataColChanged(Filter)

 

 

[此贴子已经被作者于2017/11/27 17:02:52编辑过]

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