Присоедененные формы

Программирование на Атлантисе (VIP, FCOM, ARD), FastReport

Модераторы: m0p3e, edward_K, Модераторы

Ответить
rozum
Посетитель
Сообщения: 49
Зарегистрирован: 18 янв 2013, 13:23

Присоедененные формы

Сообщение rozum »

Доброго дня всем!Я понимаю что вопрос битый ,но все таки прошу промощи :x
Есть прототип TD_BEL(трудовой договор для Беларуси) на основе него создаю шаблон контракта,но в прототипе во-первых не все поля указаны а во-вторых ещё и специфически описаны,в частности поле dat1( сумма оклада)мне необходимо вытащить дополнительно 2 поля
1)это оклад из тарифной сетки
2)оклад уже с повышающим коэффициентом.
Связи нашла по тарифной ставке это поле(tarstav.summa1) а общая сумма это поле из (appointments,taxrate)Создала create view t1 но не могу определить по какому полю связать прототип и t1?
.linkform ’Contract1’ prototype is ‘ TD_BEL ’
.nameinlist ’Контракт_1’
.group " TD_BEL"
.var
Sum1:double // appointments.taxrate это полный оклад с надбавками по сотруднику
Sum2:double // tarstav.summa1 это ставка из тарифной сетки
.Endvar
.create view t1
as select appointments.taxrate,tarstav.summa1
from persons, lschet, appointments, tarstav
where((
PersonsTabNmb==persons.nrec
and lschet.tperson == persons.nrec
and persons.appointcur == appointments.nrec
and appointments.tariff == tarstav.nrec));
.Fields
Fio
Sum1
Doubletostring(comp(0),sum1)
.EndFields
.{table ‘t1.appointments’
.begin
Sum1:=appointments.taxrate
End.
.}
^
^(^)
.endform
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5188
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Re: Присоедененные формы

Сообщение edward_K »

1. Вы уверены, что прототип TD_BEL? Группа может быть, но прототипа я такого не нашел.
2. Если доступно редактирование форм из галактики, то в сервис - конфигуратор - параметры
включите опцию Forms - Fcnev. Из галки выходить не надо - идите в печать и нажмите на стандартной форме F4 .
тот ли этот прототип?
3. Вообще прототипы и формы лежат в каталоге Frm - там их и нужно поискать. Если нет фильтра по группе, то его можно отобразить в списке отчетов - убрать что он скрытый в настройке списка.
4. После того как найдете прототип, то ищите в нем что нибудь типа AppointCur, NewAppoint и так далее. PersonsTabNmb откуда взялось?
rozum
Посетитель
Сообщения: 49
Зарегистрирован: 18 янв 2013, 13:23

Re: Присоедененные формы

Сообщение rozum »

