Независимые Browse в интерфейсе
Модераторы: m0p3e, edward_K, Модераторы
-
- Сообщения: 5
- Зарегистрирован: 29 мар 2005, 17:49
- Контактная информация:
Независимые Browse в интерфейсе
Добрый день!
Подскажите, кто знает, как в интерфейсе в одном окне сделать два броуза независимых (от разных логических таблиц). Нужно, например, чтобы в одном был список накладных, я их помечаю, а во втором - список МЦ, в котором суммировалось количество по помеченным документам.
Спасибо.
Подскажите, кто знает, как в интерфейсе в одном окне сделать два броуза независимых (от разных логических таблиц). Нужно, например, чтобы в одном был список накладных, я их помечаю, а во втором - список МЦ, в котором суммировалось количество по помеченным документам.
Спасибо.
-
- Местный житель
- Сообщения: 645
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: г.Королев МО ООО "Эффективная Комплексная Автоматизация- СОФТ"
Re: Независимые Browse в интерфейсе
Есть такое понятие как ПАНЕЛЬ..- область активности какой-то таблицы...в панели есть оператор table <имя таблицы>. Таким образом у Вас должно быть две панели с разными таблицами. В одну панель входит один или несколько браузеров и/или скринов. У панели есть свой обработчик событий - это события по таблице панели. Вот такие дела. Полностью идеологию панелей лучше прочесть в доке, а то там много.
Хотя может неправильно понял вопрос - может так какие тонкости не получаются?
С уважением, Игорь
Хотя может неправильно понял вопрос - может так какие тонкости не получаются?
С уважением, Игорь
Некоммерческое общение в форуме
-
- Сообщения: 5
- Зарегистрирован: 29 мар 2005, 17:49
- Контактная информация:
Re: Независимые Browse в интерфейсе
table <имя таблицы> есть и у browse, туда прописываю имена из разных логических таблиц - ничего не получается, только если из первой описанной в интерфейсе, но тогда они получаются логически связанные и при перемещении по первому browse изменяется информация во втором (из подцепленной таблицы), а нужна инфа из другой логической.
Документацию почитал бы, если б была, буду благодарен если перешлете на fp@arh.ru
Документацию почитал бы, если б была, буду благодарен если перешлете на fp@arh.ru
Re: Независимые Browse в интерфейсе
Оформи как два разных узла.
ROOT == KatSopr.nrec
ROOT == KatMc.nrec
ROOT == KatSopr.nrec
ROOT == KatMc.nrec
Re: Независимые Browse в интерфейсе
Ну и браузы сообветствующие есесенно...
Browse KS
Table KatSopr
Browse KM
Table KatMc
Browse KS
Table KatSopr
Browse KM
Table KatMc
-
- Абориген
- Сообщения: 943
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: External Developer
- Контактная информация:
Re: Независимые Browse в интерфейсе
Ну например можно так )))
Слева Накладные, справа - МЦ, кот не завият др от др.
Это сразу можно компилить
Interface TwoPanels;
Create View As Select *
From
KatMC, KatSopr;
Panel pnlLeft;
Show At (,,40,);
Table KatSopr;
Browse brwKatSopr;
Fields
KatSopr.NoDoc : [10],skip;
KatSopr.DSopr : [10],protect;
End;
HandleEvent
cmInit :{};
cmClose:{};
cmDone :{};
End;
End;
Panel pnlRight
Show At (41,,,);
Table KatMC;
Browse brwKatMC;
Fields
KatMC.Name : [35],Protect;
End;
HandleEvent
cmInit :{};
cmClose:{};
cmDone :{};
End;
End;
HandleEvent
cmInit :{};
cmClose:{};
cmDone :{};
End;
End.
Слева Накладные, справа - МЦ, кот не завият др от др.
Это сразу можно компилить
Interface TwoPanels;
Create View As Select *
From
KatMC, KatSopr;
Panel pnlLeft;
Show At (,,40,);
Table KatSopr;
Browse brwKatSopr;
Fields
KatSopr.NoDoc : [10],skip;
KatSopr.DSopr : [10],protect;
End;
HandleEvent
cmInit :{};
cmClose:{};
cmDone :{};
End;
End;
Panel pnlRight
Show At (41,,,);
Table KatMC;
Browse brwKatMC;
Fields
KatMC.Name : [35],Protect;
End;
HandleEvent
cmInit :{};
cmClose:{};
cmDone :{};
End;
End;
HandleEvent
cmInit :{};
cmClose:{};
cmDone :{};
End;
End.
-
- Местный житель
- Сообщения: 474
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: Сибирь-матушка
- Контактная информация:
Re: Независимые Browse в интерфейсе
Если нужна в одном из browse именно подбивка по кол-ву МЦ из спецификации помеченных накладных - то второй browse придется по таблице в памяти делать, просто через Katmc не пройдет такое .
table struct Tmp_CalcMC
(
nrec:comp,
count:double
)
with index
(
tmp_calcmc01=nrec(unique)
)
Логическая таблица тогда будет вида
Select * from Katsopr(KATSOPR02),SpSopr,KatMC,Tmp_CalcMC where
((
<Нужный тип накладной>==Katsopr.VidSopr and
Tmp_CalcMC.Nrec==KatMC.Nrec
))
Т.к. судя по всему никакого редактирования,вставки или удаления ручками у тебя в фейсе не будет, то просто каждому browse назначишь свой Table(Panel применяется для разграничения действия табличных событий, а у тебя их нет - т.е. можно и без него обойтись одними table, для одного Katsopr, для другого Tmp_CalcMC будет). А в обработчике событий главного окна при обработке действий с маркером вставишь вставку/корректировку/удаление из Tmp_CalcMC.
table struct Tmp_CalcMC
(
nrec:comp,
count:double
)
with index
(
tmp_calcmc01=nrec(unique)
)
Логическая таблица тогда будет вида
Select * from Katsopr(KATSOPR02),SpSopr,KatMC,Tmp_CalcMC where
((
<Нужный тип накладной>==Katsopr.VidSopr and
Tmp_CalcMC.Nrec==KatMC.Nrec
))
Т.к. судя по всему никакого редактирования,вставки или удаления ручками у тебя в фейсе не будет, то просто каждому browse назначишь свой Table(Panel применяется для разграничения действия табличных событий, а у тебя их нет - т.е. можно и без него обойтись одними table, для одного Katsopr, для другого Tmp_CalcMC будет). А в обработчике событий главного окна при обработке действий с маркером вставишь вставку/корректировку/удаление из Tmp_CalcMC.
Питаю патологические отвращение и ненависть в особо тяжелой и крайне запущенной формах к семейству программ Microsoft Business Solution !
Восславим господа Кришну за то, что у нас есть ГАЛАКТИКА !
Восславим господа Кришну за то, что у нас есть ГАЛАКТИКА !
-
- Сообщения: 5
- Зарегистрирован: 29 мар 2005, 17:49
- Контактная информация:
Re: Независимые Browse в интерфейсе
Всем спасибо за ответы, буду пробовать дальше, только маленький вопрос:
при запросе вида
Create View As Select *
From
KatMC, KatSopr;
Разве не получается в результате выборка в виде декартова произведения двух этих таблиц?
при запросе вида
Create View As Select *
From
KatMC, KatSopr;
Разве не получается в результате выборка в виде декартова произведения двух этих таблиц?
-
- Местный житель
- Сообщения: 517
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: Новосибирск Новосибирск
- Контактная информация:
Re: Независимые Browse в интерфейсе
думаю пример Маверика тебе мало помог, т.к. в таком раскладе получится просто два независимы брауза (думаю хотели все таки связи оставить)
поэтому подытожим с учетом советов Морзе вышесказанное, добавим синоним и вот -
interface two_table 'Независимые браузы' DoAccept, EscClose, cyan;
Create view as select *
from katorg, katcity _katcity
where
((
ROOT == katorg.nrec
and ROOT == katcity.nrec
and katorg.ccity==_katcity.nrec
));
panel pnl_Left;
Show at (,,30,);
Table katorg;
Browse brw_katorg;
Fields
katorg.name: [20],protect;
end;
end;
panel pnl_Left;
Show at (31,,,);
Table katcity;
Browse brw_katcity;
Fields
katcity.name: [20],protect;
end;
end;
end.
можеш это дело сразу компилить
поэтому подытожим с учетом советов Морзе вышесказанное, добавим синоним и вот -
interface two_table 'Независимые браузы' DoAccept, EscClose, cyan;
Create view as select *
from katorg, katcity _katcity
where
((
ROOT == katorg.nrec
and ROOT == katcity.nrec
and katorg.ccity==_katcity.nrec
));
panel pnl_Left;
Show at (,,30,);
Table katorg;
Browse brw_katorg;
Fields
katorg.name: [20],protect;
end;
end;
panel pnl_Left;
Show at (31,,,);
Table katcity;
Browse brw_katcity;
Fields
katcity.name: [20],protect;
end;
end;
end.
можеш это дело сразу компилить
[url=http://blog.gtalex.ru]Блог GTAlex[/url]
Re: Независимые Browse в интерфейсе
Если у тебя во второй по большому счету подбиваются итоги, то значит уже что эти две таблы связанны, причем один ко многим, т.е. на нрек списка накладных ссылаются мс
Дальше, для этого фейса тебе просто необходимо завести временную таблицу и по события по которым идет пометка твоих накладных производить дозапись (модификацию) или удаление из временной таблицы (читай таблицы памяти).
Все, единственное, обработчик события который ты выбрал, тот и используй, т.е. если у тебя из стату берется обработчик, которым метишь, то в него и вставляй мод таблицы памяти, хотоя можно извратиться и прикрутить событие cmCheckField, но это изврат.
Есть в принципе и вариант без таблицы памяти, но в случае, если в накладных будут одинаковые МЦ, то забиси будут по этим МЦ дублироваться с цифирами из соответственных накладных. Т.е. все зависит от того, для чего тебе надо. А вообще реализуется просто, т.е. ты берешь табличку пик, в которую кидаешь нреки выбранных накладных (по большому счету это уже и есть выбор), дальше, берешь этуже пик но с синонимым и им ограничеваешь специффикацию накладных из которых будут браться МЦ. сами накладные и специффикацию в запросе ни как не связываешь, на выходе две независимые (условно) таблы по накладным и спецификациям, ограничения на спецификацию накладываются в зависимости от работы с накладными
Если чего-то не понял, спрашивай.
Дальше, для этого фейса тебе просто необходимо завести временную таблицу и по события по которым идет пометка твоих накладных производить дозапись (модификацию) или удаление из временной таблицы (читай таблицы памяти).
Все, единственное, обработчик события который ты выбрал, тот и используй, т.е. если у тебя из стату берется обработчик, которым метишь, то в него и вставляй мод таблицы памяти, хотоя можно извратиться и прикрутить событие cmCheckField, но это изврат.
Есть в принципе и вариант без таблицы памяти, но в случае, если в накладных будут одинаковые МЦ, то забиси будут по этим МЦ дублироваться с цифирами из соответственных накладных. Т.е. все зависит от того, для чего тебе надо. А вообще реализуется просто, т.е. ты берешь табличку пик, в которую кидаешь нреки выбранных накладных (по большому счету это уже и есть выбор), дальше, берешь этуже пик но с синонимым и им ограничеваешь специффикацию накладных из которых будут браться МЦ. сами накладные и специффикацию в запросе ни как не связываешь, на выходе две независимые (условно) таблы по накладным и спецификациям, ограничения на спецификацию накладываются в зависимости от работы с накладными
Если чего-то не понял, спрашивай.
Ищу возможности довести и так отличный продукт до еще большего блеска