Вверх ↑
Ответов: 16884
Рейтинг: 1239
#1: 2012-06-27 21:42:52 ЛС | профиль | цитата
faramir777 писал(а):
большую ее часть можно выкинуть
Даже из твоих часов
clock_n.png
в % получается 25%
Да.
1. Калькулятор можно сделать, используя возможности SQLite (без компонент математики)
2. Для создания таблиц используй команду с условием:
CREATE TABLE IF NOT EXISTS base (№, Дата DATE,Сумма, Категория, Описание TEXT);
CREATE TABLE IF NOT EXISTS dohod (№, Дата DATE,Сумма, Категория, Описание TEXT);
сработает, как защита.
------------ Дoбавленo в 21.42:
Add(ChildForm,6567049,623,56)
{
}
BEGIN_SDK
Add(EditMulti,1477762,49,21)
{
WorkCount=1
Width=412
Height=305
link(doWork1,1812192:doVisible,[(123,27)(123,62)])
}
Add(MainForm,1812192,189,28)
{
Left=35
Top=105
Width=425
Height=77
Visible=1
Caption="Создание резервной копии базы данных"
BorderStyle=1
Point(doVisible)
}
Add(FileTools,5565160,189,266)
{
link(onEnd,12449883:doMessage,[])
link(FileName,2516802:FString,[(195,244)(160,244)])
link(NewFileName,6135487:FString,[])
}
Add(Button,5558362,70,252)
{
Left=10
Top=10
Width=205
Caption="Создать резервную копию"
link(onClick,2233415:doEvent1,[])
}
Add(FormatStr,6135487,196,189)
{
Mask="Rezerv\%1_DB.db"
Point(FString)
link(Str1,5514965:Result,[])
}
Add(DatePicker,11849315,189,77)
{
Left=245
Top=10
Width=155
Height=21
Point(CurrentDateTime)
Point(DateTime)
link(onChange,15480530:doWork1,[(234,83)(234,119)(170,119)])
}
Add(DateConvertor,5514965,196,133)
{
Mode=9
Format="yyyy-MM-dd"
Point(Data)
Point(Result)
link(Data,11849315:DateTime,[])
}
Add(Timer,15622425,371,49)
{
Interval=10
AutoStop=1
link(onTimer,4410535:doEvent1,[])
}
Add(EventFromData,10736337,406,98)
{
}
Add(EventFromData,1317161,406,147)
{
}
Add(Hub,4410535,420,49)
{
OutCount=3
}
Add(Message,12449883,266,266)
{
Message="Резервная копия базы данных\r\n успешно создана."
Caption="Успех"
}
Add(FormatStr,2516802,154,203)
{
Mask="DB.db"
Point(FString)
}
Add(EventFromData,16416642,406,196)
{
}
Add(Hub,2233415,112,252)
{
OutCount=4
link(onEvent1,15480530:doWork2,[(154,258)(154,139)])
link(onEvent2,6135487:doString,[(139,265)(139,195)])
link(onEvent3,2516802:doString,[(147,272)(147,209)])
link(onEvent4,5565160:doCopy,[])
}
Add(HubEx,15480530,166,133)
{
link(onEvent,5514965:doConvert,[])
}
END_SDK
А для таких случаев
SELECT SUM(Сумма)FROM base WHERE Дата >='%1' AND Дата <= '%2' AND Категория = 'Продукты'
WHERE Дата >='%1' AND Дата <= '%2' есть волшебное слово BETWEEN
А вот так примерно, одним запросом, формируется вся справка за период по категориям:
SELECT Категория||': '||SUM(Сумма)FROM base WHERE Дата BETWEEN '%1' AND '%2' GROUP BY Категория;
Т.е. из используемых тобой ~170 компонент останется всего ~20.
А если-бы дату в таблицах хранил в формате INTEGER, то всего 4 компонента.

карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
1
файлы: 1clock_n.png [4.8KB] [1196]
Голосовали:Konst