katlar ve odalar gösterim * çözüldü
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
katlar ve odalar gösterim * çözüldü
S.A. arkadaşlar.
Bende bir otel otomasyonu yazayım dedim. Bismillah dedim başladım ama daha başında takılıverdim. Şimdi katlar ve odalar var. katlar 1.Kat, 2.Kat, 3.Kat...
Odalar da 101,102,103,201,202,203,301,302,303... gibi. Mesela diyelimki odaları kaydedince kat bilgiside giriliyor. benim istediğim gridde veya başka bir şekilde artık nasıl oluyorsa..
Kat.1 101 102 103
Kat.2 201 202 203
Kat.3 301 302 303
şeklinde olmasını istiyorum. Master detail yaptım olmadı, vertical grid olmadı. ne yapacağımı şaşırdım. SQL de iki tabloyu UNION veya INNER JOIN ile birleştirmeye çalıştım istediğim gibi olmadı. Acaba nasıl elde edebilirim...
Bende bir otel otomasyonu yazayım dedim. Bismillah dedim başladım ama daha başında takılıverdim. Şimdi katlar ve odalar var. katlar 1.Kat, 2.Kat, 3.Kat...
Odalar da 101,102,103,201,202,203,301,302,303... gibi. Mesela diyelimki odaları kaydedince kat bilgiside giriliyor. benim istediğim gridde veya başka bir şekilde artık nasıl oluyorsa..
Kat.1 101 102 103
Kat.2 201 202 203
Kat.3 301 302 303
şeklinde olmasını istiyorum. Master detail yaptım olmadı, vertical grid olmadı. ne yapacağımı şaşırdım. SQL de iki tabloyu UNION veya INNER JOIN ile birleştirmeye çalıştım istediğim gibi olmadı. Acaba nasıl elde edebilirim...
En son mudipasa tarafından 05 May 2008 01:08 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
Kod: Tümünü seç
www.muratdişikırık.com.tr
Re: katlar ve odalar gösterimde yorum
Crack işin bıraktın anlaşılan ...İstediğin şekli kısayoldan SQL ile groupby kullanarak yapabilirsin DBGrid kullanacaksan....ama ben birkaç ek komutla bu işi stringgrid ile yapmanı tavsiye ederim...hem üzerinde değişiklik yapman oldukça esnekleşir...istersen her hücreye resim koyabilirsin,doluysa farklı renk boş ise farklı renkte gösterebilirsin... ayrıca katları ayrı bir listede gruplayıp şeçildiği zaman o kata ait olanların listelenmesi daha iyi bir çözüm gibi geliyor bana....
Re: katlar ve odalar gösterimde yorum
@Battosai kardeş crack için makale bölümünde ufak bir yazım var. bir crackleme sitesine örneğimi gönderdim. ordan cevap bekliyorum. bir-iki güne kadar cevap gelir. ondan sonra makalemi daha zenginleştirecem inşallah.
Benim soruma gelince : SQL bilgim o kadar yok. Birazdaha açıklayabilirmisin (örnekle olsa sevinirim.) Stringgride gelince Katlar ve odalar istendiği zaman arttırılıp azaltılabilecek. Aktarım uzun sürebilir. Çünkü odanın diğer ayrıntılarını göstermem için bir bağlantı gerekir. oda stringgridi şişirir heralde.
Benim soruma gelince : SQL bilgim o kadar yok. Birazdaha açıklayabilirmisin (örnekle olsa sevinirim.) Stringgride gelince Katlar ve odalar istendiği zaman arttırılıp azaltılabilecek. Aktarım uzun sürebilir. Çünkü odanın diğer ayrıntılarını göstermem için bir bağlantı gerekir. oda stringgridi şişirir heralde.
Kod: Tümünü seç
www.muratdişikırık.com.tr
- DarkEternal
- Üye
- Mesajlar: 158
- Kayıt: 19 Eki 2005 11:00
Re: katlar ve odalar gösterimde yorum
Bunu anca Master-Detail ile yapabilirsin. Katlar Master, odalarda Detail olacak ve aradaki bağlantı ise kat bilgisi olacak. Bunların da yapım şekli kullandığın component ve veritabanına göre değişir...
kısa kısa yazılım...
http://TKorhan.blogspot.com/
http://TKorhan.blogspot.com/
Re: katlar ve odalar gösterimde yorum
İşin içine görsellik katılacaksa dbgrid ile biraz yavan ve sıradan bir görüntü oluşacaktır...Benzer programların gösterim tarzına bakılarak bir yöntem şeçilebilir.Otel programı yapmak zahmetli iştir ayrıca çok detaylı olduğu için otelcilikten anlaman veya devamlı anlayan birinden destek alman lazım...piyasada çok program var ama tabiki ilk çıkanlar piyasada hakim onların programlarına bakıncada gerçekten görsellik açısından durum vahim.Örneğin odalar şöle kapı resmi ile gösterilse çok şık duracaktır....
Re: katlar ve odalar gösterimde yorum
master-detail yaptım yaptımda zaten sorun onu hangi componentle gösterecez. Başka programlara bakıyorumda sanırım onların yaptığı veya farklı bir component kullanmışlar.
Kod: Tümünü seç
www.muratdişikırık.com.tr
Re: katlar ve odalar gösterimde yorum
Aslında hiç birşey aramana gerek yok...SttringGrid sana yeter...
Re: katlar ve odalar gösterim * çözüldü
S.A.
Arkadaşlar ben olayı çözdüm. ScrollBox üzerine önce kat sonrada oda lar için buttonlar create ederek yaptım. left ve toplarınıda bir şekilde oturtuktan sonra istediğim görüntüyü aldım. Oda durumuna görede butonu renklendirdim. Çok güzel oldu. @Battosai arkadaşımızın dediği gibi stringgrid kullanmadım çünkü aynı zamanda oda verilerinede ulaşmam gerekiyordu. Ama ben Odanın ID sini butonun Tag değerine eşitledim. OnClick olayı ilede ODALAR tablosunda bu değer ulaşabiliyorum. Kodlar bunlar belki lazım olur(Ben RzButton Kullandım) :
procedure Todadurum.Button1Click(Sender: TObject);
var
l,t : Integer;
Img : TRzButton;
begin
l := 5; t := 5;
dm.tbkat.First;
while not dm.tbkat.Eof do
begin
IBQuery1.Close;
IBQuery1.SQL.Clear;
IBQuery1.SQL.Add('SELECT * FROM ODALAR WHERE KAT_ID='+QuotedStr(dm.tbkatKAT_ID.AsString));
IBQuery1.Open;
while not IBQuery1.Eof do
begin
Img := TRzButton.Create(sbMain);
Img.Parent := sbMain;
Img.OnClick := XSpBtnClick;
Img.Name := 'Btn'+IntToStr(IBQuery1ODA_ID.AsInteger);
Img.Font.Name := 'Tahoma';
Img.Font.Size := 11;
Img.Font.Style := [fsBold];
Img.Width := 40;
Img.Height := 35;
Img.Caption := IBQuery1ODAADI.AsString;
if IBQuery1ODA_DURUM.AsString = 'BOŞ' then
begin
Img.Cursor := crHandPoint; Img.Color := clWhite;
Img.Tag := IBQuery1ODA_ID.AsInteger;
end
else if IBQuery1ODA_DURUM.AsString = 'DOLU' then
begin
Img.Cursor := crNo; Img.Tag := IBQuery1ODA_ID.AsInteger;
Img.Color := clRed; Img.Enabled := False;
end
else if IBQuery1ODA_DURUM.AsString = 'REZERVE' then
begin
Img.Cursor := crNo; Img.Tag := IBQuery1ODA_ID.AsInteger;
Img.Color := $008080FF; Img.Enabled := False;
end
else if IBQuery1ODA_DURUM.AsString = 'KİRLİ' then
begin
Img.Cursor := crNo; Img.Tag := IBQuery1ODA_ID.AsInteger;
Img.Color := $000080FF; //Img.Enabled := False;
end
else if IBQuery1ODA_DURUM.AsString = 'ARIZALI' then
begin
Img.Cursor := crNo; Img.Tag := IBQuery1ODA_ID.AsInteger;
Img.Color := $00FF8000; //Img.Enabled := False;
end;
Img.Left := l; Img.Top := t;
l := l + 45;
IBQuery1.Next;
end;
l := 5; t := t + 40;
dm.tbkat.Next;
end;
end;
Burda sadece oda yerleşimi var. sizde aynı şekilde left, topları ayarlayarak önce Kat bilgilerini oluşturabilirsiniz. Memelekte hayırlı uğurlu olsun...
Arkadaşlar ben olayı çözdüm. ScrollBox üzerine önce kat sonrada oda lar için buttonlar create ederek yaptım. left ve toplarınıda bir şekilde oturtuktan sonra istediğim görüntüyü aldım. Oda durumuna görede butonu renklendirdim. Çok güzel oldu. @Battosai arkadaşımızın dediği gibi stringgrid kullanmadım çünkü aynı zamanda oda verilerinede ulaşmam gerekiyordu. Ama ben Odanın ID sini butonun Tag değerine eşitledim. OnClick olayı ilede ODALAR tablosunda bu değer ulaşabiliyorum. Kodlar bunlar belki lazım olur(Ben RzButton Kullandım) :
procedure Todadurum.Button1Click(Sender: TObject);
var
l,t : Integer;
Img : TRzButton;
begin
l := 5; t := 5;
dm.tbkat.First;
while not dm.tbkat.Eof do
begin
IBQuery1.Close;
IBQuery1.SQL.Clear;
IBQuery1.SQL.Add('SELECT * FROM ODALAR WHERE KAT_ID='+QuotedStr(dm.tbkatKAT_ID.AsString));
IBQuery1.Open;
while not IBQuery1.Eof do
begin
Img := TRzButton.Create(sbMain);
Img.Parent := sbMain;
Img.OnClick := XSpBtnClick;
Img.Name := 'Btn'+IntToStr(IBQuery1ODA_ID.AsInteger);
Img.Font.Name := 'Tahoma';
Img.Font.Size := 11;
Img.Font.Style := [fsBold];
Img.Width := 40;
Img.Height := 35;
Img.Caption := IBQuery1ODAADI.AsString;
if IBQuery1ODA_DURUM.AsString = 'BOŞ' then
begin
Img.Cursor := crHandPoint; Img.Color := clWhite;
Img.Tag := IBQuery1ODA_ID.AsInteger;
end
else if IBQuery1ODA_DURUM.AsString = 'DOLU' then
begin
Img.Cursor := crNo; Img.Tag := IBQuery1ODA_ID.AsInteger;
Img.Color := clRed; Img.Enabled := False;
end
else if IBQuery1ODA_DURUM.AsString = 'REZERVE' then
begin
Img.Cursor := crNo; Img.Tag := IBQuery1ODA_ID.AsInteger;
Img.Color := $008080FF; Img.Enabled := False;
end
else if IBQuery1ODA_DURUM.AsString = 'KİRLİ' then
begin
Img.Cursor := crNo; Img.Tag := IBQuery1ODA_ID.AsInteger;
Img.Color := $000080FF; //Img.Enabled := False;
end
else if IBQuery1ODA_DURUM.AsString = 'ARIZALI' then
begin
Img.Cursor := crNo; Img.Tag := IBQuery1ODA_ID.AsInteger;
Img.Color := $00FF8000; //Img.Enabled := False;
end;
Img.Left := l; Img.Top := t;
l := l + 45;
IBQuery1.Next;
end;
l := 5; t := t + 40;
dm.tbkat.Next;
end;
end;
Burda sadece oda yerleşimi var. sizde aynı şekilde left, topları ayarlayarak önce Kat bilgilerini oluşturabilirsiniz. Memelekte hayırlı uğurlu olsun...
Kod: Tümünü seç
www.muratdişikırık.com.tr
Re: katlar ve odalar gösterim * çözüldü
Yöntemin hayırlı olsun ama bence luzumsuz bir create yapmış olacaksın...hem zahmetli hem hata yapma olanağı fazla. Anladığım kadarıyla stringgrid kullanmayı veya neler yapabileceğini bilmiyorsun...neyse farketmez tercih senin.
Re: katlar ve odalar gösterim * çözüldü
S.A. @Battosai kardeş ne yalan söyleyeyim bugüne kadar string gridle pek değil hatta hiç çalışmadım desem yeridir. Bu yüzden sen anlatsanda bi öğrensek diyorum. Benim asıl istediğim üzerine tıkandığı zaman oda bilgisine ulaşabilmek ve oda durumuna göre hücreye renk vermek. Yoksa string grid kullanmayı bende düşündüm. Bunu nasıl yapabiliriz yardımcı olurmusun...?
Kod: Tümünü seç
www.muratdişikırık.com.tr
Re: katlar ve odalar gösterim * çözüldü
Bir tavsiye daha ID meselesini oda numarasına göre halletmen.Yani sen istersen id şeklinde farklı bir alan tut ama gerek yok.Bu tarz tablolarda yani her kaydı belirtecek bir unique alan varsa bu alanı primary key gibi kullanman en iyisidir.Hem autoinc alanlardan da kurtulmuş olursun.Dolayısıyla stringGrid ilgili hücrelerine oda numaralarını yazdırabilirsin.Bu hücreye tıkladığında da oda numarasına göre işlem yapabilirsin...
Bu yazıyı yazarken aklıma senin için daha kolay bir yöntem olacak Listview kullanman geldi.Listview bu iş için aslında en iyisi bu aralar hep stirggrid ile çalıştığım için listview aklıma gelmedi Bu internet kafe programlarında varya ekranlar görünüyor listede gayet şık ve güzel duruyor bu işi odalar içinde yapabilirsin.
Bu yazıyı yazarken aklıma senin için daha kolay bir yöntem olacak Listview kullanman geldi.Listview bu iş için aslında en iyisi bu aralar hep stirggrid ile çalıştığım için listview aklıma gelmedi Bu internet kafe programlarında varya ekranlar görünüyor listede gayet şık ve güzel duruyor bu işi odalar içinde yapabilirsin.
Re: katlar ve odalar gösterim * çözüldü
Teşekkür ederim @Battosai. Forumun hakkını verdiğimize inanıyorum çünkü bilgi paylaşımı çok güzel bir olay.. Neyse, ID ve ODANO yu farklı tutmak zorundayım çünkü otellerde birden fazla Singe, Double, Suite v.s. gibi oda adlandırmaları var. Listview de aynı anda katları ve onun yanında odaları göstermeyi başaramadım. belkide vardır da çok uğraştım ama. özellikle Devexperess in cxListView örneğini satır satır da inceledim. neyse benim istediğim görüntü http://www.batmanotoemlak.com/Images/odadurum.jpg şeklinde olmalıydı. istersen bir resime bak.
Kod: Tümünü seç
www.muratdişikırık.com.tr
Re: katlar ve odalar gösterim * çözüldü
Bir iki öneri vereyim. Oda durumlarını ve Renklerini kullanıcı tanımlı yaparsan daha iyi olur.
Bir kelimenin anlamını öğretsen bile yeter..
- White Rose
- Üye
- Mesajlar: 726
- Kayıt: 06 Tem 2005 09:41
- Konum: Güneyden
- İletişim:
Re: katlar ve odalar gösterim * çözüldü
@ DarkEternal ın da dediği gibi bu iş için en iyi yöndem master-detay dır.
2 grid kullanırsınız; biri master(Katlar) diğeri detay (Odalar) şeklinde olabilir
yada katları DbLookupCombobox olarak ta gösterebilirsiniz.
2 grid kullanırsınız; biri master(Katlar) diğeri detay (Odalar) şeklinde olabilir
yada katları DbLookupCombobox olarak ta gösterebilirsiniz.
Re: katlar ve odalar gösterim * çözüldü
Zaten listview'de sadece odalar görünecek.Onun yanınada listbox veya türevi bir listeylede katları listelersin hangisi seçilirse listview de o odalar gelir.Listview için 48*48 ebatında oda tanımları hazırlarsın resim olarak odanın durumuna görede imageindex'den resmi değiştirirsin.Böylece renklerle uğraşmak zorunda kalmazsın.Resim ebatı sana kalmış 32*32 de fena olmaz yerden tasarruf olur.