Добавление поля в шаблон XLT

Программирование на Атлантисе (VIP, FCOM, ARD), FastReport

Модераторы: m0p3e, edward_K, Модераторы

Ответить
kdm
Посетитель
Сообщения: 44
Зарегистрирован: 15 дек 2005, 08:38
Откуда: Нижний Тагил

Добавление поля в шаблон XLT

Сообщение kdm »

Здравствуйте!
Подскажите, пожалуйста, существует ли возможность править поток данных и добавлять новые выборки в шаблоны XLT (как это можно делать в присоединенных формах)?
Например,нужно вывести grnal.kod(код налоговой группы МЦ) в шаблоне InvVed3.xlt (Складской учет-Операции-Инвентаризация-Инв.опись-Тип отчета-Excel).В потоке данных этого поля нет.В техподдержке ответили,что добавлять новые выборки могут только разработчики.
Den
Местный житель
Сообщения: 1842
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Ярославская область ОАО "Часовой завод Чайка" г. Углич
Контактная информация:

Re: Добавление поля в шаблон XLT

Сообщение Den »

В принципе можно, только если Вам есть за что уцепиться в полях присылаемой Галактикой в этот шаблон, используя VBA+коннекшн какой то (ADO) например - т.е. фактически Вы обратитесь напрямую к БД галактики из макроса. Кстати. я как раз это делал для InvVed3.xlt, когда нужно была довывести к позиции спецификации к партии кой какую инфу.
А если Галой - то единственный вариант перекрывать событие/процедуру вывода потока в XLT -шаблон
kdm
Посетитель
Сообщения: 44
Зарегистрирован: 15 дек 2005, 08:38
Откуда: Нижний Тагил

Re: Добавление поля в шаблон XLT

Сообщение kdm »

Спасибо за ответ.К сожалению, не имею опыта работы с прямым обращением к БД Галактики из максроса.Подскажите,пожалуйста,какими командами можно осуществить прямой коннект к БД,если можно - напишите фрагменты кода.
Den
Местный житель
Сообщения: 1842
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Ярославская область ОАО "Часовой завод Чайка" г. Углич
Контактная информация:

Re: Добавление поля в шаблон XLT

Сообщение Den »

У меня SQLServer .Для него выглядело вкратце так :

Dim MyConn As ADODB.Connection
Dim MyRecordset As ADODB.Recordset
Dim MyCommand As ADODB.Command
Dim ConnectionString As String
Dim sqlstr As String
Dim i As Integer
Dim party As String
Dim temmpst As String

Sheets("Gal_TblSheet").Select
Rown = ActiveSheet.UsedRange.Rows.Count -- прикинем кол-во строчек где данные...
.....
' Открываем АДО-Коннекш
Set MyConn = New ADODB.Connection
ConnectionString = "Provider=sqloledb;Data Source=sqlserver;Initial Catalog=baza1;User Id=user;Password=password;"
MyConn.CursorLocation = 3
MyConn.Open ConnectionString
If MyConn.State <> adStateOpen Then
MsgBox ("Не удалось установить связь с SQL-сервером по параметрам соединения")
End If

For li1 = 8 To Rown
temmpst = ActiveSheet.Cells(li1, 3)
party = Mid(LCase(temmpst), InStr(LCase(temmpst), "партия") + 8, Len(temmpst) - (InStr(LCase(temmpst), "партия") + 8))
sqlstr = "select partyprice.f$price from dbo.t$dparty dparty inner join dbo.t$partyprice partyprice on dparty.f$atl_nrec=partyprice.f$cparty and dparty.f$name='" & party & "' and partyprice.f$cpodr=0"
Set MyRecordset = MyConn.Execute(sqlstr)

If MyRecordset.EOF Then
'MsgBox "Файл не содержит записей !"
Else
' MyRecordset.MoveFirst
' MsgBox "Rec in cursor=" + Str(MyRecordset.RecordCount)
End If

