Newsgroup: it.comp.appl.notes-domino
Titolo: @compose

Come posso fare componendo un nuovo documento a valorizzare un campo in un
modulo?
In pratica se apro il modulo dalla vista "A" voglio che il campo venga
valorizzato ad "A" e se apro il modulo dalla vista "B" voglio che il campo
venga valorizzato a "B"
Grazie, Luka

 campo venga valorizzato a "B"
Boh.
Io nell'open della vista salverei una Environment Variable e Nel Post 
Open del modulo valorizzerei il campo leggendo la variabile... 
--
http://www.depquest.net

 il Thu, 24 Apr 2003 17:41:23 +0200 scrisse:

Io userei un "Queryopen" sul modulo.
Un Zio Ciano che ha fatto cosi dopo tante prove....
-- 
Ciao./ Zio Ciano.
Born to run Unix
Windows NT: Designed for the Internet. The Internet: Designed for Unix.
http://www.fsf.org/philosophy/no-word-attachments.it.html
(Fare bene non e` bene, fare male non c'e` male.-)

 Un Zio Ciano che ha fatto cosi dopo tante prove....
 Dim session As New NotesSession
 Dim db As NotesDatabase
 Dim view As NotesView
 Dim ViewName As String
 Set db = session.CurrentDatabase
 Set view=curentview
 ViewName = 
view.name
 Messagebox ViewName, MB_OK, "Nome della vista"
Questo mi restituisce type mismatch! Dove sbaglio??? :-(((
Grazie
Un Luka che ha perso il NS Pravda e non riesce più a trovarlo

> Un Luka che ha perso il NS Pravda e non riesce più a trovarlo
Come non detto:
Dim workspace As New NotesUIWorkspace
 Dim view As NotesUIView
 Set view = workspace.CurrentView
 Messagebox view.ViewName
dopo ricerche affannose l'ho trovato già fatto nell'help do LN.
Ciao e Grazie, Luka

Ecco quello che volevo fare:
Sub Click(Source As Button)
 Dim session As New NotesSession
 Dim db As NotesDatabase
 Dim workspace As New NotesUIWorkspace
 Dim view As NotesUIView
 Dim doc As NotesUIDocument
 Dim nomevista As String
 Set db = session.CurrentDatabase
 Set view = workspace.CurrentView
 nomevista=view.ViewName
' Messagebox nomevista
 Set doc = workspace.ComposeDocument ( "", "", "Modulo" )
 If nomevista="Modello" Then
  Call doc.FieldSetText ( "tipo", "Modello")
  Call doc.FieldSetText ( "Stato", "Nuovo")
  Call doc.GotoField( "Sede" )
 End If
End Sub
In pratica con questo pulsante se sono nella vista Modello mi comila i campi
tipo=Modello e Stato=Nuovo. Se sono in un'altra vista mi consente di
compilarli come voglio. Per cui ad esempio posso mettere tipo=PC e
Stato=Installato.
Quello che non capisco č perchč il comando   Call doc.GotoField( "Sede" ) ha
funzionato per 10 volte e adesso insiste a dirmi che il campo non esiste (e
lo fa qualunque campo ci metto!).
Con questo sistema evito di avere 10 moduli per fare la stessa cosa. Uso
sempre lo stesso e lo compilo.
Ciao, Luka
PS
Grazie Zio per l'ispirazione!

 
Perché non usate le formule?
Si puo fare tutto in 2 righe con @Environment(...)
Setti una variabile nel notes.ini quando schiacci il bottone 
all'interno della vista e poi la recuperi appena aperto il modulo.
Ho letto in un manuale che per Domino l'utilizzo delle formule  è + 
veloce che LS, le righe di codice necessario sono minori di molto 
 
Gildo

Setti una variabile nel notes.ini quando schiacci il bottone 
Appunto! Il notes.ini mi piace lasciarlo stare.


 Gildo
Perche' un conto è lavorare su un db che replica e centinaia di utenti se lo
prendono così com'e'... un conto e' intervenire sui notes.ini (server o
client che siano).
Preferisco toccare il notes.ini il meno possibile.
Sbaglio?
Luka

 
Se non vi piace il notes.ini si puo evitare di utilizzarlo e sempre con 
due riche di codice. Crei un agente per ogni vista ( da quanto ho 
capito non sono molte). 
Da una actions nella vista, apri il modulo e poi richiami la macro che 
fissa il valore del campo 
@Command([Compose]; ""; "NomeModulo");
@Command([ToolsRunMacro];"Agente1");
E all'agente basta una sola riga di codice per fare il suo lavoro.
Gildo

 Gildo
Mi sembra una buona cosa... adesso faccio un po' di esperimenti... pero' mi
lascia un dubbio... con l'altro sistema ho un pulsante operazione uguale per
tutte le viste... lo copio e lo incollo ovunque... si arrangia lui a vedere
se la vista e' tale per cui deve settare i campi o meno... qui invece devo
ricordarmi che nella tale vista il pulsante deve richiamare l'agente... e
nella tale altra no..
Devo sperimentare ancora un po' prima di dire cosa in effetti e' meglio...
Comunque GRAZIE, Luka

tutte le viste... lo copio e lo incollo ovunque... si arrangia lui a vedere
Usare le "Operazioni condivise" può aiutare a non fare un'esaurimento...


capito non sono molte). 
Rammento che questo metodo era "obbligatorio" quando c'era la versione <
di 4 ora mi sembra che con qualche riga di codice puoi avere una
flessibilità impressionante.
Io con la queryopen, per esempio, mi ricavo dei dati via ODBC
formattandoli tremendanmente.


 Ciao./ Zio Ciano.
Sģ... se non avessi in giro ancora una cinquantina di client 4... ancora un
paio di mesi e poi mi metto a guardare tutte le cose della rel 5 che non ho
mai sfruttato...
Ciao, Luka

...

Io utilizzerei un <Profile Document> associandolo all'utente, o agli
utenti, corrente/i... come un "notes.ini"
Evento QueryOpenDocument della vista:
@SetProfileField( ProfileName ; FieldName ; ViewValue ; @UserName )
Evento PostOpen del Documento:
FIELD FormFieldName := @GetProfileField( ProfileName ; FieldName
;@UserName)
ciao
gn

mai sfruttato...
Non  ne sono certo ma dovrebbero essere presenti anche sulla 4.
