PB9中如何进行打印时,窗口设置

PB9中如何进行打印时,窗口设置,第1张

数据库窗口的打印比较简单,直接使用Print()就可以了
dw_1Print()

如果要直接打印字符串,函数参数如下

Print ( printjobnumber, { tab1, } string {, tab2 } )

参数printjobnumber:用PrintOpen()函数打开的打印作业号tab1:Integer类型,可选项,指定文本开始打印的位置,在开始打印字符串之前将打印光标移动到该位置,从打印区的左边界开始计算,以千分之一英寸为单位。如果打印光标已经位于指定位置、或打印光标已经超过了指定位置、或省略了该参数,那么,Print()函数从打印光标的当前位置开始打印string:string类型,指定要打印的字符串。如果字符串中包括回车换行字符(~r~n),那么该字符串将被分成多行输出,但是,除第一行之外,其它行忽略tab1参数指定的起始打印位置tab2:Integer类型,可选项,指定字符串打印结束后打印光标移动到的位置,从打印区的左边界开始计算,以千分之一英寸为单位。如果打印光标已经超过了指定位置,那么Print()函数忽略该参数,打印光标位于已打印字符串的尾部。如果省略了该参数,Print()函数把打印光标移动到下一行的起始位置。返回值Integer。函数执行成功时返回1,发生错误时返回-1。如果任何参数的值为NULL,Print()函数返回NULL。用法在打印作业中,PowerBuilder使用打印光标来跟踪打印位置。打印光标保存了即将打印区域左上角的坐标。使用Print()函数打印文本后,PowerBuilder自动更新打印光标。PowerBuilder使用行距来决定打印出的两行文本之间的距离,行距与字符的高度成比例,缺省的行距是字符高度的12倍。使用PrintSetSpacing()函数可以改变行距。当Print()函数在下一行打印输出时,它把打印光标的x坐标设置为0、y坐标增加当前行距指示的数值。由于每打印一行时Print()函数都自动调整打印光标的y坐标位置,因此,该函数会自动处理分页,因此,应用程序没有必要调用PrintPage()函数进行分页。打印区由纸张的物理尺寸和边界空白决定,PrintSend()函数能够发送具体打印机的ESC控制序列,使用这个函数可以改变边界空白的大小。另外,在打印开始之前,使用PrintDefineFont()和PrintSetFont()函数可以改变Print()使用的字体。


Job = PrintOpen( )
Print(Job, "Sybase Corporation", 5000)
PrintClose(Job)

非常实用!---- 1.颜色选择API封装对象nvo_ChooseColor---- 先创建一新非可视用户对象,并声明一局部结构ols_ChooseColor long lstructsize ulong hwndowner ulong hinstance long rgbresult blob lpcustcolors long flags long lcustdata long lpfnhook long lptemplatename 然后定义如下的私有实例变量: Private: Ols_ChooseColor istr_choosecolor long il_custominitcolors[16] blob{64} ibl_customcolors 再声明如下局部外部函数: function boolean ChooseColorA (ref os_choosecolor lpcc) library "comdlg32dll" 在用户对象的构造事件中加入下述代码: //初始化结构实例变量,转换缺省的颜色数组到一BLOB变量中 blobedit(ibl_customcolors,1,il_custominitcolors) istr_choosecolorlpcustcolors = ibl_customcolors //设置客户定义颜色的指针 istr_choosecolorlstructsize = 36 //设置结构尺寸 setnull(istr_choosecolorhwndowner) //设置父窗变量为空 istr_choosecolorflags = 1 //设置标志 最后声明一公有用户对象函数: public function boolean of_choosecolor (ref long al_rgbresult) 在函数内加入下述代码: boolean lb_ok istr_choosecolorrgbresult = al_rgbresult lb_ok = choosecolora (istr_choosecolor) al_rgbresult = istr_choosecolorrgbresult return lb_ok 保存用户对象名为nvo_ChooseColor即可 使用方法:在需要处加入如下代码 long ll_customcolor nvo_ChooseColor nvo_cc nvo_cc = CREATE nvo_ChooseColor of_choosecolor(ll_customcolor) DESTROY nvo_cc ll_customcolor即含有用户选择的色值 ---- 2.目录选择API封装对象nvo_FolderBrowse---- 先创建一新非可视用户对象,并声明若干局部结构 结构一 ols_shitemid unsignedint cb character abid 结构二 ols_itemidlist shitemid mkid 结构三 ols_browseinfo unsignedlong howner unsignedlong pidlroot string pszdisplayname string lpsztitle unsignedint ulflags unsignedlong lpfn long lparam integer iimage 然后声明如下局部外部函数: Protected: Function unsignedlong SHGetPathFromIDListA ( unsignedlong pidl, ref string pszPath) Library 'shell32' Function unsignedlong SHBrowseForFolderA ( ols_browseinfo lpbrowseinfo ) Library 'shell32' Subroutine CoTaskMemFree(ulong idlist) Library 'ole32' 再声明如下实例变量: Protected: unsignedLong BIF_RETURNONLYFSDIRS = 1 声明一公有对象函数 public function string browseforfolder (window awi_parent, string as_caption) 并加入如下代码 ols_browseinfo lstr_bi ols_itemidlist lstr_idl unsignedlong ll_pidl, ll_r,ll_Null Integer li_pos String ls_Path SetNull( ll_Null ) lstr_bihOwner = Handle( awi_Parent ) lstr_bipidlRoot = 0 lstr_bilpszTitle = as_caption lstr_biulFlags = bif_ReturnOnlyFSDirs lstr_bipszDisplayName = Space( 255 ) lstr_bilpfn = ll_Null ll_pidl = SHBrowseForFolderA( lstr_bi ) ls_Path = Space( 255 ) ll_R = SHGetPathFromIDListA( ll_pidl, ls_Path ) CoTaskMemFree( ll_pidl ) RETURN ls_Path 保存对象名为nvo_FolderBrowse即可 使用方法:在需要处加入如下代码 nvo_FolderBrowse nvo_fb String ls_path nvo_fb=CREATE nvo_FolderBrowse ls_path = nvo_fbBrowseForFolder ( handle(parent), '请选择目标路径' ) DESTROY nvo_fb ls_path是用户选择的目录路径 ---- 3.打印机属性设置对话框API封装对象nvo_PrinterSetup---- 先创建一新的非可视用户对象,然后声明如下局部外部函数: function boolean OpenPrinterA (ref string pPrinterName,ref ulong phPrinter,ref ulong pDefault ) library "winspooldrv" function boolean PrinterProperties (ulong hwnd1,ulong hPrinter) library "winspooldrv" function boolean ClosePrinter (ulong hPrinter) library "winspooldrv" 最后声明一公有的用户对象函数: public function boolean of_printersetup (string printername,window awin) 加入下述代码: ulong hwnd //父窗口句柄 ulong prnhd //打印机设备句柄 ulong l=0 hwnd=handle(awin) if openprintera(printername,prnhd,l) =false then return false PrinterProperties(hwnd,prnhd) closeprinter(prnhd) return true 将对象另存为nvo_PrinterSetup即可 使用方法:在需要处加入如下代码(假定为一按钮的点击事件) nvo_PrinterSetup nvo_ps window win win = parent nvo_ps = CREATE nvo_PrinterSetup if not of_printersetup(prnname,win) then messagebox("提示","打开打印机失败!") DESTROY nvo_ps ---- 注:printername是目标打印机名,可用系统当前打印机也可用别的已安装的打印机。通常是从下拉列表控件中获得


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/12917729.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-28
下一篇 2023-05-28

发表评论

登录后才能评论

评论列表(0条)

保存