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.