Изменения

Перейти к: навигация, поиск

Руководство программиста

6793 байта добавлено, 12:10, 30 апреля 2020
Функции работы с датой и временем
CurrDate – возвращает текущую дату
 
CurrMillisecond - Возвращает количество миллисекунд прошедших с начала текущего года. Используется для точного расчета временных интервалов.
Today - возвращает текущую дату в числовом формате.
IncWorkDay(dt, [count=1]) - Прибавляет count рабочих дней к дате dt. Возвращает дату в числовом формате, если произошла ошибка приведения даты возвращает -1000. По умолчанию параметр count равен 1 и не является обязательным.
 
Sleep(n) - Задержка выполнения на n миллисекунд.
=== Функции приведения типов ===
ROUNDDN(f) – округляет число f до ближайшего меньшего по модулю целого числа.
 
Money(f, CouldBeEmpty, ZeroFill, MakeSpace) - Округляет число f, до двух знаков после запятой. CouldBeEmpty - заменить число меньше 0,0001 на пустую строку. ZeroFill - Следить чтобы после запятой было два знака, если будет один, то добавить ноль. MakeSpace - Разделить разряды пробелом.
''Подсказка: для простого округления используется функция int()''
 
=== Константы ===
StrFromFile(FileName) - Читает файл FileName, возвращает в виде строки. При ошибке чтения вызывает ошибку.
 
DownloadAttachment(code, [savefilepath, tablename='attachment', fieldBlob='file', fieldLDtime='ldtime', fieldUID='uid']) - Функция выкачивает аттачмент из базы, по внутреннему коду - Code, всегда возвращает содержимое файла в виде строки, а также может сохранить файл по указанному пути в параметре savefilepath. По умолчанию, функция настроена на таблицу attachment. Code - внутренний код вложения, tablename - название таблицы, fieldBlob - название поля с содержимым файла, fieldLDtime - название поля с временем последнего изменения строки (для работы кэша). Функция использует кэш и умеет выкачивать файлы зауженные на внешние серверы (http, ftp, measoft). Для выкачивания с сервера measoft обязательно необходимо указывать параметр fieldUID.
DeleteFile(FileName) - Удаляет файл FileName с диска, возвращает истину, если операция прошла успешно и ложь - в противном случае.
SheetDelete(i) - Удаляет лист с номером i.
SetRowHeight(r, h[, cnt]) – Устанавливает высоту cnt строк (по-умолчанию 1) начиная со строки r в h пикселей.
SetColWidth (c, w) – Устанавливает ширину столбца c в w символов.
SetBarCode(Col, Type) - Указывает, что данные из столбца Col должны печататься в виде штрих-кода. Тип штрих-кода - Type. Значение '''"1" - EAN13'''. Для кода EAN13 первая строка данных в ячейке должна иметь вид "тип штрих-кода, номер", например "7, 123" (без кавычек, конечно). В этом случае система сформирует штрих-код: "2700000001233". Первая цифра - всегда 2, далее - указанный тип штрих-кода, нули, чтобы получилось 13 символов, номер, указанный в таблице, и один символ - контрольная сумма. Значение '''"2" - CODE128''' (с версии 734). Данные из первой строки ячейки таблицы печатаются в штрих-коде "как есть". Для всех видов штрих-кода (с версии 734) последующие строки печатаются под штрих-кодом в виде текста.
 
SetMultiHeader(Active) - Включает печать заголовка при переносе таблицы на несколько страниц. По умолчанию отключено.
 
SetCustomHeader(script) - Включает печать пользовательского заголовка. Script - это код интерпретатора, который должен печатать заголовок на канву. Печать таблицы может происходить на нескольких листах, по этому скрипт будет вызван для каждого листа. При использовании этого метода, автоматически инициализируются переменные: $TablePageNo - номер страницы, нумерация начинается с нуля; $TableY - координата по оси Y, от которой рисуется заголовок. Чтобы таблица была под заголовком необходимо значение переменной $TableY увеличить на высоту заголовка.
Self – Ссылка на объект с таблицей, используется в качестве параметра для функций, работающих с таблицами из данного объекта.
Tbl.LoadFromDB(MyDB.Self);
Tbl.SetBarcode(1, 1);
Tbl.SetUserHeader(
if($TablePageNo>0,
Prn.Canvas.TextOut(Prn.Canvas.DPIX*0.1, $TableY, 'Продолжение таблицы');
set($TableY, $TableY + Prn.Canvas.TextHeight('H'));
,0)
);
Prn.BeginDoc;
Prn.PrintTable(0, Tbl.Self);
'''GetHome(Address)''' - Возвращает номер дома до второй запятой, но не более пяти символов.
 
