Masaya Isim Verme (Farklı Bir Yaklaşım/Bakış Açısı)

Merhabalar

@mehmet @emre @vehbi @EmrBkts
hocam kafama takildi :slight_smile:

Sanirim takip ediyorsuniuz, söz konusu asagidaki baslik:

Masaya isim verme

Butonlarin üstünde kullanilan görüntüler icin syntax lar var. Tahminen bunlar fazla oldugunda, her sorgu icin ayri bir SELECT kullaniyor. Peki bu sorgularin sonucu tek bir SELECT ile cekilemez mi?

Örn:
$1 yerine dogrudan masa numarasini girerek raporlarda gösterdim…Sadece örnek olmasi acisindan.

Resimde de görülecegi üzere 1. Deneme de 3 ortak bilesen var. Bu bilesenleri 2. denemede ortak bir paydada birlesip, ayni sonucu cikartiyorlar. Fakat burdaki asil soru, bu verilerin resultlarini nasil degiskenlere koyup, istedigim yerde kullanabilirim (mesela masa butonlarinda)?

Yani 3 is yapacagina, 1 is ile olayi bitirtmek seklinde düsünebilirsiniz.
Böyle birsey yapilabilir mi? Daha hizli bir sekilde islem bitirilebilir mi? Bu yöntem Masa Butonlarinda kullanilabilir mi?

Tesekkürler
Erkan Kaplan

2 Beğeni

Tabii tek seferde yapabilirsiniz. Aslında bu rapor cümlesinin her masa için mantıklı bir sürede tek tek çalışmasını sağlamak için bayağı bir optimizasyon yapıldı ancak elbette tek cümle içinde toplamak kesinlikle daha verimli çalışır.

Rapor cümlemizin şöyle bir syntax’ı var

{ReportName Fields:Expression:DisplayFormat}

Dolayısıyla Display Format’ı kullanarak Masa butonlarının nasıl görüneceğini belirleyebiliriz. Mesela

{REPORT TICKET DETAILS:T.RemainingAmount,T.User:(TEN.Table=$1) and 'RemainingAmount>0':Amount {0}<br/>User {1}}

… gibi yapabiliriz.

Son bölümdeki Amount {0}<br/>User {1} kısmı görünüm formatı oluyor. {0} ilk alan, {1} ikinci alan şeklinde kullanılabiliyor. Yani {0} T.RemaningAmount, {1} T.User yerine geçer.

: karakteri rapor cümlelerinde bölümleri ayırmak için kullanıldığından bu karakteri format içinde kullanamıyoruz. Tek kısıtlamamız bu.

2 Beğeni

@emre
anladim hocam…Simdi biraz daha hos durdu. Kisa ve öz. :slight_smile:

Unbenannt

Kullandigim syntax

 <bold>$1</bold><size 28><br/>
⏱{ENTITY STATE MINUTES BY NAME:Tables.$1:Status} 
{REPORT TICKET DETAILS:T.RemainingAmount,T.User, TT.Personenanzahl, TT.Masa Ismi:(TEN.Table=$1) and 'RemainingAmount>0':
€ {0}  👤{1}  👤👤{2} <br/>({3})}
</size>

Tesekkürler

Buradaki asıl büyük sorun bu durum görünümlerinin Yerel Ayarlar da veya Client/User bazlı ilişkilendirilmesidir. Tek cümle sorgusu kısmen yükü azaltsa bile client tarafında görülmesi gerekli olmayan bilgi için sorgulama yapılması tekrar yükü bir kaç katına çıkarabileceği gibi zaman zaman da aynı anda yapılabilecek sorgulardan dolayı bazı sorunlar çıkma ihtimali olabilir.

:slight_smile: Evet @Banned SambaPOS’da en çok zaman harcadığım üç ana konu var. Birincisi ekranda görünen hemen her şeyin bir şekilde değiştirilebilmesi, ikincisi bunun rol / client bazlı yapılabilmesi. Üçüncüsü de bunun hızlı çalışabilmesi. Bunun için sürekli iyileştirmeler yapıyoruz ancak bazı konular var ki iyileştirmenin ötesinde yapısal değişiklikler gerektiriyor. Mesela ürün isimlerinin rol bazlı olarak değişik dillerde görünmesi ya da fiyatların rol bazlı olarak farklı para birimlerinde görünmesi gibi. Bu tür kapsamlı değişiklikleri ana sürüm yükseltmelerinde yapabiliyoruz. V5 sürümü için planladığımızdan çok daha fazla yenilik eklediğimiz için V6 sürümü ile birlikte bu tür kapsamlı değişiklik gerektiren özellikler de gecikmiş oldu. Üzerinde çalıştığımızı bilin istedim.

