1

Konu: this.SetAll('Enabled',.F.,'CheckBox')

this.SetAll('Enabled',.F.,'CheckBox') komutu griddeki bütün checkbox ların kullanımını kapatıyor.

komutu yerine sadece dosya içindeki belli checkbox latı açmak veya kapatmak için (Gridde kullanıma kapatmak veya açma için) hangi komutu kullanabilirim)

Teşekkürler

2

Re: this.SetAll('Enabled',.F.,'CheckBox')

Myform.Mygrid.Column1.Check1.Enabled=.t.
Myform.Mygrid.Column3.Check1.Enabled=.t.
Myform.Mygrid.Column4.Check1.Enabled=.f.

VFP9 SP2

3 Son düzenleyen, onders (07.10.2010 23:54:39)

Re: this.SetAll('Enabled',.F.,'CheckBox')

Aynı kayıttaki belli bir koşul için o checkbox ı nasıl kullanıma açıp kapatabilirim.

Örneğin : Dosyadaki 1 numaralı kayıtta a değişkeni 1 ise checkbox kullanılabilsin, a değişkeni 0 ise checkbox kullanılamasın.
Dosyadaki 2 numaralı kayıtta a değişkeni 1 ise checkbox kullanılabilsin, a değişkeni 0 ise checkbox kullanılamasın.
Dosyadaki 3 numaralı kayıtta a değişkeni 1 ise checkbox kullanılabilsin, a değişkeni 0 ise checkbox kullanılamasın.

şeklinde . Yani Gridde Checkbox da işaretleme yaparken kayıttaki a değişkenine göre chckbox kullanılabiler veya kullanılamaz olacak.


Teşekkürler.

4

Re: this.SetAll('Enabled',.F.,'CheckBox')

mygrid.Column1.DynamicCurrentControl="IIF(dosya.a=1,'check1','')"

veya
mygrid.AfterRowColChange evente
This.Column1.Check1.Enabled=(a=1)

VFP9 SP2

5

Re: this.SetAll('Enabled',.F.,'CheckBox')

Konuka ,

Ekledim ama sonuç alamadım ?

-------------------------------------------------------------------------

******************************************************************
Define Class myGrid as Grid
******************************************************************
*    Top = 62
    Top = 335
    Left = 2
    Height = 310
    Width = 1335
    ColumnCount = 24
    DeleteMark = .t.
    RecordMark = .t.
    ReadOnly = .T.
    RecordSource = "kon9"
    ScrollBars = 3
    GridLineColor = Rgb(192,192,192)
*    BackColor = 255
   
    Procedure Init
        With this
*       Scatter Name This.oRecord Memo

            .Column1.Header1.Caption = 'Yazdır'
            .Column1.Width = 50       
            .Column1.ControlSource = "kon9.yazici"
            .Column1.AddObject("chk1", ;
            "checkbox")
            .Column1.CurrentControl = ;
            "chk1"
            .Column1.chk1.Visible = .T.
            .Column1.chk1.Caption = ""
            .Column1.sparse=.f.

                   .Column1.Chk1.Enabled=.T.


            .Column6.Header1.Caption = 'Çıkış Tarihi'
            .Column6.Width = 90     
            .Column6.ControlSource = "kon9.ciktar"


                                                             
        EndWith
    this.SetAll('Enabled',.F.,'textbox')
    this.SetAll('DisabledForeColor',0,'textbox')

    EndProc
                 
    Procedure AfterRowColChange
        Lparameters nColIndex
        DoDefault(nColIndex)
        With oForm
     SELE 4
     * gkod=.txtNo.Value

       myGrid.Column1.Chk1.Enabled=(kon9.ciktar=CTOD("  /  /    "))

               
       .txt2Sno.Value         = Sno

             
                         
        EndWith
       Thisform.Refresh()
    EndProc

******************************************************************
    PROCEDURE Click
******************************************************************
        With this

              sele 4 
              sakla2=RECNO()
              GO TOP
              COUNT TO .txt2topyazdir.Value FOR yazici=.T.
              GO sakla2
        EndWith
       Thisform.Refresh()
    ENDPROC
   
EndDefine

6 Son düzenleyen, konuka (09.10.2010 13:44:38)

Re: this.SetAll('Enabled',.F.,'CheckBox')