'''GetKurierByStation(station, Mass, Cash, Date_Putn)'''
'''TownByIndex(Index[, PriorityName])''' – Возвращает код города по индексу. В случае ошибки поиска – код текущего города. Если нашлось несколько населенных пунктов, и указано приоритетное название - выбирается населенный пункт, название которого начинается с PriorityName (если есть).
'''CreateTrans(Address[, Store][, Operator])''' - Формирует запись для печати кассового чека для корреспонденции с кодом Address, для выбора кассового аппарата используется код склада Store. Если Store не указано - при исполнении в среде клиентского модуля системы использует склад, указанный пользователем в окне [[Настройка параметров рабочего места|"Настройка" - "Параметры"]], в остальных модулях - код текущего склада из [[Настройка глобальных параметров|переменной]] "CL" ("Текущий филиал"). Поле Operator позволяет указать кассира (передается код справочника сотрудников). Если не указан, в основной системе будет использован код авторизованного пользователя, в других модулях - 1. Возвращает идентификатор записи чека. В случае ошибки вызывает ошибку, поэтому рекомендуется использовать с функцией Try.
 
'''CreateReturnTrans(Address)''' - формирует запись для печати чека возврата для корреспонденции с кодом Address. Чек возврата печатается на полную сумму и с теми же атрибутами, что и чек продажи. Возвращает идентификатор записи чека возврата. В случае ошибки вызывает ошибку, поэтому, как и с CreateTrans, рекомендуется использовать с функцией Try.
'''CalcTownDeliveryDays(Source, Mode, TownTo, TownFrom)''' - возвращает количество дней необходимых на доставку отправления, только для межгорода. Source - код клиента, Mode - режим срочности, TownFrom - код города отправителя, TownTo - код города получателя.
GetPolygonByAddress(addressrecord.address, if((addressrecord.number=0)*(addressrecord.strbarcode=<nowiki>''</nowiki>), addressrecord.townfrom, addressrecord.townto), '`schema`=1') - пытаемся найти вхождение адреса в полигоны 1 схемы, при выборе города учитывается корр. на забор, у нее нужно использовать город-отправитель (а для обычной корр. нужен город-получатель).
'''GetPolygonByLatLon(Lat, Lon, where[, field='code'])''' - функция возвращает значение связанное с полигоном в который попали GPS координаты. Если полигон найти не удалось, функция возвратит пустую строку. Lat - широта текстом; Lon - долгота текстом; where - SQL условие; field - необязательный параметр, определяет возвращаемое значение при найденном полигоне, по умолчанию равен "code". Пример:GetPolygonByLatLon('55.769064','37.590713','zone is not null and price=0') - пытаемся найти вхождение координат в полигоны, где задана зона, для всех клиентских и курьерских зон. '''CalcAgentPrice(AddressCode, AgentCode, TownFrom, TownTo, Mass, Mode, Tp[, Count=1])''' - функция возвращает стоимость доставки рассчитанную по тарифу агента. AddressCode - код адреса, AgenCode - код филиала (агента), TownFrom - код города отправителя, TownTo - код города получателя, Mass - масса отправления, Mode - режим срочности, tp - тип посылки (в текущей реализации не используется), count - тарифная сетку от указанного количества отправлений (по умолчанию 1)
'''SetAddrKol_vo(address, getkol_vo)''' - функция делает прием корреспонденции в текущем ответственном филиале. address - внутренний код адреса, getkol_vo - количество принимаемых мест, может принимать значения: "kol_vo" - принять все места, "getKol_vo+1" - принять еще одно место, "число" - сделать количество принятых мест равным указанному числу.
'''GetBasePrice''' - возвращает базовую стоимость доставки посчитанную по тарифной сетке клиента в зависисмости зависимости от :кол-ва заказов,зоны,типа,срочности,массы, расстояния. В системах с выключенными доп. услугами также считает проценты от суммы и страховки.
Описание параметров:
'''CurrentLocation''' – Возвращает код текущего филиала (из таблицы store).
'''FillExcelDoc'''(Excel, Dataset, FormType, FormNumber) - Выполняет указанную печатную форму в объекте excel. Dataset объект с данными для скрипта в печатной форме, может быть null. Dataset передавать можно так db.self, тогда переданный dataset внутри печатной формы будет доступен по имени dataset. Например:
new('TExcel', 'excel');
excel.SetVisible(true);
''Покажет эксель с выполненной печатной формой''
 
