示例#1
0
        /// ------------------------------------------------------------------------------------
        /// <summary>
        /// Print method
        /// </summary>
        /// ------------------------------------------------------------------------------------
        public void Print(PrintDocument pd)
        {
#if false
            long x1 = System.DateTime.Now.Ticks;
#endif
            // Try to reduce the impact of reading all the data from the database in pd.Print()
            // below.
            AutoloadPolicies alp = AutoloadPolicies.kalpLoadAllOfClassIncludingAllVirtuals;
            if (m_sda is IVwOleDbDa)
            {
                alp = (m_sda as IVwOleDbDa).AutoloadPolicy;
                (m_sda as IVwOleDbDa).AutoloadPolicy = AutoloadPolicies.kalpLoadAllOfClassIncludingAllVirtuals;
            }
            try
            {
                pd.PrintPage += new PrintPageEventHandler(this.pd_PrintPage);
                pd.Print();
                if (m_rootb != null)
                {
                    m_rootb.Close();
                }
            }
            finally
            {
                if (alp != AutoloadPolicies.kalpLoadAllOfClassIncludingAllVirtuals)
                {
                    (m_sda as IVwOleDbDa).AutoloadPolicy = alp;
                }
            }
#if false
            long x2 = System.DateTime.Now.Ticks;
            Debug.WriteLine("PrintRootSite.Print() took " + DeltaTime(x1, x2) + " seconds.");
#endif
        }
示例#2
0
        /// <summary>
        /// Executes in two distinct scenarios.
        ///
        /// 1. If disposing is true, the method has been called directly
        /// or indirectly by a user's code via the Dispose method.
        /// Both managed and unmanaged resources can be disposed.
        ///
        /// 2. If disposing is false, the method has been called by the
        /// runtime from inside the finalizer and you should not reference (access)
        /// other managed objects, as they already have been garbage collected.
        /// Only unmanaged resources can be disposed.
        /// </summary>
        /// <param name="disposing"></param>
        /// <remarks>
        /// If any exceptions are thrown, that is fine.
        /// If the method is being done in a finalizer, it will be ignored.
        /// If it is thrown by client code calling Dispose,
        /// it needs to be handled by fixing the bug.
        ///
        /// If subclasses override this method, they should call the base implementation.
        /// </remarks>
        protected virtual void Dispose(bool disposing)
        {
            //Debug.WriteLineIf(!disposing, "****************** " + GetType().Name + " 'disposing' is false. ******************");
            // Must not be run more than once.
            if (m_isDisposed)
            {
                return;
            }

            if (disposing)
            {
                // Dispose managed resources here.
            }

            // Dispose unmanaged resources here, whether disposing is true or false.
            if (m_fPageElementOwnsStream)
            {
                IVwRootBox rootb = m_stream as IVwRootBox;
                if (rootb != null)
                {
                    rootb.Close();
                }
            }

            m_isDisposed = true;
        }
示例#3
0
        /// ------------------------------------------------------------------------------------
        /// <summary>
        /// Prints the given document.
        /// Implements interface IPrintRootSite. Caller is responsible to catch any exceptions.
        /// </summary>
        /// ------------------------------------------------------------------------------------
        public void Print(PrintDocument pd)
        {
#if false
            long x1 = System.DateTime.Now.Ticks;
#endif
            pd.PrintPage += new PrintPageEventHandler(this.pd_PrintPage);
            pd.Print();
            if (m_rootb != null)
            {
                m_rootb.Close();
            }
            // Check whether the printing actually worked (FWNX-759).
            if (pd.PrinterSettings.PrintToFile && !File.Exists(pd.PrinterSettings.PrintFileName))
            {
                var msg = String.Format(Properties.Resources.ksPrintToFileFailed, pd.PrinterSettings.PrintFileName);
                MessageBox.Show(msg, Properties.Resources.kstidPrintErrorCaption);
            }

#if false
            long x2 = System.DateTime.Now.Ticks;
            Debug.WriteLine("PrintRootSite.Print() took " + DeltaTime(x1, x2) + " seconds.");
#endif
        }