1

Тема: Экспорт в Эксель Справочники - Таблицы - Торговое нормирование

Как выгрузить в эксель всю базу с привязками???

если открываю просто таблицу значений и делаю такое :

Sub FormMacro_ExcelReport(TCSActiveModule)             'Excel report
Set xlApp = CreateObject("Excel.Application") 
xlApp.Visible = True
Set xlBook = xlApp.Workbooks.Add
Set xlSheet = xlBook.Worksheets(1)  

Dim Row 
Row = 1
While Not TCSActiveModule.Eof 

    xlSheet.Cells(Row, 1).Value = TCSActiveModule.Properties(2).DisplayText   
    xlSheet.Cells(Row, 2).Value = TCSActiveModule.Properties(3).DisplayText
    xlSheet.Cells(Row, 3).Value = TCSActiveModule.Properties(7).DisplayText  
    xlSheet.Cells(Row, 4).Value = TCSActiveModule.Properties(10).DisplayText
    Row = Row + 1   
    TCSActiveModule.Next

Wend



:End Sub

почемуто ругаеться на отсутствие Properties у текущего активного модуля о_О

Re: Экспорт в Эксель Справочники - Таблицы - Торговое нормирование

С какой формы запускаете макрос? Я бы лучше рекомендовал конечно использовать имена свойств чем их индексы, читабельней и надежней мне думается.

3

Re: Экспорт в Эксель Справочники - Таблицы - Торговое нормирование

Олег Зырянов пишет:

С какой формы запускаете макрос? Я бы лучше рекомендовал конечно использовать имена свойств чем их индексы, читабельней и надежней мне думается.

видиш я пока хз как оно тут все работает 3й день с ней работаю... подскажи если есть как) макрос пускаю :
справочники - таблицы - трудоое нормирование кликаем на Штангель циркул в правом верхнем углу есть надпись "таблица значений" открываю ее и там пытаюсь исполнить макрос

Re: Экспорт в Эксель Справочники - Таблицы - Торговое нормирование

м да. Довольно откровенно.

Вообще было бы неплохо все таки понять что вы хотите сделать.

Вот пример экспортирует любой грид с которого запускается в Excel

Sub FormMacro_ExcelReport(TCSActiveModule)             'Excel report
Set xlApp = CreateObject("Excel.Application")
xlApp.Visible = True
Set xlBook = xlApp.Workbooks.Add
Set xlSheet = xlBook.Worksheets(1) 

Dim Row
Row = 1              
Call TCSActiveModule.BeginUpdate

On Error Resume Next     
Call TCSActiveModule.First
For i=0 To TCSActiveModule.PropertiesCount-1
    If TCSActiveModule.Properties(i).IsSimpleType Then  xlSheet.Cells(Row, i).Value = TCSActiveModule.Properties(i).Caption  
Next 

Row = Row + 1           

While Not TCSActiveModule.Eof

   For i=0 To TCSActiveModule.PropertiesCount-1
       If TCSActiveModule.Properties(i).IsSimpleType Then  xlSheet.Cells(Row, i).Value = TCSActiveModule.Properties(i).DisplayText   
   Next           
     

   Row = Row + 1   
   Call TCSActiveModule.Next

Wend                            
Call TCSActiveModule.EndUpdate
On Error Goto 0 
Call TCSApp.ShowMessageBox( "", "Экпорт закончен" )
End Sub

Re: Экспорт в Эксель Справочники - Таблицы - Торговое нормирование

Конкрентно для таблиц нормирования есть специальные интерфейсы ITCSNormTables, ITCSNormTables2

6

Re: Экспорт в Эксель Справочники - Таблицы - Торговое нормирование

Вот Дело какраз в том что на TCSActiveModule.Properties(2). он и ругаеться в просто спецификациях отчет выводиться нормально, а тут вылазит ошибка

Re: Экспорт в Эксель Справочники - Таблицы - Торговое нормирование

К таблицам значений таким образом обратиться нельзя, надо через специальные интерфейсы

Re: Экспорт в Эксель Справочники - Таблицы - Торговое нормирование

С таблицами пример работе в хелпе есть ITCSNormTables

9 (изменено: Mimik, 12-02-2010 15:14:56)

Re: Экспорт в Эксель Справочники - Таблицы - Торговое нормирование

Кроме матов нет слов... вот какого фига эта гадость орет на не соответствие типов
   

 Dim NormSettingTables
    Dim TableValues
    Dim cn    
     Set NormSettingTables = TCSApp.GetNormSettingTables
     TableValues = NormSettingTables.GetRangeValues
     cn = TableValues(1,1)

СИе исполняю открыв таблицу значений самостоятельно

Re: Экспорт в Эксель Справочники - Таблицы - Торговое нормирование

ну так мат часть для начала надо учить.  С бухты барахты ничего не получится, примеров у нас достаточно много.

У объекта NormSettingTables нет метода GetRangeValues, хотя может это другая или еще одна ошибка.   Берите наши примеры и изучайте по шагам, а чтобы так обращаться TableValues(1,1) скорей всего нужен тип массив, а он не объявлен массивом и видимо это не нравится VBScript.

Re: Экспорт в Эксель Справочники - Таблицы - Торговое нормирование

If NormSettingTables.RunModuleForSelect("Select_norm", False) Then 'без этого не работает

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

все описание в файле помощи, по свойствам полезно посмотреть TCS API Explorer

так например работа начинается от TCSApp реализующего по умолчанию такие интерфейсы как IOcs_Application ( и далее все по номерам), ITcs_Application

вот например  тот самый ITCS_Application2.GetNormSettingTables  который возвращает указатель на интерфейс ITCSNormTables, а вот у него уже есть метод ITCSNormTables.GetRangeValues

Собственно все в конечном итоге и сводится к пониманию модели АПИ TechnologiCS (описана в TCSAPIHelp.chm ) - к счастью она повторяет TechnologiCS ун и пользованию TCS APi Explorer для получения детальной информации о конкретном модуле.

12

Re: Экспорт в Эксель Справочники - Таблицы - Торговое нормирование

Всем Спасибо, все решил, все разобрал, кому надо пишите выложу свои обработки smile