Показать сообщение отдельно
Старый 12.10.2012, 09:13   #12  
abv2703 is offline
abv2703
Участник
 
92 / 22 (1) +++
Регистрация: 05.12.2003
Адрес: Санкт-Петербург, улица Бухарестсткая
Ню, можно как-нибудь так

PHP код:
//abv        09.10.2012 копирование данных исходной таблицы в произвольную таблицу.
static void abv_buf2bufCommon  _from,  Common  _to )
{
    
DictTable   dictTableFrom = new DictTable(_from.TableId);
    
fieldId     fieldIdFrom   dictTableFrom.fieldNext(0);
    
DictTable   dictTableTo   = new DictTable(_to.TableId);
    
fieldId     fieldIdTo     dictTableTo.fieldNext(0);
    
DictField   dictFieldFrom,dictFieldTo;
    
Name        nameFrom,nameTo;
    
NoYes       somethingCopied;
    ;

    while( 
fieldIdFrom && !isSysId(fieldIdFrom) )
    {

        
fieldIdTo     dictTableTo.fieldNext(0);

        
dictFieldFrom dictTableFrom.fieldObject(fieldIdFrom);
        
nameFrom      dictTableFrom.fieldName(fieldIdFrom);

        while( 
fieldIdTo && !isSysId(fieldIdTo) )
        {

            
nameTo      dictTableTo.fieldName(fieldIdTo);
            
dictFieldTo dictTableTo.fieldObject(fieldIdTo);

            if( 
nameFrom == nameTo && dictFieldFrom.typeId() == dictFieldTo.typeId() )
            {

                
_to.(fieldIdTo) = _from.(fieldIdFrom);
                
somethingCopied NoYes::Yes;

                break;

            }

            
fieldIdTo  dictTableTo.fieldNext(fieldIdTo);

        }

        
fieldIdFrom     dictTableFrom.fieldNext(fieldIdFrom);

    }
//========================================================================================
    
if( somethingCopied )
    {

        
_to.insert();

    }

}
//==============================================================================================================