Foxtable(狐表)用户栏目专家坐堂 → [求助]请教2个问题


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

主题:[求助]请教2个问题

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


加好友 发短信
等级:小狐 帖子:314 积分:2412 威望:0 精华:0 注册:2013/9/29 20:41:00
[求助]请教2个问题  发帖心情 Post By:2014/5/11 18:15:00 [显示全部帖子]

请教2个小问题:谢谢

 

1、在“积分兑换明细”中的“兑换积分“大于”客户资料“的”剩余积分“将有提示,但系统却没有提示,什么回事?

 

2、在”储蓄积分“、”理财积分“和”兑换明细“中有操作后,客户资料里的”合计积分“和”兑换积分“应该响应发生变化,

    在我的系统中需要在客户资料里进行”列重置“操作才能有变化。怎么改进呢?

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


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


加好友 发短信
等级:小狐 帖子:314 积分:2412 威望:0 精华:0 注册:2013/9/29 20:41:00
  发帖心情 Post By:2014/5/14 23:44:00 [显示全部帖子]

我希望在剩余积分<0的时候,把刚才输入的内容清零,怎么就错了呢?

Select Case e.DataCol.Name
    Case "积分", "数量"
        Dim dr1 As DataRow
        dr1 = DataTables("客户资料").Find("[客户名称] = '" & e.DataRow("客户名称") & "'")
       
        If dr1 IsNot Nothing Then '如果找到了同名的产品行,也就是dr不是Nothing
            DataTables("客户资料").DataCols("客户名称").RaiseDataColChanged(dr1)
           
            If  dr1("剩余积分") < 0 Then  MessageBox.Show("积分不足","提示")
            e.DataRow("礼品名称") = Nothing
            e.DataRow("积分") =0
            e.DataRow("数量") =0
           
        End If
End Select

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


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


加好友 发短信
等级:小狐 帖子:314 积分:2412 威望:0 精华:0 注册:2013/9/29 20:41:00
  发帖心情 Post By:2014/5/16 22:33:00 [显示全部帖子]

谢谢老师耐心指导,现在还请教问题如下:

1、当“理财积分”有新的“产品代码”出现,能自动出现在“理财积分系数"的"产品代码"中,而不是手工输入.

2、“储蓄积分”中有部分记录"日均余额“为小数,怎么得不到”储蓄积分”?

3、“客户资料”“储蓄积分”和“理财积分”中的证件号码格式不相同,从而不能得到客户的“合计积分”,

目前的“合计积分”只包括“储蓄积分”,“理财积分”因为“证件号码”格式不同,没有累计在内,有好办法解决么?

谢谢


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

图片点击可在新窗口打开查看此主题相关图片如下:qq截图20140516221236.png
图片点击可在新窗口打开查看
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目510 (1).table


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


加好友 发短信
等级:小狐 帖子:314 积分:2412 威望:0 精华:0 注册:2013/9/29 20:41:00
  发帖心情 Post By:2014/5/17 10:27:00 [显示全部帖子]

顶顶

 


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


加好友 发短信
等级:小狐 帖子:314 积分:2412 威望:0 精华:0 注册:2013/9/29 20:41:00
  发帖心情 Post By:2014/5/17 20:54:00 [显示全部帖子]

Select Case e.DataCol.name
    Case  "产品代码","积分系数"
        If e.DataRow.Isnull("产品代码")=False Then
            Dim dr As DataRow = DataTables("理财积分系数").Find("产品代码='" & e.DataRow("产品代码") & "'")
            If dr Is Nothing Then
                dr = DataTables("理财积分系数").addnew
                dr("产品代码")=e.DataRow("产品代码")
                'dr("积分系数")=e.DataRow("积分系数")
          '  Else
            '  dr("产品代码")=e.DataRow("产品代码")
                'dr("积分系数")=e.DataRow("积分系数")

            End If
        End If
End Select

 

当dr Is Nothing  为真  说明在“理财积分系数”表中没有新的产品代码 ,则做产品代码复制操作。为假,说明‘理财积分系数’表中有产品代码了,什么还要做赋值操作呢?


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


加好友 发短信
等级:小狐 帖子:314 积分:2412 威望:0 精华:0 注册:2013/9/29 20:41:00
  发帖心情 Post By:2014/5/19 11:34:00 [显示全部帖子]

8楼是我添加的注释,应该符合逻辑吧。

 

下面,我希望:

1、在“客户资料”,“储蓄积分”和“理财积分”中有重名的客户找出来,放在“重名客户表中,只包括“客户名称”和“证件代码”两列。

2、在“重名客户”表中修改客户名称后,依据不同的“证件代码”对应的“客户名称”替换原先的重名客户,这样确保客户名称不重名。

谢谢

 


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


