Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2004.05.16;
Скачать: [xml.tar.bz2];

Вниз

Платформа Аллегро ... баннер перед носом ... чуть выше..   Найти похожие ветки 

 
MMF ©   (2004-04-19 09:30) [280]

(279+) где можно почитать по ограничениям языка? Столкнулся с кучей ограничений (try except On e:Exception; типизированные константы не поддерживаются, проверка if Acomp is TControl не пашет, RTTI не работает, при запуске под дизайнером "if (AComp.Parent= tabReferences) and (AComp<>Sender) then" работает, а в самой системе - Parent не известен) и т.д. Хотелось бы познакомиться с полным описание чего можно/нельзя. Очень может быть, что я туплю, но ненашел как отлаживать скрипт?


 
Anatoly Podgoretsky ©   (2004-04-19 09:39) [281]

Ты затронул больной вопрос - документация, от разработчиков сложно ожидать, не из специальность.


 
MMF ©   (2004-04-19 11:11) [282]

Сделал несколько заметок, пока пробовал:
1) Было бы удобно в окне Метаданные иметь в правой части закладку с информацией из закладки База.Определение для этого объекта.
2) В ISQL как-то странно себя ведет сплиттер
3) Опечатка. Форма "Добавить поле" - типа данных Varchar "строка ПРеменной длины"
4) Глюк: 1) добавляем поле в таблицу 2) редактируем его - изменяем имя в таблице базы данных на имя существующего поля. Результат - показывает на этом поле в окне метаданных чушь.
5) В диалоге "Добавить поле" при выборе типа "Справочник" желательно заменить выпадающий список на выбор в дереве.
6) Не доступные для изменения пользователем справочники ("Перечисления")были бы  желательны, хотя можно обойтись и правами.
7)Хорошо бы иметь в Метаданные.Справочники.Поля еще окошечко быстрого просмотра информации (без вызова диалога "Поле") наподобие окна SQL Assistant IBExpert-а.
8) ИМХО, иконку для приложения надо сменить.
9) Как-то надо разрулить со значением по-умолчанию поля справочника (непосредственно в Метаданные). В том числе и для типа TReference
10) Странно, добавление 1000 элементов в справочник из скрипта заняло довольно много времени на глаз... Замер и скрипт приведу ниже.
11) В дереве Метаданные.База хочу иметь возможность сортировки не только по наименованию, но и по типу (система/конфигурация + наименование)
12) При подборе из справочника, ИМХО, лучше выбирать на двойной щелчек, а редактирование - по нажатию кнопки. Сейчас - наоборот
13) В деревьях хочется, чтобы элемент выбирался и по правому клику мыши. Сейчас приходиться выделить левым кликом, потом правым - открыть контекстное меню
14) Сложно сказать как, но удалось создать ситуацию, когда показывался только один регистр учета, а было несколько (их свойства можно было просмотреть).Пришлось воспользоваться правкой таблицы ACC
15) Хотелось бы выпадающего списка с историей файлов архива в Инструменты.АрхивацияБазы
16) Для того, чтобы можно было работать с несколькими Allegro одновременно, и различать их, хотелось бы в названии приложения на панели задач видеть имя базы.
17) В базе TechnoTrade при играх с подбором товара в документе поступления удалось повесить Allegro (может, и не повесилось, но через две минуты я его снял; были запущены два экземпляра приложения), повторить - не удалось :-(
18) В "О программе" хочу видеть номер билда
19) В контекстном меню Баланс на счете есть иконка (красненькая в дереве), а на регистре (синенькая в дереве) - нет.
20) Почему нельзя удалить Регистр из Баланса?
21) Хорошо бы скрывать в таблицах элемент с ID=0.
22) Многомерные Регистры хочу, про это уже говорили, но свое Хочу тоже выскажу.
23) Возможность добавлять описание объекта и атрибута метаданных. Весьма желательна возможность динамического создания справки для пользователя на основании этой информации средствами системы.
24) Невозможно уменьшить длину varchar поля. Можно было бы спросить, уверен ли я в своих действиях и сделать, что я хочу.
25) Без средств отладки скрипта (может я их не нашел) - не выстрелит.
26) историю реквизитов системно делать не надо, ИМХО. Я их легко сделал тем что есть.
27) Документация и еще раз документация.


 
MMF ©   (2004-04-19 12:51) [283]

