Некоторые ПОЛЕЗНОСТИ, в т.ч. не связанные с ФАБИУС
Материал из Фабиус wiki
Версия от 08:58, 2 августа 2019; 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)
- и ещё есть варианты
- Вычленить код из (631) Хлеб такой-то (RealName())
- =ПОДСТАВИТЬ(ЛЕВСИМВ(H2;НАЙТИ(")";H2)-1);"(";"")
- Некоторые функции EXCEL
- substr = Mid
- pos = InStr = НАЙТИ
- replicate = String
- at,rat,позиция подстроки в строке = InStrRev
- str = Str, CStr
- преобразования CStr, CBool, ...
- strtran = ПОДСТАВИТЬ
- alltrim = СЖПРОБЕЛЫ
- Строковые ф-и 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*
- Посмотреть почту до середины 2014
- По rdp соединяемся с нашим сервером: mstsc 192.168.234.15 Администратор softs3softs.
- На экране внизу слева на панели задач запускаем Hyper-V (2 сереньких системных блока).
- Cлева сверху стоим на SERVER, в виртуальной машине kerio-mail svn по правой клавише выбираем Пуск, (можно потом выбрать Подключить, чтоб видеть, как грузится виртуальная машина, потом это окошко загрузки крестиком закрыть).
- Теперь на любой машине, подключённой к серверу, запускаем browser.
- В строке адреса вводим 192.168.234.112 (без порта) support softs. Смотрим, что нужно.
- Теперь нужно завершить работу виртуальной машины: в запущенной на сервере kerio-mail svn по правой клавише выбираем Завершение работы.
Операционная система и сторонние программы
- Отключить звуки-предупреждения с клавиатуры
- Настройка - Панель управ. - Звуки и аудиоуст., закладка Звуки,
- Программные события (раздел 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://www.blankinfo.ru
- https://www.26-2.ru Упрощёнка support@sftserv.ru softs3softs
- http://mvf.klerk.ru/blank/1152004.htm
- http://www.buhsoft.ru/blanki
- http://www.1000form.ru
- POWERSHELL (аналог cmd)
- http://powershell-guru.com/faq-powershell-in-russian/
- Полное описание TotalCmd http://flint-inc.ru/tcinfo/all_cmd.ru.htm со встроенными командами!!
- Например, для расширенного по функционалу сравнения панелей набираем прямо в строке коммандера cm_FileSync.
- cm_CommandBrowser - вызов списка всех встроенных команд.
- Переименовать (однотипно) группу файлов в TotalCmd
- выделяем цветом нужные, потом Ctrl-M = cm_MultiRenameFiles
- Почта 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 из этого файла.
- Посмотреть Теневые копии
- Проводник, на нужном диске rgt btn - внизу Свойства, закладка Предыдущие версии.
в т.ч. НЮЛ
- НЮЛ на 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 on-line в ИНете
- http://xmlgrid.net выбираем вверху "XML to XSD" (http://xmlgrid.net/xml2xsd.html)
- Step 1: load XML file. You can copy and paste your XML data to the XML Data box, then click Load button. Or click the Open File button to load data from your local file system.
- Step 2: click the Generate XSD button, the generated schema will be displayed in an indented XML format.
- Step 3: click the Save button, to download the generated XSD file.
- You can do another XML document by clicking the Clear button.
- Создать схему .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.
- Поиск схем xsd на сайте format.nalog.ru, а там включить "Искать по КНД".
Работаем в ФАБИУС
- Оттенки для 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()))