加好友 发短信
等级:小狐 帖子:314 积分:2412 威望:0 精华:0 注册:2013/9/29 20:41:00
  发帖心情 Post By:2014/5/20 22:33:00 [显示全部帖子]

请问“客户资料”中的“证件号码”与“理财积分”中的“证件号码”格式不同,但都是字符型的,我用Substring函数来做判断如下:

 

If e.DataCol.Name = "客户名称" Then
    Dim cszf As Double = DataTables("储蓄积分").Compute("sum(储蓄积分)", "客户名称 = '" & e.DataRow("客户名称") & "' and 证件号码 = '" & e.DataRow("证件号码") & "'")
   Dim lczf As Double = DataTables("理财积分").Compute("sum(理财积分)", "客户名称 = '" & e.DataRow("客户名称") & "' and 证件号码.substring(1,13) = '" & e.DataRow("证件号码").Substring(2,13) & "'")
    e.DataRow("合计积分") = cszf + lczf
 
   Dim dhjf As Double = DataTables("积分兑换明细").Compute("sum(兑换积分)", "客户名称 = '" & e.DataRow("客户名称") & "' and 证件号码 = '" & e.DataRow("证件号码") & "'")
   e.DataRow("兑换积分") = dhjf

End If

 

但是出现错误:.NET Framework 版本:2.0.50727.3053
Foxtable 版本:2014.3.8.1
错误所在事件:表,客户资料, DataColChanged
详细错误信息:
Exception has been thrown by the target of an invocation.
The expression contains undefined function call 证件号码.substring().

 

如何纠正呢?


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


加好友 发短信
等级:小狐 帖子:314 积分:2412 威望:0 精华:0 注册:2013/9/29 20:41:00
  发帖心情 Post By:2014/5/20 22:57:00 [显示全部帖子]

证件号码格式都是字符型,但内容是:340102197602191026   和   3.40102197602191E+17   和   3.40111196607134E+17  我只有通过判断部分字符断来确定

340102197602191026   和   3.40102197602191E+17   是同一个人。所以就要引用substring函数:

语法:

SubString(StartIndex)
SubString(StartIndex, Length)

参数:

StartIndex: 子字符串的开始位置。
Length: 可选参数,子字符串的长度。

如果忽略长度,则返回自指定位置开始的所有字符串。

 

和老师给我的有点不同。

而且把老师的代码运行任然报错:

.NET Framework 版本:2.0.50727.3053
Foxtable 版本:2014.3.8.1
错误所在事件:表,客户资料, DataColChanged
详细错误信息:
Exception has been thrown by the target of an invocation.
startIndex cannot be larger than length of string.
Parameter name: startIndex
不过,这次报错是:初始位置不能大于字符长度。


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


加好友 发短信
等级:小狐 帖子:314 积分:2412 威望:0 精华:0 注册:2013/9/29 20:41:00
  发帖心情 Post By:2014/5/22 22:34:00 [显示全部帖子]

我从“理财积分”表中生成一个没有重复的带有正确身份证号码的“客户身份证号码”表。

接着:判断“储蓄积分”表中如果与“客户身份证号码”表中是同一人(即客户名称相同,证件号码大致相同),则用“客户身份证号码”中正确的身份证号码填入

        否则还用原来的号码。怎么啊还是错误。

 

 

Select Case e.DataCol.name
    Case  "客户名称","证件号码"
        If e.DataRow("客户名称") = DataTables("客户身份证号码").datacols("客户名称")  AndAlso substring(DataTables("客户身份证号码").datacols("证件号码"),2,13) = '" & e.DataRow("证件号码").Substring(2,12)   Then
          e.DataRow("证件号码")=DataTables("客户身份证号码").datacols("证件号码")
      Else
           e.DataRow("证件号码")=e.DataRow("证件号码1")
          
      End If
End Select

 


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


加好友 发短信
等级:小狐 帖子:314 积分:2412 威望:0 精华:0 注册:2013/9/29 20:41:00
  发帖心情 Post By:2014/6/3 22:20:00 [显示全部帖子]

还是不对

If e.DataRow("证件号码1") = "" Then
    e.DataRow("证件号码") = ""
Else
    Select Case e.DataCol.name
        Case  "客户名称","证件号码"
            Dim fdr As DataRow = DataTables("客户身份证号码").Find("客户名称 = '" & e.DataRow("客户名称") & "' and substring(证件号码,2,12) = '" & e.DataRow("证件号码1").Substring(3,12) & "'")
           
            If fdr IsNot Nothing Then
                e.DataRow("证件号码") = fdr("证件号码")
                ' Else
                '   e.DataRow("证件号码") = e.DataRow("证件号码1")
               
            End If
    End Select
End If

 

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

[此贴子已经被作者于2014-6-3 22:21:36编辑过]

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