CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  PowerBuilder >  基础类

提两个简单问题!

楼主123bug(大鸟)2005-04-24 17:05:09 在 PowerBuilder / 基础类 提问

1、如何把焦点直接设置到FREEFORM数据窗口的某个字段中,如#2,#3等  
  2、如何选择多行GRID数据 问题点数:30、回复次数:7Top

1 楼wjlforever()回复于 2005-04-24 17:26:25 得分 5

setcolumn()  
  selectrow(row,true)Top

2 楼123bug(大鸟)回复于 2005-04-24 19:18:48 得分 0

这么简单呀Top

3 楼hygougou(uoguogyh)回复于 2005-04-24 19:27:23 得分 0

gzTop

4 楼sh_zll()回复于 2005-04-25 09:32:10 得分 5

dw.setcolumn(#2)  
  Top

5 楼princelily(百合)回复于 2005-04-25 10:51:27 得分 10

第二问题我来解答:  
  在数据窗口控件dw_control中的点击clicked事件:  
   
  //以下程序用于数据窗口的多行选中操作  
  long   l_currentrow  
  long   l_j  
   
  if   row   =   0   then    
  return    
  else  
  l_currentrow   =   row   //当前鼠标点中行  
  end   if  
   
  if   keydown(keyshift!)   then     //按下Shift键  
  if   l_lastrow   =   0   then  
  this.selectrow(l_currentrow,true)  
  l_lastrow   =   l_currentrow  
  else  
  this.selectrow(0,false)  
  if   l_currentrow   >   l_lastrow   then  
  for   l_j   =   l_lastrow   to   l_currentrow  
  this.selectrow(l_j,true)  
  next  
  else  
  for   l_j=l_lastrow   to   l_currentrow   step   -1  
  this.selectrow(l_j,true)  
  next  
  end   if  
  end   if  
  else  
  l_lastrow   =   l_currentrow  
  if   keydown(keycontrol!)   then     //按下Ctrl键  
  if   this.isselected(l_currentrow)   then  
  this.selectrow(l_currentrow,false)  
  else  
  this.selectrow(l_currentrow,true)  
  end   if  
  else     //无功能键按下  
  this.selectrow(0,false)  
  end   if  
  end   if  
   
  一般选择多行后会进行“删除”功能,该功能脚本在数据窗口控件的deleterow函数中脚本如下:  
  //此函数用于删除数据窗口中所有选中的行,代码如下:  
   
  long   l_count   ,   l_j  
   
  l_count   =   this.rowcount()  
  if   l_count   <>   0   then  
  for   l_j   =   l_count   to   0   step   -1  
  if   this.isselected(l_j)   then  
  this.deleterow(l_j)  
  end   if  
  end   for  
  end   if  
  该脚本把数据窗口主缓冲区中的选中数据移动到删除缓冲区中,并没有在数据库中删除相应的数据行,如果想同时删除数据库中的数据,则需要添加this.update()函数,并判断其返回值。然后根据其返回值1:COMMIT   USING   SQLCA;0:ROLLBACK   USING   SQLCA;Top

6 楼princelily(百合)回复于 2005-04-25 11:04:02 得分 10

第一问题我补充一下哦!  
  数据窗口控件的setcolumn()函数  
  功能设置指定列为数据窗口控件的当前列  
  语法dwcontrol.SetColumn   (   column   )  
  参数dwcontrol   数据窗口控件名  
  column   指定新的当前列column   参数可以使用列名string   类型也可以使  
  用列号integer   类型  
  返回值Integer   函数执行成功时返回1   发生错误时返回-1   如果任何参数的值为  
  NULL   则SetColumn()函数返回NULL   如果列号小于1   或大于数据窗口中列的总数则  
  SetColumn()函数执行失败  
  用法执行SetColumn()函数后光标移动到当前列上但并不左右滚动数据窗口  
  只有可编辑列才能成为当前列跳转次序号Tab   Order   大于0   的列才是可编辑列  
   
  示例下面的代码将数据窗口控件dw_Employee   的当前列设置为第15   列  
  dw_1.setcolumn(15)  
  Top

7 楼aichangfeng(PowerBuilder/VB.NET)回复于 2005-04-25 13:57:13 得分 0

UPTop

相关问题

  • 一贴提两个简单的问题
  • VC菜鸟提的----很简单的两个问题
  • 两个简单问题同时提问。转义和循环
  • 两个简单问题
  • 简单的两个问题
  • 两个简单问题
  • 两个简单问题。
  • 两个简单的问题
  • 两个简单问题
  • 两个简单的问题。

关键词

  • 函数
  • 数据
  • 控件
  • 执行
  • selectrow
  • currentrow
  • setcolumn
  • lastrow
  • 数据窗口
  • thenthis

得分解答快速导航

  • 帖主:123bug
  • wjlforever
  • sh_zll
  • princelily
  • princelily

相关链接

  • PowerBuilder类图书
  • PowerBuilder类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo