Tad, отвечаю на ваши вопросы.
для начала прилагаю картинку как схематично должно работать. Попытался доступно разъяснить идею. Программа задумана для птичника, для которого предусмотрена схема вакцинаций. Думаю так будет понятнее.
http://yadi.sk/d/_bE4l59DFRikt
1. У Medvedoc-а хотелки меняются со скоростью звука.
Абсолютно не верно. Есть четкая цель.
2. При следующем запуске в таблицах (и левой и правой) должны светиться раннее введенные данные.
Вы наверное имели в виду сохраниться? Да, данные должны сохраниться.
Т.к. "мероприятие" может быть ежедневным, то в правой таблице может быть до 32-х колонок.
Нет, не 32. Количество столбцов зависит от количества введенных строк в первой таблице. Посмотрите картинку выше и вы поймете как формируется вторая таблица.
4. sla8a писал(а)
лично мне сложно понять что вы пытаетесь сделать
и мне тоже.
лично мне сложно понять что вы пытаетесь сделать
и мне тоже.
Это программа графика вакцинации - в зависимости от возраста птенцов рассчитывается дата конкретной вакцинации.
5. Что должно происходить при переходе из текущего месяца в следующий ?
Просто архивация данных.
Если есть вопросы, то задавайте. Просто я не знаю что понятно, а что нет. Кстати,Tad, функционал программы задуман так, чтобы в зависимости от первой таблицы рассчитывался график по датам вакцинаций. При наступлении конкретной (ближайшей)вакцинации должен сработать звук напоминания. В конце месяца должна происходить архивация в файл графика. Также при закрытии программы данные должны автоматически сохраняться. И программа должна сидеть в трее, чтобы работала напоминалка.
------------ Дoбавленo в 15.15:
и подскажите пожалуйста как все таки подключить squlite3.dll к hiasm?
------------ Дoбавленo в 15.40:
miver, то что нужно
но ньюанс - при выборе другого корпуса рассчет происходит не верно.
Add(MainForm,11607186,77,35)
{
Width=715
Height=416
Caption="график вакцинации"
BorderStyle=4
Position=1
link(onCreate,6991059:doOpen,[])
}
Add(MTStrTbl,15761846,357,49)
{
@Color=5592575
Left=300
Top=50
Width=385
Height=215
Name="график"
Columns=#6:корпус|4:дата|0:|0:|0:|0:|0:|0:|0:|0:|0:|0:|0:|0:|0:|0:|0:|0:|0:|0:|0:|0:|0:|0:|0:|0:|
}
Add(Button,949453,70,364)
{
Left=420
Top=15
Width=135
TabOrder=-1
Caption="рассчитать"
link(onClick,11771530:doString,[])
}
Add(ComboBox,11406695,126,294)
{
Left=300
Top=15
Width=110
Height=21
Strings=#8:корпус 1|8:корпус 2|8:корпус 3|8:корпус 4|8:корпус 5|0:|0:|0:|0:|0:|0:|0:|0:|0:|0:|0:|0:|0:|0:|0:|0:|0:|0:|2:5||
Text="корпус"
Point(EditText)
}
Add(MTStrTbl,5113738,308,49)
{
@Color=43520
Left=20
Top=115
Width=250
Height=155
Name="вакцинация"
Columns=#14:ВАКЦИНАЦИЯ=150|17:ВОЗРАСТ (ДНИ)=100|0:|0:|0:|0:|0:|0:|0:|0:|0:|0:|0:|0:|0:|0:|0:|0:|0:|0:|0:|0:|0:|0:|4:100||
Point(doSetFocus)
Point(onSelect)
}
Add(Edit,16767801,168,161)
{
Left=101
Top=45
Width=110
Text="0"
DataType=2
}
Add(Button,12084787,70,217)
{
Left=15
Top=70
Width=195
Height=30
TabOrder=-1
Caption="добавить"
link(onClick,8126504:doString,[])
}
Add(ComboBox,4864849,126,147)
{
Left=85
Top=15
Width=125
Height=21
Strings=#2:БМ|2:БГ|2:БН|3:ИБК|3:ИЛТ|0:|0:|0:|0:|0:|0:|0:|0:|0:|0:|0:|0:|0:|0:|0:|0:|0:|0:|0:|0:|0:|0:|0:|0:|0:|0:|2:5||
Text="вакцинацияя"
Point(EditText)
}
Add(DatePicker,9450650,175,294)
{
Left=565
Top=15
Width=110
Height=21
Font=[MS Sans Serif,6,0,0,1]
Point(doLeft)
Point(doTop)
Point(doSetFocus)
Point(doBringToFront)
Point(DateTime)
Point(doSendToBack)
}
Add(Edit,8011464,455,49)
{
Left=25
Top=320
Width=90
Text=""
}
Add(Button,12901694,406,49)
{
Left=125
Top=320
}
Add(DS_SQLite,6991059,126,49)
{
@Color=5636095
Name="11"
FileName=":memory:"
Point(onError)
link(onOpen,13846613:doExec,[])
link(onError,12525531:doWork2,[(166,62)(166,90)])
}
Add(Message,3808633,231,84)
{
}
Add(DSC_Exec,13846613,175,49)
{
@Color=5636095
SQL="CREATE TABLE [events] (\r\n[id] INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,\r\n[name] TEXT,\r\n[data] INTEGER);\r\n\r\nCREATE TABLE [tasks] (\r\n[id] INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,\r\n[name] TEXT,\r\n[dtime] REAL);"
DSManager="11"
link(onError,12525531:doWork1,[(214,62)])
}
Add(HubEx,12525531,210,84)
{
link(onEvent,3808633:doMessage,[])
}
Add(DSC_Exec,7884957,203,217)
{
@Color=5636095
DSManager="11"
link(onExec,15277953:doEvent1,[])
link(onError,14022728:doWork,[])
}
Add(FormatStr,8126504,133,217)
{
Mask="INSERT INTO [events] ([name], [data]) VALUES('%1', %2); "
link(onFString,7884957:doExec,[])
link(Str1,4864849:String,[])
link(Str2,16767801:Text,[(146,201)(174,201)])
}
Add(MST_DB,953009,392,217)
{
@Color=43520
MSTControl="вакцинация"
Point(doClear)
}
Add(Hub,15277953,266,217)
{
link(onEvent1,953009:doClear,[(375,223)(375,237)])
link(onEvent2,11511635:doQuery,[])
}
Add(DSC_Query,11511635,315,224)
{
@Color=5636095
SQL="SELECT [name], [data] from [events]"
DSManager="11"
link(onQuery,953009:doAddRow,[(382,230)(382,223)])
link(onError,12129855:doWork,[])
}
Add(LineBreakEx,14022728,245,224)
{
}
Add(LineBreakEx,8042414,189,98)
{
Type=1
link(OnEvent,12525531:doWork3,[(214,104)])
}
Add(LineBreakEx,12129855,357,238)
{
}
Add(DSC_Exec,12182020,196,364)
{
@Color=5636095
DSManager="11"
link(onExec,10771421:doEvent1,[])
link(onError,3606489:doWork,[])
}
Add(FormatStr,11771530,133,364)
{
Mask="INSERT INTO [tasks] ([name], [dtime]) VALUES('%1', %2); "
link(onFString,12182020:doExec,[])
link(Str1,11406695:String,[])
link(Str2,9450650:DateTime,[(146,348)(181,348)])
}
Add(MST_DB,10553212,672,371)
{
@Color=5592575
MSTControl="график"
Point(doClearAll)
}
Add(LineBreakEx,3606489,238,371)
{
}
Add(Hub,10771421,259,364)
{
OutCount=4
link(onEvent1,10553212:doClearAll,[(459,370)(459,391)])
link(onEvent2,15451509:doData,[])
link(onEvent3,12922371:doQuery,[])
link(onEvent4,4614904:doQuery,[(291,391)(291,433)])
}
Add(DSC_Query,4614904,301,427)
{
@Color=5636095
SQL="SELECT [name], strftime("%d.%m.%Y", 1721424.5 + [dtime]), [dtime] from [tasks]"
DSManager="11"
link(onQuery,13313127:doEvent1,[])
link(onError,3923348:doWork,[])
}
Add(LineBreakEx,3923348,343,441)
{
}
Add(DSC_Query,12922371,399,378)
{
@Color=5636095
SQL="SELECT [name] from [events]"
DSManager="11"
link(onQuery,9772768:doWork2,[])
link(onError,4829472:doWork,[])
}
Add(LineBreakEx,4829472,441,392)
{
}
Add(DoData,15451509,301,371)
{
Data=String(аЗаАаДаАаНаИаЕ)
link(onEventData,3754311:doAdd,[])
}
Add(MT_Add,3754311,350,371)
{
Data=String(б?аЕаКб?б?аАб? аДаАб?аА)
link(onAdd,9772768:doWork1,[(445,377)])
}
Add(HubEx,9772768,441,378)
{
link(onEvent,10553212:doAddCols,[])
}
Add(FormatStr,8156537,427,476)
{
DataCount=1
Mask="SELECT strftime("%d.%m.%Y", 1721424.5 + %1 + [data]) from [events]"
link(onFString,11422646:doQuery,[])
link(Str1,15251959:Value3,[])
}
Add(DSC_Query,11422646,476,476)
{
@Color=5636095
DSManager="11"
link(onQuery,10214565:doAdd,[])
link(onError,6059374:doWork,[])
}
Add(LineBreakEx,6059374,518,490)
{
}
Add(MT_MultiMem,15251959,413,427)
{
Count=3
}
Add(Hub,13313127,364,427)
{
OutCount=3
link(onEvent1,15251959:doValue,[])
link(onEvent2,8156537:doString,[(403,440)(403,482)])
link(onEvent3,10341187:doAdd,[(396,447)(396,531)])
}
Add(MT_Memory,4303723,602,476)
{
}
Add(MT_Add,10214565,546,476)
{
InputMT=1
link(onAdd,4303723:doValue,[])
link(Data,15937933:Var3,[(552,460)(594,460)])
}
Add(MT_AddData,10341187,413,525)
{
Count=3
link(onAdd,10553212:doAddRow,[(641,531)(641,377)])
link(Data1,15251959:Value1,[])
link(Data2,15251959:Value2,[])
link(Data3,15937933:Var1,[(433,516)])
}
Add(GetDataEx,15937933,588,511)
{
Angle=1
link(Data,4303723:Value,[(608,516)])
}
Add(Label,2084213,35,147)
{
Left=15
Top=15
Width=64
Height=17
Caption="вакцинация"
}
Add(Label,6975909,77,147)
{
Left=15
Top=45
Width=78
Height=17
Caption="возраст (дней)"
}