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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

и я про этот же способ думал, а как именно это реализовал?
...
Рейтинг: 0 / 0
22.02.2014, 08:25
    #38569304
zchvv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
отчёты Excel (закреплённые области)
Вот нашел у себя:
Код: 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
22.02.2014, 09:12
    #38569311
akrush
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
отчёты Excel (закреплённые области)
Ничего не будес съезжать если делать НОРМАЛЬНЫЙ инсерт строк. судя по скринам автор делает, если выражаться методами excel, вставку данных со сдвигом ячеек.

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


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