Newsgroup: it.comp.appl.notes-domino
Titolo: FOR JUDA....

Ciao Juda,
Io ho un bel po' di delucidazioni da chiederi...
1)L'altro giorno avevo postato su questo NG su che significato avesse
L'unprocessed... sinceramente anche se mi vergono un po' a dirlo, non
è che abbia capito un gran chè...
Allora questo è lo script che ho sottomano nel quale viene utilizzato
questo modulo...
Mi faresti un grandissimo favore?
Mi commenteresti riga x riga questo script se hai tepo e voglia così
che io possa capire e risolvere tutti i miei dubbi?
Mi saresti davvero di grande aiuto..
Anzi facciamo così...Lo inizio a commentare io e mi correggi dove 
sbaglio...Ok?
**********************************************************************
Sub Click(Source As Button)	
'' ECCO GIA' QUI NON CAPISCO COME FA A RICONOSCERE L'ERRORE
'' CIOE' DICE CHE NEL CASO CI SIA UN ERRORE VA AL LABEB Errhandle
'' E NEL CASO VI SIA UN ERRORE 4005 va al label Errhandle4005
'' Ma perchè appena si entra in questa operazione dovrebbe esserci
'' un errore?
 
	On Error Goto Errhandle          
	On Error 4005 Goto Errhandle4005     
        ''' nome database già utilizzato          
 
	Dim ws As New notesuiworkspace	
	Dim session As New notessession
	Dim currDB As notesdatabase	
	Dim Template As notesdatabase	
	Dim NewPrincipale As notesdatabase	
	Dim SelColl As notesdocumentcollection
	Dim uidoc As notesUIdocument
	Dim doc As notesdocument
	Dim seldoc As notesdocument
	Dim refdoc As notesdocument
	Dim docCampagna As notesdocument
	Dim nomeTemplate As String
	Dim Messaggio As String
        'IL CAMPO RICHTEXT NON HO ANCORA CAPITO COS'E'...
	Dim rtitem As notesRichTextItem
 
	Set currDb = session.currentDatabase
	' SECONDO ME--> 
        ' SelColl Contiene il documento selezionato nella vista
	Set SelColl = currDB.Unprocesseddocuments
	' QUINDI Unprocesseddocument corrisponde al 
          documento selezionato?
 
	If SelColl.count = 0 Then
		messaggio = "Nessun documento selezionato. "
		Msgbox messaggio, 16, "Errore"
		Exit Sub
	End If
 
	Dim docconfig As notesdocument	
	'Accede al primo documento della vista "Config" che contiene
	'Le impostazioni di configurazione inserite nel modulo
        ' Configurazione
        'Legge il primo documento della vista
	Set docconfig = currdb.Getview("config").getfirstdocument
	'Se non è presente alcun documento nella vista
        If docconfig Is Nothing Then
		Msgbox "Configurazione non effettuata. ", 16, "Errore"
		Exit Sub
	End If
 
	''' inserimento codice e descrizione campagna
        ''GIA QUI HO QUALCHE DUBBIO...SelCol cosa contiene??
	'avevamo detto il documento selezionato e quindi perchè deve
        'leggere il primo documento?Ho capito,perchè SelDoc è una
        'ColLetionDocument è quindi si potrebbero selezionare + 
        'documenti in una sola volta... 
        Set seldoc = SelColl.GetFirstDocument
 
        'Qui che fà?Crea un documento vuoto?  
	Set DocCampagna = currDb.Createdocument
	DocCampagna.Form = "camp"
        'Fa apparire una dialogBox con all'interno la form CAMP, 
        'un titolo e gli associa un documento al form?
	flag = ws.DialogBox( "camp", , , , , , , "Nuova Campagna",_
	docCampagna, , )
        'Se premo Annulla
	If flag = False Then
		Exit Sub
	End If
        'Salva DocCampagna associato al Form True e True cosa 
        'significa? 
	Call docCampagna.save(True,True)
 
	'In campagna c'è ciò che ho inserito nel form "Camp" nel campo
        ' DescCampagna
        campagna = docCampagna.DescCampagna(0)
	'Idem come sopra solo che il campo in questione è NomeNEWPROD..
        nomeNewProduzione = DocCampagna.NomeDatabase(0)
	'''creazione database principale 
	'Rissegna per la 2° volta a SelDoc il 1° documento selezionato
        'PERCHE?
        Set seldoc = selcoll.getfirstdocument
 
	'Associa a Nometemplate il campo Nome_Template_Principale...
        'preso dal documento selezionato nella vista...
        nometemplate = 	seldoc.Nome_Template_Principale(0)
 
	'Stampa nella barra in basso di Lotus la scritta
        Print "Creazione del database" & seldoc.Path(0) + " " + campagna
 
	'Da qui INIZIO A PERDERMI...
        'Template contiene che cosa un Database che con esiste?
        'Boh? 
        Set Template= session.GetDatabase (currdb.server, nomeTemplate)
 
        ''COSA FA CREA Un Nuovo database da che cosa?
        Set NewPrincipale = Template.CreateFromTemplate(_
	currdb.server, nomeNewProduzione, True )
 
        'DA un titolo al database creato
        NewPrincipale.Title = seldoc.Path(0) + " " + campagna
 
        'Da dove arriva DocConfig?Forse copia in docConfig il database
        'NewPrincipale
        Call docconfig.copytodatabase(NewPrincipale)
 
	'ORA MI PERDO...
        Dim richStyle As NotesRichTextStyle
	Set richStyle = session.CreateRichTextStyle
	richStyle.NotesColor = COLOR_DARK_BLUE ''''(10)
 
	While Not seldoc Is Nothing
		'se il cliente è attivo
 
		Print "Aggiornamento Lista Campagne per il Cliente " &
