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 ;
[sourcecode language=”csharp”]
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();
}
}
[/sourcecode]
ş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.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Dijital Dönüşümünüzü AI İle Hızlandırın

Dynamics 365 ve AI destekli çözümlerle iş süreçlerinizi optimize edin, verinizi anlamlı içgörülere dönüştürün ve büyümenizi sürdürülebilir hale getirin.

AI-Ready Enterprise Partner

Microsoft Dynamics 365 ve yapay zekâ çözümleriyle kurumsal sistemlerinizi güçlendirir, operasyonel karmaşıklığı azaltır ve geleceğe hazır bir mimari tasarlarız.

DMR Göztepe Merkez Ofis

Eğitim Mah. Hızırbey Cad. No:118/5 D:1 Kadıköy İstanbul

Marmara Üniversitesi Göztepe Kampüsü Teknopark

Tel: +90 216 470 79 49

E-posta: info@dmrbt.com

DMR Başıbüyük Ofis

Başıbüyük Mahallesi Süreyyapaşa Başıbüyük Yolu Sk. No: 4/7 Maltepe İstanbul

Marmara Üniversitesi Başıbüyük Kampüsü Teknopark

Tel: +90 216 470 79 49

E-posta: info@dmrbt.com