Сортировка

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

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

Ответить
korvanakorvana
Местный житель
Сообщения: 429
Зарегистрирован: 24 сен 2008, 11:53

Сортировка

Сообщение korvanakorvana »

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

.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

Ребят привет подскажите как в этом коде безболезненно сделать сортировку по МЦ .Чтобы в Накладнушечка была отсортирована по алфавиту. Только вариант создания дополнительной таблицы или еще есть варианты?
Ответить