Формирование отчета в Acess в виде таблице. - Страница 4
| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Формирование отчета в Acess в виде таблице.

Формирование отчета в Acess в виде таблице.

Ответ
Поиск в этой теме
Непрочитано 04.02.2005, 17:14
Формирование отчета в Acess в виде таблице.
Mikhail
 
инженер-технолог (ГИП)
 
Санкт-Петербург
Регистрация: 11.09.2003
Сообщений: 1,148

Добрый день.
Такая проблемма.
Из Автокада делаю выборку аттрибутов в Эксель (в Acess почему то не хочет, глючно что то или Офис или Кад), потом импортирую их в Acess. Там запрос и по запросу пытаюсь создать отчет в виде спецификации, т.е. табличный и с колонтитулами.
Таблицу получилось сделать когда каждой ячейки с данными присвоил значение ТИПА ГРАНИЦЫ- СПЛОШНАЯ, тогда эти ячейки обводились и получалась таблица. Но если данные не влезают в одну строчку, то получается ерунда типа того, что или весь текст не влезает в ячейку или если перенос включить (РАСШИРЕНИЕ - ДА), то тогда некорректно изображаются остальные ячейки этой строки. Они не увеличиваются в размере и обводятся по узкому контуру, что не очень красиво.(картинка)
[ATTACH]1107526600.jpg[/ATTACH]
__________________
Большая беда науки в том, что при восхитительной теории можно получить отвратительные результаты.
Просмотров: 18613
 
Непрочитано 21.02.2005, 14:36
#61
vk

сисадмин
 
Регистрация: 26.08.2003
Самара
Сообщений: 1,022
<phrase 1=


Цитата:
Я так думаю когда имя аттрибута пишется в проге, то там что то не так и программа считывает не только эти локи, но и все примитивы...
А поставить после выбора точку останова (брекпойнт) и посмотреть что в наборчик попадает....? :wink:
vk вне форума  
 
Автор темы   Непрочитано 21.02.2005, 17:41
#62
Mikhail

инженер-технолог (ГИП)
 
Регистрация: 11.09.2003
Санкт-Петербург
Сообщений: 1,148


Цитата:
Сообщение от vk
А поставить после выбора точку останова (брекпойнт) и посмотреть что в наборчик попадает....? :wink:
Это слишком умно для меня, но что то сделать я умудрился. Поименно назвать все не могу, но количество полное, т.е. количество примитивов (select all) равно COUNTу выборки.
[ATTACH]1108996915.jpg[/ATTACH]
__________________
Большая беда науки в том, что при восхитительной теории можно получить отвратительные результаты.
Mikhail вне форума  
 
Непрочитано 21.02.2005, 22:37
#63
vk

сисадмин
 
Регистрация: 26.08.2003
Самара
Сообщений: 1,022
<phrase 1=


Ууупс!!!
оно что, проигнорировало dataValue(0) = "Insert", которое предписывало выбирать тока вставки блоков? или в чертеже больше нет ничего (во что верю с трудом)?

Попробуй сразу после выбора что то вроде этого чтоб хотя бы узнать имена примитивов и наличие атрибутов. Вывод в Immediate Window

Код:
[Выделить все]
For Each i In ssetObj
  Debug.Print i.Name & " " & i.HasAttributes
Next
А лучше перед этим типы примитивов определить, а то просто вылетит по ошибке.
Код:
[Выделить все]
For Each i In ssetObj
  Debug.Print i.ObjectName
Next
* чтоб проигнорировать вылет по ошибке, надо добавить строку
Код:
[Выделить все]
On Error Resume Next
однако, это не всегда гуд. В любом случае, проге требуется обработчик ошибок, которого на данном этапе нет.

ну и еще много чего можно посмотреть... подробности в хелпе какие свойства/методы доступны

Впрочем, можно по шагам посмотреть что в i содержится (в Watch Window), только утомительно для двух тысяч примитивов.

