文档库 最新最全的文档下载
当前位置:文档库 › 数据窗口常用技巧

数据窗口常用技巧

数据窗口常用技巧
数据窗口常用技巧

数据窗口常用技巧

1、如何让存储文件目录的列,显示图片?

答:选择对应的column的display as picture属性为true

2、如何复制grid类型的所选择的行的数据到系统剪切板?

答:string ls_selected

ls_selected=dw_1.Object.DataWindow.Selected.Data

clipbord(ls_selected)

4、如何设置的DW底色?

在DW的editsource中改变color的值

5、如何将Grid风格改成自由格式?

在DW的editsource中将processing=1的1改为0

6、要新建一个表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_temp

10、如何设置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、如何获取指定名称的datawindowo b j e c t?

答: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.o b j e c t.datawindow.zoom=150 or dw_1.o b j e c t.datawindow.zoom=75

13、如何在已过滤后的数据基础上对datawindow进行过滤?

答:dw_1.setfilter(dw_1.describe("datawindow.table.filter")+your_join+your_new_filter)

dw_1.filter()

14、如何在datawindow中显示动态时间?

答:建立一个计算域,表达式为string(datetime(today(),now()),'yyyy年mm月dd日hh点mm 分ss秒'),同时设置datawindow的属性dw_1.Object.DataWindow.Timer_Interval=500

15、如何让带用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 = 115

dw_1.SetFocus()

dw_1.SetColumn( "dept_head_id" ) //设置当前dddw

keybd_event( VK_F4,0,0,0 ) // 按下F4键

keybd_event( VK_F4,0,2,0 ) // 释放F4键

18、如何打印datawindow的内容到文件中?

答:dw_1.o b j e c t.datawindow.print.fileName ="c:\temp.prn"

dw_1.print()

19、如何设置dddw的初始值?

答:dw_1.o b j e c t.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 1

22、如何在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.V alues=""

24、如何实现指定的column的字体旋转90度?

答:dw_1.o b j e c t.columnname.font.Escapement ="900"

25、如何获取datawindow的sql代码?

答:可以通过以下四种方法获取sql代码:

string szselect

szselect=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 lstorage

lstorage=long(dw_1.o b j e c t.datawindow.storage)

if lstorage>50000 then dbcancel()

28、如何连续在同一张纸打印两个数据窗口?

答: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()

29、如何设置datawindow分组后每个分组中的记录号?

答:建立一个计算列,expression为getrow() - first(getrow() for group 1)+1

30、如何实现在datawindow中只有新增的行,才可以编辑?

答:在所有的column的protect属性表达式中写入以下表达式:

if(isrownew(),'0','1')

31、除了循环以外,有没有更好的方法统计数据窗口中处于选中状态的行数?

一般习惯于使用循环来统计数据窗口中处于选中状态的行数,有没有更好的方法?其实此问题在应用上用处不大,讨论一下,活跃一下思维还是有好处的。

方法一:long ll_Selected ll_Selected = long(dw_1.describe("evaluate('sum( if(IsSelected(), 1, 0) for all)',1)"))

方法二:long ll_Selected ll_Selected = long(dw_1.describe("evaluate('count(IsSelected() for all)',1)"))

方法三:upperbound(dw_1.Object.Data.Selected)

32、问:怎么让PB只打印当前记录,是用Free格式制作的数据窗口!

---------------------------------------------------------------

答:

DataStore ldt_temp

long ll_Row , ll_Rows

ll_Rows = dw_XX.Rowcount()

If ll_Rows = 0 Then GoTo the_end

If ll_Rows = 1 Then

dw_XX.Print()

GoTo the_end

End if

dw_XX.SetRedraw(False)

ldt_temp = Create DataStore

ldt_temp.DataObject = dw_XX.DataObject

ll_Row = dw_XX.GetRow()

dw_XX.RowsMove(1 , ll_Rows , Primary! , ldt_temp , 1 , Primary!)

ldt_temp.RowsMove(ll_Row , ll_Row , Primary! , dw_XX , 1 , Primary!)

dw_XX.Print()

dw_XX.RowsMove(1 , 1 , Primary! , ldt_temp , ll_Row , Primary!)

ldt_temp.RowsMove(1 , ll_Rows , Primary! , dw_XX , 1 , Primary!)

Destroy ldt_temp

dw_XX.SetRedraw(True)

the_end:

// 只用将上述脚本拷入到打印部分即可,dw_XX为被打印的free型数据窗口,该方法可保证dw_XX中的数据在打印前后包括sort等属性均不发生任何改变,但效率较低,不宜用在

数据量太大的数据窗口中,当然,考虑到打印本身速度就比较慢,所以3000行数据是可以采用这种方法并让用户接受的。若在同一窗口上存在与dw_XX共享的grid数据窗口并且与dw_XX同时显示,则需要与dw_one一起SetRedraw()

38、字段如何自动换行的同时且自动高度?

答:将数据窗口中相应列的auto horz scroll 为不选中,选中autosize height 将detail的autosize height选中。在数据窗口retrieve 后调用下面函数即可uf_set_text(datawindow adw_content,string as_columns,boolean,ab_ignoreblank) /************************************************************* describe: 在数据窗口adw_content中,在as_columns中包含的列中插入空格args: as_columns 要操作的多个列,列间用逗号隔开*************************************************************/ if (not isvalid(adw_content)) or isnull(as_columns) or len(as_columns)<1 or isnull(ab_ignoreblank) then return -1 n_cst_string lnv_string string ls_column[] , ls_width ,as_source,as_replaced ,ls_temp int li_upperbound , li_width , li_column , li_fontWidth, li_counter long ll_rowcount , ll_row , ll_totalstep int li_yield lnv_string.of_parsetoarray(as_columns,',',ls_column) li_upperbound = upperbound(ls_column) ll_rowcount = adw_content.rowcount() if li_upperbound<1 or ll_rowcount<1 then return -1 openwithparm(w_waiting,this) ib_cancel = false iw_frame.enabled = false ll_totalstep = ll_rowcount * li_upperbound w_waiting.uf_register(ll_totalstep) for li_column = 1 to li_upperbound ls_width = adw_content.describe(ls_column[li_column]+".width") li_width = integer(ls_width) if ls_width='!' or ls_width='?' or li_width=0 then continue end if //ls_temp = adw_content.describe(ls_column[li_column]+".Font.property { = 'width' }") //messagebox(ls_column[li_column]+".Font.property { = 'width' }",ls_temp) //return 1 li_fontwidth = 27 li_counter = li_width / li_fontWidth for ll_row=1 to ll_rowcount if ib_cancel then iw_frame.enabled = true return 0 //pressed cancel button end if as_source = adw_content.getitemstring(ll_row,ls_column[li_column]) as_replaced = uf_insertstring(as_source,li_counter,' ',false) if as_replaced<>as_source then adw_content.setitem(ll_row,ls_column[li_column],as_replaced) end if w_waiting.uf_stepit() next next close(w_waiting) iw_frame.enabled = true return 1

