ручная установка курсора в отчете excel

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

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

Olegpro
Новичок
Сообщения: 25
Зарегистрирован: 06 фев 2014, 11:36

ручная установка курсора в отчете excel

Сообщение Olegpro »

Добрый день! Помогите пожалуйста.
Делаю отчет в Excel. Нужно сделать так, чтобы курсор после выгрузки нескольких полей в столбце, грузил другой столбец рядом.
Например, выгружаю столбец:
mc1
mc2
mc3
mc4
...

Затем надо установить курсор в строке mc1 в соответствующем столбце посредством VIP, чтобы выгрузить столбец с параметрами. Т.е. должно получиться что-то такое:
mc1 param1
mc2 param2
mc3 param3
mc4 param4
... ...

А не такое:
mc1
mc2
mc3
mc4
_____param1
_____param2
_____param3
_____param4

Именно в такой последовательности, т.е. сначала выгружаю один столбец, потом устанавливаю курсор в соответствующее место на первой строке и начинаю выгружать второй столбец. Т.е. я не знаю, как после выгрузки первого столбца параметров установить курсор в соответствующую ячейку в первой строке. Надеюсь, объяснил понятно.
С Галактикой работаю недавно. Очень рассчитываю на вашу помощь!
Irina_
Местный житель
Сообщения: 553
Зарегистрирован: 17 июл 2012, 11:56
Откуда: Республика Беларусь, г.Могилев

Re: ручная установка курсора в отчете excel

Сообщение Irina_ »

Здравствуйте. Для вывода в соответствующую строку обычно используется переменная счетчик. Что Вам мешает перед началом вывода нового столбца сделать присвоение этой переменной значения номера первой строки?
Olegpro
Новичок
Сообщения: 25
Зарегистрирован: 06 фев 2014, 11:36

Re: ручная установка курсора в отчете excel

Сообщение Olegpro »

Мешает отсутствие опыта) Я недавно работаю, мне бы на примере это увидеть, поподробнее, если можно. Спасибо!
Irina_
Местный житель
Сообщения: 553
Зарегистрирован: 17 июл 2012, 11:56
Откуда: Республика Беларусь, г.Могилев

Re: ручная установка курсора в отчете excel

Сообщение Irina_ »

Ниже совсем простой пример (не оптимальный), только чтобы показать работу со счетчиком строк и вывод в Excel сначала первого столбца, а потом второго.
.form "Каталог ТМЦ"
.ard
.create view TMC
as select
Katmc.name,
Katmc.barkod
from Katmc
;
.var
n: double;
.endvar
.begin
xlCreateExcel('Пример',true);
SetVisualHeader ( 'Вывод данных в Excel.' );
//вывод 1–го столбца
n:=5;
_loop Katmc
{
xlSetCellStringValue(katmc.name,n,1,n,1);
n:=n+1;
}
//вывод 2–го столбца
n:=5;
_loop Katmc
{
xlSetCellStringValue(katmc.barkod,n,2,n,2);
n:=n+1;
}

xlKillExcel;
message('ГОТОВО !');
end.
.endform
Olegpro
Новичок
Сообщения: 25
Зарегистрирован: 06 фев 2014, 11:36

Re: ручная установка курсора в отчете excel

Сообщение Olegpro »

Спасибо за пример. Не совсем понятно, т.к. в отчете я использую для вывода значений символы ^.
Т.е. условно
цикл1 (^)
цикл2 (_______^)

Первый символ для первого столбца, второй соответственно для второго, который должен печататься рядом.
Если делать напрямую, то столбцы будут печататься так:
mc1
mc2
mc3
mc4
_____param1
_____param2
_____param3
_____param4


Как оперировать со вторым символом ^, чтобы после вывода первого столбца второй выводился опять с первой строки рядом? При этом символы должны оставаться внутри своих циклов.
Den
Местный житель
Сообщения: 1844
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Ярославская область ОАО "Часовой завод Чайка" г. Углич
Контактная информация:

Re: ручная установка курсора в отчете excel

Сообщение Den »

Вы vip-интерфейс то сами разрабатываете с потоком данных ? не очень понятно....
если да, то зачем в FCOM юзать для этого.
Zver
Местный житель
Сообщения: 204
Зарегистрирован: 13 ноя 2012, 12:47
Откуда: СПб
Контактная информация:

Re: ручная установка курсора в отчете excel

Сообщение Zver »

Чтобы дать ответ на Ваш вопрос необходимо понять, откуда берутся данные.
Лучше всего выложите код интерфейса.
Или же это отчет, который формируется прямо в Excell.
Программист-самоучка
Olegpro
Новичок
Сообщения: 25
Зарегистрирован: 06 фев 2014, 11:36

