AXForum  
Вернуться   AXForum > Microsoft Dynamics NAV > NAV: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 30.09.2013, 16:13   #1  
srg is offline
srg
Участник
 
116 / 10 (1) +
Регистрация: 20.08.2013
Ребята, подскажите пожалуйста с чего начать?
Заставили сделать выгрузку в шаблон Excel, отчет реально не по моему уровню, и у меня скоро закипит мозг и голова и я начну паниковать((
Старый 30.09.2013, 16:40   #2  
InTacto is offline
InTacto
Участник
Аватар для InTacto
 
323 / 11 (1) +
Регистрация: 09.08.2005
Разбейте задачу на подзадачи.
После того как это сделаете, то можете задавать более конкретные вопросы, тогда Вам скорее помогут
Старый 30.09.2013, 16:41   #3  
srg is offline
srg
Участник
 
116 / 10 (1) +
Регистрация: 20.08.2013
Спасибо, сейчас попытаюсь это сделать)


Вообщем есть Отчет, а нужно :

1) создать шаблон в который он будет выгружаться. ( в экселе нарисовал какой он должен быть )
2) создать кодеюнит, и пилить там сам шаблон, но как?!!, вот это я и не понимаю />
3) кодеюнит создал, привязал его на кнопку, которая на форме
а вот собственно и шаблон, который нужно сделать
Старый 30.09.2013, 17:09   #4  
Constantine_imported is offline
Constantine_imported
Участник
 
126 / 10 (1) +
Регистрация: 28.04.2011
Вам нужно этот шаблон где-то хранить, в каталоге доступным всем или в BLOB поле (мы используем BLOB). Потом дергаете этот файл в темповую папку пользователя (или куда вам нужно), открываете, заполняете и показываете пользователю.
Старый 01.10.2013, 02:17   #5  
Sancho is offline
Sancho
Administrator
Аватар для Sancho
Лучший по профессии 2017
Лучший по профессии 2009
 
1,294 / 221 (10) ++++++
Регистрация: 11.01.2006
создайте шаблончик и сохраните его
откройте шаблончик(ИмяФайла):

Код:
IF NOT EXISTS(ИмяФайла) THEN
  ERROR('Файл с именем %1 не найден.',ИмяФайла);

IF NOT CREATE(xlApplication,TRUE) THEN
  ERROR('Excel не установлен');

xlApplication.Workbooks._Open(ИмяФайла);
Старый 01.10.2013, 10:27   #6  
Kalex63 is offline
Kalex63
Участник
 
18 / 10 (1) +
Регистрация: 20.10.2007
Цитата:
Сообщение от Fierce Посмотреть сообщение
Ребята, подскажите пожалуйста с чего начать?
Заставили сделать выгрузку в шаблон Excel, отчет реально не по моему уровню, и у меня скоро закипит мозг и голова и я начну паниковать(( /> /> />
В Российской локализации НАВ2009 есть объекты, в которые можно использовать для выгрузки данных отчета в шаблон Excel:
T14919 Excel Template
F14919 Excel Templates
CU12416 Excel Management

Б качестве примера использования можно посмотреть отчет 14918 (Items Receipt Act TORG-1).
Старый 01.10.2013, 12:25   #7  
srg is offline
srg
Участник
 
116 / 10 (1) +
Регистрация: 20.08.2013
сделал через поле блоб, добавил загрузку эксель шаблона, теперь пишу выгрузку в него.
столкнулся с проблемой.
не выгружает данные таблицы customer

как правильно обратиться к таблице, чтоб можно было найти определенную фирму ?

customer.get(????)

сделал через setrange//
Старый 01.10.2013, 12:55   #8  
InTacto is offline
InTacto
Участник
Аватар для InTacto
 
323 / 11 (1) +
Регистрация: 09.08.2005
Цитата:
Сообщение от Fierce Посмотреть сообщение
сделал через поле блоб, добавил загрузку эксель шаблона, теперь пишу выгрузку в него.
столкнулся с проблемой.
не выгружает данные таблицы customer

как правильно обратиться к таблице, чтоб можно было найти определенную фирму ?

customer.get(????)

сделал через setrange//
get ничего не нащел?
может там этого не было?
Старый 01.10.2013, 12:56   #9  
srg is offline
srg
Участник
 
116 / 10 (1) +
Регистрация: 20.08.2013
вопрос 2.
как номер телефона вывести по одной цифре?
Старый 01.10.2013, 12:59   #10  
InTacto is offline
InTacto
Участник
Аватар для InTacto
 
323 / 11 (1) +
Регистрация: 09.08.2005
Цитата:
Сообщение от Fierce Посмотреть сообщение
вопрос 2.
как номер телефона вывести по одной цифре?
есть операторы работы с текстом: copystr(то что нужно в вашем случае), strlen и т.д. - кнопка F5/SYSTEM/String
Старый 01.10.2013, 13:03   #11  
InTacto is offline
InTacto
Участник
Аватар для InTacto
 
323 / 11 (1) +
Регистрация: 09.08.2005
и текстовыми переменными можно работать как с массивом
Старый 01.10.2013, 13:03   #12  
srg is offline
srg
Участник
 
116 / 10 (1) +
Регистрация: 20.08.2013
ооооо))), точно ). спасибо !)
сейчас попробую)
Старый 01.10.2013, 13:51   #13  
srg is offline
srg
Участник
 
