Б5 34.31.9
Здравствуйте. В оборотных ведомостях запасов разработали пример для переброски в эксель.
Необходимо модернизировать, чтоб цена бралась из номенклатурной карточки т.е 3 знака после запятой.
Сейчас тянется 2 знака из картотеки склада. Идут расхождения между БЭСТ и Экселем при списании.
В формуле вычисления не разобрался, по сравнению с полями Фастрепорта Б4, тут все на английском.))
Это пока самое важное.
2. Как можно организовать вывод его в эксель сразу формате. В стандартных формах Б5, появилось окно Вывод с выбором, было бы и здесь научится так применить.
3. В экселе отсортировано по наименованию, как это организовать в отчете?
1. На стр.5 Вашего отчета по кнопке "Выполнить", есть переменная GlobalMask, которая определяет вывод точности знаков после запятой для стоимостных полей. Вместо текущего значения, укажите следующую строку: GlobalMask := '#,##0.###;; '; Это позволит вывести три знака после запятой, как Вы и хотели.
2.Вывод в Excel "напрямую" в двух словах описать не получится. Можете попробовать сделать по аналогии с каким-нибудь другим отчетом из того же АРМа, если сможете самостоятельно разобраться.
3. Для вывода сортировки по наименованию, у основного источника DataSet1 есть свойство cSorting. Передайте этому свойству значение сортировки, например так : DataSet1.Params['cSorting'] := 'LNM' и вывод данных пойдет по наименованию номенклатуры. Параметры источника устанавливаются по кнопке "Выполнить" на стр.5.
Спасибо получилось.
Оказалось что сортировка по наименованию присутствует в карточке запроса, а как сделать, чтоб она там стояла по умолчанию.
а то там сейчас номенклатурный номер.
Параметр DataSet1.Params['cSorting'] : нашел но там их несколько строк, какой изменить не знаю.
Оказалось нужно еще и выводить номер группы слева, попробовал вставить это в отчет.
Почемуто выводит ее, только один раз и как то посередине строк.
ВАЛЕРИЙ БОНДАРЧУК пишет:
Оказалось что сортировка по наименованию присутствует в карточке запроса, а как сделать, чтоб она там стояла по умолчанию.
а то там сейчас номенклатурный номер.
Надо в дизайнере открыть свойство OnActivate у карточки запроса (щёлкнуть на самой карточке, лучше всего внизу, под источниками).
Там есть выражение pOrder.ItemIndex := 0; , оно устанавливает значение, отображаемое по-умолчанию в поле сортировка. Нумерация начинается с нуля, следовательно 0 - это первый элемент списка Item. "Наименование" идёт в списке Item вторым, следовательно если исправить на pOrder.ItemIndex := 1; то по-умолчанию будет предложена сортировка по наименованию.
ВАЛЕРИЙ БОНДАРЧУК пишет:
Почемуто выводит ее, только один раз и как то посередине строк.
Поле "группа" не лежит целиком на бэнде . Оно смещено выше, поэтому воспринимается генератором не как поле на бэнде, а как поле на листе. Поэтому и выводится только один раз, ведь лист не связан с источником.
Опустите поле на 1 пиксель вниз и всё станет нормально.
День добрый.
Можно я не в тему, только скриншот.
Это "живой" отчет в Qlikview. Показатели и измерения можно делать по ситуации,
Табличку формируем набором покзаателей и измерений + фильтр.Выгрузка в Excel - легко.
Временем проверено.
FastReport и прочие способы получения пользовательских отчетов забыты.
[img]http://qlikview-forum.ru/qvf/MGalleryItem.php?id=27[/img]
ВАЛЕРИЙ БОНДАРЧУК пишет:
Теперь осталось нам совместно разработатьвыгрузку в эксель формате.
Под кнопку "Выполнить" в конце скрипта (после GlobalMaskEI:=...) положите код
Код
//ВЫГРУЗКА В EXCEL
//ВНУТРЕННЕЕ НАЗВАНИЕ ОТЧЕТА (Передача параметров: NAME##FONT)
DataSet1.Params['cReportToExcel']:= 'OBOROT##';
//ЗАГОЛОВОК ОТЧЕТА (Передача параметров: NAME##DEC##FONT)
cTitStr := cTitStr + '##-##'+if(VALIDINT(pExportFont.text)=true,TRIM(Str(StrToInt(pExportFont.text)+2)),'10');
DataSet1.Params['cTitleToExcel'] := '';
//ОБЛАСТЬ ДАННЫХ ПОСЛЕ ЗАГОЛОВКА (Передача параметров: NAME(FILMES)##NAME(FILTER)##FONT)
DataSet1.Params['cFilterToExcel'] := '';
DataSet1.Params['cFilterToExcel'] := DataSet1.Params['cFilterToExcel'] + '###';
//ТАБЛИЧНАЯ ЧАСТЬ ОТЧЕТА (ШАПКА) (Передача параметров: NAME##DEC##WIDTH##BLOCK##FONT)
DataSet1.Params['cColToExcel'] :='';
//ГРУППИРОВКА СТРОК (Передача параметров: NAME##COLSUM##DEC##FONT)
DataSet1.Params['cItogToExcel'] :=''; ig := 0;
//СКЛАД (заголовок)
//ПОЛЯ ВЫВОДА (Поля таблицы REP_)
ss := [TRIM(STR(GLOBAL('Curr_Accur')))];
DataSet1.Params['cFieldToExcel'] := ' GRUP, NNUM, LNM, ED, ROUND(SE/KE,'+ss+') AS CE, KB, ROUND(SB,'+ss+') AS SB, KP, ROUND(SP,'+ss+') AS SP';
//Итоговая строка
DataSet1.Open;
cTabl := DataSet1.Params['cTableToExcel']+'.DBF'+'@';
cTabl := CallBlueFuncFR('common','CallExcelFromFR',cTabl);
[STOPREPORT()];
Вместо формирования отчёта будет сразу формироваться файл excel.
Я так понял, что Вы выводите, цену, остаток на начало (количество, сумма) и приход (количество, сумма). Если не так, то поправляется в списке полей в строке DataSet1.Params['cFieldToExcel'] :=...
Никак не могу привязать к форме название организации и период расчета
Ставил и в заголовок и к кнопке расчет, но так и не выводит.
Пока заполняют в ручную.
Строку:
DataSet1.Params['cTitleToExcel'] := ''
замените на:
DataSet1.Params['cTitleToExcel'] := FIRM('LBL_NAME') + '###' +
'Сводная оборотная ведомость за период с '+ FORMATDATETIME('dd.mm.yyy',[DataSet1.Params['dBP']]) +
' по ' + FORMATDATETIME('dd.mm.yyy',[DataSet1.Params['dEP']]);
Следующие две строки можно закомментировать, чтобы в отчет не выводились пустые строки:
// DataSet1.Params['cFilterToExcel'] := '';
// DataSet1.Params['cFilterToExcel'] := DataSet1.Params['cFilterToExcel'] + '###';
Получится не совсем красиво - название предприятия будет выводится по центру строки. Можно прижать и к левому краю, но для этого надо дорабатывать фоксовый источник.
Просветите пожалуйста, как удалять лишние формы из списка отчетов.
А то делаю пробы, на экране отчетов становится больше. А хочется минимализма и однозначности.
"1. На стр.5 Вашего отчета по кнопке "Выполнить", есть переменная GlobalMask, которая определяет вывод точности знаков после запятой для стоимостных полей. Вместо текущего значения, укажите следующую строку: GlobalMask := '#,##0.###;; '; Это позволит вывести три знака после запятой, как Вы и хотели." Как округлить количество до трех знаков после запятой в ТОРГ-12?
В прямоугольнике для вывода количества надо установить в свойстве DisplayFormat тип выводимого значения "Число" и задать требуемое количество десятичных знаков.
В шаблоне формы "Товарная накладная ТОРГ-12" на стр.4 выбираете мышкой объект Memo352 (на секции MasterData в колонке "Количество (масса нетто)" ). В инспекторе свойств на свойстве DisplayFormat жмёте кнопку с тремя точками. Откроется окно определения формата. Там в левой части засветка будет стоять на слове "Текст". Надо поставить засветку на "Число", а в правой части выбрать формат "1234,50". В поле "Дес. знаков" ввести цифру 3. Такую же операцию выполнить для объектов Memo463 и Memo447 - эти объекты выводят итоговые значения количества.