Вопрос о присоединённой форме
Модераторы: m0p3e, edward_K, Модераторы
Вопрос о присоединённой форме
В стандартном отчёте 'СКЛАДСКОЙ ОРДЕР С ГРУППИРОВКОЙ МЦ ПО ПАРТИЯМ (РУБ) ' требуется посчитать новую общую сумму по группам матценности SumPR и заменить старую этой новой суммой. В интерфейсе сумму можно было бы посчитать через функцию во вью, а здесь нет. Можно ли в данном случае как-то обойти невозможность использования функции в присоединённой форме ?
Re: Вопрос о присоединённой форме
Объявите в секции .var ... .endvar свою переменную, и в тексте формы присваивайте ей нужное значение. Заменять значение переменной SumPR не надо, просто в секции .fields ... .endfields укажите вывод новой переменной, а не SumPR.
-
- Местный житель
- Сообщения: 1089
- Зарегистрирован: 04 сен 2008, 11:27
- Откуда: Москва
- Контактная информация:
Re: Вопрос о присоединённой форме
+1 Зачем вам именно функция??
1. делайте свой виев вызывайте в begin end
2. делайте свой интерфейс вызывайте в begin end
3. подменяйте в fields своей переменной
1. делайте свой виев вызывайте в begin end
2. делайте свой интерфейс вызывайте в begin end
3. подменяйте в fields своей переменной
Время ведет!
-
- Местный житель
- Сообщения: 2898
- Зарегистрирован: 24 июн 2005, 12:12
- Откуда: Иркутская область
Re: Вопрос о присоединённой форме
есть же агрегирующая команда, что-то типа fieldname 'SUM'
пишется в филдсах и сама считает сумму по полям.
пишется в филдсах и сама считает сумму по полям.
Re: Вопрос о присоединённой форме
Сделал через 'SUM'. Сумма в итого по матценности не проставляется (нулевая)Алексей писал(а):есть же агрегирующая команда, что-то типа fieldname 'SUM'
пишется в филдсах и сама считает сумму по полям.

