Foxtable(狐表)用户栏目专家坐堂 → [求助]整盘端上,求大红袍大神指导代码拼接思路


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

主题:[求助]整盘端上,求大红袍大神指导代码拼接思路

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


加好友 发短信
等级:小狐 帖子:307 积分:2252 威望:0 精华:0 注册:2013/2/28 9:05:00
[求助]整盘端上,求大红袍大神指导代码拼接思路  发帖心情 Post By:2015/7/26 23:24:00 [显示全部帖子]

 
最新更新在12楼。。。。。。。。。。。。。。。。。。。》》》》12楼。。。。
 
 
求思路!

希望实现:
1、对当前表中数值型字段进行“文字化”;
2、“文字化”的逻辑为:
   如果大于零的,则为:“自定义文字”& 列值 &“自定义文字”,如第一列为:应到人数4人,第三列则为:发出piao数4piao
   如果等于零的,则不翻译.
3、每列进行“文字化”后,要根据指定顺序进行拼接,并将结果放在“备注”列中
4、这段代码,最好不是固化在当前表属性内的事件内,而是放在某个开放的字段中,如“测试”中,以便用户根据实际随时增删改字段和表述
4、“备注”字段更新时,如果非空的

为什么不能上附件了?
[此贴子已经被作者于2015/8/12 18:06:08编辑过]

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


加好友 发短信
等级:小狐 帖子:307 积分:2252 威望:0 精华:0 注册:2013/2/28 9:05:00
  发帖心情 Post By:2015/7/26 23:28:00 [显示全部帖子]

求思路!

希望实现:
1、对当前表中数值型字段进行“文字化”;
2、“文字化”的逻辑为:
   如果大于零的,则为:“自定义文字”& 列值 &“自定义文字”,如第一列为:应到人数4人,第三列则为:发出piao数4piao
   如果等于零的,则不翻译.
3、每列进行“文字化”后,要根据指定顺序进行拼接,并将结果放在“备注”列中
4、这段代码,最好不是固化在当前表属性内的事件内,而是放在某个开放的字段中,如“测试”中,以便用户根据实际随时增删改字段和表述
4、“备注”字段更新时,如果非空的才能更新,否则不更新。

附件在三楼

另外请问,还有其他思路么?抑或是,把这个表导出到excel,用excel来判断生成?



此主题相关图片如下:qq截图20150726232406.png
按此在新窗口浏览图片


[此贴子已经被作者于2015/7/27 13:19:53编辑过]

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


加好友 发短信
等级:小狐 帖子:307 积分:2252 威望:0 精华:0 注册:2013/2/28 9:05:00
  发帖心情 Post By:2015/7/26 23:31:00 [显示全部帖子]

这个是文件,

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目2.foxdb


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


加好友 发短信
等级:小狐 帖子:307 积分:2252 威望:0 精华:0 注册:2013/2/28 9:05:00
  发帖心情 Post By:2015/7/27 13:19:00 [显示全部帖子]

以下是大红袍大佬给出的思路,但读不通,执行起来貌似也有点问题啊


投piao_DataColChanged


If e.DataCol.name <> "备注" Then  '如果不是备注字段

    Dim s As String = e.DataRow("测试")   '定义s

    Dim mc = System.Text.RegularExpressions.Regex.Matches(s, "\[.*?\]")  '定义mc,这句怎么理解?

    For i As Integer = 0 To mc.count - 1

        s = s.Replace(mc(i).Value, e.DataRow(mc(i).Value.Substring(1,mc(i).Value.length-2)))

    Next

    e.DataRow("备注") = s

End If


-----------希望能实现


1、对当前表中数值型字段进行“文字化”。“文字化”的逻辑为:
   如果大于零的,则为:“自定义文字”& 列值 &“自定义文字”,如第一列为:应到人数4人,第三列则为:发出piao数4piao。(这个要实现“自定义文字”,因为具体表述不一样,大红袍大佬的貌似都是截取前几个字)
   如果等于零的,则不翻译.
3、每列进行“文字化”后,要根据指定顺序进行拼接,并将结果放在“备注”列中
4、这段代码,最好不是固化在当前表属性内的事件内,而是放在某个开放的字段中,如“测试”中,以便用户根据实际随时增删改字段和表述
4、“备注”字段更新时,如果非空的才能更新,否则不更新。
[此贴子已经被作者于2015/7/27 13:24:09编辑过]

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


