C# Sinema Otomasyonunda Birden Fazla Koltuk Seçimi

Aerrow

Üye
Katılım
8 Eki 2012
Mesajlar
94
Puanları
1
Yaş
32
Konum
NETAŞ
Merhabalar Dostlar ve Üstadlar...

Son hızla devam ettğim ve sona yaklaştığım ve internette arayıp bulunabilecek en iyi Sinema Otomasyonu olarak iddaa ettiğim projemde bir yerde takıldım ve sizlerin yardımına ihtiyacım var.

Projem bittiğinde sadece KontrolKalemi üyeleriyle paylaşacağım.

Takıldığım yer ise;

Aynı anda birden fazla koltuk seçimi yapabilmek. Günlerden beri uğraşıyorum araştırıyorum ama bir türlü aynı anda birden fazla koltuk seçimi yapamıyorum.

Koltukları dinamik butonlarla oluşturdum. Tek tek buton olarak eklemedim.

Eğer bu problemi de çözersem projem bitmiş olacak.
Yardımlarınızı Bekliyorum.
Teşkkürler...
 
Aynı anda birden fazla koltuk seçimi nasıl olacak biraz daha ayrıntı verirsen belki yardımcı olabiliriz.
 
Hocam,
Örneğin 3 kişi geldi yan yana koltuk istediler.

E5-E6-E7 numaralı koltukları satıcam o kişilere. İşte tam bu noktada benim sıkıntım başlıyor.
Aynı anda birden fazla sıralı ya da sırasız koltuk seçimi yapamıyorum.

İlginiz için teşekkürler.
 
Bunun birkaç yöntemi olabilir. Öncelikle Hangi koltuktan başlayıp kaç adet bilet istendiğini vs. operatörden alabilmen için Adetli bilet satışı gibi bir form koyman gerekir yada Herhangi bir koltuğa sağ tıklayıp Adet gir gibi birşey yapman lazım.
Velhasıl bir şekilde operatörün kaç adet birden bilet satacağını ve bunların değişik oturma seçeneklerine göre yerleştirilmesi için bir algoritma geliştirmen lazım.
Süreci kısaca özetlersek.
1.Kısım: Müşteri isteklerine uyan koltukların tespit edilmesi.

Örnek1: 5 adt. koltuk alacağım ama önlerden olmasın diyebilir gelen kişi.
Örnek2: 6 koltuk ama önlü araklı oturabiliriz diyebilir. vs. vs.
Tüm isteklere karşı ya otomatik koltuk bulan bir algoritma olmalı yada işin büyük kısmını operatöre yıkıp ekrandaki şartlara uyan koltukları farklı renkte gösterebilen yada diğer koltukları geçici olarak pasif yapıp seçime uyan butonları farklılaştıran bir algoritma.
Yada Bilet alma davranışlarında en fazla rastlanılan bir kaç senaryoya uygun bir algoritma geliştirip diğerlerini yine operatöre yıkma.
Burdaki seçeneklere göre programın yapısı değişecektir.

2.Kısım: Seçimi yapılan yada yerleştirmeye uygun olan koltukların satışının yapılması.
Bu kısımda ilk kısma bağlı olarak değişiklikler gösterebilir.
Örn: İstenen kriterlere uyan koltuklar listelenip yanlarına bir çentik konularak operatörün seçim yapması istenebilir yada
Başlangıç koltuğu ve adet girişi istenebilir. vs vs. Bu seçimler sizin programın kullanımını ve Arayüzün kolay yada zor olmasını etkileyecektir.

1- adımda koltuklar bir şekilde tespit edilecek, Butonların aktif yada pasif olma durumuna göre, yada koltuklar için bir tablo Veritabanı vs tutuluyorsa sorgulamalar yapılıp boş olan ve şarta uyan koltuklar seçilecek.
2- adımda ya bu koltukların onclick olayı tetiklenecek yada tablo VT ne kullanılıyorsa orda satış yapıldığı ilgili kayda işlenerek. O koltuğa ait butonun pasif hale gelmesi sağlanacak.

Eğer sadece kod ile ilgili koltuğun dinamik butonuna nasıl tıklanmış gibi işlem yaptırırım dersen.
Aşağıdaki Delphi örneğini incele derim. Öncelikle küçük bir form oluşturup buradaki dinamik butonlara kodla nasıl tıklayacağını denemelisin. Sonra bunu projene uygulayabilirsin.
Ben delphi ile çalıştığım için mantığı kapman için Delphi örneğini veriyorum C de nasıl olur bişey diyemem ama mantığı bildikten sonra bir şekilde hallolur sanırım.


Kolay gelsin...

Kod:
 [COLOR=#333333][FONT=Droid Sans Mono]
 [/FONT][/COLOR][B]procedure[/B][COLOR=#333333][FONT=Droid Sans Mono] TForm1.Button1Click(Sender: TObject) ;[/FONT][/COLOR] [B]begin[/B]
   [I]{code for both a button and a menu item}[/I]
   ...
   [I]{some specific code:}[/I]
   [B]if[/B] Sender = Button1 [B]then[/B]
    ShowMessage('Button1 clicked!')
   [B]else if[/B] Sender = MenuItem1 [B]then[/B]
    ShowMessage('MenuItem1 clicked!')
   [B]else[/B]
    ShowMessage('??? clicked!') ;
 [B]end[/B];
 [COLOR=#333333][FONT=Verdana]
In general, we check if the Sender is equal to the name of the component.[/FONT][/COLOR][COLOR=#333333][FONT=Verdana]Note: the second else in the if-then-else statement handles the situation when neither the Button1 nor the MenuItem1 have caused the event. But, who else might call the handler, you could ask. Try this (you'll need a second button: Button2) :
[/FONT][/COLOR]
 [B]procedure[/B] TForm1.Button2Click(Sender: TObject) ;
 [B]begin[/B]
    Button1Click(Button2) ;
    [I]{this will result in: '??? clicked!'}[/I]
 [B]end[/B]; [B]IS and AS[/B]

[COLOR=#333333][FONT=Verdana]Since Sender is of type TObject, any object can be assigned to Sender. The value of Sender is always the control or component that responds to the event. We can test Sender to find the type of component or control that called the event handler using the reserved word is.
 
For example,
[/FONT][/COLOR] [B]if[/B] Sender [B]is[/B] TButton [B]then[/B]
    [I]DoSomething[/I]
 [B]else[/B]
    [I]DoSomethingElse[/I];
 
Çok Teşekkürler Hocam.
Yen görebildim mesajı. En kısa zamanda deneyip sonucu bildiririm.
 

Forum istatistikleri

Konular
128,151
Mesajlar
915,483
Kullanıcılar
449,894
Son üye
Mehmet Denizz

Yeni konular

Geri
Üst