Переключение на Главную Страницу Страницы: 1 ... 3 4 [5] 6 7 8 ОтправитьПечать
Очень популярная тема (более 25 ответов) wic: Python + PyQt4 (число прочтений - 57298 )
blindvic
Senior Member
****
Отсутствует



Сообщений: 486
Местоположение: Moldova
Зарегистрирован: 23. Июня 2008
Пол: Мужской
Re: wic: Python + PyQt4
Ответ #60 - 20. Февраля 2011 :: 17:23
Печать  
Думаю да. Правда мне еще это сделать нужно.  Смех
  
Наверх
 
IP записан
 
Salimbek
God Member
*****
Отсутствует



Сообщений: 862
Зарегистрирован: 06. Июня 2006
Пол: Мужской
Re: wic: Python + PyQt4
Ответ #61 - 21. Февраля 2011 :: 05:54
Печать  
VSozansky писал(а) 20. Февраля 2011 :: 10:54:
Вот для SQL Server 2008 R2
http://msdn.microsoft.com/ru-ru/library/ms186755.aspx


CREATE FUNCTION (Transact-SQL)
Создает определяемую пользователем функцию в SQL Server 2008 R2. Определяемая пользователем функция, представляющая собой подпрограмму Transact-SQL или среды CLR, которая принимает параметры, выполняет действия, такие как сложные вычисления, а затем возвращает результат этих действий в виде значения. Возвращаемое значение может быть скалярным значением или таблицей. При помощи этой инструкции можно создать подпрограмму, которую можно повторно использовать следующими способами.

При этом надо серьезно задуматься над системой доступа. Ведь что может помешать создать функцию, типа DROP TABLE $Документ.ПриходнаяНакладная ? Только ограничение пользователя в правах на уровне SQL-сервера, т.е. тонкий тюнинг на предмет (читаем из таблицы А, пишем в таблицу Б, можем удалять из таблицы В, можем управлять доступом для таблицы Г и т.д.). А это приведет к необходимости поддержки доступа к конкретной БД (команды доступа в pgSQL могут отличаться от IBM DB2, не говоря уже о SQLite). Поэтому обычно пользователя отделяют от самой СУБД при помощи приложения. Например создавая язык более высокого уровня (Регистр.СводныйОстаток по определению не может удалить таблицу $Документ.ПриходнаяНакладная). При этом ограничениями пользователя занимается приложение, а не СУБД.
  
Наверх
ICQ  
IP записан
 
VSozansky
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 24
Местоположение: Одесса
Зарегистрирован: 07. Августа 2006
Пол: Мужской
Re: wic: Python + PyQt4
Ответ #62 - 21. Февраля 2011 :: 06:55
Печать  
Salimbek писал(а) 21. Февраля 2011 :: 05:54:
При этом надо серьезно задуматься над системой доступа. .......
...............
При этом ограничениями пользователя занимается приложение, а не СУБД.


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

Использование пользовательских функций полезно и даже необходимо для формирования строкового представления объекта.

  
Наверх
IP записан
 
VSozansky
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 24
Местоположение: Одесса
Зарегистрирован: 07. Августа 2006
Пол: Мужской
Re: wic: Python + PyQt4
Ответ #63 - 21. Февраля 2011 :: 07:00
Печать  
Программа будет управлять документами. Они будут записываться в базу и предъявляться по требованию.

Вот определение документа:

Д О К У М Е Н Т  - это информационный объект, который может состоять из одной или нескольких частей. Каждая из частей может быть либо списком атрибутов, либо таблицей, либо иерархической структурой. Табличная и иерархическая часть,  состоит из строк, каждая из которых тоже является списком атрибутов. Набор атрибутов в табличной (или иерархической) части документа одинаков для каждой из строк. Часть документа может быть зависимой от одной, и только одной, части того же документа.

Вот определение атрибута:

