| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2991 人关注过本帖
标题:如何在表格控件中将上一列的值做为默认值带入下一列
只看楼主 加入收藏
MJHANDXJH
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2008-7-25
收藏
 问题点数:0 回复次数:11 
如何在表格控件中将上一列的值做为默认值带入下一列
将表格中目标数据源指定为一个表,当进行增加操作时,希望在增加第二个记录时,能将已增加的第一个记录的某些字段值带进来做为默认值,在增加第三个记录时,
能将已增加的第二个记录的某些字段值带进来做为默认值以此类推,我曾经使用表格控件第一例文本框的得到焦点事件中(THISFORM.GRID1.COLUMN1.TEXT1的GOTFOCUS)加入如下代码:
IF RECN()<>1 THEN
   GO RECN()-1
   CC1=ALLT(ZY)
   CC2=DKJE
   CC3=DKRQ
   CC4=DKQX
   GO RECN()+1
   REPL ZY WITH CC1
   REPL DKJE WITH CC2
   REPL DKRQ WITH CC3
   REPL DKQX WITH CC4
ENDI   
但是此代码只在第一次操作时有效,当你进入别的表单做其它处理完成后再进入该表单时,就无效了,即再进入时,每新增一个记录它的所列有列值都是空白的.请问该如何处理,小弟先谢谢各位前辈了!
搜索更多相关主题的帖子: 表格控件 中将 WITH REPL RECN 
2008-08-03 11:06
qjbzjp
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:尧的故乡
等 级:贵宾
威 望:48
帖 子:1914
专家分:4397
注 册:2007-3-14
收藏
得分:0 
试试:
在表单失去焦点前:
thisform.grid1.recordsource=Null
 在表单得到焦点前:
ThisForm.Grid1.RecordSource='××库'  &&表单关联的库
thisform.refresh
2008-08-03 12:27
MJHANDXJH
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2008-7-25
收藏
得分:0 
我用你说的方法试过了,还是不行,不过依然要谢谢你!
2008-08-03 13:05
qjbzjp
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:尧的故乡
等 级:贵宾
威 望:48
帖 子:1914
专家分:4397
注 册:2007-3-14
收藏
得分:0 
提示:
再次进入这个表单时,应该先定位到最后一条记录,然后把需要保存的字段赋值给全局变量。
在新增加记录后,把保存的值赋值给相应字段,不要在THISFORM.GRID1.COLUMN1.TEXT1的GOTFOCUS加入赋值代码
2008-08-03 14:15
MJHANDXJH
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2008-7-25
收藏
得分:0 
qjbzjp你好,感谢你又给了我一次帮助!
也许是我写的问题不够清楚吧,因为用你指导给我的方法还是不能解决问题,我现在把这个问题写得详细一点,希望能再次得到你的帮助,谢谢!
    是这样的,我有一张专门存储用户贷款信息的自由表。在这张表里比较重要的几个字段是:姓名(XM)、身份证号码(SFZHM)、职业(ZY)、贷款金额(DKJE)、贷款期限(DKQX)、贷款日期(DKRQ)等等,因为每个客户的信息都很重要,所以在每次新增时我都不在原表操作,而是用原表的数据结构建一张空表在新增一条空白记录后让操作者输入以上信息,当所有的客户信息都输入完成经确认无误后再将它们追加到原表。我将一个表格控件的数据源指向这个空表,而在表格控件的操作中是当用户按了“向下的键头”后表格又自动增加一条新的空白记录。在使用者操作中会经常出现这样的情况即不同的贷款人,经常会有相同的贷款金额、期限、日期等,比如说会连续几个人都是在同一天贷款5万贷款期限都为10年,而又有一些是连续几个人都是在同一天贷款10万贷款期限都为20年等,所以我想如果能把上一列输入的以上数据带入新增的这一列,遇到贷款情况相同的人就只用输入名字和身份证,当贷款情况不同时再修改,就能极大的提高效率。而用你说的那种方法,首先我开始录入时只有一条新的空白记录,我将相应字段的值赋给公共变量其实它们都是空字符串没有实际意义。第二,即使我从原表中将最后一条记录的值赋给公共变量,那么这些公共变量的值永远是一样的,它不会因为我又增加第二条以上的记录而有所改变,而我其实每次需要带入下列的值都跟上列有关,所以说这种方法对解决我的这个问题帮助不是很大。
    我是一个初学者,也许我对解决这个问题的思路本身就有问题,你是否能指导我另一条思路。或者就是我这种思路请再教我另一种方法达到目的,谢谢!
    另外我能奢求得到你的QQ号或是手机号码吗,因为我怕我还是没有说清楚,浪费了你的时间,我们直接连线交流或是我打电话给你,希望能得到你更多的帮助,我是云南的QQ号码为:24050361(晓风),手机:13988992057!
