Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it L'avatar di tony83
    Registrato dal
    Feb 2005
    Messaggi
    3,179

    Vb.net Sviluppare stampe a unioni in Word

    Porgo questa domanda sperando che Alka (moderatore) non mi uccide, visto i precedenti

    Sto cercando di fare la prima stampa a unioni ma vi GIURO che su google non lo trovo!!! Sapete dove posso trovare qualche esempiuccio che spieghi passo passo?

    Ve ne sarei grato!

    Grazie anticipatamente!
    Tony

  2. #2
    Utente di HTML.it L'avatar di tony83
    Registrato dal
    Feb 2005
    Messaggi
    3,179

    Problema con stampe a unioni Word vb.net

    codice:
       ' Dichiaro l'oggeto oWord
            Dim oWord As Word.Application
            oWord = New Word.Application()
            Dim docWord As Word.Document = oWord.Application.Documents.Add()
            Dim wSelection = oWord.Selection     'questo è l'oggetto selezione
    
            Sql = "SELECT COUNT(id_societa) AS numRighe from societa where id_societa = " & CInt(cmb_idSocietaComunicazione.SelectedItem())
            ApriConnessione()
            ApriDataBase(Sql, Dr)
            Dim numRighe As Integer
            If Dr.Read() Then
                numRighe = Dr("numRighe")
            End If
            Dr.Close()
            ChiudiDataBase(Dr)
    
            Sql = "SELECT denominazione,indirizzo,cap,citta,codice_fiscale,partita_iva from societa where id_societa = " & CInt(cmb_idSocietaComunicazione.SelectedItem())
            ApriConnessione()
            ApriDataBase(Sql, Dr)
            Dim wdCell As Word.Cells
            If numRighe <= 0 Then
                Exit Sub
            End If
            oWord.ActiveDocument.Tables.Add(wSelection.Range, numRighe + 1, 12)
            wSelection.TypeText(Text:="Società")
            oWord.Selection.MoveRight()
            wSelection.TypeText(Text:="Indirizzo")
            oWord.Selection.MoveRight()
            wSelection.TypeText(Text:="Cap")
            oWord.Selection.MoveRight()
            wSelection.TypeText(Text:="Città")
            oWord.Selection.MoveRight()
            wSelection.TypeText(Text:="CodiceFiscale")
            oWord.Selection.MoveRight()
            wSelection.TypeText(Text:="PartitaIva")
            oWord.Selection.MoveRight()
            wSelection.TypeText(Text:="Oggi")
            oWord.Selection.MoveRight()
            wSelection.TypeText(Text:="DallePrimo")
            oWord.Selection.MoveRight()
            wSelection.TypeText(Text:="AllePrimo")
            oWord.Selection.MoveRight()
            wSelection.TypeText(Text:="DalleSecondo")
            oWord.Selection.MoveRight()
            wSelection.TypeText(Text:="AlleSecondo")
            oWord.Selection.MoveRight()
            wSelection.TypeText(Text:="GiornoAppuntamento")
            oWord.Selection.MoveRight()
            While Dr.Read
                wSelection.TypeText(Text:=Dr(0))
                oWord.Selection.MoveRight()
                wSelection.TypeText(Text:=Dr(1))
                oWord.Selection.MoveRight()
                wSelection.TypeText(Text:=Dr(2))
                oWord.Selection.MoveRight()
                wSelection.TypeText(Text:=Dr(3))
                oWord.Selection.MoveRight()
                wSelection.TypeText(Text:=Dr(4))
                oWord.Selection.MoveRight()
                wSelection.TypeText(Text:=Dr(5))
                oWord.Selection.MoveRight()
                wSelection.TypeText(Text:=CStr(Today))
                oWord.Selection.MoveRight()
                wSelection.TypeText(Text:=txDaOre1.Text)
                oWord.Selection.MoveRight()
                wSelection.TypeText(Text:=txDaOre2.Text)
                oWord.Selection.MoveRight()
                wSelection.TypeText(Text:=txAdOre1.Text)
                oWord.Selection.MoveRight()
                wSelection.TypeText(Text:=txAdOre2.Text)
                oWord.Selection.MoveRight()
                wSelection.TypeText(Text:=dpData.Text())
                oWord.Selection.MoveRight()
            End While
            Dr.Close()
    
            oWord.ActiveDocument.SaveAs(FileName:=Path.GetDirectoryName(Environment.CurrentDirectory) & "\Modelli\Comunicazione.doc")
            oWord.ActiveWindow.Close()
            ChiudiDataBase(Dr)
    
            Dim obj_mailMerge As Word.MailMerge
            obj_mailMerge = docWord.MailMerge
            obj_mailMerge.Destination = WdMailMergeDestination.wdSendToNewDocument
            obj_mailMerge.Execute(False)
    
            oWord = Nothing
            wSelection = Nothing
            docWord = Nothing
    Problema con stampe a unioni.. errore:

    Eccezione non gestita di tipo "System.Runtime.InteropServices.COMException" in pippo.exe

    Informazioni aggiuntive: Chiamata a procedura remota non riuscita.
    Tony

  3. #3
    Utente di HTML.it L'avatar di tony83
    Registrato dal
    Feb 2005
    Messaggi
    3,179
    up
    Tony

  4. #4
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,480

    Moderazione

    Originariamente inviato da tony83
    Porgo questa domanda sperando che Alka (moderatore) non mi uccide, visto i precedenti
    ...ma posso ucciderti ora.

    Ho unito le discussioni che hai aperto sull'argomento, usando quella più nuova come "precisazione".

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  5. #5
    Utente di HTML.it L'avatar di tony83
    Registrato dal
    Feb 2005
    Messaggi
    3,179
    Ho risolto.. Se a qualcuno può essere utile posso postare il codice, almeno cerco di essere utile anche io quando posso e sopratutto se riesco!

    Fatemi sapere ciao

    Ciao grazie
    Tony

  6. #6
    Utente di HTML.it L'avatar di tony83
    Registrato dal
    Feb 2005
    Messaggi
    3,179
    Ok!
    codice:
      Private Sub CreaTabella(ByVal p_str_sql As String, _
                                ByVal p_str_stringaCampiForm As String, _
                                ByVal p_str_stringaContenutoCampiForm As String, _
                                ByVal p_nomeFileTabella As String)
            Try
                oWord = New Word.Application()
                Dim docWord As Word.Document = oWord.Application.Documents.Add()
                Dim wSelection = oWord.Selection     'questo è l'oggetto selezione
                Dim obj_mailMerge As Word.MailMerge
                Dim obj_MergeFields As Word.MailMergeFields
                Dim arr_campiForm As String()
                arr_campiForm = Split(p_str_stringaCampiForm, ";", , CompareMethod.Text)
                Dim arr_ContenutoCampiForm As String()
                arr_ContenutoCampiForm = Split(p_str_stringaContenutoCampiForm, ";", , 
    
    CompareMethod.Text)
    
                Sql = p_str_sql
                ApriConnessione()
                ApriDataBase(Sql, Dr)
                Dim wdCell As Word.Cells
    
                'Colonna + 1 per Today 
                Dim int_numeroColonne As Integer = CInt(Dr.FieldCount + arr_campiForm.Length + 
    
    1)
                ' Riga + 1 per intestazione
                oWord.ActiveDocument.Tables.Add(wSelection.Range, 1, int_numeroColonne)
    
                Dim contatore As Integer
    
                ' ___  INTESTAZIONE (NOMI RECORD USATI DA WORD)
                ' Inserisco nell'intestazione i nomi dei campi (nomi dei record di word) + 
    
    Campi form + Today
                ' Campi Db
                For contatore = 0 To Dr.FieldCount - 1
                    Dim campoDb As String = Dr.GetName(contatore).ToString
                    campoDb = Replace(campoDb, ".", "")
                    campoDb = Replace(campoDb, "[", "")
                    campoDb = Replace(campoDb, "]", "")
                    wSelection.TypeText(Text:=campoDb)
                    oWord.Selection.MoveRight()
                Next
    
                'Campi Form
                For contatore = 0 To arr_campiForm.Length - 1
                    wSelection.TypeText(Text:=arr_campiForm(contatore))
                    oWord.Selection.MoveRight()
                Next
                ' Today
                wSelection.TypeText(Text:="Oggi")
                oWord.Selection.MoveRight()
                ' _________________________________________________________
    
                int_record = 0
                While Dr.Read
                    Dim str_nomeCampo As String
                    oWord.Selection.Rows.Add()
                    For contatore = 0 To Dr.FieldCount - 1
                        wSelection.TypeText(Text:=Dr(contatore))
                        oWord.Selection.MoveRight()
                    Next
                    For contatore = 0 To arr_campiForm.Length - 1
                        wSelection.TypeText(Text:=CStr(arr_ContenutoCampiForm(contatore)))
                        oWord.Selection.MoveRight()
                    Next
                    wSelection.TypeText(Text:=CStr(Today))
                    oWord.Selection.MoveRight()
                    int_record += 1
                End While
                If int_record <= 0 Then
                    Exit Sub
                End If
                Dr.Close()
                ChiudiDataBase(Dr)
                oWord.ActiveDocument.SaveAs(Environment.CurrentDirectory & "\Modelli\" & 
    
    p_nomeFileTabella & ".doc")
                oWord.ActiveWindow.Close()
                wSelection = Nothing
                oWord = Nothing
                docWord = Nothing
            Catch ex As Exception
                MessageBox.Show("Operazione annullata", "", MessageBoxButtons.OK, 
    
    MessageBoxIcon.Error)
            End Try
      End Sub
    
    
    ' ----------------------------------------------------------------------------------------
     Private Sub StampaUnione(ByVal p_fileDati As String, ByVal p_modello As String)
            If int_record = 0 Then
                MessageBox.Show("Nessun risultato trovato.", "",MessageBoxButtons.OK, 
    
    MessageBoxIcon.Information)
                Exit Sub
            End If
            Try
                ' Dichiaro l'oggeto oWord
                oWord = New Word.Application()
                oWord.Documents.Open(p_modello)
                oWord.Visible = True
    
                oWord.ActiveDocument.MailMerge.MainDocumentType = 
    
    WdMailMergeMainDocType.wdFormLetters
                oWord.ActiveDocument.MailMerge.OpenDataSource(p_fileDati)
    
                With oWord.ActiveDocument.MailMerge
                    .Destination = WdMailMergeDestination.wdSendToPrinter
                    .MailAsAttachment = False
                    .MailAddressFieldName = ""
                    .MailSubject = ""
                    .SuppressBlankLines = True
                    .Execute(Pause:=True)
                End With
    
                oWord.Documents.Close(WdSaveOptions.wdDoNotSaveChanges)
    
                oWord = Nothing
            Catch ex As Exception
                MessageBox.Show("Operazione annullata", "", MessageBoxButtons.OK, 
    
    MessageBoxIcon.Error)
            Finally
                oWord = Nothing
            End Try
    
    'Questo invece usato da Access a Word anzichè Word Word ma non l'ho usato!
    
            'Dim objWord As Word.Document
            'objWord = GetObject(percorso & p_modello)
            '' Make Word visible.
            'objWord.Application.Visible = False
            'objWord.MailMerge.OpenDataSource( _
            '                   Name:=percorso, _
            '                   LinkToSource:=True, _
            '                   Connection:="TABLE STAMPAUNIONE", _
            '                   SQLStatement:="SELECT * FROM STAMPAUNIONE")
    
            'objWord.MailMerge.Destination = WdMailMergeDestination.wdSendToNewDocument
            'objWord.MailMerge.Execute()
    
            'objWord.Application.Options.PrintBackground = False
            'objWord.Application.ActiveDocument.PrintOut()
    
        End Sub ' Tutte le stampe usano queste sub. E' il motore delle stampe
    Tony

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.