PB函数应用经验

合集下载

pb datediff用法

pb datediff用法

pb datediff用法pb的datediff函数是一种常见的日期计算函数,用于计算两个日期之间的时间差。

在本文中,我们将深入探讨pb的datediff函数的用法,并提供一些实际的示例来帮助读者理解这个函数的使用方法。

通过详细的步骤和示例,读者将能够更好地理解这个函数,并能够在实际应用中正确使用它。

第一步- 了解datediff函数的基本语法datediff函数的基本语法如下:datediff(unit, start_date, end_date)其中,unit 是一个字符串,表示要计算的时间间隔的单位。

start_date 和end_date 是两个日期,表示要计算时间间隔的起始点和结束点。

第二步- 确定时间间隔的单位首先,我们需要确定要计算的时间间隔的单位。

pb的datediff函数支持以下单位的时间间隔计算:- years:年份之间的时间间隔- quarters:季度之间的时间间隔- months:月份之间的时间间隔- weeks:星期之间的时间间隔- days:天数之间的时间间隔- hours:小时之间的时间间隔- minutes:分钟之间的时间间隔- seconds:秒数之间的时间间隔第三步- 提供起始日期和结束日期接下来,我们需要提供要计算时间间隔的起始日期和结束日期。

这两个日期可以是pb的日期字段,也可以是常量或特定格式的日期值。

请注意,日期的格式必须与pb的日期格式匹配,否则函数无法正确解析日期值。

第四步- 编写datediff函数的完整语句现在,我们已经确定了时间间隔的单位,并提供了起始日期和结束日期,我们可以编写datediff函数的完整语句了。

下面是一个示例:datediff("months", {table.start_date}, {table.end_date})在这个示例中,我们使用months作为时间间隔的单位,并将起始日期和结束日期作为pb的日期字段传递给datediff函数。

pb 时间函数

pb 时间函数

pb时间函数介绍在编程中,时间函数是非常重要的一部分。

时间函数可以帮助我们获取、操作和格式化时间,以满足不同的需求。

在Python编程语言中,有一个非常常用的时间函数库,就是pb时间函数。

什么是pb时间函数pb时间函数是Python编程语言中的一个模块,提供了一系列的函数来处理时间。

它可以帮助我们获取当前的时间、计算时间间隔、格式化时间等操作。

通过使用pb时间函数,我们可以更加方便地处理时间相关的任务。

pb时间函数的常用功能pb时间函数提供了多个常用的功能,下面将逐个介绍。

1. 获取当前时间使用pb时间函数,我们可以轻松地获取当前的时间。

下面是一个示例代码:import pbcurrent_time = pb.get_current_time()print(current_time)上述代码中,我们使用了get_current_time函数来获取当前的时间,并将结果打印出来。

2. 计算时间间隔pb时间函数还可以帮助我们计算时间间隔。

下面是一个示例代码:import pbstart_time = pb.get_current_time()# 执行一些操作end_time = pb.get_current_time()time_interval = pb.calculate_time_interval(start_time, end_time)print(time_interval)上述代码中,我们使用了calculate_time_interval函数来计算开始时间和结束时间之间的时间间隔,并将结果打印出来。

3. 格式化时间pb时间函数还可以将时间格式化为指定的格式。

下面是一个示例代码:import pbcurrent_time = pb.get_current_time()formatted_time = pb.format_time(current_time, "YYYY-MM-DD HH:mm:ss")print(formatted_time)上述代码中,我们使用了format_time函数将当前时间格式化为”YYYY-MM-DD HH:mm:ss”的格式,并将结果打印出来。

PB数据窗口常用函数方法

PB数据窗口常用函数方法

PB数据窗口常用函数方法1. Retrieve函数:用于从数据库中检索数据,可以通过设置检索条件过滤数据。

