Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Dali može Tag i Kako???????

[es] :: Access :: Dali može Tag i Kako???????

[ Pregleda: 1672 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

rribaric
romano ribarić
rijeka

Član broj: 31410
Poruke: 165
*.net.htnet.hr.



Profil

icon Dali može Tag i Kako???????07.11.2004. u 12:59 - pre 236 meseci
Dali može Tag i Kako?
I dali to treba praKTicirat?
Imam formu koju pozivam s više mijesta.
Kako da isključim pojednine kontrole u toj formi .
To jest kako da dozvolim samo određene kontrole u ovisnosti odakle pozivam tu formu.
Situacija je ovakva na formi koju pozivam nalaze se 4 comand butona prihvati,brisanje,pregled,cancel i novi unos.
Pozivam je iz Forme glavne maske,Unospodataka i editiranjepodataka.
Kad je pozovem iz Glavne maske netreba mi kontrola prihvati a cancel mi treba radit nešto drugo(znači kod treba napisat drugi(zbog refresanja formi).
Kad je pozovem iz Unosapodataka treba biti sve uključeno ,.....

Na koji način se to riješava a da se ne duplaju forme i codovi!To jest nastaje šumaformi i kodova u kojima se teško snać!
Našao sam na internetu da se to riješava sa tagovima ali mi taj primjer nije baš jasan .Nezanm kad se aktivira na kojoj formi treba bit i slično!

romano
 
Odgovor na temu

Zidar
Canada

Moderator
Član broj: 15387
Poruke: 3085
*.eqao.com.



+79 Profil

icon Re: Dali može Tag i Kako???????08.11.2004. u 14:14 - pre 236 meseci
Tagovi mogu da pomognu i treba ih koristiti. Tebi treba i OpenArgs, da bi forma znala odakle se poziva.

Tagovi sluze da se markiraju kontrole od interesa. Tag je najobicniji string koji se upisuje u property Tag i moze se koristiti za sta god hoces. Jedna od ideja je selektivno tretiranje kontrola, kad pritreba. Ovako. Verovatno si u knjigama nasao kod koji moze da sve kontrole zakljuca ili da ih ucini nevidljivim. For Each loop za kontrole to radi. Jedini problem je sto se kod odnosi na SVE kontrole, sto je redak slucaj u praksi. Onda su se ljudi dosetili pa uved u uslov kao If ctl.typeOf=acTextBox da primene neku operaciju samo na odredjen tip kontrole. Opet niej dovoljno, ako zelis da samo neku dugmad sakrijes i samo neke text boxove na primer obojis u crveno. Zato se kontrolema dodeli neki tag. to se radi u Design modu. Lepo upises na primer "HIDE" u tag property za kontrole koje zelis da sakrijes. Onda ide kod kao:
Code:

'Pozivanje funkcije koja cini kontrole nevidljivim
'Poziv ide sa forme, recimo iz OnLoad
Call MakeInVisible(me,"HIDE")



'Funkcija:
Function MakeInVisible(frm As Form, strTAG As String) As Boolean
'*******************************************
'Name:      MakeInVisible(Function)
'Purpose:   make control invisible, for cotrols that have strTAG
'           somewhere in their Tag property
'Author:    **********
'Date:      February 22, 2000, 02:08:19 PM
'Called by:
'Calls:
'Inputs:    frm:=form hat contains controls
'           strTAG:= code to be found in the Tag property.
'           If found, visibility will be toggled
'Output:    nothing
'*******************************************


Dim ctl As Control
For Each ctl In frm.Controls
    If InStr(1, ctl.Tag, strTAG) > 0 Then
        ctl.Visible = False
    End If
Next

End Function


Posto svoju formu pozivas sa vise mesta i dajes joj razlicite uloge, treba ti OpenArgs u svakom pozivu. Zavisno od OpenArgs, na OnLoad izdajes razlicite naredba kao u navedenom primeru.
Code:

private sub MyForm_OnLoad()
Select Case me.OpenArgs
 Case "Unos"
   call SetUnosButtons("UNOS")
 Case "Edit"
   call SetEditButtons("EDIT")
 Case "View"
   call SetViewButtons("VIEW")
End Select
end sub

Tvoja dugmad u ovom slucaju treba da imaju tag "UNOS EDIT" ili "UNOS EDIT VIEW" ili "UNOS". Znaci, vise vrednosti u tag property. U funkciji MakeInVisible koristi se Instr da iskopa zadati string iz tag property, pa to omogucuje multi string tags.

Prouci malo ovo i eksperimentisi.

Za problem "Cancel treba da se dvojako ponasa zavisno odakle je forma pozvana, resi sa If u OnClick eventu:
Code:
 
If me.OpenArgs then
   neki kod..
Else
  neki drugi kod...
Endif


Ako imas vise od dva slucaja, koristi CASE umesto IF ELESIF. ELseIF je veoma nepregledno i za pisanje i za kasnije citanje koda, pa ga izbegavaj. (Sad ce da me bombarduju ispravkama, mnogi ljudi naprosto obozavaju ElseIF. Ne odgovaram na to :-)

:-)
 
Odgovor na temu

rribaric
romano ribarić
rijeka

Član broj: 31410
Poruke: 165
*.net.htnet.hr.



Profil

icon Re: Dali može Tag i Kako???????08.11.2004. u 19:14 - pre 236 meseci
Hvala!
Rezultat je vidljiv.
Dobro riješenje!Olakšava pisanje coda i čitljivost!
Sad idem to malo prilagodit svojem programu!

romano
 
Odgovor na temu

[es] :: Access :: Dali može Tag i Kako???????

[ Pregleda: 1672 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.