seldoc.Cliente_Nome(0)
 
		If seldoc.Stato(0) = "A" Then
		'aggiorno il campo campagne
			Dim item As notesitem
			Set Item = selDoc.GetFirstItem("Campagne")
			Call Item.AppendTotextList(campagna)
			Set rtitem =  seldoc.GetFirstItem ("LinkCampagne" )
			Call rtitem.AppendStyle(richStyle)
			Call rtitem.AppendDocLink(NewPrincipale,"database
"+newprincipale.Title)
			Call rtitem.AppendText(campagna)
			Call rtitem.AddNewLine(1)			
			Call selDoc.save(False,True)
		'creo sul db cliente il documento contatto associato
 
			Print "Creazione Contatto per il Cliente " & seldoc.Cliente_Nome(0)
 
			Dim DocContatto As Notesdocument
			Set DocContatto = NewPrincipale.createDocument
			DocContatto.form = "contatto"
			DocContatto.Stato = "1"            ' da contattare(codice)
 
			Dim docstato As notesdocument
			Dim dbtab As notesdatabase
			Set dbtab =
session.getdatabase(seldoc.Nome_Server(0),seldoc.Nome_db_tabelle(0))
			Set docstato =
dbtab.getview("statocontatto").getdocumentByKey("1",True)
			DocContatto.Stato_Desc = docstato.Stato_Contatto(0)      ' da
contattare(descrizione)
 
			DocContatto.StoricoStato = docstato.Stato_Contatto(0)      ' da
contattare(descrizione)
			DocContatto.StoricoStatoDataOra = (Date$ + "  " + Time$)
			DocContatto.StoricoStatoOperatore = Evaluate("@Name([CN];@UserName)")
 
			DocContatto.Cliente_Codice = seldoc.Cliente_Codice(0)
			DocContatto.Cliente_Nome = seldoc.Cliente_Nome(0)
			DocContatto.telefono = seldoc.telefono(0)
			DocContatto.fax = seldoc.fax(0)
			DocContatto.sito = seldoc.sito(0)
			DocContatto.email = seldoc.email(0)		
			Set rtitem = New NotesRichTextItem( DocContatto, "LinkCliente" )
			Call rtitem.AppendDocLink(seldoc, "Informazioni relative al cliente")
						' se esiste un referente predefinito, lo aggiungo al doc contatto
			Dim refview As notesview
			Set refview = currDb.getview("refpred")
			Dim docref As notesdocument				
			Set docref = refview.getdocumentbykey(seldoc.Cliente_Codice(0),True)
			If Not docref Is Nothing Then
 
				Print "Aggiornamento Referente su Contatto"
 
				DocContatto.Referente = docref.Referente(0)
				DocContatto.Ruolo = docref.Ruolo(0)
				DocContatto.tel_ref = docref.tel_ref(0)
				DocContatto.fax_ref = docref.fax_ref(0)
				DocContatto.email_ref = docref.email_ref(0)
				Set rtitem = New NotesRichTextItem( DocContatto, "LinkReferente" )
				Call rtitem.AppendDocLink(docref, "Informazioni relative al
referente")
			End If
			Call docContatto.Save(True,True)
		' passo al documento cliente successivo
		End If
		Set seldoc = selColl.GetNextDocument(selDoc)
	Wend
 
	Print " "
 
	Exit Sub
 
Errhandle:
	Messagebox "Error " & Str(Err) & ": " & Error$
	Exit Sub
 
Errhandle4005:        ' gestione nome duplicato
	campagna = campagna + "_1"
	nomeNewProduzione = seldoc.Path_Prod(0) + "/"  + campagna +".nsf"
	Resume 0
	Exit Sub
End Sub
***********************************************************************
ALLA FINE DOVREBBE ASSEGNARE AI CAMPI DEL NUOVO DATABASE I VALORI DI
CIO' CHE HO SELEZIONATO...
Grazie Juda se hai la voglia di rispondermi...
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

	'ORA MI PERDO...
Compila il campo con attributi, specificando gli attributi.

Esatto.

 Grazie Juda se hai la voglia di rispondermi...
Niente ringraziamenti ma, se mi permetti, ti consiglio di usare un po'
di più l'help del designer, visto che molte delle risposte qui sopra
potevi averle dalla documentezione... il mio sospetto, però, è che,
specialmente nel caso del "True, True", il tuo problema stia più nella
comprensione del mondo Domino... hai idea di cosa sia una replica o un
template? Lo sai che in domino i documenti non sono mai lockati? (se li
locko io si ;;;-) )
--
Juda of 3AM - juda(strudel)
despammed.com
/---------------/
Nella mia condizione di base sono piuttosto acido, ma difficilmente
rimango di sale.

Di' la verità, mi hai anticipato per mantenermi libero dall'impegno di
rispondere...
E almeno quota decentemente che per trovare alcuni tuoi commenti mi sono
sfatto gli occhi (interponi delle righe vuote che non si distingue
quello che scrivi tu).



Tu c'hai ragione.. ma con Free Agent il quotato e' in blu e qunque
chiaro.
Certo che ti tengo libero. :-)

 chiaro.
E poi dicono che sono io il bastardo...



Guarda... io sono DAVVERO bastardo. SOlo che sono TALMENTE bastardo
che faccio il gentile, senno' poi do' fuori di matto.
Al povero daniele ho fatto tre versioni della risposta.
A tutto c'e' un limite :-))
Anche alla conoscenza di VB in generale.