powered by simpleCommunicator - 2.0.57     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / отчёты Excel (закреплённые области)
25 сообщений из 29, страница 1 из 2
отчёты Excel (закреплённые области)
    #38568389
R-Magistr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте, не знаю сюда ли отписываю тему, но всё же....

В общем ситуация такая: в БД(не важно какой, вопрос не по этому) формируется отчёт ТОРГ-12 и выгружается в уже подготовленную Exel форму с уже размеченными полями (имеется в виду нижняя часть отчёта, где ставятся подписи, место для печати и прочее, после итогов).

Проблема: Когда отчёт выгружается с большим кол-вом строк, то вся разметка съезжает!

Вопрос: Как сделать так что бы эта разметка не съезжала?

Пытался: читал инфу про закреплённые области, но они почему-то закрепляют только верх и лево, но не низ, что очень обидно. В данный момент в тупике, нет мыслей да же в каком направлении идти, хелп.
...
Рейтинг: 0 / 0
отчёты Excel (закреплённые области)
    #38568423
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изменить эксельный файл. Сделать в нём два листа. На второй выгружать данные, на первом формировать отчёт по данным второго листа.
"Разметка съезжает" - это термин для беседы двух домохозяек на коммунальной кухне. Проблему следует озвучивать точным техническим языком.
...
Рейтинг: 0 / 0
отчёты Excel (закреплённые области)
    #38568428
zchvv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я думаю, что перед укладкой отчета в Excel нужно посчитать количество строк в отчете и добавлять необходимое количество перед последней строкой нарисованной таблиц методом Insert.
...
Рейтинг: 0 / 0
отчёты Excel (закреплённые области)
    #38568565
R-Magistr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akina,

Это вот так:
1) когда одна строка, и всё ровненько
и
2) когда две строки, и "всё съезжает"
...
Рейтинг: 0 / 0
отчёты Excel (закреплённые области)
    #38568569
R-Magistr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
R-Magistr,
вот когда "всё съезжает"
...
Рейтинг: 0 / 0
отчёты Excel (закреплённые области)
    #38568601
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это называется "изменяются высоты расположенных ниже строк". Съезжает, ёпрст...
Самое простое (но не самое имхо правильное) решение - запретить изменение высоты строк или просто восстановить требуемую высоту строк программно.

Кстати, а за каким хреном вообще надо всё вываливать в Эксель? Делйте именно отчёт...
...
Рейтинг: 0 / 0
отчёты Excel (закреплённые области)
    #38568617
R-Magistr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akina,

Ну вот так вот надо людям, начальство не объясняет зачем это им, сказали надо и всё :(
А можно по подробнее, как именно запретить изменение строк?
...
Рейтинг: 0 / 0
отчёты Excel (закреплённые области)
    #38568632
R-Magistr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akina,

понимаете почему она "съезжает", дело в том что когда строк больше одной, то строка, которая была в нормальном отчёте под номером скажем 34, в отчёте из двух строк становится уже под номером 35, и соответственно для неё применяются заданные уже для 35-й строки высоты, т.е. как бы она съезжает вниз, вот как бы это всё сделать нормально?
...
Рейтинг: 0 / 0
отчёты Excel (закреплённые области)
    #38568635
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так. Посмотрел повнимательнее. У тебя содержимое опускается вниз, а высоты строк остаются. Т.е. ты не вставляешь доп. строки для записей в необходимом количестве, а просто переносишь содержимое строк нижней части формы в нижележащие строки. Так что твоё "выгружается в уже подготовленную Exel форму с уже размеченными полями" не соответствует реальному положению дел.

Измени подход - добавляй (вставляй) новые строки в середину формы для очередных записей. Тогда у тебя всё подножие будет "опускаться" - и контент, и формат.
...
Рейтинг: 0 / 0
отчёты Excel (закреплённые области)
    #38568636
R-Magistr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akina,

стоит офис 2007, делаю защиту всего листа через главная/формат/защита всего листа, там расставляю галочки что можно делать всё, кроме изменения высоты столбцов, на что он выдаёт ошибку и строки в отчёте не выводит :(:(:(
...
Рейтинг: 0 / 0
отчёты Excel (закреплённые области)
    #38568643
R-Magistr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akina,

вот так вот работает этот хитрый генератор отчётов в Лексемме 5.5
Как вы и сказали, он просто переносит содержимое строк нижней части формы в нижележащие строки
механизм что ли такой...
...
Рейтинг: 0 / 0
отчёты Excel (закреплённые области)
    #38568653
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну раз так, то предлагаю для каждого отчёта перед его созданием формировать ему личный шаблон - на базе основного шаблона, но с необходимым количеством пустых строк (точнее, с форматированием в нужном месте). Или заранее вручную наготовить тучу шаблонов для отчёта с 1,2, ... N строками под контент, и выбирать подходящий.
...
Рейтинг: 0 / 0
отчёты Excel (закреплённые области)
    #38568659
R-Magistr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akina,

а может как-нибудь с визуал бейсиком можно решить?
на ум приходит мысль о том что можно копировать размеченную область на другой лист, выводить нужные строки, а потом её (область) добавлять в конец, вот только я не владею визуал бейсиком, и это проблемма (((
не поможете?
...
Рейтинг: 0 / 0
отчёты Excel (закреплённые области)
    #38568695
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Визуальных бэйсиков аки грязи. Как standalone, так и for application. У тебя какой - надеюсь, не из Автокада?
...
Рейтинг: 0 / 0
отчёты Excel (закреплённые области)
    #38568706
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
R-MagistrAkina,

Ну вот так вот надо людям, начальство не объясняет зачем это им, сказали надо и всё :(
А можно по подробнее, как именно запретить изменение строк?

ПОСЛЕ ЭТОГО ТОПИКА СРАЗУ ВОЗНИК ВОПРОС
--есть ли итоги по странице
--если наименование длинное --занимает она 1 строку с расширением по вертикали
--или несколько строк (например 2-3-5) по 15-20 символов

если начальству надо только смотреть накладные --то нужен ли ексель(может удобнее HTM или WORD)
...
Рейтинг: 0 / 0
отчёты Excel (закреплённые области)
    #38568722
R-Magistr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПЕНСИОНЕРКА,

итоги есть, они просчитываются нормально, но если доходят до уже размеченных строк, то там их высота то же скачет :(
начальству нужна возможность потом при случае дорабатывать отчёт методами Excel, поэтому и Excel
(была такая указана причина)
...
Рейтинг: 0 / 0
отчёты Excel (закреплённые области)
    #38568724
R-Magistr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akina,

тот который используется в 2007 офисе, не знаю какой он там, как посмотреть?
...
Рейтинг: 0 / 0
отчёты Excel (закреплённые области)
    #38568769
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
R-Magistrтот который используется в 2007 офисеVBA. Но... в каком именно приложении? Аксесс? Эксель?
...
Рейтинг: 0 / 0
отчёты Excel (закреплённые области)
    #38568854
R-Magistr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akina,

Excel
...
Рейтинг: 0 / 0
отчёты Excel (закреплённые области)
    #38568866
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну тогда собственно пробегаешь по столбцу B, начиная со строки 31, считаешь количество заполненных данными строк (как кончатся - попадётся пустая ячейка...). Или можно ориентироваться на столбец, где написано "Итого", например...
Вставляешь это количество строк минус один перед строкой 31.
Переносишь туда данные из куда там они опустились, Cut + SpecPaste/Values.
Удаляешь пустые строки в конце.
Всё.
...
Рейтинг: 0 / 0
отчёты Excel (закреплённые области)
    #38568868
baclanov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AkinaR-Magistrтот который используется в 2007 офисеVBA. Но... в каком именно приложении? Аксесс? Эксель?
Alt+F11
...
Рейтинг: 0 / 0
отчёты Excel (закреплённые области)
    #38569300
zchvv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я вспомнил. Подвал таблицы нужно держать на отдельном листе. После выгрузки отчета копировать (программно, конечно) в нужное место. Делал так в прошлом много раз (не ТОРГ-12, но какая разница). Очень удобно и эффективно. Это же относится и к заголовкам.
...
Рейтинг: 0 / 0
отчёты Excel (закреплённые области)
    #38569301
R-Magistr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zchvv,

и я про этот же способ думал, а как именно это реализовал?
...
Рейтинг: 0 / 0
отчёты Excel (закреплённые области)
    #38569304
zchvv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот нашел у себя:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
Private Sub ВставитьЗаголовки(ByVal shname As String, ByVal zagrng As String)
Dim zagrow As Integer, zagcol As Integer
Set wb = ThisWorkbook
Set ws1 = wb.Worksheets(shname)
Set ws2 = wb.Worksheets("Шапки")
Set r2 = ws2.Range(zagrng)
zagrow = r2.Rows.Count
zagcol = r2.Columns.Count
Set r1 = ws1.Cells(1, 1).CurrentRegion
For i = 1 To zagrow
    r1.Rows(1).Insert
    r1.Cells(1, 1).Offset(-1, 0).Value = "*"
Next i
Set r1 = ws1.Cells(1, 1).CurrentRegion
Set r1row = r1.Rows(1).Resize(RowSize:=zagrow)
r2.Copy r1row
For i = 1 To zagcol
    r1row.Columns(i).ColumnWidth = r2.Columns(i).ColumnWidth
Next i
For i = 1 To zagrow
    r1row.Rows(i).RowHeight = r2.Rows(i).RowHeight
Next i
End Sub


Для вставки подвала находишь последнюю ячейку тела отчета и спускаешься вниз (например, на 2 строки):
Код: vbnet
1.
2.
3.
4.
set r=ws1.Cells(1,1).CurrentRegion
set c=r.Cells(r.Rows.Count,1)
set c=c.Offset(2,0)
r2.Copy c
...
Рейтинг: 0 / 0
отчёты Excel (закреплённые области)
    #38569311
akrush
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ничего не будес съезжать если делать НОРМАЛЬНЫЙ инсерт строк. судя по скринам автор делает, если выражаться методами excel, вставку данных со сдвигом ячеек.

попробуйте вручную вставить строку в
...
Рейтинг: 0 / 0
25 сообщений из 29, страница 1 из 2
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / отчёты Excel (закреплённые области)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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