Skip links

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


Notice: Trying to access array offset on value of type bool in /var/www/vhosts/dmrbt.com/httpdocs/wp-content/themes/boo/rella/extensions/aq_resizer/aq_resizer.php on line 117

Notice: Trying to access array offset on value of type bool in /var/www/vhosts/dmrbt.com/httpdocs/wp-content/themes/boo/rella/extensions/aq_resizer/aq_resizer.php on line 118

Notice: Trying to access array offset on value of type bool in /var/www/vhosts/dmrbt.com/httpdocs/wp-content/themes/boo/rella/extensions/aq_resizer/aq_resizer.php on line 117

Notice: Trying to access array offset on value of type bool in /var/www/vhosts/dmrbt.com/httpdocs/wp-content/themes/boo/rella/extensions/aq_resizer/aq_resizer.php on line 118
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.

Join the Discussion