PB数据窗口技巧问答

合集下载

PB窗口使用技巧之增强窗口显示效果

PB窗口使用技巧之增强窗口显示效果

PB窗口使用技巧之增强窗口显示效果一、窗口最小化时设置动态图标二、放置闪烁文字三、提高窗口的打开速度四、移动不带标题栏的窗口五、闪烁窗口标题栏六、给窗口添加自动滚动条功能窗口是应用程序中一个非常重要的界面,界面设计的大部分工作体现在窗口界面的设计中。

所以,在不影响功能的前提下,提倡给用户提供更有提示性的、更美观的界面。

常用的手段是动画、声音等,下面介绍这些常用的方法。

一、窗口最小化时设置动态图标当应用程序最小化时,程序的图标如果是动画的,肯定更能吸引用户的注意,视觉效果会更好。

方法是通过动态修改程序的图标来实现。

当程序最小化时打开timer(在deactive中加入timer(1)语句),并在timer事件中编写如下程序:If This.Icon = 'appico.ico' ThenThis.Icon = 'reverse.ico'ElseThis.Icon = 'appico.ico'End If程序激活时关闭Timer事件(在Active事件中加入timer(0)语句)。

需要注意,要将上面用到的两个ico文件放到当前应用程序的目录中。

二、放置闪烁文字以闪烁文字显示重要信息可以吸引用户的注意力,避免这些重要信息被忽略。

通过周期性修改visible属性,可以实现闪烁效果。

在窗口中,假设放置一个静态文本st_1,在窗口的Open事件中定义Timer事件的间隔:Timer(1)然后,在窗口的Timer事件中定期修改静态文本的visible属性:If Mod(Second(Now()),2) = 1 Thenst_1.visible = FalseElsest_1.Visible = TrueEnd If这样就可以实现闪烁效果。

当然也可以在适当的时候使用timer(1),并在适当的时候关闭Timer事件。

三、提高窗口的打开速度在窗口的Open事件中经常编写脚本来进行初始处理工作,如果这些工作花费的时间比较长,在窗口显示之前用户就得等待很长的时间。

PB数据窗口技巧问答

PB数据窗口技巧问答

PB数据窗口技巧问答数据窗口是PowerBuilder中用于显示、获取和更新数据库表格的对象之一、在使用数据窗口进行数据操作的过程中,有一些技巧和常见问题需要注意和解决。

以下是对数据窗口技巧和问答的详细介绍。

1.如何在数据窗口中添加一个新的数据库表格?可以通过以下步骤在数据窗口中添加一个新的数据库表格:(2) 选择“Insert”菜单,然后选择“Tables”子菜单。

(3)在弹出的对话框中选择要添加的数据库表格,然后点击“OK”按钮。

2.如何在数据窗口中显示特定的数据列?可以通过以下步骤在数据窗口中显示特定的数据列:(2) 在画布区域中右键点击并选择“Insert”菜单,然后选择“Columns”子菜单。

(3)在弹出的对话框中选择要显示的数据列,然后点击“OK”按钮。

3.如何在数据窗口中设置筛选条件?可以通过以下步骤在数据窗口中设置筛选条件:(2) 在画布区域中右键点击并选择“Filter”菜单。

(3)在弹出的对话框中输入要设置的筛选条件,然后点击“OK”按钮。

4.如何在数据窗口中设置排序条件?可以通过以下步骤在数据窗口中设置排序条件:(2) 在画布区域中右键点击并选择“Sort”菜单。

(3)在弹出的对话框中选择要设置的排序条件,然后点击“OK”按钮。

5.如何在数据窗口中添加计算列?可以通过以下步骤在数据窗口中添加计算列:(3)在弹出的对话框中输入计算列的表达式和名称,然后点击“OK”按钮。

6.如何在数据窗口中设置格式化?可以通过以下步骤在数据窗口中设置格式化:(2)在画布区域中选择要设置格式化的数据列。

(3) 在属性窗口中选择“Format”选项卡,然后选择要应用的格式化类型和样式。

7.如何在数据窗口中执行增、删、改操作?可以通过以下步骤在数据窗口中执行增、删、改操作:(1) 在数据窗口画布区域中右键点击并选择“Insert”菜单,然后选择“Rows”子菜单来添加新的行。

