Страница 4 из 17
Добавлено: 27.03.2007 00:33:07
debi12345
пока единственно что не понятно и я так понимаю что не предусмотренно
это редактирование отчетов. тобишь на примаере тогоже фастрепорта я не хранил отчеты в exe. и пользователи могли сами через мою прогу подправить отчет, палочку дорисовать, поле убрать и т.д.
Сами понимаете - что СЕЙЧАС и для MSE*, и для Lazarus-е с их PS-выходом нужен PS-редактор (!). Мартин говорит, что будет XML-вывод ( на крайняк его подмножество = HTML ) - как раз под редактирование. Про Excel/Word/OpenOffice/etc-форматы, думаю - просить не стоит, у человека аллергия к Win-Only & Lin-only решениям.
2, пока не разобрался со всеми тонкостями но имхо что-то подобное должно постовлятся с самим mse как компонент.
Это мой "самопал" - куда ему до компонета, да и как его компонентом сделаешь - если три формы содержит ?
Но и сейчас можно в любой проект запихать и пользовать - dmprint и printersetupfor*, и нужно-то из них для печати только "psprn" ( скормить "render" ) & "printout" (распечатать приготовленный PS-файл ).
вот не понятна голочка выбора windows GDI если печать все равно можно только через ghost script. или это на будущее ?
Да, на будущее - аналогично и для Линукса.
Правда, Мартин утверждает, что лучше PS ничто не печатает - и качество на бумаге, и поддержка профессиональными принтерами, и геометрическое позиционирование и размеры. Поэтому не горит желанием делать GDI-варианты печати.
Добавлено: 27.03.2007 10:19:27
GrayEddy
Что дальше планируется в MSE, какие планы?
В принципе, сам скелет уже есть
Пока не разбирался с отчетами, но стало интересно - можно ли в репорте шелкнув по определенной строке - развернуть подотчет.
К примеру, есть накладная на приход. Щелкнув по товару - переходим в сам справочник товара или генерим вложенный (второй) отчет. Тот, кто работал в 1С - поймет.
Если нет - можно ли реализовать?
Добавлено: 27.03.2007 18:21:37
GrayEddy
Еще хотелось TODO list - список того, что надо сделать. Можно расширить что пофиксено, добавлено, убрано, скажем с разбивкой по дням. Таким образом, можно получить самодокументируемый проект с историей его жизни. Просто мне надоело писать в текстовики, и постоянно вспоминать изменения, а через меню все гораздо проще.
Я думаю - Мартину сделать раз плюнуть. Но откажет, ИМХО.
Добавлено: 27.03.2007 21:56:28
GrayEddy
Если свободное время будет - сделаю сам.
Примерный набросок таков - есть форма. четыре закладки (TODO, добавлено, убрано, пофиксено).
Каждая закладка имеет колонки - тип дата, описание. Для закладки Сделать будет добавлено еще чекбокс. Приоритеты - вряд ли.
При открытии формы будет считываться содержимое файла истории, он будет скорее текстовой.
Будет кнопка, генерирующая на выходе файл с группировкой по дням, по закладкам (содержимое TODO будет исключено, можно и опционально).
Основная проблема - надо ковырять MSE (вставить пункт в меню, указать созданную форму) - и пересобрать. Ну нет в MSE экспертов.
Добавлено: 30.03.2007 11:45:25
debi12345
В FireBird добавлена поддержка Embedded-режима ( без серверного процесса ), полезно для использования ЖарПтицы вместо MSAccess/DBF.
Начата доработка SQLite3 - чтобы работа с ним ничем не отличалась от FireBird/PostgreSQL.
Это чтобы у нас не было соблазна использовать оффлайновый режим BufdataSet-а не по прямому назначению (соединился с сервером, выбрал данные, сохранил их в локальный файл, изменил, соединился, отразил обновления ).
Добавлено: 30.03.2007 12:12:29
Attid
Это чтобы у нас не было соблазна использовать оффлайновый режим BufdataSet-а не по прямому назначению (соединился с сервером, выбрал данные, сохранил их в локальный файл, изменил, соединился, отразил обновления ).

это типа камень в мой огород =) рекорд буфера поднял до 98Мб
тормазит но работает =) а FireBird.Embedded хорошь, но 3 метра надо тягать в этом отношении SQLite3 лучше, но он на порядок глупее =)
дя себя пока остался на буфере как будет время вотну кого нибуть из них =)
Добавлено: 30.03.2007 20:34:39
debi12345
Attid писал(а): 
это типа камень в мой огород =) рекорд буфера поднял до 98Мб
тормазит но работает =)
Специально в цикле записи вставляли ?
Вообще, чем больше размер лога, тем больше вероятность повреждения, значит - тем тщательнее тестирование
Кстати, "тормозит" - это как ? Те же 15 секунд под Вынь-32 ?
а FireBird.Embedded хорошь, но 3 метра надо тягать в этом отношении
И через хак ставится.
SQLite3 лучше, но он на порядок глупее =)
На SQL-запросах - ничуть не глупее. Манипуляции с внутренней бизнес-логикой БД ( функции,.. ) - эдесь "да".
дя себя пока остался на буфере как будет время вотну кого нибуть из них =)
Сейчас дополняю пример печати - запись+ выгрузка+печать картинок (BLOB-поля энтого самого "буфера" ). Ведь оффлайновые манипуляции с BLOB-ами еще не тестировались !
Вообще, классные времена настают - по Линуксом теперь можно клепать бизнес-программы ! И мир повернулся лицом к опен-сорсу. То ли еще будет %)
Добавлено: 01.04.2007 00:41:51
debi12345
К радости минималистов - типа меня, кому отвратительна неуклюжая идея распространения маленьких БД-программ с 3М-инсталляцией Жарптички и хаков с установкой оной.
В MSEgui поддержка SQLite3 достигла ( с нуля за пару дней ) стадии "early experimеtntal". Фишка в том, что сделано - в варианте "через SQL", аналогичном Жарптице/Слону. То есть не через специализированный датасет, а через связку TSQLite3Connection+TMseSQLQuery. Начинаем смотреть !
Добавлено: 01.04.2007 18:33:41
Attid
Специально в цикле записи вставляли ?
Вообще, чем больше размер лога, тем больше вероятность повреждения, значит - тем тщательнее тестирование Smile
Кстати, "тормозит" - это как ? Те же 15 секунд под Вынь-32 ?
при запуске до 30 сек, а при фильтрациях 10-15.
дольше всего встовлеть это несколько минут , точно не засикал, просто уходил на обед =) но больше 10 минут
Начинаем смотреть !
я пока пас, растроен ошибкой с локалями.
жду обновление иксов =)
Добавлено: 03.04.2007 20:12:53
debi12345
я пока пас, растроен ошибкой с локалями.
жду обновление иксов =)
Вижу, продолжаете с локалями воевать - уже в Лазарусе и по другим поводам.
Локаль "ru_RU.UTF-8" со шрифтами ISO10646-1 или TrueType у себя не пробовали ? Как-никак это - наступающая мода.
Attid писал(а):при запуске до 30 сек, а при фильтрациях 10-15.
дольше всего встовлеть это несколько минут , точно не засикал, просто уходил на обед =) но больше 10 минут
Кстати, поддержка SQlite3 в SQL-режиме ( как равноправный партнер Жар-Птицы и Слоника ) - доделана и полностью функциональна ( за исключением мелкой "шероватости" с INT64-полями ).
Есть и тестовый проект ( отображение, редактирование и запись всех поддерживаемых типов данных, включая BLOB ) :
http://brefi.narod.ru/sqlite3types_test.tar.gz
Добавлено: 05.04.2007 20:15:45
Alexander
Подбираюсь к древу. Факт визуального получения которого достигнут.
Но правильно или нет не представляю - документации то нет.
На форму кинул widgetgrid на него treeitemedit.
Поменял несколько свойств (не помню уже каких - метод тыка) в
инспекторе объектов.
Древо таким образом получилось. Как его дальше использовать
пока не знаю. Правильно ли выбран способ создания корневых
итемов, типов итемов и методов тоже не знаю.
Было бы здорово получить от Мартина несложную демонстрашку
древа с идейно правильным использованием типов и методов.
Но вряд ли.
Код (имена переменных очень условны);
Код: Выделить всё
procedure tmainfo.testtree(const sender: TObject);
var
root : ttreelistedititem;
f1 : ttreelistedititem;
f2 : ttreelistedititem;
f3 : ttreelistedititem;
c1 : ttreelistedititem;
c2 : ttreelistedititem;
begin
root := ttreelistedititem.create;
root.caption := 'root';
f1 := ttreelistedititem.create;
f1.caption := 'f1';
f2 := ttreelistedititem.create;
f2.caption := 'f2';
f3 := ttreelistedititem.create;
f3.caption := 'f3';
c1 := ttreelistedititem.create;
c1.caption := 'child';
c2 := ttreelistedititem.create;
c2.caption := 'child2';
ttreeitemedit1.itemlist.add(root);
root.add(f1);
f1.add(f2);
f1.add(c1);
ttreeitemedit1.itemlist.add(c2);
end;
Добавлено: 05.04.2007 20:22:54
Alexander
Attid писал(а):я пока пас, растроен ошибкой с локалями.
А у меня ещё вопрос возник - а другие приложения ведь работают ?!
И Лазарус вероятно тоже. В чём же отличие МСЕ ?
Добавлено: 05.04.2007 22:47:50
Attid
в том что он сам все рисует =)
в ветке с багами все обсуждалось.
сча с работой разберусь через пару неделек
поиграюсь с системой попрбую определить в чем и в каких версиях ошибка.
Добавлено: 06.04.2007 10:48:12
debi12345
Alexander писал(а):Было бы здорово получить от Мартина несложную демонстрашку
древа с идейно правильным использованием типов и методов.
Но вряд ли.
[...]
Ответ Мартина :
Два других способа :
--------------------
Код: Выделить всё
var
roota,rootb: ttreelistedititem;
begin
roota:= ttreelistedititem.create;
roota.add(3,ttreelistedititem);
roota.caption:= 'A';
roota[0].caption:= 'A0';
roota[1].caption:= 'A1';
roota[2].caption:= 'A2';
rootb:= ttreelistedititem.create;
rootb.add(3,ttreelistedititem);
rootb.caption:= 'B';
rootb[0].caption:= 'B0';
rootb[1].caption:= 'B1';
rootb[2].caption:= 'B2';
ttreeitemedit1.itemlist.add(roota);
ttreeitemedit1.itemlist.add(rootb);
end;
---------------------
или
---------------------
Код: Выделить всё
begin
twidgetgrid1.rowcount:= 2;
with ttreeitemedit1[0] do begin
caption:= 'A';
add(3,ttreelistitem);
items[0].caption:= 'A0';
items[1].caption:= 'A1';
items[2].caption:= 'A2';
end;
with ttreeitemedit1[1] do begin
caption:= 'B';
add(3,ttreelistitem);
items[0].caption:= 'B0';
items[1].caption:= 'B1';
items[2].caption:= 'B2';
end;
end;
-----------------
ttreeitemedit.itemlist, для каждой строки таблицы, хранит указатель на состветствующий элемент структуры данных, это и есть интерфейс для совмещения данных и таблицы.
Примеры использования "ttreelistitem" есть в проекте"tools/i18n/msei18n.prj" и в "apps/ide/projecttreeform.pas, objectinspector.pas".
Добавлено: 07.04.2007 00:54:23
Alexander
Спасибо !