codice:strSql = "SELECT c.Azienda, c.Indirizzo, c.Civico, c.Cap, c.Citta, c.Cognome, c.Nome, c.Partita_Iva, c.Codice_Fiscale, " & _ " d.Num_Documento, d.Data_Documento, d.Condizione_Documento, d.Tot_Imp_Forn_Euro, " & _ " d.Tot_Imponibile, d.Tot_Iva, d.Acconto, d.Tot_Documento, d.Stato_Fattura, d.Data_Riferimento, " & _ " d.Num_Rif_Fattura, d.Data_Rif_Fattura, d.Id_Attenzione " & _ " FROM Documento d, Cliente c" & _ " WHERE d.Id_Documento = " & vIdDocumento & _ " AND d.Tipo_Documento = '" & vTipoDoc & "' " & _ " AND d.Id_Cliente = c.Id_Cliente" Set RS = Db.Execute(strSql) If Trim(RS(0)) <> "-" Then If Len(Trim(RS(0))) > 40 Then xRangeInizio = "G" xRangeFine = "K" Else xRangeInizio = "H" xRangeFine = "K" End If Else vAnagrafica = Trim(RS(5)) & " " & Trim(RS(6)) If Len(vAnagrafica) > 40 Then xRangeInizio = "G" xRangeFine = "K" Else xRangeInizio = "H" xRangeFine = "K" End If End If X = X + 1 'Inizio Stampa sezione relativa al Cliente Set RG1 = WS.Range(xRangeInizio & X) RG1.Font.Name = "Arial" RG1.Font.Size = 10 RG1.Font.Color = &H800000 RG1.Font.Bold = True RG1.Merge RG1.Value = "SPETT.LE" WS.StandardWidth = 8 WS.Cells.RowHeight = 12.75 vPiva = Trim(RS(7)) vCodFisc = Trim(RS(8)) vNumDocumento = RS(9) vDataDocumento = Trim(RS(10)) vCondDocumento = Trim(RS(11)) vTotImpFornEuro = RS(12) vTotImponibile = RS(13) vTotIva = RS(14) vAcconto = RS(15) vTotDocumento = RS(16) vStatoFattura = Trim(RS(17)) vDataRiferimento = Trim(RS(18)) vNumRifFattura = Trim(RS(19)) vDataRifFattura = Trim(RS(20)) vIdAttenzioneDocumento = CInt(RS(21)) If vIdAttenzioneDocumento <> 0 Then 'Query sulla tabella dei nominativi (solo se valorizzato) strSql5 = "SELECT nom.Nome_Attenzione, nom.Cognome_Attenzione " & _ " FROM Nominativo_Attenzione nom " & _ " WHERE nom.Id_Attenzione = " & vIdAttenzioneDocumento Set RS2 = Db.Execute(strSql5) vCorteseAttenzioneDocumento = Trim(RS2(0)) & " " & Trim(RS2(1)) RS2.Close Set RS2 = Nothing Select Case (vTipoDoc) Case "F" vColore = 17 Case "P" vColore = 45 Case "NC" vColore = 13 End Select Set RG1 = WS.Range("A" & Y, "C" & Y) RG1.Font.Name = "Arial" RG1.Font.Size = 10 RG1.Font.Color = &HFFFFFF RG1.Font.Bold = True RG1.Merge RG1.Value = "Cortese attenz. Sig./Sig.ra" WS.Range("A" & Y, "C" & Y).Interior.ColorIndex = vColore WS.StandardWidth = 8 WS.Cells.RowHeight = 12.75 RG1.BorderAround XlLineStyle.xlContinuous Y = Y + 1 Set RG1 = WS.Range("A" & Y, "C" & Y) RG1.Font.Name = "Arial" RG1.Font.Size = 10 RG1.Font.Color = &H800000 RG1.Font.Bold = True RG1.Merge RG1.Value = vCorteseAttenzioneDocumento WS.StandardWidth = 8 WS.Cells.RowHeight = 12.75 RG1.BorderAround XlLineStyle.xlContinuous End If X = X + 1 If vTipoDoc = "NC" Then 'Inizio Sezione stampa riferimento alla Fattura 'Controllo se la Nota di Credito è legata ad una Fattura strSql3 = "SELECT Id_Fattura " & _ " FROM Fattura_NotaCredito " & _ " WHERE Id_NotaCredito = " & vIdDocumento Set RS2 = Db.Execute(strSql3) If Not RS2.EOF Then 'Se c'è il legame, recupero le informazioni dalla Fattura strSql4 = "SELECT Num_Documento, Data_Documento " & _ " FROM Documento " & _ " WHERE Tipo_Documento = 'F' " & _ " AND Id_Documento = " & RS2(0) Set RS3 = Db.Execute(strSql4) vStringaRiferimento = "Riferimento Fattura N° " & RS3(0) & " del " & RS3(1) RS3.Close Set RS3 = Nothing Else vStringaRiferimento = "Riferimento Fattura N° " & vNumRifFattura & " del " & vDataRifFattura End If RS2.Close Set RS2 = Nothing Set RG1 = WS.Range("G" & X_Rif, "K" & X_Rif) RG1.Font.Name = "Arial" RG1.Font.Size = 10 RG1.Font.Color = &H800000 RG1.Font.Bold = True RG1.Merge RG1.Value = vStringaRiferimento WS.StandardWidth = 8 WS.Cells.RowHeight = 12.75 'Fine Sezione stampa riferimento alla Fattura End If If Trim(RS(0)) = "-" Then Set RG1 = WS.Range(xRangeInizio & X, xRangeFine & X) RG1.Font.Name = "Arial" RG1.Font.Size = 10 RG1.Font.Color = &H800000 RG1.Font.Bold = True RG1.Merge RG1.Value = Trim(RS(5)) & " " & Trim(RS(6)) WS.StandardWidth = 8 WS.Cells.RowHeight = 12.75 X = X + 1 Set RG1 = WS.Range(xRangeInizio & X, xRangeFine & X) RG1.Font.Name = "Arial" RG1.Font.Size = 10 RG1.Font.Color = &H800000 RG1.Font.Bold = True RG1.Merge RG1.Value = Trim(RS(1)) & ", " & Trim(RS(2)) WS.StandardWidth = 8 WS.Cells.RowHeight = 12.75 X = X + 1 Set RG1 = WS.Range(xRangeInizio & X, xRangeFine & X) RG1.Font.Name = "Arial" RG1.Font.Size = 10 RG1.Font.Color = &H800000 RG1.Font.Bold = True RG1.Merge RG1.Value = Trim(RS(3)) & " " & Trim(RS(4)) WS.StandardWidth = 8 WS.Cells.RowHeight = 12.75 vConta = 1 Else If InStr(1, Trim(RS(0)), vbCrLf) <> 0 Then varArray = Split(Trim(RS(0)), vbCrLf) For Each varItem In varArray Set RG1 = WS.Range(xRangeInizio & X, xRangeFine & X) RG1.Font.Name = "Arial" RG1.Font.Size = 10 RG1.Font.Color = &H800000 RG1.Font.Bold = True RG1.Merge RG1.Value = varItem WS.StandardWidth = 8 WS.Cells.RowHeight = 12.75 X = X + 1 vConta = vConta + 1 Next Set RG1 = WS.Range(xRangeInizio & X, xRangeFine & X) RG1.Font.Name = "Arial" RG1.Font.Size = 10 RG1.Font.Color = &H800000 RG1.Font.Bold = True RG1.Merge RG1.Value = Trim(RS(1)) & ", " & Trim(RS(2)) WS.StandardWidth = 8 WS.Cells.RowHeight = 12.75 X = X + 1 Set RG1 = WS.Range(xRangeInizio & X, xRangeFine & X) RG1.Font.Name = "Arial" RG1.Font.Size = 10 RG1.Font.Color = &H800000 RG1.Font.Bold = True RG1.Merge RG1.Value = Trim(RS(3)) & " " & Trim(RS(4)) WS.StandardWidth = 8 WS.Cells.RowHeight = 12.75 Else Set RG1 = WS.Range(xRangeInizio & X, xRangeFine & X) RG1.Font.Name = "Arial" RG1.Font.Size = 10 RG1.Font.Color = &H800000 RG1.Font.Bold = True RG1.Merge RG1.Value = Trim(RS(0)) WS.StandardWidth = 8 WS.Cells.RowHeight = 12.75 X = X + 1 Set RG1 = WS.Range(xRangeInizio & X, xRangeFine & X) RG1.Font.Name = "Arial" RG1.Font.Size = 10 RG1.Font.Color = &H800000 RG1.Font.Bold = True RG1.Merge RG1.Value = Trim(RS(1)) & ", " & Trim(RS(2)) WS.StandardWidth = 8 WS.Cells.RowHeight = 12.75 X = X + 1 Set RG1 = WS.Range(xRangeInizio & X, xRangeFine & X) RG1.Font.Name = "Arial" RG1.Font.Size = 10 RG1.Font.Color = &H800000 RG1.Font.Bold = True RG1.Merge RG1.Value = Trim(RS(3)) & " " & Trim(RS(4)) WS.StandardWidth = 8 WS.Cells.RowHeight = 12.75 vConta = 1 End If End If RS.Close Set RS = Nothing 'Fine Stampa sezione relativa al Cliente 'Inizio Stampa sezione relativa al Congresso X = X + 2 Set RG1 = WS.Range("A" & X, "B" & X) RG1.Font.Name = "Arial" RG1.Font.Size = 10 RG1.Font.Color = &H800000 RG1.Font.Bold = True RG1.Merge RG1.Value = "Nome Evento" WS.Range("A" & X, "B" & X).Interior.ColorIndex = 15 WS.StandardWidth = 8 WS.Cells.RowHeight = 12.75 RG1.BorderAround XlLineStyle.xlContinuous strSql = "SELECT Titolo_Congresso " & _ " FROM Documento d, Congresso c" & _ " WHERE d.Id_Documento = " & vIdDocumento & _ " AND d.Tipo_Documento = '" & vTipoDoc & "' " & _ " AND d.Id_Congresso = c.Id_Congresso" Set RS = Db.Execute(strSql) X = X + 1 'Se il nome del Congresso è maggiore di 80 caratteri, 'recupero solamente i primi 80 caratteri If Len(Trim(RS(0))) > 80 Then vCongresso = Trim(Mid(RS(0), 1, 80)) Else vCongresso = Trim(RS(0)) End If vCongressoDiviso = dividiStringa(Trim(RS(0)), 12) If InStr(1, vCongressoDiviso, vbCrLf) <> 0 Then varArray = Split(vCongressoDiviso, vbCrLf) For Each varItem In varArray Set RG1 = WS.Range("A" & X, "K" & X) RG1.Font.Name = "Arial" RG1.Font.Size = 10 RG1.Font.Color = &H800000 RG1.Font.Bold = True RG1.Merge RG1.Value = varItem WS.StandardWidth = 8 WS.Cells.RowHeight = 12.75 RG1.BorderAround XlLineStyle.xlContinuous 'Setto la variabile a true vACapo = True X = X + 1 Next Else Set RG1 = WS.Range("A" & X, "K" & X) RG1.Font.Name = "Arial" RG1.Font.Size = 10 RG1.Font.Color = &H800000 RG1.Font.Bold = True RG1.Merge RG1.Value = Trim(RS(0)) WS.StandardWidth = 8 WS.Cells.RowHeight = 12.75 RG1.BorderAround XlLineStyle.xlContinuous 'Setto la variabile a false vACapo = False X = X + 1 End If RS.Close Set RS = Nothing 'Fine Stampa sezione relativa al Congresso