您的位置:程序门 -> vb -> 控件



gprintlistview  调用问题 高分求


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


gprintlistview 调用问题 高分求
发表于:2007-09-04 11:50:17 楼主
网上找了一个listview   打印函数,却不知如何调用,狂汗!


请用过的朋友告诉我如何调用
我是这样调用的
gprintlistview   listview, "报表头 ",listview

附函数:

function   gprintlistview(byref   pobjlistview   as   listview,   pstrheading   as   string,   prn   as   object)   as   boolean
'--------------------------------------------------------------------------
'   name   :   gprintlistview
'   description   :   print   list   view
'   parameters   :   listview   control,   printed   page   heading
'   returns   :   n/a
'   called   from   :   anywhere
'   author   :   paul   jones
'   date   :   07/06/2001
'   notes   :
'--------------------------------------------------------------------------
dim   objcol   as   columnheader
dim   objli   as   listitem
dim   objils   as   imagelist
dim   objpic   as   picture

dim   dblxscale   as   double
dim   dblyscale   as   double
dim   sngfontsize   as   single
dim   lngx   as   long
dim   lngy   as   long
dim   lngx1   as   long
dim   lngy1   as   long
dim   lngx2   as   long
dim   lngrows   as   long
dim   lngleft   as   long
dim   lngpageno   as   long
dim   lngeop   as   long
dim   lngend   as   long
dim   lngwidth   as   long
dim   intcols   as   integer
dim   lngtop   as   long
dim   intoffset   as   integer
dim   px   as   integer
dim   py   as   integer
dim   introwheight   as   integer
dim   strtext   as   string
dim   strtexttrun   as   string

'--------------------------------------------------------------------------
'establish   print   &   screen   metrics
'--------------------------------------------------------------------------

on   error   goto   error_handler

screen.mousepointer   =   vbhourglass

for   each   objcol   in   pobjlistview.columnheaders

lngx   =   lngx   +   objcol.width

next

set   objils   =   pobjlistview.smallicons

dblxscale   =   (prn.width   *   0.9)   /   lngx
dblyscale   =   prn.height   /   pobjlistview.height

lngleft   =   (prn.width   -   (prn.width   *   0.95))   /   2

sngfontsize   =   prn.font.size

if   pstrheading   <>   " "   then

prn.font.size   =   16
prn.currentx   =   (prn.width   /   2)   -   (prn.textwidth(pstrheading)   /   2)
'prn.font.underline   =   true
prn.font.bold   =   true
prn.print   pstrheading
prn.font.underline   =   false
prn.font.size   =   sngfontsize
lngtop   =   prn.currenty   +   prn.currenty

end   if

introwheight   =   (screen.twipsperpixely   *   17)

lngeop   =   prn.height   -   (introwheight   *   3)

lngx   =   lngleft
lngy   =   lngtop

lngy1   =   lngtop   +   (screen.twipsperpixely   *   17)

prn.currenty   =   lngy
prn.font.bold   =   true
prn.drawmode   =   vbcopypen

px   =   screen.twipsperpixelx
py   =   screen.twipsperpixely

'--------------------------------------------------------------------------
'print   column   headers   with   slight   3d   effect
'--------------------------------------------------------------------------

for   each   objcol   in   pobjlistview.columnheaders

lngx1   =   lngx   +   (objcol.width   *   dblxscale)

prn.line   (lngx,   lngy)-(lngx1,   lngy1),   vbbuttonshadow,   bf
prn.line   (lngx,   lngy)-(lngx1   -   px,   lngy1),   rgb(245,   245,   245),   bf
prn.line   (lngx   +   px,   lngy   +   py)-(lngx1,   lngy1),   vbbuttonshadow,   bf
prn.line   (lngx   +   px,   lngy   +   py)-(lngx1   -   px,   lngy1   -   py),   vbbuttonface,   bf

prn.currenty   =   lngy   +   ((introwheight   -   prn.textheight(objcol.text))   /   2)   +   py

select   case   objcol.alignment

case   listcolumnalignmentconstants.lvwcolumncenter

prn.currentx   =   lngx   +   (((objcol.width   *   dblxscale)   -   prn.textwidth(objcol.text))   /   2)

case   listcolumnalignmentconstants.lvwcolumnleft

prn.currentx   =   lngx   +   (px   *   5)

case   listcolumnalignmentconstants.lvwcolumnright

prn.currentx   =   lngx   +   ((objcol.width   *   dblxscale)   -   prn.textwidth(objcol.text))   -   (px   *   5)

end   select

prn.print   objcol.text

lngx   =   lngx1

next

lngend   =   lngx1   +   px

prn.font.bold   =   false

'--------------------------------------------------------------------------
'print   list   item   data
'--------------------------------------------------------------------------

for   each   objli   in   pobjlistview.listitems

if   lngy1   >   lngeop   -   introwheight   -   introwheight   then

'------------------------------------------------------------------
'print   page   number
'------------------------------------------------------------------

lngpageno   =   lngpageno   +   1
prn.currentx   =   (prn.width   /   2)   -   (prn.textwidth( "第   "   &   lngpageno   &   "   页 ")   /   2)
prn.currenty   =   lngeop   -   introwheight
prn.print   "第   "   &   lngpageno   &   "   页 "   ' "page   "   &   lngpageno
prn.newpage
prn.currenty   =   lngtop
lngy   =   lngtop

else

lngy   =   lngy   +   introwheight

end   if

lngx   =   lngleft

lngy1   =   lngy   +   introwheight

for   each   objcol   in   pobjlistview.columnheaders

'------------------------------------------------------------------
'print   the   icon   if   on   col   1
'------------------------------------------------------------------

if   objcol.index   >   1   then

strtext   =   objli.subitems(objcol.index   -   1)

intoffset   =   0

else

strtext   =   objli.text

if   isempty(objli.smallicon)   then

intoffset   =   0

else

set   objpic   =   objils.overlay(objli.smallicon,   objli.smallicon)

prn.paintpicture   objpic,   lngx   +   px,   lngy   +   (py   /   2),   16   *   px,   16   *   py,   ,   ,   ,   ,   vbsrccopy

intoffset   =   px   *   16

end   if

end   if

'------------------------------------------------------------------
'make   sure   text   fits
'------------------------------------------------------------------

lngwidth   =   (objcol.width   *   dblxscale)

lngx1   =   lngx   +   lngwidth

strtexttrun   =   strtext

do   until   prn.textwidth(strtexttrun)   <   lngwidth   -   (px   *   5)   -   intoffset   or   strtext   =   " "

strtext   =   left$(strtext,   len(strtext)   -   1)

strtexttrun   =   strtext   &   "... "

loop

prn.line   (lngx,   lngy)-(lngx1,   lngy1),   1,   b

prn.currenty   =   lngy   +   ((introwheight   -   prn.textheight(strtexttrun))   /   2)   +   py

select   case   objcol.alignment

case   listcolumnalignmentconstants.lvwcolumncenter

prn.currentx   =   lngx   +   intoffset   +   (((objcol.width   *   dblxscale)   -   prn.textwidth(strtexttrun))   /   2)

case   listcolumnalignmentconstants.lvwcolumnleft

prn.currentx   =   lngx   +   intoffset   +   (px   *   5)

case   listcolumnalignmentconstants.lvwcolumnright

prn.currentx   =   lngx   +   ((objcol.width   *   dblxscale)   -   intoffset   -   prn.textwidth(strtexttrun))   -   (px   *   5)

end   select

'------------------------------------------------------------------
'print   each   colum
'------------------------------------------------------------------

prn.print   strtexttrun

lngx   =   lngx1

next

next

'--------------------------------------------------------------------------
'print   final   page   number
'--------------------------------------------------------------------------

lngpageno   =   lngpageno   +   1

prn.currentx   =   (prn.width   /   2)   -   (prn.textwidth( "第   "   &   lngpageno   &   "   页 ")   /   2)
prn.currenty   =   lngeop   -   introwheight
prn.print   "第   "   &   lngpageno   &   "   页 "
prn.enddoc

gprintlistview   =   true

screen.mousepointer   =   vbdefault

set   objcol   =   nothing
set   objils   =   nothing
set   objli   =   nothing
set   objpic   =   nothing

exit   function

error_handler:

set   objcol   =   nothing
set   objils   =   nothing
set   objli   =   nothing
set   objpic   =   nothing

screen.mousepointer   =   vbdefault

'--------------------------------------------------------------------------
'simple   error   message   reporting
'--------------------------------------------------------------------------

msgbox   "系统打印出错:- "   &   vbcrlf   &   vbcrlf   &   _
"错误号:   "   &   err.number   &   vbcrlf   &   "错误内容: "   &   err.description,   vbexclamation

end   function

请用过的朋友告诉我如何调用
我是这样调用的
gprintlistview   listview, "报表头 ",listview
发表于:2007-09-04 12:06:231楼 得分:0
顶啊
发表于:2007-09-04 12:25:582楼 得分:0
为什么没有人回答我啊??


快速检索

最新资讯
热门点击