(2) 在数据窗口画布区域中右键点击并选择“Delete”菜单来删除选定的行。

PB数据窗口绝对技巧

PB数据窗口绝对技巧

PB数据窗口绝对技巧PB数据窗口绝对技巧是指通过使用PowerBuilder开发环境的数据窗口对象实现高效数据处理的技巧。

数据窗口是PowerBuilder中最重要和最常用的对象之一,它可以用于显示和操作数据库中的数据。

下面将介绍一些PB数据窗口的绝对技巧。

1.使用绑定数据窗口:绑定数据窗口是将数据窗口与数据库表绑定在一起,这样可以方便地进行数据的读取、修改和保存操作。

使用绑定数据窗口可以避免手动编写SQL语句或存储过程,大大提高了开发效率。

2.优化数据窗口的性能:数据窗口的性能优化是开发过程中非常重要的一环。

可以通过以下方法来提高数据窗口的性能:-只选择需要的列:只选择需要的列可以减少网络传输的数据量,提高数据检索的速度。

-使用约束和过滤器:可以在数据窗口中使用约束和过滤器来限制返回结果集的大小,进一步提高性能。

-使用预检索:可以在打开数据窗口之前使用预检索功能,先将数据加载到缓存中,减少后续操作对数据库的访问次数。

3.自定义数据窗口的样式:可以通过数据窗口的属性和事件来自定义数据窗口的样式。

例如,可以设置列的显示格式、颜色和字体等属性,还可以通过事件来实现数据窗口的验证和计算逻辑。

4.使用数据窗口的分组功能:数据窗口的分组功能可以将数据按照指定的列进行分组,并对每个分组进行汇总计算。

这样可以方便地进行数据的统计和报表生成。

5.使用数据窗口的嵌套功能:数据窗口可以嵌套在其他数据窗口中,形成复杂的数据结构。

通过使用数据窗口的嵌套功能,可以实现多层次的数据展示和操作,提高用户体验和数据处理的灵活性。

6.使用数据窗口的插入和更新语句:数据窗口可以使用自动生成的插入和更新SQL语句来实现数据的插入和修改操作。

这样可以避免手动编写大量的SQL语句,简化开发过程。

7.使用数据窗口的事务处理:数据窗口的事务处理功能可以保证一系列的操作要么全部成功,要么全部失败。

可以通过使用数据窗口的事务处理功能来实现数据的批量插入和更新,提高数据处理的效率和数据的一致性。

pb问题与解答

pb问题与解答

如何在PB5中自动生成行号delelte数据窗口中若干行,然后update,出现: “rows changed between retrieve and update No changes made to database... Delete from table where ...." 请教是何缘故,该数据窗口是updatable 的,未设置关键字。

如何能够作到,在打印一个DataWindows后不自动换页,而继续打印下一个DataWindows?我在table中改了一个字段的类型,回来一看,相应的datawindow字段在运行时再也无法输入东西了?.我没安装watercom C++,连用模板生成的PBL都不能正确编成EXE运行,生成的EXE在windows95 中远行时报程序启动错误,怎么办?我刚安装好nt40中文版及sybase system 11.0.1无任何错误提示,启动SSM时给提示:无法找到DNETW.DLL于指定路径C:\SYBASE\BIN C:\WINNT\SYSTEM32.....但还能启动SSM。

打开SERVER时提示:NO LANGUAGE HANDLER INSTALL这与NT有关吗?如何解决?1.如何在PB5中自动生成行号自动生成行号的方法很多,你可以看看PB的例子就知道了。

目前我用的方法是,先用SQL语句统计表中最大的行号,把结果保存到一个变量中去,然后再对此变量进行加1不就可以了吗?但这种做法只是从最大的行号开始产生行号,产生最小的行号也是类似的。

2.delelte数据窗口中若干行,然后update,出现: “rows changed between retrieve andupdate No changes made to database... Delete from table where ...." 请问为什么?试试更改数据窗口的Update Properties中的'Where Clause for Update/Delete'中的选项。

PB 数据窗口高级( DataWindow)应用37个技巧

PB 数据窗口高级( DataWindow)应用37个技巧

