Поля в SLK
Модераторы: m0p3e, edward_K, Модераторы
Поля в SLK
Выводим отчет в SLK, из линк-формы. Хотим ужать форму за счет полей, не получается. В офисе 2003 почему то установленные поля из линк-формы не переносятся в выходную форму.
Уже замучились.
В 2007 этой проблемы нет.
Может кто знает как решить ее в 2003 офисом?
Уже замучились.
В 2007 этой проблемы нет.
Может кто знает как решить ее в 2003 офисом?
-
- Постоянный обитатель
- Сообщения: 123
- Зарегистрирован: 01 фев 2007, 12:45
- Откуда: Магнитогорск
- Контактная информация:
Re: Поля в SLK
Если вы хотите "ужать" высоту строк, должен вас огорчить - FCOM игнорирует информацию о ней. В выходном файле, если высота строк была задана специально, эти строки "сползут", поскольку из отчёта выкусывается программная часть, а эти строки никак не обрабатываются. Выход - удалить все записи вида F;M из исходника. Эксель автоматически установит нужную высоту.
Если же надо "ужать" столбцы, поэкспериментируйте с секцией F;W. В каждой из таких строк первое число указывает начальный столбец, второе - конечный, а 3-е - ширину столбца в точках.
Если же надо "ужать" столбцы, поэкспериментируйте с секцией F;W. В каждой из таких строк первое число указывает начальный столбец, второе - конечный, а 3-е - ширину столбца в точках.
Испытываю траблы с даблами
ВИП — Велосипедо-Изобретательская Парадигма
САППОРТ — Сборище Абсолютно Пустых Посредственно Образованных Ржущих Троллей
ВИП — Велосипедо-Изобретательская Парадигма
САППОРТ — Сборище Абсолютно Пустых Посредственно Образованных Ржущих Троллей
-
- Заслуженный деятель интернет-сообщества
- Сообщения: 5188
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: SPB galaxy spb
Re: Поля в SLK
в общеми лучше сразу в Excel чем мучится . Из текстовой формы это сделать достаточно легко.
Re: Поля в SLK
Нет, мы хотим уменьшить поля листа (отступы справа и слева) т.е аналогично параметрам страниц.
Не ячеек, а листа.
Не ячеек, а листа.
-
- Заслуженный деятель интернет-сообщества
- Сообщения: 5188
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: SPB galaxy spb
Re: Поля в SLK
slk это не тот формат который позволяет это делать. Более того и макрос тяжко запустить. Хотя я когда-то ложил шаблон в автозагрузку, который при старте Excel смотрел какая книга открылась и если встретил нужную производил над ней манипуляции - но в Excel нормальный проще
-
- Постоянный обитатель
- Сообщения: 123
- Зарегистрирован: 01 фев 2007, 12:45
- Откуда: Магнитогорск
- Контактная информация:
Re: Поля в SLK
Ну, SLK позволяет изменить параметр названия генератора этого самого слк, отсюда можно плясать...
Например,
ID;PWXL;N;E
можно заменить на
ID;PSLKMEGATOOL;N;E
а шаблон или надстройка будет сначала читать поступившие slk в сыром режиме, и в зависимости от наличия метки делать свою "грязную" работу
C RTF ещё проще такое сделать, благо он поддерживает переменные Ворда.
Например,
ID;PWXL;N;E
можно заменить на
ID;PSLKMEGATOOL;N;E
а шаблон или надстройка будет сначала читать поступившие slk в сыром режиме, и в зависимости от наличия метки делать свою "грязную" работу
C RTF ещё проще такое сделать, благо он поддерживает переменные Ворда.
Испытываю траблы с даблами
ВИП — Велосипедо-Изобретательская Парадигма
САППОРТ — Сборище Абсолютно Пустых Посредственно Образованных Ржущих Троллей
ВИП — Велосипедо-Изобретательская Парадигма
САППОРТ — Сборище Абсолютно Пустых Посредственно Образованных Ржущих Троллей
Re: Поля в SLK
А можно поподробней? Ничего не понял, но чувствую что очень нужная мне весчЪ! =)Semi-bit писал(а):Ну, SLK позволяет изменить параметр названия генератора этого самого слк, отсюда можно плясать...
Например,
ID;PWXL;N;E
можно заменить на
ID;PSLKMEGATOOL;N;E
а шаблон или надстройка будет сначала читать поступившие slk в сыром режиме, и в зависимости от наличия метки делать свою "грязную" работу
C RTF ещё проще такое сделать, благо он поддерживает переменные Ворда.
Re: Поля в SLK
http://www.youtube.com/watch?v=lavMXK7AuXAspark писал(а):Ничего не понял, но чувствую что очень нужная мне весчЪ! =)
Re: Поля в SLK
Да, Да!! Мне пожалуйста обе буквы!RAJAH писал(а):http://www.youtube.com/watch?v=lavMXK7AuXAspark писал(а):Ничего не понял, но чувствую что очень нужная мне весчЪ! =)
-
- Постоянный обитатель
- Сообщения: 123
- Зарегистрирован: 01 фев 2007, 12:45
- Откуда: Магнитогорск
- Контактная информация:
Re: Поля в SLK
Хм, не знаю, каким боком сюда затесался Семён Фарада, дома ссылку посмотрю (на работе нормального инета нету, а тот что есть, тает с неимоверной скоростью)...
spark, надо ваш документик открыть, и заменить в нём самую первую строку вышеописанным способом. Потом можно этот файл скомпилировать випом. Затем сделайте шаблон xlt (или xltm, если у вас Excel 2007) . В шаблоне сделайте макрос и настройте его так, чтобы он запускался при открытии рабочей книги. В макросе уже можно сделать проверку на наличие вашей пометки.
Я вместо шаблонов предпочитаю делать общие надстройки Office средствами VSTO, потому что её достаточно просто установить на произвольный компьютер, и не надо заморачиваться со способом отлова события открытия документа.
spark, надо ваш документик открыть, и заменить в нём самую первую строку вышеописанным способом. Потом можно этот файл скомпилировать випом. Затем сделайте шаблон xlt (или xltm, если у вас Excel 2007) . В шаблоне сделайте макрос и настройте его так, чтобы он запускался при открытии рабочей книги. В макросе уже можно сделать проверку на наличие вашей пометки.
Я вместо шаблонов предпочитаю делать общие надстройки Office средствами VSTO, потому что её достаточно просто установить на произвольный компьютер, и не надо заморачиваться со способом отлова события открытия документа.
Испытываю траблы с даблами
ВИП — Велосипедо-Изобретательская Парадигма
САППОРТ — Сборище Абсолютно Пустых Посредственно Образованных Ржущих Троллей
ВИП — Велосипедо-Изобретательская Парадигма
САППОРТ — Сборище Абсолютно Пустых Посредственно Образованных Ржущих Троллей
Re: Поля в SLK
Что только люди не придумают. Как это все приходит вам в головы?? =))Semi-bit писал(а):Хм, не знаю, каким боком сюда затесался Семён Фарада, дома ссылку посмотрю (на работе нормального инета нету, а тот что есть, тает с неимоверной скоростью)...
spark, надо ваш документик открыть, и заменить в нём самую первую строку вышеописанным способом. Потом можно этот файл скомпилировать випом. Затем сделайте шаблон xlt (или xltm, если у вас Excel 2007) . В шаблоне сделайте макрос и настройте его так, чтобы он запускался при открытии рабочей книги. В макросе уже можно сделать проверку на наличие вашей пометки.
Я вместо шаблонов предпочитаю делать общие надстройки Office средствами VSTO, потому что её достаточно просто установить на произвольный компьютер, и не надо заморачиваться со способом отлова события открытия документа.
А можно пример макроса, который определяет нужный slk?
-
- Постоянный обитатель
- Сообщения: 123
- Зарегистрирован: 01 фев 2007, 12:45
- Откуда: Магнитогорск
- Контактная информация:
Re: Поля в SLK
spark, конечно, можно! На VBA затрудняюсь привести код, там событие открытия документа приложением сложно отловить, поэтому решение будет на C#. Если Visual Studio у вас нет, могу прислать исходники полностью, а здесь покажу саму суть.
Подготовка:
Теперь, подключив эту надстройку к Экселю (для этого автоматически создаётся установщик), мы сможем проверять, какая книга поступила на открытие. Небольшой минус - необходимо установить её на каждый компьютер. Впрочем, если у вас правильно настроен домен, проблем возникнуть не должно.
Подготовка:
- Создать общую надстройку;
- Выбрать Excel на вкладке "Приложения" мастера создания надстройки;
- Добавить ссылки на сборки Microsoft.Office.Interop.Excel, System.Windows.Forms;
- Поместить такой код в обработчик Connect:
Код: Выделить всё
using XL = Microsoft.Office.Interop.Excel; using System.Windows.Forms; using System.IO; public Connect() { XL.Application app = new XL.Application(); app.WorkbookOpen += new XL.AppEvents_WorkbookOpenEventHandler(app_WorkbookOpen); }
Код: Выделить всё
void app_WorkbookOpen(XL.Workbook Wb)
{
if (Wb.FileFormat == XL.XlFileFormat.xlSYLK)
{
StreamReader sr = new StreamReader(Wb.FullName);
string header = sr.ReadLine();
sr.Close();
if (header.Contains("SLKMEGATOOL"))
{
MessageBox.Show("Открыта нужная книга!");
XL.Worksheet activeSheet = Wb.ActiveSheet;
activeSheet.PageSetup.LeftMargin = Wb.Application.InchesToPoints(0.25);
activeSheet.PageSetup.RightMargin = Wb.Application.InchesToPoints(0.25);
activeSheet.PageSetup.TopMargin = Wb.Application.InchesToPoints(0.75);
activeSheet.PageSetup.BottomMargin = Wb.Application.InchesToPoints(0.75);
activeSheet.PageSetup.HeaderMargin = Wb.Application.InchesToPoints(0.3);
activeSheet.PageSetup.FooterMargin = Wb.Application.InchesToPoints(0.3);
}
}
}
Испытываю траблы с даблами
ВИП — Велосипедо-Изобретательская Парадигма
САППОРТ — Сборище Абсолютно Пустых Посредственно Образованных Ржущих Троллей
ВИП — Велосипедо-Изобретательская Парадигма
САППОРТ — Сборище Абсолютно Пустых Посредственно Образованных Ржущих Троллей