Foxtable(狐表)用户栏目专家坐堂 → [求助]FORMAt位数


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

主题:[求助]FORMAt位数

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


加好友 发短信
等级:九尾狐 帖子:2928 积分:20184 威望:0 精华:0 注册:2012/2/3 17:45:00
[求助]FORMAt位数  发帖心情 Post By:2018/3/18 23:07:00 [只看该作者]

老师,

   Output.Show(Format(1,"000"))
如果我知道一行数据可能是位数不固定怎么写,如最后一个会计科目 可能是 1001 也可能是下级  100101
例如、
Dim dr As  DataRow=DataTables("Main").Find("公司='111'","科目 desc")
If dr IsNot Nothing
Dim dr1 As DataRow=DataTables("Main").AddNew
  dr1("科目")=Format(val(dr("科目"))+1,"0000")‘   这块是1001的 如果变成100101 就得写成 Format(val(dr("科目"))+1,"000000")‘  怎么能不变应付万变
End If

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/3/19 8:50:00 [只看该作者]

1、位数的信息你如何获取,能否获取到位数?

 

2、有位数以后,就动态生成,如 http://www.foxtable.com/webhelp/scr/0243.htm

 


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


加好友 发短信
等级:九尾狐 帖子:2928 积分:20184 威望:0 精华:0 注册:2012/2/3 17:45:00
  发帖心情 Post By:2018/3/20 21:22:00 [只看该作者]

老师,
想要得到结果 "lr0102"
下列代码得到 lr10121
应该怎么写

  Dim s1 As String ="lr0101"
Dim s3 As String=s1.SubString(0,2) & Format(val(s1.SubString(3))+1,s1.SubString(3).PadLEFT(s1.Length-2,"0"))
Output.Show(s3)

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


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

规则是什么?按顺序加一?

Dim s As String = "lr0101"
Dim p As String = s.SubString(0,2)
s = s.Replace(p,"")
Dim s3 As String = p & cstr((val(s) + 1)).PadLEFT(s.Length,"0")
Output.Show(s3)

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


加好友 发短信
等级:九尾狐 帖子:2928 积分:20184 威望:0 精华:0 注册:2012/2/3 17:45:00
  发帖心情 Post By:2018/3/20 22:18:00 [只看该作者]

老师,
   正常这样写没问题dr1("id").SubString(0,2) & cstr((val(dr1("id").SubString(3)) + 1)).PadLEFT(dr1("id").Length-2,"0")
但是放到自定义函数中怎么写也不对 应该怎么写


str &= "dr1(""id"")=dr1(""id"").SubString(0,2) & cstr((val(dr1(""id"").SubString(3)) + 1)).PadLEFT(dr1(""id"").Length-2,""0"") & vbcrlf
Functions.remove("test")
Functions.Add("test",str)
Functions.Complie()
Functions.Execute("test",e)


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


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

完整代码贴出来

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


加好友 发短信
等级:九尾狐 帖子:2928 积分:20184 威望:0 精华:0 注册:2012/2/3 17:45:00
  发帖心情 Post By:2018/3/20 22:27:00 [只看该作者]


[此贴子已经被作者于2018/3/21 8:40:55编辑过]

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


加好友 发短信
等级:超级版主 帖子:110790 积分:563882 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/3/20 22:57:00 [只看该作者]

str &= "dr1(""pnlposition")=""zj""" & vbcrlf
str &= "dr1(""ckname"")=""" & vars("childcknamectl") & """" & vbcrlf
str &= "dr1("idtype")=""" & dr("controlid") & """"  & vbcrlf
str &= "dr1.save" & vbcrlf

最后Output.Show(str)
运行时先打开命令窗口,看生成的真正代码是什么,复制到命令窗口执行在排查错误

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


加好友 发短信
等级:九尾狐 帖子:2928 积分:20184 威望:0 精华:0 注册:2012/2/3 17:45:00
  发帖心情 Post By:2018/3/20 23:57:00 [只看该作者]

老师
不是报错是想知道5楼合成字符串怎么写

   正常这样写没问题
dr1("id").SubString(0,2) & cstr((val(dr1("id").SubString(3)) + 1)).PadLEFT(dr1("id").Length-2,"0")
例如是
"LR" & "0102"
但是放到自定义函数中 & 还有 % 什么的,& 本来就是连接符,怎么能变成字符,怎么写也不对 应该怎么写


str &= "dr1(""id"")=dr1(""id"").SubString(0,2) & cstr((val(dr1(""id"").SubString(3)) + 1)).PadLEFT(dr1(""id"").Length-2,""0"") & vbcrlf
Functions.remove("test")
Functions.Add("test",str)
Functions.Complie()
Functions.Execute("test",e)


例如 这样写 也不对

str &= "dr2("id")=dr1("id").SubString(0,2) & "&" & cstr((val(dr1("id").SubString(3)) + 1)).PadLEFT(dr1("id").Length-2,"0") & vbcrlf

[此贴子已经被作者于2018/3/21 8:56:02编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/3/21 9:26:00 [只看该作者]

不是很简单?直接写即可,如

 

Dim str = "dr1(""id"")=dr1(""id"").SubString(0,2) & cstr((val(dr1(""id"").SubString(3)) + 1)).PadLEFT(dr1(""id"").Length-2,""0"") " & vbcrlf
msgbox(str)


 回到顶部