Вверх ↑
Этот топик читают: Гость
Ответов: 254
Рейтинг: 6
#1: 2014-01-03 22:24:51 ЛС | профиль | цитата
Добрый вечер форумчане!!! Помогите доработать схему,а то я уже запутался совсем.
Вот исходник моей схемы, скорее его внешний вид - http://yadi.sk/d/UKxgzzGeFQJ8w.
Здесь исходник схемы с недоработанным функционалом http://yadi.sk/d/QBAWy30IFQJ6m. Недоработка заключается в том, что не получается сделать так, чтобы введенные в правой табличке числа с editоров участвовали в вычислениях дат правой таблицы. То бишь при выборе в правой таблице нового задания в строке должны проставляться даты. Но в вычислении каждой даты должны участвовать введенные editоры. Общий механизм работы таблицы приведен в файлике excel.
Сам файлик excel http://yadi.sk/d/5c463UYeFQJUo. При вводе в левой таблице чисел в правой таблице автоматически меняются даты. При выборе любой ячейки с датой можно увидеть формулу вычислений. Подобный механизм необходимо реализовать в схеме. Но как сделать это уже не знаю.
Сейчас в исходнике 111g.sha передача введенного числа нового edit передается путем выделения активной строки таблицы и передача ее значения value.
карма: 0

0
Ответов: 2236
Рейтинг: 676
#2: 2014-01-03 22:51:18 ЛС | профиль | цитата
Medvedoc, лично мне сложно понять что вы пытаетесь сделать и что хотите получить. Возможно подробное описание поможет.
карма: 11

0
Ответов: 254
Рейтинг: 6
#3: 2014-01-03 23:10:25 ЛС | профиль | цитата
sla8a, вечер добрый! Суть схемы в том, что она состоит из двух таблиц. В первой (левой) таблице вносятся данные по мероприятиям в столбик. В editорах содержатся числа, которые участвуют в дальнейших вычислениях для второй таблицы.
Во второй (правой) таблице в строку проставляются теже мероприятия, но точнее их даты когда будут выпонены. Проставляются в строку. Дата вычисляется путем прибавления к текущей дате числа с первой таблиц (введенного в edit) и преобразования его вновь в дату. Получается своеобразная схема или график. В левой таблице задаются периоды, а в правой вычисляются в зависимотсти от этих периодов даты. Разница лишь в том, что в левой таблице значения проставляются в столбец,а в правой в строку.
карма: 0

0
Ответов: 2236
Рейтинг: 676
#4: 2014-01-03 23:47:03 ЛС | профиль | цитата
Medvedoc, и вам добрый вечер. Вроде как в общих чертах понятно. Вот только получается что не выгодно держать правую таблицу. Получается добавление столбцов, а не строк. Или у всех "мероприятий" будет равное количество "заданий"?
карма: 11

0
Ответов: 254
Рейтинг: 6
#5: 2014-01-03 23:52:45 ЛС | профиль | цитата
правильно - при добавлении нового мероприятия в левой таблице в правой таблице создается новый столбец. Так и задумано. Суть в том, что число введенное в edit будет участвовать в вычислениях дат всего столбца правой таблицы.
карма: 0

0
Ответов: 8915
Рейтинг: 823
#6: 2014-01-03 23:54:04 ЛС | профиль | цитата
Medvedoc, кстати, в пакете MSOffice есть спецпрограмма для разработки сетевых графиков
карма: 19

0
Ответов: 254
Рейтинг: 6
#7: 2014-01-04 00:05:51 ЛС | профиль | цитата
Леонид, вечер добрый
Слышал про этот пакет, но хочу свою схему доработать идея схtvs есть в excel, но там нет возможностей реализовать все задуманное.
карма: 0

0
Ответов: 8915
Рейтинг: 823
#8: 2014-01-04 01:04:41 ЛС | профиль | цитата
Medvedoc, не далее чем 8 лет назад я в Excel делал расчёт сетевого графика, получилось всё, вплоть до зарплаты и самого графика со всеми зазорами и узкими местами И удалил-то я его совсем недавно, очередная шлея под хвост попала -- вычистил компьютер, зачем и сам не знаю, 1,5 Тбайта на диске, свободно 1,25 Тб
карма: 19

0
Ответов: 758
Рейтинг: 112
#9: 2014-01-04 01:41:16 ЛС | профиль | цитата
Medvedoc, Вот твоя схема на опережение
code_32735.txt
карма: 1

0
файлы: 1code_32735.txt [5.7KB] [209]
Ответов: 16884
Рейтинг: 1239
#10: 2014-01-04 12:27:26 ЛС | профиль | цитата
miver, "на опережение" не получится :
1. У Medvedoc-а хотелки меняются со скоростью звука.
2. При следующем запуске в таблицах (и левой и правой) должны светиться раннее введенные данные.
3. Т.к. "мероприятие" может быть ежедневным, то в правой таблице может быть до 32-х колонок.
4.
sla8a писал(а):
лично мне сложно понять что вы пытаетесь сделать
и мне тоже.
5. Что должно происходить при переходе из текущего месяца в следующий ?
и т.д.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 254
Рейтинг: 6
#11: 2014-01-04 15:40:03 ЛС | профиль | цитата
miver, приветствую! А как прикрутить sqlite3.dll? В помощи нашел описание, но не срабатывает у меня.
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="возраст (дней)"
}


карма: 0

0
Ответов: 16884
Рейтинг: 1239
#12: 2014-01-04 15:55:08 ЛС | профиль | цитата
Посмотрел http://yadi.sk/d/_bE4l59DFRikt. Эта задача решается совсем не так. ИМХО.
Есть СХЕМА ВАКЦИНАЦИИ, т.е. вводить данные (на какой день какая вакцина) - полный абсурд, если это не программа для научно-исследовательского института.
Medvedoc писал(а):
как подключить squlite3.dll
Просто положить её рядом с программой.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 758
Рейтинг: 112
#13: 2014-01-04 16:19:47 ЛС | профиль | цитата
Medvedoc писал(а):
при выборе другого корпуса рассчет происходит не верно.
А самому подумать
Просто забыл очистить МТ память
code_32736.txt
Medvedoc писал(а):
и подскажите пожалуйста как все таки подключить squlite3.dll к hiasm?

Tad писал(а):
Просто положить её рядом с программой.
или
Работа с SQLite_OBJ
карма: 1

0
файлы: 1code_32736.txt [3.1KB] [195]
Ответов: 254
Рейтинг: 6
#14: 2014-01-04 17:05:38 ЛС | профиль | цитата
miver, здорово а что если я например таблицу сделаю редактируемой, то при изменении значения возраст изменится график?
карма: 0

0
Ответов: 758
Рейтинг: 112
#15: 2014-01-04 17:33:24 ЛС | профиль | цитата
Если поменяешь записи в БД и отобразишь их, то поменяются
карма: 1

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)