Сортировка
Добавлено: 14 мар 2012, 10:10
Код: Выделить всё
.LinkForm 'NAKL_NSK_091209' Prototype is PRBDOC
.Group 'Продажа'
.NameInList 'Накладная с спецификацией из накладных '
!----------------------------------------
.create view vSpStep
from
SpStep (ReadOnly),
KatParty (ReadOnly)
where
((
PosNRec == SpStep.nRec
and SpStep.cParty == KatParty.nRec
));
.Create view SchKpp
from
BaseDoc (ReadOnly),
KatOrg OrgFrom (ReadOnly),
KatOrg OrgTo (ReadOnly),
KatOrg OrgPol (ReadOnly) ,
Dogovor AppDogovor (ReadOnly)
where
((
BaseDocNrec == BaseDoc.nRec
and BaseDoc.corg==OrgTo.nrec
and BaseDoc.cGrOtpr==OrgFrom.nrec
and BaseDoc.cGrPol==OrgPol.nrec
and BaseDoc.cDogovor==Dogovor.nrec
and BaseDoc.cAppDogovor==AppDogovor.nrec
));
.Create view SchNakl
as select * From
StepDoc
,KatSopr
,SpsOpr
,KatMC
,KatParty
,KatOtpEd
,attrval
,attrnam
Where
((
BaseDocNrec == StepDoc.cBaseDoc
and StepDoc.NRec == KatSopr.cStepDoc
and ( 106 <>Katsopr.vidsopr )
and KatSopr.Nrec == SpsOpr.cSopr
and SpsOpr.cMCUsl == KatMC.nRec
and SpsOpr.cMCUsl == KatUsl.nRec
and SpsOpr.cParty == KatParty.nRec
and SpsOpr.cOtpEd == KatOtpEd.nRec
and word(1411)==attrnam.wtable
and 'МНН'==attrnam.name
and word(1411)==attrval.wtable
and katmc.nrec==attrval.crec
and attrnam.nrec==attrval.cattrnam
));
.Create view SchKatSopr
var KatSoprcStepDoc: comp
as select * From KatSopr
Where
((
KatSoprcStepDoc == KatSopr.cStepDoc
));
!-------------------------------------------------------------------
.var
SrcCountry, // Новые графы СФ "Страна происхождения"
GTDNumber : string; // "Номер ГТД"
AddrDost : string; // «Адрес доставки»
skladfio :string; // кладовщик
skladfio1 :string; // ещё фио
skladfio2 :string; // ещё ФИО
doverka:string;//доверенность
doverkadate:string;
gruzdol:string;
skladfio3:string;
dfirma:string;
prikazz:string;//по приказу
.endvar
.var
ft_NameOrg1, PostName1, PostName2, nAttr1, nAttr2 : string;
cPost : comp;
exAtT : iExtAttr;
.endvar
!-------------------------------------------------------------------
.var
BdnRec:comp
pos:integer;
kolitog:double;
Akciz : double
CenaAk : double
SumAk : double
totSumAk : double
mnn:string
.endvar
!-------------------------------------------------------------------
.fields
post+’ ИНН ’+ innpost+’ Адрес: ’+ adpost+’ Банк: ’+ bpost
‘ р/c ’+ rspost + ‘ к/c ’+ rspost2 +‘ БИК ’ + mpost
SchKpp.OrgFrom.okpo
Skl
SchKpp.OrgFrom.okonh
grpol+’ ИНН ’+ inngrpol+’ Адрес: ’+ AddrDost+’ Банк:’+grpolbank
‘ р/c ’+ grpolschet1 + ‘к/c ’+grpolschet2+‘ БИК ’+grpolmfo1
SchKpp.OrgTo.okpo
post+’ ИНН ’+ innpost+’ Адрес: ’+ adpost+’ Банк: ’+ bpost
‘ р/c ’+ rspost + ‘ к/c ’+ rspost2 + ‘ БИК ’ + mpost
SchKpp.OrgFrom.okpo
pol+’ ИНН ’+ innpol+’ Адрес: ’+ adpol+’ Банк: ’+ bpol
‘ р/c ’+ rspol + ‘ к/c ’+ rspol2 +‘ БИК ’ + mpol
SchKpp.OrgTo.okpo
if (SchKpp.Dogovor.nodoc<>'','Договор N '+ SchKpp.Dogovor.nodoc+' от '+ SchKpp.Dogovor.ddoc+'г.',’’)
if (SchKpp.AppDogovor.nodoc<>'', ' , cпецификация N '+ SchKpp.AppDogovor.nodoc+' от '+ SchKpp.AppDogovor.ddoc+'г.',’’)
nomer
ddoc
nomer
ddoc
.endfields
.{
.{table 'SchKpp.BaseDoc'
.}
#include ..\..\SFBla2vp.frn
.begin
!--------------------------------------
BdnRec:= BaseDocNrec
RunInterface(‘_gt_addr_dost’, grpol , 1, BdnRec, 2, AddrDost);
!--------------------------------------
end.
.{CheckEnter IsBaseFin
.}
.{CheckEnter ISEXCLASS
.}
.{CheckEnter ISGROUP
.}
.{
.}
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^.......
.begin
pos:=0;
kolitog:=0;
TotSumAk := 0
end.
.fields
pos
if (SchNakl.SpsOpr.PrMc=1, SchNakl.KatMC.Name, SchNakl.KatUsl.Name)
mnn
SchNakl.KatParty.name
SchNakl.KatParty.dgodn
locase(SchNakl.KatOtpEd.Name)
locase(SchNakl.KatOtpEd.Name)
doubletostr(round( SchNakl.SpsOpr.KolFact,2),'666`666`666.88')
doubletostr(round( SchNakl.SpsOpr.Price,2),'666`666`666.88')
If (SchNakl.KatSopr.vHodNal=1,( doubletostr(round(SchNakl.SpSopr.Price* SchNakl.SpSopr.KolFact- SchNakl.SpSopr.SumNDS,2),'666`666`666.88')), doubletostr(round(SchNakl.SpSopr.Price* SchNakl.SpSopr.KolFact,2),'666`666`666.88'))
doubletostr (round( SchNakl.spsopr.sumnds*100/ If (SchNakl.KatSopr.vHodNal=1, SchNakl.SpSopr.Price* SchNakl.SpSopr.KolFact- SchNakl.SpSopr.SumNDS, SchNakl.SpSopr.Price* SchNakl.SpSopr.KolFact),2), '666`666`666')
doubletostr(round(SchNakl.spsopr.sumnds,2),'666`666`666.88')
If (SchNakl.KatSopr.vHodNal=1, doubletostr(round(SchNakl.SpSopr.Price* SchNakl.SpSopr.KolFact,2),'666`666`666.88'), doubletostr(round(SchNakl.SpSopr.Price* SchNakl.SpSopr.KolFact+ SchNakl.SpSopr.SumNDS,2),'666`666`666.88') )
.endfields
.{table ‘SchNakl.StepDoc’;
.{table ‘SchNakl.KatSopr’;
.{table ‘SchNakl.SpsOpr’;
.begin
var ExAttrFun : iExtAttr;
var ExClassFun : iExtClass;
var cAttr : comp;
var wTypAttr, wClassCode : word;
var sRet: string;
sRet :=’’;
sRet := ExAttrFun.sGetAttr(coKatmc, SchNakl.KatMc.nRec, 'МНН');
mnn := sRet;
pos:=pos+1;
kolitog:=kolitog+SchNakl.SpsOpr.KolFact;
Akciz := Ak/kol
CenaAk := cenabez + AkCiz
SumAk := sbez + Ak
TotSumAk := TotSumAk + SumAk
end.
^ ^ ^ ^ ^ ^ ^ - ^ ^ ^ ^ ^ ^
.}
.}
.}
.fields
doubletostr(round( kolitog,2),'666`666`666.88')
doubletostr(round( k1-n2 ,2),'666`666`666.88')
doubletostr(round( n2 ,2),'666`666`666.88')
doubletostr(round( k1 ,2),'666`666`666.88')
Pos
doverka
doverkadate
k3
dfirma
skladfio
skladfio1
gruzdol
skladfio3
prikazz
skladfio2
.endfields
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.if DELIMITER
.else
.end
.fields
nomer
ddoc
.endfields
ТН № ^от^
.}
.endform
Ребят привет подскажите как в этом коде безболезненно сделать сортировку по МЦ .Чтобы в Накладнушечка была отсортирована по алфавиту. Только вариант создания дополнительной таблицы или еще есть варианты?