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

Интерфейс Lschet

Добавлено: 15 ноя 2004, 18:24
savov
Да опять двадцать пять! Как запустить интерфейс Lschet просто на возврат номера лицевого счета (или nrecа записи), чтоб не переходилд в редактирование лицевого? Какие параметры не пробовалл подставить, ничего не выходит.. Описания этого фейса нет
Может кто запускал?

Re: Интерфейс Lschet

Добавлено: 15 ноя 2004, 20:18
Ged
А чем не нравиться
GETPMEU1

RunInterface('getpmeu1',comp(0),Zar_User.curcex);

Re: Интерфейс Lschet

Добавлено: 16 ноя 2004, 12:54
savov
Спасибо, конечно, можно и этот. Но я тут посмотрел на форуме, и окончательного ответа не увидел даже по этому интерфейсу, так как же все-таки вернуть номер нрека на человека из какого-либо цеха? Пусть и через getpmeu1.

Re: Интерфейс Lschet

Добавлено: 16 ноя 2004, 13:32
Maverick
Ищи свои выбранные записи в табличке formarks ))) они туда падают после отработки этого интерфейса )))

Re: Интерфейс Lschet

Добавлено: 17 ноя 2004, 16:53
savov
А как в этом интерфейсе получить нрек? Смотрел форум, но написано, что через маркеры получаем значения, как в таком случае получить нрек счета лицевого для некоего лица в определенном цехе?

Re: Интерфейс Lschet

Добавлено: 17 ноя 2004, 17:31
Maverick
Все лежит в formarks.
formarks.Field1 := lschet.Cex;
formarks.Field2 := lschet.TabN;
formarks.Field4 := lschet.Sovm;
formarks.cPodr := LSchet.nRec;
formarks.choice := 0; //признак того что работаем с лицевыми
Formarks.FIO := Persons.Fio;
Formarks.tPerson:= Persons.NRec;
Formarks.Summa := lschet.Summa10;

А дальше - дерзай

Re: Интерфейс Lschet

Добавлено: 17 ноя 2004, 17:32
Maverick
т.е. заюзал этот интерфейс. выбрал чего надо. закрыл. полез в таблицу Formarks и выбирай там то что тебе нужно по описанному выше шаблону

Re: Интерфейс Lschet

Добавлено: 18 ноя 2004, 10:22
savov
Все равно не понятно, как вернуть нрек записи? Я прочитал на форуме, что через маркеры работает данный интерфейс, а поподробнее?

Re: Интерфейс Lschet

Добавлено: 18 ноя 2004, 12:04
Maverick
NREC какой записи ???? LSCHET???? Ну ведь я написал же !!!! getpmeu1 () работает не через маркеры а временную таблицу formarks
Если так непонятно, объясняю еще раз (уже на примере)

Есть твой интерфейс:
Interface ReturnLSchetNREC
Create View As Select * from
Lschet, Formarks, Persons
Where
((
0 == Formarks.Choice And
Formarks.cPodr == Lschet.NRec And
Lschet.tPerson == Persons.NRec And
UserName == Zar_User.OwnName and
));

Panel pnlMain;
Screen scrMain;
buttons
cmReturnLSchet;
<<
<.Выбрать и вернуть.>
>>
End;
End;
HandleEvent
cmReturnLSchet:
{
//сначала очистим временную таблицу
Delete All Formarks;
// затем запустим выбор сотрудников
If RUnInterface (getpmeu1, comp(0), zar_user.curcex)= cmDefault
{
//цикл по выбранным
_Loop ForMarks
{
Message ( 'Выбранный LSCHET.NREC='+Lschet.NRec+' для сотрудника '+Persons.FIO);
};
}
Else Message ('Не выбрано ни одного сотрудника');
};
End;
End.

Теперь понятно????

Re: Интерфейс Lschet

Добавлено: 29 ноя 2004, 16:07
savov
Спасибо большое! Маверик, извини, но когда я отсылал мое сообщение от 18.11 я не видел почему-то твоих ответов!
Спасибо!

Re: Интерфейс Lschet

