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

怎么动态创建子数据窗口?

楼主bearzjl(老鬼)2001-11-23 22:35:44 在 PowerBuilder / 基础类 提问

    我有一数据窗口,其中一列想用下拉数据窗口。现在的想法是,建立数据窗口时这列是EDIT属性,在程序中动态地把它设置为下拉数据窗口编辑形式。但是,语句dw_1.object.columnname.dddw.name='d_branch'   中需要先建立数据窗口对象d_branch   ,请问:数据窗口对象   d_branch   怎么动态建立?   动态建立datastore   的方法已经掌握。急!!!一经验证正确,马上给分!非常感谢!!! 问题点数:21、回复次数:4Top

1 楼bearzjl(老鬼)回复于 2001-11-23 22:36:30 得分 0

不知道为什么,系统提示我最多给21分,所以,请不要嫌弃。谢谢!Top

2 楼lianghua_21cn(PB桂花宝典)回复于 2001-11-24 01:13:01 得分 5

??如果数据窗口需要显示,最好在设计期间完成。如d_branch  
  然后:  
  datawindowchild   dwc  
  dw_1.getchild('[字段名]',dwc)  
  dwc.settransobject(sqlca)  
  dwc.insertrow(0);                       //动态修改里面的内容  
  dwc.setitem(...)....  
  Top

3 楼Sunny21cn(毛头)回复于 2001-11-24 11:39:26 得分 1

同意Top

4 楼torrent_whf(柔儿)回复于 2001-11-24 20:02:09 得分 15

首先可以用函数librarycreate(libraryname{,comments})   return   integer   动态建立一个诸如Dwtemp.pbl的空库,然后用函数LibraryImport(libraryname,objectname,objecttype,syntax,errors{comments})   动态将一数据窗口对象加入到此库中。其中libraryname就是刚建立的空库名称,objectname是"d_branch",objecttype为"importdatawindow!",syntax为此数据窗口的语法串。最后可以用函数librarydelete(libraryname)将动态建立的库删除。你可以用函数libraryexport(libraryname,ojbectname,objecttype)到出一个现有的数据窗口对象,看看语法串怎么写。string   error_syntaxfromSQL  
  string   new_sql,   new_syntax  
  new_sql   =   "SELECT   t_num   FROM   "+t_name+"   WHERE   tixing_num='"+tnum+"'";    
  new_syntax   =   SQLCA.SyntaxFromSQL(new_sql,   'Style(Type=Form)',   error_syntaxfromSQL)  
  if   Len(error_syntaxfromSQL)   >   0   then  
      MessageBox('error',   error_syntaxfromSQL)  
      return  
  end   if  
  上面一段程序可以动态建立语法串。可以供你参考。  
   
  改成DDDW:  
  dw_1.Object.columnname.dddw.Name   =   '用做DDDW的DW的名字'  
  dw_1.Object.columnname.dddw.DisplayColumn   =   '用做DDDW的显示列的名字'  
  dw_1.Object.columnname.dddw.DataColumn   =   '用做DDDW的数据列的名字'  
  dw_1.Object.columnname.dddw.PercentWidth   =   150     //DDDW显示宽度  
  dw_1.Object.columnname.dddw.Lines   =   20                     //DDDW显示行数  
  dw_1.Object.columnname.dddw.Limit   =   0                         //输入字符限制  
  dw_1.Object.columnname.dddw.AllowEdit   =   TRUE         //允许输入  
  dw_1.Object.columnname.dddw.AutoHScroll   =   TRUE     //自动水平滚动  
  dw_1.Object.columnname.dddw.UseAsBorder   =   TRUE     //是否显示右侧下箭头  
  dw_1.Object.columnname.dddw.Case   =   0                         //输入字符类别  
  dw_1.Object.columnname.dddw.VScrollBar   =   TRUE         //DDDW显示垂直滚动条  
  然后可以用上面的方法将数据窗口的列的编辑属性由EDIT该为DDDW。  
  最好你让动态建立的DDDW与一个DATASTORE共享,这样一来,对DDDW的更改可以通过对DATASTORE  
  的更改来实现。  
  以上方法仅仅是一个解决你的问题的思路。当然,最简单的方法就象楼上的说的,可以在设计的初期就写死。这样一来,省事了不少。  
  Top

相关问题

  • 动态创建数据窗口问题!!!!
  • 如何创建动态数据窗口?
  • 如何动态创建数据窗口里的控件?
  • 动态数据窗口创建时出现错误!
  • 动态创建数据窗口列的两个问题
  • 动态创建数据窗口的小问题
  • 数据窗口中如何动态创建一个列???
  • 一个动态创建数据窗口对象的问题?急.....
  • 动态创建数据窗口语法问题
  • 如何动态创建图形数据窗口

关键词

  • 数据
  • 函数
  • 语法
  • sql
  • dddw
  • columnname
  • 数据窗口
  • dw
  • 动态
  • syntaxfromsql

得分解答快速导航

  • 帖主:bearzjl
  • lianghua_21cn
  • Sunny21cn
  • torrent_whf

相关链接

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

广告也精彩

反馈

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