例如,dw_employee.Retrieve(将从数据库中检索出所有的员工数据。

2. Update函数:用于更新数据窗口中的数据到数据库中。

例如,dw_employee.Update(将更新数据窗口中的所有修改到数据库中。

3. Create功能:用于创建一个新的数据行。

例如,dw_employee.Create(将在数据窗口中新增一行空数据。

4. Modify功能:用于修改数据窗口中的数据。

例如,dw_employee.Modify(将允许用户进行修改操作。

5. InsertRow函数:用于在数据窗口中插入一行数据。

例如,dw_employee.InsertRow(1)将在第一行之前插入一行数据。

6. DeleteRow函数:用于删除数据窗口中的一行数据。

例如,dw_employee.DeleteRow(2)将删除第二行的数据。

7. SetItem函数:用于设置数据窗口中指定列的值。

例如,dw_employee.SetItem(1, "John")将设置第一列的值为"John"。

8. GetItem函数:用于获取数据窗口中指定列的值。

例如,string ls_name = dw_employee.GetItemString(1)将获取第一列的值并赋给ls_name变量。

9. GetRowCount函数:用于获取数据窗口中的行数。

例如,intli_rows = dw_employee.GetRowCount(将返回数据窗口中的行数。

10. GetColumnCount函数:用于获取数据窗口中的列数。

例如,int li_columns = dw_employee.GetColumnCount(将返回数据窗口中的列数。

11. GetRow函数:用于获取数据窗口中指定行的数据。

PB使用小技巧

PB使用小技巧

PB使用小技巧1. 如何使PB窗口总在最上层通过SetWindowPos函数把窗口的显示层次修改为HWND_TOPMOST,就可以使指定窗口永远不会被其他窗口覆盖,该函数声明为:Function Long SetWindowPos(Long hwnd, Long ord, Long x, Long y, Long dx, Long dy, Long uflag) Library “user32.dll”参数1为要顶层显示的窗口句柄,参数2指定显示的层次,参数7为附加选项,其余参数指定窗口位置和大小,均可忽略。

在窗口的Open或Activate事件中加入如下函数调用:SetWindowPos(Handle(This),-1,0,0,0,0,3)参数2取-1表示在最顶层显示窗口,取1表示在最底层显示;最后一个参数若取1,表示窗口大小保持不变,取2表示保持位置不变,因此,取3(=1+2)表示大小和位置均保持不变,取0表示将窗口的大小和位置改变为指定值。

2. 在PB中如何获得光盘盘符通过GetDriveType函数可以获取驱动器(如:软驱、硬盘、光驱、网络映射驱动器等)的信息,该函数声明为:Function Unit GetDriveTypeA(String drive) Library “kernel32.dll”参数为一个盘符(如“C:”),返回值:1表示未知,2表示软驱,3表示本地硬盘,4表示网络驱动器,5表示光驱。

因此如下代码可以获得光盘的盘符:For I=Asc(‘D’) to Asc(‘Z’)//列举所有可能的CDROM的驱动器If GetDriveTypeA(Char(i)+”:”) = 5 Then//若找到CDROMMessagebox(“CDROM”,Char(i)+”:”)//显示光盘盘符Exit //退出循环End ifNext3. 在PB中如何获取目录信息(1)获取当前目录。

通过GetCurrentDirectory函数可以获取当前目录,该函数声明为:Function Ulong GetCurrentDirectory(Ulong buflen,ref String dir)Library “kernel32.dll”参数2为接受当前目录的字符缓冲区,前面必须加ref表示地址引用;参数1用来指定字符缓冲区的长度。

PB中很实用的小技巧

PB中很实用的小技巧

1.RGB函数计算公式: 颜色值= (65536 * Blue) + (256 * Green) + (Red)2.控件可拖动:send(handle(this),274,61458,0)3.如何用程序控制下拉子数据窗口的下拉和收起用modify或者直接用dw_1.object.col1.dddw.showlist = true4.检索参数有些不需要传入则传%.5.如何屏蔽鼠标滚轮触发在控件的other事件写if message.number = 522 then return 16.得到数据窗口的语法:string ls_dwsyntaxls_dwsyntax=dw_1.describe("datawindow.syntax")7.得到数据窗口中各列及标题:long ll_count,istring ls_value,ls_colnamell_colnum = Long(dw_1.object.datawindow.column.count)for i = 1 to ll_colnum//得到标题头的名字ls_colname = dw_1.describe('#' + string(i) + ".name") + "_t"ls_value = dw_1.describe(ls_colname + ".text")next8.在程序中动态设置初始值:ex:dw_contro.object.columnName.initial = 'xxxx'9.如何在DataWindow的SQL语法中不使用SELECT DISTINCT实现删除重复的行---- 起先对你要显示唯一值的列进行排序:"city A",然后增加如下过滤字符串:" city < > city [-1] or GetRow () = 1"10.如何改变列的字体颜色,提醒用户此列已做修改---- 在列的Color属性中,输入如下表达式IF (column_name< >column_name.Original, RGB(255, 0, 0), RGB(0, 0, 0))。

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常用操作技巧

这是刚毕业时在某一“大”公司使用PB6.5开发联通营帐系统时的笔记虽然好久没有也许以后也不会再使用pb开发程序了但这算是我使用过的唯一一个前端专业开发工具把笔记记录下来权当作纪念吧_ //PB中标准调用sql语句ls_sql quotselectroad_name from bb_data_wide_bus_temp_t where register_number quotls_register_number quotquot declare cur_get dynamic cursor for sqlsa prepare sqlsa from :ls_sql open dynamic cur_get fetch cur_get into :ls_value if sqlca.sqlcode ltgt 0 then messagebox操作信息提取失败exclamation end if close cur_get //PB中标准循环调用sql语句DECLARE cur_sql DYNAMIC CURSOR FOR SQLSA PREPARE SQLSA FROM :ls_sql OPEN DYNAMIC cur_sql do while sqlca.sqlcode 0 FETCH cur_sql INTO :ls_register_number:ls_complete_note ll_sqlcode sqlca.sqlcode if ll_sqlcode lt 0 then CLOSE cur_sql af_disconnect messagebox错误提示检索受理编号错误StopSign return elseif ll_sqlcode 100 then exit end ifddlb_register_number.additemtrimls_register_number ls_complete_note loop CLOSE cur_sql //窗口open事件通用脚本//置窗口居中af_center_windowthis //连接数据库af_connect //定义变量dataWindowChild dwc //获取城市代码下拉列表并取值dw_city_code.getChildcity_codedwc dwc.setTransObjectsqlcadwc.Retrievegs_citycodegi_citylevel dw_city_code.setTransObjectsqlcadw_city_code.Retrieve dw_city_code.setItem1city_codedwc.getItemString1city_codeis_city_code dw_city_code.getItemStringdw_city_code.getRowcity_code //获取业务类型下拉列表并取值dw_service_kind.getChildservice_kinddwcdwc.setTransObjectsqlca dwc.Retrieve dw_service_kind.setTransObjectsqlcadw_service_kind.Retrieve dw_service_kind.setItem1service_kind10 ii_service_kinddw_service_kind.getItemNumberdw_service_kind.getRowservice_kind //获取申请事项下拉列表并取值dw_apply_event.getChildapply_eventdwc dwc.setTransObjectsqlca dwc.Retrieveii_service_kind dw_apply_event.setTransObjectsqlcadw_apply_event.Retrievedw_apply_event.setItem1apply_eventdwc.getItemNumber1apply_event ii_apply_event dw_apply_event.getItemNumberdw_apply_event.getRowapply_event //激发查询事件cb_query.TriggerEventclicked //断开数据库af_disconnect //查询按钮通用脚本//连接数据库af_connect //定义变量dataWindowChild dwc //dw_1检索数据dw_1.setTransObjectsqlca dw_1.Retrieveii_service_kind //dw_2检索数据intli_rowli_row_temp dw_2.getChildactiondwc dwc.setTransObjectsqlcadwc.Retrieveii_service_kind dw_2.setRowFocusIndicatorhand dw_2.setTransObjectsqlca li_row_temp dw_2.Retrieveii_apply_eventii_service_kindis_city_codedw_2.scrollToRowli_row_temp //如果未检索到数据插入一空行有数据就过滤string ls_filter int li_action if li_row_temp 0 then dw_2.insertRow0 else for li_row 1 todw_2.rowCount li_action dw_2.getItemNumberli_rowaction ls_filter action ltgt stringli_action dw_1.setFilterls_filter dw_1.filter next end if //断开数据库af_disconnect //增加按钮通用脚本//变量定义int li_stepli_actionli_auto_statusli_row //确认选择要增加的记录if dw_1.getSelectedRow0 0 then MessageBox提示信息请选择要添加的记录exclamation return end if //取出要增加的信息li_stepdw_2.getItemNumberdw_2.getRowstep li_actiondw_1.getItemNumberdw_1.getSelectedRow0action li_auto_statusdw_1.getItemNumberdw_1.getSelectedRow0auto_status //添加信息li_rowdw_2.insertRow0 dw_2.setItemli_rowstepli_step dw_2.setItemli_rowactionli_actiondw_2.setItemli_rowauto_statusli_auto_status dw_2.scrollToRowli_row //删除按钮通用脚本//删除前先确认IF dw_2.GetRow 0 THEN MessageBox提示信息请选择要删除的记录exclamation Return ELSE IF MessageBoxquot提示信息quotquot确实要删除指定的记录quotQuestionYesNo2 2 THEN Return dw_2.DeleteRowdw_2.getRow END IF //保存按钮通用脚本//连接数据库af_connect //定义变量stringls_city_codels_error int li_service_kindli_apply_eventli_rowli_step dataWindowChild dwc //检测数据是否发生变化dw_2.AcceptText IF dw_2.ModifiedCountdw_2.DeletedCount 0 THEN MessageBoxquot操作提示quotquot数据未发生变化无需保存quotexclamation return END IF //检测是否为空或零dw_2.setSortstep adw_2.sort FOR li_row 1 TO dw_2.RowCount li_stepdw_2.GetItemNumberli_rowstep IF IsNullli_step OR li_step 0 THEN MessageBox操作提示步骤不能为空或零请重新输入exclamation dw_2.setRowli_row Return END IF NEXT //保存dw_2.SetTransObjectsqlca if dw_2.update 1 then commit messageboxquot提示信息quotquot保存成功quot dw_2.ScrollToRowdw_2.RowCount else ls_error sqlca.sqlErrText rollback messageboxquot提示信息quotquot保存失败quot char13 ls_errorstopSign return end if //断开数据库af_disconnect //打印按钮通用脚本if dw_1.rowCount gt 0 then if PrintSetup -1 then messagebox提示信息打印机设置出错Exclamation return else if dw_1.printtrue 1 then //显示可以取消打印的对话框Messagebox提示信息quot打印成功quot else Messagebox提示信息quot打印失败quotstopSign end if end if else Messagebox提示信息quot没有数据可以打印请先查询数据quotexclamation return end if //导出按钮通用脚本if dw_1.rowcount lt 0 then messageBox提示信息没有数据可以导出请先查询exclamation return end if ifdw_1.SaveAStexttrue 1 then messageBox提示信息导出成功end if //导入按钮通用脚本//变量定义string ls_pathfilels_filels_titlels_extls_filter int li_posli_fileid longll_buffer //变量赋值ls_title quot请选择数据文件quot ls_ext quottxtquot ls_filter quot文本文件.txt.txt全部文件..quot li_fileidGetFileOpenNamels_titlels_pathfilels_filels_extls_filter ifli_fileid 0 or ls_file quotquot then return end if sle_file_name.text ls_pathfile cb_ok.enabled true //退出按钮通用脚本closeparent 或closeWithReturnparentreturnvalue //调用过程通用脚本if dw_wp.rowcount lt 0 then return //变量定义string ls_sqlls_err_info stringls_register_numberls_accept_cityls_departmentls_oper_person integerli_err_codeli_apply_event //变量赋值ls_register_numberdw_wp.getitemstring1register_number ls_accept_city gs_citycode li_apply_eventdw_wp.getitemnumber1apply_event ls_department gl_dealerid ls_oper_persongs_workerid //连接数据库af_connect //调用配号撤单过程ls_sql quotexecutebb_pstn_assign_no_repeal_pquot declare proc_assign_no_repeal dynamic cursor for sqlsa prepare sqlsa from :ls_sql open dynamic proc_assign_no_repealusing :ls_register_number:ls_accept_city:li_apply_event:ls_department:ls_oper_person if sqlca.sqlcode -1 then ls_err_info sqlca.sqlErrText close proc_assign_no_repeal Rollback Messageboxquot错误信息1quotquot执行异常quot ls_err_infostopSignaf_disconnect return End if fetch proc_assign_no_repeal into :li_err_code:ls_err_info if li_err_code lt 0 then close proc_assign_no_repeal Rollback Messageboxquot错误信息2quotquot执行异常quot ls_err_infostopSign af_disconnect return end if closeproc_assign_no_repeal commit //断开数据库af_disconnect //撤单成功后打印工单dw_wp.print //PB某些控件的中文显示问题假如PB 的ListView 不能正常显示中文则应该将ListView 的FontCharSet 属性设置成其他类型。

PB经验总结4

PB经验总结4

2、在打印一个数据窗口时,如果在数据窗口中用函数PAGECOUNT()可以得取该数据窗口的打印页数,但该打印页数跟打印机实际的打印页数并不一样,如何能取得打印机实际的打印页数?3、在打印一个数据窗口时,如果在数据窗口中用函数PAGECOUNT()可以得取该数据窗口的打印页数,但该打印页数跟打印机实际的打印页数并不一样,如何能取得打印机实际的打印页数?4、PB + Sql Anywhere 应用程序,请问如何脱离开发环境运行?用户是否需要安装sqlanywhere?如何编写脚本配置ODBC数据源?请举一例好吗?谢谢!5、复杂报表另存为的技巧一例6、在程序中管理和控制MS SQLServer7、数据窗口中怎样实现旧的数据不可修改8、建立和配置web datawidnow9、建立一个通用的报表处理系统10、转换日期和时间11、比较日期和时间12、鼠标移到数据窗口上时所在行字段改变颜色一页?首先将datawindow的print输出到一个打印文件中,把其他的print也输入这个prn,然后,打印这个打印文件就行了。

如:datawindow_control1.object.datawindow.print.filename="c:\printfilepath\exam_1.prn" datawindow_control2.object.datawindow.print.filename="c:\printfilepath\exam_1.prn"dw_1.print()dw_2.print()run("print //d:\\printservename\sharename "c:\printfilepath\exam_1.prn")//d:\\printservename\sharename打印机名14、在打印一个数据窗口时,如果在数据窗口中用函数PAGECOUNT()可以得取该数据窗口的打印页数,但该打印页数跟打印机实际的打印页数并不一样,如何能取得打印机实际的打印页数?请先预览datawindowdw_1.Modify("DataWindow.Print.preview = true")再用pagecount()就是了。

浅谈PB使用心得

浅谈PB使用心得

浅谈PB使用心得
在过去的几年里,我一直在使用PowerBuilder(简称PB)来进行软
件开发。

PowerBuilder是一种基于面向对象编程的集成开发环境(IDE),它可以让开发者使用非常简单的方式来创建和管理企业级应用程序。

在使
用PB的这段时间里,我积累了一些使用心得,现在将它们分享给大家。

另外,PB还有一些其他的特性,使得它成为一种非常强大的开发工具。

首先是PB的数据窗口控件。

数据窗口是PB最重要的控件之一,它支
持多种数据源,包括数据库、文件和Web服务等。

数据窗口具有强大的数
据绑定和自动更新功能,可以大大简化数据的显示和修改操作。

此外,PB
还提供了许多内置的功能和类库,可以帮助开发者完成各种常见的任务,
如文件操作、网络通信和图形处理等。

虽然PB在很多方面都非常强大,但也存在一些不足之处。

首先是PB
的学习曲线较陡。

相对于其他的开发工具和编程语言,PB的概念和语法
是非常独特的。

新手可能需要一段时间来适应这种独特的开发方式。

此外,PB的文档和教程相对较少,这也给初学者带来了一些困惑。

PB培训教程(提高篇)

PB培训教程(提高篇)

PB培训教程(提高篇)PB培训教程(提高篇)PB( PowerBuilder)是一款流行的集成开发环境(IDE),它是一种用于开发企业级应用程序的工具。

无论是Web应用程序、桌面应用程序,PB都可以胜任。

在企业中,人们使用PB制作的软件可以在不同的系统平台和数据库中实现数据的集成。

在本篇文章中,我们将为大家分享一些提高篇的PB培训教程,帮助读者更好地使用PB进行应用程序开发。

1.利用PB进行线程编程随着计算机处理速度的提高,人们期望计算机可以同时执行多个任务,因此,线程编程变得越来越重要。

PB自带的开发工具和函数库可以帮助您更容易地在应用程序中实现线程编程。

以下是一些线程编程的基本概念:①主线程和子线程主线程是应用程序中的主要执行线程,它通常负责与用户交互和管理应用程序的状态。

子线程可以独立于主线程运行,它通常负责执行后台任务,如文件下载或计算。

②线程同步不同的线程之间通常需要协调执行。

线程同步的目的是确保线程之间的任务执行是有序的。

同步机制包括信号量、互斥锁、互斥量等。

③线程通信不同的线程之间通常需要通信,以便协调执行。

线程通信的目的是允许一个线程向另一个线程传递信息。

常见的线程通信机制包括消息队列、管道等。

在PB中,您可以使用Create和SendMessage函数创建线程,使用ResetEvent和WaitForSingleObject函数同步线程,使用PostThreadMessage和PeekMessage函数进行线程之间的通信。

2.利用PB进行多语言开发多语言开发已成为全球软件开发的重要趋势。

随着各国经济的快速发展,软件企业和产品已经选择了向全球市场推广其产品的策略。

要实现多语言开发,需要考虑最终用户的语言、文化、习惯等。

以下是一些常见的多语言开发方法:①本地化本地化是指调整应用程序以适应特定地区或国家的语言和文化。

本地化涉及到应用程序的所有方面,包括UI、消息框、菜单和帮助文档等。

PB数据窗口常用函数方法

PB数据窗口常用函数方法

PB数据窗口常用函数方法在PB(PowerBuilder)中,数据窗口是一种非常常用的控件,用于显示和处理数据。

以下是一些PB数据窗口常用的函数方法:1. SetItem(li_row, ls_column, ls_value): 可以用来设置指定行列位置的单元格的值。

2. GetItemString(li_row, ls_column): 返回指定行列位置的单元格的字符串值。

3. SetItemStatus(li_row, ls_column, lsb_update): 可以设置指定单元格的更新状态,lsb_update为TRUE表示有更新,FALSE表示没有更新。

5. Retrieve(: 用于从数据库中检索数据并在数据窗口中显示。

6. Modify("sql"): 可以修改数据窗口的检索SQL语句,并重新检索数据。

7. InsertRow(li_row): 插入一行数据。

8. DeleteRow(li_row): 删除指定行数据。

9. Update(: 保存对数据窗口中数据的修改到数据库。

10. ResetUpdate(: 取消对数据窗口中数据的修改。

11. Reset(: 清空数据窗口中的所有数据。

12. SelectRow(li_row, lsb_select): 可以选择或取消选择指定行。

13. SelectText(li_start, li_end): 可以选择指定行列范围的文本。

14. GetColumnName(li_column): 返回指定列索引的列名。

15. GetColumnCount(: 返回数据窗口中的列数。

16. GetRowCount(: 返回数据窗口的行数。

17. GetRow(: 返回当前选中行的索引。

18. Find("value"): 在数据窗口中查找指定值,并返回先找到的行索引。

19. FindNext("value"): 在数据窗口中继续查找指定值,并返回下一个找到的行索引。

PB对excel的操作

PB对excel的操作

PB对excel的操作随着科技的发展,电子表格软件已经成为了工作和学习中不可或缺的工具。

而Excel作为最常用的电子表格软件之一,在个人和企业的日常操作中扮演着重要的角色。

本文将介绍PB(Peanut Butter)对Excel 的操作,包括基本操作、数据处理与分析、图表制作、公式运用等内容。

一、基本操作1. 打开与关闭工作簿PB可通过点击文件选项卡,选择“打开”命令来打开Excel工作簿。

在使用完成后,点击右上角的“关闭”按钮即可关闭工作簿。

2. 插入与删除工作表PB可在Excel中插入新的工作表,点击工作表选项卡后,在“工作表组”中选择“插入工作表”即可。

要删除工作表,PB只需选中要删除的工作表,然后点击右键选择“删除”。

3. 数据输入与编辑PB可将数据直接输入到单元格中,通过使用方向键或鼠标切换到需要编辑的单元格,然后键入相应的数据。

若需要编辑已有的数据,PB只需选中要编辑的单元格,然后直接键入新的数据。

二、数据处理与分析1. 数据筛选与排序PB可使用Excel提供的筛选功能,选择需要操作的数据范围,在“数据”选项卡中选择“筛选”按钮,然后根据需要进行筛选条件的设置。

对于数据排序,PB可通过选择需要排序的数据范围,在“数据”选项卡中选择“排序”按钮,按照指定的排序规则进行排序。

2. 数据透视表的制作PB需首先选中所要制作透视表的数据范围,然后在“插入”选项卡中点击“透视表”按钮。

在弹出的对话框中,PB可选择需要作为行、列和数据的字段,从而生成需要的透视表。

三、图表制作1. 制作柱状图PB需选中需要制作柱状图的数据范围,然后在“插入”选项卡中点击“柱状图”按钮。

在弹出的图表类型中,PB可选择适合的柱状图样式,并对图表效果进行调整。

2. 制作折线图PB需选中需要制作折线图的数据范围,然后在“插入”选项卡中点击“折线图”按钮。

在弹出的图表类型中,PB可选择适合的折线图样式,并进行必要的调整和编辑。

pb dirlist 函数

pb dirlist 函数

pb dirlist 函数PB DirList函数详解及应用示例在编程开发中,经常会遇到需要查看某个目录下的文件列表的需求。

为了满足这个需求,PB (PowerBuilder) 提供了一个非常有用的内置函数,即DirList函数。

该函数可以返回指定目录下的文件列表,开发者可以根据自己的需要进行进一步的处理和展示。

本文将一步一步地介绍DirList函数的使用方法以及一些常见的应用示例。

1. DirList函数的基本介绍DirList函数用于返回指定目录下的文件列表。

其语法如下:csharpDirList (string sPathname, string sFileMask, int nAttribute)参数说明:- sPathname:要查询的目录的路径。

- sFileMask:文件名的匹配模式。

可以使用通配符*(表示任意字符)和?(表示一个任意字符)。

- nAttribute:需要过滤的文件属性。

可以使用以下常量之一:FILE_READONLY, FILE_HIDDEN, FILE_SYSTEM, FILE_VOLUME,FILE_DIRECTORY, FILE_ARCHIVE。

2. DirList函数的返回值DirList函数返回一个字符串数组,数组的每个元素是指定目录下满足条件的文件路径。

如果未找到任何文件,则返回一个空的字符串数组。

3. DirList函数的使用示例为了更好地理解DirList函数的使用方法,下面给出一些常见的示例。

3.1 获取指定目录下的所有文件列表下面的代码演示了如何使用DirList函数获取指定目录下的所有文件列表,并将其输出到控制台:csharpstring ls_directory = "C:\myfolder"string ls_files[]ls_files = DirList(ls_directory, "*", FILE_ARCHIVE)if upperbound(ls_files) = -1 thenMessagebox("提示", "该目录下没有文件")elsefor i = 1 to upperbound(ls_files)Messagebox("文件路径", ls_files[i])nextend if3.2 获取指定目录下的某类文件列表下面的代码演示了如何使用DirList函数获取指定目录下的某类文件列表(例如,所有以".txt" 结尾的文件),并将其输出到控制台:csharpstring ls_directory = "C:\myfolder"string ls_files[]ls_files = DirList(ls_directory, "*.txt", FILE_ARCHIVE)if upperbound(ls_files) = -1 thenMessagebox("提示", "该目录下没有符合条件的文件")elsefor i = 1 to upperbound(ls_files)Messagebox("文件路径", ls_files[i])nextend if3.3 获取指定目录下的文件列表(不包括子目录)下面的代码演示了如何使用DirList函数获取指定目录下的文件列表,但是不包括子目录中的文件,并将其输出到控制台:csharpstring ls_directory = "C:\myfolder"string ls_files[]ls_files = DirList(ls_directory, "*", FILE_ARCHIVE)if upperbound(ls_files) = -1 thenMessagebox("提示", "该目录下没有文件")elsefor i = 1 to upperbound(ls_files)判断是否为目录long ll_attributeFileGetInfo(ls_files[i], ll_attribute)if Not IsNull(ll_attribute) and bitand(ll_attribute,FILE_DIRECTORY) = 0 thenMessagebox("文件路径", ls_files[i])end ifnextend if通过以上示例,我们可以看到DirList函数的灵活性和强大功能,您可以根据自己的需求对返回的文件列表进行进一步处理或展示。

pb getenvironment函数使用

pb getenvironment函数使用

今天我们要探讨的主题是“pb getenvironment函数使用”。

在软件开发中,我们经常会遇到需要获取当前环境配置的情况,而pb getenvironment函数则是一个常用的方法。

在本文中,我们将深入探讨pb getenvironment函数的使用方法和相关知识。

1. 什么是pb getenvironment函数?pb getenvironment函数是一个用于获取当前环境变量的函数。

在软件开发中,环境变量通常用于存储配置信息,如数据库连接信息、API 密钥等。

通过pb getenvironment函数,我们可以轻松地获取这些配置信息,而不需要硬编码在代码中,从而提高了代码的灵活性和可维护性。

2. pb getenvironment函数的使用方法在使用pb getenvironment函数时,我们需要传入一个参数来指定要获取的环境变量名称。

如果我们想获取数据库连接信息,可以使用pb getenvironment("DB_CONNECTION")来获取。

这样一来,无论是在开发环境、测试环境还是生产环境,我们都可以通过设置不同的环境变量值来动态地获取相应的配置信息。

3. pb getenvironment函数的深度应用除了基本的使用方法外,pb getenvironment函数还可以在更复杂的场景中发挥作用。

我们可以通过在不同的环境中设置不同的环境变量来实现自动化部署和配置管理。

这样一来,我们可以在不同的环境中轻松地部署和管理我们的应用程序,而无需手动修改代码或配置文件。

4. 个人观点和理解在我看来,pb getenvironment函数是一个非常实用的工具,它能够帮助我们更好地管理和配置我们的应用程序。

通过合理地使用pb getenvironment函数,我们可以实现灵活的配置管理,从而更好地适应不同的环境和需求。

pb getenvironment函数还能够帮助我们简化部署流程,提高开发和运维效率。

pb sleep函数

pb sleep函数

pb sleep函数PB Sleep函数详解PB Sleep函数是PowerBasic编程语言中的一个重要函数,它可以使程序暂停一段时间,以便程序能够完成一些必要的操作。

本文将详细介绍PB Sleep函数的使用方法和注意事项。

1. PB Sleep函数的基本介绍PB Sleep函数是PowerBasic编程语言中的一个内置函数,其作用是使程序暂停一段时间。

该函数有一个参数,即需要暂停的毫秒数。

例如,如果需要让程序暂停1秒钟,可以调用PB Sleep(1000)。

2. PB Sleep函数的使用方法PB Sleep函数的使用方法非常简单,只需要在代码中调用该函数并传入需要暂停的毫秒数即可。

例如:'暂停1秒钟PB Sleep(1000)'暂停500毫秒PB Sleep(500)3. PB Sleep函数的注意事项虽然PB Sleep函数非常简单易用,但在使用过程中还需注意以下几点:3.1 精度问题由于计算机系统中定时器计数器不同步等原因,在使用PB Sleep函数时可能会出现精度问题。

例如,在某些系统上,如果传入参数为1,则实际上可能只会暂停500毫秒左右。

因此,在使用该函数时应尽量避免依赖于精确的时间控制。

3.2 非阻塞问题由于PB Sleep函数会使程序暂停,因此在某些情况下可能会导致程序变得非阻塞。

例如,在使用PB Sleep函数时,如果同时需要处理用户的输入事件,则可能会出现用户无法及时响应的情况。

因此,在使用该函数时应尽量避免影响程序的正常运行。

3.3 跨平台问题由于不同操作系统对定时器计数器等硬件设备的实现方式不同,因此在跨平台开发中需要注意PB Sleep函数可能存在的兼容性问题。

例如,在某些操作系统上,该函数可能无法正常工作或者工作效果不稳定。

4. PB Sleep函数的示例代码以下是一个简单的示例代码,演示了如何使用PB Sleep函数实现延迟执行:'延迟执行For i = 1 To 10PB Sleep(1000)Print "第" + Str$(i) + "秒"Next以上代码将会输出“第1秒”、“第2秒”、“第3秒”……“第10秒”,每个输出之间间隔1秒钟。

pb 自动调用resize函数

pb 自动调用resize函数

pb 自动调用resize函数【原创实用版】目录1.PB 自动调用 resize 函数的概念2.PB 自动调用 resize 函数的方法3.PB 自动调用 resize 函数的应用实例4.PB 自动调用 resize 函数的优点与局限性正文在计算机编程领域,PB(PowerBuilder)是一款广泛应用的快速开发工具,它具有可视化的用户界面设计和强大的数据处理能力。

在 PB 中,resize 函数是一种常用的函数,用于调整窗口的大小。

为了让 PB 窗口能够根据需要自动调整大小,我们可以使用 PB 自动调用 resize 函数的方法。

首先,我们需要了解 PB 自动调用 resize 函数的概念。

所谓自动调用,是指在特定条件下,PB 会自动执行 resize 函数,而不需要程序员显式地调用。

这样可以实现窗口的智能调整,提高用户体验。

接下来,我们来探讨 PB 自动调用 resize 函数的方法。

实现这一功能,可以通过创建自定义事件处理程序来完成。

具体操作步骤如下:1.打开 PB 开发环境,选择“事件”菜单,点击“新建事件”。

2.在弹出的“新建事件”对话框中,选择“窗口对象”作为事件源,并设置事件类型为“Resize”。

3.编写事件处理程序,调用 resize 函数,并设置相应的参数。

例如,可以按照以下格式编写:```FUNCTION Window_Resize:// 获取窗口对象的实例oWindow = OBJECT(g_window)// 判断窗口的宽度和高度是否发生变化bWidthChanged = (oWindow.Width!= oWindow.OldWidth) OR (oWindow.Height!= oWindow.OldHeight)// 如果窗口大小发生变化,则调用 resize 函数IF bWidthChanged THENoWindow.resize(oWindow.Width, oWindow.Height)END IFEND FUNCTION```通过上述方法,当窗口大小发生变化时,PB 会自动调用 resize 函数进行调整。

pb 自动调用resize函数

pb 自动调用resize函数

pb 自动调用resize函数【实用版】目录1.PB 自动调用 resize 函数的概念和原理2.PB 自动调用 resize 函数的实现方法3.PB 自动调用 resize 函数的应用场景和优势4.PB 自动调用 resize 函数的注意事项和潜在问题正文一、PB 自动调用 resize 函数的概念和原理PB(PowerBuilder)是一种高级的、面向对象的编程语言,广泛应用于各种企业级应用的开发。

在 PB 中,resize 函数是一种用于调整对象大小的函数,可以自动调整对象的尺寸以适应容器的大小。

当容器的大小发生变化时,PB 可以自动调用 resize 函数,以保持对象在容器中的位置和尺寸不变。

二、PB 自动调用 resize 函数的实现方法要实现 PB 自动调用 resize 函数,需要进行以下步骤:1.在 PB 中创建一个自定义对象,并编写 resize 函数。

这个函数应该能够接收对象的当前尺寸和容器的尺寸作为参数,并根据这些参数计算出新的尺寸。

2.在对象的属性中设置“自动调整大小”的属性为“真”。

这样,当容器的大小发生变化时,PB 就会自动调用 resize 函数。

3.将自定义对象放入容器中。

当容器的大小发生变化时,PB 会自动调用自定义对象的 resize 函数,以保持对象在容器中的位置和尺寸不变。

三、PB 自动调用 resize 函数的应用场景和优势PB 自动调用 resize 函数的应用场景包括:在窗口中显示图片、文本等元素时,当窗口大小发生变化时,需要自动调整元素的尺寸以适应新的窗口大小;在数据窗口中显示数据时,当数据显示的数量发生变化时,需要自动调整数据窗口的列宽和行高。

PB 自动调用 resize 函数的优势包括:1.可以提高开发效率,避免手动调整对象的尺寸。

2.可以提高用户体验,避免因为窗口大小变化导致的元素错位或显示不全的问题。

四、PB 自动调用 resize 函数的注意事项和潜在问题在使用 PB 自动调用 resize 函数时,需要注意以下几点:1.在编写 resize 函数时,需要考虑到各种可能的情况,如对象和容器的尺寸都是动态变化的等。

PB应用技巧

PB应用技巧

实现:结合程序大致说一下如何实现的
四、PB程序优化 四、PB程序优化
1. 取数据:点操作符与GetItem函数 例:取数据窗口中ship_no列的第一行的值 string ls_ship_no ls_ship_no = dw_main.ship_no[1] ls_ship_no = dw_main.GetItemString(1, ‘ship_no’) 2. 写数据:点操作符与SetItem函数 例:string ls_ship_no ls_ship_no = ‘0129’ dw_main.ship_no[1] = ls_ship_no dw_main.SetItem (1, ‘ship_no’, ls_ship_no) 3. 取数据窗口对象的属性:点操作符与Describe 例:string ls_col_typ ls_col_typ = dw_main.ship_no.coltype ls_col_typ = dw_main.describe(‘ship_no.coltype’) 4. 修改数据窗口对象的属性:点操作符与Modify 5. 取数据GetItem类函数与写数据SetItem函数 6. 取属性Describe与修改属性函数Modify函数
结合程序大致说一下如何实现的十、新ຫໍສະໝຸດ 库的构成结合程序大致说一下
一、不规则窗口或按钮的制作讲述示例 主要用到这几个API函数:
1.函数CreateRoundRectRgn: .函数 : 其PB声明为:FUNCTION ulong CreateRoundRectRgn(Long x1, Long y1, Long x2, Long y2, Long x3, Long y3) library "gdi32" 说明:创建一个圆角矩形,该矩形由X1,Y1-X2,Y2确定,并由X3,Y3确定的椭圆 描述圆角弧度 参数:X1,Y1 Long,矩形左上角的X,Y坐标 X2,Y2 Long,矩形右下角的X,Y坐标 X3 Long,圆角椭圆的宽。其范围从0(没有圆角)到矩形宽(全圆) Y3 Long,圆角椭圆的高。其范围从0(没有圆角)到矩形高(全圆) 2.函数 函数CreatePolygonRgn: 2.函数 : 其PB声明为:FUNCTION ulong CreatePolygonRgn (ref ws_position lppt[], int cPoints, int fnPolyFillMode ) Library "gdi32" 说明:创建一个由一系列点围成的区域。windows在需要时自动将最后点与第一点 相连以封闭多边形 参数:lpPoint POINTAPI,nCount个POINTAPI结构中的第一个POINTAPI结构 nCount Long,多边形的点数 nPolyFillMode Long,描述多边形填充模式。可为ALTERNATE 或 WINDING常 数。参考SetPolyFillMode函数对多边形填充模式的解释

pb中getrow函数

pb中getrow函数

pb中getrow函数
pb中的getrow函数是一个非常实用的函数,它可以用来获取表格中指定行的数据。

在使用该函数时,我们需要指定表格的名称和行号,函数会返回该行的所有数据。

在使用getrow函数时,需要注意以下几点:
1. 表格名称需要使用双引号括起来,例如:'table1'。

2. 行号从1开始,而不是0。

3. 如果指定的行号不存在,函数会返回空值。

4. 如果需要获取多行数据,可以使用循环语句来实现。

下面是一个示例代码,用于获取表格'table1'中第3行的数据: ```
datawindow ldw
integer li_row
string ls_data
ldw = this.DataWindow
li_row = 3
ls_data = ldw.GetRow('table1', li_row)
MessageBox('Row Data', ls_data)
```
在执行该代码时,会弹出一个消息框,显示第3行的数据。

如果需要获取多行数据,可以将代码放入循环语句中,依次获取每一行的数据。

总之,pb中的getrow函数是一个非常实用的函数,可以帮助我们快速获取表格中的数据,提高开发效率。

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

1 PB函数中游标的使用列:string ls_bjflddlb_1.reset() //清空下拉列表框内容DECLARE cur_type CURSOR FOR//定义游标select NEIRONGfrom xt_gycs //表where name='****'//条件using sqlca; //使用默认数据对象OPEN cur_type; //打开游标FETCH cur_type INTO :ls_bjfl;//将游标的值赋给变量do while sqlca.sqlcode=0 //判断游标执行是否成功(循环的意义是取完游标中的值)ddlb_1.additem(ls_bjfl);//如果成功,那么将值增加到下拉列表框中FETCH cur_type INTO :ls_bjfl;//继续取游标值loopclose cur_type;//关闭游标在使用游标的时候注意每次从游标中只能取一个值赋给变量,游标中的值是一个数组型的即游标里可能存在多个不同的值。

2 PB中提交数据的两种方式和判断方式1>删除时候直接用:delete from 表where guid(行)=:ls_guidk(变量)using sqlca;那么提交的时候的判断用:if sqlca.sqlcode=0 thencommit using sqlca;//提交数据elsemessagebox("提示!","数据库更新失败!失败原因:"+gtrans_w.sqlerrtext)rollback using sqlca;returnend if2>用data window删除:dw_name.deleterow(row) //row=0删除当前行(删除成功返回1,错误-1,为空返回null) 提交的时候的判断用:if dw_name.update()=1 thencommit using sqlca;//提交数据elsemessagebox("提示!","数据库更新失败!失败原因:"+gtrans_w.sqlerrtext)rollback using sqlca;returnend if总结:只要是对数据库直接操作的时候就用sqlca(事务对象).sqlcode=0来进行判断提交,如:delete,insert,update 等都是。

只要是对数据窗口进行的操作都用dw_name.update()=1 来进行提交,如:deleterow(),insertrow(),setitem()等都是。

3 trim删除字符串首部和尾部的空格eg:ls_name=trim(sle_1.text)4 拆分字符串操作lenw返回字符总个数,posw返回某字符在ls_guid(变量)中的第一次出现的位置(返回值是long型数字),leftw(字符,返回左边N个字符(返回值是一个字符串)) rightw(字符,返回右边N个字符)列ABCDE POSW(ABCDE,'CD')=4下面举得这个列子是个很有用的拆字符串的方法:string ls_newstr[] //定义数组int li_log,li_i,li_lenli_len=lenw('*') //返回字符的个数(在此返回1)li_log = posw(ls_guid,'*')//返回’*’在字符串ls_guid中的位置(long型数值)li_i = 1 //数组取值从1开始if li_log <= 0 then //假如字符串ls_guid中含有字符’*’那么li_log的值大于0,在此小于零即字符串中不含有’*’这个字符,所以返回原字符串ls_newstr[li_i] = ls_guidend ifdo while li_log > 0 //条件为true执行下面代码ls_newstr[li_i] = leftw(ls_guid,li_log - li_len)ls_guid= rightw(ls_guid,lenw(ls_guid) - li_log)li_i++li_log = posw(ls_guid,'*')if li_log <= 0 thenls_newstr[li_i] = ls_guidend ifloop//将数组中的值赋给变量ls_sjsjguid=ls_newstr[1]ls_mlflguid=ls_newstr[2]5.在ORACLE中直接提取用户登陆时间代码Date ld_dateSelect sysdate into: ld_date from xt_userUsing sqlca;Xt_user表是一张登陆表,存储用户的登陆信息(注意数据库中用SYSDA TE)6用string将日期格式化Ls_date=string(sle_1,’yyyy-mm-dd’)7在数据窗口中存入和提取数据获得当前行的行号:long ll_iLl_i=dw_name.getrow()存:Dw_name.object.字段[行号]=ls_guid(变量)取:sle_name.text=string(dw_name.object.字段[行号])或者用getitemstring()/number/date/time、setitem()8. 事件触发函数TriggerEvent ( )函数功能:TriggerEvent ( )函数能够触发任何对象的事件,并立即执行该事件的事件处理程序。

语法格式:objectname.TriggerEvent ( event {,word, long})其中: ①objectname是对象或控件名称,将触发该对象或控件的某个事件;②event是要触发的事件,其有效值既可以是标识PowerBuilder事件的TrigEvent枚举类型值(比如Clicked!、Modified!、或DoubleClicked!等)③word 和long是两个可选参数,触发事件后其值将分别保存到系统全局对象Message的WordParm和LongParm属性中。

例如:cb_OK.TriggerEvent(Clicked!)//触发命令按钮cb_OK的单击事件(Clicked),并立即执行该事件的事件处理程序。

TriggerEvent ( )很像函数调用,执行该函数时,程序进入被触发事件的事件处理程序中执行,执行完毕后返回到TriggerEvent ( )语句下面一行语句继续执行9 对数据窗口控件DW_name的基本操作//清除数据窗口控件dw_1数据窗口中的所有数据。

dw_1.reset( )//将数据窗口控件dw_1关联的数据窗口对象换成名为d_graphdw_1.dataobject="d_graph"//让数据窗口控件d_graph使用系统缺省的事务对象SQLCAdw_1.settransobject(SQLCA)//让数据窗口控件d_graph从数据库中提取数据。

dw_1.retrieve( )(注:在对数据窗口控件进行操作的时候一定不要忘记设置数据窗口对象,即dw_name.settransobject(sqlca) sqlca为数据对象名,系统默认sqlca)10.插入行和删除行操作1>插入行InsertRow( )InsertRow()函数在数据窗口的主缓冲区中插入一个空行,其语法格式为:dwcontrol.InsertRow ( row )其中:row是个长整数(long型),它指定插入行的插入位置。

功能:在数据窗口的主缓冲区中插入一个空行例如,我们想在数据窗口dw_1中插入一行,并让该行成为数据窗口的第10行,那么语句:dw_1.InsertRow ( 10 )即能完成这个任务。

row等于0时含义特殊,它表示在主缓冲区最后一行后面插入一行。

InsertRow( )函数执行成功时,返回一个long型值指示插入行的行号,执行失败时返回-1。

2>删除行DeleteRow( )DeleteRow()函数在数据窗口的主缓冲区(即显示在用户面前的数据中)中删除一行,语法格式为:语法格式:dwcontrol.DeleteRow ( row )其中:row为要删除行的行号,row等于0时删除当前行。

功能:删除数据窗口主缓冲区中一行记录。

DeleteRow ()函数执行成功时返回1,失败时返回-1。

例如:dw_1.DeleteRow ( 10)删除数据窗口控件dw_1中的第10行。

DeleteRow ()函数执行成功时返回1,失败时返回-1。

11.对数据窗口的行号操作1>得到当前行号GetRow ( )GetRow ( )函数返回当前行的行号。

语法格式为:dwcontrol.GetRow ( )功能:得到当前行的行号。

该函数返回一个long型值,表示当前行号。

如果没有选中任一行,则返回0,出错时返回-1。

2>设置某行为当前行SetRow ( )SetRow(row)函数把参数row指定的行设置成当前行。

语法格式为:dwcontrol.SetRow ( row )功能:把参数row指定的行设置成当前行。

设置成功时该函数返回1,否则返回-1。

如果row的值小于1或大于数据窗口中的总行数,则SetRow ( )函数执行失败。

SetRow ( )函数可能触发下述事件:I temChanged ItemErrorItemFocusChangedRowFocusChanged3>得到当前数据窗口中的记录行数RowCount( )语法格式:dwcontrol. RowCount( )例:按钮“下一条”可以改变数据窗口的当前行long ll_row, ll_rsmdw_1.SetRowFocusIndicator(Hand!) // 设置行光标指示为手。

Ll_rsm = dw_1.RowCount( )Ll_row = dw_1.GetRow( )if ll_row >= ll_rsm thenll_row = 1elsell_row ++end ifdw_1.SetRow( )注:为了清楚显示,可在窗口Open事件中加入dw_1.SetRowFocusIndicator(Hand!) //设置行光标指示为手。

12对数据窗口的列号操作1>得到当前列号GetColumn ( )GetColumn ( )返回当前列号。

语法格式为:dwcontrol.GetColumn ( )该函数返回一个integer型值,表示当前列号。

相关文档
最新文档