39、如何使dw的列不可移动,不可调整列宽?

答:在datawindow的cilcked事件写if row=0 then return 1 end if

40.光标跳转到数据窗口的某一行某一列

dw_1.scrolltorow(ll_row) dw_1.setcolumn(ll_column)

41 如何使光标指向每页第一行?

long ll_firstrowonpage=long(dw_1.describe("datawindow.firstrowonpage"))

dw_1.scrolltorow(ll_firstrowonpage)

dw_1.setrow(ll_firstrowonpage)

42. Grid的窗口如何使第一列固定不动?

①选上data OBJECT的HSplitScroll属性②在constructor事件中:dw_1.Object.DataWindow.HorizontalScrollSplit=integer(dw_1.describe("#1.width")) //第一列的

宽度③在scrollhorizontal事件中:int i

if pane = 1 then

i = integer(this.OBJECT.datawindow.horizontalscrollposition2)

if i < 1 or isnull(i) then return

if scrollpos > 0 then

this.OBJECT.datawindow.horizontalScrollPosition = 0

end if

else

i = integer(this.Object.DataWindow.HorizontalScrollSplit)

if i < 1 or isnull(i) then return

if i > scrollpos then

this.OBJECT.datawindow.horizontalScrollPosition2 = i

end if

end if

43:数据窗口中如何实现用左右箭头实现焦点切换(tab ,shift+tab)在26楼

44:如何禁止修改grid数据窗口列宽度

答:在Grid数据窗口的Clicked事件中加入:

If row = 0 Then return 1

45:grid数据窗口改变列宽度事件:

event:pbm_lbuttondown,pbm_mousemvoe,pbm_lbuttonup

如果:

pbm_lbuttondown: 在数据窗口标题栏(getrow() = 0 and GetObjectAtPointer =你的标题)按下鼠标左键,记一个标志;

pbm_mousemvoe: 鼠标移动了,在记一个标志;

pbm_lbuttonup: 这时鼠标左键up,再判断最后一列的位置是否发生变化,如果有,写你的脚本。

46:如何判断数据窗口内容是否修改

if dw_wh.deletedcount() + dw_wh.modifiedcount() > 0 then

integer li_ret

li_ret = messagebox("注意","数据已经被修改,是否存盘?",Question!,Y esNoCancel!)

43-46技巧来自天新网https://www.wendangku.net/doc/a012037226.html,

47:如何得到数据窗口鼠标光标下的控件和行

建立一个自定义事件,事件号pbm_dwnmousemove,事件有参数row、dwo

48:如何改变GRID数据窗口列位置(新手常见)

先preview,然后在预览窗口拖动位置即可。

070411更新

49:数据窗口循环删除行,必须要从最后一行开始删除,如

for ll_row =dw_1.rowcount() to 1 step -1

//if 删除条件then

dw_1.deleterow(ll_row)

next

当然,也可以用do while 加上find函数实现

本文来自CSDN博客,转载请标明出处:https://www.wendangku.net/doc/a012037226.html,/bjash/archive/2007/07/21/1701695.aspx

1.RGB函数计算公式: 颜色值=(65536 * Blue) + (256 * Green) + (Red)

2.控件可拖动:

send(handle(this),274,61458,0)

3.如何用程序控制下拉子数据窗口的下拉和收起

用modify或者直接用dw_1.object.col1.dddw.showlist = true

4.检索参数有些不需要传入则传%.

5.如何屏蔽鼠标滚轮触发

在控件的other事件写

if message.number = 522 then return 1

6.得到数据窗口的语法:

string ls_dwsyntax

ls_dwsyntax=dw_1.describe("datawindow.syntax")

7.得到数据窗口中各列及标题:

long ll_count,i

string ls_value,ls_colname

ll_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")

next

8.在程序中动态设置初始值:

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))。在这个条件中,如果此列已改变,则显示红色字体,否则显示黑色字体。这个表达式主要用column_name < > column_name.Original比较当前列的值和原始列的值是否相同来达到判断的目的。

11.在数据窗口的clicked或doubleclicked事件中写上注释//可解决一些意外的bug!

12.如何屏蔽上下鍵触发

新建一个事件:id为pbm_dwnkey

IF KeyDown(KeyDownArrow!) OR KeyDown(KeyUpArrow!) Then

Return 1

End IF

13.你注意到没有,数据窗口画板里面,在写表达式的时候,试着用一些用户自定义的全局变量和全局函数,你会发现在某些特殊的场合,这个小窍门还是很有用的。

14.有些程序员在窗口的右键pop菜单里面写了很多代码,在菜单里面有很多w_windowname.controlname等等引用,如果这个窗口被继承,很容易就会出毛病,别忘了在菜单里面可以引用parentwindow哦,有了它我的pop菜单里面的代码和具体窗口无关,随便继承。当然强烈建议最好还是把所有和窗口相关的逻辑都转移到窗口的函数和事件中去,在pop菜单中触发调用。

15.whichdw.describe("evaluate('lookupdisplay("+colname+")',"+string(row)+")")

这个表达式可以得到指定列的显示值。(这个知识点有滥竽充数之嫌,但是一时间我真是想不起来太多的东西)

16.在数据窗口画板里面我们如果想要比较当前行和上一行或者下一行的值,怎么比较呢,哈哈,看这个就知道了

if ( yw_bc_circuit_dlcode = yw_bc_circuit_dlcode [-1] and yw_bc_circuit_dlname = yw_bc_circuit_dlname [-1] and yw_bc_circuit_xtno = yw_bc_circuit_xtno [-1] ,0,1)

这个表达式就是比较当前行和上一行是否相同的。其他的依此类推就行了。

17.两个结构相同的数据窗口之间快速复制数据

dw_1.object.data = dw_2.object.data

18.根据条件改变记录颜色

if ( Mod(getrow(),2)=0,rgb(0,255,255),rgb(255,255,255)) //奇偶行不同色

if (currentRow()=getrow(),rgb(0,255,255),rgb(255,255,255)) //当前行不同色

19.使窗口总位于所有打开窗口的最上面

w_main.SetPosition(Topmost!)

20.取数据窗口中列的总数

string ls_count

ls_count = dw_1.describe("datawindow.column.count")

21.取数据窗口中可列新的表名。

string ls_table

ls_table = dw_1.describe("datawindow.updatetable.table")

22.取数据窗口对象中列的名称及类型

string ls_cols[],ls_types[]

int li_count,i

li_count = integer(ls_count)

for i = 1 to li_count

ls_cols[i] = dw_1.describe("#"+string(i)+".name")

ls_types[i] = dw_1.describe("#"+string(i)+".coltype")

next