Ап. Что, народ полностью потерял интерес к сабжу?


 
kaif ©   (2004-04-19 14:29) [284]

2 Anatoly Podgoretsky ©   (19.04.04 09:39) [281]

Я придаю большое значение документации и пишу ее. Просто объем слишком велик - не успеваю.

2 MMF ©   (19.04.04 12:51) [283]
Форума пока нет (работаем над этим). Баг-репорты можно отправлять на E-Mail (Контакты). Там есть мой адрес:
ashot@gaapinvest.com

 Спасибо за великолепный список найденных ошибок и недоработок!  
 Это именно тот формат, который сейчас в наибольшей степени позволит устранить множество недостатков. Согласен почти со всем и почти все понял.
 С пошаговой отладкой пока придется подождать. Однако потребность в ней возникает в основном из-за отсутствия описания языка. Я должен еще разобраться с лицензиями - не все описания я могу публиковать на своем сайте - часть вынужден дать в виде ссылок на соответствующие сайты производителей. А так как сайт еще не готов, с этим тоже вылезают проблемы. Описание языка Delphi Script и всех ограничений можно скачать с сайта производителя:
 http://www.dream-com.com/downloaddocs.html#DreamDocs
 
 Важные ошибки и недоработки:
 Ошибка с зацикливанием приложения Allegro.exe (которую Вам удалось воспроизвести в конфигурации TechnoTrade) уже несколько дней, как выявлена и устранена. Она возникала при перемещении экранного карета в конец строки в сетке "с поиском по нажатию" при помощи многократного нажатия "стрелки вправо". Связана была с неправильной работой функции StatusBarDisplay. Вы можете пока закомментировать вызов этой функции в скрипте при поиске "по нажатию" (событие SetEditText сетки).

 Добавление 1000 элементов в справочник может занять значительное время, если пытаться делать это стандартными средствами. Видимо, мне нужно реализовать еще и массовую вставку. Дело в том, что стандартная вставка элемента в справочник (она предназначена только для ручного ввода данных) происходит так:

 старт отдельной транзакции (доступа к ней нет)

 вставка строки в базовый класс (e.g. Товары)
 вставка строки в дочерний класс (e.g. Компьютерные комплектующие)
 вставка строки в дочерний класс (e.g. Мониторы)

 вызов процедуры <имя класса>_SET_NAMES

 подтверждение транзакции.


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

И еще уточните, пожалуйста, что именно Вы пытаетесь сделать:
(20) Почему нельзя удалить Регистр из Баланса?

Спасибо за подробные сообщения. Я проработаю их все в ближайшее время, что возможно исправлю и выставлю новую версию на сайт.


 
kaif ©   (2004-04-19 16:05) [285]

Итак, summary обсуждения:

1. Народ однозначно хочет многомерные регистры. Это отдельная большая тема, возможно нужна хорошая модель с возможностью обслуживания "критических ресурсов" типа "резервируем последний товар на складе". Быстродействующая, возможно с промежуточными итогами (пока не уверен)

2. "Исторические атрибуты". Тема пока неясная и скользкая. Нужно уточнить, что именно мы под этим имеем в виду: скрывать старые версии объектов или скрывать старые версии значений атрибутов и вообще, в чем главная причина того, чтобы такие данные оказываются в "Справочниках"?

3. ReadOnly справочники, возможно с интерфейсом типа ComboBox для очень мелких справочников (перечислений). Это однозначно нужно сделать (явное упущение).

4. "Иерархические справочники". Тема еще более скользкая и пока непонятная. Идет ли речь о древовидном способе отображения строгой линейной атрибутики или о гибких рубрикаторах, оставленных на полный откуп пользователю. Должны ли это быть рубрикаторы (тип поля в составе класса) или отдельно стоящие особенные справочники, существование которых мог бы конфигурирующий позволить или исключить по своему усмотрению.

5. Нужно доработать интерфейс справочника. Рад эргономических неувязок (интерпретация двойного щелчка), интерпретация пустых строк NOT NULL, возможно предварительная обработка строк (trim и др. функции), AutoSelect и так далее.

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


 
Anatoly Podgoretsky ©   (2004-04-19 16:16) [286]

kaif ©   (19.04.04 14:29) [284]
Я не про время, а именно про профессиональные знания документо писания, это достаточно сложная отрасль знаний, разработчикам очень редко подвластная!
Разработчик хорошо знает систему, но написать правильно им редко удается. Вот для этого и существует профессия писатель документации по продукту.


 
MMF ©   (2004-04-19 16:17) [287]

Вставки были в одной транзакции. 64с на 1000 вставок в справочник третьего уровня (есть отец и дед).
Хотелось бы еще интерфейс к предопределенным событиям системы: ПриПодключенииПользователя, ПриНачалеРаботыСистемы, ПриЗавершениеРаботыСистемы, ПриХХХ.
Еще наблюдение: загрузка-выгрузка средствами Allegro - при открытии Документы.Проводник - исключение: BLR ... FORMAT_DATETIME  . А до выгрузки все нормально было.


 
Anatoly Podgoretsky ©   (2004-04-19 16:18) [288]

Видишь как возрастает нужность в форуме и сопутсвующиз разделах, типа WishList, Future Plans и т.д.
Займись этим в срочном порядке, потом тяжелее будет.


 
kaif ©   (2004-04-19 16:41) [289]

2 MMF ©   (19.04.04 16:17) [287]
Вставки были в одной транзакции. 64с на 1000 вставок в справочник третьего уровня (есть отец и дед).

 Что использовалось для вставок? Если компонент TRefQuery, то хотя он и подключен к Вашей транзакции, то это транзакция на чтение. Я же говорю о том, что сам компонент вызывает еще отдельную транзакцию (созает ее сам рантайм) на каждую вставку по той схеме, что я привел. Поэтому он не предназначен для массовых вставок.

при открытии Документы.Проводник - исключение: BLR ... FORMAT_DATETIME

А библиотека AllegroUdf установлена? Я не понял насчет загрузки/выгрузки... Уточните, пожалуйста, о чем идет речь?

Хотелось бы еще интерфейс к предопределенным событиям системы: ПриПодключенииПользователя, ПриНачалеРаботыСистемы, ПриЗавершениеРаботыСистемы, ПриХХХ.

 У меня была такая вещь в Allegro, но потом я поддержку всех этих событий временно удалил. Хочу сделать этот механизм более стройным и удобным. Невозможно сделать как попало. Дело в том, что потом придется поддерживать старые версии конфигураций и этот механизм уже нельзя будет радикально изменять.

Anatoly Podgoretsky ©   (19.04.04 16:18) [288]
Видишь как возрастает нужность в форуме и сопутсвующиз разделах, типа WishList, Future Plans и т.д.
Займись этим в срочном порядке, потом тяжелее будет.


Да, я просто не ожидал такого бурного развития событий...
Уже занимаюсь.


 
euru ©   (2004-04-19 16:49) [290]

>kaif ©   (19.04.04 16:05) [285]
>4. "Иерархические справочники".

Добавлю свои 2 копейки.
Справочники должны быть линейны. Из назначение - хранить информацию. Навигационная информация, позволяющая по каким-либо критериям, находить эту информацию в справочнике должна храниться отдельно от самого справочника. Это позволит с одной стороны не перегружать справочник дополнительными атрибутами в случае ненадобности навигации, а с другой стороны появится возможность создавать несколько различных вариантов навигации.


 
MMF ©   (2004-04-19 16:55) [291]

(kaif © 289) 1) использовал TIBSQL http://mmf.newmail.ru/TestAllegro.zip - только ногами особо не пинать, я не волшебник, а только учусь.
2) Установлена. До выполнения: Инструменты.Архивация и Инструменты.Восстановление базы из архива (в тот же файл), такого глюка не было, работали как демо-склад, так и эта. Каюсь, у меня FireBird 1.0.2.


 
MMF ©   (2004-04-19 17:25) [292]

(kaif ©) Упс... А на RefQuery я внимание и не обратил, равно как и на всю панель Allegro :-(


 
MMF ©   (2004-04-19 17:45) [293]

Еще одно в WishList и для Up-а: нужна отработка сетками справочников (в документах работает) вращения колесика мышки.
(291+) Виноват. Сократил время добавления 1000 элементов до 19 секунд (в 3 раза). Тормозило обновление прогрессора:
procedure TfTestDataCreater.RefreshProgressBar(NewPos, Range: integer);
var BarPos: integer;
begin
 BarPos:= round(NewPos / Range * ProgressBar1.Max);
 if BarPos <> ProgressBar1.Position then
 begin
   ProgressBar1.Position:= BarPos;
   ProgressBar1.Refresh;
 end;
заменил на
 BarPos:= round(NewPos / Range * FProgressBarMax);
 if BarPos <> FProgressBarPosition then
 begin
   ProgressBar1.Position:= BarPos;
   FProgressBarPosition:= BarPos;
где FProgressBarMax, FProgressBarPosition - члены класса формы.


 
MMF ©   (2004-04-19 18:09) [294]

Последнее на сегодня пожелание: нужен инструмент, создающий архив всех составляющих ИБ. Иду домой, хочу унести все: мне нужно не забыть взять все скрипты, а вдруг они не в одном каталоге. Удобно было бы одним нажатием получить и gbk и zip всех скриптов, использованных в ИБ. Удачи!


 
kaif ©   (2004-04-19 20:39) [295]

2 MMF ©   (19.04.04 16:55) [291]
Ни в коем случае не рекомендуется юзать версии Firebird ниже 1.5 RC4.
Возможны ошибки, особенно связанные с работой с метеданными и baclup/restore.
Сейчас посмотрю Ваш тестовый скрипт.


 
kaif ©   (2004-04-20 04:54) [296]

2 MMF ©   (19.04.04 11:11) [282]
 Исправлены пункты 2,3,4,11,13,16,17 из Вашего списка ошибок и пожеланий. Войдут в ближайший апдейт. Пожалуйста, свяжитесь со мной по ICQ или E-mail. Совсем технические мелочи не будем здесь обсуждать.
 Если есть еще вопросы у участников - задавайте. К сожалению, никто не прокомментировал идею gaapinvest, как формата совместных проектов (не считая первой негативной реакции).
 Идея написания Allegro возникла еще в 2002 году и тогда здесь на форуме я пообещал, что сделаю эту систему и доложу здесь о результатах. Тогда мало кто верил, что вообще что-нибудь получится и были жаркие споры. Как видите, что-то получилось. Почему бы не пойти дальше? (начать пробовать создавать стандартные узкоспециализированные конфигурации). Просто в этом вопросе уже многое не только от меня зависит...


 
kaif ©   (2004-04-27 04:07) [297]

Выложена новая версия AllegroSetup.
Ряд ошибок исправлен. Усовершенствовано окно "Метаданные".
Режимом ReadOnly справочников можно теперь управлять, лишив каких-то юзеров или роли привилегии на редактирование справочников в Инструменты/Привилегии пользователей.
Двойной щелчок в диалогах теперь работает как OK.
Новая версия ядра базы 5. Апдейт старых баз (3->5) автоматический при соединении (с принудительным backup).



Страницы: 1 2 3 4 5 6 7 8 вся ветка

Форум: "Потрепаться";
Текущий архив: 2004.05.16;
Скачать: [xml.tar.bz2];

Наверх




Память: 1.04 MB
Время: 0.158 c
3-1082550768
}|{yk
2004-04-21 16:32
2004.05.16
n раз возникает событие OnNewRecord


3-1082615591
mixam
2004-04-22 10:33
2004.05.16
Lookup


14-1082904625
Dimaz
2004-04-25 18:50
2004.05.16
Linux - вперёд!


1-1082982201
w666w
2004-04-26 16:23
2004.05.16
Как узнать о существовании объекта?


14-1082892916
Dimedrol
2004-04-25 15:35
2004.05.16
Хочу украсить прогу... :-)





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский