VFP ·R¥ÎªÌªÀ°Ï ­º­¶ VFP ·R¥ÎªÌªÀ°Ï
¥»°Q½×°Ï¬° Visual Foxpro ·R¥ÎªÌ¸gÅç¥æ¬yªº¦a¤è, ½Ð¦h¦h§Q¥Î"·j´M"ªº¥\¯à, ¥ý¬d¬Ý¬Ý¦³µL«e¨Ò¥i´`, ¦pªGÁÙ¦³¤£À´ªº¦Aµo°Ý. ³¡¥÷¥DÃD¦³ªþ¥[ÀÉ®×, ¶·¥ýµù¥U¦¨¬°ªÀ°Ï©~¥Á¤~¥i¥H¤U¸ü.
 
 ±`¨£°ÝÃD±`¨£°ÝÃD   ·j´M·j´M   ·|­û¦Cªí·|­û¦Cªí   ·|­û¸s²Õ·|­û¸s²Õ   ·|­ûµù¥U·|­ûµù¥U 
 ­Ó¤H¸ê®Æ­Ó¤H¸ê®Æ   µn¤JÀˬd±zªº¨p¤H°T®§µn¤JÀˬd±zªº¨p¤H°T®§   µn¤Jµn¤J

¹wÄý³øªí®É,·Æ¹«´å¼Ð¥iÅܦ¨¤Q¦r½u?
«e©¹­¶­± ¤W¤@­¶  1, 2, 3  ¤U¤@­¶
 
µoªí·s¥DÃD   ¦^ÂÐ¥DÃD    VFP ·R¥ÎªÌªÀ°Ï ­º­¶ -> VFP °Q½×°Ï
¤W¤@½g¥DÃD :: ¤U¤@½g¥DÃD  
µoªí¤H ¤º®e
syntech



µù¥U®É¶¡: 2003-05-16
¤å³¹: 4212
¨Ó¦Û: Taipei,Taiwan

²Ä 16 ¼Ó

µoªíµoªí©ó: ¬P´Á¤@ ¤E¤ë 24, 2012 2:01 pm    ¤å³¹¥DÃD: ¤Þ¨¥¦^ÂÐ

¨º´N¦b³øªí¤W¦C¦L¥X¼Ð½u®æ½u´N¦n,
¤£»Ý­n¨Ï¥ÎªÌ®³¤Ø¦b¿Ã¹õ¶q.
¥H³øªí¬°·Ç,
7¼Ó¤£´N¬O³o­Ó·N«ä.

¥t¤@ºØ¤è¦¡¬O¦C¦L®É¥[¤J©³¦â,
¨Ò¦p¦bGRID¤¤±`±`¬Ý¨ì³æ¼Æµ§¤°»ò¦â,°¸¼Æµ§¤°»ò¦â.

·íµMÂàEXCEL´N§ó²M·¡.
³oºØ±¡ªp¤U,ªáÂI¤ß«ä§âEXCELªí§@º}«G¤ñ¸û§Ö.
ª½±µ¦bEXCELªí¤W¥[¤JÃä®Ø¤Î¦â±m.



---
¤j¦h¼ÆVFP¶}µoªÌ¹ïWINDOWS ¦p¦óø»sµe­±¨S¬Æ»ò·§©À,
«Ü®e©ö§â¨Æ±¡·Q±o¤Ó²³æ,
¨ä¹êVFP¯uªº´N¬O¾A¦X³B²z¸ê®Æ,
¨ä¥Lªºªá«N¥\¯à³Ì¦n·í§@¿ì¤£¨ì¤ñ¸û§Ö.
§Þ³N²Ó¸`¤£·Q¦h»¡. ^_^