加好友 发短信
等级:小狐 帖子:307 积分:2252 威望:0 精华:0 注册:2013/2/28 9:05:00
  发帖心情 Post By:2015/7/27 15:08:00 [显示全部帖子]

谢啦!!!

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


加好友 发短信
等级:小狐 帖子:307 积分:2252 威望:0 精华:0 注册:2013/2/28 9:05:00
  发帖心情 Post By:2015/7/31 22:49:00 [显示全部帖子]

继续提问,上面大红包老师已经解决了问题,现在得寸进尺:

如何修改代码,在子表中引用父表的字段呢?



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

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目2 (1).foxdb

 

 

 

试过了:

 

应到[Parent.应到人数]人,实到[Parent.实到人数]人,发出[发出piao数]piao。

 

这样是不行的

[此贴子已经被作者于2015/7/31 22:53:25编辑过]

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


加好友 发短信
等级:小狐 帖子:307 积分:2252 威望:0 精华:0 注册:2013/2/28 9:05:00
  发帖心情 Post By:2015/7/31 22:55:00 [显示全部帖子]

试过了以下代码是不行的:

 

[Parent.类型],实到[实到人数]人,发出[发出piao数]piao。

 

 

注意:代码写在表的单元格里,不是在表属性里面

[此贴子已经被作者于2015/7/31 22:55:32编辑过]

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


加好友 发短信
等级:小狐 帖子:307 积分:2252 威望:0 精华:0 注册:2013/2/28 9:05:00
  发帖心情 Post By:2015/8/12 17:56:00 [显示全部帖子]

彻底缴械,搞不定了。整个程序都端上来,请大红袍老师搭救
 
此主题相关图片如下:qq截图20150812175748.png
按此在新窗口浏览图片
第一个问题:如何根据“代码2”列值,生成“表述2”列。如:
代码2=  [任务信息.类型的3-8位]:应到[任务信息.应到]人,实到[任务信息.实到]人,到会率[任务信息.应到/任务信息.实到]%,得[得piao]piao,排名第[排名]。
表述2=  谈话推荐:应到5人,实到4人,到会率80%,飞人得4piao,排名第1.

代码在这里:推荐得piao》DataColChanged

'自动生成表述2 代码有误所以屏蔽了
If e.DataCol.name ="得piao" Then
    Dim s As String = e.DataRow("代码2")
    Dim mc = System.Text.RegularExpressions.Regex.Matches(s, "\[.*?\]")
    For i As Integer = 0 To mc.count - 1
        Dim ary As String() = mc(i).value.split(".")
        If ary.length = 1
            s = s.Replace(mc(i).Value, e.DataRow(mc(i).Value.Substring(1,mc(i).Value.length-2)))
        Else
            Dim pdr As DataRow = e.DataRow.GetParentRow(ary(0).substring(1))
            s = s.Replace(mc(i).Value, pdr(ary(1).Substring(0,ary(1).length-1)))
        End If
    Next
    e.DataRow("表述2") =  s
End If


第二个问题:新增行怎么自动继承代码1和代码2字段?今天用了帮助里面的自动复制行功能,很容易被崩溃;如果用列默认值方式,实测也不行
 
 

第三个问题:今天下午好像没有修改什么代码,但突然很容易程序崩溃,有什么办法可以快速找到崩溃点?当然,我也要回想一下到底改动了那里的代码先。。。
 
 
 下载信息  [文件大小:   下载次数: ]
点击浏览该文件:deskto.rar
  涉及信息,不能下载啦!
[此贴子已经被作者于2015/8/12 19:16:48编辑过]

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


加好友 发短信
等级:小狐 帖子:307 积分:2252 威望:0 精华:0 注册:2013/2/28 9:05:00
  发帖心情 Post By:2015/8/12 18:00:00 [显示全部帖子]

就差这个功能就完事儿了,都是论坛上抄的,或者是大神帮忙写的,求涅槃。。。。。。。。。。。。。。

[此贴子已经被作者于2015/8/12 18:18:05编辑过]

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


加好友 发短信
等级:小狐 帖子:307 积分:2252 威望:0 精华:0 注册:2013/2/28 9:05:00
  发帖心情 Post By:2015/8/12 19:11:00 [显示全部帖子]

以下是引用大红袍在2015/8/12 18:35:00的发言:
 下载信息  [文件大小:148.0 KB  下载次数:0]
图片点击可在新窗口打开查看点击浏览该文件

加了辅助列,哈哈,巧妙思路

[此贴子已经被作者于2015/8/12 19:25:49编辑过]

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