Вверх ↑
Этот топик читают: Гость
Ответов: 91
Рейтинг: 6
#1: 2016-07-17 16:19:02 ЛС | профиль | цитата
Привет Всем!
На могу сообразить как сделать- Заполнение следующего столбца таблицы при достижении заданного числа строк.

Задача - Одновременно записывать 2 столбца.
Первый столбец - идентификатор.
Второй и дальше - данные.

Я сделал небольшой пример - на 5 строк.
Надо что бы при заполнении второго столбца, когда счетчик обнуляется, запись начиналась в третьем столбце. При заполнении третьего - следующий и так далее. При этом первый столбец заново заполняется теми же цифрами - идентификаторами.

Количество строк может быть разным - от 10 до 50.

И ещё вопрос: При достижении заданного количества строк и начале записи в следующий столбец - как удалить данные в первом столбце? Это что бы была наглядность для других столбцов....
То есть запись начинается заново для 1 и 3го столбцов, потом для 1 и 4го... т.д.

code_37463.txt

карма: 0

0
файлы: 1code_37463.txt [916B] [307]
Ответов: 497
Рейтинг: 16
#2: 2016-07-17 17:26:39 ЛС | профиль | цитата
МТ поток
карма: 1
        ]  
0
Ответов: 16884
Рейтинг: 1239
#3: 2016-07-17 17:35:14 ЛС | профиль | цитата
RAWY_EX писал(а):
МТ поток
RAWY_EX, завидую тебе - ты сразу понял что ТС нужно, а я три раза перечитал и... нихрена не понял.
- Батюшка, я правильно живу ?
- Правильно, но зря...!!

ibegen, ты такое хочешь ?
ibegen_1.gif

карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
файлы: 1ibegen_1.gif [54.4KB] [609]
Ответов: 91
Рейтинг: 6
#4: 2016-07-17 18:08:54 ЛС | профиль | цитата
нихрена не понял.

Да, наверное неправильно описал что нужно....
Не знаю как понятнее.
Если на пальцах - пять раз нажал кнопку - заполнились 5 строчек в первом и втором столбце.
Если дальше нажимать - то счетчик строк обнуляется - начинает заполняться третий столбец, а первый столбец заполняется как раньше.
Когда третий столбец заполнится - начинает заполняться следующий столбец.
карма: 0

0
Ответов: 16884
Рейтинг: 1239
#5: 2016-07-17 18:14:46 ЛС | профиль | цитата
Выше картинку глянь. Если так, то открой нижнюю точку StringTable.Matrix и используй компонент MatrixRW
Насчет вопроса. Начинать нужно было со слов : Есть таблица на четыре(десять) колонк(и/ок) и т.д.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 497
Рейтинг: 16
#6: 2016-07-17 18:27:45 ЛС | профиль | цитата
Tad, подано чуток сложна потому никто не понял
карма: 1
        ]  
0
Ответов: 16884
Рейтинг: 1239
#7: 2016-07-17 18:31:33 ЛС | профиль | цитата
RAWY_EX писал(а):
подано чуток сложна потому никто не понял
А раз не понял, то и советовать не надо.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 91
Рейтинг: 6
#8: 2016-07-17 21:26:57 ЛС | профиль | цитата
ibegen, ты такое хочешь ?


Именно Tad!!!! Именно так как на картинке.
Можно сказать что - это 4й день... что я пробую что то сделать в Хайасм.
Весь прошлый опыт забыт напрочь. Поэтому прошу не судить строго.


------------ Дoбавленo в 20.55:
Уважаемый Tad,
Насколько смог понять, так и подключил MatrixRW.
Накидал просто для понимания схему. Вроде все работает, но только на половину.
Управление по столбцам работает, а вот строки не хотят...
Может я что то не так подключил? Скорее всего да, но уже моск сломал...