Код: Выделить всё
.LinkForm 'SKORDER_NEW05' Prototype is 'SKORDER'
.Group 'Складской ордер'
.NameInList 'СКЛАДСКОЙ ОРДЕР С ГРУППИРОВКОЙ МЦ ПО ПАРТИЯМ (РУБ) (Новый)'
.DEFO LANDSCAPE
.var
Sender:String
senderpost:String
Recipient:String
RecipientPost:String
katmcnrec:comp
.endvar
.Create view localSklOrder
from
SklOrder
;
.Create view v1 (osum, osumv)as select sporder.kol*sporder.rsrprice, sporder.kol*sporder.rvprice from sporder
where ((SpOrderRec== sporder.nrec));
.Create view v2 (summak,summakv)as select katsopr.summa, katsopr.sumval from sklorder,katsopr
where((SKLORDERREC==sklorder.nrec and sklorder.csopr==katsopr.nrec));
.Create view v3 (SumGR) as select sporder.kol*sporder.rsrprice from sporder
where ((SKLORDERREC== sporder.csklorder and katmcnrec==sporder.cmc));
.Create view v4 (katmcnrec)as select katmc.nrec from katmc
where ((MC==katmc.name));
.fields
CommonFormHeader
OrdName
nOrder
dOrder
Osnov
Sklad
MOL
Mol_Post
'в '+RublSimv
'в '+RublSimv
NNomer
MC
ED
Party
Kol
Price
v3.SumGR//Summ
NNomer
MC
ED
countpart
SumK
v3.SumGR:'sum'//SumPR
v2.summak//Itogo
Senderpost
Sender
RecipientPost
Recipient
.endfields
.{
^
@@@@@@@@@ СКЛАДСКОЙ ОРДЕР № ^
от ^
.if SKLORDER01
Основание: ^
.if SKLORDER02
.else
.end
.else
.end
Склад : @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
МОЛ : @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Должность: @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
──────────────┬────────────────────────────┬─────────┬───────────┬──────────────────┬───────────────┬─────────────────
Номенклатурный│ Наименование МЦ │ Единица │ Серия │ Количество │ Цена │ Стоимость
номер │ │измерения│ │ │ @~@@@@@@@@@@@ │ @~@@@@@@@@@@@
──────────────┴────────────────────────────┴─────────┴───────────┴──────────────────┴───────────────┴─────────────────
.{
.begin
If v4.getfirst katmc=tsok
{
katmcnrec:=v4.katmc.nrec;
if v3.getfirst sporder=tsOk
{
}
}
end.
.{
&&&&&&&&&&&&&& @@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@ @@@@@@@@@@@ &'&&&&&&&&&&&&&&&& &&&&&&&&&&&&&&& &'&&&&&&&&&&&&&&&
.}
Итого по Количество
матценности : серий:
&&&&&&&&&&&&&& @@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@ &&&&&&&&&& &'&&&&&&&&&&&&&&&& &&&&&&&&&&&&&&&&&
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
.}
.begin
if v2.getfirst SklOrder=0 {
if v2.getfirst katsopr=0 {
}
}
end.
Итого : &&&&&&&&&&&&&&&&&
.begin
localSklOrder.GetFirst SklOrder where ((SklOrderRec == SklOrder.nRec));
if (localSklOrder.SklOrder.vidOrder = 0) // приходный
{
sender := Mol;
Senderpost := mol_post;
}
if (localSklOrder.SklOrder.vidOrder = 1) // расходный
{
recipient := Mol;
RecipientPost := mol_post;
}
end.
Принял: @@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
должность подпись расшифровка подписи
Сдал : @@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
должность подпись расшифровка подписи
.}
.endform
-
- Местный житель
- Сообщения: 2898
- Зарегистрирован: 24 июн 2005, 12:12
- Откуда: Иркутская область
Re: Вопрос о присоединённой форме
я на полях своей таблицы не пробовал. а данные то вообще есть? попробуйте сами складывать в какую-нибудь переменную и после вывести.
Re: Вопрос о присоединённой форме
Пробывал через переменную работает. Только почему-то всегда выводит одну и ту же сумму по матценности там, где матценность повторяется несколько раз.
Код: Выделить всё
.LinkForm 'SKORDER_05_PAA' Prototype is 'SKORDER'
.Group 'Складской ордер'
.NameInList 'СКЛАДСКОЙ ОРДЕР С ГРУППИРОВКОЙ МЦ ПО ПАРТИЯМ (РУБ) (Керамин)'
.DEFO LANDSCAPE
.var
Sender:String
senderpost:String
Recipient:String
RecipientPost:String
mcnrec,mcnrec2:comp
summaGR:double
.endvar
.Create view localSklOrder
from
SklOrder
;
//.Create view v1 (osum, osumv)as select sporder.kol*sporder.rsrprice, sporder.kol*sporder.rvprice from sporder
//where ((SpOrderRec== sporder.nrec));
.Create view v2 (summak,summakv)as select katsopr.summa, katsopr.sumval from sklorder,katsopr
where((SKLORDERREC==sklorder.nrec and sklorder.csopr==katsopr.nrec));
.Create view v3 (SumGR)as select sporder.kol*sporder.rsrprice ,* from katmc,sporder
where ((SKLORDERREC== sporder.csklorder and mcnrec==sporder.cmc and SpOrderRec==sporder.nrec(noindex)));
.Create view v4 as select * from katmc
where ((MC==katmc.name));
.fields
CommonFormHeader
OrdName
nOrder
dOrder
Osnov
Sklad
MOL
Mol_Post
'в '+RublSimv
'в '+RublSimv
NNomer
MC
ED
Party
Kol
Price
v3.SumGR//Summ
NNomer
MC
ED
countpart
SumK
summaGR//v3.SumGR:'sum'//SumPR
v2.summak//Itogo
Senderpost
Sender
RecipientPost
Recipient
.endfields
.{
^
@@@@@@@@@ СКЛАДСКОЙ ОРДЕР № ^
от ^
.if SKLORDER01
Основание: ^
.if SKLORDER02
.else
.end
.else
.end
Склад : @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
МОЛ : @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Должность: @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
──────────────┬────────────────────────────┬─────────┬───────────┬──────────────────┬───────────────┬─────────────────
Номенклатурный│ Наименование МЦ │ Единица │ Серия │ Количество │ Цена │ Стоимость
номер │ │измерения│ │ │ @~@@@@@@@@@@@ │ @~@@@@@@@@@@@
──────────────┴────────────────────────────┴─────────┴───────────┴──────────────────┴───────────────┴─────────────────
.{
.begin
If v4.getfirst katmc=tsok
{
mcnrec:=v4.katmc.nrec;
if v3.getfirst sporder=tsOk
{
if (mcnrec=mcnrec2)
{
summaGR:=summaGR+v3.SumGR;
}
else
{
summaGR:=v3.SumGR;
}
LogStrToFile ('reportlog.txt', 'Количество='+v3.sporder.kol+' цена='+v3.sporder.rsrprice+
' сумма='+v3.SumGR+'mcnrec= '+mcnrec+' mcnrec2='+mcnrec2);
mcnrec2:=mcnrec;
}
}
end.
.{
&&&&&&&&&&&&&& @@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@ @@@@@@@@@@@ &'&&&&&&&&&&&&&&&& &&&&&&&&&&&&&&& &'&&&&&&&&&&&&&&&
.}
Итого по Количество
матценности : серий:
&&&&&&&&&&&&&& @@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@ &&&&&&&&&& &'&&&&&&&&&&&&&&&& &&&&&&&&&&&&&&&&&
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
.}
.begin
if v2.getfirst SklOrder=0 {
if v2.getfirst katsopr=0 {
}
}
end.
Итого : &&&&&&&&&&&&&&&&&
.begin
localSklOrder.GetFirst SklOrder where ((SklOrderRec == SklOrder.nRec));
if (localSklOrder.SklOrder.vidOrder = 0) // приходный
{
sender := Mol;
Senderpost := mol_post;
}
if (localSklOrder.SklOrder.vidOrder = 1) // расходный
{
recipient := Mol;
RecipientPost := mol_post;
}
end.
Принял: @@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
должность подпись расшифровка подписи
Сдал : @@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
должность подпись расшифровка подписи
.}
.endform
Re: Вопрос о присоединённой форме
Всё теперь работает. Сместил выбрку во внутренний цикл.
Только не пойму какая в отчёте должна быть группировка по партиям. Тут только идёт по рядом стоящим МЦ, причём в рабочей версии Галактики аналогичный отчёт также группируется(Ордер с группировкой МЦ по партиям это всё-таки стандартный ордер или нет?).
Код: Выделить всё
.{
.{
.begin
If v4.getfirst katmc=tsok
{
mcnrec:=v4.katmc.nrec;
if v3.getfirst sporder=tsOk
{
if (mcnrec=mcnrec2)
{
summaGR:=summaGR+v3.SumGR;
}
else
{
summaGR:=v3.SumGR;
}
LogStrToFile ('reportlog.txt', 'Количество='+v3.sporder.kol+' цена='+v3.sporder.rsrprice+
' сумма='+v3.SumGR+'mcnrec= '+mcnrec+' mcnrec2='+mcnrec2);
mcnrec2:=mcnrec;
}
}
end.
&&&&&&&&&&&&&& @@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@ @@@@@@@@@@@ &'&&&&&&&&&&&&&&&& &&&&&&&&&&&&&&& &'&&&&&&&&&&&&&&&
.}
Итого по Количество
матценности : серий:
&&&&&&&&&&&&&& @@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@ &&&&&&&&&& &'&&&&&&&&&&&&&&&& &&&&&&&&&&&&&&&&&
Re: Вопрос о присоединённой форме
В группе "Cтандартный ордер" есть также какой-то "Акт по переоценке". Зачем он нужен?
-
- Местный житель
- Сообщения: 2898
- Зарегистрирован: 24 июн 2005, 12:12
- Откуда: Иркутская область
Re: Вопрос о присоединённой форме
Ну видимо кому-то нужен. Мы 99.9% стандартных форм вообще не используем 