_________________
¦pªG¤½¥q¦³¤U¦C§xÂZ:
1. §ä¤£¨ì«K©y,§Ö³t,²©öªº ¥Í²£±Æµ{³nÅé
2. ¤£ª¾¹D¦p¦ó§Ö³t±Æ©w ±ÄÁÊ­p¹º
3. ¦¨¥»§ì¤£·Ç,¦Û¤vºâ¤ñ³nÅéºâ¦³¥Î
4. ·Q¾Ç²ß¨t²Î³W¹º,·Q§ä¨t²Î¬[ºcªºÅU°Ý

½ÐÁpµ¸§Ú­Ì,¤]³\§Ú­ÌÀ°±o¤W¦£
¦^³»ºÝ
À˵ø·|­û­Ó¤H¸ê®Æ µo°e¨p¤H°T®§ µo°e¹q¤l¶l¥ó AIM Address
ckp6250



µù¥U®É¶¡: 2004-07-30
¤å³¹: 1644


²Ä 17 ¼Ó

µoªíµoªí©ó: ¬P´Á¤@ ¤E¤ë 24, 2012 3:37 pm    ¤å³¹¥DÃD: ¤Þ¨¥¦^ÂÐ

·j´M¤F¤@¤U¡A§Úı±o¡A³o¦ü¥G¬OCrystal Reportªº¥\¯à¡H(¤£½T©w°Õ)
¦^³»ºÝ
À˵ø·|­û­Ó¤H¸ê®Æ µo°e¨p¤H°T®§ °ÑÆ[µoªí¤Hªº­Ó¤Hºô¯¸
LiuRambo



µù¥U®É¶¡: 2007-11-27
¤å³¹: 481


²Ä 18 ¼Ó

µoªíµoªí©ó: ¬P´Á¤G ¤Q¤ë 02, 2012 11:21 pm    ¤å³¹¥DÃD: ¤Þ¨¥¦^ÂÐ

³øªí¤W¥[½u±øÀ³¸Ó¬O«Ü±`¦³ªº¨Æ
¦Ó¥B­n¥h±±¨î¦ó®É¸Ó¥X²{µê½u¡B¹ê½u ¬Æ¦ÜÂù¹ê½u
³o¼Ë´N¥i¥H¹F¨ì¤£·|·d²V ¤S¯àÅý¨Ï¥ÎªÌ¬Ý±o²M·¡

§Ú­Ì¥H«eªº³øªí¤@©w¬O4±øµê½u+1±ø¹ê½u ¤×¨ä¬OA3¾î¦¡³øªí ¨S½u®Ú¥»¨S¿ìªk¬Ý
­Ó¤Hı±oUser¥u¬O³æ¯Â"¤£·Q¬Ý¿ù" ¦ý³o¤Q¦r¥\¯àµ´¹ï¤£¬O¦o¯u¥¿·Q­nªº
¦^³»ºÝ
À˵ø·|­û­Ó¤H¸ê®Æ µo°e¨p¤H°T®§ MSN Messenger
garfield
Site Admin


µù¥U®É¶¡: 2003-01-30
¤å³¹: 2157


²Ä 19 ¼Ó

µoªíµoªí©ó: ¬P´Á¤T ¤Q¤ë 03, 2012 2:37 pm    ¤å³¹¥DÃD: ¤Þ¨¥¦^ÂÐ

°ÝÃD«Ü³æ¯Â, µª®×«Ü²³æ, ¥u­nÀHµÛ·Æ¹«²¾°Ê®É¥X²{¶ñº¡µe­±ªº¤Q¦r½u§Y¥i.
¨Ï¥ÎªÌ¶¶µÛ½u¬Ý¸ê®Æ¤ñ¸û¤£·|¬Ý¬n±¼.

¦bform.init ¥[¤W³o¨Çµ{¦¡½X
thisform.AddObject('mouselinex','shape')
thisform.AddObject('mouseliney','shape')
thisform.mouselinex.width = 1
thisform.mouselinex.top=1
thisform.mouselinex.height = thisform.Height

thisform.mouseliney.left=1
thisform.mouseliney.width = thisform.Width
thisform.mouseliney.height = 1

thisform.mouselinex.visible=.t.
thisform.mouseliney.visible=.t.

¦bform.mousemove ¥[¤W³o¨Çµ{¦¡½X
LPARAMETERS nButton, nShift, nXCoord, nYCoord
thisform.mouselinex.left = nXCoord
thisform.mouselinex.height=thisform.height
thisform.mouselinex.BorderStyle= MOD(nXCoord,5)+1

thisform.mouseliney.top=nYCoord
thisform.mouseliney.width = thisform.Width
thisform.mouseliney.BorderStyle=MOD(nYCoord,5)+1

_________________
§Q¥Î>>·j´M<<ªº¥\¯à·|¤ñ°ÝªºÁÙ­n§Ö±o¨ìµª®×.
¦^³»ºÝ
À˵ø·|­û­Ó¤H¸ê®Æ µo°e¨p¤H°T®§ µo°e¹q¤l¶l¥ó
ckp6250



µù¥U®É¶¡: 2004-07-30
¤å³¹: 1644


²Ä 20 ¼Ó

µoªíµoªí©ó: ¬P´Á¤T ¤Q¤ë 03, 2012 3:31 pm    ¤å³¹¥DÃD: ¤Þ¨¥¦^ÂÐ

¦ý¡A¥Lªº°ÝÃD¬O¦b³øªí¹wÄý®É¦³¤Q¦r½u¡A¦Ó«D Form ¤W¬Ý¤Q¦r½u¡C
¦^³»ºÝ
À˵ø·|­û­Ó¤H¸ê®Æ µo°e¨p¤H°T®§ °ÑÆ[µoªí¤Hªº­Ó¤Hºô¯¸
yctsai



µù¥U®É¶¡: 2003-04-11
¤å³¹: 179


²Ä 21 ¼Ó

µoªíµoªí©ó: ¬P´Á¤T ¤Q¤ë 03, 2012 4:10 pm    ¤å³¹¥DÃD: ¤Þ¨¥¦^ÂÐ

1.·PÁ garfield,®ÄªG«Ü´Î,²×©ó¦³ª¾­µ
2.·PÁ ckp6250,§Úªº°ÝÃD¬O¦b³øªí¹wÄý®É¦³¤Q¦r½u¡A¦Ó«D Form ¤W¬Ý¤Q¦r½u
3.¤½¥¬µª®×,§ä¨ì¤@´Ú³nÅépicpick,¦³Ãþ¦ü¤Q¦r½u,¦ý¬Ogarfield³Ì¦n(picpick¨ä¥¦¥\¯à¤]«Ü±j¤j,¥i°Ñ¦Ò)
¦^³»ºÝ
À˵ø·|­û­Ó¤H¸ê®Æ µo°e¨p¤H°T®§
garfield
Site Admin


µù¥U®É¶¡: 2003-01-30
¤å³¹: 2157


²Ä 22 ¼Ó

µoªíµoªí©ó: ¬P´Á¤T ¤Q¤ë 03, 2012 6:45 pm    ¤å³¹¥DÃD: ¤Þ¨¥¦^ÂÐ

«z, ¤Ó¤Ñ¯u¥H¬°«Ü²³æ, ¨ä¹ê¦³ÂIÃø,
¦A¨q¥t¤@­Ó¦bform¸ÌÅã¥Üreport ,
¦ýÁÙ¬O¤@¼Ë¦b³øªí¤W¬Ý¤£¨ì¤Q¦r½u,
¥N½X:

*-- ³øªí¹w³¡¥÷¥N½X
Set REPORTBEHAVIOR 90
lcReport=Home(2)+"Solution\Europa\EmployeesMD.frx"
oListener = Createobject('BaseReportListener')
olistener.PreviewContainer=Newobject([ReportForm])
Report Form (lcreport) Object oListener Nowait

 

*-- ³øªí¹wÄýµ¡¤f
Define Class ReportForm As Form
 AutoCenter = .T.
 WindowState = 2
 BorderStyle = 0
 TitleBar = 0
 WindowType = 1
 BackColor = Rgb(65,65,65)

 DataSession = 1
 oListener = .Null.
 nCurrentPage = 1
 nPageHeight = 100
 nPageWidth = 100
 ScrollBars = 3
 Width =  400
 Height =  400
 AllowOutput = .F.
 oTools = .Null.
 oGotoPage =  .Null.
 oPrint =  .Null.

 Add Object shpPreview  As Shape   With ;
  Top = 10,;
  Left = 10,;
  Width =  300,;
  Height =  300


 Procedure Init
  DoDefault()
  With This As Form
.AddObject('mouselinex','shape')
.AddObject('mouseliney','shape')

.mouselinex.visible=.t.
.mouseliney.visible=.t.

   .oTools = Createobject([frxpreviewtoolbar])
   .oGotoPage  = Createobject([frxgotopageform])
   .oPrint  = Createobject([frxPrintForm])
   With .oTools
    .Show()
    Bindevent(This.oTools,[CboZooMInteractiveChange],This,[CboZooMInteractiveChange])
    Bindevent(.cmdClose,[Click],This,[cmdCloseClick])

    Bindevent(.cntPrev.cmdTop,[Click],This,[cmdTopClick])
    Bindevent(.cntPrev.cmdPrev,[Click],This,[cmdPrevClick])

    Bindevent(.CntNext.cmdNext,[Click],This,[cmdNextClick])
    Bindevent(.CntNext.cmdBott,[Click],This,[cmdBottClick])

    Bindevent(.cmdgotopage,[Click],This,[ActionGotoPage])
    Bindevent(.cmdprint,[Click],This,[Print])

   Endwith
   .Refresh

  Endwith
 Endproc

Procedure mousemove
LPARAMETERS nButton, nShift, nXCoord, nYCoord
WITH this
   .mouselinex.width = 3
   .mouselinex.top=1
   .mouselinex.height = .Height

   .mouselinex.left = nXCoord
   .mouselinex.height= .height
   .mouselinex.BorderStyle= MOD(nXCoord,5)+1


   .mouseliney.left=1
   .mouseliney.width = .Width
   .mouseliney.height = 3

   .mouseliney.top=nYCoord
   .mouseliney.width = .Width
   .mouseliney.BorderStyle= MOD(nYCoord/2,2)*2+1
ENDWITH

Endproc

 Procedure SetReport
  Lparameters oListenerRef
  This.oListener = oListenerRef   &&±N¹ïReportListener¹ï¶Hªº¤Þ¥Î«O¦s¨ìªí³æªºoListenerÄݩʤ¤
 Endproc

 

 Procedure Show
  Lparameters nStyle
  With This
   If Vartype(.oListener) = "O"

    .nPageHeight = .oListener.GetPageHeight() / 10   &&Àò±o­¶­±ªº¹³¯À°ª«×¡]¨C­^¦T96DPI¡^

    .nPageWidth = .oListener.GetPageWidth() / 10    &&Àò±o­¶­±ªº¹³¯À¼e«×

    .shpPreview.Height = Int(.nPageHeight)        &&³]¸m§Îª¬ªº°ª«×

    .shpPreview.Width = Int(.nPageWidth)         &&³]¸m§Îª¬ªº¼e«×

    .Caption = "³øªí¹wÄýµ{§Ç-" + .oListener.CommandClauses.File  &&¼ÐÃD¤¤¥]§t¦³³øªíªº¤å¥ó¦WºÙ

    .Refresh

   Endif

 

   DoDefault(nStyle)  &&°õ¦æÀq»{ªºShow¤èªk¦æ¬°
  Endwith
 Endproc


 Procedure Paint
  With This

   If Vartype(.oListener)="O"

    .oListener.OutputPage(.nCurrentPage,.shpPreview,2)

   Endif
   .CmdRefresh()
  Endwith


 Endproc

 *-- «ö§áªº¥i¥Îª¬ºA
 Procedure CMDRefresh
  With This

   .oTools.cntPrev.cmdPrev.Enabled = Vartype(.oListener) = 'O' And .nCurrentPage > 1

   .oTools.cntNext.cmdNext.Enabled = Vartype(.oListener) = 'O' And  .nCurrentPage < .oListener.OutputPageCount

   .oTools.cntPrev.cmdTop.Enabled = Vartype(.oListener) = 'O' And .nCurrentPage > 1

   .oTools.cntNext.cmdBott.Enabled = Vartype(.oListener) = 'O' And .nCurrentPage < .oListener.OutputPageCount
  Endwith
 Endproc


 Procedure QueryUnload
  With This

   If Vartype(This.oListener) = 'O'

    .oListener.PreviewContainer = .Null.   &&ÄÀ©ñ¹ï³øªí¹wÄýµ{§Ç¹ï¶Hªº¤Þ¥Î

    .oListener.OnPreviewClose(.F.)  &&Ãö³¬¹wÄý

   Endif

   .oListener = .Null.

  Endwith
 Endproc

 *-- ³Ì«e­¶

 Procedure cmdTopClick
  With Thisform

   .nCurrentPage = 1

   .oListener.OutputPage(1, .shpPreview, 2)  &&Åã¥Ü²Ä¤@­¶

   .CmdRefresh()                &&³]¸m«ö¶sªº¥i¥Îª¬ºA

   * .txtPage.Value = 1

  Endwith

 Endproc

 *-- «e¤@­¶

 Procedure cmdPrevClick
  With Thisform

   .nCurrentPage = .nCurrentPage - 1  &&·í«e³øªí­¶¸¹´î1

   .oListener.OutputPage(.nCurrentPage, .shpPreview, 2)  &&Åã¥Ü«ü©w­¶

   .CmdRefresh()      &&³]¸m«ö¶sªº¥i¥Îª¬ºA

   * .txtPage.Value = .nCurrentPage

  Endwith

 Endproc

 *-- «á¤@­¶

 Procedure cmdNextClick
  With Thisform
   .nCurrentPage = .nCurrentPage + 1  &&·í«e³øªí­¶¸¹´î1

   .oListener.OutputPage(.nCurrentPage, .shpPreview, 2)  &&Åã¥Ü«ü©w­¶

   .CmdRefresh()      &&³]¸m«ö¶sªº¥i¥Îª¬ºA

   *.txtPage.Value = .nCurrentPage
  Endwith
 Endproc


 *-- ³Ì«á¤@­¶

 Procedure cmdBottClick
  With Thisform

   .nCurrentPage = .oListener.OutputPageCount

   .oListener.OutputPage(.nCurrentPage, .shpPreview, 2)  &&Åã¥Ü³Ì«á¤@­¶

   .CmdRefresh()                &&³]¸m«ö¶sªº¥i¥Îª¬ºA

   * .txtPage.Value = .nCurrentPage

  Endwith

 Endproc

 *-- «ü©w­¶

 Procedure ActionGotoPage
  With Thisform

   .oTools.Enabled = .F.

   .oGoToPage.PageNo = .nCurrentPage
   .oGoToPage.PageTotal  = .oListener.OutputPageCount
   .oGotoPage.Show()

   If .oGoToPage.PageNo >= 1 And .oGoToPage.PageNo <= .oListener.OutputPageCount

    .nCurrentPage = .oGoToPage.PageNo

    .oListener.OutputPage(.nCurrentPage, .shpPreview, 2)

    Thisform.CMDRefresh

   Else

    =Messagebox("­¶¸¹µL®Ä©Î¤w¸g¶W¥X¤FÁ`­¶¼Æ",0+48,"´£¥Ü")

   Endif

   .oTools.Enabled = .T.
  Endwith


 Endproc

 

 *-- Ãö³¬«ö§á
 Procedure cmdCloseClick
  With Thisform
   If Vartype(.oListener) = 'O'

    .oListener.PreviewContainer = .Null.

    .oListener.OnPreviewClose(.F.)

   Endif

   .oListener = .Null.

   .Release()
  Endwith
 Endproc


 *-- §ó§ïÅã¥Ü¤ñ¨Ò
 Procedure CboZooMInteractiveChange
  Lparameters vVal
  With Thisform
   If Vartype(.oListener) = "O"

    .shpPreview.Height = Int(.nPageHeight * Val(vVal) /100)

    .shpPreview.Width = Int(.nPageWidth * Val(vVal) /100)

    .oListener.OutputPage(.nCurrentPage, .shpPreview, 2)

   Endif

  Endwith


 Endproc


 *-- ¥´¦L

 Procedure Print
  With Thisform

   .oTools.Enabled = .F.
   .oPrint.PageNo = .nCurrentPage
   .oPrint.PageTotal  = .oListener.OutputPageCount
   .oPrint.Show()
   If .oPrint.PrintOk = .T.
    Do Case
      *-- ¥´¦L©Ò¦³ªº­¶
     Case .oPrint.opgPrint.Value = 1  &&¥´¦L©Ò¦³­¶
      .oListener.CommandClauses.PrintRangeFrom = 1
      .oListener.CommandClauses.PrintRangeTo = .oListener.OutputPageCount

      *-- ¥´¦L·í«e­¶

     Case .oPrint.opgPrint.Value = 2
      .oListener.CommandClauses.PrintRangeFrom =  .nCurrentPage
      .oListener.CommandClauses.PrintRangeTo  = .nCurrentPage

      *-- ¥´¦L­¶½X½d³ò
     Case .oPrint.opgPrint.Value = 3
      .oListener.CommandClauses.PrintRangeFrom = .oPrint.spnPageNoFrom.Value
      .oListener.CommandClauses.PrintRangeTo = .oPrint.spnPageNoTo.Value

    ENDCASE
    WAIT WINDOW [½Ðµy­Ô,¨t²Î¥¿¦b¶i¦æ¥´¦L³B²z......] NOWAIT
    .oListener.PreviewContainer = .Null.   &&¨ú®ø¹ï¹wÄýµ{§Ç¹ï¶Hªº¤Þ¥Î
    .oListener.OnPreviewClose(.T.)    &&¿é¥X¨ì¥´¦L¾÷
    .oListener = .Null.

    .Release     &&Ãö³¬ªí³æ
   Endif
   .oTools.Enabled = .T.
   .Refresh

  Endwith

 Endproc

Enddefine

Define Class PreToolbarCommandButton As CommandButton
 Height = 22
 Width = 23
 Top = 0
 SpecialEffect = 2
 Caption=[]
Enddefine

Define Class BaseReportListener As ReportListener
 ListenerType = 1  &&³]¸m¿é¥X¼Ò¦¡
 OutputType = 1 &&¿é¥XÃþ«¬
    DynamicLineHeight = .F.
Enddefine

Define Class ReportText As TextBox
 Top = 1
 Width = 35
Enddefine

*
Define Class CntPrevClass As PreContainert
 Add Object cmdtop As PreToolbarCommandButton With ;
  Left = 0, ;
  Picture = "prefirst.bmp", ;
  ToolTipText = [³Ì«e­¶], ;
  Name = "cmdTop"

 Add Object cmdPrev As PreToolbarCommandButton With ;
  Left = 23, ;
  Picture = "preprev.bmp", ;
  ToolTipText = "¤W¤@­¶", ;
  Name = "cmdPrev"
Enddefine

Define Class CntNextClass As PreContainert

 Add Object  cmdNext As PreToolbarCommandButton With ;
  Left = 0, ;
  Picture = "prenext.bmp", ;
  ToolTipText = "¤U¤@­¶", ;
  Name = "cmdNext"

 Add Object  cmdBott As PreToolbarCommandButton With ;
  Top = 0,;
  Left = 23,;
  Picture = "prelast.bmp",;
  ToolTipText = "³Ì«á­¶",;
  Name = "cmdBott"

Enddefine

Define Class frxpreviewtoolbar As Toolbar

 Caption = "³øªí¹wÄý¤u¨ã±ø"
 Height = 28
 KeyPreview = .T.
 Left = 0
 Top = 0
 Width = 564
 ShowWindow = 1
 previewform = .Null.
 specialmousexcoord = 0
 Name = "frxpreviewtoolbar"

 Movable = .F.
 Alias=[]

 DataTool = .T.


 Add Object cntprev As CntPrevClass With ;
  Top = 3, ;
  Left = 5, ;
  Width = 46, ;
  Height = 22, ;
  BorderWidth = 0, ;
  Name = "cntPrev"


 Add Object separator1 As Separator With ;
  Top = 3, ;
  Left = 58, ;
  Height = 0, ;
  Width = 0, ;
  Name = "Separator1"


 Add Object cmdgotopage As PreToolbarCommandButton With ;
  Top = 3, ;
  Left = 58, ;
  Height = 22, ;
  Width = 100, ;
  Picture = "gotopage.bmp", ;
  Caption = " «ü©w­¶", ;
  ToolTipText = "«ü©w­¶", ;
  PicturePosition = 1, ;
  Name = "cmdGoToPage"


 Add Object separator3 As Separator With ;
  Top = 3, ;
  Left = 165, ;
  Height = 0, ;
  Width = 0, ;
  Name = "Separator3"


 Add Object cntnext As CntNextClass With ;
  Top = 3, ;
  Left = 165, ;
  Width = 46, ;
  Height = 22, ;
  BorderWidth = 0, ;
  Name = "cntNext"

 Add Object separator2 As Separator With ;
  Top = 3, ;
  Left = 218, ;
  Height = 0, ;
  Width = 0, ;
  Name = "Separator2"


 Add Object cbozoom As ComboBox With ;
  Height = 22, ;
  Left = 218, ;
  Style = 2, ;
  TabStop = .F., ;
  ToolTipText = "¿ï¾Ü­¶­±ÁY©ñ¤ñ¨Ò", ;
  Top = 3, ;
  DisplayCount = 5, ;
  RowSourceType = 1,;
  RowSource=[25,50,100,150,200,300,400,500],;
  Value= [100],;
  Name = "cboZoom"


 Add Object separator4 As Separator With ;
  Top = 3, ;
  Left = 325, ;
  Height = 0, ;
  Width = 0, ;
  Name = "Separator4"


 Add Object opgpagecount As OpgPageCountClass With ;
  ButtonCount = 3, ;
  BorderStyle = 0, ;
  Height = 22, ;
  Left = 325, ;
  Top = 3, ;
  Width = 77, ;
  Name = "opgPageCount"

 


 Add Object separator5 As Separator With ;
  Top = 3, ;
  Left = 409, ;
  Height = 0, ;
  Width = 0, ;
  Name = "Separator5"


 Add Object cmdclose As PreToolbarCommandButton With ;
  Top = 3, ;
  Left = 409, ;
  Height = 22, ;
  Width = 75, ;
  Picture = "preclose.bmp", ;
  Caption = " Ãö³¬", ;
  ToolTipText = "Ãö³¬¹wÄý", ;
  PicturePosition = 1, ;
  Name = "cmdClose"


 Add Object cmdprint As PreToolbarCommandButton With ;
  Top = 3, ;
  Left = 484, ;
  Height = 22, ;
  Width = 75, ;
  Picture = "print.bmp", ;
  Caption = " ¥´¦L", ;
  ToolTipText = "¥´¦L³øªí", ;
  PicturePosition = 1, ;
  Name = "cmdPrint"

 Procedure Init
  DoDefault()

  With This
   .Dock(0)
  Endwith
 Endproc

 Procedure CboZoom.InteractiveChange
  This.Parent.CboZooMInteractiveChange(This.Value)
 Endproc

 Procedure CboZooMInteractiveChange
  Lparameters vVal
 Endproc

Enddefine
*
*-- EndDefine: frxpreviewtoolbar
**************************************************

Define Class PreContainert As Container


 Width = 200
 Height = 112
 BackStyle = 0
 Name = "PreContainert"

 


 Procedure Error
  Lparameters nError, cMethod, nLine
  This.Parent.Error( nError, cMethod, nLine )
 Endproc


 Procedure SetFocus
  Local oControl
  For Each oControl In This.Controls
   If Type("oControl.TabIndex") = "N"
    If oControl.TabIndex = 1
     If Pemstatus( m.oControl,"setFocus",5)
      oControl.SetFocus()
      Nodefault
     Endif
     Exit
    Endif
   Endif
  Endfor
 Endproc


 Procedure RightClick
  This.Parent.RightClick()
 Endproc


Enddefine

 

*-- ¦h­¶Åã¥Ü

Define Class OpgPageCountClass  As BaseOptiongroup

 Add Object Opt1 As BaseOptionButton With ;
  Picture = "1page.bmp", ;
  PicturePosition = 13, ;
  Caption = "", ;
  Height = 38, ;
  Left = 0, ;
  SpecialEffect = 2, ;
  Style = 1, ;
  ToolTipText = "¤@ ­¶", ;
  Top = 0, ;
  Width = 32, ;
  AutoSize = .F., ;
  Name = "Opt1"

 Add Object Opt2 As BaseOptionButton With ;
  Picture = "2page.bmp", ;
  PicturePosition = 13, ;
  Caption = "", ;
  Height = 38, ;
  Left = 25, ;
  SpecialEffect = 2, ;
  Style = 1, ;
  ToolTipText = "¨â ­¶", ;
  Top = 0, ;
  Width = 32, ;
  AutoSize = .F., ;
  Name = "Opt2"

 Add Object Opt3 As BaseOptionButton With ;
  Picture = "4page.bmp", ;
  PicturePosition = 13, ;
  Caption = "", ;
  Height = 38, ;
  Left = 50, ;
  SpecialEffect = 2, ;
  Style = 1, ;
  ToolTipText = "¥| ­¶", ;
  Top = 0, ;
  Width = 32, ;
  AutoSize = .F., ;
  Name = "Opt3"


Enddefine

 

 

*-- ¸õÂà¨ì«ü©w­¶

Define Class frxgotopageform As  Form
 WindowType = 1
 AutoCenter = .T.
 Height = 92
 Width = 345
 ShowWindow = 1
 DoCreate = .T.
 BorderStyle = 2
 Closable = .F.
 MaxButton = .F.
 MinButton = .F.

 *-- Provides the current page number for report output.
 PageNo = 0
 *-- Provides a PageTotal for report output.
 PageTotal = 0

 Name = "frxgotopageform"
 Caption = [«ü©w­¶]

 Add Object shp1 As Shape With ;
  Top = 15, ;
  Left = 12, ;
  Height = 66, ;
  Width = 224, ;
  BackStyle = 0, ;
  ZOrderSet = 0, ;
  Style = 3, ;
  Name = "Shp1"


 Add Object spnpageno As BaseSpinner With ;
  Height = 21, ;
  InputMask = "9999", ;
  Left = 52, ;
  Top = 36, ;
  Width = 138, ;
  ZOrderSet = 1, ;
  Name = "spnPageno"


 Add Object lblcaption As Label With ;
  AutoSize = .T.,;
  Caption = "¸õÂà¦Ü­¶", ;
  Left = 20, ;
  Top = 8, ;
  ZOrderSet = 2, ;
  Style = 3, ;
  Name = "lblCaption"


 Add Object cmdok As PreToolbarCommandButton  With ;
  Top = 16, ;
  Left = 252, ;
  Height = 23,;
  Width = 75,;
  Caption = "½T  ©w", ;
  Default = .T., ;
  ZOrderSet = 3, ;
  Name = "cmdOK"


 Add Object cmdcancel As PreToolbarCommandButton  With ;
  Top = 49, ;
  Left = 252, ;
  Height = 23,;
  Width = 75,;
  Cancel = .T., ;
  Caption = "¨ú  ®ø", ;
  ZOrderSet = 4, ;
  Name = "cmdCancel"

 

 Procedure Show
  Lparameters nStyle

  This.spnPageNo.SpinnerLowValue = 1
  This.spnPageNo.SpinnerHighValue = This.PageTotal

  *THIS.spnPageNo.KeyboardLowValue = 1
  *THIS.spnPageNo.KeyboardHighValue = THIS.pageTotal

  This.spnPageNo.Value = This.PageNo

  DoDefault(nStyle)
 Endproc

 


 Procedure cmdok.Click
  This.Parent.PageNo = This.Parent.spnPageNo.Value
  This.Parent.Hide()
 Endproc


 Procedure cmdcancel.Click
  This.Parent.Hide()
 Endproc


Enddefine

*-- ¥´¦L¿ï¾Ü­¶


Define Class frxPrintForm As  Form
 WindowType = 1
 AutoCenter = .T.
 Height = 155
 Width = 345
 ShowWindow = 1
 DoCreate = .T.
 BorderStyle = 2
 Closable = .F.
 MaxButton = .F.
 MinButton = .F.

 PrintOk = .F.

 *-- Provides the current page number for report output.
 PageNo = 0
 *-- Provides a PageTotal for report output.
 PageTotal = 0

 Name = "frxgotopageform"
 Caption = [¥´¦L]

 Add Object shp1 As Shape With ;
  Top = 15, ;
  Left = 12, ;
  Height = 125, ;
  Width = 224, ;
  BackStyle = 0, ;
  ZOrderSet = 0, ;
  Style = 3, ;
  Name = "Shp1"

 

 Add Object lblcaption As Label With ;
  AutoSize = .T.,;
  Caption = "­¶½X½d³ò", ;
  Left = 20, ;
  Top = 8, ;
  ZOrderSet = 2, ;
  Style = 3, ;
  Name = "lblCaption"

 

 Add Object opgPrint As opgPrintClass With ;
  Left =30, ;
  Top =36

 


 Add Object spnpagenoFrom As BaseSpinner With ;
  Height = 21, ;
  InputMask = "9999", ;
  Left = 30, ;
  Top = 105, ;
  Width = 80, ;
  ZOrderSet = 1, ;
  Name = "spnPagenoFrom"

 Add Object lblTo As Label With ;
  AutoSize = .T.,;
  Caption = "¦Ü", ;
  Left = 115, ;
  Top = 108, ;
  ZOrderSet = 2, ;
  Style = 3, ;
  Name = "lblNo"


 Add Object spnpagenoTo As BaseSpinner With ;
  Height = 21, ;
  InputMask = "9999", ;
  Left = 130, ;
  Top = 105, ;
  Width =  80, ;
  ZOrderSet = 1, ;
  Name = "spnPagenoTo"

 

 Add Object cmdok As PreToolbarCommandButton  With ;
  Top = 16, ;
  Left = 252, ;
  Height = 23,;
  Width = 75,;
  Caption = "¥´  ¦L", ;
  Default = .T., ;
  ZOrderSet = 3, ;
  Name = "cmdOK"


 Add Object cmdcancel As PreToolbarCommandButton  With ;
  Top = 49, ;
  Left = 252, ;
  Height = 23,;
  Width = 75,;
  Cancel = .T., ;
  Caption = "¨ú  ®ø", ;
  ZOrderSet = 4, ;
  Name = "cmdCancel"

 

 Procedure Show
  Lparameters nStyle
  With This
  .opgPrint.value  = 1
   .spnPageNoFrom.SpinnerLowValue = 1
   .spnPageNoFrom.SpinnerHighValue = .PageTotal
   .spnPageNoFrom.Value = .PageNo
   .spnPageNoTo.SpinnerLowValue = 1
   .spnPageNoTo.SpinnerHighValue = .PageTotal
   .spnPageNoTo.Value =  .PageTotal
   .PrintOk = .F.
  Endwith
  DoDefault(nStyle)
 Endproc

 

 Procedure cmdok.Click
  * This.Parent.PageNo = This.Parent.spnPageNo.Value
  With This.Parent
   If .opgPrint.Value  = 3
    If .spnPageNoFrom.Value > .spnPageNoTo.Value
     =Messagebox("²×¤î­¶¸¹³]¸mµL®Ä¡I", 48, "´£¥Ü")

     Return 0
    Endif
   Endif

   .PrintOk = .T.
   .Hide()

  Endwith
 Endproc


 Procedure cmdcancel.Click
  This.Parent.Hide()
 Endproc


Enddefine

 

Define Class OpgPrintClass  As BaseOptiongroup
 BorderStyle = 0
 Value = 1
 Add Object Opt1 As BaseOptionButton With ;
  PicturePosition = 13, ;
  Caption = "¥þ³¡", ;
  Left = 0, ;
  SpecialEffect = 2, ;
  ToolTipText = "¥´¦L©Ò¦³­¶", ;
  Top = 0, ;
  AutoSize = .T., ;
  Name = "Opt1"

 Add Object Opt2 As BaseOptionButton With ;
  PicturePosition = 13, ;
  Caption = "·í«e­¶", ;
  Height = 38, ;
  Left = 0, ;
  SpecialEffect = 2, ;
  ToolTipText = "¥´¦L·í«e­¶", ;
  Top = 22,;
  AutoSize = .T., ;
  Name = "Opt2"

 Add Object Opt3 As BaseOptionButton With ;
  PicturePosition = 13, ;
  Caption = "­¶½X½d³ò", ;
  Left = 0, ;
  SpecialEffect = 2, ;
  ToolTipText = "½Ð¿é¤J­¶½X½d³ò", ;
  Top = 44, ;
  AutoSize = .T., ;
  Name = "Opt3"


Enddefine

 

 

*-- ·L½Õ®Ø

Define Class BaseSpinner As Spinner

 

 Height = 21
 KeyboardLowValue = 0
 SelectOnEntry = .T.
 SpinnerLowValue =   0.00
 Width = 121
 incomingvalue = 0
 Name = "spn"


 Procedure resetincoming
  This.incomingValue = This.Value
 Endproc


 Procedure LostFocus
  If This.incomingValue <> This.Value
   This.action()
  Endif
 Endproc


 Procedure UpClick
  If This.incomingValue <> This.Value
   This.action()
   This.resetIncoming()
  Endif
 Endproc


 Procedure DownClick
  If This.incomingValue <> This.Value
   This.action()
   This.resetIncoming()
  Endif
 Endproc


 Procedure Error
  Lparameters nError, cMethod, nLine
  This.Parent.Error( nError, cMethod, nLine )
 Endproc


 Procedure GotFocus
  This.resetIncoming()
 Endproc


 Procedure KeyPress
  Lparameters iKey, iModifier

  *----------------------------------
  * Do not allow nulls to be entered
  * with Ctrl-0 :
  *----------------------------------
  If m.iKey = 48 And 0 < Bitand( m.iModifier, 2 )
   Nodefault
  Endif
 Endproc


 Procedure action
 Endproc

 Procedure LostFocus
  If This.Value < This.SpinnerLowValue
   This.Value = 1
  Endif
  If This.Value > This.SpinnerHighValue
   This.Value = This.SpinnerHighValue
  Endif
  DoDefault()
 Endproc

 

Enddefine


*-- ¿ï¶µ«ö§á
Define Class BaseOptiongroup As OptionGroup

 *MemberClassLibrary = "test.prg"
 ButtonCount = 0
 BackStyle = 0
 BorderStyle = 1
 Value = 0
 Height = 66
 Width = 117
 Name = "opg"

 *-- Specifies if the user can edit a control, or specifies if a table or view associated with a Cursor object allows updates.
 ReadOnly = .F.


 Procedure enabled_assign
  Lparameter lEnabled

  For Each optbut In This.Buttons
   optbut.Enabled = m.lEnabled
  Endfor
 Endproc


 Procedure readonly_assign
  Lparameter lReadOnly
  *
  * Returning .F. in each button's .When() produces
  * a more visually acceptable effect:
  *
  *for each optbut in this.Buttons
  * optbut.Enabled = not m.lReadOnly
  *endfor

  This.ReadOnly = m.lReadOnly
 Endproc


 *-- Sets the focus to a control.
 Procedure SetFocus
  *----------------------------------------------------
  * SetFocus() in containers doesn't work so well. This
  * compensates for that bug by doing it manually:
  *----------------------------------------------------
  Local oControl
  For Each oControl In This.Buttons
   If oControl.TabIndex = 1
    oControl.SetFocus()
    Nodefault
    Exit
   Endif
  Endfor
 Endproc


 Procedure RightClick
  This.Parent.RightClick()
 Endproc


 Procedure Error
  Lparameters nError, cMethod, nLine
  This.Parent.Error( nError, cMethod, nLine )
 Endproc


Enddefine

 

*-- ¿ï¶µ²Õ
Define Class BaseOptionbutton As OptionButton

 Caption = "prompt"
 Height = 15
 Width = 52
 AutoSize = .T.
 Name = "opt"


 Procedure Error
  Lparameters nError, cMethod, nLine
  This.Parent.Error( nError, cMethod, nLine )
 Endproc


 Procedure When
  If This.Parent.ReadOnly
   Return .F.
  Else
   Return .T.
  Endif
 Endproc


 Procedure KeyPress
  Lparameters iKey, iModifier

  *----------------------------------
  * Do not allow nulls to be entered
  * with Ctrl-0 :
  *----------------------------------
  If m.iKey = 48 And 0 < Bitand( m.iModifier, 2 )
   Nodefault
  Endif
 Endproc

Enddefine


**************************************************************************************************

*

*

**************************************************************************************************

*-- µ{§Ç¦WºÙ¡GRptPrint.prg
*-- µ{§Ç¥\¯à¡G¥H¦Û©w¸qªº¹ï¸Ü®ØÅã¥Ü³øªíªº¥´¦L³]¸m¡A¥H¨ú¥N¨t²Î¥´¦L³]¸mªº¤@¨Ç¤£¨¬
*-- ¨Ï¥Î¤èªk¡GRptPrint ( [<cReportName>] )
*  ©ÎªÌ¡Gdo RptPrint [ with <cReportName> ]
*-- µ{§Ç»¡©ú¡GcReportName ¬° ³øªí¤å¥ó¦W¡]µL¶·±aÂX®i¦W¡^¡A¦pªG¬Ù²¤ªº¸Ü¡A«h¥iÅã¥Ü³]¸m¹ï¸Ü®Ø
*     ³øªíªºÂX®i¦W¥H frx ¬°·Ç
*-- ­ì³Ð§@ªÌ¡G¬õªê
*-- Ápô¤è¦¡¡GE-mail: hu_feng@163.net
*     HomePage: http://rts.coolbel.com
*     Oicq: 1569040
*-- ½s¼g¤é´Á¡G2001¦~1¤ë


Func RptPrint
para rptname

*-- ³Ð«Ø¥´¦L³]¸m¹ï¸Ü®Ø
oPrintSetup=createobject("printsetup")
oPrintSetup.show

*-- ©w¸q¥´¦L³]¸m¹ï¸Ü®Ø
DEFINE CLASS printsetup AS form
 Top = 11
 Left = 115
 Height = 270
 Width = 531
 Desktop = .T.
 DoCreate = .T.
 Caption = "³øªí¥´¦L³]¸m"
 Name = "PRINTSETUP"
 *-- ·s¼WÄÝ©Ê
 nxcoord = 0  && ¥i¥H¨ÏÂIÀ»¹ï¸Ü®Ø´N¥i¥H©ì°Êªº§¤¼Ð
 nycoord = 0
 rptname = "" && ³øªíªº¤å¥ó¦W

 ADD OBJECT shape1 AS shape WITH ;
  Top = 12, ;
  Left = 12, ;
  Height = 144, ;
  Width = 504, ;
  Enabled = .F., ;
  SpecialEffect = 0, ;
  Name = "Shape1"


 ADD OBJECT label1 AS label WITH ;
  AutoSize = .T., ;
  Caption = "¥´¦L¾÷", ;
  Height = 16, ;
  Left = 22, ;
  Top = 9, ;
  Width = 38, ;
  Name = "Label1"

 *-- ¦s©ñ¥Ø«e¦w¸Ëªº¥´¦L¾÷ªº¦WºÙ¦Cªí
 ADD OBJECT printerlist AS combobox WITH ;
  Alignment = 0, ;
  Height = 22, ;
  Left = 112, ;
  Style = 2, ;
  Top = 33, ;
  Width = 260, ;
  Name = "PrinterList"


 ADD OBJECT label2 AS label WITH ;
  AutoSize = .T., ;
  Caption = "¥´¦L¾÷¦W(\<N)¡G", ;
  Height = 16, ;
  Left = 24, ;
  Top = 36, ;
  Width = 86, ;
  Name = "Label2"


 ADD OBJECT label3 AS label WITH ;
  AutoSize = .T., ;
  Caption = "ª¬ºA¡G", ;
  Height = 16, ;
  Left = 24, ;
  Top = 60, ;
  Width = 38, ;
  Name = "Label3"


 ADD OBJECT label4 AS label WITH ;
  AutoSize = .T., ;
  Caption = "Ãþ«¬¡G", ;
  Height = 16, ;
  Left = 24, ;
  Top = 84, ;
  Width = 38, ;
  Name = "Label4"


 ADD OBJECT label5 AS label WITH ;
  AutoSize = .T., ;
  Caption = "¦ì¸m¡G", ;
  Height = 16, ;
  Left = 24, ;
  Top = 108, ;
  Width = 38, ;
  Name = "Label5"


 ADD OBJECT label6 AS label WITH ;
  AutoSize = .T., ;
  Caption = "¯È±i¡G", ;
  Height = 16, ;
  Left = 24, ;
  Top = 132, ;
  Width = 38, ;
  Name = "Label6"

 *-- Åã¥Ü¥´¦L¾÷ªº¦ì¸mªº¼ÐÅÒ
 ADD OBJECT printerlocation AS label WITH ;
  AutoSize = .T., ;
  Caption = "PrinterLocation", ;
  Height = 16, ;
  Left = 112, ;
  Top = 108, ;
  Width = 92, ;
  Name = "PrinterLocation"


 ADD OBJECT cmdok AS commandbutton WITH ;
  Top = 178, ;
  Left = 442, ;
  Height = 25, ;
  Width = 66, ;
  Caption = "½T©w", ;
  Default = .T., ;
  Name = "cmdOk"

 *-- ¥´¦L¾÷ª¬ºA¼ÐÅÒ
 ADD OBJECT printerstatus AS label WITH ;
  AutoSize = .T., ;
  Caption = "PrinterStatus", ;
  Height = 16, ;
  Left = 112, ;
  Top = 60, ;
  Width = 80, ;
  Name = "PrinterStatus"


 ADD OBJECT command1 AS commandbutton WITH ;
  Top = 226, ;
  Left = 442, ;
  Height = 25, ;
  Width = 66, ;
  Cancel = .T., ;
  Caption = "¨ú®ø", ;
  Name = "Command1"


 ADD OBJECT shape5 AS shape WITH ;
  Top = 171, ;
  Left = 14, ;
  Height = 84, ;
  Width = 252, ;
  Enabled = .F., ;
  SpecialEffect = 0, ;
  Name = "Shape5"


 ADD OBJECT label11 AS label WITH ;
  AutoSize = .T., ;
  Caption = "¥´¦L½d³ò", ;
  Height = 16, ;
  Left = 24, ;
  Top = 168, ;
  Width = 50, ;
  Name = "Label11"


 ADD OBJECT shape6 AS shape WITH ;
  Top = 170, ;
  Left = 276, ;
  Height = 84, ;
  Width = 143, ;
  Enabled = .F., ;
  SpecialEffect = 0, ;
  Name = "Shape6"


 ADD OBJECT label12 AS label WITH ;
  AutoSize = .T., ;
  Caption = "¥÷¼Æ", ;
  Height = 16, ;
  Left = 286, ;
  Top = 167, ;
  Width = 26, ;
  Name = "Label12"

 *-- ¥´¦L½d³ò¿ï¾Ü
 ADD OBJECT optiongroup2 AS optiongroup WITH ;
  AutoSize = .F., ;
  ButtonCount = 3, ;
  BackStyle = 0, ;
  BorderStyle = 0, ;
  Value = 1, ;
  Enabled = .T., ;
  Height = 62, ;
  Left = 25, ;
  Top = 184, ;
  Width = 236, ;
  Name = "Optiongroup2", ;
  Option1.Caption = "¥þ³¡(\<A)", ;
  Option1.Value = 1, ;
  Option1.Height = 16, ;
  Option1.Left = 5, ;
  Option1.Style = 0, ;
  Option1.Top = 5, ;
  Option1.Width = 69, ;
  Option1.AutoSize = .T., ;
  Option1.Name = "Option1", ;
  Option2.Caption = "·í«e­¶(\<E)", ;
  Option2.Height = 16, ;
  Option2.Left = 82, ;
  Option2.Style = 0, ;
  Option2.Top = 5, ;
  Option2.Width = 81, ;
  Option2.AutoSize = .T., ;
  Option2.Name = "Option2", ;
  Option3.Caption = "­¶½X(\<G)", ;
  Option3.Height = 16, ;
  Option3.Left = 5, ;
  Option3.Style = 0, ;
  Option3.Top = 34, ;
  Option3.Width = 69, ;
  Option3.AutoSize = .T., ;
  Option3.Name = "Option3"

 *-- ¥´¦L°_©l­¶
 ADD OBJECT pbpage AS textbox WITH ;
  Alignment = 3, ;
  Value = 1, ;
  Enabled = .F., ;
  Height = 20, ;
  InputMask = "9999", ;
  Left = 120, ;
  SelectOnEntry = .T., ;
  Top = 219, ;
  Width = 49, ;
  Name = "pbpage"

 *-- ¥´¦L¤À¼Æ
 ADD OBJECT copy AS spinner WITH ;
  Height = 20, ;
  KeyboardLowValue = 1, ;
  Left = 338, ;
  SpinnerLowValue =   1.00, ;
  Top = 192, ;
  Width = 72, ;
  Value = 1, ;
  Name = "copy"

 *-- ¬O§_³v¥÷¥´¦L,ÁÙ¬O³v­¶
 ADD OBJECT check1 AS checkbox WITH ;
  Top = 229, ;
  Left = 338, ;
  Height = 16, ;
  Width = 69, ;
  AutoSize = .T., ;
  Caption = "³v¥÷¥´¦L", ;
  Value = .T., ;
  Name = "Check1"


 ADD OBJECT label14 AS label WITH ;
  AutoSize = .T., ;
  Caption = "¥÷¼Æ(\<C)", ;
  Height = 16, ;
  Left = 288, ;
  Top = 194, ;
  Width = 50, ;
  Name = "Label14"

 *-- µ²§ô­¶¼Æ
 ADD OBJECT pepage AS textbox WITH ;
  Alignment = 3, ;
  Value = _pepage, ;
  Enabled = .F., ;
  Height = 20, ;
  InputMask = "9999", ;
  Left = 196, ;
  SelectOnEntry = .T., ;
  Top = 219, ;
  Width = 49, ;
  Name = "pepage"


 ADD OBJECT label15 AS label WITH ;
  AutoSize = .T., ;
  Caption = "±q", ;
  Height = 16, ;
  Left = 104, ;
  Top = 221, ;
  Width = 14, ;
  Name = "Label15"


 ADD OBJECT label16 AS label WITH ;
  AutoSize = .T., ;
  Caption = "¨ì", ;
  Height = 16, ;
  Left = 178, ;
  Top = 221, ;
  Width = 14, ;
  Name = "Label16"


 ADD OBJECT command2 AS commandbutton WITH ;
  Top = 33, ;
  Left = 388, ;
  Height = 25, ;
  Width = 109, ;
  Caption = "¥´¦L¾÷³]¸m(\<S)...", ;
  Name = "Command2"

 *-- ¯È±iÃþ«¬¤Î¤è¦V
 ADD OBJECT papertype AS label WITH ;
  AutoSize = .T., ;
  Caption = "PaperType", ;
  Height = 16, ;
  Left = 112, ;
  Top = 132, ;
  Width = 56, ;
  Name = "PaperType"

 *-- ·í«e­¶¸¹
 ADD OBJECT pageno AS textbox WITH ;
  Alignment = 3, ;
  Value = 9999, ;
  Enabled = .F., ;
  Height = 20, ;
  InputMask = "9999", ;
  Left = 196, ;
  SelectOnEntry = .T., ;
  Top = 190, ;
  Width = 49, ;
  Name = "pageno"

 PROCEDURE getprinterinfo
  *-- Àò¨ú¥´¦L¾÷«H®§
  * ¨Ã¦s©ñ¨ì¼Æ²Õ paPrinter ¤¤
  * pnPrinterNo ¥Î¨Ó¦s©ñ¥´¦L¾÷ªº­Ó¼Æ
  thisform.PrinterLocation.caption = paPrinter(pnPrinterNo,2)
  *-- ¥´¦L¾÷ª¬ºA
  thisform.PrinterStatus.caption  = sys(13)
 ENDPROC


 PROCEDURE getpaper
  *-- ³q¹L RPTINFO() ¨ç¼Æ¨ÓÀò±o¥´¦L¾÷ªº¯È±i³]¸mÃþ«¬¤Î¤è¦V
  dime paper_list(41)
  paper_list(1) = "Letter, 8 1/2 x 11 in"
  paper_list(2) = "Letter Small, 8 1/2 x 11 in"
  paper_list(3) = "Tabloid, 11 x 17 in"
  paper_list(4) = "Ledger, 17 x 11 in"
  paper_list(5) = "Legal, 8 1/2 x 14 in"
  paper_list(6) = "Statement, 5 1/2 x 8 1/2 in"
  paper_list(7) = "Executive, 7 1/4 x 10 1/2 in"
  paper_list(8) = "A3, 297 x 420 mm"
  paper_list(9) = "A4, 210 x 297 mm"
  paper_list(10) = "A4, Small  210 x 297 mm"
  paper_list(11) = "A5, 148 x 210 mm"
  paper_list(12) = "B4, 250 x 354 mm"
  paper_list(13) = "B5, 182 x 257 mm"
  paper_list(14) = "Folio, 8 1/2 x 13 in"
  paper_list(15) = "Quarto, 215 x 275 mm"
  paper_list(16) = "10 x 14 in"
  paper_list(17) = "11 x 17 in"
  paper_list(18) = "Note, 8 1/2 x 11 in"
  paper_list(19) = "Envelope #9, 3 7/8 x 8 7/8 in"
  paper_list(20) = "Envelope #10, 4 1/8 x 9 1/2 in"
  paper_list(21) = "Envelope #11, 4 1/2 x 10 3/8 in"
  paper_list(22) = "Envelope #12, 4 1/2 x 11 in"
  paper_list(23) = "Envelope #14, 5 x 11 1/2 in"
  paper_list(24) = "C size sheet"
  paper_list(25) = "D size sheet"
  paper_list(26) = "E size sheet"
  paper_list(27) = "Envelope DL, 110 x 220 mm"
  paper_list(28) = "Envelope C5, 162 x 229 mm"
  paper_list(29) = "Envelope C3, 324 x 458 mm"
  paper_list(30) = "Envelope C4, 229 x 324 mm"
  paper_list(31) = "Envelope C6, 114 x 162 mm"
  paper_list(32) = "Envelope C65, 114 x 229 mm"
  paper_list(33) = "Envelope B4, 250 x 353 mm"
  paper_list(34) = "Envelope B5, 176 x 250 mm"
  paper_list(35) = "Envelope B6, 176 x 125 mm"
  paper_list(36) = "Envelope, 110 x 230 mm"
  paper_list(37) = "Envelope Monarch, 3 7/8 x 7.5 in"
  paper_list(38) = "6 3/4 Envelope, 3 5/8 x 6 1/2 in"
  paper_list(39) = "US Std Fanfold, 14 7/8 x 11 in"
  paper_list(40) = "German Std Fanfold, 8 1/2 x 12 in"
  paper_list(41) = "German Legal Fanfold, 8 1/2 x 13 in "

  RETU PAPER_LIST(prtinfo(2)) + "¡A" + iif(prtinfo(1)=0,"Áa¦V","¾î¦V")
 ENDPROC

 PROCEDURE MouseMove
  *-- ¥Î¹«¼Ð©ì°Êªí³æªº²¾°Ê
      Lparameters nButton, nShift, nxcoord, nycoord
      With Thisform
          if mdown() and nButton = 1
              .top = (nycoord - this.nycoord) + .top + 1
              .left = (nxcoord - this.nxcoord) + .left + 1
          endif
      Endwith
 ENDPROC

 PROCEDURE MouseDown
  *-- ·í¹«¼Ð¦bªí³æ¤W«ö¤U®É¡A°O¤Uªí³æªº§¤¼Ð¦ì¸m
      Lparameters nButton, nShift, nxcoord, nycoord
      This.nxcoord = nxcoord
      This.nycoord = nycoord
 ENDPROC

 PROCEDURE Init
 *-- ªí³æªì©l¤Æ ...
  With thisform
   .rptname = rptname
   .MinButton = .F.
   .MaxButton = .F.
   .Borderstyle= 2
   .WindowType = 1
   .AutoCenter = .T.
   .pageno.value = _pageno
  Endwith
  if type("paPrinter") =  "U" or type("pnPrinterNo") # "N"
   public paPrinter(1,2),pnPrinterNo
   pnPrinterNo = 1
  endif
   *-- Àò¨ú¥´¦L¾÷«H®§,¨Ã¦s¤J¼Æ²Õ¤¤
   nPrinterNum = APRINTERS(paPrinter)

  With ThisForm.PrinterList
  if nPrinterNum = 0
   .value = "¨S¦³¦w¸Ë¥´¦L¾÷"
  else
   .clear
   For n = 1 to nPrinterNum
    .additem(paPrinter(n,1))
   Endfor
   .listindex = pnPrinterNo
  endif
  Endwith
  *-- Àò¨ú¥´¦L¾÷ªº«H®§
  thisform.GetPrinterInfo()
  *-- Àò¨ú¯È±i¤Î¤è¦V
  thisform.papertype.caption = thisform.getpaper()
 ENDPROC

 *-- §ïÅÜ¥´¦L¾÷¦Cªíªº¨Æ¥ó
 PROCEDURE printerlist.InteractiveChange
  pnPrinterNo = this.listindex
  cCurPrinter = thisform.PrinterList.value
  set printer to name "&cCurPrinter"
  *-- ­«·sÀò¨ú¥´¦L¾÷ªº«H®§¤Î¤j¤p©M¤è¦V
  thisform.GetPrinterInfo
  thisform.papertype.caption = thisform.GetPaper()
 ENDPROC


 PROCEDURE cmdok.Click
  *-- ³]¸m¥´¦L¾÷
  cCurPrinter = thisform.PrinterList.value
  set printer to name "&cCurPrinter"
  pnPrinterNo = thisform.PrinterList.listindex

  *-- Àò±o¥´¦L½d³ò
     pbpage = 1
     pepage = _pepage
  With ThisForm.Optiongroup2
   do case
    case .value = 1
     pbpage = 1
     pepage = _pepage
    case .value = 2
     pbpage = _pageno
     pepage = _pageno
    case .value = 3
     pbpage = ThisForm.pbpage.value
     pepage = ThisForm.pepage.value
     if pbpage > pepage or pbpage > _pepage or pbpage <= 0
      messagebox("­¶½X³]¸m¿ù»~¡I",48,"ĵ§i")
      thisform.pbpage.setfocus
      retu
     endif
   endcase
  Endwith
 
  RptName = thisform.rptname
  if !empty(rptname)
  nCopy = thisform.copy.value
  isOneByOne = thisform.check1.value
   if isOneByOne  && ³v¥÷¥´¦L
    for n=1 to nCopy
     wait windo "¥¿¦b¿é¥X¥´¦L ..." + allt(str(n)) + "/" + allt(str(nCopy)) + "«ö ESC ¨ú®ø¡I" nowait
     if inkey(1) = 27
       exit
     endif
     report form "&RptName" nocon noeject range pbpage,pepage to print
    endfor
   else
    nMax = (pepage-pbpage)*nCopy
    i = 1
    for n=pbpage to pepage && ³v­¶¥´¦L
     for m=1 to nCopy
      wait window "¥¿¦b¿é¥X¥´¦L ..." + allt(str(i)) + "/" + allt(str(nMax)) + "«ö ESC ¨ú®ø¡I" nowait
      report form "&RptName" nocon noeject range n,n to print
      i = i + 1
      if inkey(1) = 27
       i = 0
        exit
      endif
     endfor
      if i=0
       exit
      endif
    endfor
   endif
  endif
  thisform.release
 ENDPROC


 PROCEDURE command1.Click
  thisform.release
 ENDPROC


 PROCEDURE optiongroup2.InteractiveChange
  ThisForm.pbpage.enabled = IIF(this.value = 3,.T.,.F.)
  ThisForm.pepage.enabled = ThisForm.pbpage.enabled
  thisform.pbpage.setfocus
 ENDPROC


 PROCEDURE command2.Click
  =sys(1037)

  thisform.GetPrinterInfo
  thisform.papertype.caption = thisform.GetPaper()
 ENDPROC


