24.08.2012, 11:14 | #1 |
Участник
|
какой метод перекрыть?
Здравствуйте всем!
Вопрос! какой метод надо перекрыть в гриде ,что бы он динамически понимал изменения в другои форме открытои паралельно. мжт я не правильно формулирую может не какои метод ,а как перекрыть? X++: If ( (vsn_DemandTable.DemandStatus > vsn_DemandStatus::NewDemand ) ) { Vsn_DemandTable_ds.object(fieldnum(vsn_demandtable , pallet)).allowEdit(false); } shipmentdoc = custtable::find(VSN_DemandTable.CustAccount).Shipmentwithbox; if ((Shipmentdoc == 0)) { Vsn_DemandTable_ds.object(fieldnum(vsn_demandtable , pallet)).allowEdit(false); Vsn_DemandTable_ds.object(fieldnum(vsn_demandtable , palletf)).allowEdit(false); } Но если в паралельнои форме происходят изменения над таблицой CustTable то встают они после переоткрытия формы DEmand..... как быть дальше??как решить проблему? зареанее очень благодарен |
|
24.08.2012, 11:50 | #2 |
Участник
|
категорически ошибочная постановка задачи.
[почти] никогда не нужно работать на уровне контролов формы. работайте на уровне датасорса, поля датасорса. иногда на уровне таблицы. ============= 1. любое управлению видимостью, доступностью полей делайте в методе active() датасорса. так код по управлению надо будет писать только один раз. он будет работать в любом случае - открыли форму, переместили курсор на другую запись, сработал dynalink и т.п. 2. (рекомендуется) изменения в другой форме должно запустить reread() датасорса на первой форме (не рекомендуется) или вызовите метод active() из другой формы |
|
24.08.2012, 11:55 | #3 |
Гость
|
Для начала надо выяснить, автор форму №2 открывает из формы №1 или просто обе открывает из меню, а потом размещает их рядом на экране.
|
|
|
За это сообщение автора поблагодарили: mazzy (2). |