Код: Выделить всё
.LinkForm 'ALLPLATS_AZBH_SLK' Prototype is ALLPLATS
.Group '3. Реестр операций с контрагентами'
.NameInList 'Акт сверки с контрагентом'
.SlkNumber
.create view MyDate as
select katorg.name (fieldname=NameOrg), systdate.nboss (fieldname=NameBoss), systdate.nmainbuh (fieldname=NameBuh)
from systdate, katorg
where
((
systdate.nrecmyorg/==katorg.nrec
));
.var
IndexArray:Integer
AllPrint:Boolean
DbPrint:Boolean
KrPrint:Boolean
DbStatusVal:Boolean
KrStatusVal:Boolean
NalichStatus:Boolean
NalichNomRec:Integer
DbNomRec:Integer
KrNomRec:Integer
DbDocDatVal:String
DbDocNomVal:String
DbDocTipVal:String
DbDocSumVal:Double
KrBDocDatVal:String
KrBDocNomVal:String
KrBDocSumVal:String
KrDocDatVal:String
KonDatDoc:String
KrDocNomVal:String
KrDocTipVal:String
KrDocSumVal:Double
DbStatus:ARRAY[1..1000] of Boolean
DbDocDat:ARRAY[1..1000] of String
DbDocNom:ARRAY[1..1000] of String
DbDocTip:ARRAY[1..1000] of String
DbDocSum:ARRAY[1..1000] of Double
KrStatus:ARRAY[1..1000] of Boolean
KrBDocDat:ARRAY[1..1000] of String
KrBDocNom:ARRAY[1..1000] of String
KrBDocSum:ARRAY[1..1000] of String
KrDocDat:ARRAY[1..1000] of String
KrDocNom:ARRAY[1..1000] of String
KrDocTip:ARRAY[1..1000] of String
KrDocSum:ARRAY[1..1000] of Double
.endvar
.fields
MyDate.NameOrg
header1
kontrname
kontraddr
kontrtel
bankname
bankschet
bankmfo
valtar
valtar
valtar
DbDocDatVal
DbDocNomVal
DbDocTipVal
DbDocSumVal
KrBDocDatVal
KrBDocNomVal
KrBDocSumVal
KrDocDatVal
KrDocNomVal
KrDocTipVal
KrDocSumVal
DbDocDatVal
DbDocNomVal
DbDocTipVal
DbDocSumVal
KrBDocDatVal
KrBDocNomVal
KrBDocSumVal
KrDocDatVal
KrDocNomVal
KrDocTipVal
KrDocSumVal
dsummakon
ksummakon
KonDatDoc
MyDate.NameOrg
abs(saldokon)
MyDate.NameOrg
KonDatDoc
abs(saldokon)
KonDatDoc
// MyDate.NameOrg
// MyDate.NameBoss
// MyDate.NameBuh
sGetTune('MyOrg')
sGetTune('Boss')
sGetTune('Mainbuh')
kontrname
.endfields
.{table 'MyDate'
^
.}
Акт сверки с контрагентом
^
.{
.begin
IndexArray := 1
While(IndexArray <= 1000)
{
DbStatus[IndexArray] := False
KrStatus[IndexArray] := False
IndexArray := IndexArray + 1
}
end.
Контрагент : ^
Адрес : ^ Тел. : ^
Банковские реквизиты : ^ р/с : ^ МФО : ^
ДЕБЕТ (поступления товаров/денег) КРЕДИТ (наши платежи/поставки товаров)
Дата Номер Тип Сумма Дата Номер Сумма Дата Номер Тип Сумма
док. в ^ ДО ДО в ^ док. в ^
.begin
DbNomRec := 1
KrNomRec := 1
end.
.{
.begin
IndexArray := 1
NalichStatus := False
NalichNomRec := 0
DbDocDatVal := 0
DbDocDatVal := String(DDate)
DbDocNomVal := 0
DbDocNomVal := SubStr(SubStr(DDocument, InStr('N', DDocument)+2, 8), 1, InStr(' ', SubStr(DDocument, InStr('N', DDocument)+2, 8))-1)
DbDocTipval := 0
DbDocTipVal := SubStr(DDocument, 1, InStr('N', DDocument)-1)
DbDocSumVal := 0
DbDocSumVal := Double(DSumma)
KrBDocDatVal := 0
KrBDocDatVal := String(KBaseD)
KrBDocNomVal := 0
KrBDocNomVal := String(KBaseN)
KrBDocSumVal := 0
KrBDocSumVal := String(KBaseS)
KrDocDatVal := 0
KrDocDatVal := String(KDate)
KrDocNomVal := 0
KrDocNomVal := SubStr(SubStr(KDocument, InStr('N', KDocument)+2, 8), 1, InStr(' ', SubStr(KDocument, InStr('N', KDocument)+2, 8))-1)
KrDocTipVal := 0
KrDocTipVal := SubStr(KDocument, 1, InStr('N', KDocument)-1)
KrDocSumVal := 0
KrDocSumVal := Double(KSumma)
KonDatDoc := SubStr(header2,43,12)
If(InStr('Накладн', DbDocTipVal) = 0)
{
While(IndexArray <= (DbNomRec - 1))
{
If((DbDocNom[IndexArray] = DbDocNomVal) And (DbDocTip[IndexArray] = DbDocTipVal) and (DbDocDat[IndexArray] = DbDocDatVal))
{
NalichStatus := True
NalichNomRec := IndexArray
}
IndexArray := IndexArray + 1
}
}
If(DbDocSumVal <> 0)
{
If(NalichStatus = True)
{
DbDocSum[NalichNomRec] := DbDocSum[NalichNomRec] + DbDocSumVal
}
Else
{
DbStatus[DbNomRec] := True
DbDocDat[DbNomRec] := DbDocDatVal
DbDocNom[DbNomRec] := DbDocNomVal
DbDocTip[DbNomRec] := DbDocTipVal
DbDocSum[DbNomRec] := DbDocSumVal
DbNomRec := DbNomRec + 1
}
}
If(KrDocSumVal <> 0)
{
KrStatus[KrNomRec] := True
KrBDocDat[KrNomRec] := KrBDocDatVal
KrBDocNom[KrNomRec] := KrBDocNomVal
KrBDocSum[KrNomRec] := KrBDocSumVal
KrDocDat[KrNomRec] := KrDocDatVal
KrDocNom[KrNomRec] := KrDocNomVal
KrDocTip[KrNomRec] := KrDocTipVal
KrDocSum[KrNomRec] := KrDocSumVal
KrNomRec := KrNomRec + 1
}
end.
.}
.begin
IndexArray := 1
NalichStatus := True
end.
.{while (NalichStatus <> False)
.begin
AllPrint := False
DbPrint := False
KrPrint := False
DbStatusVal := DbStatus[IndexArray]
KrStatusVal := KrStatus[IndexArray]
If((DbStatusVal = True) And (KrStatusVal = True))
{
AllPrint := True
}
If((DbStatusVal = True) And (KrStatusVal = False))
{
DbPrint := True
}
If((DbStatusVal = False) And (KrStatusVal = True))
{
KrPrint := True
}
If(DbStatusVal = True)
{
DbDocDatVal := DbDocDat[IndexArray]
DbDocNomVal := DbDocNom[IndexArray]
DbDocTipVal := DbDocTip[IndexArray]
DbDocSumVal := DbDocSum[IndexArray]
}
If(KrStatusVal = True)
{
KrBDocDatVal := KrBDocDat[IndexArray]
KrBDocNomVal := KrBDocNom[IndexArray]
If(Double(KrBDocSum[IndexArray]) <> 0)
{
KrBDocSumVal := KrBDocSum[IndexArray]
}
If(Double(KrBDocSum[IndexArray]) = 0)
{
KrBDocSumVal := ''
}
KrDocDatVal := KrDocDat[IndexArray]
KrDocNomVal := KrDocNom[IndexArray]
KrDocTipVal := KrDocTip[IndexArray]
KrDocSumVal := KrDocSum[IndexArray]
}
end.
.{?internal;AllPrint=True
^ ^ ^ &&&&&&&&&&.&& ^ ^ &&&&&&&&&&.&& ^ ^ ^ &&&&&&&&&&.&&
.}
.{?internal;DbPrint=True
^ ^ ^ &&&&&&&&&&.&&
.}
.{?internal;KrPrint=True
^ ^ &&&&&&&&&&.&& ^ ^ ^ &&&&&&&&&&.&&
.}
.begin
IndexArray := IndexArray + 1
If((IndexArray > (KrNomRec - 1)) And (IndexArray > (DbNomRec - 1)))
{
NalichStatus := False
}
end.
.}
ВСЕГО по контрагенту &&&&&&&&&&.&& &&&&&&&&&&.&&
.{?internal;dsummakon<ksummakon
Задолжность контрагента по состоянию на &&&&&&&&&&&& перед ^
составляет &&&&&&&&&&.&&
.}
.{?internal;dsummakon>ksummakon
Задолженность ^ перед контрагентом по состоянию на &&&&&&&&&&&&&&
составляет &&&&&&&&&&.&&
.}
.{?internal;dsummakon=ksummakon
Задолженность по состоянию на &&&&&&&&&&&&&&
отсутствует.
.}
.}
.{table 'MyDate'
Задолжность подтверждаем:
От ^
Директор ^
Главный бухгалтер ^
.}
От ^
Директор
Главный бухгалтер
.endform
Код: Выделить всё
header1
kontrname
kontraddr
kontrtel
bankname
bankschet
bankmfo
valtar