Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Печать TreeView. Просьба потестировать.
 
 автор: osmor   (26.03.2007 в 16:18)   личное сообщение
11 Кб.
 
 

Тут типа под заказ написал DLL экспорт объекта TreeView в Excel.
Просьба (кому интересно) потестировать. И высказать свое мнение, и пожелания
Пока есть 1 свойство и 2 метода
свойство FirstRow - строка с которой на листе Excel будет расположены корневые категории (по умолчанию 1)
Методы:
SetLevel - устанавливает параметры шрифта для уровня
.SetLevel (Номер уровня, Размер шрифта, Код цвета для Шрифта, Жирный, Наклонный)
например так


pr.SetLevel 5, 15, 8, True, True

Для пятого уровня выставляем шрифт размером 15, цвет красный, Жирный, наклонный.
можно не использовать по умолчанию шрифт 10, черный, простой

Метод PrintTree - собственно вывод в Excel в качестве параметра нужно указать Treeview например

pr.PrintTree Me.TreeVWGroup



Пример вызова:


Dim pr As clsPrintTree 
Set pr = New clsPrintTree

pr.SetLevel 1, 12, 3, True  ' выставляем шрифт для перовго уровня, остальные по умолчанию
pr.FirstRow = 10 ' в Excel расположить с 10-й строки
pr.PrintTree Me.TreeVWGroup ' собственно печать контрола  TreeVWGroup


Для Новичков:
Естественно DLL предварительно нужно регистрить ( c:\WINDOWS\system32\regsvr32.exe TreeView2Excel.dll) и устаноить из ACCESS ссылку на 'Export TreeView control to Ms Excel"

ВАЖНО:
Пока не понятно с правами ... заказчик вроде хочет делать какой-то платный набор тулзов... в общем в этой версии названия веток обрезаются до 5 символов. А то вдруг платить откажутся

  Ответить  
 
 автор: ГлазастыйМышь   (26.03.2007 в 17:09)   личное сообщение
 
 

Работает Access2002 Excell тоже

для дальнейшего расширения:
1. Возможность задать шапку описания
2. Возможность оставить цвета самого дерева
3. Обратотка динамически создаваемы деревьев (ну у меня сделано добавлением фиктивного узла "ЖДИТЕ", при раскрытии он удаляется, а при распечатке есть нераскрытые узлы)

  Ответить  
 
 автор: osmor   (26.03.2007 в 17:14)   личное сообщение
 
 

Спасибо.
1. С шапкой подумаю, надо переварить.
2. Что значит "цвета самого дерева", всмысле считать из контрола?
3. Это вряд-ли... для этого нужно будет получать источник данных этой ветки... в общем универсальность пропадает.

Да еще... вот думаю может сделать возможность отключать создание структуры в Excel...
(Excel поддерживает только 8 уровней группировки)

  Ответить  
 
 автор: ГлазастыйМышь   (27.03.2007 в 08:33)   личное сообщение
 
 

1. Да простую шапку задать: "Вывод информации по структуре договоров"
2. У меня ветки дерева уже раскрашены, такую раскраску мне и надо оставить.
3. Да не нужно источник перелопачивать. Просто допустим раскрыты узлы до 3 уровня, но чтоб показать что дальше еще что-то есть добавляются "фальш" подъузлы. Вот их то и не надо выводить. Т.е. возможность задать алгоритм выбора фальш узлов.

  Ответить  
 
 автор: osmor   (27.03.2007 в 08:36)   личное сообщение
 
 

ну как альтернативу могу задать уровень печати типа до 3-го уровня.... или может лучше "с" - "по"?
И еще .. типа у тебя что каздый уровень раскрашен? или для dctuj 3view задан шрифт?
А как ты ветки красишь?

  Ответить  
 
 автор: ГлазастыйМышь   (27.03.2007 в 08:51)   личное сообщение
 
 

не пойдет, т.к. в одной ветке можно остановится на 3 уровне, а в другой на 5 и т.д.

Хотя мож это только я так дерево строю кусками по запросу Но как по другому вывести 300 000 веток я не очень представляю (вернее представляю, но по времени это не устраивает )

  Ответить  
 
 автор: osmor   (27.03.2007 в 09:07)   личное сообщение
 
 

Ну не только ты...
Ну можно еще попытаться добавить фильтр для имен веток ... "Not Like "*Ждите*"
Но тут встают некоторые вопросы... вот отфильтровался узел... видимо НЕ нужно выводить и все дочерние.... В общем надо покрутить в голове... так как ты уровни красишь? что-то я не нашел стандартных свойств...

  Ответить  
 
 автор: ГлазастыйМышь   (27.03.2007 в 10:11)   личное сообщение
 
 


Private Sub butObjColor_Click()
' задать цвет объекта
Dim SqlStr As String
Dim lColor As Long
    On Error GoTo Err_Debug
    
    Me.butObjColor.SpecialEffect = 2
    
      lColor = ShowColorDialog(Me.hWnd, True, IIf(TvObject.LastNode.ForeColor > 0, 0, 255))
    
    If lColor = -1 Then
        GoTo Exit_Here
    End If
    
    TvObject.LastNode.ForeColor = lColor
        SqlStr = "UPDATE STRATEGY.OPER_OBJECT_TREEVIEW "
        SqlStr = SqlStr + " SET OBJ_COLOR = " & lColor
        SqlStr = SqlStr + " WHERE (ID_OBJECT = '" & TvObject.LastNodeKey & "')"
            Result = AdoServerRecordset(varText:=SqlStr, varConnect:=modConnect).Execute
Exit_Here:
    Me.butObjColor.SpecialEffect = 1
    Exit Sub
Err_Debug:
    MsgBox Err.Description
    Resume Exit_Here
End Sub


TvObject.LastNode - это свойство класса-обертки дерева которое выдает последний выбранный узел

  Ответить  
 
 автор: osmor   (27.03.2007 в 10:24)   личное сообщение
 
 

ага. Спасибо. Я уще нашел, это свойство конкретной ноды... а я прочему-то уперся в уровни и искал в свойсвах 3view. Подумаю

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList