11.05.2007, 16:22 | #1 |
Участник
|
Grid и место курсора
Здраствуйте ,
Знаете как бывает - кажеться здесь будет всё просто , но ... Есть простой грид и после редактирования данных по условиям там обновляеться несколько строк в тот же самый грид . Проблема в том - как обновлят данные и снова поставит курсор , в тот же самое место , где он был . Я попpoбывал такое : Код: ... MyTable mTbl, myTblChg; mTbl = MyTable_ds.cursor(); ttsbegin; while select myTblChg forupdate where ... { // update ... } ttscommit; MyTable_ds.research(); MyTable_ds.findRecord(mTbl); ... Спасибо за помочь ! С уважением , Римантас |
|
11.05.2007, 16:31 | #2 |
NavAx
|
Если я правильно понимаю, то ответ на ваш вопрос можно увидеть здесь Восстановление позиционирования в грид
|
|
11.05.2007, 16:42 | #3 |
Участник
|
Цитата:
Сообщение от LEX
Если я правильно понимаю, то ответ на ваш вопрос можно увидеть здесь Восстановление позиционирования в грид
mTbl = MyTable_ds.cursor() ; поменял я , как там на примерах : mTbl.data( MyTable ); Но всё равно - MyTable_ds.research(); MyTable_ds.findRecord(mTbl); непоставляет в старое место , скачает в первую строку ... Римантас |
|
11.05.2007, 16:51 | #4 |
NavAx
|
А в каком методе у вас происходит обновление? В clicked?
|
|
11.05.2007, 17:01 | #5 |
Участник
|
Прошу прощения - а причём тут Cliсked? у вас идёт явное присвоение
mTbl = MyTable_ds.cursor() ; при котором mTbl всегда будет содержать текущий курсор. попробуйте запоминать recId или курсор независящий от ds, например myTable = maTable::findMyTable(mytable.field1); |
|
11.05.2007, 17:03 | #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; } } |
|
11.05.2007, 17:16 | #7 |
NavAx
|
Посмотрите дебаггером, заходите ли вы в
X++: if ( spvr ){...} |
|
14.05.2007, 09:41 | #8 |
Участник
|
Надеюсь выходные были прекрасные ... . Хочу продолжить ету тему . LEX , я обязательно проверил с дебагером , как вы просили - условие правилное , там заходим обязательно ... Может быть ещё есть каких нибудь идей , как поставить гридный курсор на старое место , после обновления данных ?
Спасибо заранее ! С уважением , Римантас |
|
14.05.2007, 09:55 | #9 |
NavAx
|
А а в момент отработки метода UTAsgmTable_ds.findRecord(asgmTbl), asgmTbl точно у вас находится на той строке на которой был курсор?
|
|
14.05.2007, 09:57 | #10 |
Участник
|
Цитата:
Сообщение от Rimantas
Надеюсь выходные были прекрасные ... . Хочу продолжить ету тему . LEX , я обязательно проверил с дебагером , как вы просили - условие правилное , там заходим обязательно ... Может быть ещё есть каких нибудь идей , как поставить гридный курсор на старое место , после обновления данных ?
Спасибо заранее ! С уважением , Римантас Спасибо ! Римантас |
|
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|