Показать полную графическую версию : [решено] Экспорт данных из одного txt файла в другой
TRaMeLL, в новом файле отсутствуют записи вида:
Дата=… »
Так что, начните с формулировки новых требований: что, как, откуда…
Почему отсутствуют? Там просто вначале документа не нужная информация, потом идет так (кусок из того же файла):
СекцияДокумент=Платежное поручение
Номер=289
Дата=03.09.2012
Сумма=19580
ПлательщикСчет=40702810123456789012
ДатаСписано=
Плательщик=ООО "Рога и Копыта" (СБ РФ N 2413 БРАТСКОЕ Г.БРАТСК)
ПлательщикИНН=1234567890
ПлательщикКПП=1238745
ПлательщикРасчСчет=40702810418090007406
ПлательщикБанк1=БАЙКАЛЬСКИЙ БАНК СБЕРБАНКА РОССИИ
ПлательщикБИК=042520607
ПлательщикКорсчет=30101810900000000607
ПолучательСчет=40802810000000000000
ДатаПоступило=03.09.2012
Получатель=ИП ИВАНОВ ПЕТР СИДОРОВИЧ
ПолучательИНН=123456789012
ПолучательКПП=
ПолучательРасчСчет=40802810000000000000
ПолучательБанк1=БАЙКАЛЬСКИЙ БАНК СБЕРБАНКА РОССИИ
ПолучательБИК=042520607
ПолучательКорсчет=30101810900000000607
ВидПлатежа=
ВидОплаты=01
СтатусСоставителя=
ПоказательКБК=
ОКАТО=
ПоказательОснования=
ПоказательПериода=
ПоказательНомера=
ПоказательДаты=
ПоказательТипа=
Очередность=6
НазначениеПлатежа=За материалы согл. счёта № КМ-206 от 22.08.2012г. Cумма 19580-00, |без налога (НДС).|
КонецДокумента
Результат должен быть, так же, вида: %Дата=% %Номер=% %Сумма=% %Плательщик=% %НазначениеПлатежа=%
Пробуйте:
Option Explicit
Const adInteger = 3
Const adCurrency = 6
Const adDate = 7
Const adVarChar = 200
Dim lngErrCode
Dim strSourceFile
Dim strLine
Dim objTS
Dim objRecordSet
Dim intNumberMaxLength
Dim intSummMaxLength
Dim intPlatMaxLength
If WScript.Arguments.Count = 1 Then
strSourceFile = WScript.Arguments.Item(0)
With WScript.CreateObject("Scripting.FileSystemObject")
If .FileExists(strSourceFile) Then
Set objTS = .OpenTextFile(strSourceFile)
With WScript.CreateObject("ADOR.Recordset")
With .Fields
.Append "Дата", adDate
.Append "Номер", adVarChar, 2^5
.Append "Сумма", adCurrency
.Append "ДлинаСтрокиСумма", adInteger
.Append "Плательщик", adVarChar, 2^15 - 1
.Append "ДлинаСтрокиПлательщик", adInteger
End With
.Open
Do Until objTS.AtEndOfStream
strLine = objTS.ReadLine()
Select Case Split(strLine, "=")(0)
Case "СекцияДокумент"
.AddNew
Case "Дата"
If Len(Split(strLine, "=")(1)) <> 0 Then
.Fields.Item("Дата").Value = CDate(Split(strLine, "=")(1))
End If
Case "Номер"
.Fields.Item("Номер").Value = CStr(Split(strLine, "=")(1))
Case "Сумма"
'SetLocale "en-us"
.Fields.Item("Сумма").Value = CCur(Split(strLine, "=")(1))
'SetLocale "ru"
.Fields.Item("ДлинаСтрокиСумма").Value = Len(FormatCurrency(.Fields.Item("Сумма").Value, 2))
Case "Плательщик", "Плательщик1"
.Fields.Item("Плательщик").Value = CStr(Split(strLine, "=")(1))
.Fields.Item("ДлинаСтрокиПлательщик").Value = Len(CStr(Split(strLine, "=")(1)))
End Select
Loop
objTS.Close
.Sort = "Номер DESC" : .MoveFirst
intNumberMaxLength = Len(.Fields.Item("Номер").Value)
.Sort = "ДлинаСтрокиСумма DESC" : .MoveFirst
intSummMaxLength = .Fields.Item("ДлинаСтрокиСумма").Value
.Sort = "ДлинаСтрокиПлательщик DESC" : .MoveFirst
intPlatMaxLength = .Fields.Item("ДлинаСтрокиПлательщик").Value
.Sort = "" : .MoveFirst
Do Until .EOF
With .Fields
WScript.StdOut.Write Left(CStr(.Item("Дата").Value) & Space(10), 10) & vbTab
WScript.StdOut.Write Right(Space(intNumberMaxLength) & CStr(.Item("Номер").Value), intNumberMaxLength) & vbTab
WScript.StdOut.Write Right(Space(intSummMaxLength) & FormatCurrency(.Item("Сумма").Value, 2), intSummMaxLength) & vbTab
WScript.StdOut.Write Left(CStr(.Item("Плательщик").Value) & Space(intPlatMaxLength), intPlatMaxLength)
WScript.StdOut.WriteLine
End With
.MoveNext
Loop
.Close
End With
Set objTS = Nothing
lngErrCode = 0
Else
WScript.StdErr.WriteLine "File [" & strSourceFile & "] not found"
lngErrCode = 2
End If
End With
Else
WScript.StdErr.WriteLine "Usage: cscript.exe //nologo """ & WScript.ScriptName & """ ""<Source file>"""
lngErrCode = 1
End If
WScript.Quit lngErrCode
Если опять формат десятичных разделителей в файле и на машине не совпадает — раскомментируйте SetLocale'ы.
Ага, десятичные опять не совпадают, раскоменнтировал строки. Работает как надо. Спасибо огромное, вы мне снова жизнь спасли. :)
Спасибо огромное, »
Рад был помочь.
вы мне снова жизнь спасли. »
Да, нет, это вряд ли ;).
Обнаружилась очередная проблема. В новом формате исходного файла в параметре %Сумма=% не указан "-". Сразу этого не заметил. Поэтому в результирующем файле все суммы пишутся как кредит. Дебет теперь можно определить по наличию данных в параметре %ДатаСписано=% исходного файла (если дата присутствует, то операция - дебет, если дата отсутствует, то операция - кредит).
Теперь необходимо поправить скрипт таким образом, чтобы суммы на дебетовых операциях в результирующем файле были помечены знаком "-".
В новом формате исходного файла… »
Где пример файла?
TRaMeLL, пробуйте:
Option Explicit
Const adInteger = 3
Const adCurrency = 6
Const adDate = 7
Const adVarChar = 200
Dim lngErrCode
Dim strSourceFile
Dim strLine
Dim objTS
Dim objRecordSet
Dim intNumberMaxLength
Dim intSummMaxLength
Dim intPlatMaxLength
If WScript.Arguments.Count = 1 Then
strSourceFile = WScript.Arguments.Item(0)
With WScript.CreateObject("Scripting.FileSystemObject")
If .FileExists(strSourceFile) Then
Set objTS = .OpenTextFile(strSourceFile)
With WScript.CreateObject("ADOR.Recordset")
With .Fields
.Append "Дата", adDate
.Append "Номер", adVarChar, 2^5
.Append "Сумма", adCurrency
.Append "ДлинаСтрокиСумма", adInteger
.Append "Плательщик", adVarChar, 2^15 - 1
.Append "ДлинаСтрокиПлательщик", adInteger
End With
.Open
Do Until objTS.AtEndOfStream
strLine = objTS.ReadLine()
Select Case Split(strLine, "=")(0)
Case "СекцияДокумент"
.AddNew
Case "Дата"
If Len(Split(strLine, "=")(1)) <> 0 Then
.Fields.Item("Дата").Value = CDate(Split(strLine, "=")(1))
End If
Case "Номер"
.Fields.Item("Номер").Value = CStr(Split(strLine, "=")(1))
Case "Сумма"
'SetLocale "en-us"
.Fields.Item("Сумма").Value = CCur(Split(strLine, "=")(1))
'SetLocale "ru"
.Fields.Item("ДлинаСтрокиСумма").Value = Len(FormatCurrency(.Fields.Item("Сумма").Value, 2))
Case "Плательщик", "Плательщик1"
.Fields.Item("Плательщик").Value = CStr(Split(strLine, "=")(1))
.Fields.Item("ДлинаСтрокиПлательщик").Value = Len(CStr(Split(strLine, "=")(1)))
Case "ДатаСписано"
If IsDate(Split(strLine, "=")(1)) Then
.Fields.Item("Сумма").Value = - .Fields.Item("Сумма").Value
End If
End Select
Loop
objTS.Close
.Sort = "Номер DESC" : .MoveFirst
intNumberMaxLength = Len(.Fields.Item("Номер").Value)
.Sort = "ДлинаСтрокиСумма DESC" : .MoveFirst
intSummMaxLength = .Fields.Item("ДлинаСтрокиСумма").Value
.Sort = "ДлинаСтрокиПлательщик DESC" : .MoveFirst
intPlatMaxLength = .Fields.Item("ДлинаСтрокиПлательщик").Value
.Sort = "" : .MoveFirst
Do Until .EOF
With .Fields
WScript.StdOut.Write Left(CStr(.Item("Дата").Value) & Space(10), 10) & vbTab
WScript.StdOut.Write Right(Space(intNumberMaxLength) & CStr(.Item("Номер").Value), intNumberMaxLength) & vbTab
WScript.StdOut.Write Right(Space(intSummMaxLength) & FormatCurrency(.Item("Сумма").Value, 2), intSummMaxLength) & vbTab
WScript.StdOut.Write Left(CStr(.Item("Плательщик").Value) & Space(intPlatMaxLength), intPlatMaxLength)
WScript.StdOut.WriteLine
End With
.MoveNext
Loop
.Close
End With
Set objTS = Nothing
lngErrCode = 0
Else
WScript.StdErr.WriteLine "File [" & strSourceFile & "] not found"
lngErrCode = 2
End If
End With
Else
WScript.StdErr.WriteLine "Usage: cscript.exe //nologo """ & WScript.ScriptName & """ ""<Source file>"""
lngErrCode = 1
End If
WScript.Quit lngErrCode
Замечание:
Если опять формат десятичных разделителей в файле и на машине не совпадает — раскомментируйте SetLocale'ы. »
остаётся в силе.
Если возникнут ошибки с определением дебет/кредит — пишите. Сейчас просто полагаемся на то, что поле Сумма находится в секции ранее поля ДатаСписано. Если может быть обратное, то придётся усложнять разбор.
Спасибо! С определением, похоже, проблем нет. Немного переделал скрипт, конечный вид:
Option Explicit
Const adInteger = 3
Const adCurrency = 6
Const adDate = 7
Const adVarChar = 200
Dim lngErrCode
Dim strSourceFile
Dim strLine
Dim objTS
Dim objRecordSet
Dim intNumberMaxLength
Dim intSummMaxLength
Dim intPlatMaxLength
Dim intNazPlatMaxLength
If WScript.Arguments.Count = 1 Then
strSourceFile = WScript.Arguments.Item(0)
With WScript.CreateObject("Scripting.FileSystemObject")
If .FileExists(strSourceFile) Then
Set objTS = .OpenTextFile(strSourceFile)
With WScript.CreateObject("ADOR.Recordset")
With .Fields
.Append "ДатаСписано", adDate
.Append "ДатаПоступило", adDate
.Append "Номер", adVarChar, 2^5
.Append "Сумма", adCurrency
.Append "ДлинаСтрокиСумма", adInteger
.Append "Плательщик", adVarChar, 2^15 - 1
.Append "ДлинаСтрокиПлательщик", adInteger
.Append "НазначениеПлатежа", adVarChar, 2^15 - 1
.Append "ДлинаСтрокиНазначениеПлатежа", adInteger
End With
.Open
Do Until objTS.AtEndOfStream
strLine = objTS.ReadLine()
Select Case Split(strLine, "=")(0)
Case "СекцияДокумент"
.AddNew
Case "ДатаСписано"
If Len(Split(strLine, "=")(1)) <> 0 Then
.Fields.Item("ДатаСписано").Value = CDate(Split(strLine, "=")(1))
.Fields.Item("Сумма").Value = - .Fields.Item("Сумма").Value
End If
Case "ДатаПоступило"
If Len(Split(strLine, "=")(1)) <> 0 Then
.Fields.Item("ДатаПоступило").Value = CDate(Split(strLine, "=")(1))
End If
Case "Номер"
.Fields.Item("Номер").Value = CStr(Split(strLine, "=")(1))
Case "Сумма"
'SetLocale "en-us"
SetLocale "en-us"
.Fields.Item("Сумма").Value = CCur(Split(strLine, "=")(1))
'SetLocale "ru"
SetLocale "ru"
.Fields.Item("ДлинаСтрокиСумма").Value = Len(FormatCurrency(.Fields.Item("Сумма").Value, 2))
Case "Плательщик", "Плательщик1"
.Fields.Item("Плательщик").Value = CStr(Split(strLine, "=")(1))
.Fields.Item("ДлинаСтрокиПлательщик").Value = Len(CStr(Split(strLine, "=")(1)))
Case "НазначениеПлатежа"
.Fields.Item("НазначениеПлатежа").Value = CStr(Split(strLine, "=")(1))
.Fields.Item("ДлинаСтрокиНазначениеПлатежа").Value = Len(CStr(Split(strLine, "=")(1)))
'Case "ДатаСписано"
' If IsDate(Split(strLine, "=")(1)) Then
' .Fields.Item("Сумма").Value = - .Fields.Item("Сумма").Value
' End If
End Select
Loop
objTS.Close
.Sort = "Номер DESC" : .MoveFirst
intNumberMaxLength = Len(.Fields.Item("Номер").Value)
.Sort = "ДлинаСтрокиСумма DESC" : .MoveFirst
intSummMaxLength = .Fields.Item("ДлинаСтрокиСумма").Value
.Sort = "ДлинаСтрокиПлательщик DESC" : .MoveFirst
intPlatMaxLength = .Fields.Item("ДлинаСтрокиПлательщик").Value
.Sort = "ДлинаСтрокиНазначениеПлатежа DESC" : .MoveFirst
intNazPlatMaxLength = .Fields.Item("ДлинаСтрокиНазначениеПлатежа").Value
.Sort = "" : .MoveFirst
Do Until .EOF
With .Fields
WScript.StdOut.Write Left(CStr(.Item("ДатаСписано").Value) & Space(10), 10) & vbTab
WScript.StdOut.Write Left(CStr(.Item("ДатаПоступило").Value) & Space(10), 10) & vbTab
WScript.StdOut.Write Right(Space(intNumberMaxLength) & CStr(.Item("Номер").Value), intNumberMaxLength) & vbTab
WScript.StdOut.Write Right(Space(intSummMaxLength) & FormatCurrency(.Item("Сумма").Value, 2), intSummMaxLength) & vbTab
WScript.StdOut.Write Left(CStr(.Item("Плательщик").Value) & Space(intPlatMaxLength), intPlatMaxLength) & vbTab
WScript.StdOut.Write Left(CStr(.Item("НазначениеПлатежа").Value) & Space(intNazPlatMaxLength), intNazPlatMaxLength)
WScript.StdOut.WriteLine
End With
.MoveNext
Loop
.Close
End With
Set objTS = Nothing
lngErrCode = 0
Else
WScript.StdErr.WriteLine "File [" & strSourceFile & "] not found"
lngErrCode = 2
End If
End With
Else
WScript.StdErr.WriteLine "Usage: cscript.exe //nologo """ & WScript.ScriptName & """ ""<Source file>"""
lngErrCode = 1
End If
WScript.Quit lngErrCode
Так ДатаСписано и ДатаПоступило - это 2 колонки, не знаю, стоит ли делать в одну или оставить так...
в исходном файле есть операции без даты, т. е. нет значения в поле %Дата=%, желательно сделать так, чтобы в этом случае данные брались из поля %ДатаПоступило=% »
Пробуйте:
Option Explicit
Const adInteger = 3
Const adCurrency = 6
Const adDate = 7
Const adVarChar = 200
Dim lngErrCode
Dim strSourceFile
Dim strLine
Dim objTS
Dim objRecordSet
Dim intNumberMaxLength
Dim intSummMaxLength
Dim intPlatMaxLength
Dim intNazPlatMaxLength
If WScript.Arguments.Count = 1 Then
strSourceFile = WScript.Arguments.Item(0)
With WScript.CreateObject("Scripting.FileSystemObject")
If .FileExists(strSourceFile) Then
Set objTS = .OpenTextFile(strSourceFile)
With WScript.CreateObject("ADOR.Recordset")
With .Fields
.Append "Дата", adDate
.Append "Номер", adVarChar, 2^5
.Append "Сумма", adCurrency
.Append "ДлинаСтрокиСумма", adInteger
.Append "Плательщик", adVarChar, 2^15 - 1
.Append "ДлинаСтрокиПлательщик", adInteger
.Append "НазначениеПлатежа", adVarChar, 2^15 - 1
.Append "ДлинаСтрокиНазначениеПлатежа", adInteger
End With
.Open
Do Until objTS.AtEndOfStream
strLine = objTS.ReadLine()
Select Case Split(strLine, "=")(0)
Case "СекцияДокумент"
.AddNew
Case "Дата"
If Len(Split(strLine, "=")(1)) <> 0 Then
.Fields.Item("Дата").Value = CDate(Split(strLine, "=")(1))
End If
Case "ДатаПоступило"
If IsEmpty(.Fields.Item("Дата").Value) Then
If Len(Split(strLine, "=")(1)) <> 0 Then
.Fields.Item("Дата").Value = CDate(Split(strLine, "=")(1))
End If
End If
Case "Номер"
.Fields.Item("Номер").Value = CStr(Split(strLine, "=")(1))
Case "Сумма"
SetLocale "en-us"
.Fields.Item("Сумма").Value = CCur(Split(strLine, "=")(1))
SetLocale "ru"
.Fields.Item("ДлинаСтрокиСумма").Value = Len(FormatCurrency(.Fields.Item("Сумма").Value, 2))
Case "Плательщик", "Плательщик1"
.Fields.Item("Плательщик").Value = CStr(Split(strLine, "=")(1))
.Fields.Item("ДлинаСтрокиПлательщик").Value = Len(CStr(Split(strLine, "=")(1)))
Case "НазначениеПлатежа"
.Fields.Item("НазначениеПлатежа").Value = CStr(Split(strLine, "=")(1))
.Fields.Item("ДлинаСтрокиНазначениеПлатежа").Value = Len(CStr(Split(strLine, "=")(1)))
Case "ДатаСписано"
If IsDate(Split(strLine, "=")(1)) Then
.Fields.Item("Сумма").Value = - .Fields.Item("Сумма").Value
End If
End Select
Loop
objTS.Close
.Sort = "Номер DESC" : .MoveFirst
intNumberMaxLength = Len(.Fields.Item("Номер").Value)
.Sort = "ДлинаСтрокиСумма DESC" : .MoveFirst
intSummMaxLength = .Fields.Item("ДлинаСтрокиСумма").Value
.Sort = "ДлинаСтрокиПлательщик DESC" : .MoveFirst
intPlatMaxLength = .Fields.Item("ДлинаСтрокиПлательщик").Value
.Sort = "ДлинаСтрокиНазначениеПлатежа DESC" : .MoveFirst
intNazPlatMaxLength = .Fields.Item("ДлинаСтрокиНазначениеПлатежа").Value
.Sort = "" : .MoveFirst
Do Until .EOF
With .Fields
WScript.StdOut.Write Left(CStr(.Item("Дата").Value) & Space(10), 10) & vbTab
WScript.StdOut.Write Right(Space(intNumberMaxLength) & CStr(.Item("Номер").Value), intNumberMaxLength) & vbTab
WScript.StdOut.Write Right(Space(intSummMaxLength) & FormatCurrency(.Item("Сумма").Value, 2), intSummMaxLength) & vbTab
WScript.StdOut.Write Left(CStr(.Item("Плательщик").Value) & Space(intPlatMaxLength), intPlatMaxLength) & vbTab
WScript.StdOut.Write Left(CStr(.Item("НазначениеПлатежа").Value) & Space(intNazPlatMaxLength), intNazPlatMaxLength)
WScript.StdOut.WriteLine
End With
.MoveNext
Loop
.Close
End With
Set objTS = Nothing
lngErrCode = 0
Else
WScript.StdErr.WriteLine "File [" & strSourceFile & "] not found"
lngErrCode = 2
End If
End With
Else
WScript.StdErr.WriteLine "Usage: cscript.exe //nologo """ & WScript.ScriptName & """ ""<Source file>"""
lngErrCode = 1
End If
WScript.Quit lngErrCode
Iska, спасибо вам в очередной раз. Скрипт работает. С операциями на этом можно закончить. На основе этого же скрипта сделал еще одну обработку того же файла. Теперь в результирующий файл пишутся общие суммы по датам. В, общем-то, работает как надо, единственный момент, который я хотел бы прояснить в следующем:
В исходном файле последовательность данных такая:
ДатаНачала=xx.xx.xxxx
ДатаКонца=xx.xx.xxxx
СекцияРасчСчет
ДатаНачала=xx.xx.xxxx
ДатаКонца=xx.xx.xxxx
...
СекцияРасчСчет
ДатаНачала=xx.xx.xxxx
ДатаКонца=xx.xx.xxxx
...
и т. д.
Сейчас скрипт пишет первую строку в результирующий файл из данных начиная с самого начала исходного файла, правильнее было бы сделать, чтобы он писал их начиная с секции "СекцияРасчСчет" (т. е. пропускал данные до этой секции), но я сам пока-что не понял что нужно исправить в скрипте. Сейчас его вид:
Option Explicit
Const adInteger = 3
Const adCurrency = 6
Const adDate = 7
Dim lngErrCode
Dim strSourceFile
Dim strLine
Dim objTS
Dim objRecordSet
Dim intBeginSummMaxLen
Dim intDebitMaxLen
Dim intCreditMaxLen
Dim intEndSummMaxLen
If WScript.Arguments.Count = 1 Then
strSourceFile = WScript.Arguments.Item(0)
With WScript.CreateObject("Scripting.FileSystemObject")
If .FileExists(strSourceFile) Then
Set objTS = .OpenTextFile(strSourceFile)
With WScript.CreateObject("ADOR.Recordset")
With .Fields
.Append "ДатаНачала", adDate
.Append "ДатаКонца", adDate
.Append "НачальныйОстаток", adCurrency
.Append "ВсегоСписано", adCurrency
.Append "ВсегоПоступило", adCurrency
.Append "КонечныйОстаток", adCurrency
.Append "ДлинаСтрокиНачальныйОстаток", adInteger
.Append "ДлинаСтрокиВсегоСписано", adInteger
.Append "ДлинаСтрокиВсегоПоступило", adInteger
.Append "ДлинаСтрокиКонечныйОстаток", adInteger
End With
.Open
Do Until objTS.AtEndOfStream
strLine = objTS.ReadLine()
Select Case Split(strLine, "=")(0)
'Case "СекцияРасчСчет"
' .AddNew
Case "ДатаНачала"
.AddNew
.Fields.Item("ДатаНачала").Value = CDate(Split(strLine, "=")(1))
Case "ДатаКонца"
.Fields.Item("ДатаКонца").Value = CDate(Split(strLine, "=")(1))
Case "НачальныйОстаток"
'SetLocale "en-us"
SetLocale "en-us"
.Fields.Item("НачальныйОстаток").Value = CCur(Split(strLine, "=")(1))
.Fields.Item("ДлинаСтрокиНачальныйОстаток").Value = Len(FormatCurrency(.Fields.Item("НачальныйОстаток").Value, 4))
Case "ВсегоСписано"
.Fields.Item("ВсегоСписано").Value = - CCur(Split(strLine, "=")(1))
.Fields.Item("ДлинаСтрокиВсегоСписано").Value = Len(FormatCurrency(.Fields.Item("ВсегоСписано").Value, 4))
Case "ВсегоПоступило"
.Fields.Item("ВсегоПоступило").Value = CCur(Split(strLine, "=")(1))
.Fields.Item("ДлинаСтрокиВсегоПоступило").Value = Len(FormatCurrency(.Fields.Item("ВсегоПоступило").Value, 4))
Case "КонечныйОстаток"
.Fields.Item("КонечныйОстаток").Value = CCur(Split(strLine, "=")(1))
'SetLocale "ru"
SetLocale "ru"
.Fields.Item("ДлинаСтрокиКонечныйОстаток").Value = Len(FormatCurrency(.Fields.Item("КонечныйОстаток").Value, 4))
End Select
Loop
objTS.Close
.Sort = "ДлинаСтрокиНачальныйОстаток DESC" : .MoveFirst
intBeginSummMaxLen = .Fields.Item("ДлинаСтрокиНачальныйОстаток").Value
.Sort = "ДлинаСтрокиВсегоСписано DESC" : .MoveFirst
intDebitMaxLen = .Fields.Item("ДлинаСтрокиВсегоСписано").Value
.Sort = "ДлинаСтрокиВсегоПоступило DESC" : .MoveFirst
intCreditMaxLen = .Fields.Item("ДлинаСтрокиВсегоПоступило").Value
.Sort = "ДлинаСтрокиКонечныйОстаток DESC" : .MoveFirst
intEndSummMaxLen = .Fields.Item("ДлинаСтрокиКонечныйОстаток").Value
.Sort = "" : .MoveFirst
Do Until .EOF
With .Fields
WScript.StdOut.Write Left(CStr(.Item("ДатаНачала").Value) & Space(10), 10) & " / "
WScript.StdOut.Write Left(CStr(.Item("ДатаКонца").Value) & Space(10), 10) & "|"
WScript.StdOut.Write Right(Space(intBeginSummMaxLen) & FormatCurrency(.Item("НачальныйОстаток").Value, 2), intBeginSummMaxLen) & "|"
WScript.StdOut.Write Right(Space(intCreditMaxLen) & FormatCurrency(.Item("ВсегоПоступило").Value, 2), intCreditMaxLen) & "|"
WScript.StdOut.Write Right(Space(intDebitMaxLen) & FormatCurrency(.Item("ВсегоСписано").Value, 2), intDebitMaxLen) & "|"
WScript.StdOut.Write Right(Space(intEndSummMaxLen) & FormatCurrency(.Item("КонечныйОстаток").Value, 2), intEndSummMaxLen)
WScript.StdOut.WriteLine
End With
.MoveNext
Loop
.Close
End With
Set objTS = Nothing
lngErrCode = 0
Else
WScript.StdErr.WriteLine "File [" & strSourceFile & "] not found"
lngErrCode = 2
End If
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.