Foxtable(狐表)用户栏目专家坐堂 → TO狐狸爸爸重要建议:为FoxTable做出更强大的简码输入助手和排版功能!


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

主题:TO狐狸爸爸重要建议:为FoxTable做出更强大的简码输入助手和排版功能!

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


加好友 发短信
等级:小狐 帖子:340 积分:3375 威望:0 精华:0 注册:2011/3/22 22:52:00
TO狐狸爸爸重要建议:为FoxTable做出更强大的简码输入助手和排版功能!  发帖心情 Post By:2019/10/3 16:21:00 [只看该作者]

在输入方面,FoxTable的输入助手挺好。但对于常做录入的人来说,这个软件似乎还应该能做出更强大的功能。如“简码录入”功能。
今天先来求教狐狸爸爸如何做“简码录入”这个功能。
目前我做到了录入“临时题名列”时,录入代码使用“简录代码表”中“简录码”,“临时题名列”自动读取“正确文本”列内容,这就做到了“简码录入”功能。
但是,实际上我需要的是在“题名”或其它文字列中连续录取,键盘送入“简录码”时,自动转换成“临时题名列”中“正确文本”。但我不知道如何写这样要求的代码?使用e.Sender.Text之类,都存在问题。该如何解决呢?

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:纠错录入.table


顺便说2句:
1、虽然五笔、搜狗之类的输入法,可以实现简码自定义录入,但至少搜狗实现起来比较繁琐。如果FoxTable能实现的话,那么,录入起来更方便简捷。
2、感觉FoxTable在排版功能上增加一些易用功能,甚至可以作为字处理软件,就象当年的CCED,文本处理毕竟要一段一段处理,无非安置在一个一个空格里而已。果然如此,人人可使用这个软件,应该极其有利这个软件普及推广哦。
[此贴子已经被作者于2019/10/3 16:38:08编辑过]

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


加好友 发短信
等级:一尾狐 帖子:466 积分:3382 威望:0 精华:0 注册:2016/12/21 22:58:00
  发帖心情 Post By:2019/10/4 8:28:00 [只看该作者]

我什么都不知道,我只知道列里面有个数据字典。

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2019/10/4 9:53:00 [只看该作者]

这不是很简单的事情吗。

DataColChanging事件:
http://www.foxtable.com/webhelp/topics/0624.htm

代码:

Select Case e.DataCol.Name
    Case "临时题名列"
        Dim dr As DataRow= DataTables("简录代码表").Find("简录码 = '" & e.NewValue & "'")
        If dr IsNot Nothing Then
            e.NewValue = dr("正确文本")
        End If
End Select

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


加好友 发短信
等级:小狐 帖子:340 积分:3375 威望:0 精华:0 注册:2011/3/22 22:52:00
  发帖心情 Post By:2019/10/4 11:44:00 [只看该作者]

这还不是我想要的。我要的应该是实际上这样的:
我要录入很长的题名(如“传真电报:宿迁市宿豫区纪委关于2017年中秋国庆期间廉洁自律和厉行节约工作的通知”),我希望在正常录入方法(如搜狗拼音法)基础上,能够更多地利用Foxtable以自定义词组甚至句子编码的方式录入,即通过“简录代码表”中定义“简录码”和“正确文本”。
我现在困难的不是从其它表中读出“正确文本”,而是如何实现连续录入,不知道代码怎么写。类似下面示意:
录入1,自动上“简录代码表”中的“正确文本”“传真电报”,“题名”列为:“传真电报”
录入“:”,题名列为“传真电报:”
录入“2”:自动上“简录代码表”中的“正确文本”宿迁市宿豫区”,题名列自动组合成为:“传真电报:宿迁市宿豫区“……这样就自然地象正常录入一样连续地录入。


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

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:纠错录入.table



[此贴子已经被作者于2019/10/4 11:51:21编辑过]

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


