Некоторые ПОЛЕЗНОСТИ, в т.ч. не связанные с ФАБИУС
Материал из Фабиус wiki
Версия от 10:13, 23 октября 2017; Maria (обсуждение | вклад)
Содержание
MS Office - интерфейс кардинально изменился с 2007
в т.ч. Excel
- Переместить/Скопировать лист
- Главная - Ячейки - Формат
- Поменять местами строки и столбцы
- - выделить и скопировать исходный фрагмент
- - на чистом месте (чтоб не пересекались) ткнуть в верхнюю левую ячейку будущего повернутого фрагмента
- - меню Главная, закладка Буфер обмена, стрелка вниз под словом Вставить и ТРАНСПОНИРОВАТЬ!!!
- Отобразить закладку Разработчик (макросы, VB)
- Параметры Excel, Основные (слева), "Показывать вкладку Разработчик на ленте" (справа)
- Включить/отключить макросы
- Закладка Разработчик, первый фрагмент справа внизу "Безопасность макросов"
- Создать новый список, например, #i1, #i2, ..., #i0, #ia, #ib
- Параметры Excel. Слева Основные, справа - Основные параметры работы с Excel. Кнопка Изменить списки.
- Убрать апострофы (') у целой колонки
- Выделить колонку, скопировать, вставить КАК ЗНАЧЕНИЕ.
- Вместо 0 выводить пустую строку
- Формат ячеек, закладка Число, (все форматы) - внизу, справа Тип
- вместо Основной вставить 0;-0;;
- ### ### ##0,###;-### ### ##0,###;;@ = триадами только значащие + после зпт
- Excel.VBA - примеры кода http://excelvba.ru/code
- Описание - http://www.askit.ru и http://www.firststeps.ru/vba/excel
- http://www.programm-school.ru/excel_vba Программирование для начинающих, раздел про Excel VBA.
- ДЮЖЕ полезный сайт http://www.excel-vba.ru/chto-umeet-excel/
- В Excel МесяцГод перенёсся как '20140301 в колонку Е3-E..., а хочется видеть Март 2014 года
- новая колонка, ячейки которой
- =ТЕКСТ(ДАТА(ПСТР(E3;1;4);ПСТР(E3;5;2);ПСТР(E3;7;2));"ММММ ГГГГ")&" года"
- Определить номер последней ЗАПОЛНЕННОЙ строки/колонки на листе
- Dim last_col as Integer 'пока максимум 256, а Integer - до 32К
- Dim last_row as Long 'м.б. до 64К
- вариант 1
- last_col = Cells(1, Columns.Count).End(xlToLeft).Column 'встать в 1-й строке на последнюю из 256 колонок и метнуться влево до первой (самой правой от начала листа) непустой
- last_row = Cells(Rows.Count, 1).End(xlUp).Row 'встать в 1-й колонке на последнюю из 64К строк и метнуться вверх до первой (самой нижней от начала листа) непустой
- вариант 2
- last_col [last_row] = Cells.SpecialCells(xlLastCell).Column [или .Row] 'SpecialCells - отбор ячеек по некоторому признаку-параметру (есть ещё константа xlCellTypeLastCell и у неё иное значение,чем у xlLastCell)
- и ещё есть варианты
- Некоторые функции EXCEL
- substr = Mid
- pos = InStr
- replicate = String
- at,rat,позиция подстроки в строке = InStrRev
- str = Str, CStr
- преобразования CStr, CBool, ...
- Строковые ф-и VB
- ВПР - аналог Консолидации
- В диапазоне B_:Е_ - спр-к номенклатуры (В код, С артикул, D ед.изм., E цена),
- а в диапазоне G_:H_ - список (G код, H еще что-то).
- A BкодCDEцена F GкодH Iцена
- В колонке I хочу увидеть цену из Е согласно совпадению кода в G с кодом в B.
- В колонке Inn пишу =ВПР(Gnn; B_:Е_; 4)
- Что означает: поискать значение, расположенное в Gnn,
- в ПЕРВОЙ колонке таблицы B_:Е_ и вернуть значение из 4-й колонки (Е)
- по найденной строке с совпадающим кодом.
- Необязательный 4-й пар-р - точное совпадение или нет
- Архитектура Excel
- Application
- Workbooks
- Worksheets
- Cells
- Константы Excel
- https://msdn.microsoft.com/ru-ru/library/office/microsoft.office.interop.excel.constants.aspx
в т.ч. Word
- Помечать цветом ИСПРАВЛЕНИЯ
- Вкладка Рецензирование (в Help обозвали Обзор)
- Группа Отслеживание (в Help обозвали Регистрация изменений)
- Исправления
- Внизу на строке состояния rght btn галка на Исправления для отображения процесса
Порядок указания реквизитов доступа к FTP
- протокол: // user : pswrd @ host [:port] [path]
-
ftp://visor:xxxyyy@212.248.40.154
- Узнать свой ip-адрес (динамический): 2ip.ru
Для работы с .rdp (mstsc)
- Посмотреть статический IP-адрес (Windos 7)
- Windows 7: Панель упр. - Центр упр. сетями и общим доступом - (слева) Изменение пар-ров адаптера - rght btn на Подключение по лок.сети - Св-ва - встать на "Протокол интернета версии..." (=IPv4/6) - кнопка Св-ва
- XP: На рабочем столе иконка Сетевое окр: rght btn Св-ва - Local Св-ва - Протокол TCP/IP Св-ва
- Пуск - Настройка - Сетевые подкл - Local ... остальное так же.
- Подключение к удал. раб. столу
- mstsc.exe = MS Terminal Service Client - вызывается в cmd.exe
- или Пуск - ПРОГРАММЫ - Стандартные (а вовсе не Настройка - Сетевые подключения)
- или - на Win Server 2012
- Диспетчер серверов (рядом с Пуск либо стрелка вниз в кружке на основном экране и там один из синих квадратов)
- Службы удалённых рабочих столов
- Коллекции
- Фабиус
- Плавающее соединение через VPN (Белгород, f/e)
- Изменение маршрута выполняется командой route, параметрами которой будут ip-адреса destination и gateway.
- destination (узел) - смотрим в самом rdp: rght btn, Изменить, окно "Компьютер"
- 192.168.xx.yyy
- gateway (шлюз) - смотрим справа внизу на значке резидентных сетей (монитор+вилка-трезубец)
- click, встали на нужную сеть (Подключено), rght btn, "Состояние", закладка Подробно,
- IPv4-адрес клиента 192.168.aa.bb
- В строке поиска (поиск в Windows) набираем cmd, затем выше - на найденном cmd.exe - rght btn Запуск от имени Администратора.
- Удаляем существующий маршрут командой (как определить gateway, см. выше)
- route DELETE gateway
- route DELETE 192.168.aa.bb
- Добавляем новый маршрут, который сохранится при перезагрузке (ключ -p), командой
- route ADD destination gateway -p
- route ADD 192.168.xx.yyy 192.168.aa.bb -p
- Посмотреть существующие маршруты
- все: route PRINT
- начинающиеся с xxx: route PRINT xxx*
Операционная система и сторонние программы
- Отключить звуки-предупреждения с клавиатуры
- Настройка - Панель управ. - Звуки и аудиоуст., закладка Звуки,
- Программные события (раздел Windows), а внизу в разделе Звуки выбрать Нет.
- Посмотреть имя компьютера
- иконка Мой компьютер, rght btn - Св-ва, закладка Имя комп.
- РасShare'ить диск
- иконка Мой компьютер, rght btn - Открыть. На нужном диске снова rght btn - Общий доступ и безопасность.
- Закладка Доступ, галка Открыть общий доступ к этой папке.
- Запустить процесс на другом компе сети
- WMIC /NODE:target_ip PROCESS CALL CREATE имя_exe_с_путём
- Расположена в Windows\System32\WBEM (help = WMIC /?)
- Предупреждение об окончании лицензии через NN дней (когда соединяешься по rdp)
- regedit - HKEY_LOCAL_MACHINE - SOFTWARE - MicroSoft - MSLicensing. Удалить по rght btn.
- Про сообщение ошибки создания хранилища лицензий rdp - см. R273 28.10.13
- Отключить "автоматическое обновление" системы через INet. Заходить с учётной записью Администратор.
- а) Пуск - Настройка - Панель управления - Автоматическое обновление.
- б) Пуск - Настройка - Панель управления - Система. Закладка Автоматическое обновление.
- в) Мой компьютер - rght btn Св-ва). Закладка Автоматическое обновление.
- г) Пуск - Настройка - Панель управления - Центр обеспечения безопасности. Внизу "Настройка параметров безопасности", Автоматическое обновление.
- А ежели всё равно не снимается "(.) Автоматически", т.е. вроде я и не Администратор:
- Пуск - Выполнить - gpedit.msc
- Политика Локальный компьютер
- Конф-я пользователя
- Админ. шаблоны
- Компоненты Win
- Win Update
- ПОКАЗЫВАТЬ СКРЫТЫЕ файлы
- в Windows7
- Пуск - Компьютер - Упорядочить (кнопка слева вверху) слева от "Свойств системы"
- в Упорядочить есть пункт про Свойства папки - где-то посерёдке.
- в Windows10
- Открываем (в explorer'е) любую папку. Если сверху нет закладок Файл, Главная, Поделиться, Вид, Управление, жмём Alt или Ctrl, - панель с этим меню должна появиться в верхней части экрана.
- Шагаем в Вид и ищем Скрытые элементы, ставим галку.
- Редактирование Автозагрузки в Windows 7
- http://w7q.ru/windows7/upravlenie-avtozagruzkoy-programm-v-windows-7/
- Перекодировка - декодер кириллицы http://2cyr.com/decode/
- On-line сервисы, bl2.ru Например, кодирование/раскодировние русских букв в строке адреса браузера:
- http://www.bl2.ru/programing/urlencode.html
- Список служб Windows http://shera-em85.narod.ru/data/sluz.htm
- http://www.asf.ru/docs/services/index.html
- http://webhamster.ru/mytetrashare/index/mtb0/1366368330ignxo81rsx
- Управление дисками
- cmd>DiskPart
- Расшифровка системных переменных
- Панель упр. - Система - (слева) Дополн.пар-ры системы, (внизу) кнопка Переменные среды
- Где расположен сист. реестр?
- %systemroot%\system32\config (windows\system32\config)
- Создать/скопировать Профиль пользователя
- XP: Мой компьютер (пуск) - rght btn - Свва - вкладка Дополнительно - прямоугольник Профили польз.
- - кнопка Параметры - кнопки создать и скопировать.
- Формы деклараций (бланки)
- http://mvf.klerk.ru/blank/1152004.htm
- http://www.buhsoft.ru/blanki
- POWERSHELL (аналог cmd)
- http://powershell-guru.com/faq-powershell-in-russian/
- Полное описание TotalCmd http://flint-inc.ru/tcinfo/all_cmd.ru.htm со встроенными командами!!
- Например, для расширенного по функционалу сравнения панелей набираем прямо в строке коммандера cm_FileSync.
- cm_CommandBrowser - вызов списка всех встроенных команд.
- Почта Windows Live Mail
- ПУТЬ доступа к каталогу с собщениями. Слева от меню Главная непонятный значок со стрелкой вниз.
- Параметры (Options) - Почта. Закладка Дополнительно, кнопка Обслуживание (Maintainence), кнопка Банк сообщений.
- arc32.exe ADS Architect
- AdsSys без пароля, AdmUser ora=1
- Help & Manual
- Картинка слева вверху с зелёным треугольником, Open: сервер\HELP_FABIUS\fablis.hmxp
- Слева в дереве Стандартные модули комплекса.
- Свойства - внизу экрана закладка Topic Options.
- Откомпилировать - сверху закладка Project, кнопка Publish, HTML Help.
- 3CX многоканальный телефон.
- Чтобы создать список наших сотрудников по номерам 01-10,
- в Главном меню - Соединения
- Soft keys
- А там
- либо добавляем: N Speed dial 020148,020149,...,020157(=1,2,...,10) Имечко Any (OK внизу формы)
- либо у того, кто вручную заполнил, нажать кнопку Save и сохранить его труды в файл.blf,
- а у себя Load из этого файла.
в т.ч. НЮЛ
- НЮЛ на Windows7
- Драйверы - наш ftp\temp\distrib\Vfp-odbc\*.* - в любой каталог. Установить .msi.
- Через нашу программу (закладка НЮЛ - Имя источника...) или Program files\Windows\System32\odbcad32.exe
- добавляем в Пользовательский DSN драйвер Microsft Visual FoxPro. 2 раза Таблицы Visual FoxPro + тчк на Free...
- НЮЛ - при переносе декл по прибыли период 46 вместо 34 оттого, что сначала зашли через декабрь (в самом НЮЛ) вместо квартала.
- В самом НЮЛ - Настройки - Отчётные формы. Стоя на нужной вторая иконка - Периоды представлений:
Периоды представлений | |
---|---|
Период | Код периода |
Год | 1 |
1-е полугодие | 2 |
2-е полугодие | 3 |
Январь | 4 |
Февраль... | 5... |
Декабрь | 15 |
1-й квартал | 16 |
...4-й квартал | ...19 |
- Код формы da - для декл по прибыли
- Хранится это в BASES\formsperiod.dbf
- arc32.exe
- Вторая строка иконок
- New Connection Wizard - создать соединение
- Test Queries select * from formsperiod where kodf='da'
- там строки с датой конца 9999 года про 4 (январь), 5 (февраль), ..., 4 квартал (19).
- Стираем на фиг 4-15 и оставляем только кварталы.
- НЮЛ - Как скопировать Реквизиты предприятия-плательщика во вновь установленный "с чистого листа" НЮЛ из существующего каталога НЮЛ.
- копируем ...\INPUTDOC\BASES\payerscur, rgst .dbf/.cdx
- ...\INPUTDOC\FILIAL\P00000х\consts, ifnsinfo .dbf/.cdx
- ВАЖНЫЙ файл ещё ...\INPUTDOC\FILIAL\P00000х\krmnreg.dbf/.cdx
- НЮЛ - Где регистрируются внесённые в НЮЛ декларации, их периоды и номера уточнений.
- ...\INPUTDOC\FILIAL\P00000х\j_state01s(02s).dbf, scales.dbf, (ndslist.dbf - для декл.НДС)
- ...\INPUTDOC\BASES\jur001.dbf
- и, наверняка, какие-то ещё - перечислены те, что удалось идентифицировать.
- Как принудительно проставить признак Проконтролирован
в т.ч. XML
- XMLmapper.exe - находится на сервере в !distr, требует для работы midasx.dll (ищи у любого клиента в \Fabius\Program).
- Задача из .xsd (xml schema definition) создать .xtr (xml transformation).
- (Оба файла (.xsd, .xtr) нужны для вызова в ФАБИУС функции XMLMapper().)
- XMLmapper: File - Open (расширения .xsd). Слева (окно Document, а снизу закладка Document View) открылось дерево с узлами.
- В средней части внизу ставим XML to Datapacket.
- Слева на пустом пространстве rght btn Select All, снова rght btn Create Datapacket from XML.
- В средней части появились заполненные строки. Закладка NodeProperties снизу в средней части - св-ва каждого элемента.
- В правой части (окно Datapacket) rght btn Save Datapacket.
- Возможно в средней части rght btn Test Transformation.
- Полезные ссылки:
- Online_XSD_to_XML
- Пример_XML_схемы
- Введение_в_XML
- Утилиты работы с XML, XSD
- XmlPad - в верхнем левом углу - структура открытого xsd в виде дерева
- XML Notepad 2007
- XML Viewer
- Altova XMLSpy, MapForce, ...
- NotePad++
- Создать схему .xsd по .xml в Excel
- Закладка Разработчик, кнопка Импорт (выбираем .xml, сообщение про отсутствие схемы, ОК) - отобразится таблица, конвертированная из выбранного .xml
- Снова закладка Разработчик, кнопка Источник - справа отобразится автоматически сгенерированная .xsd-схема.
- Но как её сохранить, я не нашла....
- Посмотреть схему .xsd в удобочитаемом виде через Excel
- Закладка Разработчик, кнопка Источник - справа появится окно Источник XML, внизу окна кнопка Карта XML, там Добавить.
- Посмотреть тип и длину атрибутов элементов по схеме .xsd
- 1) XMLmapper: File - Open (расширения .xsd). Слева (окно Document, а снизу закладка Document View) открылось дерево с узлами.
- В средней части внизу ставим XML to Datapacket.
- Слева на пустом пространстве rght btn Select All, снова rght btn Create Datapacket from XML.
- В средней части появились заполненные строки. Закладка NodeProperties снизу в средней части - св-ва каждого элемента.
- Если слева встать на атрибут (в средней части закладка NodeProperties), в верху средней части будут тип и размер атрибута.
- 2) утилитой Altova XMLSpy: открываем .xml. Сверху в меню DTD/Schema - Assign Schema. Теперь в левом нижнем окне Info видны характеристики элементов и атрибутов, на которые встаёшь в среднем окне.
- 3) через XML Viewer: открываем сам .xsd (All Files *.*), встаём на правом окне на узлы с xs:attribute, при этом в средней части удобочитаемой становится соответствующая этому атрибуту часть схемы.
- Удобная работа с .xml
- в Altova XMLSpy открываем .xml, внизу закладка Grid. По rght btn Insert, Append, AppendChild + вверху иконки типа InsertRow.
- Если открыть .xml (не .xsd), то в закладке Text можно сворачивать аннотации и другие узлы вручную или по rght btn.
- в NotePad++ можно сворачивать узлы вручную или по rght btn.
- Если файл .xlsx (MS Excel c 10-го) переименовать в .zip, его можно посмотреть TotalCmd в виде папок, внутри которых файлы xml.
Работаем в ФАБИУС
- Оттенки для Grid, например, {'clWhite','clBlack','$00D6D6D6'}. Код оттенка можно получить
- в нашей программе Настройки - Цвета и шрифты, Поль-ль + все задачи.
- Заголовок окна - Фон. Кнопка Определить цвет (внизу) - добавить его в Допцвета и выбрать.
- Потом лезем в R204: Set Filttr UserCode=Поль-ль, IdName TitleFont, FontColor $шестнадцатеричное_число.
- или http://ahead.org.ua/palette.php
- Определить 16-ричный код цвета
- Сервис ... Цвета и шрифты ... - Фон. Кнопка "Определить цвет >>".
- Выбрать нечто OK слева внизу.
- Теперь - в R204 по max SittingNum ищем FontColor.
- В ФАБИУС'е в тексте сделать фразу выделенной, а при нажатии на неё что-то высветить
- Пишем текст (например, в Хронологии изменений), в нём <:Message('сам дурак')~'Жми сюда'>.
- Тогда читатель увидит в нашем тексте ПОДСВЕЧЕННОЕ Жми сюда, а нажав получит Message... .
- При разработке печ.форм .rtm перенос выделенного фрагмента из Excel (НЕ выделение части экрана ScreenHunter'ом, а именно область ячеек и Ctrl-C)
- в RichEdit на печатной форме (в меню - Edit, Вставить, Windows BitMap) - всегда не помещается на лист.
- Чтобы при сокращении области (в режиме Edit) не пропадали вертикальные и горизонтальные разметки ячеек под цифры/буквы:
- - либо прямо в Excel вместо точек нарисовать тонкие линии (Границы - Все границы)
- - либо в сначала Excel выделить (все или правые - где цифири) вертикали ячеек и уменьшить их ширину (обычно 2.14, а задаём 2 или 1.9).
- В arc32 не посмотришь одновременно и названия полей, и их тип/размер в структуре базы
- Вызываем в любом месте ФАБИУС (Ctrl-Alt-E) ф-ю STRUCT_EXCEL_R261(), задаём имя базы и путь.
- Получаем Excel-файл со структурой. Изначально написала для копирования стр-р НЮЛ в R261.
- Сделать в эталоне частным для кого-то
- Стоя на их данных - сравнение с эталоном, синим, замок (сверху иконка), а уже потом "положить в эталон" (светящийся листок).
- Чтобы распространить частность ещё на кого-то: Эталона с рабочим - Частные данные - иконка сороконожка либо в R248
- дописывать аббревиатуры через ;.
- ИСКЛЮЧИТЬ ИЗ ДЕРЕВА МОДУЛЕЙ какой-то пункт
- R174, на нужной записи Shift-F6.
- Эта ссылка добавится в их R304 (НЕ эталонный).
- Стереть из R174 эту запись. ЭТО СПОСОБ С ИХ СТОРОНЫ.
- СПОСОБ 2: сделать то же самое в эталоне.
- Вроде, так: на их данных Alt-M. Удалить пункт.
- Сравнение Рабочего с Эталоном. Повесить замок. Тогда это запишется в эталонный R248.
- Спр-к, отображаемый (через R174) НЕ представлением, хочется видеть изначально таблицей - без разделения.
- в R174: GetReferns аргументы: (1-я строка) R13 (строк 2 3 4 5 нет) строка 6 2(двойка)
- Определить имя компа по сетевому адресу
- RunProcess('cmd /c nbtstat -a 192.168.199.100 > z:\Fabius_TD\_Софтсервис6\tt.txt 2>z:\Fabius_TD\_Софтсервис6\tte.txt ')
- Порядок отработки формирования проводок (Ctrl-F5) по УРОВНЯМ док-та.
- Документ:
- На уровне шапки документы А и Б. У документа А 3 дочерних записи на уровне 2 (а1,а2,а3), у документа Б - 2 дочерних записи б1 и б2.
- Шаблоны R221 для этого типа документа:
- 1. проводка уровня 1
- 2. проводка уровня 1
- 3. проводка уровня 2
- 4. проводка уровня 2
- По Ctrl-F5:
- 3 для а1, 4 для а1
- 3 для а2, 4 для а2
- 3 для а3, 4 для а3
- 1 для А
- 2 для А
- 3 для б1, 4 для б1
- 3 для б2, 4 для б2
- 1 для Б
- 2 для Б
- В ФАБИУС проверить, новая ли версия Excel
- iif(Progr('NewExcel'), 'vvv.xltx', 'vvv.xlt') + ф-я OfficeKind()
- Максимово частичное обновление
- У РАЗРАБОТЧИКА в fabius.ini вставить
- MAKER=Softs
- ServicePath=\\SERVER\vol1\SERVICE\DB
- У РАЗРАБОТЧИКА В меню Справка сверху появится пункт Поддержка. Там Выложить версию (z:\SERVICE\FTP\PARTIAL\).
- У ПОЛЬЗОВАТЕЛЯ Справка - Центр поддержки - Проверить наличие версии и обновлений.
- У РАЗРАБОТЧИКА Посмотреть, кто из пользователей обновился:
- Справка - Поддержка - Таблица версий F7,F9.
- Если разработчику нужно отменить своё обновление:
- Справка - Поддержка - Таблица версий. Запоминаем имя файла архива, стираем его с диска, и удаляем строку в таблице версий.
в т.ч. SQL-запросы
- Отобрать записи R08 с задвоенными кодами
- select rr08.kod from
- (select kod, count(kod) kk from r08 group by kod) rr08
- where rr08.kk>1
- или
- select kod, count(kod) ccc from r08 group by kod having ccc>1
- Отобрать из спр-ка с хронологией значения с датой не более заданной
- select RR.KODPROD, RR.ISSUE from R191 RR, (select MAX(DATDOC) DATDOC, KODPROD from "+;
- (select DATDOC, KODPROD, ISSUE from R191 where DATDOC<='"+SQLDate(BoM(CurDate))+"') SS group by KODPROD) DD
- where RR.DATDOC=DD.DATDOC and RR.KODPROD=DD.KODPROD
- Проанализировать причины длительного формирования запроса
- Запускаем запрос (R238 или через дерево модулей)
- Параллельно запускаем arc32.exe (\Fabius\Program).
- Сверху слева Remote Server Info (лицо с экраном).
- Указываем Server Drive и кнопка Connect.
- На закладке Active Queries в таблице встаём на нужный запрос. Внизу выделяем цветом и копируем текст под Current Query.
- Завершаем arc32.exe.
- Идём в OpData, встаём на DICT.ADD, ENTER = открываем его в arc32 (AdsSys без пароля).
- Слева в дереве встаём на DICT и сверху нажимаем на иконку Test Queries (cетка с SQL).
- Вставляем из буфера текст (меняя insert на select при необходимости), а перед вставленным текстом пишем SHOW PLAN FOR (далее текст запроса).
- Запускаем выполнение зелёным треугольником (Executes or continues...)
- Смотрим внизу закладку Data (если там пусто - закладку Messages): обращаем внимание на
- EstimatedExecution - в попугаях предполагаемое время выполнения
- Warning
- Запрос на поиск по каждому изделию (KANAL3) контрагента (KANAL2) с максимальной выручкой
- SELECT DISTINCT p.KANAL3, p.KANAL2
- FROM (select KANAL3,KANAL2,SUM("SUM") SM from PRVS0717 where left(KRED,8)='90-1-5-1' and KREFL1='R267' and KANAL1=53 and KREFL3='R11' and KANAL3<>0 and left(STATUS,2)<>'np' group by KANAL3,KANAL2) p
- JOIN (SELECT MAX(SM) as MAX_SM,KANAL3
- FROM (select KANAL3,KANAL2,SUM("SUM") SM from PRVS0717 where left(KRED,8)='90-1-5-1' and KREFL1='R267' and KANAL1=53 and KREFL3='R11' and KANAL3<>0 and left(STATUS,2)<>'np' group by KANAL3,KANAL2) ss
- GROUP BY KANAL3) m
- ON p.SM = m.MAX_SM AND p.KANAL3=m.KANAL3
в т.ч. EXLReport (в .rpt вызывается ExcelReport())
- Описание EXLReport
- запускаем (на раб. станции) c:\_dt\winhlp32.exe.
- Предлагается выбрать .hlp-файл, выбираем расположенный там же EXLReport.hlp.
- В нём идём на ЗАКЛАДКУ Содержание, а там TEXLReport component.
- Там перечень Свойств, Методов, Событий.
- Если интересует событие, смотрим - какие параметры переданы на вход,
- например, при отработке <FORMATCELL> (= событие OnFormatCell) доступны
- The following band types are available: Title, Group Header, MasterData, Detail Header, Detail Data, Detail Footer, Group Footer, and Summary.
- Для ПРИМЕРОВ ищи *.rpt c <SETCELLVALUE>, <FORMATCELL>, <AFTERBUILD>.
- Нужно АВТОМАТОМ сохранить получаемую распечатку.
- 1) Visual Basic (НЕ забудь добавить Module1) Эта книга - ViewCode примерно так:
- Private Sub Workbook_BeforeClose(Cancel As Boolean)
- 'cur_file = Application.AltStartupPath 'Neaaa Ieaao - au? ia?aa ioe?uoeai WorkBook.Open iianiauaaao n?aa 2 ?iaiuo "iooy".
- 'cur_file = Left(cur_file, InStr(cur_file, ";") - 1) & "\hdrs.txt"
- 'fl = FreeFile
- 'Open cur_file For Input As #fl
- ActiveWorkbook.SaveCopyAs "H:\YY.XLS"
- 'Set NewBook = Workbooks.Add
- 'NewBook.SaveAs Filename:="H:\tt.xlt" FileFormat:=xlNormal
- End Sub
- 2) ЛИБО в самом .rpt
- <AFTERBUILD>
- Local fl:=SeekRef('R221', ReportCode(), 'FILENAME', 1)
- CopyFile(EtalonPath+'\dummy.xls', fl) //dummy.xls - обычный пустой файл Excel
- OleRun(WorkSheet,'SaveAs("'+fl+'")')
- В Excel-отчёте, формируемом по некоторой базе, нужно заполнить колонку A фотографиями из второй базы
- <OPENPIPELINE>
- Global fst_tm:=.t.
- //на основную базу наложить фильтр/отобрать выделенные, установить на первую строку печати
- //открыть вторую базу (где фото) и сделать текущей
- Excelreport("SampleImage.xlt",,ОсновБаза,,...MasterData Axx:Zxx) детальная полоса xx
- <FORMATCELL>
- Local ss
- if (RowInTemplate=X and ColumnInReport=A) //местоположение ячейки для фото в шаблоне (в .xlt в ячейке Axx #photo)
- //установка положения набора данных с фото
- if fst_tm; DBGoTop(); else; fst_tm:=.f.; DBSkip(); endif
- //картинка из записи базы с фото - в буфер обмена
- PictFromFieldToClipBoard('photo')
- ss:='A'+RowInReport
- // текущий диапазон вставки картинки
- OleProc(WorkSheet,'Range(ss,ss).Select')
- // вставка из буфера обмена
- Oleproc(WorkSheet,'Paste')
- Сменить символ начала разметки полей в шаблоне .xlt (по умолчанию #)
- ExcelReport('PBU18_GF2.xlt','1', , ,Dictnr, { {'Title','A1:N29'} },~FieldSign:='?')
в т.ч. ReportBuilder
- Описание RBuilder
- запускаем (на раб. станции) c:\_dt\winhlp32.exe.
- Предлагается выбрать .hlp-файл, выбираем расположенный там же RBUILDER.hlp.
- В нём идём на ЗАКЛАДКУ Содержание, а там Classes (например, TppChildReport).
- Посмотреть в отладчике источник данных для какого-то из SubReport'ов
- 1) узнать имя этого объекта: в Summary основного отчёта это метка SubReportХ, а в инспекторе объектов это ChildReportY.
- Нажимаем сверху в меню Инспектор объектов, стоя на чём угодно, а потом перемещаемся на закладку (снизу) нужного подотчёта.
- Смотрим на заголовок окна Инспектора: Свойства элемента ppChildReportY:TppChildReport.
- 2) В начале отработки события OnPrint ставим точку останова
- <SubReportX/PRINT>
- и смотрим выражение GetProperty('DataPipeLine',GetProperty('ChildReportY'))
в т.ч. обращение к формам и их свойствам (KlBrowse.pas)
- Стоим на уровне DOCS2, но некоторые функции=кнопкисверху воспринимают как текущую форму DOCS1 (DOCS2 лежит на ней = дочерняя). Нужно обратиться к форме DOCS2.
- tbl - это GetArea() для DOCS2
- tbl:=GetProperty('DataSource.DataSet', GetProperty('ActiveControl',GetForm('DOCS1'))), GetForm(tbl)
- уменьшение размера шрифта и цвета колонок при вызове MyGrid <onShow>
- Local ii, grid_obj, col_obj, cols_ttl
- grid_obj:=GetProperty('GridFrame',GetForm())
- SetProperty('CurGrid.Font.Size',8,grif_obj)
- cols_ttl:=GetProperty('CurGrid.Columns',grid_obj,-1)
- for ii:=0 to cols_ttl -1
- col_obj:=GetProperty('CurGrid.Columns',grid_obj,ii)
- SetProperty('Title.Font.Size',8,col_obj)
- if GetProperty(FieldName',col_obj)='XXX'
- SetProperty('Title.Color',StringToColor("$FFF8F0"),col_obj)
- elseif ...
- endif
- SetProperty('Font.Size',8,col_obj)
- next
- Заголовок окна текущей таблицы GetProperty('Caption', GetForm(GetArea()))