Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
cxgrid seçilen malzemeye göre birim listeleme
#11
(23-10-2019, Saat: 10:34)serdar Adlı Kullanıcıdan Alıntı:
(23-10-2019, Saat: 09:48)akuyumcu63 Adlı Kullanıcıdan Alıntı: değerli kardeşlerim;
tavsiyelerinize bağlı olarak denemeler yapıyorum. bir sonuç üretebilirsem dönüş yapacağım.
birim alanında INTEGER bilgi tutuyorum. buttonedit te gördüğüm kadarıyla text veri tutuyor. yaptığım database kurgusunda INTEGER veriyi saklıyor text veriyi gösteriyor. lookupcombobox taki gibi bir düzen yakalamaya çalışıyorum.
fiş hareketleri için FDMemTable kullanıyorum. döngü ile database ye kayıt yapıyorum.

tekrar merhaba,
Buttonedit'te isimi göstereceksin.buttona bastıgında  ayrı pencereden (inputquery , lookup combobox) kullanıcı seçım yapacak. secılenın id değerini alacaksın.
ana tablonu edit moduna gecırıp, aldıgın id degerini, ana tablonun id degerıne set edip post edeceksin.
isim alanı refresh edilmesi gerekecek. dataseti refresh edeceksin. bunu kastetmıstım kardes.

merhaba;
fiş hareket tablosuna birimin ID sini kaydediyorum. fişin kaydedildikten sonra düzenleme için tekrar açma durumunda sorun yaşarım diye düşünüyorum.

şu an için bulduğum çözümü sizlerle paylaşmak istiyorum.

1. cxgrid deki birimID alanını LookupComboBox olarak ayarladım ve readonly yaptım. bütün birim tanımlarını tuttuğum bir tablo vardı. bu tabloyu birim alanıyla ilişkilendirdim.
2. cxgrid de bir sütun ekledim. bu sütunun alanını buttonedit olarak ayarladım. buton editin buttononclick ile ilgili malzemenin birimlerini çağırabileceğim bir düzenek yapacağım. alt birimler istenince buradan çağrılacak
3. tek sorunum. gridteki lookupCombobox un liste açma butonunu gizleyemedim. lookupcombobox u kullanıcının combobox gibi kullanmasını engellemeye çalışıyorum.

herkese çok teşekkürler
Cevapla
#12
O sutunun eventinde properties->oninitpopup var.popup gerceklesırken devreye giriyor.
Bu olaya aşagıdakı kodu yazıp denermısın


procedure TForm1.cxGrid1DBTableView1Column1PropertiesInitPopup(Sender: TObject);
begin
  if .....
  begin
     TcxLookupComboBox (cxGrid1DBTableView1Column1).DroppedDown:=false; 
  end
end;
Cevapla
#13
(23-10-2019, Saat: 12:18)serdar Adlı Kullanıcıdan Alıntı: O sutunun eventinde properties->oninitpopup var.popup gerceklesırken devreye giriyor.
Bu olaya aşagıdakı kodu yazıp denermısın


procedure TForm1.cxGrid1DBTableView1Column1PropertiesInitPopup(Sender: TObject);
begin
  if .....
  begin
     TcxLookupComboBox (cxGrid1DBTableView1Column1).DroppedDown:=false; 
  end
end;

access violation hatası veriyor.
Cevapla
#14
O zaman şöyle deneyin. Sutunun properties ini cxloookupcombobox secmıstınız. properties ayarlarından
properties>dropdownliststyle:=iseditlist ;yapın.
properties>readonly:=true; yapın
Cevapla
#15
aşağıdaki linkte bulduğum örnekten faydalanarak yaptım. LookupCombobox olarak tanımlanan alana kodla button ekleniyor. mevcut button da gizlenebiliniyor.

https://www.devexpress.com/Support/Cente...cxcombobox

(23-10-2019, Saat: 14:02)serdar Adlı Kullanıcıdan Alıntı: O zaman şöyle deneyin. Sutunun properties ini cxloookupcombobox secmıstınız. properties ayarlarından
properties>dropdownliststyle:=iseditlist ;yapın.
properties>readonly:=true; yapın

bu şekilde olmuyor. aynı access violation hatasını veriyor. siz bu şekilde yapabildiniz mi.
Cevapla
#16
deneme sansım olmaadı ama hata vermesı cok ılgınc. ılk fırsatta deneyecegım
Cevapla
#17
Merhaba

aynı problemi şöyle çözmüştüm; cxgriddeki Brim kolonunun onGetproperties eventinde o stok için brimleri alıyorsun.   

procedure TfSipFisGir.LV_BRIMGetProperties(Sender: TcxCustomGridTableItem;
  ARecord: TcxCustomGridRecord; var AProperties: TcxCustomEditProperties);
Var
   SetID:Integer;
   RS:_Recordset;
   ICBP:TcxImageComboBoxProperties;
   Ind:Integer;
begin
 SetID:=Var2Int(ARecord.Values[LV_BRMSET.Index]);
 if SetID>0 then
 begin
    Ind:=BrmListe.IndexOf(IntToStr(SetID));
    if Ind<0 then
    begin
      ICBP:=TcxImageComboBoxProperties.Create(nil);
      RS:=DBF.Connection.Execute('Select SIRA, ADI From INFO_BRIMDETAY Where SetNO='+IntToStr(SetID));
      while Not RS.EOF do
        begin
        With ICBP.Items.Add Do
             begin
             Description:=VarToStr(RS.Fields['ADI'].Value);
             Value:=Var2Int(RS.Fields['SIRA'].Value);
             end;
        RS.MoveNext;
        end;
       BrmListe.AddObject(IntToStr(SetID),ICBP);
    end else
             begin
             ICBP:=TcxImageComboBoxProperties(BrmListe.Objects[Ind]);
             end;
    AProperties:=ICBP;
 end else begin
   AProperties:=ERep_ImgCombo1.Properties;
 end;

end;



aşağıdaki componenti ve fonsiyonu da eklemen gerekiyor. 

ERep_: TcxEditRepository;
ERep_ImgCombo1: TcxEditRepositoryImageComboBoxItem;
ERep_ImgCombo2: TcxEditRepositoryImageComboBoxItem;

Function Var2Int(Val:Variant):Integer;
begin
  if Val=null then
     Result:=0
  else
     Result:=Val;
end;
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  cxGrid>FindPanel Arama Yapılacak Kolonları Belirleme hi_selamlar 15 9.792 30-03-2026, Saat: 12:33
Son Yorum: barutali
  CxGrid Türkçe karakter sorunu mur93 1 350 12-11-2025, Saat: 09:22
Son Yorum: cinarbil
  FastReport Dinamik Sayıya Göre Etiket Bastırma [ÇÖZÜLDÜ] bünyamin68 2 749 09-01-2025, Saat: 13:47
Son Yorum: bünyamin68
  cxgrid sorgulama ercanskose 3 870 09-11-2024, Saat: 10:09
Son Yorum: ercanskose
  cxgrid başlık filterrow da yön tuşları ile gezme sadoal351 1 1.389 23-04-2024, Saat: 19:20
Son Yorum: mcuyan



Konuyu Okuyanlar: 1 Ziyaretçi