Создание печатной формы МойСклад

Шпаргалка по созданию печатных форм МойСклад

Начать. Это бесплатно
или регистрация c помощью Вашего email-адреса
Создание печатной формы МойСклад создатель Mind Map: Создание печатной формы МойСклад

1. Отчеты

1.1. Циклы

1.1.1. Загрузка документов

1.1.1.1. ${formatter.loadOperations(rows)}

1.1.1.1.1. Список сущностей отчета (напр. CustomerOrder)

1.1.1.2. ${formatter.loadOperationsWithFilters(rows, "Время доставки:с 11.00 до 15.00,Доставка:300 руб")}

1.1.1.3. ${formatter.loadStocksWithGoodsList(rows)}

1.1.1.4. ${formatter.loadGrouppedOperations(rows)}

1.1.2. Группировка

1.1.3. Нумерация строк по порядку

1.2. Итоги

1.2.1. $[SUM(G14)@0]

1.3. Перемещение

1.4. Выражения

1.5. Решения

1.5.1. Вывод позиций документов

1.5.1.1. Заказ покупателя

1.5.1.1.1. <jx:forEach items="${row.shipments}" var="shipment"

1.5.1.2. Перемещение

1.6. Возможные ошибки

1.6.1. Формула в одну строку

2. Вспомогательные методы formatter'а

2.1. countPlaces

2.2. cost

2.2.1. report-Demand profit.xls

2.3. createDate

2.4. currentUser

2.4.1. uid

2.4.2. firstName

2.4.3. secondName

2.4.4. shortFIO

2.5. currentMoment

2.5.1. ${formatter.getExcelDate(formatter.currentMoment)}

2.6. findAttribute

2.6.1. Наименование - Тип поля

2.6.1.1. Строка - valueString

2.6.1.2. Текст/Ссылка - valueText

2.6.1.3. Дата - timeValue

2.6.1.4. Флажок - booleanValue

2.6.1.5. Целое число - longValue

2.6.1.6. Дробное число - doubleValue

2.6.1.7. Селекторы (справочники)

2.6.1.7.1. пользовательский - entityValue.name

2.6.1.7.2. сотрудники - employeeValue.name

2.6.1.7.3. контрагенты - agentValue.name

2.6.1.7.4. серии - consignmentValue.name

2.6.1.7.5. тоары - goodValue.name

2.6.1.7.6. склады - placeValue.name

2.6.1.7.7. проекты - projectValue.name

2.6.1.7.8. договоры - contractValue.name

2.7. firstNotEmpty

2.8. getExcelDate

2.9. getMonthName

2.10. getGoods

2.11. getServices

2.12. getCurrency

2.13. goodsAmount

2.14. generateList

2.15. localize

2.16. round

2.17. printIf

2.17.1. ${formatter.printIf(not empty(position.code),"Арт. " + position.code)}

2.17.2. В качестве альтернативы лучше использовать тернарный оператор (см. примечание)

2.18. printIfElse

2.18.1. formatter.printIfElse(empty([...]), [true], [false])

2.18.2. В качестве альтернативы лучше использовать тернарный оператор (см. примечание)

2.19. printAgentName

2.20. printAmount

2.20.1. formatter.printAmount(123) → 'Один рубль 23 копейки'

2.20.2. formatter.printAllWordsAmount(123) → 'Один рубль двадцать три копейки'

2.21. printShortAmount(price)

2.21.1. formatter.printShortAmount(goods[0].salePrices.findPrice(priceTypeId).priceValue)

2.22. printShortAmountWithChange(price)

2.22.1. ${formatter.printShortAmountWithChange(position.salePrices.findPrice(priceTypeId).priceValue)}

2.23. printTags

2.24. splitByLines(text, maxLines, lineLength)

2.24.1. ${formatter.splitByLines(goods[1].name, 6, 5)}

2.25. splitGoodList(positions, N)

2.25.1. <jx:forEach items="${formatter.splitGoodList(positions, 3)}" var="goods">

2.26. stock(position)

2.27. shipped(position)

2.28. imageAttribute

2.28.1. печать организации

2.28.2. .getGoodImageElseNotFound

2.29. Подгрузка сущности

2.29.1. loadAgent

2.29.2. loadGood

2.29.3. loadConsignment

2.29.4. loadOperations

