OLD FoxBoard
foxboard Home FoxBoard



ยินดีต้อนรับ Guest ลงทะเบียน Login ค้นหากระทู้ แสดงรายชื่อสมาชิก
 หัวข้อสนทนาทั้งหมด
  Tips & Tricks Foxpro
 
ชื่อเรื่อง #01994 หัวข้อ: ซ่อนปุ่ม print ตอน preview เชิญตอบคำถามครับ ตั้งชื่อกระทู้ใหม่
ส่งข้อความโดย nextman วันที่ 16 พ.ค. 2552 เวลา 10:53 น. - IP Logged
มุมมอง nextman's ประวัติส่วนตัว ประวัติส่วนตัว   ค้นหากระทู้อื่นๆ nextman ค้นหา   Quote nextman Quote   Send Private Message ส่งข้อความ  
nextman
Gold Member
Gold Member
Thailand
29 มี.ค. 2552
17 Posts
*filename = mycustompreview.prg
*ตัวอย่างการเรียกใช้งานจากภายนอกเช่น
*!*     xrls = .null.   ประกาศตัวแปรก่อน
*!*     do mycustompreview with xrls,.F.   สร้าง Reportlistener
*!*     REPORT FORM "report2.frx" OBJECT xrls   ทำการ Preview Report ที่ต้องการ

parameters rl , canprint
* Obtain an instance of the default preview container:
pc_obj = .NULL.
DO (_REPORTPREVIEW) WITH pc_obj &&จะทำให้ pc_obj กลายเป็นตัวแปรประเภท object แบบ frxPreviewProxy ทันที

* Create an instance of an Extension Handler: ตัวควบคุมภายนอก นอกจากการใช้ pc_obj
xh_obj = NEWOBJECT("MyExHndPreview")
xh_obj.ShowPrintbutton = canprint

* Assign it to the preview container:
pc_obj.SetExtensionHandler( m.xh_obj )

* Set up a report listener and give it our preview:
rl_obj = NEWOBJECT("Reportlistener")
rl_obj.ListenerType = 1
rl_obj.PreviewContainer = pc_obj

rl = rl_obj
return

*---------------------------------------------
* Extension Handler Class:
*---------------------------------------------
DEFINE CLASS MyExHndPreview AS Custom

    ShowPrintbutton= .F. &&สร้างตัวแปร ซึ่งใน class จะมองเป็น Property ทันที
    
    PROCEDURE AddBarsToMenu( cPopup, iNextBar )
        * Remove the option to change page count:
        RELEASE BAR 8 OF (m.cPopup)
    ENDPROC

    PROCEDURE Show( iStyle )
        * Remove the option to change page count:
        && บาง properties ไม่สามารถกำหนดได้ในระดับ frxPreviewProxy จึงต้องมากำหนดในระดับ Extension Handler ** ดู help และตัวอย่างประกอบโดยค้นหาและใช้ keyword = ReportPreview.App ได้ในแท็บ index
        THIS.PreviewForm.Toolbar.opgPageCount.Visible = .F.
        THIS.PreviewForm.Toolbar.Controlbox = .F. && remove ปุ่มปิด control box ของ toolbar preview ไม่ให้ปิด toolbar ได้ ไม่สามารถกำหนด properties นี้ในระดับ frxPreviewProxy
        THIS.PreviewForm.Caption = "Preview"   &&สามารถกำหนด properties นี้ในระดับ frxPreviewProxy ก็ได้
      THIS.PreviewForm.ZoomLevel = 5   && 100%
      THIS.PreviewForm.CanvasCount = 1
      THIS.PreviewForm.AllowPrintFromPreview = THIS.ShowPrintbutton &&ปิด/เปิดปุ่ม Print
      THIS.PreviewForm.Windowstate = 2 &&Show in Maximized
    ENDPROC

    PROCEDURE HandledKeyPress( nKeyCode, nShiftAltCtrl )
        RETURN .F.
    ENDPROC

    PROCEDURE Paint()
    ENDPROC

    PROCEDURE Release()
        RETURN .T.
    ENDPROC

ENDDEFINE

*ที่เหลือก็ประยุกต์ใช้งานเพิ่มเติมต่อได้นะครับ ตัวนี้ผมทดสอบกับ VFP9 นะครับ

-------------
mrnextman

ถ้าท่านต้องการตอบคำถามที่นี่ ท่านควรจะ  Login
ถ้าท่านยังไม่ได้ลงทะเบียน ท่านควรจะ  ลงทะเบียน

กระโดดไป เชิญตอบคำถามครับ ตั้งชื่อกระทู้ใหม่
พิมพ์รายงาน พิมพ์รายงาน

Powered by Vfoxware Forums ver. 1.0
Copyright ©2006-2010 Vfoxware Guide