Burada bazı püf noktaları var, yeri geldikçe bahsediyorum ancak özel masa butonları için sorgu bir kere çalıştıktan sonra tekrarlayan sorgular için SambaPOS “genellikle” aynı sorguyu tekrar çalıştırmadığı için çok büyük bir yük oluşmaz ancak tabii görsel açıdan farklı kullanıcılar için farklı durum formatları kullanmak isteyebilirsiniz. Bunu bir şekilde kolaylık sağlaması için durum tanımı altına almıştım ama çoğu görsel özellikler gibi bunu da rol bazlı tanımlayabileceğimiz bir değişiklik üzerinde çalışabiliriz.

1 Beğeni

Emre hocam yarın için bir konu başlığı açmayı planlıyorum, Yeni Versiyonda Olması Gereken Standartlar başlığı ile.
Şu ana kadar olgunlaşmış bir çok konu var çünkü. Her kurulumda bunları yeniden yapmak yerine standart kurulumda olması gerektiğini düşünüyorum ki sizde hemfikir olursanız (V6 için road map nedir bilmiyorum ama) bu belirlenen konuları yeni sürüme dahil edelim derim …

Bizim takip ettiğimiz bir yol haritamız ve uzun bir yapılacak işler listemiz var. Tabii yayınladığımız özellikler yeni taleplere yol açtığı için bu listemiz hiç kısalmıyor ama çalışma ortamından, kullanıcılardan ve forumdan gelen talepler öncelikli olacak şekilde listemizdeki maddelerin öncelikleri sürekli değişiyor. Yani bir konu ne kadar çok karşımıza çıkıyorsa onun önceliği de bir şekilde artmış oluyor çünkü elimizden geldiğince yaptığımız işlerin çok sayıda kullanıcımızı ilgilendiren yenilikler olmasına dikkat ediyoruz. Öncelikli konuları topluca ele alarak benzer sorunları topluca çözmek istiyoruz.

Özgün yapısı nedeniyle SambaPOS’da çözümler her zaman talep edildiği şekilde üretilmeyebilir ancak sorunun ruhuna uygun olacak şekilde bir çözüm muhakkak üretilir. Bu nedenle çok önemsiz bile olsa yaşanan sorunların bir şekilde gündeme gelmesi ve muhtemel çözümler üzerine konuşulması çok önemli. Sadece program hatalarından bahsetmiyorum. Genel anlamda iyileştirebileceğimiz her konudan bahsediyorum. Bunlar bir şekilde dikkate alınmıyor gibi gözükse bile genel olarak üzerine düşmemiz gereken konularla ilgili fikir sahibi olabilmemiz açısından çok önemli.

Türkçe forumu yeni açtığımız için genellikle soru-cevap formatında ilerliyoruz ancak çok hızlı yol aldığımızı düşünüyorum. Çok kısa süre içinde konuya genel olarak hakim bir çekirdek topluluk oluşturabileceğiz. Çekirdek topluluk çok önemli çünkü bir süre çalıştıktan sonra belli kişilerin açtığı konular ister istemez daha çok dikkate alınıyor.

Buraya kadar aslında şunu anlatmaya çalıştım. Elbette olması gerekenler üzerine konuşacağız ancak bizim geliştirici ekip olarak daha çok ilgilendiğimiz konu çözülmek istenen sorunun kendisi. Yaşanan problemin ne olduğunun herkes tarafından doğru anlaşıldığından emin olmak birinci önceliğimiz. Bunun net bir şekilde ortaya konulduğundan emin olduktan sonra çözümler üzerinde düşünmeye başlıyoruz. İngilizce forumu takip edenler varsa dikkat etmişlerdir. Yeni gelen üyeler genellikle ne istediklerini anlatma eğilimindedirler. Çoğu zaman ne sorun yaşandığı yani kişinin neyi çözmek istediği bile doğru anlaşılmaz. O zaman aktif üyelerimiz çeşitli sorular sorarak sorunun ne olduğunu anlamaya çalışırlar. Bu sorular çoğu zaman yeni üyemiz için sıkıcıdır çünkü genellikle istediği şeyin yaşadığı sorunu da net bir şekilde ortaya koyduğunu düşünür. Fazla sorgulanmadan istediği özelliğin eklenmesini bekler. Nadir de olsa kızıp gidenler bile oluyor ama genellikle sorun üzerine konuşurken en başta istenen çözümden çok daha iyi ve daha genel kullanıcı kitlesine hitap eden çözümler ortaya çıkıyor. Bize de kodlaması kalıyor :slight_smile:

Belki biraz zaman alacak ama bu kültürü oturtabilirsek bayilerimiz ve kullanıcılarımız için çok daha faydalı çözümler geliştirme şansımız olacaktır. Dolayısıyla konu başlığımız Yeni versiyonda çözülmesi gereken sorunlar gibi olursa daha doğru bir başlangıç yapmış oluruz diye düşünüyorum. Yeterince olgunlaştığından emin olalım.

1 Beğeni