Гм, понаписал-то... В итоге: похоже на ошибку в определении фильтра для выбора.
vk вне форума  
 
Автор темы   Непрочитано 22.02.2005, 09:38
#64
Mikhail

инженер-технолог (ГИП)
 
Регистрация: 11.09.2003
Санкт-Петербург
Сообщений: 1,148


Ну в принципе как и говорил он(мерзкий компутер ) выбирает все. Что документально и подтверждаю.
А что это за groupCode ? Это код команды, для обозначения типа данных?
А, что еще значит <OR?
[ATTACH]1109054314.jpg[/ATTACH]
__________________
Большая беда науки в том, что при восхитительной теории можно получить отвратительные результаты.
Mikhail вне форума  
 
Автор темы   Непрочитано 22.02.2005, 14:34
#65
Mikhail

инженер-технолог (ГИП)
 
Регистрация: 11.09.2003
Санкт-Петербург
Сообщений: 1,148


И еще вопросик. а что в этой строчке
Код:
[Выделить все]
ssetObj.Select acSelectionSetAll, groupCode, dataCode
acSelectionSetAll.... = 5? если честно не знаю , что это такое... иожет поясните?
__________________
Большая беда науки в том, что при восхитительной теории можно получить отвратительные результаты.
Mikhail вне форума  
 
Непрочитано 22.02.2005, 19:41
#66
vk

сисадмин
 
Регистрация: 26.08.2003
Самара
Сообщений: 1,022
<phrase 1=


Цитата:
acSelectionSetAll.... = 5? если честно не знаю , что это такое...
acSelectionSetAll - имя константы
5 - значение константы

Цитата:
А что это за groupCode
это DXF группа (номер группы)

Цитата:
А, что еще значит <OR?
еще раз: OR - это ИЛИ по аглицки....
русское "блок1" ИЛИ "блок2" ИЛИ "блок17"
преобразовывается в "<OR" "блок1" "блок2" "блок17" "OR>"
с соответствующим раскладом по элементам массива

В Лиспе прокатывает такой сокращенный вариант "блок1,блок2,блок17" без OR
Попробуй, может и в VBA сработает
vk вне форума  
 
Непрочитано 22.02.2005, 23:52
#67
cadhelp

autocad
 
Регистрация: 16.12.2004
Сообщений: 5


В акаде есть ехпорт атрибутов, но он очень нудный и не всегда работает как надо.
Могу предложить свою прогу по ехпорту атрибутов в техт file или в автокад(в табличном виде). Затем техт файл мжно импортировать в любую базу (мне приходится работать практически со всемы широко используемыми)

http://dwg.ru/dwl/151
cadhelp вне форума  
 
Непрочитано 23.02.2005, 12:47
#68
Alan

CAD
 
Регистрация: 28.08.2003
Киев
Сообщений: 1,834
<phrase 1=


>>Mikhail Ваш вопрос решается вполне активно с точки зрения создания новой программы. Но Вы так уж поставили задачу. М.б. прислать кусочек технологического чертежа (медицинское оборудование, но можно станки и т.п.) с полученной по нему готовой спецификацией, а не списка блоков с атрибутами? Пишите.
Alan вне форума  
 
Автор темы   Непрочитано 24.02.2005, 11:15
#69
Mikhail

инженер-технолог (ГИП)
 
Регистрация: 11.09.2003
Санкт-Петербург
Сообщений: 1,148


>cadhelp
Спасибо. Но чем меньше ходов, тем лучше, поэтому и хочется сразу в базу данных посылать данные. А то мало ли что... Конечно это глупая причина, но как правило такое чаще всего и случается

>Alan
Был бы рад посмтреть как это у Вас сделано. Аттрибуты программно вытаскиваете? или стандартными средствами?