ENDDEFINE
*
*-- µ²§ô©w¸q: printsetup

_________________
§Q¥Î>>·j´M<<ªº¥\¯à·|¤ñ°ÝªºÁÙ­n§Ö±o¨ìµª®×.
¦^³»ºÝ
À˵ø·|­û­Ó¤H¸ê®Æ µo°e¨p¤H°T®§ µo°e¹q¤l¶l¥ó
ckp6250



µù¥U®É¶¡: 2004-07-30
¤å³¹: 1644


²Ä 23 ¼Ó

µoªíµoªí©ó: ¬P´Á¥| ¤G¤ë 27, 2014 10:51 am    ¤å³¹¥DÃD: ¤Þ¨¥¦^ÂÐ

¥H¤Wªº¤èªk³£¦³¯ÊÂI
¥Î¥~±¾³nÅé,¦ppicpick,Áö¦³¤Q¦r½u,
¦ý­Y­n¥h«ö¹wÄý¤u¨ã¦C¤Wªº«ö¶s©Î©Ô±²¶b®É,
´N¤£¯à«ö°Õ

¦Ógarfieldªºµ{¦¡½X,ÁöµM¦b form ¤W¦³¤Q¦r½u,
¦ý¦b Report ¤W¤´µM¨S¦³

³Ì«á§Ú­×§ï FoxyPreviewer ªº¤@¤p¬qµ{¦¡½X,
²×©ó¸Ñ¨M¤F³o­Ó°ÝÃD

¦p¹Ï
¦^³»ºÝ
À˵ø·|­û­Ó¤H¸ê®Æ µo°e¨p¤H°T®§ °ÑÆ[µoªí¤Hªº­Ó¤Hºô¯¸
55812296



µù¥U®É¶¡: 2012-09-19
¤å³¹: 49


²Ä 24 ¼Ó

µoªíµoªí©ó: ¬P´Á¥| ¤G¤ë 27, 2014 2:42 pm    ¤å³¹¥DÃD: ¤Þ¨¥¦^ÂÐ

ckp6250 ¼g¨ì:
³o­Ó°ÝÃD¡A§Ú­Ó¤H´N¦¹¥´¦í°Õ¡A¹ê¦b¬O¨Sªk«×¡AÀ°¤£¤W¦£¡C
´«­Ó¸ÜÃD¡A
¦pªG¡A¦³¤@¤Ñ¡AUSER§Æ±æ¡y·Æ¹«²¾¨ì¨º¸Ì¡AÂI¤G¤U¡A¹³ Google Map¤@¼Ë¡A§â¥¦§½³¡©ñ¤j¡A¥H§Q¾\Ū¡z¡A
±z·|«ç»ò¿ì¡H

³o´N¤ñ¸û²³æ ÂI¤G¤U ¶]¥X¤@­Ó¤pFORM ¸Ì­±Åã¥Ü¸ÓÄæ¸ê®Æ
¦^³»ºÝ
À˵ø·|­û­Ó¤H¸ê®Æ µo°e¨p¤H°T®§
ckp6250



µù¥U®É¶¡: 2004-07-30
¤å³¹: 1644


²Ä 25 ¼Ó

µoªíµoªí©ó: ¬P´Á¥| ¤G¤ë 27, 2014 2:55 pm    ¤å³¹¥DÃD: ¤Þ¨¥¦^ÂÐ

55812296 ¼g¨ì:

³o´N¤ñ¸û²³æ ÂI¤G¤U ¶]¥X¤@­Ó¤pFORM ¸Ì­±Åã¥Ü¸ÓÄæ¸ê®Æ


¦b Report ¹wÄý®É , ­nÂI¤G¤U , ¶]¥X¤@­Ó¤pFORM ,
³o¥i¤@ÂI³£¤£Â²³æ?