PB 数据窗口高级( DataWindow) 37个技巧1. 使DataWindow列只能追加不能修改如何使DataWindow中的数据只能追加新记录而不能修改,利用Column 的Protect 属性可以很方便的做到这一点,方法如下:将每一列的Protect 属性设置为:If( IsRowNew(), 0, 1) )在PowerScript 中可以动态修改Protect 属性:dw_1.Modify("column_name_here.Protect='1~tIf(IsRowNew(),0,1)'")这样,DataWindow 中只有新追加的记录可修改,而其他记录是只读的。

2 .如何在DataWindow中实现列的自动折行我们在PowerBuilder应用程序的开发过程中, 使用DataWindow时, 经常会遇到某列的数据太长, 不能同时全部显示的情况. 若采用自动水平滚动, 操作起来又不够简便. 下面介绍一种方法, 实现列数据多行显示, 即实现列数据的自动折行.具体步骤如下:1) 在DataWindow Painter中打开此DataWindow.2) 在需设定自动折行的列上双击鼠标, 弹开此列的属性窗口.3) 选择Position标签, 选中Autosize Height 多选框.4) 选择Edit标签, 不选中Auto Horz Scroll多选框.5) 单击OK按钮, 保存所做的修改.6) 点中Detail Band (即写有Detail的灰色长带), 单击鼠标右键, 选择Properties... 菜单项.7) 选中Autosize Height多选框.8) 单击OK按钮, 保存所做的修改.9) 保存此DataWindow.注意:连在一起的汉字(中间没有标点或空格分隔), 系统将认为是一个单词, 不会自动进行折行.3. 在数据窗口中实现动画要实现动画,必须要有定时器,在数据窗口中已经有了一个定时器,双击数据窗口将弹出的对话框,在Timer Interval中定义大于零的值就有定时器(可以精确到毫秒),有了这个定时器就可以实现动画了。

PB数据窗体技巧

PB数据窗体技巧

PB数据窗体技巧1.熟悉数据窗体控件:数据窗体有很多不同的控件类型,如文本框、下拉列表、单选按钮等。

熟悉掌握每种控件的特性和使用方法,可以根据需求选择最合适的控件。

2.使用自定义控件:除了内置的控件,PB还支持使用自定义控件。

开发人员可以根据需要自定义控件,并将其应用到数据窗体中。

这样可以更加灵活地满足实际需求。

3.使用动态数据窗体:动态数据窗体是一种可以在运行时根据需求动态生成的数据窗体。

使用动态数据窗体可以根据不同的条件动态地生成不同的数据窗体,提高开发效率和可维护性。

4.使用数据窗口对象:数据窗口对象是一种可以在多个数据窗体之间共享数据和功能的对象。

使用数据窗口对象可以避免重复编写相似的代码,提高代码的复用性。

5.使用数据窗体样式:PB支持使用数据窗体样式来定义数据窗体的外观和行为。

开发人员可以根据需要创建自定义的样式,并将其应用到数据窗体中。

这样可以提高应用程序的一致性和可维护性。

6.使用数据验证和格式化:PB提供了丰富的验证和格式化选项,可以对数据进行有效性检查和格式化。

开发人员可以使用这些选项来确保数据的完整性和一致性。

7.使用数据窗体事件:数据窗体有许多内置事件,开发人员可以通过编写事件脚本来处理特定的事件。

通过使用数据窗体事件,可以实现更复杂的逻辑和交互。

8.使用数据窗体功能:PB提供了许多有用的数据窗体功能,如排序、过滤、分组等。

开发人员可以灵活运用这些功能,为用户提供更好的数据浏览和操作体验。

9.使用数据窗体部件:数据窗体部件是一种可以以独立的方式封装和重用数据窗体中的功能和样式的对象。

使用数据窗体部件可以提高开发效率和代码的复用性。

10.使用数据窗体继承:PB支持使用继承来创建基于已有数据窗体的新数据窗体。

通过继承,可以在不改变原有数据窗体的基础上,添加、修改或删除功能,提高代码的可维护性和可扩展性。

11.使用事务处理:PB支持使用事务处理来确保数据的一致性和完整性。

开发人员可以通过开启和提交事务来控制数据的保存和取消操作。

PB的数据窗口操作

PB的数据窗口操作