прототип именно td_bel он находится в frm в Z_StaffReports\FRM. а как тогда можно на основе своей выборки не опираясь на прототип выкинуть отчет в определенное место.Например чтобы в модуле управление персоналом в самом приказе на прием по кнопке договора(там такая есть кнопка) выводился этот шаблон контракта для формирования? я пробовала просто группу указывать,так не цепляет((
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5188
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Re: Присоедененные формы

Сообщение edward_K »

Да. бедноватый прототип
У вас есть возможность подтянуть назначение по AppointDate
- у одного чела не должно быть назначения от одной и той же даты.
то есть подцепить по полям person + lprizn + appointdate
Поскольку поле в прототипе совпало в именем поля то для поиска нужно завести переменную, записать в нее AppointDate, и уже по ней искать.
Чтобы реализовать свой поток вам потребуется как минимум докомпиляция события по кнопке договор, чтобы вызвать там свой интерфейс формирования или форму через RunForm - вы можете сделать и автономную форму с параметрами.
rozum
Посетитель
Сообщения: 49
Зарегистрирован: 18 янв 2013, 13:23

Re: Присоедененные формы

Сообщение rozum »

Спасибо за помощь
Я правильно поняла что мне допустим необходимо создать:
Apd: date
затем в where прописать что appointdate==appointments.appointdate
а затем в
begin прописать что apd:=appointdate?
Просто при таком раскладе выдает ошибку что не может преобразовать? подскажите плиз как эту date прописать
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5188
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Re: Присоедененные формы

Сообщение edward_K »

Код: Выделить всё

where (( .. apd == appontments.appointdate ..))
.begin
...
  apd:=AppointDate // apd:=StrTodate(AppointDate,'DD/MM/YYYY')
  if vvv.getfirst appointments<>0 
    message('Чего то не так')
 end.
Irina_
Местный житель
Сообщения: 553
Зарегистрирован: 17 июл 2012, 11:56
Откуда: Республика Беларусь, г.Могилев

Re: Присоедененные формы

Сообщение Irina_ »

Здравствуйте.
Стандартный отчет на основе прототипа TD_BEL доступен через База данных – Перечень приказов. РД Прием на работу, кнопка «Договор». Или База данных – Прием на работу. Вас это не устраивает? Конечно прототип не особо удобный, но в своем отчете можете добавить выборку, как минимум по таблицам Titledoc, Partdoc, Contdoc, Appointments. Назначение искать по условию Appointments.nrec = Contdoc.Cstr.
rozum
Посетитель
Сообщения: 49
Зарегистрирован: 18 янв 2013, 13:23

Re: Присоедененные формы

Сообщение rozum »

здравствуйте спасибо за помощь.Я просто хочу зацепить create view t1 к td_bel, а если быть точнее в прототипе есть поле DAT1( тариф/оклад) но мне необходимо
1.прописать в скобках эту сумму прописью (это поле оклада с повышающим коэффициентом)
2.Добавить новое поле из тарифной ставки(без коэффициента опираясь только на выбранный разряд) и прописать тоже его в скобках.
Я пробую сцепить по полю appointdate и дату мне показывает а вот поля appointments.taxrate это полный оклад с надбавками по сотруднику и полеtarstav.summa1 это ставка из тарифной сетки выдает 0(ноль рублей)
:cry:
rozum
Посетитель
Сообщения: 49
Зарегистрирован: 18 янв 2013, 13:23

Re: Присоедененные формы

Сообщение rozum »

спасибо буду пробовать дальше
rozum
Посетитель
Сообщения: 49
Зарегистрирован: 18 янв 2013, 13:23

Re: Присоедененные формы

Сообщение rozum »

:grin: с одним разобралась выдает в отчет appointments.taxrate
вот теперь как следующее прописать чтобы выводило tarstav.summa1 :idea:
Irina_
Местный житель
Сообщения: 553
Зарегистрирован: 17 июл 2012, 11:56
Откуда: Республика Беларусь, г.Могилев

Re: Присоедененные формы

Сообщение Irina_ »

Во view таблица tarstav с условием appointments.tariff == tarstav.nrec
Когда нашли назначение сделайте
if t1.GetFirst Tarstav = tsOk, чтобы стать на нужную запись. Тогда Tarstav.Summa1 – это оклад по ЕТС. Но думаю правильно брать поле Tarstav.Tarif, т.к. для повременщиков нужна ЧТС, а не оклад.
rozum
Посетитель
Сообщения: 49
Зарегистрирован: 18 янв 2013, 13:23

Re: Присоедененные формы

Сообщение rozum »

Спасибо большое.Но я по моему уж совсем туплю, заранее прошу прощения за это. :x Но не могу я в коде правильно прописать то есть
.linkform’Contract2015’ prototype is ‘td_bel’
.nameinlist ’Контракт_1’
.group " TD_BEL"
.var
Apd: date
.Endvar
.create view t1
as select * from appointments, tarstav, Contdoc
where((Apd==appointments. Appointdate(noindex)
And Appointments.nrec = Contdoc.Cstr
and appointments.tariff == tarstav.nrec));
.Fields
apd
t1.appointments.taxrate
DoubleToString(0, appointments.taxrate )
T1.tarstav.tarif
DoubleToString(0,tarstav.tarif)
.EndFields
.begin
apd:=StrTodate(AppointDate,'DD/MM/YYYY')
If t1.getfirst appointments<>0 // по этому условию все верно отрабатывает,
{ }
If t1.getfirst tarstav=tsOk // как правильно прописать это условие?
{}
End.
^
^(^)
^(^)
.endform
rozum
Посетитель
Сообщения: 49
Зарегистрирован: 18 янв 2013, 13:23

Re: Присоедененные формы

Сообщение rozum »

Спасибо всем за помощь данные есть!!! :)
Ответить