­n¦p¦ó°»´ú , ¨Ï¥ÎªÌ©ÒÂIªº¨º­Ó Report ¤W, ¬O¤°»ò¸ê®Æ ?
¦^³»ºÝ
À˵ø·|­û­Ó¤H¸ê®Æ µo°e¨p¤H°T®§ °ÑÆ[µoªí¤Hªº­Ó¤Hºô¯¸
arthur



µù¥U®É¶¡: 2003-11-05
¤å³¹: 18


²Ä 26 ¼Ó

µoªíµoªí©ó: ¬P´Á¤» ¤T¤ë 01, 2014 1:41 pm    ¤å³¹¥DÃD: ¤Þ¨¥¦^ÂÐ

ckp6250:
FoxyPreviewer§Ú¤]¤@ª½¦bÃöª`,§A¬O§ï¨º¤@¬qµ{§Ç?
¯à«ü¾É¶Ü?
¦^³»ºÝ
À˵ø·|­û­Ó¤H¸ê®Æ µo°e¨p¤H°T®§
ckp6250



µù¥U®É¶¡: 2004-07-30
¤å³¹: 1644


²Ä 27 ¼Ó

µoªíµoªí©ó: ¬P´Á¤» ¤T¤ë 01, 2014 2:29 pm    ¤å³¹¥DÃD: ¤Þ¨¥¦^ÂÐ

§Ú¬OÅý¨Ï¥ÎªÌ¦b»Ý­n¤Q¦r½u®É,
«ö¤U ins , ¦b mouse ©Ò¦bªº¦ì¸m¤W,
¥h²£¥Í¨º±ø¤Q¦r½u,
¦pªG¨Ï¥ÎªÌ²¾°Ê mouse , ¦A­««ö ins ®É
²M±¼Âªº,­«¹º·sªº


Foxypreviewer.prg ­×§ï¤Q´X¦æ,¦p¤U
¥N½X:

Procedure HandledKeyPress( nKeyCode, nShiftAltCtrl )
   Do Case
      Case  nKeyCode = 22 && Ins
         vCol = Mcol(0,3)
         vRow = Mrow(0,3)
         With This.PreviewForm
            .Cls
            .DrawStyle = 3
            .ForeColor = Rgb(255,0,0)
            .Line(0,vRow,_Screen.Width,vRow)
            .Line(vCol,0,vCol,_Screen.Height*64)
         Endwith
   Endcase
   Return .F.
Endproc


¨ä¹ê , FoxyPreviewer ¬O open source ,
¯àÅý§Ú­Ì¥[ªo²K¾Lªº¦a¤è«Ü¦h,
³o¬O§Ú¬°¦ó¤O±Àªº¥D¦]
¦^³»ºÝ
À˵ø·|­û­Ó¤H¸ê®Æ µo°e¨p¤H°T®§ °ÑÆ[µoªí¤Hªº­Ó¤Hºô¯¸
arthur



µù¥U®É¶¡: 2003-11-05
¤å³¹: 18


²Ä 28 ¼Ó

µoªíµoªí©ó: ¬P´Á¤» ¤­¤ë 17, 2014 8:08 pm    ¤å³¹¥DÃD: ¤Þ¨¥¦^ÂÐ

§Ú¨Ì·Ó±zªº¤è¦¡´ú¸Õı±o©ñ¦bHandledKeyPress()§Q¥Î®·®»«öÁä¤è¦¡¨Ã¤£¤Ó²z·Q,¦]¬°:
(1) ¥ÎInsert´¡¤J«öÁä¨Ó±±¨îµ¥³øªíµ²§ô«á¥i¯à§ïÅܶi¤J³øªí«eªº´¡¤J©ÎÂл\ªº¿é¤Jª¬ªp.
(2) ·Æ¹«¦ì¸m¦pªG¦b¨S¦³¦r¤¸ªº¦a¤è(³øªí¯d¥Õªº¦a¤è)¤Q¦r½u±`±`¤£·|¥X²{,³o®É¤S­n²¾°Ê·Æ¹«¦A«öInsert,³o­n¤ÏÂЦn´X¦¸¤Q¦r½u¤~·|¦b³øªí¤W,³o¼ËÅý¨Ï¥ÎªÌ¦b¾Þ§@¤W¤£¤è«K.
(3) ²Ä(1)­Ó°ÝÃD¥i¥H¥Î¨ä¥L¥\¯àÁä¨Ó¥N´À,¦ý(2)°ÝÃD¤´¨S¦³¦nªº¸Ñ¨M¤è¦¡,¦]¦¹¤£¥Î¦b®·®»Áä½L«öÁä¤è¦¡Åã¥Ü¤Q¦r½u.
(4) ³Ì«á§Ú¨M©w¥ÎCtrl+MouseMove¨ÓÅã¥Ü¤Q¦r½u,¤]´N¬O·í¨Ï¥ÎªÌ«ö¤UCtrl«öÁ䤣©ñµM«á²¾°Ê·Æ¹«,«h¤Q¦r½u´N·|¨Ì¥Ø«e·Æ¹«¦ì¸m¤@ª½µe¥X·sªº¥X¨Ó,µ¥¨Ï¥ÎªÌ¨M©w¤Q¦r½uªº¦ì¸m«á¦A©ñ¶}CtrlÁä´N¥i¥H¤F.
¦Ó¦¹¬qµ{§Ç¥²¶·¼g¦b:FrxPreView.Vcx->FrxBaseForm->MouseMove()¤èªkµ{§Ç¤¤.
¦^³»ºÝ
À˵ø·|­û­Ó¤H¸ê®Æ µo°e¨p¤H°T®§
arthur



µù¥U®É¶¡: 2003-11-05
¤å³¹: 18


²Ä 29 ¼Ó

µoªíµoªí©ó: ¬P´Á¤» ¤­¤ë 17, 2014 8:13 pm    ¤å³¹¥DÃD: ¤Þ¨¥¦^ÂÐ

FrxPreView.Vcx->FrxBaseForm->MouseMove()
¦^³»ºÝ
À˵ø·|­û­Ó¤H¸ê®Æ µo°e¨p¤H°T®§
ckp6250



µù¥U®É¶¡: 2004-07-30
¤å³¹: 1644


²Ä 30 ¼Ó

µoªíµoªí©ó: ¬P´Á¤é ¤­¤ë 18, 2014 11:12 am    ¤å³¹¥DÃD: ¤Þ¨¥¦^ÂÐ

³o´N¬O open source °g¤H¤§³B
¦U¨ú©Ò»Ý , ¦U§ï©Ò»Ý

°£¤F FrxPreView ¤§¥~ , Report Sculptor ¤]¦³Ãþ¤Q¦r½uªº¥\¯à,
¤£¥Î§ï,¥¦¦Û¤v¦³
¤]¬O open source
§Úı±o¤£»¹©ó FrxPreView
§ó¦³³\¦h¯S¦â¬O FrePreView ©Ò¨S¦³ªº
§ÚÁÙ¨S¬ã¨s«Ü²`¤J
±z¥i¥H¸Õ¬Ý¬Ý