>vk
Я понимаю что уже достал, но все же...
Решил все таки немного погрузится в хоть какое то изучение VBA и вот что накопал... см. картинку. Если указать точки, как и просится по стилю команды, то выделение проходит нормально. Просто не всегда знаешь ту область где находится схема. Не писать же область выделение от (-10^10, -10^10; 10^10, 10^10) (например). Или иначе не обойтись?
[ATTACH]1109232945.jpg[/ATTACH]
__________________
Большая беда науки в том, что при восхитительной теории можно получить отвратительные результаты.
Mikhail вне форума  
 
Непрочитано 24.02.2005, 17:29
#70
Alan

CAD
 
Регистрация: 28.08.2003
Киев
Сообщений: 1,834
<phrase 1=


>>Mikhail Я бы Вам выслал, но не знаю адреса. Пишите.
В процессе работы программы спецификации возможен ввод информации из чертежа. Из программы запускается Автокад, который считывает все блоки с атрибутами по заданному шаблону, типа как работает команда АТТЕХР (т.е. все болки удовлетворяюшие шаблону). Затем Вы можете добавить в проект (спецификацию) другое оборудование из базы. Прога сформирует выходные формы согласно ГОСТ.
Alan вне форума  
 
Непрочитано 24.02.2005, 17:35
#71
vk

сисадмин
 
Регистрация: 26.08.2003
Самара
Сообщений: 1,022
<phrase 1=


Млин... все проблемы от моей невнимательности
Прорустил пару запятых на опциональных параметрах (
Правильно так:
Код:
[Выделить все]
ssetObj.Select acSelectionSetAll, , , groupCode, dataCode
vk вне форума  
 
Автор темы   Непрочитано 25.02.2005, 09:33
#72
Mikhail

инженер-технолог (ГИП)
 
Регистрация: 11.09.2003
Санкт-Петербург
Сообщений: 1,148


to vk
Спасибо, все заработало, хотя сам до этого методом тыка попытался так написать, но почему то не работало.
Еще одна просьба... Помню говорили по поводу удаления таблиц... как бы это сделать? т.е. заменить это
Код:
[Выделить все]
' подбор уникального имени таблицы
    Dim rstSchema As ADODB.Recordset
    Dim suff As Integer ' счетчик, суффикс имени таблицы
    suff = 0
    Set rstSchema = conn.OpenSchema(adSchemaTables)
    Do
      suff = suff + 1 ' новый суффикс
      rstSchema.MoveFirst
      rstSchema.Find "TABLE_NAME='" & tblName & suff & "'"
    Loop Until rstSchema.EOF ' повторяем до тех пор пока не пролетаем с именем таблицы
    rstSchema.Close
    Set rstSchema = Nothing
на то чтобы просто если таблицы нет она бы создавалась, а если она есть, то она бы стиралась... пока такая мысль. Хотя есть еще идея формирование имени таблицы в зависимости от имени чертежа... но это пока идея такая.
__________________
Большая беда науки в том, что при восхитительной теории можно получить отвратительные результаты.
Mikhail вне форума  
 
Непрочитано 25.02.2005, 16:01
#73
vk

сисадмин
 
Регистрация: 26.08.2003
Самара
Сообщений: 1,022
<phrase 1=


Цитата:
Сообщение от Mikhail
Хотя есть еще идея формирование имени таблицы в зависимости от имени чертежа... но это пока идея такая.
Кажется, это лУчшая идея.

Только маленькая добавочка: имена объектов в Аксесе имеют некоторые ограничения на имена. Нельзя использовать математические знаки и не рекомендуется включать в них не латинские буквы. Чего нельзя сказать об именах допустимых Windows. Поэтому либо придется сделать парсер для поиска/замены недопустимых символов, либо пересматривать корпоративные стандарты.... Геморно?

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

Другой вариант кажется более универсальным. В дополнительной таблице каждому чертежу соответствует уникальный ID, который добавляем к записи атрибута (в самом первом варианте с одной общей таблицей). Таким образом имеем всего две таблицы: одна для имен чертежей, другая для атрибутов. Связь чертежа и атрибута через ID чертежа.
vk вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Формирование отчета в Acess в виде таблице.