Рефераты. Анализ и оценка надежности и эффективности АИС "Бюджет"

</node>

- <node path="Снять принятие">

<value type="3" name="Действие">СнятьДатуПринятия</value>

<param value="Действие" type="3" name="crc32">$FED06E36</param>

<param value="Действие" type="3" name="version">36.044.79</param>

<value type="3" name="Картинка">Обновить</value>

<param value="Картинка" type="3" name="crc32">$BEC3BCE7</param>

<param value="Картинка" type="3" name="version">36.044.79</param>

</node>

</node>

</node>

- <node path="Действия">

- <node path="КонтрольКлассификации">

<value type="7" name="Код программы">включить '\Библиотеки\LibRu.lib'; включить '\Библиотеки\Forms.lib'; включить "Бюджет\Объекты\Контроль\Скрипты\События\КонтрольКлассификации"; включить '\Макросы\КИ\ПоддержкаПроекта'; включить 'project'; константы кПутьККонфигурации = "Бюджет\Объекты\Настройки\Консолидация\КонтрольКлассификации"; кКонфигурация = "Конфигурация"; // берем либо выделенные, либо текущую запись функция ПолучитьВыделенныеИлиТекущую(СеткаВвода: СеткаДанных; Данные: СтатическиеДанные): СтатическиеДанные; начало если СеткаВвода.ЕстьВыделенныеСтроки тогда результат := СеткаВвода.ПолучитьВыделенныеСтроки иначе начало // ничего не выделено, тогда занесем в выделенные текущую запись мастера результат := СоздатьСтатическиеДанные; результат.ПрисвоитьПоля(Данные); результат.Открыть; результат.СкопироватьЗапись(1, Данные); конец; конец; // функция ПроверитьКорректностьКлассификацииДанных(Данные: СтатическиеДанные; Конфигурация: СтатическиеДанные): Целое; переменные ИмяПоляДляКонтроля: строка; Классификация: строка; ТипПроверки: Целое; ТипКлассификации: Целое; начало результат := да; ИмяПоляДляКонтроля := Конфигурация.Поле('ControlField').КакСтрока; ТипПроверки := Конфигурация.Поле('ControlType').КакЦелое; ТипКлассификации := Конфигурация.Поле('ClsType').КакЦелое; Данные.Вначало; пока не Данные.ВКонце и результат делать начало Классификация := Данные.Поле(ИмяПоляДляКонтроля).КакСтрока; результат := ПроверитьКлассификацию(Классификация, ТипПроверки, ТипКлассификации); Данные.Следующая; конец; конец; // проверка отчета на корректность классификации функция ПроверитьКорректностьКлассификацииОтчета(КодОтчета: Целое; КодФормы: Целое; Конфигурация: СтатическиеДанные): Целое; переменные ФормаВвода: IBaseForm; НомерДетализации: Целое; ДанныеДетализации: СтатическиеДанные; начало результат := да; Конфигурация.SetScope(МассивИз(КодФормы)); если Конфигурация.ЧислоЗаписей > 0 тогда начало // загружаем детализацию ФормаВвода := ПостроитьФормуВвода(КодОтчета, КодФормы, nil); ФормаВвода.ShowDataEx(sdoNotShow + sdoStatic); // проверяем все контроли Конфигурация.ВНачало; пока не Конфигурация.ВКонце и результат делать начало НомерДетализации := Конфигурация.Поле('DetailNumber').КакЦелое; ДанныеДетализации := ФормаВвода.StaticSets(НомерДетализации); если ДанныеДетализации.ЧислоЗаписей > 0 тогда результат := ПроверитьКорректностьКлассификацииДанных(ДанныеДетализации, Конфигурация); Конфигурация.Следующая; конец; ФормаВвода.ClearStatics; конец; конец; // загрузка конфигурации из реестра функция ПолучитьКонфигурацию: СтатическиеДанные; начало результат := СоздатьДанныеИзРеестра(кПутьККонфигурации, кКонфигурация); результат.IndexFieldNames := 'FormID'; конец; // проверка набора отчетов функция ПроверитьНаборОтчетов(Выделенные, Заголовок, Конфигурация: СтатическиеДанные): Целое; переменные КлассификацияКорректна: Целое; КодОтчета: Целое; КодФормы: Целое; начало КлассификацияКорректна := да; результат := 0; Выделенные.ВНачало; пока не Выделенные.ВКонце делать начало КодОтчета := Выделенные.Поле('ID').КакЦелое; если Заголовок.Locate('ID', КодОтчета, 0) тогда начало КодФормы := Заголовок.Поле('TYPEDFORM').КакЦелое; КлассификацияКорректна := ПроверитьКорректностьКлассификацииОтчета(КодОтчета, КодФормы, Конфигурация); // записываем результат проверки если КлассификацияКорректна тогда начало Заголовок.Поле('ControlMessage').КакСтрока := ''; Заголовок.Поле('ControlResult').КакЦелое := -1; конец иначе начало Заголовок.Поле('ControlResult').КакЦелое := 10; Заголовок.Поле('ControlMessage').КакСтрока := 'Есть ошибки бюджетной классификации'; результат := результат + 1; конец; конец; Выделенные.Следующая; конец; конец; переменные ф: ФормаВвода; Заголовок, Выделенные, Конфигурация: СтатическиеДанные; КоличествоОшибок: целое; начало Ф := ПолучитьФормуВвода; Заголовок := Ф.Заголовки.Таблица; если не Заголовок.Active или (Заголовок.ЧислоЗаписей = 0) тогда ВызватьОшибку('Нет данных для проверки'); // считываем конфигурацию для проверки Конфигурация := ПолучитьКонфигурацию(); попытка // набор отчетов для проверки Выделенные := ПолучитьВыделенныеИлиТекущую(Ф.Заголовки.Сетка, Заголовок); попытка КоличествоОшибок := ПроверитьНаборОтчетов(Выделенные, Заголовок, Конфигурация); обязательно УдалитьОбъект(Выделенные); конец; обязательно УдалитьОбъект(Конфигурация); конец; // сообщаем результаты проверки если КоличествоОшибок = 0 тогда Сообщение('Ошибок ввода классификации не найдено') иначе Сообщение(Формат('Найдено %d документов с ошибочной классификацией', КоличествоОшибок)); конец.</value>

