powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Вывод группировочных записей в одну строку для отчета
13 сообщений из 38, страница 2 из 2
Вывод группировочных записей в одну строку для отчета
    #39585789
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
olang@tut.by,
выложите таблицу в которой возникает проблема (насколько понял в ёкселевской)
...
Рейтинг: 0 / 0
Вывод группировочных записей в одну строку для отчета
    #39585923
olang@tut.by
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Панург, не знаю где я че не так сделал, но все равно режет строку. вот файл с формой вывода. поставьте там дату 03.01.18 и нажмите экспорт в xml или просто через запросы.
...
Рейтинг: 0 / 0
Вывод группировочных записей в одну строку для отчета
    #39585969
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
olang@tut.byПанург, не знаю где я че не так сделал, но все равно режет строку. вот файл с формой вывода. поставьте там дату 03.01.18 и нажмите экспорт в xml или просто через запросы.

http://www.sql.ru/forum/actualfile.aspx?id=21114296] Приложенный файл (JurnalTmp.rar - 43Kb)
Я бы видимо сделала по другому
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
Option Compare Database

Private Sub Filtr_Click()
    pFilter = "Day(DataG)= " & Day(DataN) & " AND Month(DataG)=" & Month(DataN) & " AND Year(DataG)=" & Year(DataN)
    Me.Filter = pFilter
    Me.FilterOn = True
    Me.Refresh
End Sub

' экспорт в xml файл для связи продукция-сырье
Private Sub pXmlPS_Click()
Dim rs As DAO.Recordset, s, t1, t2

NameTXT = "D:\Jelatin_Kosti.xml"
Me.Refresh
Set dbs = CurrentDb()

' запрос к исходной таблице qJelatinXmlSur
s = "SELECT tbJelatin.NomPart, tbJelatin.DataG, tbJelatin.Guin,"
s = s & " tbPodKos.NomAkt as nomAktK,tbPodKos.DataK ,tbPodKos.GiunK,"
s = s & " [ProdK] AS Npart"
s = s & " FROM tbJelatin"
s = s & " INNER JOIN tbPodKos ON tbJelatin.Kod = tbPodKos.ProdK"
''s = s & "  WHERE (((tbJelatin.prn) = True))"
s = s & " ORDER BY tbJelatin.NomPart, tbJelatin.DataG, tbJelatin.Guin,[ProdK]"
Debug.Print s
Set rs = dbs.OpenRecordset(s, dbOpenDynaset, DB_CONSISTENT, dbPessimistic)
If rs.RecordCount = 0 Then
    MsgBox "Данные по актам кости отсутствуют!", vbInformation, "ВНИМАНИЕ"
    rs.Close
    dbs.Close
Else
rs.MoveFirst
MsgBox "Файл " & NameTXT & " сохранен в папку", vbInformation, "ВНИМАНИЕ"
Open NameTXT For Output As #1
'пишем заголовок
Print #1, "<?xml version='1.0' encoding='UTF-8'?>"
Print #1, "<ArrayOfItemPart xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xsd='http://www.w3.org/200l/XMLSchema'>"
t1 = "**"
   While Not rs.EOF
   t2 = rs!NomPart & "`" & rs!DataG & "`" & rs!Guin
   If t1 <> t2 Then
   If t1 <> "**" Then
    Print #1, "</NPART>"
    Print #1, "</ItemPart>"
   End If
        ' rs.Fields(0) - номер партии;     rs.Fields(1) - дата;              rs.Fields(2) - GUIN;            rs.Fields(3) - № акта +  дата акта + Guin акта сырья;
        Print #1, "<ItemPart>"
        Print #1, "<TYPEOTR>2</TYPEOTR>"
        Print #1, "<POL>4810077900006:ОАО " & Chr(34) & "МОЖЕЛИТ" & Chr(34) & " г. Могилев" & "</POL>"
        Print #1, "<PARTR>" & Trim(rs.Fields(0)) & Chr(58) & Format(rs.Fields(1), "dd\.mm\.yyyy") & Chr(58) & Trim(rs.Fields(2)) & "</PARTR>"
        Print #1, "<NPART>"
        t1 = t2
        End If
        Print #1, Trim(rs!NomAktK) & ":" & rs!DataK & ":" & Trim(rs!GiunK) & ";"
         
        
        rs.MoveNext
Wend
Print #1, "</NPART>"
    Print #1, "</ItemPart>"
Print #1, "</ArrayOfItemPart>"
Close #1
rs.Close
dbs.Close
End If
Set rs = Nothing
WinToUTF (NameTXT)

End Sub
...
Рейтинг: 0 / 0
Вывод группировочных записей в одну строку для отчета
    #39586003
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
olang@tut.byПанург, не знаю где я че не так сделал, но все равно режет строку. А просто заглянуть во временную таблицу времени не хватило? Чего бы не резать если там тип данных поля стоит текстовый с ограничением в 256 символов. Было интересно поменяешь или нет - не сменил. Смени тип на мемо.
...
Рейтинг: 0 / 0
Вывод группировочных записей в одну строку для отчета
    #39586263
olang@tut.by
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ПЕНСИОНЕРКА,
спасибо за ваш предложенный вариант
...
Рейтинг: 0 / 0
Вывод группировочных записей в одну строку для отчета
    #39586384