23.Case( dealintype WHEN 0 THEN RGB(254,251,235) WHEN 2 THEN rgb(254,251,235) ELSE RGB(0,0,255))

写道字段的protect中不仅仅是颜色改变的问题看看

24.dw.Object.col[n] : 直接获得数据窗口的col列第n 行的数据。

25.在做数据窗口时,我们有时候希望能够多一些字段来作一些特殊的用处,但是在数据窗口中又不能乱加字段,因为已有的字段必须是数据库中有的或者是他们的组合,呵呵,大家不妨看看这个sql用产生什么样的数据窗口

select colname1,colname2,1,''

from tablename

是不是多出了两个字段阿,一个是字符串字段,一个是数字字段

别忘了要convert syntax 哦

26.清空数组

string a[],b[]

a[1] = '1';a[1] = '2';a[1] = '3'

a = b//即可以清空a

27.只允许修改第n行的name列:

dw_1.modify("name.protect = '1 ~t if((getrow()=n),0,1)'")

28.让run程序和主程序一起关闭:

function ulong findwindowA(...).."user32.dll"

function long setparent(..."user32.dll"

handle = findwindowA(nul,win_title)

setparent(handle,handle(w_main))

29.取得某一天以前或以后n天的函数RelativeDate(date, n)

例:

取得当天前10天的日期

RelativeDate(Today(),10)

取得当天后10天的日期

RelativeDate(Today(),-10)

30.不想做排序窗口?调用PB自身的好了。

string ls_null

SetNull(ls_null)

dw_1.SetSort(ls_null)

dw_1.Sort()

31.调用PB自身的过滤窗口:

dw_1.SetFilter(ls_null)

dw_1.Filter()

32.增量输入定位代码或名称记录位置:

定义一个窗口,放一个SLE_1,在它的MODIFY程序中写:

long ll_find

string value0

value0=sle_1.text

if not (isnull(sle_1.text) or sle_1.text='') then

if left(sle_1.text,1)='0' or integer(sle_1.text)<>0 then //输入的为代码

ll_find=jwl_dmxz.dw_1.find('dm like "'+value0+'%"',1,jwl_dmxz.dw_1.rowcount())//jwl_dmxz为主窗口,dm为查询的字段名,这里

是代码。

else //输入的为名称

ll_find=jwl_dmxz.dw_1.find('mc like "'+value0+'%"',1,jwl_dmxz.dw_1.rowcount())// end if

if ll_find>0 then

jwl_dmxz.dw_1.scrolltorow(ll_find)

//为了避免首次目标记录为第一条,无法选中。

if ll_find=ll_find0 then

jwl_dmxz.dw_1.selectrow(ll_find,true)

elseif ll_find<>ll_find0 then

jwl_dmxz.dw_1.selectrow(ll_find,true)

jwl_dmxz.dw_1.selectrow(ll_find0,false)

ll_find0=ll_find

end if

end if

end if

33.然后在查询窗口中的TIMER事件中写:

timer(0.05)

sle_1.triggerevent(modified!)

34.判断计算器是否存在:

string is_fileExists

boolean is_Exists

is_fileExists='c:\windows\calc.exe'

is_Exists=fileExists(is_fileExists)

if is_Exists then

run("c:\windows\calc.exe")

else

messagebox("提示信息","本机的WINDOWS没有计算器!",stopsign!)

end if

35.得到硬盘序例号

String ls_Rootpath, ls_volumnename ,ls_return,softpath

GetCurrentDirectoryA(256,softpath)

softpath=left(softpath,2)

if softpath='C:' then

ls_Rootpath = 'D:' // 指定要得到序列号的硬盘,

// 一般情况都是C盘,除非你能保证用户存在其它逻辑盘或物理盘

else

ls_Rootpath = 'C:'

end if

ls_volumnename = Space(256) // 分配足够的空间,下同

Ulong lul_V olumeNameSize

lul_V olumeNameSize = 256

Ulong lul_V olumeSerialNumber, lul_MaximumComponentLength, lul_FileSystemFlags

lul_MaximumComponentLength = 256

String ls_FileSystemNameBuffer

ls_FileSystemNameBuffer = space(256)

Ulong lul_FileSystemNameSize

lul_FileSystemNameSize = 256

int i

long ls_num,ls_gnum,ls_dnum

i=GetV olumeInformation(ls_Rootpath, ls_volumnename, lul_V olumeNameSize, lul_V olumeSerialNumber, lul_MaximumComponentLength, lul_FileSystemFlags, ls_FileSystemNameBuffer, lul_FileSystemNameSize)

ls_return=string(lul_V olumeSerialNumber)

return ls_return

本文来自CSDN博客,转载请标明出处:https://www.wendangku.net/doc/a012037226.html,/lzp_lrp/archive/2009/04/30/4135067.aspx

pb数据窗口常用代码

一、连接数据库 连接数据库也就是指定事务对象。PowerBuilder提供了两个函数:SetTrans()和SetTransObject()。 语法格式: dw_control.SetTrans(TransactionObject) dw_control.SetTransObject(TransactionObject) 其中,dw_control是所使用的数据窗口控件,transactionObject是所要指定的事务对象。 这两个函数有一个重要的区别就是在使用SetTrans()函数时,用户不需做任何数据初始化或事务对象初始化工作。用户只需要在这里填充一个事务对象,PB 就会自动完成对该事物对象的初始化以及和数据库连接的工作。而使用SetTransObject()函数时,用户必须首先把所用的事务对象连接到数据库上。但是,这并不意味着SetTrans()函数比SetTransObject()函数更好,使用SetTrans()函数时,每调用一次函数必须连接一次数据库,因为这个函数在每个事务处理的末端都会执行Disconnect语句。与此相反,使用SetTransObject()函数可以为数据库维持一个开放性的连接。因此在一般情况下,为了提高效率,总是采用SetTransObject()函数。 这两个函数都是成功时返回1,发生错误时返回-1。 二、检索数据 用于检索数据的函数只有一个,就是Retrieve()函数。 语法格式: dw_control.Retrieve() 如果数据窗口控件上的数据窗口对象是有检索参数的,就要在这个函数调用时加上检索参数。而且检索参数必须和数据窗口对象中定义顺序一致。 此函数返回一个长整型的数据,代表检索出来的数据行数。如果发生错误,将返回-1。 三、更新数据 当用户对数据窗口对象内的数据修改后,想把这些修改反映到数据库中去时,必须使用Update()函数。 语法格式: dw_control.Update() 这个更新可能成功,也可能失败。一般在这个函数被调用之后,总是要做一个检查。请看下面的例子: Int li_return

十个Word文档经典实用小技巧

1、Word表格玩自动填充 在Word表格里选中要填入相同内容的单元格,单击“格式→项目符号和编号”,进入“编号”选项卡,选择任意一种样式,单击“自定义”按钮,在“自定义编号列表”窗口中“编号格式”栏内输入要填充的内容,在“编号样式”栏内选择“无”,依次单击“确定”退出后即可。 2、Word中巧输星期 单击“格式→项目符号和编号”,进入“编号”选项卡,单击“自定义”按钮,在“编号样式”栏内选择“一、二、三”等样式,在“编号格式”栏内的“一”前输入“星期”即可。 3、粘贴网页内容 在Word中粘贴网页,只须在网页中复制内容,切换到Word中,单击“粘贴”按钮,网页中所有内容就会原样复制到Word中,这时在复制内容的右下角会出现一个“粘贴选项”按钮,单击按钮右侧的黑三角符号,弹出一个菜单,选择“仅保留文本”即可。 4、快速转换大写金额 在Word中输入12345,然后点击“插入→数字”命令,在弹出的“数字”对话框“数字类型”栏里选择中文数字版式“壹、贰、叁……”单击“确定”,则12345就变成中文数字“壹万贰仟叁佰肆拾伍”。 5、去掉自动编号功能

点击“工具→自动更正选项”,打开“自动更正”对话框,进入“键入时自动套用格式”选项卡,找到“键入时自动应用”组中的“自动编号列表”复选项,取消前面的钩即可。这样就可以去掉那些“烦心”的自动编号功能。同样也可去除“画布”,方法是:点击“工具→选项”,进入“常规”选项卡,去除“插入‘自选图形’时自动创建绘图画布”复选框上的钩即可。 6、画出不打折的直线 在Word中如果想画水平、垂直或“15、30、45、75”角的直线,只须在固定一个端点后,按住Shift键,上下拖动鼠标,将会出现上述几种直线选择,位置调整合适后松开Shift键即可。 7、加减乘除松输入 i和I在中文输入法智能ABC中有着特殊的意义,它们可以作为输入小写和大写中文数字的前导字符,还可以用来将数字运算符号变为相应的汉字,在i或I后面输入+、—、*、/,按回车键或空格键,即可得到与之对应的汉字加、减、乘、除。 8、部分加粗表格线 在Word中需要加粗某一条或几条表格线时,可以先在工具栏选项中点击“表格和边框”按钮,然后在“表格和边框”窗口选定“线型”与“线宽”,再点击“绘制表格”按钮,最后在欲加粗的表格线上从头到尾画上一笔即可。 9、打造整齐的Word公式

PowerBuilder数据窗口技巧

PB数据窗口技巧 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. 注意: 连在一起的汉字(中间没有标点或空格分隔), 系统将认为是一个单词, 不 会自动进行折行.

数据窗口事件处理技术

10.6 数据窗口事件处理技术 在PowerBuilder中,事件有两种,一种是PowerBuilder在语句描绘器中为每一个标准控件设定的一些常用事件,一般的编程人员基于这些事件就可以完成常见的操作。但是有些情况下,这些事件并不能完全满足应用程序的要求,这时,就需要使用另一种事件——自定义的用户事件。 一般的用户定义事件是与Windows消息对应的事件,这种事件是在应用程序接收到Windows消息后触发的,另外一种用户定义事件则是没有对应的事件,这类事件要由用户在程序代码中触发。 但是,数据窗口控件的自定义消息又有所不同。因为数据窗口不是标准窗口对象,因此它们所提供的消息不是标准的Windows API消息,这些消息有自己的事件。 前面10.2.2节已经对数据窗口控件的常用事件做了总结,对于用户自定义事件,如果是在代码中触发事件,使用起来也比较容易。只要在代码中适当的位置使用triggerevent函数就可以了。因此本节主要讲述如何使用由PowerBuilder数据窗口所提供的消息触发用户自定义事件。 10.6.1 数据窗口消息的含义 PowerBuilder为数据窗口提供了23种消息,为便于读者参考,下面列出了各消息的名称和功能: ● PBm_dwclosedropdown:关闭下拉式数据窗口。

● PBm_dwscrollend:在数据窗口中卷滚到最后一行。 ● PBm_dwscrdlhome:在数据窗口中卷滚到第一行。 ● PBm_dwscrolllineend:卷滚到当前行的行尾(水平方向)。 ● PBm_dwscrolllinehome:卷滚到当前行的行首(水平方向)。 ● PBm_dwnbacktabout:即将通过Shift+Tab组合键离开该控件。 ● PBm_d wnchanging:控件即将被改变。 ● PBm_dwndropdown:下拉列表框的下拉部分即将可见。 ● PBm_dwngraphcreate:即将创建图形。 ● PBm_dwnitemchangefocus:数据窗口控件中当前项的聚焦改变。 ● PBm_dwnitemvalidationerror:对当前项的修改引起了一个合法性检查错误。 ● PBm_dwnkey:有键被按下。使用KeyDown()处理键盘值。 ● PBm_dwnlbuttondown:鼠标左键被按下。 ● PBm_d wnlbuttonup:鼠标左键被松开。 ● PBm_dwnmbuttonclk:鼠标中键单击。 ● PBm_dwnmbuttondbclk:鼠标中键双击。 ● PBm_dwnmousemove:鼠标移动。 ● PBm_dwnprintmarginchange:打印边界被改变。 ● PBm_dwnprocessenter:Enter键被按下。 ● PBm_dwnrowchange:数据窗口中的聚焦从一行转向另一行。 ● PBm_dwntabdownout:用户在数据窗口的最后一行按下了下箭头键。

个人总结的一些WORD使用小技巧

Word 使用技巧 1、使用插入数字功能插入大写数字。柒拾柒万壹仟壹佰肆拾壹 2、将姓名按笔划顺序排序王健王云平刘兴盛何平候喜强徐 冬 3、快速插入日期和时间 插入日期:ALT + SHIFT + D 插入 时间:ALT +SHIFT +T 2019-09-14。17:46:52 4、使日期和时间自动更新 按下CTRL +SHIFT +F9 后日期和时间变为文本,不再更新。2006-12-21 5:46:52 下午 5、使用矽以上数字。点击工具栏上带圈数字即可。 6、多次使用格式刷。其实只要双击“格式刷”按钮,用户可以将选定格式复制到多个位置。再次单击格式刷或按下“ Esc”即可关闭格式刷。 7、使用拖放方式复制网页内容。使用Windows 最常见的拖放功能,选中网页上的内容,按住鼠标左键不放,拖到Word 窗口,然后释放鼠标左键,网页的内容就被完整复制了。 8、使光标每次移动一个段落。在编辑Word 文档的时候,如果需要在段落之间移动,可以使用Word 提供的一个快捷键只需按住

Ctrl 键,然后再按下方向键中的向上或向下键,这样就可以使光标依次向上或向下移动一个段落。 9、巧用“选择性粘贴”中的“无格式文本。 10、快速显示文字格式。按下Shift+F1 组合键,然后 单击需要查询格式的文字。如果不需要文字格式的显示,可以按下Esc 键取消。 11、在Word 中用另类方法复制文本。选定需要复制的文字,按下Shift+F2 组合键,这时状态栏上会显示“复制到何处”的字样,然后将光标移动到目标处并按下回车键即可完成复制。 12、WORD 字体随身携带。要想即不在另一台电脑上安装该字体,又要正确打印出该文档,我们可以这样做:执行工具T选项”命令,打开选项”对话框,点击保存” 标签,选中“嵌入TrueType 字体”,这样就可以把创建此文档所用的TrueType 字体与文档保存在一起,当在另一台电脑上打开此文档时,仍可用这些字体来查看和打印文档。注意:①如果想实现此目的,必须对该文档使用一种新的样式;②你想嵌入的字体只能是True Type字体; ③这样的文档容量比较大,为了减小文档的体积,可同时选中“只嵌入所用字符”选项;④在另一台电脑上打开该文档时,不能对嵌入的字体文本进行修改,否则会使嵌入的字体丢失。 13、快速输入特定的短语。我们在用WORD2000/XP 进行文档

pb数据窗口技巧38个 收藏

pb数据窗口技巧38个收藏 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按钮, 保存所做的修改.

WORD使用技巧大全(史上最强哦)

答:分节,每节可以设置不同的页眉。文件——页面设置——版式——页眉和页脚——首页不同 2.问:请问word中怎样让每一章用不同的页眉?怎么我现在只能用一个页眉,一改就全部改了?答:在插入分隔符里,选插入分节符,可以选连续的那个,然后下一页改页眉前,按一下“同前”钮,再做的改动就不影响前面的了。简言之,分节符使得它们独立了。这个工具栏上的“同前”按钮就显示在工具栏上,不过是图标的形式,把光标移到上面就显示出”同前“两个字来了 3.问:如何合并两个WORD文档,不同的页眉需要先写两个文件,然后合并,如何做?答:页眉设置中,选择奇偶页不同/与前不同等选项 4.问:WORD编辑页眉设置,如何实现奇偶页不同? 比如:单页浙江大学学位论文,这一个容易设;双页:(每章标题),这一个有什么技巧啊 ?答:插入节分隔符,与前节设置相同去掉,再设置奇偶页不同 5.问:怎样使WORD文档只有第一页没有页眉,页脚?答:页面设置-页眉和页脚,选首页不同,然后选中首页页眉中的小箭头,格式-边框和底纹,选择无,这个只要在“视图”——“页眉页脚”,其中的页面设置里,不要整个文档,就可以看到一个“同前”的标志,不选,前后的设置情况就不同了。 6.问:如何从第三页起设置页眉?答:在第二页末插入分节符,在第三页的页眉格式中去掉同前节,如果第一、二页还有页眉,把它设置成正文就可以了 ●在新建文档中,菜单—视图—页脚—插入页码—页码格式—起始页码为0,确定; ●菜单—文件—页面设置—版式—首页不同,确定;

●将光标放到第一页末,菜单—文件—页面设置—版式—首页不同—应用于插入点之后,确定。第2步与第三步差别在于第2步应用于整篇文档,第3步应用于插入点之后。这样,做两次首页不同以后,页码从第三页开始从1编号,完成。 7.问:WORD页眉自动出现一根直线,请问怎么处理?答:格式从“页眉”改为“清除格式”,就在“格式”快捷工具栏最左边;选中页眉文字和箭头,格式-边框和底纹-设置选无 8.问:页眉一般是---------,上面写上题目或者其它,想做的是把这根线变为双线,WORD中修改页眉的那根线怎么改成双线的?答:按以下步骤操作去做: ●选中页眉的文字,包括最后面的箭头 ●格式-边框和底纹 ●选线性为双线的 ●在预览里,点击左下小方块,预览的图形会出现双线 ●确定▲上面和下面自己可以设置,点击在预览周围的四个小方块,页眉线就可以在不同的位置 9.问:Word中的脚注如何删除?把正文相应的符号删除,内容可以删除,但最后那个格式还在,应该怎么办?答:步骤如下:1、切换到普通视图,菜单中“视图”——“脚注”,这时最下方出现了尾注的编辑栏。2、在尾注的下拉菜单中选择“尾注分隔符”,这时那条短横线出现了,选中它,删除。3、再在下拉菜单中选择“尾注延续分隔符”,这是那条长横线出现了,选中它,删除。4、切换回到页面视图,尾注和脚注应该都是一样的

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中定义大于零的值就有定时器(可以精确到毫秒),有了这个定时器就可以实现动画了。比如要改变某字段的背景颜色,可设 ackgound.color=RGB(Integer(Right(string(now(),'hhmmssf'),1))*256/10,In teger(Right(string(now(),'hhmmssf'),1))*256/10,0) 当然,您不仅可以改变背景颜色,而且可以改变字体等等任何属

word使用技巧大全

1 常用快捷键 Ctrl+C 复制所选文本或对象 Ctrl+C连续2次调出剪切板 Ctrl+X 剪切所选文本或对象 Ctrl+V 粘贴文本或对象 Ctrl+] 逐磅增大字号 Ctrl+[ 逐磅减小字号 Shift+Enter 换行符 Ctrl+Enter 分页符 Ctrl+A 包含整篇文档 F1 显示当前程序或者winodws的帮助内容。 F2 选中一个文件“重命名” F3 在桌面时打开“查找:所有文件”对话框 ALT+TAB 切换当前程序 ALT+ESC 切换当前程序 PRINTSCREEN 将当前屏幕以图象方式拷贝到剪贴板ALT+PRINTSCREEN 将当前活动程序窗口以图象方式拷贝到剪贴板 winodws键或CTRL+ESC 打开开始菜单 Windows徽标键+TAB键在任务栏上的按钮间循环 Windows徽标键+E键启动“我的电脑” Windows徽标键+D键快速显示桌面 Windows徽标键+R键执行“运行”命令 Windows徽标键+F键搜索文件或者文件夹 Windows徽标键+F1键显示Windows帮助 Windows徽标+PRINTSCREEN 将屏幕复制到剪贴板(包括鼠标光标)Windows徽标+SCROLLLOCK 将屏幕复制到剪贴板(不包括鼠标光标)

2 图形技巧 2.1 绘制图形的技巧 2.1.1 画直线 画直线的同时按着Shift键,将可以画出15°、30°、45°、60°、75°等具有特殊角度的直线。按住Ctrl键可画出自中间向两侧延伸的直线,同时按住这两个键则可画出自中间向两侧延伸的具有特殊角度的直线。 2.1.2 画弧 按住Shift键的同时可画出45度圆弧(画圆弧方法:打开绘图工具栏,单击“自选图形/基本形状/弧形”),按住Ctrl键可画出自中间向两侧延伸的圆弧,同时按住这两个键则可画出自中间向两侧延伸的45°圆弧,按住Alt键可画出一端固定的圆弧,同时按住Ctrl和Alt键则可画出一端固定的45°圆弧。 2.1.3 画矩形 按住Shift键可绘制出一个特殊的矩形——正方形,按住Ctrl键可绘出自中间向四周延伸的矩形,同时按住这两个键则可画出自中间向四周延伸的正方形。画圆时与此类似。 由此可见结合键盘画图的奇妙效果。 2.2 选择图形的技巧 如果需要选择部分图形,则可在按住Shift键的同时依次进行选择或单击绘图工具栏上的“选择对象”按钮,然后用鼠标画出一个框将所需要的图形罩住即可。 如果是各图形层叠在一起的情况,则可以首先选中最上面的图形,然后按Tab键或“Shift+Tab”组合键依次选择即可。 小提示:如果你发现某图形选择起来很困难(鼠标变不成十字形状),这种情况常发生在多个图形混杂在一起的情况,同样点击“选择对象”按钮后你会发现选择很容易。

PB数据窗口使用绝对技巧与方法

原文地址:PB数据窗口绝对技巧作者:千人急 1、如何让存储文件目录的列,显示图片? 答:选择对应的column的display as picture属性为true 2、如何复制grid类型的所选择的行的数据到系统剪切板? 答:string ls_selected ls_selected=dw_1.Object.DataWindow.Selected.Data clipbord(ls_selected) 4、如何设置的DW底色? 在DW的editsource中改变color的值 5、如何将Grid风格改成自由格式? 在DW的editsource中将processing=1的1改为0 6、要新建一个表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的某一列为空?

第十六讲 数据窗口的显示风格

数据窗口的魔力之一就在于它能够以多种多样的显示风格(Presentationstyle)展现数据、表现数据。 16.1数据窗口的显示风格 列表(Tabular)风格 常用于数据输入,有时也用于生成报表。 表格风格 既可用于数据输入,又能作为报表输出。 自由格式(Freeform) 自由格式的数据窗口一屏显示一条记录,常用于单记录输入。 标签(Label)风格 标签风格的数据窗口以标签形式显示每行数据,用它可以制作各种标签。 分栏(N-Up)风格 分栏风格能够在一行中显示多条记录。 分组(Group)风格 在这种风格下,数据被分成一个一个的组,组中可以带有统计数据。 交叉列表(Crosstab)风格 交叉列表风格支持按行和/或按列分析数据。 统计图(Graph)风格 统计图风格的数据窗口以统计图的形式表现数据。 OLE 2.0风格 OLE 2.0风格的数据窗口既能够显示非数据库数据(比如Word文档),也能够显示数据库中的BLOB(二进制大对象)列。 超文本(RichText)风格 超文本风格的数据窗口能够处理超文本数据,它可以利用Windows系统的字体、字型、颜色等属性以丰富多采的形式显示与编辑超文本,并且能够将数据库中的数据插入到超文本文档中。 复合(Composite)风格 复合风格的数据窗口没有自己的数据源,它通过特殊方式将其它数据窗口对象组合起来,从而创建形式更复杂的数据窗口。 16.2数据窗口的布局结构 页眉区(Header) 页眉区主要用来放置每页或每屏顶部显示的信息。 组标题区(Group Header) 在组标题区通常放置每组数据前出现的信息。 细目区(Detail) 细目区主要用于显示查询到的数据,数据窗口会根据窗口或报表页的大小尽可能多地安排细目区。 组尾区(Group Trailer) 该区中通常放置每组数据的统计与汇总信息。每个分组只有一个组尾区。 汇总区(Summary)

WORD使用技巧大全(史上最强哦)

1.问:WORD里边怎样设置每页不同的页眉?如何使不同的章节显示的页眉不同? 答:分节,每节可以设置不同的页眉。文件——页面设置——版式——页眉和页脚——首页不同 2.问:请问word中怎样让每一章用不同的页眉?怎么我现在只能用一个页眉,一改就全部改了?答:在插入分隔符里,选插入分节符,可以选连续的那个,然后下一页改页眉前,按一下“同前”钮,再做的改动就不影响前面的了。简言之,分节符使得它们独立了。这个工具栏上的“同前”按钮就显示在工具栏上,不过是图标的形式,把光标移到上面就显示出”同前“两个字来了 3.问:如何合并两个WORD文档,不同的页眉需要先写两个文件,然后合并,如何做?答:页眉设置中,选择奇偶页不同/与前不同等选项 4.问:WORD编辑页眉设置,如何实现奇偶页不同? 比如:单页浙江大学学位论文,这一个容易设;双页:(每章标题),这一个有什么技巧啊?答:插入节分隔符,与前节设置相同去掉,再设置奇偶页不同 5.问:怎样使WORD文档只有第一页没有页眉,页脚?答:页面设置-页眉和页脚,选首页不同,然后选中首页页眉中的小箭头,格式-边框和底纹,选择无,这个只要在“视图”——“页眉页脚”,其中的页面设置里,不要整个文档,就可以看到一个“同前”的标志,不选,前后的设置情况就不同了。 6.问:如何从第三页起设置页眉?答:在第二页末插入分节符,在第三页的页眉格式中去掉同前节,如果第一、二页还有页眉,把它设置成正文就可以了

●在新建文档中,菜单—视图—页脚—插入页码—页码格式—起始页码为0,确定; ●菜单—文件—页面设置—版式—首页不同,确定; ●将光标放到第一页末,菜单—文件—页面设置—版式—首页不同—应用于插入点之后,确定。第2步与第三步差别在于第2步应用于整篇文档,第3步应用于插入点之后。这样,做两次首页不同以后,页码从第三页开始从1编号,完成。 7.问:WORD页眉自动出现一根直线,请问怎么处理?答:格式从“页眉”改为“清除格式”,就在“格式”快捷工具栏最左边;选中页眉文字和箭头,格式-边框和底纹-设置选无 8.问:页眉一般是---------,上面写上题目或者其它,想做的是把这根线变为双线,WORD中修改页眉的那根线怎么改成双线的?答:按以下步骤操作去做: ●选中页眉的文字,包括最后面的箭头 ●格式-边框和底纹 ●选线性为双线的 ●在预览里,点击左下小方块,预览的图形会出现双线 ●确定▲上面和下面自己可以设置,点击在预览周围的四个小方块,页眉线就可以在不同的位置

PB数据窗口绝对技巧

PB数据窗口绝对技巧 1、如何让存储文件目录的列,显示图片? 选择对应的column的display as picture属性为true。 2、如何复制grid类型的所选择的行的数据到系统剪切板? string ls_selected ls_selected=dw_1.Object.DataWindow.Selected.Data clipbord(ls_selected) 3:如何改变GRID数据窗口列位置(新手常见) 先preview,然后在预览窗口拖动位置即可。 4、如何设置DW的底色? 在DW的editsource中改变color的值。 5、如何将Grid风格改成自由格式? 在DW的editsource中将processing=1的1改为0。 6、要新建一个表A但风格和现有表B风格一样,怎么将A表快速设置成表B风格? 复制B表C,在C表的DW中的editsource中将表名和字段名改成A表的,即可。 7、如何实现gird风格的datawindow的多栏表头? 添加text到header带区,并设置band属性为foreground保存,edit source修改tex t的x和width属性表达式如下: x="100~t integer(describe('firstcol.x')" width="100~tinteger(describe('lastcol.x')) - int eger(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_temp 10、如何设置datawindow的单双行不同颜色间隔? 在detail带区的color属性表达式中写上if(mod (getrow(),2)=1 ,rgb(255,0,0),rgb(0,25 5,0)),如果是当前行以第三种颜色表示,表达式如下:if(getrow()=current(), rgb(255,0,0),if(m od(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的打印大小?

PB动态数据窗口

[PB]-动态数据窗口 〓创建动态数据窗口 若要动态创建数据窗口,需要使用函数Create,该函数的语法如下: dw_1.Create(syntax{,errorbuffer}) 其中,dw_1是数据窗口控件的名称,该数据窗口控件要和新创建的数据窗口对象相关联。syntax是用来描述创建数据窗口对象的确切语法的字符串。errorburrer是可选项,用来保存创建数据窗口对象过程中发生的错误信息。如果不指定该参数,就会在发生错误时显示一个错误信息的提示窗口。如果创建成功该函数返回1,否则返回-1,如果参数为null则函数返回null。 由于Create函数成功创建数据窗口对象后,要改变dw_1数据窗口控件所关联的数据窗口对象,因此,需要重新为数据窗口设置事务对象(使用函数SetTransObject或者SetTrans)。 获取创建数据窗口的语法有多种方法,可以对相关的SQL语句使用SyntaxFromSQL函数,也可以使用对已经创建好的数据窗口对象使用LibraryExport函数。因为创建数据窗口的语法比较复杂,即使使用了LibraryExport输出已有数据窗口对象的语法,操作起来也相当费劲。所以,更为通用的是前面一种方法。这种方法配合一定的编程技巧,让用户指定要创建的数据窗口对象的SQL语句,使用户有更多的自由和选择。使用这种方法,肯定用到函数 SyntaxFromSQL,它的语法是: transaction.SyntaxFromSQL(SQLselect,presetation,err) 其中,transaction是事务对象的名称,该事务对象必须正确地设置了相关参数,并且和数据库建立了联结。SQLselect是用来创建数据窗口的SQL语句,为String 类型。presentation是要创建的数据窗口对象的显示风格,为String类型。简单的格式是: Style(Type=presentationstyle) 其中Style和Type都是保留字,presentationstyle的取值有Tabular,Grid,Form,Graph,Group,Label和Nup,其中Tabular是缺省类型。err是用来保存函数执行时出错信息的string类型的变量。 *关于函数SyntaxFromSQL的参数presentation可以有更复杂的语法。其格式是:"Style ( Type=value property=value ... ) DataWindow ( property=value ... ) Column ( property=value ... ) Group groupby_colnum1 Fby_colnum2 ... property ... ) Text property=value ... ) Title ( 'titlestring' )" 使用这样的格式,可以详细定义要创建的数据窗口对象的外观。 〓在很多情况下都需要一个数据窗口控件和不同的数据窗口对象关联。可以通过修改数据窗口控件的dataobject属性来实现。在修改了这一特性之后,数据窗口控件就不再具有与它相关的事务处理对象了,应该再重新为数据窗口设置事务

十个绝对经典的word排版小技巧+WORD经典快捷100招

十个word排版小技巧,轻松做好文档! 一、快速定位到上次编辑位置 用WPS编辑文件时有一个特点,就是当你下次打开一WPS文件时,光标会自动定位到你上一次存盘时的位置。不过,Word却没有直接提供这个功能,但是,当我们在打开Word文件后,如果按下Shift+F5键您就会发现光标已经快速定位到你上一次编辑的位置了。 小提示:其实Shift+F5的作用是定位到Word最后三次编辑的位置,即Word会记录下一篇文档最近三次编辑文字的位置,可以重复按下Shift+F5键,并在三次编辑位置之间循环,当然按一下Shift+F5就会定位到上一次编辑时的位置了。 二、快速插入当前日期或时间 有时写完一篇文章,觉得有必要在文章的末尾插入系统的当前日期或时间,一般人是通过选择菜单来实现的。其实我们可以按Alt+Shift+D 键来插入系统日期,而按下Alt+Shift+T组合键则插入系统当前时间,很快! 三、快速多次使用格式刷 Word中提供了快速多次复制格式的方法:双击格式刷,你可以将选定格式复制到多个位置,再次单击格式刷或按下Esc键即可关闭格式刷。 四、快速打印多页表格标题 选中表格的主题行,选择"表格"菜单下的"标题行重复"复选框,当你预览或打印文件时,你就会发现每一页的表格都有标题了,当然使用这个技巧的前提是表格必须是自动分页的。 五、快速将文本提升为标题 首先将光标定位至待提升为标题的文本,当按Alt+Shift+←键,可把文本提升为标题,且样式为标题1,再连续按Alt+Shift+→键,可将

标题1降低为标题2、标题3……标题9。 六、快速改变文本字号 Word的字号下拉菜单中,中文字号为八号到初号,英文字号为5磅到72磅,这对于一般的办公人员来说,当然已经绰绰有余了。但在一些特殊情况下,比如打印海报或机关宣传墙报时常常要用到更大的字体,操作起来就有些麻烦了。其实,我们完全也可以快速改变文本的字号:先在Word中选中相关汉字,然后用鼠标单击一下工具栏上的字号下拉列表框,直接键入数值,即可快速改变您的字体大小。而且这个技巧在Excel和WPS2000/Office中同样适用。 小提示:其实,小编还有两种快速更改Word文本字号的方法: 1.选中文字后,按下Ctrl+Shift+>键,以10磅为一级快速增大所选定文字字号,而按下Ctrl+Shift+键> 2.选中文字后,按Ctrl+]键逐磅增大所选文字,按Ctrl+[键逐磅缩小所选文字。 七、快速设置上下标注 首先选中需要做上标文字,然后按下组合键Ctrl+Shift+=就可将文字设为上标,再按一次又恢复到原始状态;按Ctrl+=可以将文字设为下标,再按一次也恢复到原始状态。 小提示:详见本刊前期《WordXP中神奇的Ctrl键》一文,掌握一些快捷按键对快速、高效操作Word很有借鉴意义。 八、快速取消自动编号 虽然Word中的自动编号功能较强大,但是据笔者试用,发现自动编号命令常常出现错乱现象。其实,我们可以通过下面的方法来快速取消自动编号。 1.当Word为其自动加上编号时,您只要按下Ctrl+Z键反悔操作,此时自动编号会消失,而且再次键入数字时,该功能就会被禁止了;

22个经典的Word 2010小技巧

22个经典的Word 2010小技巧 总结:22个经典的Word 2010小技巧 时间:2010-10-20 13:54 浏览: 28次作者:未知来源:互联网评论: 0条在使用Word时中使用过一些小技巧,发现很不错,对文字处理方面很有帮助,现整理如下: 1、Word表格玩自动填充 在Word表格里选中要填入相同内容的单元格,单击“格式→项目符号和编号”,进入“编号”选项卡,选择任意一种样式,单击“自定义”按钮,在“自定义编号列表”窗口中“编号格式”栏内输入要填充的内容,在“编号样式”栏内选择“无”,依次单击 “确定”退出后即可。 2、Word中巧输星期 单击“格式→项目符号和编号”,进入“编号”选项卡,单击“自定义 ”按钮,在“编号样式”栏内选择“ 一、二、三”等样式,在“编号格式”栏内的“一”前输入“星期”即可。 3、粘贴网页内容

在Word中粘贴网页,只须在网页中复制内容,切换到Word中,单击“粘贴”按钮,网页中所有内容就会原样复制到Word中,这时在复制内容的右下角会出现一个“粘贴选项”按钮,单击按钮右侧的黑三角符号,弹出一个菜单,选择“仅保留文本” 即可。 4、快速转换大写金额 在Word中输入12345,然后点击“插入→数字”命令,在弹出的“数字”对话框 “数字类型”栏里选择中文数字版式“壹、贰、叁…… ”单击“确定 ”,则12345就变成中文数字“壹万贰仟叁佰肆拾伍”。 5、去掉自动编号功能 点击“工具→自动更正选项”,打开“自动更正”对话框,进入“键入时自动套用格式”选项卡,找到“键入时自动应用”组中的“自动编号列表”复选项,取消前面的钩即可。这样就可以去掉那些“烦心” 的自动编号功能。同样也可去除“画布”,方法是:点击“工具→选项”,进入“常规”选项卡,去除“插入‘自选图形

办公自动化之——60个word使用小技巧

1 办公自动化之——60个word使用小技巧 1、Word表格自动填充 在Word表格里选中要填入相同内容的单元格,单击“格式→项目符号和编号”,进入“编号”选项卡,选择任意一种样式,单击“自定义”按钮,在“自定义编号列表”窗口中“编号格式”栏内输入要填充的内容,在“编号样式”栏内选择“无”,依次单击“确定”退出后即可。 2、Word中巧输星期 单击“格式→项目符号和编号”,进入“编号”选项卡,单击“自定义”按钮,在“编号样式”栏内选择“一、二、三”等样式,在“编号格式”栏内的“一”前输入“星期”即可。 3、粘贴网页内容 在Word中粘贴网页,只须在网页中复制内容,切换到Word中,单击“粘贴”按钮,网页中所有内容就会原样复制到Word中,这时在复制内容的右下角会出现一个“粘贴选项”按钮,单击按钮右侧的黑三角符号,弹出一个菜单,选择“仅保留文本”即可。 4、快速转换大写金额 在Word中输入12345,然后点击“插入→数字”命令,在弹出的“数字”对话框“数字类型”栏里选择中文数字版式“壹、贰、叁????? ? ? ”单击“确定”,则12345就变成中文数字“壹万贰仟叁佰肆拾伍”。 5、去掉自动编号功能 点击“工具→自动更正选项”,打开“自动更正”对话框,进入“键入时自动套用格式”选项卡,找到“键入时自动应用”组中的“自动编号列表”复选项,取消前面的钩即可。这样就可以去掉那些“烦心”的自动编号功能。同样也可去除“画布”,方法是:点击“工具→选项”,进入“常规”选项卡,去除“插入‘自选图形’时自动创建绘图画布”复选框上的钩即可。 6、画出不打折的直线 在Word中如果想画水平、垂直或“15o、30o、45o、75o”角的直线,只须在固定一个端点后,按住Shift键,上下拖动鼠标,将会出现上述几种直线选择,位置调整合适后松开Shift键即可。 7、加减乘除松输入

PB中协调多数据窗口数据操纵的一种解决方法

PB中协调多数据窗口数据操纵的一种解决方法 1、问题的提出 数据窗口是PB中检索、表现和操纵数据的对象。如果一个数据表的列不多,用单数据窗口操纵数据很易实现,但在实际应用中,数据表的列数动辄几十,甚至上百也并不少见,这时用单数据窗口滚动显然不方便,一个自然的想法是采用TAB控件和TAB页,在每个TAB页上放置一个数据窗口控件,每个数据窗口控件分门别类操纵数据表的列,但随之而来的问题是如何协调分布在这些数据窗口中录入或修改数据的存储,针对每个数据窗口发布一个UPDATE()函数的调用不可行。我们在实际开发中经过探索,增加一个后台的数据窗口做中介,解决了多数据窗口操纵数据的问题。 2、协调多数据窗口数据操纵的一种解决方法 基本思路是:在进行数据操纵的数据窗口控件之外,另外放置一个数据窗口控件,设置其不可见,并设其数据窗口对象为一个选择了数据表中所有列的数据窗口,其他数据窗口控件中录入或修改的数据实时地传送过来,对该控件的数据进行更新操作即可。 不失一般性,下面以PB自带数据库psDemoDB.db中的customer表的数据录入为例来说明。Customer表有"id","fname","lname","address","city","state","zip","phone","company"九个列,其中"id"为integer类型,其余均为char类型。 (1)创建数据窗口 建立三个数据窗口d_1、d_2、d_3,数据窗口d_1选"id","fname","lname"三列,d_2中选"address","city","state"三列,d_3选"zip",""phone","company_name"三列。再建立数据窗口d_4,选中数据表中的所有列。 (2)建TAB控件和TAB页 建立一个TAB控件tab_1,建立三个TAB页tabpage_1、tabpage_2、tabpage_3。 (3)建数据窗口控件 在(2)中建的三个TAB页中分别放置dw_1、dw_2、dw_3三个数据窗口控件,设其数据窗口对象分别为d_1、d_2、d_3。 另外,在窗口中放置一个数据窗口控件dw_4,不选其"visible"属性. (4)编写代码 在tabb1.tab_page_1.dw_1的editchanged事件中编写代码如下: //代码由此开始 //设置变量,id_value存放数据表中id列的值 int i_m,i_n,id_value string str_fname,str_lname //取dw_1当前的行数 i_m=tab_1.tabpage_1.dw_1.getrow() //取dw_4当前的行数 i_n=dw_4.getrow() //tab_1.tabpage_1.dw_1及dw_4接收浮在数据窗口控件表面的数据 tab_1.tabpage_1.dw_1.accepttext() dw_4.accepttext()

相关文档