как внедрить на форму документ Excel не через станд. OLE?

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Antov
Обычный пользователь
Обычный пользователь
 
Сообщения: 54
Зарегистрирован: 21.01.2007 (Вс) 6:24

как внедрить на форму документ Excel не через станд. OLE?

Сообщение Antov » 03.05.2007 (Чт) 11:26

Подскажите, пожалуйста, как можно внедрить на форму документ XLS? причём так, чтобы работали все его события, но чтобы нельзя было его открыть в обычном Excel'e и редактировать?
Я в VB6 не работал. Работал с VBA.
Попытался через OLE - во-первых не получается толком открыть в нём xls файл, а во-вторых - при двойном клике xls файл открывается в самом Excel'е :(

Спасибо.
Всё что не убивает нас - делает нас сильнее.
(С) Ницше

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 03.05.2007 (Чт) 12:05

А ты читал лицензионное соглашение MSOffice?
Lasciate ogni speranza, voi ch'entrate.

Antov
Обычный пользователь
Обычный пользователь
 
Сообщения: 54
Зарегистрирован: 21.01.2007 (Вс) 6:24

Сообщение Antov » 03.05.2007 (Чт) 12:09

alibek писал(а):А ты читал лицензионное соглашение MSOffice?


Нууу... :)

А если не секрет, о чём там речь, применимо к данному вопросу?
Всё что не убивает нас - делает нас сильнее.
(С) Ницше

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 03.05.2007 (Чт) 12:28

О том, что ты не можешь маскировать Excel под свое приложение.
Lasciate ogni speranza, voi ch'entrate.

Antov
Обычный пользователь
Обычный пользователь
 
Сообщения: 54
Зарегистрирован: 21.01.2007 (Вс) 6:24

Сообщение Antov » 03.05.2007 (Чт) 12:33

alibek писал(а):О том, что ты не можешь маскировать Excel под свое приложение.


Спасибо :)
В принципе - это очень даже логично :)

а VB существует полный аналог Excel'евских таблиц?
Всё что не убивает нас - делает нас сильнее.
(С) Ницше

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 03.05.2007 (Чт) 12:37

Разумеется, нет.
Но есть ActiveX Microsoft Office Web Components, который довольно похож и (теоретически) способен работать без установленного офиса.
Lasciate ogni speranza, voi ch'entrate.

VVitafresh
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1641
Зарегистрирован: 12.05.2005 (Чт) 14:44
Откуда: Херсон, UA

Сообщение VVitafresh » 03.05.2007 (Чт) 12:39

Полный аналог -- это вряд ли...
А вот другие гриды существуют (в немалом количестве).
Никакую проблему невозможно решить на том же уровне, на каком она возникла. Нужно стать выше этой проблемы, поднявшись на следующий уровень.

Antov
Обычный пользователь
Обычный пользователь
 
Сообщения: 54
Зарегистрирован: 21.01.2007 (Вс) 6:24

Сообщение Antov » 03.05.2007 (Чт) 12:46

Просто в данный момент в моей программе на VBA очень активно используется АВТОФОРМАТИРОВАНИЕ - и то ком подвисает немножко, т.к. очень большой объём данных выводится на экран.
Боюсь если использовать грид и динамически прописывать ему цвет текста и бакграунда - машина умрёт...
т.к. периодически используется до 1млн ячеек...
Всё что не убивает нас - делает нас сильнее.
(С) Ницше

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 03.05.2007 (Чт) 12:52

Antov, миллион ячеек для выдачи информации пользователю?
Это необозримое множество, и от него наверняка можно избавиться.

Antov
Обычный пользователь
Обычный пользователь
 
Сообщения: 54
Зарегистрирован: 21.01.2007 (Вс) 6:24

Сообщение Antov » 03.05.2007 (Чт) 13:06

да я бы рад...
Производственный план на 80 сотрудников 70 Производственных Центров на 2 месяца, с 15 минутной детализацией... :(
Всё что не убивает нас - делает нас сильнее.
(С) Ницше

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 03.05.2007 (Чт) 13:29

Antov, так дело не в том, что у тебя получается куча ячеек после умножения числа сотрудников на число центров и так далеее, а в том, что единомоментно пользователь миллион ячеек заведомо не сумеет увидеть. Надо подгружать данные по мере необходимости в них. И оперативная память спасибо скажет
Весь мир матрица, а мы в нем потоки байтов!

Antov
Обычный пользователь
Обычный пользователь
 
Сообщения: 54
Зарегистрирован: 21.01.2007 (Вс) 6:24

Сообщение Antov » 03.05.2007 (Чт) 13:37

я это понимаю...
Лана, буду бодаться - уменьшать показываемое количество :)

Тогда каким стандартным гридом VB6 порекомендуете воспользоваться ?
Спасибо.
Всё что не убивает нас - делает нас сильнее.
(С) Ницше

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 03.05.2007 (Чт) 13:40

Для раскраски выбор невелик и состоит из FlexGrid.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 03.05.2007 (Чт) 13:49

Antov, верно, бодайся :)
Сделай удобные и легко доступные фильтры (по сотрудникам, по производственным фильтрам, их комбинации и т.п.)

Выводить и раскрашивать в FlexGrid даже порядка десятка тысяч ячеек и более - будет очень медленно.

Antov
Обычный пользователь
Обычный пользователь
 
Сообщения: 54
Зарегистрирован: 21.01.2007 (Вс) 6:24

Сообщение Antov » 03.05.2007 (Чт) 13:50

