Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    [VB2010 WinForms] Classe per report errori generati, ON ERROR GOTO ... RESUME

    ho alcuni metodi che disegnano il formato e struttura dei documenti office..alcuni comandi vanno in errore (non ho capito perchč su alcuni pc va e su altri da errore, forse dipende dalla differente versione di office installara sui vari pc ) comunque sia, la loro funzione non č importante ai fini del risultato, ma devo comunque avvissare l'utente che ci sono stati errori durante la creazione!!

    per il momento utilizzo una mia classe di gestione errori che tiene traccia di tutti gli errori incontrati durante il disegno e formattazione dei documenti e questa mi visualizza i messaggi di errore al termine del processo di creazione e disegno..

    per il momento mi sono comportato cosė.. all'inizio del codice critico, attivo la mia classe (ERRORI.) seguita dal comando "ON ERROR GOTO ERRORE" che ogni qualvolta si verifica un errore salta alla riga ERRORE: esegue l'aggiunta del messggio d'errore alla mia classe errori e poi ritorna ad eseguire l'istruzione succesiva con RESUME NEXT...

    funziona, ma siccome vorrei inserire questa classe nella libreria, dovrei arrivare a sostituire le righe gestite da ON ERROR GOTO ..... RESUME NEXT per renderla utilie davvero...

    com'č possibile gestire questa cosa...? č possibile attivare qualcosa che a ogni errore mi esegua una sub (che aggiunge il mess di errore alla mi classe) e poi ritorna continuando ad eseguere il codice?
    Michele

  2. #2
    questo č uno dei motodi dove eseguo il traciamento degli errori:
    codice:
        Private Sub Setta_FoglioMargini_PičPagina(ByVal Foglio As System.Object, ByVal Intestazione As String)
    
    ' setto la mia classe errori 
            ERRORI.INIZIA_Tracciatura("Errori durante il settaggio dei margini e pič pagina del foglio excel!..")
            On Error GoTo Errori ' a ogni errore  salta alla riga: Errori
    
    ' qua inizia tutto il codice per excel
    
            With DirectCast(Foglio.PageSetup, Excel.PageSetup)
                '.Application.ActiveWindow.View = Excel.XlWindowView.xlPageBreakPreview
                .Application.PrintCommunication = False
    
                .PrintTitleRows = ""
                .PrintTitleColumns = ""
    
                .Application.PrintCommunication = True
                .Application.PrintCommunication = False
    
                .PrintArea = ""
    
                .Application.PrintCommunication = True
                .Application.PrintCommunication = False
    
                '.Orientation = Excel.XlPageOrientation.xlLandscape ' non supportata in vb.net
                .LeftHeader = ""
                .CenterHeader = ""
                .RightHeader = ""
                .LeftFooter = ""
                .CenterFooter = Intestazione
                .RightFooter = ""
    
                .Application.PrintCommunication = True
                .Application.PrintCommunication = False
    
                .LeftMargin = 0.25
                .RightMargin = 0.25
                .TopMargin = 0.3
                .BottomMargin = 0.3
                .HeaderMargin = 0
                .FooterMargin = 0
    
                .Application.PrintCommunication = True
                .Application.PrintCommunication = False
    
                .PrintHeadings = False
                .PrintGridlines = False
                .PrintComments = Excel.XlPrintLocation.xlPrintNoComments
                .PrintQuality = 600
                .CenterHorizontally = False
                .CenterVertically = False
                .Draft = False
                .PaperSize = Excel.XlPaperSize.xlPaperA4
                .FirstPageNumber = -4105 ' equivale a : .xlAutomatic per vba
                .Order = Excel.XlOrder.xlDownThenOver
                .BlackAndWhite = False
                .Zoom = 100
                .PrintErrors = Excel.XlPrintErrors.xlPrintErrorsDisplayed
                .OddAndEvenPagesHeaderFooter = False
                .DifferentFirstPageHeaderFooter = False
                .ScaleWithDocHeaderFooter = True
                .AlignMarginsHeaderFooter = True
                .EvenPage.LeftHeader.Text = ""
                .EvenPage.CenterHeader.Text = ""
                .EvenPage.RightHeader.Text = ""
                .EvenPage.LeftFooter.Text = ""
                .EvenPage.CenterFooter.Text = ""
                .EvenPage.RightFooter.Text = ""
                .FirstPage.LeftHeader.Text = ""
                .FirstPage.CenterHeader.Text = ""
                .FirstPage.RightHeader.Text = ""
                .FirstPage.LeftFooter.Text = ""
                .FirstPage.CenterFooter.Text = ""
                .FirstPage.RightFooter.Text = ""
    
                .Application.PrintCommunication = True
    
            End With
    
            On Error GoTo 0 ' qua termina anche la tracciatura
            Exit Sub
    
    Errori:  ' questa parte viene eseguita solo se si verifica uno o + errori
            ERRORI.Add(Err)  ' aggiungo l'errore alla mia classe
            Resume Next ' ritorna as eseguire l'istruzione successiva
    
        End Sub
    Michele

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.