<param value="Код программы" type="1" name="AccessCount">23</param>

<param value="Код программы" type="2" name="AccessDate">39377,8330395718</param>

<param value="Код программы" type="3" name="crc32">$17DD9440</param>

<param value="Код программы" type="3" name="version">36.044.79</param>

<param value="Код программы" type="3" name="Export">DIMAN2\dzimitchev\16.02.2009 16:44:59</param>

<value type="4" name="Отладка">0</value>

<param value="Отладка" type="3" name="crc32">$26D930AC</param>

<param value="Отладка" type="3" name="version">36.044.79</param>

</node>

- <node path="КопироватьОтчет">

<value type="7" name="Код программы">включить '\Библиотеки\LibRu.lib'; включить '\Макросы\КИ\Запросы'; включить 'project'; /* Для получения запросов на заголовок и детализацию используются функции из модуля Запросы.ТекстПолногоЗапросаФормы и Запросы.ТекстЗапросаДеталиФормы соответственно Эти функции генерируют запросы для выборки и вставки полей с условием */ функция КопироватьДетализацию(КодНовогоОтчета, КодОтчета, КопироватьСуммы: Целое); переменные Данные: СтатическиеДанные; ЗапросВыборки, ЗапросВставки: строка; начало Данные := СоздатьСтатическиеДанные; попытка Данные.СоединитьБД; Данные.CachedUpdates := да; ТекстЗапросаДеталиФормы(ЗапросВыборки, ЗапросВставки, Формат('utypedformsdetail.recordindex=%d', КодОтчета)); Данные.Запрос := Формат('[PUMPDATA]{%s} [INSERTDATA]{%s}', ЗапросВыборки, ЗапросВставки); Данные.Открыть; Данные.ВНачало; пока не Данные.ВКонце делать начало Данные.Поле('recordindex').КакЦелое := КодНовогоОтчета; Данные.UpdateStatus := usInserted; Данные.Следующая; конец; Данные.СохранитьИзменения; обязательно УдалитьОбъект(Данные); конец; конец; функция КопироватьЗаголовок(КодОтчета: Целое): Целое; переменные Данные: СтатическиеДанные; ЗапросВыборки, ЗапросВставки, ЗапросИзменения: строка; начало Данные := СоздатьСтатическиеДанные; попытка Данные.СоединитьБД; Данные.CachedUpdates := да; ТекстПолногоЗапросаФормы(ЗапросВыборки, ЗапросИзменения, ЗапросВставки, '550', Формат('utfc.id = %d', КодОтчета)); Данные.Запрос := Формат('[PUMPDATA]{%s} [INSERTDATA]{%s}', ЗапросВыборки, ЗапросВставки); Данные.Открыть; результат := ГенерироватьДиап('g_shared'); Данные.Поле('DocNumber').КакСтрока := 'Копия ' + Данные.Поле('DocNumber').КакСтрока; Данные.Поле('ID').КакЦелое := результат; Данные.Поле('AcceptDate').Очистить; если не Данные.Поле('DocStateref').Пустое тогда Данные.Поле('DocStateRef').КакЦелое := (Данные.Поле('DocStateRef').КакЦелое цел 10) * 10 + 01; Данные.UpdateStatus := usInserted; Данные.СохранитьИзменения; обязательно УдалитьОбъект(Данные); конец; конец; переменные Заголовки: СтатическиеДанные; ф: ФормаВвода; КодОтчета, КодНовогоОтчета: целое; начало //задача: скопировать текущую запись, номер документа заменить на "Копия <номер документа>", дату принятия игнорировать... ф := ПолучитьФормуВвода; если ф.ЕстьИзменения тогда ВызватьОшибку('Перед копированием отчетов надо сохранить все изменения!'); Заголовки := ф.Заголовки.Таблица; если Заголовки.ЧислоЗаписей = 0 тогда ВызватьОшибку('Нет отчета для копирования!'); КодОтчета := Заголовки.Поле('ID').КакЦелое; // копируем заголовок КодНовогоОтчета := КопироватьЗаголовок(КодОтчета); // копируем детализацию КопироватьДетализацию(КодНовогоОтчета, КодОтчета, ); // сохраняем изменения ф.СохранитьИзменения; Сообщение('Отчет был успешно скопирован!'); конец.</value>