2.29.4.1. loadGrouppedOperations

2.29.5. loadStock

2.29.5.1. loadStocksWithGoodsList

2.30. Время и дата

2.30.1. createDate

2.30.2. getExcelDate

2.30.2.1. Дата в отдельной ячейке

2.30.3. currentMoment

3. Форматирование данных

3.1. Дата

3.1.1. Примеры

3.1.1.1. ${formatter.format("%1$td.%1$tm.%1$tY %1$tH:%1$tM", formatter.getExcelDate(row.moment))}

3.1.1.2. ${formatter.format("%1$td.%1$tm.%1$tY %1tR", o.moment)}

3.1.2. Документация

3.1.2.1. Java

3.1.2.2. Android

3.1.3. [поле_формата_дата].getTime()

3.1.3.1. Вывод даты с корректировкой на некий период времени

3.1.4. Excel шаблон с примерами формул

3.2. Деньги

3.2.1. Примеры

3.2.1.1. на сумму ${formatter.format("%.2f", o.sum.sum / 100)} руб

3.2.1.2. 3 руб. 00 коп.

3.2.1.2.1. ${formatter.format("%1$4.0f руб. %2$02.0f коп.", [сумма] / 100, [сумма] % 100)}

3.2.2. Отбрасывание копеек

3.2.2.1. formatter.round(o.sum.sumInCurrency/100)*100

4. POI

4.1. Объекты

4.1.1. Sheet

4.1.1.1. getRow()

4.1.2. Row

4.1.2.1. getCell()

4.1.3. Cell

4.1.3.1. setCellValue()

4.2. Доступные объекты

4.2.1. Лист

4.2.1.1. ${sheet}

4.2.2. Текущая строка

4.2.2.1. ${hssfRow}

4.3. Примеры формул

4.3.1. ${sheet.getRow(0).getCell(1).setCellValue(sheet.getRow(0).getCell(0).getNumericCellValue())}

4.3.2. ${hssfRow.getHeight()}

4.3.3. ${sheet.setRowBreak(hssfRow.getRowNum())}

5. Формулы

5.1. Теги

5.1.1. jx:forEach

5.1.1.1. groupBy

5.1.1.1.1. groupOrder

5.1.1.1.2. Aggregate functions

5.1.1.1.3. Пример формы с группировкой и сводными расчетами (aggregate functions)

5.1.1.1.4. Пользовательские атрибуты

5.1.1.1.5. Группировка по дате

5.1.1.1.6. Позиции

5.1.1.1.7. Сложности

5.1.1.2. select

5.1.1.2.1. Пример фильтрации по строке

5.1.1.3. varStatus

5.1.1.4. Загрузка документов

5.1.2. jx:outline

5.1.3. jx:if

5.2. Запись формул Excel

5.2.1. Соответствие англоязычных и русскоязычных формул в Excel

5.2.1.1. ВПР - VLOOKUP

5.2.1.2. Excel файл с соответствием формул RU-ENG

5.2.2. Ошибки

5.2.2.1. Формула не проходит

5.3. Полезные формулы

5.3.1. Округление вверх

5.3.2. Вставка гиперссылки

5.3.2.1. пример

5.3.3. Работа со строками

5.3.3.1. Выделение части строки - substring

5.3.3.2. Методы объекта строки

5.3.3.2.1. name.[формула] ➝ [результат]

5.3.3.2.2. name = "NA-ord-16991"

5.3.3.2.3. name.charAt(2) ➝ A

5.3.3.2.4. name.concat(' some') ➝ NA-ord-16991 some

5.3.3.2.5. name.contains('NA') ➝ true

5.3.3.2.6. name.replaceFirst('\d', '0') ➝ NA-ord-06991

5.3.3.2.7. name.replaceAll('\d', '0') ➝ NA-ord-00000

5.3.3.2.8. name.replace('NA', 'FOO') ➝ FOO-ord-16991

5.3.3.2.9. (name.split('-'))[0] ➝ NA

5.3.3.2.10. name.toLowerCase() ➝ na-ord-16991

5.3.3.2.11. name.toUpperCase() ➝ NA-ORD-16991

5.3.3.2.12. name.concat(' ').trim() ➝ NA-ord-16991

5.3.3.2.13. name.toCharArray().get(0) ➝ N

5.3.4. Последнее событие

5.4. Функции

