![]() |
#6 |
Участник
|
Нет , в modified . Я писал , редагирую в гриде , тогда после редактирования есть запрос - "Обновлять ето для другх записей из той же самой серии ?" и если "Да" , то тогда хожу по while - делаю update для другиь записей . Вот полный код :
Код: public boolean modified() { Date dDat,dText; CIRFASCharacterValue spVar; CIRFASModelConfigId spalva; boolean ret; asgmTbl.data( UTAsgmTable ); asgms = UTAsgm::find(asgmTbl.AsgmId); dDat = asgmTbl.PlanDate; spVar = asgmTbl.CharacterValue; spalva = asgmTbl.ModelVariant; dText = this.dateValue(); ret = super(); if ( ret && asgms.ColourNesc ) { element.SpChng( 1, dText ); } if ( ret && asgms.MailNesc ) { if ( dText != dDat ) { element.Emailinti(asgms.AsgmId,date2str(dDat,321,2,2,2,2,2),date2str(dText,321,2,2,2,2,2),spvr); } } if ( spvr ) { UTAsgmTable_ds.research(); UTAsgmTable_ds.findRecord(asgmTbl); } return ret; } // void SpChng( Int nFld, Date dText, Str cVal = "" ) { UTAsgmTable asgmTb; spvr = false; if ( box::yesNoCancel( "Ar keisti visiems spalv.variantams", DialogButton::Ok, "Klausimas !" ) ) { ttsbegin; while select forupdate asgmTb index hint Index1 where asgmTb.SalesId == asgmTbl.SalesId && asgmTb.AsgmId == asgmTbl.AsgmId { if ( asgmTb.CharacterValue && asgmTb.RecId != asgmTbl.RecId ) { if ( nFld == 1 ) asgmTb.PlanDate = dText; if ( nFld == 2 ) asgmTb.FactDate = dText; if ( nFld == 3 ) asgmTb.AsgmValue = cVal; asgmTb.update(); } } ttscommit; spvr = true; } } |
|