none
列印程式輸出不完整 RRS feed

  • 問題

  • 請教先進们:

    1.我寫了一個列印程式,需一次讀入3個不同報表,並利用printdocument.print列印為TIFF檔,當第一次執行時,列印ok,但再執行第二次時卻發現只印了第2 & 3頁,  再執行第三次時卻發現只印了第 3頁,WHY???

    2.我的列印程式中, Private Sub PrintPage() ......   

            m_currentPageIndex += 1
            ev.HasMorePages = (m_currentPageIndex < m_streams.Count)
        為何當m_currentPageIndex = m_streams.Count,且ev.HasMorePages 也顯示為false時;程式仍在Private Sub PrintPage() 內,而非跳回printdocument.print

    ,因為會造成error?

          

    2010年3月24日 上午 10:12

解答

所有回覆

  • 這表示你的變數第一次由0 起始, 第二次由1 起始, 第三次從2 起始.

    也就是說應該是你的  m_currentPageIndex 在列印時沒有先給它歸零


    MSDN 文件庫很重要
    問題本身越具體, 越容易得到大家的回應
    回應幫助你的人是一種禮貌, 良好的禮貌有助於激發大家對你問題回應的熱情
    2010年3月24日 上午 10:58
    版主
  • 你用除錯模式跑不就知道為何了?

    微軟的範例頁碼為 static ,這叫靜態變數,所以先前多少就多少。

    改宣告為共用變數,按下列印時歸 0 即可。


    論壇是網友平等互助 保證解答請至 微軟技術支援服務
    提問時,錯誤情境描述與錯誤訊息很重要,情境描述包含你做了什麼,預期的結果與實際發生的結果。一個最爛的問法範例:「我的電腦電腦怎麼不能開機?」誰知道你家是不是沒電還是你根本找不到電源鈕。
    2010年3月24日 下午 12:53
  • 感謝各位的指教,不過上述說明我先前均已測試過,如

                 先設定 m_currentPageIndex = 0
                 再進入 Print()

    而且在Private Sub PrintPage()中也確認m_currentPageIndex 由0 to 3的流程ok

    我也有用        Dim pageImage As New Metafile(m_streams(m_currentPageIndex))
                 pageImage.Save("c:\CCimg" + m_currentPageIndex.ToString + ".png") 確認可存成3個image file,只是列印為TIFF檔時,結果就如上述一樣,WHY?

    2010年3月25日 上午 01:32
  • 那你列印成 TIF 時用除錯模式跑,偵錯找出問題不就得了...
    論壇是網友平等互助 保證解答請至 微軟技術支援服務
    提問時,錯誤情境描述與錯誤訊息很重要,情境描述包含你做了什麼,預期的結果與實際發生的結果。一個最爛的問法範例:「我的電腦電腦怎麼不能開機?」誰知道你家是不是沒電還是你根本找不到電源鈕。
    2010年3月25日 下午 02:55
  • 謝謝您的指教!!!

    但我就是列印成 TIF 時用除錯模式跑,確認m_currentPageIndex 由 0~3且報表名也是對的,但結果就如問題一樣,才百思不得其解?

    2010年3月29日 下午 02:57
  • 把線上手冊提供的預覽列印範例跑一遍,如果正常,就是你程式碼寫錯,如果不正常,就是你的虛擬印表機有問題。

    既有討論:

    http://www.google.com.tw/search?hl=zh-TW&q=%E9%A0%90%E8%A6%BD%E5%88%97%E5%8D%B0+%E7%AF%84%E4%BE%8B+site%3Asocial.msdn.microsoft.com%2FForums%2Fzh-TW%2F&meta=&aq=f


    論壇是網友平等互助 保證解答請至 微軟技術支援服務
    提問時,錯誤情境描述與錯誤訊息很重要,情境描述包含你做了什麼,預期的結果與實際發生的結果。一個最爛的問法範例:「我的電腦電腦怎麼不能開機?」誰知道你家是不是沒電還是你根本找不到電源鈕。
    • 已標示為解答 Lolota Lee 2010年3月31日 上午 02:16
    2010年3月30日 下午 12:08
  • 謝謝您!我再試試看
    2010年4月1日 上午 12:32