А Т Р И Б У Т – это именованная единица хранения информации, способная принимать значения строго определенного типа. Атрибут может быть обязательным или необязательным.  Для атрибута могут быть определены значение по умолчанию и правило проверки правильности  заданного значения. Группа из одного или нескольких атрибутов может составлять уникальное сочетание, как в рамках части документа, так и глобально для всей информационной системы. Следует различать атрибуты, принимающие скалярные значения и атрибуты, являющиеся указателями (ссылками) на другие компоненты информационной системы.
  
Наверх
IP записан
 
VSozansky
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 24
Местоположение: Одесса
Зарегистрирован: 07. Августа 2006
Пол: Мужской
Re: wic: Python + PyQt4
Ответ #64 - 21. Февраля 2011 :: 19:59
Печать  
Требования к информационной системе (ТС)

ТС1 -  Информационная система это набор исполняемых программ.
Т.е. совсем не обязательно запихивать всю функциональность в один исполнимый модуль.

ТС2 - По-возможности, готовая систем не должна ничего знать о метаданных. Не должны использоваться метаданные.

ТС3 - информационная система должна снабжаться необходимым набором утилит, которые обеспечивают ее развертывание без привлечения средств СУБД и программных платформ.
Т.е. надо позаботиться о том, чтобы бедный администратор не изучал, например SQL Servеr чтобы систему развернуть, а запустил пару программ и хорошо.

ТС4 - информационная система, при необходимости, может поставляться  в исходных текстах.

ТС5 - Общие функции системы должны выделяться в отдельные компоненты с целью минимизировать дублирование кода.
Т.е. подход такой, если что-то может и должно использоваться более чем в одном документе (модуле), то есть смысл упаковывать это в отдельный компонент.


ТС1-1  В базе данных идентификация строки данных должна однозначно осуществляться по паре  значений (Таблица, Значение поля- идентификатора).  
Таким образом, мы сразу переходим к унифицированной схеме базы данных. Отказываемся от композитных ключей и заодно от необходимости думать о том, что таблицы могут сильно отличаться друг от друга

ТС1-2  Реализация сильных и слабых связей в базе данных должна существенно отличаться.

ТС1-3  Таблица может являться дочерней для одной и только для одной таблицы.

ТС1-4  Для сильных связей должен обязательно использоваться механизм встроенного контроля целостности ( внешние ключи)

ТС1-5  Все идентификаторы в базе данных реализуются при помощи механизма глобально уникальных идентификаторов (GUID)

ТС1-6  Все документы  регистрируются в единой таблице

ТС1-7 Документ должен имеет видимое (строковое) представление, которое может быть использовано для отображения в списке.

ТС1-8 Каждая строка документа должна иметь видимое (строковое) представление, которое может быть использовано для отображения в списке, при установке ссылки на строку и т.п.

TC1-9 Алгоритм определения имя поля для хранения идентификатора  должен быть фиксирован для всей базы данных.
  
Наверх
IP записан
 
eurobax
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 62
Зарегистрирован: 13. Января 2010
Re: wic: Python + PyQt4
Ответ #65 - 21. Февраля 2011 :: 20:48
Печать  
VSozansky, вы очень красиво расписываете функциональность системы. Я же хочу напомнить, что техническая реализация - далеко даже не пол-дела. Расписывая вопрос ЧТО, не забывайте про вопрос КАК, а именно - как сделать систему коммерчески успешной? Может, организуем для этого отдельную ветку?
  
Наверх
 
IP записан
 
VSozansky
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 24
Местоположение: Одесса
Зарегистрирован: 07. Августа 2006
Пол: Мужской
Re: wic: Python + PyQt4
Ответ #66 - 21. Февраля 2011 :: 21:18
Печать  
eurobax писал(а) 21. Февраля 2011 :: 20:48:
VSozansky, вы очень красиво расписываете функциональность системы. Я же хочу напомнить, что техническая реализация - далеко даже не пол-дела. Расписывая вопрос ЧТО, не забывайте про вопрос КАК, а именно - как сделать систему коммерчески успешной? Может, организуем для этого отдельную ветку?


Прошу извинить парни, но вышеизложенные принципы выстраданы не мною. Они были высказаны М.Барановым в рассылках "Кубики для взрослых" и Создадим свою экспертную систему".
Она действовала с 2003г. Я не успел общаться в Михаилом. Сейчас он занят в коммерческих проектах. Его система доведена до коммерческого использования.