aşağıdaki form çalışıyor - diğer soru ile birleştirdim - önerdiğim 3 metodla denenebilinir, 2si zaten var:
1. thisform.grid1.Column3.DynamicCurrentControl="IIF(dene.a1=1,'check1','')"  iyi çalıştı -aşağıdaki kodda var
2. This.Column3.readonly= !(a1=1)  iyi çalıştı
3.This.Column3.Check1.Enabled=(a1=1)  çalıştı, aşağıda önünde * var

.t. sayacında (diğer sorun) form halinde çalıştırmak için BINDEVENT tekniği kullanmak gerekti.

Visual Fox Pro
Public oForm

oForm=Createobject('gridx')
oForm.Show()
 
DEFINE CLASS gridx AS form
    DoCreate=.T.
    Caption="Form1"
    Name="form1"
 
    ADD OBJECT grid1 AS grid WITH ;
        ColumnCount=3, Height=200,  Top=25, Width=276, RecordSource=""
        Name="Grid1"
 
    PROCEDURE LOAD
        CREATE CURSOR dene(a1 I ,aa2 C(19), aa L, aa3 C(19))
        INSERT INTO dene VALUES (1,"22",.t.,"33")
        INSERT INTO dene VALUES (2,"222",.f.,"3333")
        INSERT INTO dene VALUES (1,"22",.f.,"33")
        INSERT INTO dene VALUES (3,"222",.t.,"333")
        INSERT INTO dene VALUES (2,"222",.t.,"3333")
        GO top
    ENDPROC
 
    PROCEDURE init
      With This.grid1.Columns(3)
        .Newobject('check1','CheckBox')
        BINDEVENT(This.grid1.Column3.check1, "InteractiveChange", ThisForm, "xInterActiveChange")
        .check1.Caption=''
         .check1.Centered=.T.
         .check1.Visible=.T.
         .CurrentControl='check1'
         .Sparse=.F.
        .DynamicCurrentControl="IIF(dene.a1=1,'check1','text1')"
*       .DynamicCurrentControl="IIF(dene.a1=1,'check1','')" && her ikisi de olur
      Endwith
      This.grid1.RecordSource="dene"
    ENDPROC
 
    PROCEDURE xInterActiveChange
        ThisForm.textCheckSay.Value=ThisForm.textCheckSay.Value + IIF(This.grid1.Column3.check1.Value,1,-1)
    ENDPROC
 
    ADD OBJECT textchecksay AS textbox WITH ;
        Value=0,  Left=110, Top=2, Height=20, Width=50, Name="textCheckSay"
 
    ADD OBJECT lblCheckSay AS label WITH ;
        Caption=".t. olanların sayısı:", Top=5, Height=20, Width=100, Name="lblCheckSay"
 
        PROCEDURE textchecksay.Init
          LOCAL ARRAY ilksay(1)
          SELECT COUNT(a1) FROM dene WHERE aa INTO ARRAY ilksay
          Thisform.textCheckSay.Value=ilksay[1]
        ENDPROC
 
    PROCEDURE grid1.AfterRowColChange
        LPARAMETERS nColIndex
        *aşağıdakilerden biri , yoksa This Refresh de gereksiz
        *This.Column3.Check1.Enabled=(a1=1)
        This.Column3.readonly= !(a1=1)
        this.refresh
    ENDPROC
ENDDEFINE
*
VFP9 SP2

7

Re: this.SetAll('Enabled',.F.,'CheckBox')

Konuka ,

1- This.Column3.readonly= !(a1=1)  ........... Asıl istediğim buydu. Çok iyi çalıştı.

2- This.Column3.Check1.Enabled=(a1=1).......... Bütün kolonları kapattı. Hatta açık olan kolunlara chek işaretyi yapmama izin vermedi.

3- thisform.grid1.Column3.DynamicCurrentControl="IIF(dene.a1=1,'check1','')"  iyi çalıştı -aşağıdaki kodda var  .............  Çalıştıramadım.

1. sini çalştırırken işaretlenemeyenler de aktifmiş gibi görünüyor. ama üzerine mouse ile tıklamaya çlışırken tıklanmıyor(İştediğim buydu).

***** Tıklanamayanları nasıl pasif gösterebiliriz. ???

teşekkürler.