116 / 10 (1) +
Регистрация: 20.08.2013
Проблема №3

)))

если какой то рак ошибся, который заполнял данные, нужно сделать проверку, и выводить эти данные начиная справа...
если есть 12 итемов на шаблоне, но у нас имеется только 9 цифр, нам нужно заполнять с права это все...
вообщем, если такое же количество как на фото, то два белых пробела должно быть слева
каким образом мне построить этот масив?(
Старый 01.10.2013, 13:57   #14  
InTacto is offline
InTacto
Участник
Аватар для InTacto
 
323 / 11 (1) +
Регистрация: 09.08.2005
Какие-то законы природы или религиозные предрассудки мешают обходить массив справа налево?
Старый 01.10.2013, 14:09   #15  
srg is offline
srg
Участник
 
116 / 10 (1) +
Регистрация: 20.08.2013
Цитата:
Сообщение от InTacto Посмотреть сообщение
Какие-то законы природы или религиозные предрассудки мешают обходить массив справа налево? />
Расскажите тогда как это возможно реализовать без массива, буду очень благодарен
Старый 01.10.2013, 14:18   #16  
Yoil is offline
Yoil
NavAx
NavAx Club
Лучший по профессии 2017
Лучший по профессии 2009
 
1,574 / 70 (6) ++++
Регистрация: 20.11.2002
Адрес: Msk
STRLEN(текстовая переменная) возвратит длину строки
если длина окажется меньше 12, прибавьте соответствующее кол-во пробелов спереди
что-то типа

IF STRLEN(текст) < 12 THEN
FOR i := 1 TO (12 - STRLEN(текст)) DO
текст := ' ' + текст;
__________________
"Моей лошадке ядрышком полмордочки снесло..."
А.В.Суворов, письма к дочери
Старый 01.10.2013, 14:19   #17  
InTacto is offline
InTacto
Участник
Аватар для InTacto
 
323 / 11 (1) +
Регистрация: 09.08.2005
Для строчного поля, то

Код:
For i:=strlen(полеTxt) downto 1 do
  begin
    excel(строкаInt,i + смещение от правого краяInt) = copystr(полеTxt,i,1);
  end
Старый 01.10.2013, 14:20   #18  
Kadawrik is offline
Kadawrik
Участник
 
279 / 11 (1) +
Регистрация: 04.11.2010
Цитата:
Сообщение от Fierce Посмотреть сообщение
Расскажите тогда как это возможно реализовать без массива, буду очень благодарен
Код:
FOR i := STRLEN(Вашастрока) DOWNTO 1 DO
   очереднойсимвол := COPYSTR(вашастрока, i, 1);
или (если через массив):
Код:
FOR i := STRLEN(Вашастрока) DOWNTO 1 DO
   очереднойсимвол := вашастрока[i];
Старый 01.10.2013, 14:31   #19  
srg is offline
srg
Участник
 
116 / 10 (1) +
Регистрация: 20.08.2013
Не совсем понял, если честно, либо меня не совсем поняли.
Задача стоит в том, чтоб сделать заполнение с конца в любом случае, будь то меньше символов чем ячеек, и будь то равное количество (больше быть не может)

к примеру.
имеем таблицу "Петя" и поле "Номер", нужно сделать проверку на этом, почему то не вижу решения кроме массива
Старый 01.10.2013, 14:43   #20  
InTacto is offline
InTacto
Участник
Аватар для InTacto
 
323 / 11 (1) +
Регистрация: 09.08.2005
Думается мне что вариант Kadawrik и мой почти покрывают вашу задачу.
Нужно еще прикрутить верхнюю границу и все заработает
 


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 14:23.