Newsgroup: it.comp.appl.notes-domino
Titolo: solo lettura

Vorrei che, aprendo un documento in modalità modifica, solo alcuni campi
fossero modificabili ed altri fossero disponibili in sola lettura (senza
nasconderli quindi !).
Si può fare??

...

Provato ad utilizzare un form diverso?
...oppure utilizzando un form che contenga sia i campi modificabili che i
corrispondenti in visualizzazione e che, a seconda del risultato di una
formula, nasconda i primi o i secondi.
Se vuoi altre spigazioni posta, eventualmente ti mando in posta un esempio.

 wrote in message
8rcoih$efk$1...@server-b.cs.interbusiness.it...

...approfitto della tua disponibilità e ti spiego meglio il mio problema
facendoti un esempio.
Ho un form che mi crea un documento principale, ad es. AZIENDE che contiene
diversi campi fra cui CODICE e DENOMINAZIONE.
Ho un altro form che mi genera un documento risposta al documento di tipo
AZIENDA (e che quindi visualizzo ad un livello gerarchico inferiore), ad
esempio DIPENDENTI; questo documento eredita i valori dei campi CODICE e
DENOMINAZIONE dal documento principale di tipo AZIENDA (usando campi di tipo
"calcolato in composizione").
Ora il problema è che se io modifico il valore dei campi CODICE o
DENOMINAZIONE in un documento di tipo azienda, le modifiche non vengono
estese ai documenti risposta di tipo DIPENDENTI. Potrei scrivere del codice
per farlo ?? Ed eventualmente fare anche in modo che la cancellazione di un
documento principale comporti la cancellazione dei documenti risposta??
Un'idea per aggirare temporaneamente il problema era quella di nascondere i
due campi in modifica...da cui il messaggio precedente. Ma, oltre a non
essere una soluzione proprio elegante, non ho ben capito il tuo consiglio!!
Grazie in anticipo per qualsiasi aiuto tu riesca a darmi.

Grazie in anticipo per qualsiasi aiuto tu riesca a darmi.
Quando tu crei la rispota, questa eredita il valore, non un link.
Per questo motivo dopo un cambiamento nel doc principale non cambia niente.
Puoi fare in vari modi + o - dispendiosi in tempo macchina:
1) Usare l'id del doc padre ed andarti a riempire in VISUALIZZAZIONE i campi
quando apri il figlio (prendendo il padre tramite l'id e copiando i valori
interessati); ma tieni conto che quei campi non saranno utilizzabili
direttamente nei documenti risposta (Es: nelle ricerche) dato che non sono
inseriti nella Note.
2) Continuare come adesso ma inserire uno script nella QuerySave del padre
che recupera tutti i figli e modifica i campi ereditati.
Per quello che riguarda la cancellazione, devi gestire l'evento di richiesta
cancellazione negli script di database e, se il documento è un padre, far
cercare tutti i figli e cancellarli (ATTENZIONE! Non è semplicissimo perché
mi sembra che, mentre il padre viene semplicemente marcato per la
cancellazione, i figli si possano  semplicemente eliminare, con conseguenti
problemi in caso di errore).
Se vuoi ulteriori info puoi chiedermele anche direttamente all'indirizzo
della mail di notifica che ti ho spedito a 
sin...@tin.it
.

 problemi in caso di errore).
A mio parere in questo caso si puň gestire la cancellazione con il solo
script, oppure si puň fare un agent schedulato che cancelli tutti i
documenti senza padre dal db.
Fulvio Rogantin

documenti senza padre dal db.
Tutto già visto.
Per casi semplici si può utilizzare l'agent ma richiede + lavoro alla
macchina, dato che deve scandire TUTTI i figli e cercare per ognuno il padre
per ID per poi cancellare in caso di assenza (si può ottimizzare un po'
facendo prima cercare i fratelli di un orfano per cancellarli tutti
insieme). Inoltre o si schedula l'agente frequentemente (carico per il
server) o si rischia di fare un bel po' di casino (almeno gli utenti) dato
che rimarrà garbage in giro fino al prossimo scheduling.
Per i casi + complessi conviene trappare la cancellazione in modo da far
marcare ad uno script tutti i documenti. Questi dovrebbero essere marcati
con un flag che sia respinto nelle formule di selezione di tutte le viste e
che sia incluso solo nella vista cancellati. Da questa sarebbe possibile
riabilitare i documenti cancellati erroneamente con una action (si può
impostare il nome del cancellatore per farli riabilitare solo da lui). La
pulizia sarebbe effettuata sempre da un agent che gira solo una volta al
giorno; più precisamente la notte subito dopo lo scheduling del back-up ;-)
Se vi sembra tutto corretto ditelo, altrimenti ditelo lo stesso, anche con
male parole.
Ora scusate ma devo litigare con un thread per il check si estrazione di una
smart card perché se non mi va domattina mi dannno 10.
Buonanotte a tutti.


Buongiono a tutti

campi calcolati in base al campo che modifico nel padre.
Non capisco l'osservazione. Intendi dire che il campo non č semplicemente
ereditato ma che lo usi nella formula per determinare il valore reale? Si
puň fare anche quello nello script precedente, non vedo il problema.


Intendo dire che alle volte eredito nel campo figlio dei campi e mi calcolo
degli altri campi in funzione del valore ereditato. E' ovvio che posso fare
tutto quello che voglio nel lato "padre" con lo script al momento
dell'aggiornamento; in questi casi preferiscom però mantenere le formule da
una sola parte e non duplicarle tra campo e script.
Comuqneu gira e rigira le cose le puoi fare nei due modi valutando la
conevnienza a seconda della situazione; questo è uno dei casi in cui non
esiste una regola fissa.
Fulvio

esiste una regola fissa.
Pienamente daccordo :-)