olang@tut.by, вы средствами VBA создаете файл в кодировке ANSI, а затем с помощью ADODB.Stream преобразуете в UTF-8. Зачем, если можно через ADODB.Stream сразу создавать файл в нужной кодировке?
ЗЫ. Где-то месяц-два назад я уже писал об этом в похожей ситуации. Не вам?
...
Рейтинг: 0 / 0
Вывод группировочных записей в одну строку для отчета
    #39586402
21212
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Анатолий ( Киев )olang@tut.by, вы средствами VBA создаете файл в кодировке ANSI, а затем с помощью ADODB.Stream преобразуете в UTF-8. Зачем, если можно через ADODB.Stream сразу создавать файл в нужной кодировке?
...........

++
а это
чо тако
WinToUTF (NameTXT)

а
...
Рейтинг: 0 / 0
Вывод группировочных записей в одну строку для отчета
    #39586907
olang@tut.by
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Анатолий ( Киев ), да это мне. была такая проблема. но я не стал исправлять. нужно было срочно отдать файл для обработки.
...
Рейтинг: 0 / 0
Вывод группировочных записей в одну строку для отчета
    #39586927
olang@tut.by
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ПЕНСИОНЕРКА, добрый день. можете еще помочь. как убрать ";" в месте указанном на рисунке в вашем коде программы. я пробовал много вариантов, но не нашел точки отсчета.
...
Рейтинг: 0 / 0
Вывод группировочных записей в одну строку для отчета
    #39586937
olang@tut.by
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
некорректно написал. для одной партии я могу удалить ";" а вот для нескольких не соображу.
...
Рейтинг: 0 / 0
Вывод группировочных записей в одну строку для отчета
    #39587121
Код: vbnet
1.
        Print #1, Trim(rs!NomAktK) & ":" & rs!DataK & ":" & Trim(rs!GiunK) & ";"


Эта инструкция пишет в файл каждую партию в отдельной строке (как на 1-й картинке).

Конечно ПЕНСИОНЕРКА вам ответит лучше, но мой вариант такой:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
   t1 = "**" : s = ""
While Not rs.EOF
   t2 = rs!NomPart & "`" & rs!DataG & "`" & rs!Guin
   If t1 <> t2 Then
     If t1 <> "**" Then
      Print #1, s & "</NPART>" : s = ""
      Print #1, "</ItemPart>"
     End If
        ' rs.Fields(0) - номер партии;     rs.Fields(1) - дата;              rs.Fields(2) - GUIN;            rs.Fields(3) - № акта +  дата акта + Guin акта сырья;
        Print #1, "<ItemPart>"
        Print #1, "<TYPEOTR>2</TYPEOTR>"
        Print #1, "<POL>4810077900006:ОАО " & Chr(34) & "МОЖЕЛИТ" & Chr(34) & " г. Могилев" & "</POL>"
        Print #1, "<PARTR>" & Trim(rs.Fields(0)) & Chr(58) & Format(rs.Fields(1), "dd\.mm\.yyyy") & Chr(58) & Trim(rs.Fields(2)) & "</PARTR>"
        Print #1, "<NPART>"
        t1 = t2
   End If
        'Print #1, Trim(rs!NomAktK) & ":" & rs!DataK & ":" & Trim(rs!GiunK) & ";"
        If Len(s)  > 0 Then S = s & ";"        
        s = s & Trim(rs!NomAktK) & ":" & rs!DataK & ":" & Trim(rs!GiunK)
        rs.MoveNext
Wend
    Print #1, s & "</NPART>" : s = ""
    Print #1, "</ItemPart>"
    Print #1, "</ArrayOfItemPart>"

Здесь все партии собираются в переменной и пишутся в файл один раз (как на 2-й картинке) без завершающей ";" .
...
Рейтинг: 0 / 0
Вывод группировочных записей в одну строку для отчета
    #39587425
olang@tut.by
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Анатолий ( Киев ),
Спасибо большое. все работает)
...
Рейтинг: 0 / 0
Вывод группировочных записей в одну строку для отчета
    #39587455
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
olang@tut.by,
я обычно пишу так
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
 While Not rs.EOF
   t2 = rs!NomPart & "`" & rs!DataG & "`" & rs!Guin
   If t1 <> t2 Then
    s="" '''разделитель для первой подзаписи
   If t1 <> "**" Then
    Print #1, "</NPART>"
    Print #1, "</ItemPart>"

   End If
        ' rs.Fields(0) - номер партии; rs.Fields(1) - дата;  rs.Fields(2) - GUIN;  
        'rs.Fields(3) - № акта +  дата акта + Guin акта сырья;
        Print #1, "<ItemPart>"
        Print #1, "<TYPEOTR>2</TYPEOTR>"
        Print #1, "<POL>4810077900006:ОАО " & Chr(34) & "МОЖЕЛИТ" & Chr(34) & " г. Могилев" & "</POL>"
        Print #1, "<PARTR>" & Trim(rs.Fields(0)) & Chr(58) & Format(rs.Fields(1), "dd\.mm\.yyyy") & Chr(58) & Trim(rs.Fields(2)) & "</PARTR>"
        Print #1, "<NPART>"
        t1 = t2
        End If
        Print #1, s & Trim(rs!NomAktK) & ":" & rs!DataK & ":" & Trim(rs!GiunK) 
         s= ";"   ''' для следующих
        
        rs.MoveNext
Wend
...
Рейтинг: 0 / 0
13 сообщений из 38, страница 2 из 2
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Вывод группировочных записей в одну строку для отчета
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]