PB的数据窗口操作PB(PowerBuilder)是一种基于面向对象的集成开发环境(IDE),主要用于构建企业级应用程序。

在PB中,数据窗口是一项非常重要的功能,可以用于对数据的处理、展示和修改。

下面将从数据窗口的基本操作、高级特性和数据窗口设计原则等方面,详细介绍PB的数据窗口操作。

一、数据窗口的基本操作1. 创建数据窗口:在PB中,可以通过向导或手动创建数据窗口。

创建数据窗口是通过选择数据源(数据库表、视图或存储过程)、选择数据窗口类型(Grid、Tabular等)和设置窗口布局等步骤完成的。

2.数据绑定:在数据窗口中,可以通过数据绑定将数据源与数据窗口中的控件关联起来。

通过设置数据绑定属性,可以实现数据的读取、展示和修改等功能。

3.数据检索:使用数据窗口可以方便地进行数据检索。

通过设置查询条件、排序方式和数据过滤等属性,可以按照需求从数据库中检索数据,并在数据窗口中显示出来。

4.数据更新:除了展示数据,数据窗口还可以用于数据的更新。

通过设置数据窗口的更新属性,可以实现数据的插入、修改和删除等操作。

同时,PB还提供了事务管理和数据验证等功能,确保数据的完整性和一致性。

5.数据导航:在数据窗口中,可以轻松地实现数据的导航功能。

通过设置数据窗口的导航属性,可以方便地浏览数据,并进行上一条、下一条、第一页和最后一页等操作。

6.数据格式化:PB提供了丰富的数据格式化选项,可以对数据窗口中的数据进行格式化和显示。

例如,可以设置日期格式、货币格式和数值格式等,以便更好地展示和分析数据。

二、数据窗口的高级特性1.动态数据窗口:PB允许动态创建和操作数据窗口。

通过使用动态数据窗口,可以在运行时动态改变数据窗口的结构和属性。

这对于动态查询和灵活的数据展示非常有用。

2.嵌套数据窗口:PB支持嵌套数据窗口的使用。

通过将一个数据窗口嵌套在另一个数据窗口内部,可以实现复杂的数据关联和显示。

例如,可以在父数据窗口中显示子数据窗口的数据。

pb数据窗口技巧

pb数据窗口技巧

