1. ‹ Older
  2. last week

    Massimiliano C

    is not verified Sep 14 Europe (Italy, Bergamo)

    quando lo chiami lo passi
    dim wrep as new Report1
    wrep.tiporeport = "TITOLO"
    If wrep.Run etc etc

  3. Massimiliano C

    is not verified Sep 14 Europe (Italy, Bergamo)
    Edited last week

    non chiamo mai gli oggetti per nome, si offendono.
    chiamo un nuovo oggetto di x e gli passo i parametri.
    ad esempio la finestra clienti
    dim wclienti as new clienti
    wclienti.nome.text = "Massimiliano"
    ... etc etc ...

    è più pratico.
    ad esempio ho una classe di tipo windows dove ho messo una property che ho chiamato 'chiamante' di tipo weakref
    quando chiamo la finestra :

    dim wclienti as new clienti
    wclienti.chiamante = new weakref(self)

    ...
    se devo riportare un valore all finestra che ha chiamato la finestra clienti :
    if Chiamante<>nil and Chiamante.Value<>nil and Chiamante.Value isA elencoclienti then
    clienti(Chiamante.Value).Aggiorna // chiamo il metodo aggiorna della finestra che ha aperto clienti
    end if

  4. Massimiliano C

    is not verified Sep 14 Europe (Italy, Bergamo)

    A regola puoi anche fare così .. metti caso il titolo del report si chiama titolo...

    dim wrep as new report1
    wrep.titolo.text = "TITOLO DEL REPORT"
    ----
    e poi eseguo il report con run...

  5. Nedi F

    Sep 14 Europe (Italy, Bologna)

    Il mio report si chiama "ElencoClienti" ed ha la proprietà "Order".
    Dalla window eseguo
    rpt = New ElencoClienti rpt.order = "C"
    Qui però mi dice che l'oggetto rpt non ha nessun "order".....

  6. Nedi F

    Sep 14 Europe (Italy, Bologna)

    La variabile oggetto "rpt" non ha accesso a tutti i controls del report

  7. Massimiliano C

    is not verified Sep 14 Europe (Italy, Bergamo)

    hai provato ad impostare direttamente il titolo con rpt.campo.text ?

  8. Martin T

    Sep 14 Pre-Release Testers Germany
    Edited last week

    @Nedi F Thank you, Martin. Unfortunately I cannot login to Dropbox (I don't know why).

    Nedi, you don't have to log in to Dropbox to download the project. There is a button at the top right of the page called "Download" and there you can select "Direct Download".

  9. Nedi F

    Sep 14 Europe (Italy, Bologna)

    Con rpt non vedo nessuno degli oggetti presenti nel report

  10. Nedi F

    Sep 14 Europe (Italy, Bologna)

    Ok Martin. Now I take a look at your project. Thanks.

  11. Nedi F

    Sep 14 Europe (Italy, Bologna)

    Well done, Martin! Your example works perfectly!
    The difference with my code is how I declare the report:

    Dim rpt As Report
    rpt = New ElencoClienti

    In this way rpt doesn't show me anything that is defined in the report.
    You declare the report

    Dim rpt As New Report1

    and this is the right way (I think) if you want have access to the report objects.

    I'll modify my project following your example.
    Thank you so much!!

  12. Martin T

    Sep 14 Pre-Release Testers Germany
    Edited last week

    @Nedi F
    Dim rpt As Report rpt = New ElencoClienti

    Just change this into

    Dim rpt As New ElencoClienti

    and you should also get access to the Properties.

  13. Nedi F

    Sep 14 Europe (Italy, Bologna)

    Hi Martin! I have done the changes following your code and everything works fine!!

    Thank you very much!!

  14. Nedi F

    Sep 15 Europe (Italy, Bologna)

    @MassimilianoChiodi non chiamo mai gli oggetti per nome, si offendono.
    chiamo un nuovo oggetto di x e gli passo i parametri.
    ad esempio la finestra clienti
    dim wclienti as new clienti
    wclienti.nome.text = "Massimiliano"
    ... etc etc ...

    è più pratico.

    Max, che differenza c'è tra utilizzare direttamente il nome della window (avendo impostato ad ON la proprietà Implicit Instance), ed invece fare come fai tu

    dim wclienti as new clienti

    Perché dici che è più pratico? Non riesco a capirne la differenza...come non capisco tutta la storia del chiamante, weakref ecc.
    Perdonami, ma ho ancora molto da imparare di Xojo!

  15. Massimiliano C

    is not verified Sep 15 Europe (Italy, Bergamo)

    Allora, ti faccio un esempio semplice.
    Mettiamo che stai scrivendo un'applicazione grande.
    Hai un'elenco di clienti, dove poi richiami la scheda del singolo cliente.
    Dall'altra parte hai un elenco documenti, dove apri la scheda del documento, dove all'interno della scheda documento devi selezionare un cliente aprendo la lista dei clienti, e siccome il cliente non lo hai trovato lo devi inserire nella sua scheda, quindi aprirai la scheda del cliente.
    però l'elenco clienti è già aperto così come la scheda del cliente.

    Come nel video qui!

  16. Nedi F

    Sep 15 Europe (Italy, Bologna)

    Adesso mi è chiaro: col tuo metodo puoi istanziare una window tutte le volte che vuoi, con il mio solo una.

    Quando avrai tempo e voglia mi chiarisci anche il concetto di WeakRef?

    Grazie Max!

    Buon weekend!

  17. Ercole G

    Sep 15 Pre-Release Testers, Xojo Pro

    Allora weakref è il riferimento assoluto di un oggetto aperto.
    Io per utilizzarlo ho creato una nuova classe di tipo finestra ( chiamata finestrabase ), dove ho inserito una proprietà che ho chiamato 'chiamante' di tipo weakref appunto.

    -image-

    Quando creo una nuova finestra, invece di utilizzare l'oggetto di tipo 'window' utilizzo 'finestrabase' in modo abbia all'interno la proprietà che ho chiamato 'chiamante' e anche il codice per salvare la posizione e la dimensione della finestra.
    E il controllo per la sicurezza, ovvero la chiamata ad una procedura che verifica se l'utente è abilitato a vedere, modificare, cancellare, inserire i dati di quella finestra, ma questo è un altro discorso.
    Ho una nuova finestra che è un oggetto di tipo finestrabase

    quando chiamo questa windows, non la chiamo direttamente ma istanzio un nuovo oggetto di quel tipo.

    dim wclienti as new clienti // clienti è un oggetto finestrabase
    wclienti.chiamante = new weakref(self) // inserisco nella proprietà di tipo weakref il codice univoco della finestra, menù o quello che è che ha chiamato la finestra.

    La finestra clienti potrà aggiornare l'oggetto che l'ha chiamata attraverso la proprietà 'chiamante'

    if Chiamante<>nil and Chiamante.Value<>nil and Chiamante.Value isA elencoclienti then
    clienti(Chiamante.Value).Aggiorna // chiamo il metodo aggiorna della finestra che ha aperto clienti
    end if

  18. Nedi F

    Sep 15 Europe (Italy, Bologna)

    Grazie mille. Adesso ci devo riflettere su un po', perché per il momento faccio un po' di fatica….ma conto di arrivarci!

    Grazie ancora, e buon weekend.

  19. Massimiliano C

    is not verified Sep 15 Europe (Italy, Bergamo)

    Anche io ho fatto fatica, ma il Magico Antonio mi ha aiutato parecchio...

  20. Nedi F

    Sep 15 Europe (Italy, Bologna)

    @MassimilianoChiodi Anche io ho fatto fatica, ma il Magico Antonio mi ha aiutato parecchio...

    Siamo tutti debitori con il Magico Antonio !!!

or Sign Up to reply!