GSerg писал(а):Для раскраски выбор невелик и состоит из FlexGrid.


Спасибо! :)

(буду голову ломать - может и не стоит из VBA 30.000 строк переносить)
Всё что не убивает нас - делает нас сильнее.
(С) Ницше

Antov
Обычный пользователь
Обычный пользователь
 
Сообщения: 54
Зарегистрирован: 21.01.2007 (Вс) 6:24

Сообщение Antov » 03.05.2007 (Чт) 15:06

Amed писал(а):Antov, верно, бодайся :)
Сделай удобные и легко доступные фильтры (по сотрудникам, по производственным фильтрам, их комбинации и т.п.)


Это Сделано :)
Всё что не убивает нас - делает нас сильнее.
(С) Ницше

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 03.05.2007 (Чт) 16:20

Но после фильтров остается порой миллион ячеек. А оставаться не должно :)

Antov
Обычный пользователь
Обычный пользователь
 
Сообщения: 54
Зарегистрирован: 21.01.2007 (Вс) 6:24

Сообщение Antov » 04.05.2007 (Пт) 11:05

НЕ - Не остаяётся, это максимально возможное колво ячеек. Так то всё зависит от того какой диапазаон выберет Юзер.
Я просто беспокоюсь о том, что если пользователи решат отобразить максимум возможного - комп умрёт :)
Всё что не убивает нас - делает нас сильнее.
(С) Ницше

kibernetics
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 945
Зарегистрирован: 03.05.2006 (Ср) 13:31
Откуда: Minsk

Сообщение kibernetics » 04.05.2007 (Пт) 11:14

Antov
ну так можно же не разрешать вывод сверхнереального...
а к теме гридов, цветастный есть еще SGrid 2.0, нестандартный, но бесплатный

Antov
Обычный пользователь
Обычный пользователь
 
Сообщения: 54
Зарегистрирован: 21.01.2007 (Вс) 6:24

Сообщение Antov » 04.05.2007 (Пт) 11:28

Спасибо :)
Всё что не убивает нас - делает нас сильнее.
(С) Ницше

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 04.05.2007 (Пт) 13:55

Amed писал(а):Выводить и раскрашивать в FlexGrid даже порядка десятка тысяч ячеек и более - будет очень медленно.


Вообще-то нормальный коммерческий Grid (это который за денежку) расскрашивает только ячейки выводимые в данный момент на экран. Понятно что FlexGrid идущий в комплекте с VB примитивен и к нормальным не относится - так, поиграться для пробы и для мазохистов...

Ну и кол-во записей, конечно, надо ограничивать по разумному.
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Сообщение Денис » 07.05.2007 (Пн) 23:34

Antov писал(а):да я бы рад...
Производственный план на 80 сотрудников 70 Производственных Центров на 2 месяца, с 15 минутной детализацией... :(


Такие вещи обычно делают в БД. При минимальных усилиях можно перевести в Access. Но лучше всего (хотя более трудоемко) сделать набор таблиц СУБД (db, dbf, даже Excel) и организовать доступ к ним через ADO или DAO (старенький формат Access), организовать доступ из проекта vb. Но, это тема отдельного топика.
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 08.05.2007 (Вт) 7:58

VB_D3D_Денис писал(а):Такие вещи обычно делают в БД. При минимальных усилиях можно перевести в Access. Но лучше всего (хотя более трудоемко) сделать набор таблиц СУБД (db, dbf, даже Excel) и организовать доступ к ним через ADO или DAO (старенький формат Access), организовать доступ из проекта vb. Но, это тема отдельного топика.

На дачу обычно ездят на машине. Но при желании можно поехать и на жигулях. Но лучше всего (хотя и сложнее) накачать колеса и поставить электрические стеклоподъемники. Но это тема отдельного топика.
Lasciate ogni speranza, voi ch'entrate.

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Сообщение Денис » 14.05.2007 (Пн) 23:06

alibek
Я, конечно, ламер, но в моих масштабах это не дача, а соседний город.
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 15.05.2007 (Вт) 7:15

Мдя...
Lasciate ogni speranza, voi ch'entrate.

Antov
Обычный пользователь
Обычный пользователь
 
Сообщения: 54
Зарегистрирован: 21.01.2007 (Вс) 6:24

Сообщение Antov » 16.05.2007 (Ср) 9:55

VB_D3D_Денис писал(а):
Такие вещи обычно делают в БД. При минимальных усилиях можно перевести в Access. Но лучше всего (хотя более трудоемко) сделать набор таблиц СУБД (db, dbf, даже Excel) и организовать доступ к ним через ADO или DAO (старенький формат Access), организовать доступ из проекта vb. Но, это тема отдельного топика.


Дак так всё и сделано, просто формируемый отчёт из БД таким большим может получится (по просьбам юзверов)....
Всё что не убивает нас - делает нас сильнее.
(С) Ницше

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Сообщение Денис » 23.05.2007 (Ср) 11:00

Antov писал(а):
VB_D3D_Денис писал(а):
Такие вещи обычно делают в БД. При минимальных усилиях можно перевести в Access. Но лучше всего (хотя более трудоемко) сделать набор таблиц СУБД (db, dbf, даже Excel) и организовать доступ к ним через ADO или DAO (старенький формат Access), организовать доступ из проекта vb. Но, это тема отдельного топика.


Дак так всё и сделано, просто формируемый отчёт из БД таким большим может получится (по просьбам юзверов)....


Так в том то и дело, что в акцессе ты любой отчет без проблем сделаешь, хоть портянку, хоть простыню
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2

    TopList