pb中datawindow常用技巧一(2009-04-16 17:09:07)转载▼分类:PowerBuilder标签:杂谈pb中datawindow常用技巧一1、如何让存储文件目录的列,显示图片?答:选择对应的column的display as picture属性为true2、如何复制grid类型的所选择的行的数据到系统剪切板?答:string ls_selectedls_selected=dw_1.Object.DataWindow.Selected.Dataclipbord(ls_selected)4、如何设置的DW底色?在DW的editsource中改变color的值5、如何将Grid风格改成自由格式?在DW的editsource中将processing=1的1改为06、要新建一个表A但风格和现有表格B风格一样,怎么将A表快速设置成表B风格?复制B表C,在C表的DW中的editsource中将表名和字段名改成A表的,即可7、如何实现gird风格的datawindow的多栏表头?答:添加text到header带区,并设置band属性为foreground保存,edit source 修改text的x和width属性表达式如下:x="100~t integer(describe('firstcol.x')" width="100~tinteger(describe('lastcol.x')) - integer(describe('firstcol.x')) +integer(describe('lastcol.width'))8、如何过滤dddw编辑风格的显示值为指定值的记录?答:dw_1.setfilter("lookupdisplay('column_name')='"+ls_display_value_your+"'") dw_1.filter()9、如何设置datawindow的某一列为空?答:string ls_temp[]setnull(ls_temp)dw_1.object.columnname.primary.current=ls_temp10、如何设置datawindow的单双行不同颜色间隔?答:在detail带区的color属性表达式中写上if(mod(getrow(),2)=1 ,rgb(255,0,0),rgb(0,255,0)),如果是当前行以第三种颜色表示,表达式如下:if(getrow()=current(),rgb(255,0,0),if(mod(getrow(),2)=1 ,rgb(0,0,255),rgb(0,255,0)))11、如何获取指定名称的datawindowobject?答:DWObject ldwo_use,ldwo_abc ldwo_use = dw_1.Object ldwo_abc =ldwo_use.__get_attribute("t_1",FALSE)//t_1为datawindow中text对象的名称12、如何缩放datawindow的打印大小?答:dw_1.object.datawindow.zoom=150 or dw_1.object.datawindow.zoom=75 13、如何在已过滤后的数据基础上对datawindow进行过滤?答:dw_1.setfilter(dw_1.describe("datawindow.table.filter")+your_join+your_new_filt er)dw_1.filter()14、如何在datawindow中显示动态时间?答:建立一个计算域,表达式为string(datetime(today(),now()),'yyyy年mm月dd日hh点mm分ss秒'),同时设置datawindow的属性dw_1.Object.DataWindow.Timer_Interval=50015、如何让带用title bar的datawindow控件的标题栏诚活动窗口的颜色?答:外部函数定义:funcation logn SetActiveWindow(long hwnd ) Library "user32.dll" datawindow控件的clicked事件代码:setactivewindow(handle(this))16、如何设置datawindow的当前行指示图标?答:在datawindow中建立一个计算列,expression为'',并将该计算列移动为datawindow的第一个列,在datawindow控件的rowfocuschanged事件中写入代码:SetRowFocusIndicator(hand!)或setrowfucsindicator(p_1)//p_1为窗口上的picture控件名17、如何通过代码打开dddw?答:定义外部函数引用声明SUBROUTINE keybd_event( int bVk, int bScan, int dwFlags, int dwExtraInfo) LIBRARY "user32.dll"代码如下:[constant integer VK_F4 = 115dw_1.SetFocus()dw_1.SetColumn( "dept_head_id" ) //设置当前dddwkeybd_event( VK_F4,0,0,0 ) // 按下F4键keybd_event( VK_F4,0,2,0 ) // 释放F4键18、如何打印datawindow的内容到文件中?答:dw_1.object.datawindow.print.fileName ="c:\temp.prn"dw_1.print()19、如何设置dddw的初始值?答:dw_1.object.columnname.Initial="your_initial_value"20、如何只显示不同的数据?答:dw_1.filter("isnull(columnname[-1]) and columnname<>columnname[-1]") dw_1.filter()21、如何让带有title bar的datawindow不可以移动?答:在datawindow的自定义事件ue_nchittest(pbm_nchittest)中写入如下代码:return 122、如何在N-UP显示风格中建立基于第N栏中的列的计算列?答:如column有两列,number和price ,并显示为两栏,则第一栏的cost计算列的expression为number*price,第二栏的cost_1计算列的expression为number[1]*price[1]23、如何清空ddlb或edit.codetable中项目?答:dw_1.Object.columnname.Values=""24、如何实现指定的column的字体旋转90度?答:dw_1.object.columnname.font.Escapement ="900"25、如何获取datawindow的sql代码?答:可以通过以下四种方法获取sql代码:string szselectszselect=dw_1.describe("datawindow.table.select")szselect=dw_1.describe("datawindow.table.sqlselect")szselect=dw_1.describe("datawindow.table.select.attribute")szselect=dw_1.getsqlselect()27、如何获取datawindow对象占有的虚拟存储的容量?答:使用datawindow.storage属性举例:在datawindow控件的retrieverow事件中,写如如下代码:long lstoragelstorage=long(dw_1.object.datawindow.storage)if lstorage>50000 then dbcancel()28、如何连续在同一张纸打印两个数据窗口?答:dw_1.object.datawindow.print.filename="temp.prn"dw_2.object.datawindow.print.filename="temp.prn"dw_1.print()dw_2.print()29、如何设置datawindow分组后每个分组中的记录号?答:建立一个计算列,expression为getrow() - first(getrow() for group 1)+1 30、如何实现在datawindow中只有新增的行,才可以编辑?答:在所有的column的protect属性表达式中写入以下表达式:if(isrownew(),'0','1')31、除了循环以外,有没有更好的方法统计数据窗口中处于选中状态的行数?一般习惯于使用循环来统计数据窗口中处于选中状态的行数,有没有更好的方法?其实此问题在应用上用处不大,讨论一下,活跃一下思维还是有好处的。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

PB数据窗口技巧问答1.如何让存储文件目录的列,显示图片? 答:选择对应的column的display as picture属性为true2、如何复制grid类型的所选择的行的数据到系统剪切板?答:string ls_selectedls_selected=dw_1.Object.DataWindow.Selected.Dataclipboard(ls_selected)3、如何复制graph风格的datawindow中的图形到剪切板?答:dw_1.clipbord("gr_1")4、如何设置的DW底色?在DW的editsource中改变color的值5、如何将Grid风格改成自由格式?在DW的editsource中将processing=1的1改为06、要新建一个表A但风格和现有表格B风格一样,怎么将A表快速设置成表B风格?复制B表C,在C表的DW中的editsource中将表名和字段名改成A表的,即可7、如何实现gird风格的datawindow的多栏表头?答:添加 text到header带区,并设置band属性为foreground保存,edit source 修改text的x和width 属性表达式如下:x="100~t integer(describe('firstcol.x')" width="100~tinteger(describe('lastcol.x')) -integer(describe('firstcol.x')) +integer(describe('lastcol.width'))8、如何过滤dddw编辑风格的显示值为指定值的记录?答:dw_1.setfilter("lookupdisplay('column_name')='"+ls_display_value_your+"'")dw_1.filter()9、如何设置datawindow的某一列为空?答:string ls_temp[]setnull(ls_temp)dw_1. O B J E C T.columnname.primary.current=ls_temp10、如何设置datawindow的单双行不同颜色间隔?答:在detail带区的color属性表达式中写上if(mod(getrow(),2)=1 ,rgb(255,0,0),rgb(0,255,0)),如果是当前行以第三种颜色表示,表达式如下:if(getrow()=current(),rgb(255,0,0),if(mod(getrow(),2)=1 ,rgb(0,0,255),rgb(0,255,0)))11、如何获取指定名称的datawindow O B J E C T?答:DWObject ldwo_use,ldwo_abcldwo_use = dw_1.Objectldwo_abc = ldwo_use.__get_attribute("t_1",FALSE)//t_1为datawindow中text对象的名称注﹕不是版本的问题,是你没找对位置。

在PB的browser中,展开任意放置了datawindow控件的窗口,然后展开datawindow出现dwobject,右边的函数部分就可以看到这几个函数。

因为它的参数从字面上无法猜测出其含义,而帮助上没讲,所以有此一问。

你从哪儿找到这些函数的?我只知道__get_attribute()。

pb7.0以前的版本这些函数的形式为get_attribute(),没有前面的两个横线。

dwobject ldwo_object,ldwo_object_itemldwo_object = dw_1.objectldwo_object_item= ldwo_object.__get_attribute('objectname',false)参数中的objectname是datawindow中对象的名字,如列名等。

这样可以根据列名得到该列对应的dwo,就跟在datawindow的click事件中的dwo参数一样。

12、如何使用datawindow的查询模式?答:dw_1.Object.DataWindow.QueryMode='yes'将datawindow改变为查询模式后,接收用户的输入,再使用一下代码获取结果:dw_1.accepttext()dw_1.retrieve()13、如何缩放datawindow的打印大小?答:dw_1. O B J E C T.datawindow.zoom=150 or dw_1. O B J E C T.datawindow.zoom=7514、如何在已过滤后的数据基础上对datawindow进行过滤?答:dw_1.setfilter(dw_1.describe("datawindow.table.filter")+your_join+your_new_filter)dw_1.filter()15、如何在datawindow中显示动态时间?答:建立一个计算域,表达式为string(datetime(today(),now()),'yyyy年mm月dd日 hh点mm分ss秒'),同时设置datawindow的属性dw_1.Object.DataWindow.Timer_Interval=50016、如何让带用title bar的datawindow控件的标题栏诚活动窗口的颜色?答:外部函数定义:function long SetActiveWindow(long hwnd ) Library "user32.dll"datawindow控件的clicked事件代码:setactivewindow(handle(this))17、如何设置datawindow的当前行指示图标?答:在datawindow中建立一个计算列,expression为'',并将该计算列移动为datawindow的第一个列,在datawindow控件的rowfocuschanged事件中写入代码:SetRowFocusIndicator(hand!)或setrowfucsindicator(p_1)//p_1为窗口上的picture控件名18、如何通过代码打开dddw?答:定义外部函数引用声明SUBROUTINE keybd_event( int bVk, int bScan, int dwFlags, int dwExtraInfo) LIBRARY "user32.dll" 代码如下:[constant integer VK_F4 = 115dw_1.SetFocus()dw_1.SetColumn( "dept_head_id" ) //设置当前dddwkeybd_event( VK_F4,0,0,0 ) // 按下F4键keybd_event( VK_F4,0,2,0 ) // 释放F4键19、如何打印datawindow的内容到文件中?答: dw_1. O B J E C T.datawindow.print.fileName ="c:\temp.prn"dw_1.print()20、如何设置dddw的初始值?答:dw_1. O B J E C T.columnname.Initial="your_initial_value"21、如何只显示不同的数据?答:dw_1.filter("isnull(columnname[-1]) and columnname<>columnname[-1]")dw_1.filter()22、如何让带有title bar的datawindow不可以移动?答:在datawindow的自定义事件ue_nchittest(pbm_nchittest)中写入如下代码:return 123、如何在N-UP显示风格中建立基于第N栏中的列的计算列?答:如column有两列,number和price ,并显示为两栏,则第一栏的cost计算列的expression为number*price,第二栏的cost_1计算列的expression为number[1]*price[1]24、如何清空ddlb或edit.codetable中项目?答:dw_1.Object.columnname.Values=""25、如何实现指定的column的字体旋转90度?答:dw_1. O B J E C T.columnname.font.Escapement ="900"26、如何获取datawindow的sql代码?答:可以通过以下四种方法获取sql代码:string szselectszselect=dw_1.describe("datawindow.table.select")szselect=dw_1.describe("datawindow.table.sqlselect")szselect=dw_1.describe("datawindow.table.select.attribute")szselect=dw_1.getsqlselect()27、如何获取datawindow对象占有的虚拟存储的容量?答:使用datawindow.storage属性举例:在datawindow控件的retrieverow事件中,写如如下代码:long lstoragelstorage=long(dw_1. O B J E C T.datawindow.storage)if lstorage>50000 then dbcancel()28、如何控制打印横向:dw_control. O B J E C T.datawindow.print.orientation= 129、如何进行预览:dw_control. O B J E C T.datawindow.print.preview = "yes"30、如何连续在同一张纸打印两个数据窗口?答:dw_1. O B J E C T.datawindow.print.filename="temp.prn"dw_2. O B J E C T.datawindow.print.filename="temp.prn"dw_1.print()dw_2.print()31、如何将pb9.0 的datawindow转化为pb 8.0版本的datawindow?答:edit source 将release 9;改为release 8;并删除以下内容:print.printername=""print.canusedefaultprinter=yesprint.cliptext=no print.overrideprintjob=nohidegrayline=noencodeselflinkargs="1"export.xml(headgroups="1" includewhitespace="0" metadatatype=0 savemetadata=0 )import.xml()export.pdf(method=0 distill.custompostscript="0" xslfop.print="0" )32、如何设置datawindow分组后每个分组中的记录号?答:建立一个计算列,expression为 getrow() - first(getrow() for group 1)+133、如何实现在datawindow中只有新增的行,才可以编辑?答:在所有的column的protect属性表达式中写入以下表达式:if(isrownew(),'0','1')34、保存datawindow数据到excel中// ... Init docname// ... GetFileOpenName or any other methodif dw_1.SaveAs(docname, HTMLTable!, True) = -1 thenMessageBox("Warning", "Unable to export data. Error writing to file!", Exclamation!)returnend if// Convert HTML file to Excel native formatOLEObject excelexcel = CREATE OLEObjectif excel.ConnectToObject(docname) = 0 thenexcel.application.DisplayAlerts = FALSEexcel.application.workbooks(1).Parent.Windows(excel.application.workbooks(1).Name).Visible = Trueexcel.application.workbooks(1).saveas(docname, 39)excel.application.workbooks(1).close()end ifDESTROY excel// done35、除了循环以外,有没有更好的方法统计数据窗口中处于选中状态的行数?一般习惯于使用循环来统计数据窗口中处于选中状态的行数,有没有更好的方法?其实此问题在应用上用处不大,讨论一下,活跃一下思维还是有好处的。

相关文档
最新文档