Foxtable(狐表)用户栏目专家坐堂 → 代码失效,如何解决?


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

主题:代码失效,如何解决?

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


加好友 发短信
等级:六尾狐 帖子:1360 积分:9034 威望:0 精华:0 注册:2020/11/4 22:15:00
代码失效,如何解决?  发帖心情 Post By:2024/7/26 9:26:00 [显示全部帖子]

http://foxtable.com/bbs/dispbbs.asp?boardid=2&Id=145239,看4楼实例
Select e.DataCol.Name
    Case "日期"
        If e.DataRow.IsNull("日期") Then
            e.DataRow("编号") = Nothing
        Else
            Dim dr As DataRow = DataTables("号表").Find("编号 is not null and 表名='订单'", "编号")
            If dr IsNot Nothing Then
                e.DataRow("编号") = dr("编号")
                dr.Delete
DataTables("号表").save
            Else
Dim rt As String = QQClient.SendWait(":f" & e.DataTable.Name & "f:")
                e.DataRow("编号") = rt
             End If
        End If

  Case "编号"
        If e.NewValue Is Nothing AndAlso e.OldValue IsNot Nothing Then 
            Dim dr1 As DataRow = DataTables("号表").Find("表名 ='订单' and 编号 ='" & e.OldValue & "'")
            If dr1 Is Nothing Then
                dr1 = DataTables("号表").AddNew
                dr1("表名") = "订单" 
                dr1("编号") = e.OldValue
                dr1.save
            End If
        End If 
End Select

问题一:日期列的值的改变,没触编号列生成编号的值?
问题二:红代码,没报错,也没执行,无法实现回收使用





的编号,如果有旧编号用旧编号,没旧编号,新生成编号,跨月,旧编号不能用,只能新编号

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


加好友 发短信
等级:六尾狐 帖子:1360 积分:9034 威望:0 精华:0 注册:2020/11/4 22:15:00
  发帖心情 Post By:2024/7/26 10:34:00 [显示全部帖子]

问题1:我浿试需要单击编号,才生成,后续会在窗口上文本框来显示,每次操作,都要单击编号,那很不友好
问题2:旧编号没有回收再利用。
[此贴子已经被作者于2024/7/26 10:36:11编辑过]

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


加好友 发短信
等级:六尾狐 帖子:1360 积分:9034 威望:0 精华:0 注册:2020/11/4 22:15:00
  发帖心情 Post By:2024/7/26 10:51:00 [显示全部帖子]


图片点击可在新窗口打开查看此主题相关图片如下:qq77.png
图片点击可在新窗口打开查看

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


加好友 发短信
等级:六尾狐 帖子:1360 积分:9034 威望:0 精华:0 注册:2020/11/4 22:15:00
  发帖心情 Post By:2024/7/26 14:05:00 [显示全部帖子]

Dim db = HySq-l.DataBaseFactory.CreateDatabase("编号用户测试库")

'不重复编号上传用,这里的用法比较简单,没有做复杂的编号规则处理'
Public Class BizCodeBuilder
    Private _bizcode As DataTable '直接把编号表取出到内存'
    Private _codelock As New Object
    
    Public Sub New(sjy As String)
        Dim Sql = "selec-t * from {uSysBizCode}" '执行SQL
        Dim dt As system.data.DataTable = db.ExecuteDataSet(Sq-l).Tables(0)
        dt.TableName = "uSysBizCode"
        
        _bizcode = Functions.Execute("Cmd_GetDataTable", sjy, sq-l, True)
    End Sub
    
    Public Function GetNextCode(s_name As String,Optional s_prefix As String = Nothing) As String
        SyncLock _codelock '使用锁处理并发
        Dim dr As DataRow = _bizcode.Find(CExp("BizName='{0}'", s_name))
        If dr Is Nothing Then
            '建议先在编号表中维护好需要产生编号的表,不用默认生成的编号规则'
            dr = _bizcode.AddNew()
            dr("BizName") = s_name 
            dr("MaxValue") = 1
            If String.IsNullOrEmpty(s_prefix) Then s_prefix = Date.now.ToString("mmss") & "BH"
            dr("Prefix") = s_prefix
            dr("Mark") = "yyyyMMdd"
            dr("MarkValue") = Date.Today.ToString("yyyyMMdd")
            dr("Length") = 4
        Else
            '这里的处理规则是按时间进行重新编号,至于是按年,月还是日,在掩码中体现'
            If dr("MarkValue") <> Date.Today.ToString(dr("Mark")) Then 
                dr("MaxValue") = 1
                dr("MarkValue") = Date.Today.ToString(dr("Mark"))
            Else
                dr("MaxValue") = dr("MaxValue") + 1
            End If
        End If
        dr.Save()
        Return dr("Prefix") & dr("MarkValue") & Format(dr("MaxValue"),"0000") '顺序号只取4位'
        End SyncLock
    End Function
End Class

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


加好友 发短信
等级:六尾狐 帖子:1360 积分:9034 威望:0 精华:0 注册:2020/11/4 22:15:00
  发帖心情 Post By:2024/7/26 14:08:00 [显示全部帖子]

上面代码报错:

.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2022.8.18.1
错误所在事件:项目,AfterOpenProject
详细错误信息:
FROM 子句语法错误。



'AfterOpenProject里的代码
_BizCodeBuilder = New BizCodeBuilder("")

Forms("窗口1").open


如何解决?

    

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


加好友 发短信
等级:六尾狐 帖子:1360 积分:9034 威望:0 精华:0 注册:2020/11/4 22:15:00
  发帖心情 Post By:2024/7/26 14:43:00 [显示全部帖子]



客户端上面代码,执行,新增日期列的值,报错:


错误所在事件:项目,Server
详细错误信息:
FROM 子句语法错误

如何解决?




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


加好友 发短信
等级:六尾狐 帖子:1360 积分:9034 威望:0 精华:0 注册:2020/11/4 22:15:00
  发帖心情 Post By:2024/7/26 14:45:00 [显示全部帖子]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:新建 文本文档 (5).zip


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


加好友 发短信
等级:六尾狐 帖子:1360 积分:9034 威望:0 精华:0 注册:2020/11/4 22:15:00
  发帖心情 Post By:2024/7/26 15:30:00 [显示全部帖子]

        Dim Sql As String = CExp("selec-t * from   uSysBizCode where  BizName Is Null", s_name) '执行SQL
'        Dim Sql As String = CExp("selec-t * from {uSysBizCode} where BizName='{0}'", s_name) '执行SQL

报错:
在位置 0 处没有任何行。

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


加好友 发短信
等级:六尾狐 帖子:1360 积分:9034 威望:0 精华:0 注册:2020/11/4 22:15:00
  发帖心情 Post By:2024/7/26 15:41:00 [显示全部帖子]

改为Dim Sql As String = CExp("select * from uSysBizCode where BizName='{0}'", s_name) 
还是报错:
在位置 0 处没有任何行。
[此贴子已经被作者于2024/7/26 15:50:17编辑过]

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


加好友 发短信
等级:六尾狐 帖子:1360 积分:9034 威望:0 精华:0 注册:2020/11/4 22:15:00
  发帖心情 Post By:2024/7/26 16:13:00 [显示全部帖子]

全局代码,加上Public _BizCodeBuilder As BizCodeBuilder,重新将11楼复制进入,
报错:


错误所在事件:项目,AfterOpenProject
详细错误信息:
找不到方法:“Void BizCodeBuilder..ctor(System.String)”。


'AfterOpenProject

_BizCodeBuilder = New BizCodeBuilder("")

Forms("窗口1").open

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