Add(MainForm,2953706,56,133)
{
Width=663
Height=438
link(onCreate,12193977:doRead,[(329,153)(329,307)])
}
Add(StringTable,5817601,609,301)
{
Left=5
Top=80
Width=635
Height=250
Columns=#4:1=35|4:2=35|4:3=35|4:4=35|4:5=35|4:6=35|4:7=35|4:8=35|4:9=35|5:10=35|5:11=35|5:12=35|5:13=35|5:14=35|5:15=35|0:|0:|
StrDelimiter=" "
Point(Matrix)
}
Add(Button,5315267,196,294)
{
Left=5
Top=35
Width=160
Height=30
Caption="add data"
link(onClick,6084354:doNext,[])
}
Add(CounterEx,6084354,280,294)
{
Max=5
Point(doMin)
Point(doMax)
Point(doStep)
Point(onThroughMin)
Point(onThroughMax)
link(onNext,212268:doText,[(342,300)(342,188)])
}
Add(MatrixRW,12193977,476,301)
{
link(onRead,5817601:doAdd,[])
link(Matrix,5817601:Matrix,[(482,268)(556,268)(556,360)(629,360)])
link(Value,212268:Text,[(489,247)(356,247)])
link(X,11078112:Text,[])
link(Y,1813372:Text,[(503,229)(643,229)])
}
Add(Edit,11078112,490,182)
{
Left=195
Top=355
Text="0"
}
Add(Label,1632508,490,133)
{
Left=200
Top=335
Width=45
Height=17
Caption="столбец"
}
Add(Edit,1813372,637,182)
{
Left=320
Top=355
Text="0"
}
Add(Label,19139,637,133)
{
Left=320
Top=335
Width=39
Height=17
Caption="строка"
}
Add(UpDown,7771385,574,182)
{
Left=295
Top=340
Height=35
Max=5
link(onPosition,1813372:doText,[])
}
Add(Edit,212268,350,182)
{
Left=185
Top=40
Text="data"
link(onChange,12193977:doWrite,[(394,188)(394,314)])
}
Add(UpDown,8238694,441,182)
{
Left=170
Top=340
Height=35
link(onPosition,11078112:doText,[])
}


------------ Дoбавленo в 21.26:
Немного подумав - я понял что не понимаю как работают точки read и write компонента MatrixRW.
карма: 0

0
Ответов: 16884
Рейтинг: 1239
#9: 2016-07-17 22:01:08 ЛС | профиль | цитата
code_37467.txt

ibegen писал(а):
я понял что не понимаю как работают точки read и write компонента MatrixRW.
Выделяешь интересующий компонент (любой) и жмешь F1.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
файлы: 1code_37467.txt [1.5KB] [398]
Ответов: 91
Рейтинг: 6
#10: 2016-07-17 22:29:36 ЛС | профиль | цитата
Выделяешь интересующий компонент (любой) и жмешь F1.

К сожалению - могу констатировать факт - ответа там нет.
doRead - Прочитать ячейку в столбце X и строке Y
doWrite - Записать значение Value в ячейку в столбце X и строке Y
Я честно говоря, со своего уровня не вижу очевидного - Почему так а не иначе.

Спасибо за пример - буду изучать.


карма: 0

0
Разработчик
Ответов: 26160
Рейтинг: 2127
#11: 2016-07-18 01:54:55 ЛС | профиль | цитата
Решение задачи (в качестве расслабухи ) для неограниченного количества столбцов