http://vfp.sunyear.com.tw/viewtopic.php?t=6307
¦^³»ºÝ
À˵ø·|­û­Ó¤H¸ê®Æ µo°e¨p¤H°T®§ °ÑÆ[µoªí¤Hªº­Ó¤Hºô¯¸
±q¤§«eªº¤å³¹¶}©lÅã¥Ü:   
µoªí·s¥DÃD   ¦^ÂÐ¥DÃD    VFP ·R¥ÎªÌªÀ°Ï ­º­¶ -> VFP °Q½×°Ï ©Ò¦³ªº®É¶¡§¡¬° ¥x¥_®É¶¡ (GMT + 8 ¤p®É)
«e©¹­¶­± ¤W¤@­¶  1, 2, 3  ¤U¤@­¶
²Ä2­¶(¦@3­¶)

 
«e©¹:  
±z µLªk ¦b³o­Óª©­±µoªí¤å³¹
±z µLªk ¦b³o­Óª©­±¦^ÂФ峹
±z µLªk ¦b³o­Óª©­±½s¿è¤å³¹
±z µLªk ¦b³o­Óª©­±§R°£¤å³¹
±z µLªk ¦b³o­Óª©­±¶i¦æ§ë²¼
±z µLªk ¦b³o­Óª©­±ªþ¥[ÀÉ®×
±z µLªk ¦b³o­Óª©­±¤U¸üÀÉ®×


Powered by phpBB © 2001, 2005 phpBB Group
¥¿Å餤¤å»y¨t¥Ñ phpbb-tw ºûÅ@»s§@