Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Нужно Прочитать 30 записей файла. Остановиться. Пользователь нажал кнопку "Вперед".Прочитать следующие 30. Остановиться. пользователь нажал на кнопку "Назад". Прочитать предыдущие 30
Люди ! не бросьте в беде!
BOB писал(а):Ну , на первый вопрос я ответ знаю.
file{prop:sql}='select top 30 * from baza.dbo.file' , а дальше только гуру могут.
BOB, ты ясновидящий, что файл MSSQL-ный или MySQL-ный ? Smith, читай правила, хотя бы указал какой файл (таблица, база), ну и Клара какая - тоже стоит.
Вопрос дурацкий - ответ дурацкий
извините оба
Компьютер имеет то преимущество перед мозгом, что им пользуются...
PROGRAM
MAP
Process30recordsForward
Process30recordsBackward
END
Demo FILE,DRIVER('Topspeed'),PRE(DEM),CREATE,NAME('c:\demo.tps')
Record RECORD
DemoID LONG
END
END
loc:process byte(0)
loc:cc byte
record:limit equate(2)
CODE
OPEN(Demo)
Process30recordsForward
Process30recordsForward
Process30recordsForward
Process30recordsBackward
Process30recordsBackward
Process30recordsForward procedure
code
if ~loc:process
loc:process=1
set(Demo,1)
end
loop loc:cc = 1 to record:limit
next(Demo)
if errorcode()
set(Demo,records(Demo))
break
end
MESSAGE(Demo.DemoID)
end
Process30recordsBackward procedure
code
if ~loc:process
loc:process=1
set(Demo,records(Demo))
end
loop loc:cc = 1 to record:limit
previous(Demo)
if errorcode()
set(Demo,1)
break
end
MESSAGE(Demo.DemoID)
end
BOB, ты ясновидящий, что файл MSSQL-ный или MySQL-ный ?
Нет у меня перекосов в сознании , а ответ самый вероятный (хотя и шутливый) . Думаю кларионистов sql уже больше tps , еще думаю в ближайшие 5 лет кларион шарп задавит вин. И Вам предлагаю попробовать шарт , а то я совсем один и скоро буду писать "Люди помогите !!!" .
GET(Queue:Browse,RECORDS(Queue:Browse))
FILE:Field = BRW1:Field
SET(FILE:KEY,FILE:KEY)
NEXT(FILE)
IF NOT ERRORCODE()
LOOP 30 TIMES
NEXT(FILE)
IF ERRORCODE() THEN BREAK.
! добавляем в Queue
ADD(Browse:Queue)
GET(Queue:Browse,1)
DELETE(Queue:Browse)
END
END
GET(Queue:Browse,1)
FILE:Field = BRW1:Field
SET(FILE:KEY,FILE:KEY)
PREVIOUS(FILE)
IF NOT ERRORCODE()
LOOP 30 TIMES
PREVIOS(FILE)
IF ERRORCODE() THEN BREAK.
! добавляем в Queue
ADD(Browse:Queue,1)
GET(Queue:Browse,RECORDS(Queue:Browse))
DELETE(Queue:Browse)
END
END
Может быть я и не прав,но для чела,умеющего программировать
на клаше, это не проблема.Можно все решить разными методами.
А уж какой лучше,так это знает только господь-бог.С подобной проблемой
я столкнулся уже очень давно в связи с со "сверсложной" проблемой,
связанной с накладной по форме ТОРГ12(кто знает,это тот еще геморой).
Ну и что,провозился дней 10,но сделал.Так что совет автору поста:
изучай клашу,тренируйся,а успех придет.Возможности клаши безграничны.
Можно воспользоваться обычны броузом - выставить его размер на 30 записей и создать две кнопки: туда/сюда с вызовом
BRW1.ScrollPage
5 вверх 6 - вниз (или наоборот)
lsgsoftware писал(а): .Так что совет автору поста:
изучай клашу,тренируйся,а успех придет.Возможности клаши безграничны.
....хм а форум для чего? Задать вопрос - получить ответ, посмотреть как видят решение похожей проблемы другие, возможно предложат более эффективное решение, почему нет?! Если есть с кем посоветоваться почему бы нет? Я ведь не узнаю у сообщества безграничны ли возможности Клариона или нет, и как добиться "просветления" .... ))