Add(MainForm,16570557,77,189)
{
Width=663
Height=387
link(onCreate,8427954:doFor,[])
}
Add(Button,5315267,168,301)
{
Left=240
Top=315
Width=160
Height=30
Caption="add data"
link(onClick,7067217:doEvent1,[])
}
Add(MTStrTbl,13292555,77,147)
{
Left=5
Top=10
Width=640
Height=300
Name="tbl"
Columns=#1:1|1:2|
}
Add(MST_ColAction,6257495,602,203)
{
Action=4
MSTControl="tbl"
}
Add(CounterEx,13542597,315,308)
{
Max=0
Default=-1
Point(onThroughMax)
Point(doMax)
link(onNext,118985:doEvent1,[])
link(onThroughMax,14979797:doEvent1,[(354,321)(354,209)])
}
Add(MST_RowAction,5225647,245,203)
{
MSTControl="tbl"
}
Add(Random,5516353,476,378)
{
link(onRandom,3260640:doWork2,[])
}
Add(Hub,118985,427,308)
{
OutCount=4
link(onEvent1,14212908:doClear,[])
link(onEvent2,3260640:doWork1,[(529,321)])
link(onEvent3,14212908:doValue,[(452,328)(452,307)])
link(onEvent4,5516353:doRandom,[(452,335)(452,384)])
}
Add(MST_Matrix,8383986,560,266)
{
MSTControl="tbl"
}
Add(MatrixRW,7606358,560,371)
{
link(Matrix,8383986:Matrix,[])
link(X,14212908:Value,[(580,341)(615,341)])
link(Y,13542597:Count,[(587,362)(321,362)])
}
Add(Memory,14212908,609,301)
{
Default=Integer(0)
Point(Data)
link(Data,6257495:EndIdxCol,[])
}
Add(HubEx,3260640,525,378)
{
link(onEvent,7606358:doWrite,[])
}
Add(MST_ColAction,11954119,511,266)
{
MSTControl="tbl"
}
Add(For,8427954,133,203)
{
End=5
link(onEvent,7512140:doData,[])
}
Add(DoData,7512140,189,203)
{
Data=String()
link(onEventData,5225647:doRowAction,[])
}
Add(VisualStrings,5815230,462,203)
{
Lines=#1:0|
Point(doText)
Point(onText)
link(onText,6257495:doColAction,[])
}
Add(Hub,14979797,371,203)
{
link(onEvent1,5815230:doText,[])
link(onEvent2,9612796:doOperation,[(396,216)(396,272)])
}
Add(StrCat,13038174,462,266)
{
Str2="=80==2"
link(onStrCat,11954119:doColAction,[])
}
Add(Math,9612796,413,266)
{
Op2=1
ResultType=0
link(onResult,13038174:doStrCat,[])
link(Op1,6257495:CountCol,[(419,243)(608,243)])
}
Add(Hub,7067217,217,301)
{
link(onEvent1,12862246:doData,[(242,307)(242,279)])
link(onEvent2,13542597:doNext,[])
}
Add(DoData,12862246,252,273)
{
link(onEventData,13542597:doMax,[(298,279)(298,321)])
link(Data,5225647:EndIdx,[])
}

карма: 22

0
Ответов: 16884
Рейтинг: 1239
#12: 2016-07-18 06:19:11 ЛС | профиль | цитата
nesco, для начинающего можно было и попроще code_37469.txt

ibegen писал(а):
К сожалению - могу констатировать факт - ответа там нет.
"К сожалению" по F1 читать нужно до конца. Примеры с ответами в конце. Обычная практика.
MatrixRW
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
файлы: 1code_37469.txt [1.4KB] [374]
Ответов: 91
Рейтинг: 6
#13: 2016-07-18 09:32:07 ЛС | профиль | цитата

@Доброе утро Tad,
@Доброе утро nesco,
"К сожалению" по F1 читать нужно до конца. Примеры с ответами в конце.

Я читал до конца и смотрел пример. Не совсем понял как там и что. Некоторые действия компонентов кажутся нелогичными. Наверное просто чайник я.
С программированием знаком на уровне просмотра фильма "Хакеры". Там где Джоли ещё молодая.
Надеюсь потихоньку освою тему. Если опять больших перерывов не будет.

Спасибо за примеры. Это именно то что мне нужно. И именно так как я и предполагал.
Но как же это все сложно.....



карма: 0

0
Разработчик
Ответов: 26160
Рейтинг: 2127
#14: 2016-07-18 10:14:06 ЛС | профиль | цитата
Tad писал(а):
для начинающего можно было и попроще

Я выполнил условие задачи
ibegen писал(а):
То есть запись начинается заново для 1 и 3го столбцов, потом для 1 и 4го... т.д.

У тебя этого нет, потому и проще.
карма: 22

0
Ответов: 16884
Рейтинг: 1239
#15: 2016-07-18 10:46:02 ЛС | профиль | цитата
nesco писал(а):
Я выполнил условие задачи
Тут ты прав.
Хотя блажь про перезапись номера строки мне совершенно не понятна.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)