Страница 1 из 1

Независимые Browse в интерфейсе

Добавлено: 20 июн 2003, 12:20
volkov_alex
Добрый день!

Подскажите, кто знает, как в интерфейсе в одном окне сделать два броуза независимых (от разных логических таблиц). Нужно, например, чтобы в одном был список накладных, я их помечаю, а во втором - список МЦ, в котором суммировалось количество по помеченным документам.

Спасибо.

Re: Независимые Browse в интерфейсе

Добавлено: 20 июн 2003, 12:47
ecasoft
Есть такое понятие как ПАНЕЛЬ..- область активности какой-то таблицы...в панели есть оператор table <имя таблицы>. Таким образом у Вас должно быть две панели с разными таблицами. В одну панель входит один или несколько браузеров и/или скринов. У панели есть свой обработчик событий - это события по таблице панели. Вот такие дела. Полностью идеологию панелей лучше прочесть в доке, а то там много.

Хотя может неправильно понял вопрос - может так какие тонкости не получаются?

С уважением, Игорь

Re: Независимые Browse в интерфейсе

Добавлено: 20 июн 2003, 12:55
volkov_alex
table <имя таблицы> есть и у browse, туда прописываю имена из разных логических таблиц - ничего не получается, только если из первой описанной в интерфейсе, но тогда они получаются логически связанные и при перемещении по первому browse изменяется информация во втором (из подцепленной таблицы), а нужна инфа из другой логической.

Документацию почитал бы, если б была, буду благодарен если перешлете на fp@arh.ru

Re: Независимые Browse в интерфейсе

Добавлено: 20 июн 2003, 16:02
m0p3e
Оформи как два разных узла.
ROOT == KatSopr.nrec
ROOT == KatMc.nrec

Re: Независимые Browse в интерфейсе

Добавлено: 20 июн 2003, 16:08
m0p3e
Ну и браузы сообветствующие есесенно...
Browse KS
Table KatSopr

Browse KM
Table KatMc

Re: Независимые Browse в интерфейсе

Добавлено: 21 июн 2003, 08:36
Maverick
Ну например можно так )))
Слева Накладные, справа - МЦ, кот не завият др от др.

Это сразу можно компилить

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.

Re: Независимые Browse в интерфейсе

Добавлено: 21 июн 2003, 11:03
Goblin
Если нужна в одном из 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.

Re: Независимые Browse в интерфейсе

Добавлено: 21 июн 2003, 11:41
volkov_alex
Всем спасибо за ответы, буду пробовать дальше, только маленький вопрос:
при запросе вида

Create View As Select *
From
KatMC, KatSopr;

Разве не получается в результате выборка в виде декартова произведения двух этих таблиц?

Re: Независимые Browse в интерфейсе

Добавлено: 07 авг 2003, 10:07
GTHack
думаю пример Маверика тебе мало помог, т.к. в таком раскладе получится просто два независимы брауза (думаю хотели все таки связи оставить)
поэтому подытожим с учетом советов Морзе вышесказанное, добавим синоним и вот -

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.

можеш это дело сразу компилить

Re: Независимые Browse в интерфейсе

Добавлено: 07 авг 2003, 13:53
Vitas
Если у тебя во второй по большому счету подбиваются итоги, то значит уже что эти две таблы связанны, причем один ко многим, т.е. на нрек списка накладных ссылаются мс
Дальше, для этого фейса тебе просто необходимо завести временную таблицу и по события по которым идет пометка твоих накладных производить дозапись (модификацию) или удаление из временной таблицы (читай таблицы памяти).

Все, единственное, обработчик события который ты выбрал, тот и используй, т.е. если у тебя из стату берется обработчик, которым метишь, то в него и вставляй мод таблицы памяти, хотоя можно извратиться и прикрутить событие cmCheckField, но это изврат.

Есть в принципе и вариант без таблицы памяти, но в случае, если в накладных будут одинаковые МЦ, то забиси будут по этим МЦ дублироваться с цифирами из соответственных накладных. Т.е. все зависит от того, для чего тебе надо. А вообще реализуется просто, т.е. ты берешь табличку пик, в которую кидаешь нреки выбранных накладных (по большому счету это уже и есть выбор), дальше, берешь этуже пик но с синонимым и им ограничеваешь специффикацию накладных из которых будут браться МЦ. сами накладные и специффикацию в запросе ни как не связываешь, на выходе две независимые (условно) таблы по накладным и спецификациям, ограничения на спецификацию накладываются в зависимости от работы с накладными

Если чего-то не понял, спрашивай. ;)