Welcome, Guest
Username: Password: Remember me
Qui si parla italiano
  • Page:
  • 1

TOPIC:

TABCONTROL non parla con suo "padre" 07 Oct 2020 19:16 #16135

  • claudiocarletta
  • claudiocarletta's Avatar
  • Topic Author


  • Posts: 88
  • Salve a tutti,Forse sto facendo il passo più lungo della gamba ma ...In una DATADIALOG (vedi figura) ho messo due TABCONTROL e quindi ho scoperto che altro non sono che due DIALOGWINDOW figlie.



    Vorrei che:
    1. la connessione MySQL che ho istanziato nella DATADIALOG (padre) e che ho utilizzato per popolare la DATALISTVIEW degli alunni possa essere utilizzata anche dalle due TABCONTROL (figlie) per popolare in una i libri già prestati e nell'altra i libri che vorrei prestare
    2. i value dei controlli (sottolineati in verde) possano essere visibili ai TABCONTROL ed eseguire quindi autonomamente le query necessarie
    In pratica che le finestre figlie possano leggere tutte le istanze e i controlli della finestra genitore.Ho provato ad esempio la query nella DIALOGWINDOW :
    cConnAs1 := "call biblioteca.LibAnnClas(?, ?, ?);"oSelectAs1 := SQLSelect{cConnAs1, oConnAs1}oSelectAs1:Execute(SELF:Owner:oDCCBAnSC:Value, SELF:Owner:oDCCBSezione:Value, SELF:Owner:oDCCBAnno:Value)
    ma in fase di esecuzione mi dice che (SELF:Owner:oDCCBAnSC:Value): XSharp.Error: 'No exported variable'Spero di essere stato chiaro.
    Grazie a tutti,
    buona serata

    Please Log in or Create an account to join the conversation.

    Last edit: by claudiocarletta.

    TABCONTROL non parla con suo "padre" 07 Oct 2020 23:25 #16139

    • ic2
    • ic2's Avatar


  • Posts: 1574
  • Hello Claudio:

    (Uso la traduzione automatica )

    Forse ti fraintendo, ma oDCCBAnSC è un controllo su una finestra in stile VO? Se è così: in VO puoi impostare (nella seconda scheda delle proprietà della finestra) Export Controls su true. Invece di qualcosa come PROTECT oDCCBAnSC AS SingeLineEdit ottieni EXPORT ... (oppure puoi cambiarlo nella classe ma quando viene rigenerato tornerà a PROTECT). Non farlo è una buona causa per
    l'errore Nessuna variabile esportata.
    (Non uso moduli VO in X # quindi non sono sicuro che funzioni allo stesso modo)

    English:

    Maybe I misunderstand you, but is oDCCBAnSC a control on a VO style window? If so: in VO you can set (in the 2nd tab of the window properties) Export Controls to true. Instead of something like PROTECT oDCCBAnSC AS SingeLineEdit you get EXPORT ... (or you can change it in the class but when this is regenerated it will revert back to PROTECT). Not doing this is a good cause for the No exported variable error.
    (I do not use VO forms in X# so I am not sure if it works the same)

    Dick

    Please Log in or Create an account to join the conversation.

    Last edit: by ic2.

    TABCONTROL non parla con suo "padre" 08 Oct 2020 19:08 #16149

    • claudiocarletta
    • claudiocarletta's Avatar
    • Topic Author


  • Posts: 88
  • Grazie dei cosigli Dick,
    ho provato a dichiarare tutti i controlli e le altre strutture EXPORT come mi hai consigliato

    PARTIAL CLASS PresCons INHERIT DATADIALOG
    EXPORT oDCCBAnSC AS COMBOBOX
    EXPORT oDCCBCorso AS COMBOBOX
    EXPORT oDCCBSezione AS COMBOBOX
    EXPORT oDCCBAnno AS COMBOBOX
    EXPORT oCCPBCercaAlunni AS PUSHBUTTON
    EXPORT oDCDLAlunni AS DATALISTVIEW
    EXPORT oDCFixedText1 AS FIXEDTEXT
    EXPORT oDCFixedText2 AS FIXEDTEXT
    EXPORT oDCFixedText3 AS FIXEDTEXT
    EXPORT oDCFixedText4 AS FIXEDTEXT
    EXPORT oDCCBMySQL AS CHECKBOX
    EXPORT oCCPBChiudi AS PUSHBUTTON
    EXPORT oDCGBnomi AS GROUPBOX
    EXPORT oDCNewAlunno AS SINGLELINEEDIT
    EXPORT oCCCercAlunno AS PUSHBUTTON

    // {{%UC%}} User code starts here (DO NOT remove this line)

    EXPORT oDCTab1 AS TABCONTROL
    EXPORT oDCTab2 AS TABCONTROL
    EXPORT oTab_1 AS DIALOGWINDOW
    EXPORT oTab_2 AS DIALOGWINDOW
    EXPORT oALunni AS DbServer
    EXPORT oSfAlunni AS FileSpec
    EXPORT oConnAs1 AS SQLConnection
    EXPORT oSelectAs1 AS SQLSelect
    EXPORT cConnAs1 AS STRING
    EXPORT sDsn AS STRING
    EXPORT sUser AS STRING
    EXPORT sPass AS STRING

    Ma nel momento in cui vado ad utlizzarle nel TABCONTROL mi dà lo stesso errore : XSharp.Error: 'No exported

    Ho provato in vari modalità di accesso:
    1) oSelectAs1:Execute(SELF:Owner:oDCCBAnSC:Value, SELF:Owner:oDCCBSezione:Value, SELF:Owner:oDCCBAnno:Value)
    2) oSelectAs1:Execute(SELF:Owner:Owner:oDCCBAnSC:Value, SELF:Owner:Owner:oDCCBSezione:Value, SELF:Owner:Owner:oDCCBAnno:Value)

    ottenento lo stesso errore.

    Sicuramente sbaglio da qualche parte ma non riesco a capire dove

    Grazie a tutti

    Please Log in or Create an account to join the conversation.

    TABCONTROL non parla con suo "padre" 08 Oct 2020 20:05 #16150

    • ic2
    • ic2's Avatar


  • Posts: 1574
  • Hello Claudio,

    Se aggiungi qualcosa di simile:

    LOCAL c1,c2,c3 as string

    c1:=SELF:Owner:oDCCBAnSC:Value
    c2:=SELF:Owner:oDCCBSezione:Value
    c3:=SELF:Owner:oDCCBAnno:Value

    allora ottieni l'errore Nessuna variabile esportata su tutti e 3 i campi?

    Se è così, potrebbe esserci qualcosa con il sé: Owner. Prova a vedere cosa ti dice il debugger quando digiti self: owner e poi self "owner: somevalues


    =========================

    If you add something like this:

    LOCAL c1,c2,c3 as string

    c1:=SELF:Owner:oDCCBAnSC:Value
    c2:=SELF:Owner:oDCCBSezione:Value
    c3:=SELF:Owner:oDCCBAnno:Value

    then do yo get the No exported variable error on all 3 fields?

    If so there may be something with self:Owner. Try to see what the debugger tells you when you type self:owner and then self"owner:somevalues


    Dick

    Please Log in or Create an account to join the conversation.

    Last edit: by ic2. Reason: Translator also translated source code...

    TABCONTROL non parla con suo "padre" 09 Oct 2020 00:11 #16151

    • claudiocarletta
    • claudiocarletta's Avatar
    • Topic Author


  • Posts: 88
  • Grazie sempre, ho provato a modificare il codice come mi hai suggerito ma non riesco a risolvere il problema.
    Ti invio un po' di immagini relative al codice e al debug relativo nella speranza che tu o qualcun altro possa aiutarmi


    questo è il TABCONTROL nella DATADIALOG


    questo è il codice del controllo


    questo è il codice per istanziare il TABCONTROL con i due tab (sono stati fatti manualmente)


    Questo è l'errore che mi dà (con le modifiche che mi hai suggerito


    qui interrogo il SELF e sembra corretto


    qui interrogo il SELF:Owner che non mi dà errore ma mi aspettavo che mi desse la classe padre: PresCons


    qui interrogo una variabile sDsn che avevo definito nella classe padre come: EXPORT sDsn AS STRING

    Se qualcuno avesse qualche consiglio da darmi oppure un esempio analogo su cui studiare ...
    Grazie a tutti
    Claudio

    Please Log in or Create an account to join the conversation.

    TABCONTROL non parla con suo "padre" 09 Oct 2020 01:06 #16152

    • ic2
    • ic2's Avatar


  • Posts: 1574
  • self: il proprietario è sbagliato credo. __FormDialogwindow e credo sia una classe genitore VO Windows.

    Non dovrebbe essere solo "SELF" poiché SELF è presCons2 e questa è la finestra su cui sembra che tu abbia i controlli?

    PS: aggiungo sempre la classe a un metodo come in VO (method Postinit ... CLASS presCons2. Non è richiesto in X # (ma possibile) e questi frammenti di codice mostrano che senza CLASS non è chiaro al 100% da quale classe il metodo è senza vedere l'intero codice.

    ====================
    self:Owner is wrong I think. It is __FormDialogwindow and that's a VO Windows parent class I believe.

    Shouldn't it just be 'SELF" as SELF is presCons2 and that is the window you seem to have the controls on?

    PS: I always add the class to a method like in VO (method Postinit ... CLASS presCons2 . It isn't required in X# (but possible) and these code snippets show that without the CLASS it's not 100% clear from which class the method is without seeing the whole code.

    Dick

    Please Log in or Create an account to join the conversation.

    TABCONTROL non parla con suo "padre" 09 Oct 2020 01:51 #16153

    • Jamal
    • Jamal's Avatar


  • Posts: 303
  • Hi Claudio,

    The best way to help you and us figure out the issue, is to create a small app to replicate the issue and post here.

    Jamal

    Please Log in or Create an account to join the conversation.

    Last edit: by Jamal.

    TABCONTROL non parla con suo "padre" 09 Oct 2020 08:21 #16154

    • Chris
    • Chris's Avatar


  • Posts: 3750
  • Hi Claudio,

    Yes, please zip and post the solution, so we can have a look. What I suspect is happening, is that your code using Owner is in a method defined in the main window class (or in an other class), but not in the class of your tabpage, but can't be sure without seeing the complete code (of this module/prg at least).

    About viewing SELF:Owner:sDsn in the debugger, unfortunately this is not possible right now. The problem is that SELF:Owner returns a USUAL and VS does not know how to handle usuals. Just showing the value of SELF:Owner is OK, but then showing the contents of Owner:sDsn requires a late bind call to the USUAL, in order to find and retrieve the sDsn var, but VS does not know about X#'s late binding. Maybe this is something that can be implemented in the future.
    XSharp Development Team
    chris(at)xsharp.eu

    Please Log in or Create an account to join the conversation.

    Last edit: by Chris.

    TABCONTROL non parla con suo "padre" 09 Oct 2020 11:47 #16156

    • wriedmann
    • wriedmann's Avatar


  • Posts: 3245
  • Ciao Claudio,
    prova a vedere l'esempio allegato.
    Se usi il debugger vedi che la variabile oParent della finestra sul tabcontrol è la finestra principale:


    Perciò nel codice esempio questo funziona:
    method LeggiButton() class TabControl1_Page1
    	oDCProva:Value			:= oParent:Prova
    	return nil


    Saluti

    Wolfgang

    File Attachment:

    File Name: TabChildren.zip
    File Size:13 KB
    Wolfgang Riedmann
    Meran, South Tyrol, Italy

    www.riedmann.it - docs.xsharp.it

    Please Log in or Create an account to join the conversation.

    TABCONTROL non parla con suo "padre" 09 Oct 2020 11:51 #16157

    • claudiocarletta
    • claudiocarletta's Avatar
    • Topic Author


  • Posts: 88
  • Grazie a tutti,
    ho zippato una piccola applicazione del tutto simile a quella in sviluppo perché quella originale accedeva a MySQL e sarebbe stato troppo complicato provarla. L'errore che mi dà è uguale.

    File Attachment:

    File Name: ProvaTab.zip
    File Size:1,703 KB


    Grazie a tutti
    p.s. se preferite posto l'originale, non ho problemi
    Claudio
    Attachments:

    Please Log in or Create an account to join the conversation.

    TABCONTROL non parla con suo "padre" 09 Oct 2020 11:55 #16158

    • claudiocarletta
    • claudiocarletta's Avatar
    • Topic Author


  • Posts: 88
  • Grazie Wolfgang,
    adesso ci do un'occhiata.
    Hai postato l'esempio mentre stavo preparando il mio da postare

    Ciao
    Claudio

    Please Log in or Create an account to join the conversation.

    TABCONTROL non parla con suo "padre" 09 Oct 2020 13:36 #16159

    • wriedmann
    • wriedmann's Avatar


  • Posts: 3245
  • Ciao Claudio,
    se non capisci qualcosa nel mio esempio oppure se non riesci a trasferirlo nella tua applicazione fammelo sapere.
    Saluti
    Wolfgang
    Wolfgang Riedmann
    Meran, South Tyrol, Italy

    www.riedmann.it - docs.xsharp.it

    Please Log in or Create an account to join the conversation.

    TABCONTROL non parla con suo "padre" 09 Oct 2020 13:51 #16160

    • Chris
    • Chris's Avatar


  • Posts: 3750
  • Hi Claudio,

    Try this, it should work:

    a1 := SELF:Owner:Owner:Owner:oDCComboBox1:Value
    a2 := SELF:Owner:Owner:Owner:oDCComboBox2:Value

    It's tricky finding the real owner window in the hierarchy of windows surfaces that VO uses, especially for a dialog window that you use for the page, but you can see what this owner represents with:

    InfoBox{self, "Attenzione", asstring(SELF:Owner:Owner:Owner)}:Show()
    XSharp Development Team
    chris(at)xsharp.eu

    Please Log in or Create an account to join the conversation.

    TABCONTROL non parla con suo "padre" 09 Oct 2020 14:24 #16161

    • wriedmann
    • wriedmann's Avatar


  • Posts: 3245
  • Hi Chris,
    in the past I had also worked with the "cascaded" owners, but for this I gave it a look with the debugger, and effectively the "oParent" instance variable contains the owning window, so code like this should also work:
    a1 := oParent:oDCComboBox1:Value
    a2 := oParent:oDCComboBox2:Value

    Wolfgang
    Wolfgang Riedmann
    Meran, South Tyrol, Italy

    www.riedmann.it - docs.xsharp.it

    Please Log in or Create an account to join the conversation.

    TABCONTROL non parla con suo "padre" [RISOLTO] 09 Oct 2020 15:21 #16162

    • claudiocarletta
    • claudiocarletta's Avatar
    • Topic Author


  • Posts: 88
  • Grazie Chris,
    hai vinto un vero Cannolo Siciliano
    da una settimana che ero praticamente fermo a questo punto.
    Tutto risolto.
    Ringrazio quanti si sono prodigati nell'aiutarmi anche se ho paura che vi disturberò molte altre volte.
    Ciao

    Please Log in or Create an account to join the conversation.

    Last edit: by claudiocarletta.

    TABCONTROL non parla con suo "padre" [RISOLTO] 09 Oct 2020 18:07 #16164

    • Chris
    • Chris's Avatar


  • Posts: 3750
  • Hi Claudio,

    Please don't hesitate to post as many questions as you want, a lot of people here are very happy to help! Although next time maybe you'll need to arrange to transfer some of those delicacies, instead of just posting photos ;-)
    XSharp Development Team
    chris(at)xsharp.eu

    Please Log in or Create an account to join the conversation.

    TABCONTROL non parla con suo "padre" [RISOLTO] 09 Oct 2020 23:07 #16167

    • claudiocarletta
    • claudiocarletta's Avatar
    • Topic Author


  • Posts: 88
  • Purtroppo, mio caro Chris, il vero cannolo Siciliano non lo trovi in vetrina o comunque non è quello che ti devono servire.
    Deve essere riempito un attimo prima di consumarlo perché la cialda deve essere asciutta e croccante.
    È difficile che il cannolo possa affrontare un viaggio fino in Grecia in buone condizioni, è più facile che venga tu in Sicilia, troverai molte somiglianze con la tua bella Grecia.
    Ciao

    Please Log in or Create an account to join the conversation.

    TABCONTROL non parla con suo "padre" [RISOLTO] 10 Oct 2020 09:10 #16169

    • Chris
    • Chris's Avatar


  • Posts: 3750
  • Yeah, everybody says the two places look very similar, also the people... I have only been to central/northern Italy, but will try to visit also Sicily soon! Ciao Claudio!
    XSharp Development Team
    chris(at)xsharp.eu

    Please Log in or Create an account to join the conversation.

    TABCONTROL non parla con suo "padre" [RISOLTO] 10 Oct 2020 16:30 #16172

    • wriedmann
    • wriedmann's Avatar


  • Posts: 3245
  • Hi Chris,
    after all, Sicily many, many years ago was called "Magna Graecia".... and there are many ancient greek temples in Sicily.
    Wolfgang
    Wolfgang Riedmann
    Meran, South Tyrol, Italy

    www.riedmann.it - docs.xsharp.it

    Please Log in or Create an account to join the conversation.

    TABCONTROL non parla con suo "padre" [RISOLTO] 10 Oct 2020 17:53 #16173

    • Chris
    • Chris's Avatar


  • Posts: 3750
  • Hi Wolfgang,

    Yeah, I've heard something about it :). And also "una faccia, una razza", so many similarities!
    XSharp Development Team
    chris(at)xsharp.eu

    Please Log in or Create an account to join the conversation.

    • Page:
    • 1
    Moderators: wriedmann