5.4.1. empty(...) → bool

5.4.1.1. Отрицание not empty(...)

5.4.2. .size( )

5.5. Свойства

5.5.1. [entity].type

5.6. Общие замечания

5.6.1. Доступ к массивам

5.6.1.1. formatter.loadAgent(row.id).tags[0]

5.6.1.2. (formatter.loadAgent(row.id).tags)[0]

5.6.1.3. formatter.loadAgent(row.id).tags.get(0)

5.6.1.4. o.getCustomerOrders().iterator().next().name

5.6.2. Управляющие символы

5.7. Разъяснить

5.7.1. Акт сверки D11

6. Вопросы

6.1. Telegram группа для вопросов @moysklad_forms

6.1.1. Все предложения по шпаргалке или новые формулы пишите в группу. Буду стараться обновлять данные.

6.2. Telegram: @wmakeev

7. Общее

7.1. Отладка формул

8. Штрих-коды / ценники / этикетки

8.1. Генерация штрих-кода (на стороне сервера)

8.1.1. barcode4j.generateCode

8.1.1.1. Настройка вывода штрих-кода

8.1.1.1.1. шаблон

8.1.1.2. Подбор качества штрих-кода (dpi)

8.1.1.3. Описание модуля на сайте разработчика

8.1.2. Шаблоны для печати этикеток

8.1.2.1. Готовые шаблоны для печати этикеток

8.1.2.2. Пример этикетки 46x25

8.1.2.3. Шаблон для печати этикеток из отчета "Остатки"

8.1.2.4. Шаблон для печати штрих-кодов на товары и их серийные номера (форма для документа с позициями)

8.2. Генерация штрих-кода (на стороне Excel)

8.2.1. шрифт штрих-кода EAN13

8.2.2. пример использования

8.3. Ограничения Excel

8.4. Работа с ценами

8.4.1. Доступ к типам цен из документа

8.4.1.1. ${position.good.salePrices.priceList[1].currency.name}

8.4.1.2. ${position.good.salePrices.first().priceType.name}

8.4.1.3. ${position.good.salePrices.findPrice("Цена продажи!").value}

8.4.2. Формула из карточки товара (ценники)

8.4.2.1. ${formatter.printShortAmount(posrow[0].salePrices.findPrice(priceTypeId).priceValue)}

9. Официальная справка МойСклад

9.1. Общая информация о шаблонах печатных форм

9.2. Создание шаблонов печатных форм (основные формулы)

10. Связи между документами

10.1. Как получить документы по связям

10.2. Доступ к связанным документам из отгрузки

10.3. Список отгрузок из заказа

10.4. Названия полей со связанными документами можно найти в Модели по ссылке.

10.4.1. Как найти нужный документ?

10.5. Примеры

10.5.1. Заказ поставщику

10.5.1.1. ${o.getCustomerOrders().iterator().next().sum.sum}

11. Разное

11.1. Объектная модель печатных форм (не закончено!)

11.1.1. не разобрано

11.1.1.1. position

11.1.1.1.1. tail

11.1.1.2. operation

11.1.1.2.1. project

11.1.1.3. Отчеты

11.1.1.3.1. Глобальные объекты со значениями фильтра отчета

11.1.1.4. Характеристики товара

11.1.1.5. Good

11.1.1.5.1. ${goods[0].salePrices.findPrice(priceTypeId).currencyRef.name}

11.1.2. Отчеты

11.1.2.1. BaseLegendTO

11.1.2.1.1. {name, description, externalCode, id}

11.1.2.1.2. Документ

11.1.2.1.3. Agent

11.1.3. Документы

11.2. Разобрать

11.2.1. ${formatter.evaluateJexl(row.payments, "payments", "var ret='';var i=0; for (var s: payments){if (i>0){ret=ret+', ';} ret=ret+s.name; i=i+1;} return ret;")}

12. Модель

12.1. Формулы для изучение методов объектов печатных форм

12.1.1. Судя по всему сейчас эта возможность не доступна

12.1.2. test-java-entity-class.xls

12.1.2.1. test-java-entity-class-TEST.xls

12.1.3. test-java-entity-superclass.xls

12.1.3.1. test-java-entity-superclass-TEST.xls

12.1.4. test-java-formatter.xls

12.1.4.1. test-java-formatter-TEST.xls