Foxtable(狐表)用户栏目专家坐堂 → [求助]求代码,根据规则自动生成字段值。


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

主题:[求助]求代码,根据规则自动生成字段值。

美女呀,离线,留言给我吧!
ashi_shine
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:100 积分:831 威望:0 精华:0 注册:2011/4/11 13:28:00
[求助]求代码,根据规则自动生成字段值。  发帖心情 Post By:2011/8/27 16:25:00 [显示全部帖子]

求代码:

 

表ICBillNo  : 包含 字段FCurNo ,  FDesc

表T_CC_StockBill : 包含字段 FBillNo

 

要求:当表T_CC_StockBill 增加一行新数据时,自动生成FBillNo 字段的值。

FBillNo 字段值的生成规则来自 表ICBillNo  :

 例如: 字段FCurNo ="1300",  FDesc="XSD+日期+1300"

那么FBillNo的值就=XSD201108271300 ,同时,表ICBillNo 的字段值更新为FCurNo ="1301",  FDesc="XSD+日期+1301"

 

 

感觉不复杂,但是一到自己动手写代码,就不知道如何下手写了,对写在哪个事件里也范迷糊了。

 

请问,1、在哪个事件里调用该方法更合适呢?BeforeSaveDataRow 还是 BeforeAddDataRow 还是DataRowAdded ?

 

2、这个方法用代码如何实现呢?

 

 

 

 

 

 


 回到顶部
美女呀,离线,留言给我吧!
ashi_shine
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:100 积分:831 威望:0 精华:0 注册:2011/4/11 13:28:00
  发帖心情 Post By:2011/8/29 8:52:00 [显示全部帖子]

外部数据源,没办法上传图片点击可在新窗口打开查看


 回到顶部
美女呀,离线,留言给我吧!
ashi_shine
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:100 积分:831 威望:0 精华:0 注册:2011/4/11 13:28:00
  发帖心情 Post By:2011/8/29 8:56:00 [显示全部帖子]

Dim cmd As New SQLCommand
Dim BillInfo As DataTable
cmd.CommandText = "SELECT FCurNo,FDesc FROM {ICBillNo} WHERE  FBillID= '1030002'"
BillInfo = cmd.ExecuteReader()

我想输出FCurNo,FDesc 的值,下面output里面怎么写?
output.Show(???)

 

[此贴子已经被作者于2011-8-29 8:56:25编辑过]

 回到顶部
美女呀,离线,留言给我吧!
ashi_shine
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:100 积分:831 威望:0 精华:0 注册:2011/4/11 13:28:00
  发帖心情 Post By:2011/8/29 9:07:00 [显示全部帖子]

提示,未将对象引用设置到对象的实例 是什么问题?

 

我检查了SELECT FCurNo,FDesc FROM {ICBillNo} WHERE  FBillID= '1030002'这句SQL,是有返回值的。


 回到顶部
美女呀,离线,留言给我吧!
ashi_shine
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:100 积分:831 威望:0 精华:0 注册:2011/4/11 13:28:00
  发帖心情 Post By:2011/8/29 9:14:00 [显示全部帖子]

运行结果同上,BillInfo.DataRows.Count 应该是>0的

 回到顶部
美女呀,离线,留言给我吧!
ashi_shine
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:100 积分:831 威望:0 精华:0 注册:2011/4/11 13:28:00
  发帖心情 Post By:2011/8/29 9:25:00 [显示全部帖子]

对对对!

加上cmd.ConnectionName 就OK了。谢谢!!!

我帮助看的不认真啊!图片点击可在新窗口打开查看


 回到顶部
美女呀,离线,留言给我吧!
ashi_shine
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:100 积分:831 威望:0 精华:0 注册:2011/4/11 13:28:00
  发帖心情 Post By:2011/8/29 10:36:00 [显示全部帖子]

 

Dim NewRw As Row
  NewRw=Tables("T_CC_StockBill").AddNew()
  NewRw("FID")=Tables("T_CC_StockBill").Rows(Tables("T_CC_StockBill").Rows.Count-1)("FID")+1
  NewRw("FBillNo")="XSD"+Str(Date.Today.Year)+Str(Date.Today.Month)+Str(Date.Today.Day)+Vars("CurNo")

 

这段代码报错,原因是表T_CC_StockBill先执行AddNew时默认FID值为空,导致AddNew失败,下面对FID赋值的语句也就无效了。

 

提示“列FID不允许是空值”

 

PS:

之前看一个关于列自动编号的帖子,通过_Identify列可以实现,但是我是外部数据源,帮助里说只有内部数据表才有_Identify列。是不是我的FID只能通过代码实现了?



 回到顶部
美女呀,离线,留言给我吧!
ashi_shine
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:100 积分:831 威望:0 精华:0 注册:2011/4/11 13:28:00
  发帖心情 Post By:2011/8/29 11:13:00 [显示全部帖子]

编号的问题解决!图片点击可在新窗口打开查看

 

e.DataRow("FBillNo")="XSD"+Trim(Str(Date.Today.Year))+Trim(Str(Date.Today.Month))+Trim(Str(Date.Today.Day))+"0"+Trim(Str(Vars("CurNo"))) 

 

这一句中,Date.Today.Month的结果返回是8,我需要的是08,请问如何修改呢?


 回到顶部
美女呀,离线,留言给我吧!
ashi_shine
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:100 积分:831 威望:0 精华:0 注册:2011/4/11 13:28:00
  发帖心情 Post By:2011/8/29 11:29:00 [显示全部帖子]

Format(Date.Today,"yyyyMMdd") 图片点击可在新窗口打开查看

 回到顶部