Нехитрые советы для пользователей ПК

Компьютерный софт

List adminUsers =

RetrieveUsersForAdminRole(RoleType.Admin);

User firstUser = null;

If (adminUsers != null) && (adminUsers.Count > 0)

{

firstUser = adminUsers[0];

Это можно заменить простым запросом LINQ:

List adminUsers =

RetrieveUsersForAdminRole(RoleType.Admin);

User firstUser = adminUsers.FirstOrDefault();

Если пользователей не найдено, будет возвращено значение по умолчанию лежащего в основе типа.

4. IComparer для сортировки

Вам больше не нужно писать сложные классы IComparer, чтобы сортировать данные. Теперь для упорядочения можно использовать метод OrderBy. Приведенный ниже пример запроса отличается краткостью: var filteredUsers = Users.Where(u => u.Active && u.AllowLogin && !u.Loggedln) .OrderBy( u => u.Name);

 Функция OrderBy принимает параметр, используемый для сортировки. Если нужна множественная сортировка, нужно применить оператор ThenBy.

 var filteredUsers = Users.Where(u => u.Active && u.AllowLogin && !u.Loggedln) .OrderBy( u => u.Name).ThenBy(u => u.Location);

 Сортировать можно и в порядке убывания. В LINQ для этого есть оператор OrderByDescending.

var filteredUsers = Users.Where(u => u.Active && u.AllowLogin && !u.Loggedln) .OrderByDescending( u => u.Name) .ThenBy(u => u.Location);

5. Не используйте циклы для инициализации массивов

Не следует использовать циклы для инициализации массивов. Все мы делали это, чтобы написать быстрый код для тестирования. Теперь это можно заменить методом System.Linq.Enuemerable.Range. int[] monthsInAYear = new int[12];

for (int counter = 0; counter < monthsInAYear.Length; counter++)

     {

    monthsInAYear[counter] = counter + 1;

  }

В LINQ это займет одну строку кода:

int[] monthsInAYearByLINQ = System.Linq.Enumerable.Ranged(1, 12).ToArray();

6. Замена двух аналогичных циклов конкатенацией

Если вам нужно в коде пройти по двум массивам, аналогичным по своей природе, можете использовать метод расширения Concat, чтобы написать лаконич­ный код. Рассмотрим пример:

int[] firstArray =

System.Linq.Enumerable. Range(1, 12).ToArray(); int[] secondArray =

System. Linq. Enumerable. Range(13, 12).ToArrayO;

  foreach (var fa in firstArray)

      {

allElements.AppendLine(string.Format(«{0}», fa));

}

foreach (var sa in secondArray)

      {

    allElements.Append Line(string.Format(«{0}», sa));

 }

А вот код, в котором задействован оператор Concat:

int[] firstArray =

System. Linq. Enumerable. Range(1, 12).ToArrayO; int[] secondArray =

System. Linq. Enumerable. Range(13, 12).ToArrayO;

foreach (var a in firstArray.Concat(secondArray))

{

    allElements.AppendLine(string.Format(«{0}», a));

}

7. Избегайте преобразований

Преобразование — это методика, используемая для возвращения новой коллекции, получаемой за счет прохождения в цикле по другой коллекции и применения фильтра. Возьмем для примера текст, приведенный ниже. Здесь после прохождения в цикле по коллекции создается массив.

public Users[] FindUsers(RoleType r)

{

IEnumerable users = FindUsersQ;

 List filteredUsers = new List();

foreach (User u in users)

{

filteredUsers.Add(new User {

FirstName = u.FirstName,

return filteredUsers.ToArray();

 }

Вместо того чтобы создавать временный список и затем заполнять его значениями, можно воспользоваться методами LINQ Select и ToArray для возврата результатов.

public Users[] FindUsers(RoleType r)

 {

return FindUsersQ .Select(user => new User {

FirstName = u.FirstName,

.Where(user => user.Role == r)

 .ToArray();

}

8. Ключевое слово let

Ключевое слово let позволяет создавать временные переменные в запросе LINQ, благодаря чему ваш Select становится проще читать и изменять. Вы можете предварительно определять переменные на опре­деленном этапе запроса. Эти переменные затем могут быть использованы в остальной части запроса.

Например, следующий запрос вычисляет среднее значение дважды. Второе вычисление можно не

производить, если применить оператор let. Благодаря сокращению объема вычислений запрос будет работать быстрее.

var results= from store in Stores

where store.Sales.Average(s => s.Price) > 500 select new {

Name = store.Name, StoreAveragePrice =

store.Sales.Average(s => s.Price) };

 Вот этот же фрагмент, использующий let:

var results= from store in Stores let AveragePrice =

store.Sales.Average(s => s.Price) where AveragePrice > 500

 select new {

Name = store.Name,

 StoreAveragePrice = AveragePrice

};

9. RegEx + LINQ?

Запросы LINQ могут упростить работу, если вы при­меняете регулярные выражения. Посмотрите на сле­дующий пример, в котором мы проходим по коллек­ции с использованием регулярного выражения.

Обратите внимание на то, что с отобранными при помощи RegEx результатами можно выполнять другие запросы LINQ.

List examinerStatements = new List();

examinerStatements.Add(«Mark was present.»);

examinerStatements.Add(«Julie was present.»);

examinerStatements.Add(«John was absent»);

System.Text.RegularExpressions.Regex myRegEx = new System.Text.RegularExpressions.Regex(«present»);

var presentStudents = examinerStatements .Where(statement =>

myRegEx.IsMatch(statement)).ToList();

 foreach (var examinerStatement in presentStudents)

{

Наверное, вы знаете, что запросы LINQ нельзя осуществлять со списками ArrayList. Дело в том, что они

Подготовка таблицы для MapInf0 (на рисунке обведено красным). В приведенном ниже примере в выгружаемую таблицу будут помещены данные («поконтурно») по агрохимическому обследованию некоего ОАО Дружба за 2009 г.

tabletomi_1-6418886

Далее появляется форма, в которой задаётся имя выгружаемой таблицы (в приведенном примере — kolxozA):

tabletomi_2-1172521

Далее идём в MapInfo (меню Файл>Открыть), открываем базу agrohim.mdb :

tabletomi_3-4771404

… и  ищем в списке таблиц базы только-что  созданную таблицу kolxozA :

tabletomi_4-1618473

Результат будет выглядеть приблизительно так:

tabletomi_5-9725260

Как видите, в таблицу будут помещены следующие данные: номер участка(nu), площадь(su), pH, содержание P2O5, K2O и гумуса. Дальше, для построения тематических картограмм(примеры см.

здесь)  осталось «привязать»(binding)  эту таблицу к вашим пространственным данным. Этот момент уже рассмотрен на нашем сайте и его можно посмотреть по этой ссылке.

Теперь небольшое «лирическое» отступление по поводу интеграции программы «Банк агрохимических данных» и ГИС. Иногда высказывается мнение, что неплохо было бы объединить работу с пространственными данными и атрибутивной информацией (база данных) в одном программном пакете. (Так,»чтобы можно было просматривать/цифровать/макетировать и набивать/хранить  данные в одной программе»). Да, неплохо, слов нет. Но тут возникают некоторые вопросы:

  1. Кто будет финансировать работы по созданию такой интегрированной ГИС для организаций агрохимобслуживания? Создание полноценной узкоспециализированной  ГИС — дело не одного года даже для коллектива опытных разработчиков.

  2. А есть ли вообще необходимость изобретать велосипед (разрабатывать доморощенную ГИС) на фоне существующих доминирующих игроков(ArcGIS, MapInfo). По нашему скромному мнению, вышеназванные ГИС предлагают исчерпывающие возможности, и решение проблемы лежит, по-видимому, в создании неких настроек(Add-On’ ов, Plug-In’ов) к этим ГИС. Да и то сказать, учитываю весьма высокую степень специфичности(уникальности) подходов, вряд ли стоит надеяться на полную универсальность любой созданной надстройки. Как минимум, потребуется индивидуальная подгонка каждого такого решения под специфические особенности каждой организации. Готовы ли организации оплачивать даже такой примитивный подход? Вопрос (учитывая уровень компетентности и заинтересованности лиц, принимающих решения).

Опыт Лаборатории АгроГИС-технологий говорит о том, что 90 % потребностей организаций агрохимического обслуживания в области ГИС-технологий связано с оформлением/выдачей заказчику тематических картограмм по результатам  агрохимического обследования. Если попытаться структурировать такой подход, то он требует выполнения двух основных задач:

  1. Оцифровка/оформление(макетирование)/просмотр/печать тематических картограмм. Инструмент решения -> ГИС-пакет.

  2. Ввод данных/хранение/получение отчетов (аналитики) по результатам агрохимических обследований . Инструмент решения -> программа (оболочка) «Банк агрохимических данных» (неважно какого производителя, важно, чтобы она устраивала конкретную организацию).

И тут есть небольшое противоречие (коллизия): ГИС-пакеты (неадаптированные!) не очень хорошо работают с с базами данных сложной структуры и наличием большого количества логических связей. А специфические приложения баз данных( типа, в данном случае, «Банк агрохимических данных») не содержат функций ввода/отображения/анализа пространственной информации. Но, к счастью, решение проблемы , на наш взгляд, довольно простое и заключается в следующем подходе: Цифруйте/оформляйте/смотрите ваши пространственные данные в приглянувшейся вам ГИС, а данные для анализа (построения тематических картограмм) берите из вашей базы данных и привязывайте их к пространственным данным. О том, как это сделать , используя ГИС MapInfo и программу «Банк агрохимических данных» мы постарались подробно рассказать на нашем сайте.

© Simashkov.2010

22.07.2010 г.

       II.1 Главная Форма Программы

      II.2 Форма Справочник и выбор хозяйства

     II.3 Форма  ДобавитьУчасток

      II.4 Форма Таблица ввода микроэлементов

II.

5

Форма Настройки

                 II.5.1 Форма Настройки (Вкладка1)

                 II.5.2 Форма Настройки (Вкладка2)

      II.6 Форма Отчеты

      II.7 Форма Выбор СводныйОтчет По району

      II.8 Форма О Программе

III. Отчеты, генерируемые Программой

               III.1 Отчеты по хозяйству

               III.1.1 Титул Агрохим.паспорта

                  III.1.2 Экспликация

                            III.1.2.1 Экспликация 1

                            III.1.2.2 Экспликация 2

                   III.1.3 Паспортные ведомости

                           III.1.3.1 Паспортная ведомость

                           III.1.3.2 Паспортная ведомость с образцами (Контрольная)

                           III.1.4 Очередность работ

                  III.1.5 Тематическая раскраска контуров (участков)

                           III.1.5.1 Тематическая раскраска (Цветная)

                           III.1.5.2 Тематическая раскраска (Ч/б) 

                         III.1.6 Заключение

                 III.2 Сводные отчеты

                           III.2.1 Сводный отчет по району (Районный очерк)

                                        III.2.1.1 Кислотность (pH)

                                        III.2.1.2 Подвижный фосфор (p2o5)

                                        III.2.1.3 Обменный калий (k2o)

                                        III.2.1.4 Гумус (%)

                                        III.2.2 Справка об обследованных объемах

IV.

Используемые Справочники

                             IV.1 Справочник сельхозугодий 

                             IV.2 Справочник типов почв 

Назад

Cлучается, что широко-известный антивирус Касперского проявляет излишнюю осторожность и блокирует работу совершенно безобидных программ. Например, мне довелось столкнулся с тем, что Kaspersky Internet Security (KIS) не разрешает передавать файлы по встроенному в Total Commander FTP-клиенту.

К счастью, решить такую коллизию довольно легко. Всё в том же Kaspersky Internet Security жмем на кнопку Дополнительные инструменты … :

Далее выбираем Дополнительно > Угрозы и исключения :

На сл. форме выбираем Настроить исключения :

Жмем на кнопку Добавить … :

… и выбираем выполняемый модуль программы, для исключения из проверки антивирусом ( TOTALCMD.exe для случая нашего примера):

Ну собственно и всё. Теперь KIS не будет блокировать работу указанной программы.

В версии KIS 2016 (16.0.0.614) описанный механизм запуска доверенных программ реализован несколько иначе.

На Гл. форме выбираем Дополнительные инструменты :

Далее щелкаем  слева по Режим Безопасных программ :

… и попадаем в форму генерации списка проверенных программ — тут нужно будет немного подождать :

В конце пути разрешаем нужные действия — например Total Commander‘у передавать данные по ftp :

Другой банальной причиной того, что ваш любимый браузер вдруг перестал запускаться может быть выставленный в положение Запрещен переключатель  Запуск  :

Теперь попробуйте с такой настройкой загрузить все тот же Google Chrome — точно потерпите фиаско :

В общем, мораль ясна. Если  появились проблемы при выходе в Сеть или не запускается новая программа — посмотрите внимательно настройки Антивируса Касперского (если он у вас установлен, понятное дело :-). Не исключено

,

что именно тут и  зарыта собака …

Как с помощью Касперского скрыть следы работы на компьютере — смотрите информацию по этой ссылке

Если нужно срочно проверить устройство на вирусы , попробуйте бесплатную утилиту Kaspersky Virus Removal Tool

10.04.2016

 Назад

Внимание! Перед скачиванием  Программы рекомендуем ознакомиться с документом ReadMe

1. Файл ReadMe c Инструкцией по установке можно Просмотреть здесь

2. Просмотреть Краткую инструкцию по работе с программой «Банк агрохимических данных»

3. Просмотреть Демо-версию программы «Банк агрохимических данных» версии 5.3

Скриншот главной формы программы БАД СРФ  локальной (однопользовательской) версии v5.3

formmain53-3171809

6. 28.04.2011 Разработан сетевой (многопользовательский) вариант программы БАД СРФ v5.2 SQL с использованием в качестве сервера БД MS SQL Server 2005 Express Edition. SQL-сервер указанной редакции является свободно распространяемым программным продуктом и не требует лицензирования.

Функционал(возможности) и пользовательский интерфейс сетевой версии программы v5.2 SQL полностью соответствует однопользовательскому варианту, представленному в Демо-версии v5.3 (см п.3).

14.08.2011 Разработан очередной релиз программы Банк агрохимических данных — сетевой вариант за номером v5.4 SQL. В указанный релиз вошли следующие изменения:

  1. Доработана возможность настройки порядка ввода агрохимических показателей при вводе образца;
  2. В агрохимические показатели добавлен Азот (N)

    с соответствующим отображением во всех отчётах

    ;

  3. Оптимизирована работа программы БАД с использованиемMicrosoft SQL Server 2008 Express Edition

    в связи переходом пользователей на ОС

    Windows 7.

    Теперь

    ,

    если вы работаете на ОС

    Windows 7,

    рекомендуем для использования в качестве СУБД

    MS SQL Server 2008 Express Edition.

04.10.2011 Осуществлён переход на более современную версию библиотеки ресурсов генератора отчётов Crystal Reports для MS Visual Studio 2010. Перекомпилирована сборка программы с использованием .NET Framework 4.0

01.11.2011  Добавлены новые виды отчётов — Распределение почв по мех. составу . С примерами можно ознакомиться здесь

05.01.2012  Добавлены новые виды отчётов — Сводная агрохимическая характеристика подтипов почв пашни . С примерами можно ознакомиться здесь

04.02.2012   Добавлены следующие изменения:

  1. При настройке соединения сSQL-

    сервером реализована новая возможность — Поиск и отображение в списке доступных

    SQL-

    серверов в сети.

  2. Введена возможность ввода в атрибуты элементарной пробы (образца) кода мех. состава и типа почв,

    с соответствующими изменениями в Отчётах и интерфейсе главной формы программы.

  3.  Создан новый релиз программы БАД СРФ за номером версии v5.5 SQL . В него вошли все изменения,

    начиная с 04.10.2011

06.04.2012 Разработан очередной релиз программы БАД СРФ за номером v5.6 SQL. В него вошли сл. доработки:

  1. Создан новый вид Отчёта — Агрохимическая характеристика почв по группировкам микро/макро элементов (14 параметров) в разрезе типов/мех. состава почв. Образцы можно посмотреть здесь.
  2. Изменена форма Справочника хозяйств. С изменениями можно ознакомиться тут.
  3. Внесены изменения в кодп

    рограммы

    »

    под капотом

    «,

    направленные

    ,

    в основном

    ,

    на увеличение скорости генерации отчётов.

08.07.2012 Выпущен релиз программы БАД СРФ за номером v5.7 SQL. В него вошли следующие основные изменения:

  1. Добавлена новая возможность — теперь номера полей/участков можно вводить в символьно-числовом виде ( в предыдущих версиях использовались только цифры).
  2. В отчёты Агрохимическая характеристика почв по группировкам микро/макро элементов (14 параметров) добавлены отчёты отдельно по типу и мех.составу почв.
  3. Добавлены сервисные функции — теперь можно узнать версию используемогоSQL-

    сервера и дату последней введённой записи.

  4. Сервисные функции объединены в одной кнопке — Сервис.

01.12.2012 Выпущен релиз программы БАД СРФ за номером v5.8 SQL. В него вошли следующие основные изменения:

  1. Добавлена новая возможность — ввод промежуточного тура обследования.
  2. Существенно переработаны формы Отчёты и Сводные отчёты. Теперь доступ к меню отчётов реализован на одной форме в виде гиперссылок.
  3. Добавлен новый вид отчётов по хозяйству — Эколого-токсикологическая оценка земель сельхозугодий по содержанию тяжёлых металлов (Cu, Zn, Cd, Pb, Hg, As)
  4. 09.01.2013

    Добавлена новая возможность — создание круговых диаграмм распределения группировок по

    pH,

    фосфор

    ,

    калий и гумус в разрезе хозяйства и адм. района. С примером можно ознакомиться здесь

01.09.2014 Выпущен релиз программы БАД СРФ за номером v6.2 SQL. В него вошли следующие основные изменения:

  1. Добавлена новая возможность — хранение пространственных данных по элементарным участкам/контурам в форматеMS SQL

    .

© Simashkov.2009-2015

 

Grid Node Editor:

… и далее попадаем в галерею доступных форматов сеток:

Форма редактирования открытой таким образом сетки выглядит сл. образом:

Simashkov.2015

15.03.2015 г.

Назад