Добавлено: 07 дек 2004, 15:45
Optimist
не работает :(
Вообще никакого окна не запускается... Или там не должно быть диалогового окна выбора?

Запускаю нижепреведенный отчет и он мне выдает:
1-е сообщение: нет работников
2-е сообщ. мое: 11

И заканчивается... Где я лажанулся? С параметрами интерфейса может? Они вообще что означают?


.FORM 'Анкета для козначейства'
.ARD
.VAR
InterfaceResult:word;
Evalute:boolean;
.ENDVAR
.CREATE VIEW anketa
AS SELECT Persons.FIO,Persons.BornDate,BCat1.Name,Passports.Ser,Passports.Nmb,Passports.GivenDate,Passports.GivenBy,
PAddress.ZIP,PCat1.Name,PAddress.Street
FROM
LSchet, Persons, Formarks, Address BAddress, Address PAddress,
Passports, Catalogs Document,
Catalogs PCat1, CatLinks PLink1,
Catalogs PCat2, CatLinks PLink2, Catalogs PCat3, CatLinks PLink3,
Catalogs PCat4, CatLinks PLink4,
Catalogs BCat1, CatLinks BLink1,Catalogs BCat2, CatLinks BLink2,
Catalogs BCat3, CatLinks BLink3,Catalogs BCat4, CatLinks BLink4,
Communications Comm1
WHERE ((0 == Formarks.Choice
and Formarks.tPerson == Persons.NRec
and Persons.PasspRus == Passports.NRec
and LSchet.TPerson /== Persons.NRec
and Persons.PasspAddr == PAddress.NRec
and Persons.BornAddr == BAddress.NRec
and Persons.NRec == Comm1.Person
and PAddress.Sity == PCat1.NRec
and PAddress.Sity == PLink1.Inheritor
and PLink1.Ancestor == PCat2.NRec
and PLink1.Ancestor == PLink2.Inheritor
and PLink2.Ancestor == PCat3.NRec
and PLink2.Ancestor == PLink3.Inheritor
and PLink3.Ancestor == PCat4.NRec
and PLink3.Ancestor == PLink4.Inheritor
and BAddress.Sity == BCat1.NRec
and BAddress.Sity == BLink1.Inheritor
and BLink1.Ancestor == BCat2.NRec
and BLink1.Ancestor == BLink2.Inheritor
and BLink2.Ancestor == BCat3.NRec
and BLink2.Ancestor == BLink3.Inheritor
and BLink3.Ancestor == BCat4.NRec
and BLink3.Ancestor == BLink4.Inheritor
and Passports.DocName == Document.Nrec
and 1 == Comm1.SeqNmb
));
.BEGIN
InterfaceResult:= RunInterface(getpmeu1, comp(0), zar_user.curcex);
Evalute:= (InterfaceResult <> 11);
Message(InterfaceResult,0);
END.
.{?INTERNAL;(Evalute);
.BEGIN
Message('РАБОТАЕТ!',0);
END.
.}
.ENDFORM

Re: Интерфейс Lschet

Добавлено: 07 дек 2004, 15:56
Optimist
Забыл сказать: Галактика 5.85.02

Без параметров этот интерфейс выдает тоже самое :(

Может есть еще какой интерфейс? Мне нужно выбрать одного или нескольких чуваков без разницы по LSchet или Persons.

Re: Интерфейс Lschet

Добавлено: 08 дек 2004, 11:46
edward_K
1. запускалось ли при входе в модуль зарплаты просмотр лицевых счетов?
есть ли чего в лиц. счетах?
фейс этот работает по Curlschet - если заполнение ее не прошло - то и получите
2. запускали ли вы это из модуля зарплаты или еще где?
3. попробуйте добавить програмные блоки в начале с
intinit
в Конце
ExitProc;
либо перед запуском вашего отчета открывайте лицевые счета.

Re: Интерфейс Lschet

Добавлено: 14 дек 2004, 15:21
Optimist
Edward_K, спасибо, попробовал из модуля ЗП запустить - заработало. НО: для проверки воткнул чтоб anketa.persons.fio выводилось и нифига :(

.{TABLE 'anketa.formarks:MAIN'
.BEGIN
Message(anketa.persons.fio,0);
END.
.}

если вместо anketa.formarks написать anketa.somethin'else, то цикл даже не получается.
У интерфейса getpmeu1 какие параметры и что они значат? (я его без параметров использовал).

Re: Интерфейс Lschet

Добавлено: 14 дек 2004, 17:45
edward_K
1. селект нужно писать аккуратней - наверняка было ругательство при компиляции
and Formarks.tPerson == Persons.NRec
and Persons.PasspRus == Passports.NRec
and LSchet.TPerson /== Persons.NRec
- последняя строка явно не так написана или даже вообще лишняя
в данном случае лучше писать
Formarks.tabn == lschet.tabn
2. если ты делаешь цикл по табле то перед выводом данных из другой не мешает сделать
.begin
if anketa.getfirst persons=0 {}
end.
иначе делаешь цикл по вьюхе и выводишь только поля из as select ...
3.а formarks.tperson нормально заполнился?
4.сделай себе в galnet.cfg и support.cfg
настройку
[database]
TempTableInMem=Off
зайди и туда и туда под одним пользователем
заполни в галактике formarks
и потом попробуй выполни твой select в сапорте
5. куча табл и условий в одной вьюхе тормозит работу и затрудняет разбор полетов.