Do While Not MyRecordset.EOF
'i = i + 1
'Debug.Print MyRecordset.Fields("f$price")
'MsgBox (MyRecordset.Fields("f$price"))
'Cells(i, 3).Value = MyRecordset.Fields("f$name")
ActiveSheet.Cells(li1, 7) = MyRecordset.Fields("f$price")
ActiveSheet.Cells(li1, 15) = ActiveSheet.Cells(li1, 7) * ActiveSheet.Cells(li1, 14)
ActiveSheet.Cells(li1, 17) = ActiveSheet.Cells(li1, 7) * ActiveSheet.Cells(li1, 14)
MyRecordset.MoveNext
Loop

MyRecordset.Close
....

Если у Вас другая платформа, то провайдера другого может потребуется использовать....
kdm
Посетитель
Сообщения: 44
Зарегистрирован: 15 дек 2005, 08:38
Откуда: Нижний Тагил

Re: Добавление поля в шаблон XLT

Сообщение kdm »

Спасибо за код! :smile:
У нас правда Галактика на Oracle,буду тестировать.
zna
Местный житель
Сообщения: 552
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Челябинск
Контактная информация:

Re: Добавление поля в шаблон XLT

Сообщение zna »

День добрый, коллеги!
Прошу пролить свет в тёмный для меня угол:
В ФРО имеется полезный отчётец "Отчёты - Отчёты пользователя - Справка по инвентаризации расчётов с дебиторами/кредиторами", приглянувшийся главбуху, в котором, однако есть малый изьян: в листах Excel "Справка по дебиторам" и "Справка по кредиторам" не заполняются поля "Дата начала задолженности".
В шаблоне UserRep_SpravkaDebet.xlt на листе Gal_VarSheet обнаружена переменная "ДатаНачало" типа Date. Собственно, вопрос: можно ли её использовать для упомянутого поля, и если да, то как?
Через ADO- коннекшн зацепиться, понятно, можно, но сложно сие, хотелось бы меньшим потом обойтись..
Den
Местный житель
Сообщения: 1842
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Ярославская область ОАО "Часовой завод Чайка" г. Углич
Контактная информация:

Re: Добавление поля в шаблон XLT

Сообщение Den »

zna писал(а):В шаблоне UserRep_SpravkaDebet.xlt на листе Gal_VarSheet обнаружена переменная "ДатаНачало"
Это, наверное, все же дата начала периода за который отчет строим имеется ввиду...
Я когда давно помню меня попросили сделать...дак вроде дата начало задолженности там у каждой конторы своя могла возникать ,по смыслу возникновения оной...
RAJAH
Местный житель
Сообщения: 932
Зарегистрирован: 18 фев 2008, 12:49

Re: Добавление поля в шаблон XLT

Сообщение RAJAH »

zna
Этим отчётом лучше не пользоваться. http://www.tyumbit.ru/gal_forum/viewtop ... =4&t=12280
Gella
Постоянный гость
Сообщения: 72
Зарегистрирован: 17 янв 2011, 15:58

Re: Добавление поля в шаблон XLT

Сообщение Gella »

Наши бухи делают этот отчет за год для аудиторов. Дату начала задолженности не заполняют.Аудиторов этот отчет устраивает.
zna
Местный житель
Сообщения: 552
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Челябинск
Контактная информация:

Re: Добавление поля в шаблон XLT

Сообщение zna »

RAJAH писал(а):zna
Этим отчётом лучше не пользоваться. http://www.tyumbit.ru/gal_forum/viewtop ... =4&t=12280
Спасибо, познавательная темка..
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5187
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Re: Добавление поля в шаблон XLT

Сообщение edward_K »

Альтернативой могла бы быть докомпиляция интерфейса в месте вывода - там все же проще поля добавлять, но разработчик к сожалению не делает возможности безболезненного вклинывания в код и приходится перехватывать целиком процедуру - что не имея доступа к исходникам сделать невозможно. На доработку отчетов на основе xlt разработчик идет очень тяжело. Поэтому при необходимости добавить где то поле пишите в свою ТП типа "просим добавить возможность вывода своих полей и указывать свой шаблон по умолчанию там то и просим описать такую возможность в примере докомпиляции" - а вдруг сделают? С фастрепортом все таки попроще с докомпиляцией.
Ответить