В кратце: Он предлагал создать некое описание системы - метаданные. И генератор, который по метаданным сгенерирует код модулей для компиляции. Формы имеют особенности: настраивание дизайна пользователем.

С указанным инструментом М.Баранов за пару часов может набрасать конфигурацию системы, сгенерировать код, скомпилировать код, сгенерировать базу данных.
В общем нести клиенту черновик программы....
И это с огромным количеством таблиц (порядка 3000) и минимальным количеством ошибок в коде.

Поэтому необессудте напишу свои наблюдения по моему полезные для проекта.
  
Наверх
IP записан
 
VSozansky
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 24
Местоположение: Одесса
Зарегистрирован: 07. Августа 2006
Пол: Мужской
Re: wic: Python + PyQt4
Ответ #67 - 21. Февраля 2011 :: 21:55
Печать  
Имеет смысл однажды определить тип данных, а затем пользоваться им где желаем.


Типы данных используемые в приложении.

Seconds - Число секунд
Minutes - Номер минуты
Hours - Номер часа
Days - Номер дня в месяце
Months - Номер месяца
Date - Дата
Time - Время
DateTime - Дата и время

Numeric - Число
Integer - Целое число

String - Строка ограниченной длины
Boolean - Да / Нет


ID - Идентификатор

TypeStyle - Вариант трактовки типа поля
AggregationType - Вариант агрегации по полю
NumerationRule - Правило нумерации
HTML - Документ в формате HTML
Reference - Ссылка
URL – Адрес ресурса в интернет
File - Файл
MenuActionType - Вариант действия при выборе пункта меню
ColumnSortType - Вариант сортиовки данных колонки
StructType - Тип раздела
TargetType - Вариант уровня приложения, куда может генерироваться код
Image - Изображение (картинка)
PartAddBehaivor - Поведение при добавлении строки раздела
FolderType - Тип папки
ReferenceType - ReferenceType
Memo - Мнегострочное поле для ввода информации
Percent - "0-100 %"
YesNo - "Да / Нет (0 или 1)"
GeneratorStyle - GeneratorStyle
DayInWeek - День недели
PartType - PartType
ConditionType - Варианты условий
E-MAIL - Почтовый адрес
RTF - RTF текст
Password - Пароль
TriState - Да / Нет / Не определено
InfoStoreType - Тип каталога

WFFuncParam - Вариант расшифровки параметра функции
WFShortcutType - Варианты ярлыков, которые может размещать процесс
VHAlignment - Выравнивание
WFProcessState - Состояния процесса
OnJournalRowClick - действие при открытии строки журнала
WFStepClass - Тип шага процесса
VRTaskType - Тип задачи
WFFuncState - Состояние функции в бизнес процессе


Возможно вывел здесь лишние данные.Но решил не удалять ничего на первый взгляд ненужное.
  
Наверх
IP записан
 
VSozansky
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 24
Местоположение: Одесса
Зарегистрирован: 07. Августа 2006
Пол: Мужской
Re: wic: Python + PyQt4
Ответ #68 - 27. Февраля 2011 :: 11:00
Печать  
Здравствуйте парни!

Нашел свежую книжку по ПИТОНУ. (2010г язык русский.)
Python.podrobnyj.spravochnik.4.e.izdanie.David.M.Beazley.2010.pdf
http://ifolder.ru/22131826

И еще вопросики:

Подскажите как можно реализовать дублирующие названия для идентификаторов? Кто-то уже размышлял по этому поводу?

Подскажите как лучше выводить метамодель (конфигурацию) для ее просмотра и редактирования? Удобно иметь метамодель в виде отдельного XML файла. Пример метамодели в вложении.
  

___________002.rar ( 223 KB | Загрузки )
Наверх
IP записан
 
blindvic
Senior Member
****
Отсутствует



