Herhangi bir tablo satırını bire bir çoğaltmak

Merhaba
Örneğin bir SalesTable kaydınız var. Bu kaydın bütün alanlarını başka bir satıra kopyalamak istiyorsunuz. Standartta olan data() metodunu kullanabilirsiniz. Örnek verecek olursak.

static void RecorKopyala(Args _args)
{
SalesTable salesTable;
SalesTable salesTableCopy;
;
salesTable = SalesTable::find(“s00001”);
salesTableCopy.data(salesTable);
salesTableCopy.SalesId = “s0002”;
salesTableCopy.insert();
// salesTable ve salesTableCopy aynı bilgileri içerirler SalesId hariç
}

Bu işlemde bütün alanları kopyalamış olursunuz. Formda kullanırken bazen bütün alanların kopyalanmasını istemeyebilirsiniz. Formun veri kaynağının create() metodunu kullandığım bir örenği ilerde Paylaşacağım. Biz şimdi data() ile yapılan işleme benzer bir işi yapacak metodumuzu  Global klasına  ekleyelim.
Public static void copyTableFields(common _origLine,Common _newLine)

// Parametreler Common tipinde olduğu için hangi tabloyu gönderirseniz ona göre çalışacak
// İki parametreninde aynı tipte  olması şart onun kontrolunuda bu metoda ekleyebilirsiniz.
{
    dictTable           dictTable;
    int                 fieldCnt;
    int                 i;
    int                 fieldId;
     ; 
    dictTable   = new DictTable(_origLine.TableId);
    fieldCnt = dictTable.fieldCnt(); 
    for (i = 1; i <= fieldCnt; i++)
    {
        fieldId = dictTable.fieldCnt2Id(i);
        if(dictTable.fieldName(fieldid) != “RecId” ) // recId hariç bütün alanları kopyalıyoruz
            _newLine.(fieldId) = _origLine.(fieldId);
    } 
}
 
RecorKopyala jobımızı medifiye edelim.
 
static void RecorKopyala(Args _args)
{
SalesTable salesTable;
SalesTable salesTableCopy;
;
salesTable = SalesTable::find(“s00001”);
copyTableFields(salesTable,salesTableCopy); // data() yerine  kullandık.
    salesTableCopy.SalesId = “s0002”;
salesTableCopy.insert();
// salesTable ve salesTableCopy aynı bilgileri içerirler
}
 

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