Re: ручная установка курсора в отчете excel

Сообщение Olegpro »

Это присоединенная форма к прототипу MANUFAKTBRAK. Написана в Excelе в slk-формате. Я стараюсь переделать неработающий отчет, который был написан до меня. Большое спасибо еще раз за внимание к моей проблеме!
m0p3e
Местный житель
Сообщения: 1386
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва

Re: ручная установка курсора в отчете excel

Сообщение m0p3e »

На slk "курсором" управлять не получится.
Самый простой вариант создать временную таблицу, заполнить ее данными и выводить уже ее построчно.
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5188
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Re: ручная установка курсора в отчете excel

Сообщение edward_K »

Лучше переделать slk на текстовый, в котором вывести напрямую в excel. Если сделаете на основе шаблона избежите многих болезней slk
Olegpro
Новичок
Сообщения: 25
Зарегистрирован: 06 фев 2014, 11:36

Re: ручная установка курсора в отчете excel

Сообщение Olegpro »

А как мне из текстовой присоединенной формы вывести напрямую в excel? Если что, простите за глупые вопросы)
RAJAH
Местный житель
Сообщения: 932
Зарегистрирован: 18 фев 2008, 12:49

Re: ручная установка курсора в отчете excel

Сообщение RAJAH »

Olegpro писал(а):А как мне из текстовой присоединенной формы вывести напрямую в excel? Если что, простите за глупые вопросы)
ExcelLib.pdf почитайте.
Den
Местный житель
Сообщения: 1844
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Ярославская область ОАО "Часовой завод Чайка" г. Углич
Контактная информация:

Re: ручная установка курсора в отчете excel

Сообщение Den »

Irina_ по сути написала как...создаете свою ЛТ в link-форме отталкиваясь от nrec документа, переданного в форму и выводите в цикле по этой ЛТ что нужно ....
Olegpro
Новичок
Сообщения: 25
Зарегистрирован: 06 фев 2014, 11:36

Re: ручная установка курсора в отчете excel

Сообщение Olegpro »

Я просматривал эту документацию, но не совсем понимаю, как это использовать в присоединенной rtf-форме к прототипу. Банально, после чего надо вызывать функцию xlCreateExcel. Вот пример:

.LinkForm 'MNAKTBRK_SNAB_1 Prototype is 'MANUFAKTBRAK'//
.NameInList 'Тест'//
.var//
nomre:Double//
datre:Date//
summare:Double//
.endvar//
.Create view rrr//
from katsopr kk,spsopr sp, attrval art//
where//
((//
comp(KATSOPRNREC)/==art.vcomp (noindex)//
and '1110' ==art.wtable (noindex)//
and art.crec==sp.nrec (noindex)//
and '00010000000006DDh'/==art.cattrnam (noindex)//
and sp.csopr==kk.nrec//
and '206'==kk.vidsopr (noindex)//
));//
.fields//
NAME_TOVAR
if(datre=date(0,0,0),'',datre)//
nomre//
summare//
.endfields//
.{//
.{//
.{//
^
.}//
.}//
.begin//
nomre:=0;//
datre:=date(0,0,0);//
summare:=0;//
end.//
.{table 'rrr.art'//
.begin//
nomre:=rrr.kk.nsopr;//
datre:=rrr.kk.dsopr;//
summare:=rrr.kk.summa;//
end.//
^ ^ ^
.}//
.}//
.endform//

Как в данном случае вывести результаты в excel, чтобы столбец NAME_TOVAR стоял рядом со столбцами nomre, datre, summare, при этом чтобы циклы остались такими же, как есть. Вообще с этим сталкиваюсь впервые, поэтому поподробнее, если вас не затруднит. Спасибо.
RAJAH
Местный житель
Сообщения: 932
Зарегистрирован: 18 фев 2008, 12:49

Re: ручная установка курсора в отчете excel

Сообщение RAJAH »

xl*-функции - это совсем другая технология, тут раздел .fields - .endfields не нужен, как и не нужны ^ - место вывода переменной вы должны указать координатами в соответствующих функциях xlSetCell<<>>Value.
После всех своих вьюшек пошёл begin? Вот там и пишите xlCreateExcel.

Код: Выделить всё

.{table 'rrr.art'//
.begin//
nomre:=rrr.kk.nsopr;//
datre:=rrr.kk.dsopr;//
summare:=rrr.kk.summa;//
xlSetCellStringValue(nomre, 1, 1, 1, 1);
xlSetCellDateValue(datre, 1, 2, 1, 2);
xlSetCellNumberValue(summare, 1, 3, 1, 3);
end.//
.}/
Ответить