2008-08-05 15:13
wzxc
Rank: 9Rank: 9Rank: 9
来 自:齐鲁大地
等 级:贵宾
威 望:39
帖 子:985
专家分:1296
注 册:2006-4-25
收藏
得分:0 
方案一、(未经验证,请试验)
1、在表单的load事件中;
public array gaJilu(1)
2、在表格控件的beforerowcolchange事件中:
if recno()=reccount()
SCATTER to laJilu
endif
3、在表格控件的afterrowcolchange事件中:
if recno()=reccount()
gather from laJilu
endif
thisform.refresh
方案二、
1、表格控件的allowaddnew=.f.
2、表单添加命令按钮,其click代码:
local array laJilu(1)
select tablename
go bottom
SCATTER to laJilu
append  blank
gather from laJilu
thisform.refresh

认真看书学习,弄通Fox主义。
2008-08-05 20:14
MJHANDXJH
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2008-7-25
收藏
得分:0 
wzxc您好,谢谢你给的回复!

但是你的两种方式我用了都没有达到我的要求!

第一种你让我尝试的方法,首先当我新增一列时某些字段的值就是一些不知从哪里来的汉字或是字段名。第二当我输完某个字段再转入另一个字段进行输入时,刚才输入的上一字段值会不显示(还在同一条记录的不同字段时就是这样)!
第二种方法,倒是能达到我的要求,但是必须每输完一条记录就按一下新增按钮,再添加一条新的空记录然后再赋值,这和表格控件本身提供的按一下向下的键即可增加一条新记录的操作方式相比效率太低(因为你需使用鼠标去点击那个按钮,或者先让该按钮获得焦点再按回车,但真正的操作者在输完大量数据之前是不使用鼠标的,只用键盘)!

依然要谢谢您在百忙之中给我的回贴,谢谢!
2008-08-05 22:41
wzxc
Rank: 9Rank: 9Rank: 9
来 自:齐鲁大地
等 级:贵宾
威 望:39
帖 子:985
专家分:1296
注 册:2006-4-25
收藏
得分:0 
方案二、
命令按钮的caption='添加(\<A)'
这样,输入完成,按“alt+a”即可。
在添加一句
Thisform.grid1.SetFocus
另:
在表格最末列的text1.keypress
IF nKeyCode=13

ENDIF
方案一,你说的情况没弄明白。

认真看书学习,弄通Fox主义。
2008-08-06 09:13
MJHANDXJH
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2008-7-25
收藏
得分:0 
wzxc,用你的补充方案二最终解决问题,谢谢!

另外我还想再问你一个问题:如果一个表单是存在于顶层表单中的,为什么这个表单上的控件提示文本(比如为一个按钮的TOOLTIPTEXT属性设置了“添加一条新记录!”),但是在程序运行时不会显示,我已经把顶层表单和本表单(含按钮的表单)的SHOWTIPS属性都设置为了.T.!

我的QQ是24050361,你能告诉我你的联系方式吗?因为我可能还会遇到好多问题想再向你请教!
2008-08-06 15:57
wzxc
Rank: 9Rank: 9Rank: 9
来 自:齐鲁大地
等 级:贵宾
威 望:39
帖 子:985
专家分:1296
注 册:2006-4-25
收藏
得分:0 
当鼠标指到此控件上时,才会显示。鼠标离开即消失。

认真看书学习,弄通Fox主义。
2008-08-06 16:47
快速回复:如何在表格控件中将上一列的值做为默认值带入下一列
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.026119 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved