|
|
|
Рисуем блок схемы из1С в екселе | ☑ | ||
|---|---|---|---|---|
|
0
skunk
12.10.05
✎
17:28
|
//*******************************************
procedure btDraw() // сперва пробуем поймать сервер екселевский... // вдруг на машинке он нету офиса ))) try Excel = createobject("Excel.Application"); except // неполучилось... шлем нах... message("Нет возможности подключиться к Excel!"); Excel = 0; endtry; if Excel <> 0 then // while all good. // для ушустрение работы сделаем следующие: // спрячем Excel. Excel.Visible = 0; // отучаем реагировать на события. Excel.EnableEvents = 0; // отучаем перерисовывать экран. Excel.ScreenUpdating = 0; // добавим новую книгу Book = Excel.Workbooks.Add(); // возьмем первый лист из новой книги Sheet = Book.Sheets.Item(1); // рисуем первый блок... Rectangle = Sheet.Shapes.AddShape(2, 10, 10, 150, 70); // добавим в него коммент... Rectangle.TextFrame.Characters().Text = "User Guide" + chr(10) + "использование моющего средства для ухода за волосяным покровом головы."; // выставим позиционирование... Rectangle.TextFrame.HorizontalAlignment = 2; Rectangle.TextFrame.VerticalAlignment = 2; // рисуем следующий блок... шаг 1 Rectangle = Sheet.Shapes.AddShape(1, 30, 100, 110, 40); Rectangle.TextFrame.Characters().Text = "шаг 1" + chr(10) + "намочить голову теплой водой."; Rectangle.TextFrame.HorizontalAlignment = 2; Rectangle.TextFrame.VerticalAlignment = 2; // сделаем жирным "шаг 1" Rectangle.TextFrame.Characters(1, 5).Font.FontStyle = "полужирный"; // нарисуем стрелку к блоку "шаг 2"; Arrow = Sheet.Shapes.AddLine(85, 140, 85, 160); Arrow.Line.EndArrowheadStyle = 2; // рисуем блок... шаг 2 Rectangle = Sheet.Shapes.AddShape(1, 30, 160, 110, 50); Rectangle.TextFrame.Characters().Text = "шаг 2" + chr(10) + "нанести моющее средство на волосяной покров головы."; Rectangle.TextFrame.HorizontalAlignment = 2; Rectangle.TextFrame.VerticalAlignment = 2; Rectangle.TextFrame.Characters(1, 5).Font.FontStyle = "полужирный"; // а далее по аналогии... стрелка ... блок... до шага 4 Arrow = Sheet.Shapes.AddLine(85, 210, 85, 230); Arrow.Line.EndArrowheadStyle = 2; Rectangle = Sheet.Shapes.AddShape(1, 30, 230, 110, 65); Rectangle.TextFrame.Characters().Text = "шаг 3" + chr(10) + "тщательно втерать моющее средство в волосяной покров до образования пены."; Rectangle.TextFrame.HorizontalAlignment = 2; Rectangle.TextFrame.VerticalAlignment = 2; Rectangle.TextFrame.Characters(1, 5).Font.FontStyle = "полужирный"; Arrow = Sheet.Shapes.AddLine(85, 295, 85, 315); Arrow.Line.EndArrowheadStyle = 2; Rectangle = Sheet.Shapes.AddShape(1, 30, 315, 110, 30); Rectangle.TextFrame.Characters().Text = "шаг 4" + chr(10) + "смыть пену с головы."; Rectangle.TextFrame.HorizontalAlignment = 2; Rectangle.TextFrame.VerticalAlignment = 2; Rectangle.TextFrame.Characters(1, 5).Font.FontStyle = "полужирный"; Arrow = Sheet.Shapes.AddLine(85, 345, 85, 370); Arrow.Line.EndArrowheadStyle = 2; // нарисуем проверку... черт не поню как правильно она зазывается... Rectangle = Sheet.Shapes.AddShape(4, 30, 370, 110, 80); Rectangle.TextFrame.Characters().Text = "проверить" + chr(10) + "чистая голова?"; Rectangle.TextFrame.HorizontalAlignment = 2; Rectangle.TextFrame.VerticalAlignment = 2; // теперь три линии если голова грязная... // тобишь нет ... и вовзрат ко второму шагу... // у первых двух... нам нах ничего менять... поэтому рисуем просто Sheet.Shapes.AddLine(140, 410, 190, 410); Sheet.Shapes.AddLine(190, 410, 190, 185); // у последней надо будеть нарисовать стрелку... Arrow = Sheet.Shapes.AddLine(190, 185, 140, 185); Arrow.Line.EndArrowheadStyle = 2; // добавим метку "Нет"... Label = Sheet.Shapes.AddLabel(1, 155, 395, 0, 0); Label.TextFrame.Characters().Text = "Нет"; // теперь стрелка для "Да"... Arrow = Sheet.Shapes.AddLine(85, 450, 85, 480); Arrow.Line.EndArrowheadStyle = 2; Label = Sheet.Shapes.AddLabel(1, 90, 455, 0, 0); Label.TextFrame.Characters().Text = "Да"; // закочим мытье головы ;) Rectangle = Sheet.Shapes.AddShape(1, 30, 480, 110, 30); Rectangle.TextFrame.Characters().Text = "закочим мытье головы ;)"; Rectangle.TextFrame.HorizontalAlignment = 2; Rectangle.TextFrame.VerticalAlignment = 2; // разрешаем экселю перерисовывает экран. Excel.ScreenUpdating = 1; // пусть опять начинает реагировать на события... Excel.EnableEvents = 1; // кажем что навояли... Excel.Visible = 1; endif; endprocedure //btDraw |
|||
|
1
skunk
12.10.05
✎
17:29
|
а по английский то понимает... то нет... странно
|
|||
|
2
Alexor
12.10.05
✎
18:35
|
Удивительно, но работает. :).
Может пригодиться. |
|||
|
3
Ковычки
12.10.05
✎
20:59
|
(0) Заразилси... ;)
|
|||
|
4
Guk
12.10.05
✎
21:01
|
(0) А что это было? Для несведущих?...
|
|||
|
5
goodfella
12.10.05
✎
21:01
|
Круто, блин.
|
|||
|
6
Ковычки
12.10.05
✎
21:04
|
Везет народу, даже коменты пишут, я вот сам у себя незнаю где и какая переменная, и когда и гле какой скрипт сохранил...
|
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |