Formda CTRL veya Shift ile seçilmiş kayıtlarda işlem yapmak
Merhaba.
Axaptada grid üzerinde CTRL veya shift ile çoklu seçim yapılabilir.
Bu özelliği kullandığım bir örneği sizinle paylaşıyorum.
Öreneğimizde seçilen kayıtları bir buton aracılığıyla artan numara atanacak.
Öncelikle eklediğimiz butonun propertisinden MultiSelecet = Yes yapıyoruz.
daha sonra click() metodundan preNumbering() metodnu çağırıyoruz.
Element.preNumbering();
preNumbering() metodumuz inceleyelim ;
void preNumbering() { CustInvoiceJour localCustInvoiceJour; boolean isPreExist; ; isPreExist = false; localCustInvoiceJour = CustInvoiceJour_ds.getFirst(1); // çoklu seçim varsa içinde dolanıp PreInvoiceId dolu olan varsa uyarı verdiriyoruz <!--more--> if(localCustInvoiceJour) { while (localCustInvoiceJour) { if(localCustInvoiceJour.PreInvoiceId) { isPreExist = true; } localCustInvoiceJour = CustInvoiceJour_ds.getNext(); } } else // eğer çoklu seçim yapılmamış tek satır seçilmişse burası çalışıyor { if(CustInvoiceJour.PreInvoiceId) { isPreExist = true; } � } if(isPreExist) // eğer PreInvoiceIddolu olan bir kayıt varsa uyarı veriyoruz { if(box::yesNo("Seçilen kayıtlarda matbu numara var, değiştirmek istiyor musunuz?", dialogbutton::Yes) == dialogbutton::Yes) { // dolu olmasına rağmen değiştirmek isterse element.dialogPreNumbering(); } } else // PreInvoiceId eğer dolu değilse diyaloğumuzu çağırıyoruz { element.dialogPreNumbering(); } }
şidide dialogPreNumbering() metodumuza bakalım
void dialogPreNumbering() { dialog d = new Dialog("Numara başlangıcı"); dialogField dfPrefix; dialogField dfSufix; DTSeries Prefix; DTStartingNum Sufix; CustInvoiceJour localCustInvoiceJour; CustInvoiceJour upCustInvoiceJour; ; d.addGroup().columns(2); dfPrefix = d.addField(typeId(DTSeries),"Seri"); dfSufix = d.addField(typeId(DTStartingNum), "Başlangıç"); if(d.run()) { Prefix = dfPrefix.value(); Sufix = dfSufix.value(); localCustInvoiceJour = CustInvoiceJour_ds.getFirst(1); if(localCustInvoiceJour) // yine seçilen kayıtlarda dolanıp gerekli updateişlemini yapıyoruz. { while (localCustInvoiceJour) { ttsbegin; upCustInvoiceJour = CustInvoiceJour::findRecId(localCustInvoiceJour.RecId,true); upCustInvoiceJour.PreInvoiceId = strfmt("%1%2",Prefix,Sufix); upCustInvoiceJour.update(); ttscommit; Sufix += 1; localCustInvoiceJour = CustInvoiceJour_ds.getNext(); } } else { ttsbegin; upCustInvoiceJour = CustInvoiceJour::findRecId(CustInvoiceJour.RecId,true); upCustInvoiceJour.PreInvoiceId = strfmt("%1%2",Prefix,Sufix); upCustInvoiceJour.update(); ttscommit; � } } � CustInvoiceJour_ds.executeQuery(); // formu tazeledik update işlemleri artık görünür halde }
Selamlar.