Сообщений: 486
Местоположение: Moldova
Зарегистрирован: 23. Июня 2008
Пол: Мужской
Re: wic: Python + PyQt4
Ответ #69 - 27. Февраля 2011 :: 12:05
Печать  
VSozansky писал(а) 27. Февраля 2011 :: 11:00:
Подскажите как можно реализовать дублирующие названия для идентификаторов? Кто-то уже размышлял по этому поводу?

Допустим, есть метод printMessage класса MessagesWindow.
Его вызываешь myMessagesWindow.printMessage('this is my message').
Для дублирования пишешь myMessagesWindow.сообщить = myMessagesWindow.printMessage
  
Наверх
 
IP записан
 
VSozansky
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 24
Местоположение: Одесса
Зарегистрирован: 07. Августа 2006
Пол: Мужской
Re: wic: Python + PyQt4
Ответ #70 - 27. Февраля 2011 :: 12:42
Печать  
blindvic писал(а) 27. Февраля 2011 :: 12:05:
VSozansky писал(а) 27. Февраля 2011 :: 11:00:
Подскажите как можно реализовать дублирующие названия для идентификаторов? Кто-то уже размышлял по этому поводу?

Допустим, есть метод printMessage класса MessagesWindow.
Его вызываешь myMessagesWindow.printMessage('this is my message').
Для дублирования пишешь myMessagesWindow.сообщить = myMessagesWindow.printMessage

А где писать? В каком месте? Как сделать это в полуавтомате(максимально автоматически-типа модуля перевода или журнала соответствий идентификаторов)?
  
Наверх
IP записан
 
blindvic
Senior Member
****
Отсутствует



Сообщений: 486
Местоположение: Moldova
Зарегистрирован: 23. Июня 2008
Пол: Мужской
Re: wic: Python + PyQt4
Ответ #71 - 27. Февраля 2011 :: 13:47
Печать  
можешь в самих классах писать. либо отдельный модуль сделать (например, см. начало модуля w.py).
  
Наверх
 
IP записан
 
VSozansky
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 24
Местоположение: Одесса
Зарегистрирован: 07. Августа 2006
Пол: Мужской
Re: wic: Python + PyQt4
Ответ #72 - 27. Февраля 2011 :: 14:31
Печать  
blindvic писал(а) 27. Февраля 2011 :: 13:47:
можешь в самих классах писать. либо отдельный модуль сделать (например, см. начало модуля w.py).


!!!!! РАБОТАЕТ !!!!!

в w.py написал после
printMessage = mainWindow.messagesWindow.printMessage
w.Сообщение

А в модуле
   w.Сообщение ('w.Сообщение: Модуль загружен.')

Супер!!!
  
Наверх
IP записан
 
blindvic
Senior Member
****
Отсутствует



Сообщений: 486
Местоположение: Moldova
Зарегистрирован: 23. Июня 2008
Пол: Мужской
Re: wic: Python + PyQt4
Ответ #73 - 27. Февраля 2011 :: 15:28
Печать  
VSozansky писал(а) 27. Февраля 2011 :: 14:31:
А в модуле
  w.Сообщение ('w.Сообщение: Модуль загружен.')

в начале модуля можно написать
Код
Выбрать все
from w import *
или
from w import Сообщение 


и писать просто
Сообщение ('w.Сообщение: Модуль загружен.')
  
Наверх
 
IP записан
 
VSozansky
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 24
Местоположение: Одесса
Зарегистрирован: 07. Августа 2006
Пол: Мужской
Re: wic: Python + PyQt4
Ответ #74 - 28. Февраля 2011 :: 17:32
Печать  
VSozansky писал(а) 27. Февраля 2011 :: 11:00:
Подскажите как лучше выводить метамодель (конфигурацию) для ее просмотра и редактирования? Удобно иметь метамодель в виде отдельного XML файла. Пример метамодели в вложении.



Вопрос остается актуальным! Посмотрите файл во вложении и предложите как будем выводить в дереве метаданные и как редактировать.
Интересует:
1. какой библиотекой лучше пользоваться.
2. как быстро отображать в дереве
3. как выводить только нужные элементы из файла метаданных

  
Наверх
IP записан
 
Переключение на Главную Страницу Страницы: 1 ... 3 4 [5] 6 7 8
ОтправитьПечать