'''ValutaSign''' – Возвращает название валюты для суммы.
== Объект TINIFile ==
ExtraResult([ParamName='']) - Вызывается после CheckSMS, возвращает дополнительную информацию по последнему статусу смс. В настоящее время работает только для провайдера BitCall, по умолчанию возвращает кнопки, нажатые абонентом во время работы с голосовым меню. Если в paramname указать 'IdentifyText' то будет возвращен JSON с ответами абонента на заданные вопросы(используется в случае звонков с индивидуальным сценарием).
 
Log - Возвращает последний HTTP запрос и ответ от сервера смс.
== Объект TXML ==
NodeName – Возвращает имя текущего элемента.
OpenChild(V) – Ищет дочерний элемент и делает его текущим. Если V – число – ищет по номеру, если V – текст – ищет по названию (регистрозависимый поиск). Возвращает значение найденного элемента, или пустую строку, если элемент не найден. Нумерация элементов начинается с нуля.
ChildrenCount – Возвращает количество дочерних элементов.
ChildNodeValue(V) – Ищет дочерний элемент и возвращает его значение. Если V – число – ищет по номеру, если V – текст – ищет по названию (регистрозависимый поиск). Можно проверять наличие элементов, если элемента нет, вернется пустая строка.
OpenParent – Делает текущим родительский элемент. Возвращает значение найденного элемента.
execsimplescript(Caption, Text) - Выполняет скрипт "Дополнительных возможностей". Возвращаемые значения, введенные пользователем устанавливает в переменные $scriptvar1..$scriptvarN, Значения кодов списочных переменных - в переменных $scriptvar1codes..$scriptvarNcodes. Функция возвращает истину, если пользователь нажал "OK" в диалоговом окне.
FillAdvPriceReport(Excel, AddressCodes, StartLine, StartCol, [ShowSumPrice,InsertColumns]) - добавляет отчёт по дополнительным услугам. В AddressCodes - указаны коды адресов через запятую, каждый код это отдельная строка отчета. Адреса будут показаны в порядке перечисления их в AddressCodes. Если в отчет нужно добавить пустую строку, то можно указать код адреса -1000. StartLine, StartCol - верхний левый угол выгружаемой таблицы. ShowSumPrice - добавить столбец итоговый столбец с суммой всех услуг, по умолчанию выключено. InsertColumns - раздвинуть таблицу перед вставкой отчета, позволяет встраивать отчет посередине выгрузки, по умолчанию выключено. Функция возвращает количество использованных столбцов.
PrintSticker(Codes)
GetItemByName(Name)
GetKurierByStation(station, Mass, Cash, Date_Putn)GetA4Printer - возвращает имя принтера выбранного для печати документов GetStickerPrinter - возвращает имя принтера выбранного для печати стикеров
'''ClientTown''' - Узнаем город клиента, через филиал с которым он работает. Сам клиент берется из заказа указанного в окне "Импорт БД из Excel".
 
== Объект TFieldObject ==
{|
||'''Добавлено:'''
|В объект функцию FillAdvPriceReport добавлены параметры ShowSumPrice,InsertColumns
|-
||'''Добавлено:'''
|В объект TSMS добавлен метод Log.
|-
||'''Добавлено:'''
|Добавлена функция Money.
|-
||'''Добавлено:'''
|В объект TBaseUtils добавлена функция ValutaSign.
|-
||'''Добавлено:'''
|В объект TBaseUtils добавлена функция GetPolygonByLatLon.
|-
||'''Добавлено:'''
|В объект TTable добавлена функция SetMultiHeader, SetCustomHeader.
|-
||'''Добавлено:'''
|Функция DownloadAttachment
|-
||'''Добавлено:'''
|В функцию SetRowHeight объекта TExcel добавлен параметр cnt.
|-
||'''Добавлено:'''
|В объект TPicture добавлена функция AsString.

Навигация