加好友 发短信
等级:小狐 帖子:340 积分:3375 威望:0 精华:0 注册:2011/3/22 22:52:00
  发帖心情 Post By:2019/10/4 17:55:00 [只看该作者]

感觉问题的关键是要能在非窗口状态下的普通表格中及时读出送出的键盘录入的代码,如“czdb”、"wls."。不知道这个代码怎么写?e.txt?e.sender?
似乎要用到中转列才可行。
[此贴子已经被作者于2019/10/4 17:55:21编辑过]

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


加好友 发短信
等级:五尾狐 帖子:1093 积分:6682 威望:0 精华:0 注册:2013/7/1 9:05:00
  发帖心情 Post By:2019/10/5 14:59:00 [只看该作者]

一样的,DataColChaning事件,掌握了基本的ABC,千变万化随他来:

Select Case e.DataCol.Name
    Case "题名"
        If e.NewValue > "" Then
            Dim pts() As String  = e.NewValue.Split(":")
            Dim vas(pts.Length - 1) As String
            For i As Integer = 0 To pts.Length - 1
                Dim dr As DataRow = DataTables("简录代码表").Find("简录码 = '" & pts(i) & "'")
                If dr IsNot Nothing Then
                    vas(i) = dr("正确文本")
                End If
            Next
            e.NewValue = String.Join(":",vas)
        End If
End Select

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


加好友 发短信
等级:小狐 帖子:340 积分:3375 威望:0 精华:0 注册:2011/3/22 22:52:00
  发帖心情 Post By:2019/10/5 15:45:00 [只看该作者]

谢谢有点酸。这样的用法给我惊倒了,没想到Foxtabale有如此千变万化的能力!只是这仍然不是我想要的。
我想要用的是:
正常录入字句的时候,送出的字母代码后,优先从“简录代码表”中找对应词句,找不到即和普通输入法一样,直接读取输入法(如搜狗拼音法)中的文字。换句话说,就是将“简录代码表”作为方便快捷的自定义词句表使用,服务于正常录入工作的。
[此贴子已经被作者于2019/10/5 15:45:25编辑过]

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


加好友 发短信
等级:小狐 帖子:340 积分:3375 威望:0 精华:0 注册:2011/3/22 22:52:00
  发帖心情 Post By:2019/10/5 16:21:00 [只看该作者]

改进了一下代码,似乎好多了。但仍然存在不能连续输入和即时反映录入情况的问题,一行必须一次性录入结束,不太符合录入习惯。
Select Case e.DataCol.Name
    Case "题名"
        If e.NewValue > "" Then
            Dim pts() As String  = e.NewValue.Split(":")
            Dim vas(pts.Length - 1) As String
            For i As Integer = 0 To pts.Length - 1
                Dim dr As DataRow = DataTables("简录代码表").Find("简录码 = '" & pts(i) & "'")
                If dr IsNot Nothing Then
                    vas(i) = dr("正确文本")
                Else
                    vas(i) = pts(i)
’                    msgbox(pts(i))
                End If
            Next
            e.NewValue = String.Join(":",vas)
        End If
      If e.NewValue IsNot Nothing Then
            e.NewValue = e.NewValue.replace(":","")
        End If
End Select
[此贴子已经被作者于2019/10/5 16:28:45编辑过]

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


加好友 发短信
等级:四尾狐 帖子:977 积分:6835 威望:0 精华:0 注册:2012/4/2 21:49:00
  发帖心情 Post By:2019/10/5 18:33:00 [只看该作者]

然后,你输入3,要求把输入2时的内容删除,又然后,你改回输入2,要求把输入3时的内容删除。累不累?直接用多值字段不就彻底解决了?不需要任何代码

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


加好友 发短信
等级:四尾狐 帖子:977 积分:6835 威望:0 精华:0 注册:2012/4/2 21:49:00
  发帖心情 Post By:2019/10/5 18:35:00 [只看该作者]

这样,你也无需记住1、2、3……代表什么

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