<param value="Код программы" type="1" name="AccessCount">12</param>

<param value="Код программы" type="2" name="AccessDate">39405,7255468518</param>

<param value="Код программы" type="3" name="crc32">$D33877EC</param>

<param value="Код программы" type="3" name="version">36.044.79</param>

<param value="Код программы" type="3" name="Export">DIMAN2\dzimitchev\16.02.2009 16:44:59</param>

</node>

- <node path="ОбновитьКД">

<value type="7" name="Код программы">включить '\Библиотеки\LibRu.lib'; включить '\Библиотеки\Forms.lib'; включить '\Библиотеки\ConsSupport.lib'; включить '\Библиотеки\Reports.lib'; включить '\Макросы\КИ\ПоддержкаФормВвода'; включить 'project'; константы НаборПолей = 'КонсолидацияДетализация.КодЗаписи,КонсолидацияДетализация.КодСтрокиЦелое,КонсолидацияДетализация.Код30,КонсолидацияДетализация.Сумма0, КонсолидацияДетализация.Сумма1,КонсолидацияДетализация.Сумма2,КонсолидацияДетализация.Сумма3,КонсолидацияДетализация.Сумма4, КонсолидацияДетализация.Сумма5,КонсолидацияДетализация.Сумма6,КонсолидацияДетализация.Сумма7,КонсолидацияДетализация.Сумма8, КонсолидацияДетализация.Сумма9,КонсолидацияДетализация.Сумма10,КонсолидацияДетализация.Сумма11,КонсолидацияДетализация.Сумма12, КонсолидацияДетализация.Сумма13,КонсолидацияДетализация.Сумма14,КонсолидацияДетализация.Сумма15'; // функция СоздатьПредставление(КодДокумента: Целое; НомерДетализации: Целое): ПредставлениеДанных; переменные Раскладка: ITableInfoX; Ы: Целое; начало Раскладка := ПоддержкаКонсолидации.СоздатьРаскладку(НаборПолей); Раскладка.Columns(0).Group := grpGroup; от Ы := 1 до Раскладка.Count -1 делать Раскладка.Columns(Ы).Group := grpNone; результат := ПоддержкаКонсолидации.СоздатьПредставлениеДанных(Раскладка); результат.Параметр('КонсолидацияЗаголовки.КодДокумента') := КодДокумента; результат.Параметр('КонсолидацияДетализация.НомерДетализации') := НомерДетализации; результат.Открыть; конец; // функция ПолучитьМатрицуДоходов(КодФормы: Целое): СтатическиеДанные; переменные ОписаниеФормы: ITypedForm; ФормаВвода: IBaseForm; начало ОписаниеФормы := МенеджерФормВвода.ФормаПоКоду(КодФормы); ФормаВвода := ПостроительФормВвода.BuildInputForm(-1, КодФормы); результат := ФормаВвода.StaticSets(0); конец; // функция ОбновитьЗаголовок(КодДокумента, КодФормы: Целое); переменные Детализация: ПредставлениеДанных; Доходы: СтатическиеДанные; Данные: СтатическиеДанные; начало если (КодФормы = 36100704) или (КодФормы = 36100706) или (КодФормы = 36101704) или (КодФормы = 36101404) или (КодФормы = 36100404) или (КодФормы = 36100406) тогда начало // получаем текущую матрицу доходов (по которой будем определять соответствие КД и кода листа Доходы := ПолучитьМатрицуДоходов(КодФормы); // создаем представление для обновления данных в БД Детализация := СоздатьПредставление(КодДокумента, 0); // меняем коды листа Данные := Детализация.Данные; Данные.Группировать(Доходы, 'Keys=Код30;Код30=Код30;КодСтрокиЦелое=КодСтрокиЦелое;default=false;insert=false'); // сохраняем изменения Детализация.СохранитьИзменения; конец; конец; // функция ОбновитьЗаголовки(Заголовки: СтатическиеДанные; ТолькоТекущая: Целое); переменные Код, КодФормы: Целое; начало если ТолькоТекущая тогда начало Код := Заголовки.Поле('ID').КакЦелое; КодФормы := Заголовки.Поле('TypedForm').КакЦелое; если Заголовки.Поле('AcceptDate').Пустое тогда ОбновитьЗаголовок(Код, КодФормы); конец иначе начало Заголовки.ВНачало; пока не Заголовки.ВКонце делать начало Код := Заголовки.Поле('ID').КакЦелое; КодФормы := Заголовки.Поле('TypedForm').КакЦелое; если Заголовки.Поле('AcceptDate').Пустое тогда ОбновитьЗаголовок(Код, КодФормы); Заголовки.Следующая; конец; конец; конец; переменные ф: ФормаВвода; Заголовки: СтатическиеДанные; Выделенные: СтатическиеДанные; начало ф := ПолучитьФормуВвода; Заголовки := ф.Заголовки.Таблица; если не Заголовки.Active или (Заголовки.ЧислоЗаписей = 0) тогда ВызватьОшибку('В заголовке нет данных'); если ф.Заголовки.Сетка.ЕстьВыделенныеСтроки тогда начало Выделенные := ф.Заголовки.Сетка.ПолучитьВыделенныеСтроки; попытка ОбновитьЗаголовки(Выделенные, нет); обязательно Интерфейс(Выделенные).Освободить; конец; конец иначе ОбновитьЗаголовки(Заголовки, да); Сообщение('Обновление завершено'); конец.</value>

Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11



2012 © Все права защищены
При использовании материалов активная ссылка на источник обязательна.