Страница 1 из 1
					
				Затмение....
				Добавлено: 30 Сентябрь 2010, 12:10
				 Smith
				Нужно Прочитать 30 записей файла. Остановиться. Пользователь нажал кнопку "Вперед".Прочитать следующие 30. Остановиться. пользователь нажал на кнопку "Назад". Прочитать предыдущие 30
Люди ! не бросьте в беде! 

 
			 
			
					
				Re: Затмение....
				Добавлено: 30 Сентябрь 2010, 12:24
				 BOB
				Точно затмение участника  !!!
Ну , на первый вопрос я ответ знаю.
file{prop:sql}='select top 30 * from baza.dbo.file' , а дальше только гуру могут.
			 
			
					
				Re: Затмение....
				Добавлено: 30 Сентябрь 2010, 23:46
				 WadimZapara
				BOB писал(а):Ну , на первый вопрос я ответ знаю.
file{prop:sql}='select top 30 * from baza.dbo.file' , а дальше только гуру могут.
BOB, ты ясновидящий, что файл MSSQL-ный или MySQL-ный ?
Smith, читай правила, хотя бы указал какой файл (таблица, база), ну и Клара какая - тоже стоит.
Вопрос дурацкий - ответ дурацкий
извините оба
 
			 
			
					
				Re: Затмение....
				Добавлено: 01 Октябрь 2010, 2:49
				 Admin
				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
 
			 
			
					
				Re: Затмение....
				Добавлено: 01 Октябрь 2010, 4:31
				 BOB
				Код: Выделить всё
BOB, ты ясновидящий, что файл MSSQL-ный или MySQL-ный ?
Нет у меня перекосов в сознании , а ответ самый вероятный (хотя и шутливый) . Думаю кларионистов sql уже больше tps , еще думаю в ближайшие 5 лет кларион шарп задавит вин. И Вам предлагаю  попробовать шарт , а то я совсем один и скоро буду писать "Люди помогите !!!" .
 
			 
			
					
				Re: Затмение....
				Добавлено: 01 Октябрь 2010, 6:14
				 Smith
				Джентльмены! Если бы ето был какой либо SQL - я ( уж поверьте на слово 

) так и написал бы. 
Родной ТПС ! что может быть лучче?!  

))
 
			 
			
					
				Re: Затмение....
				Добавлено: 01 Октябрь 2010, 6:18
				 Smith
				....А вот Админ у нас добрейшей души человек..... Респект и уважуха 

 Благодарю за помощь! 

 
			 
			
					
				Re: Затмение....
				Добавлено: 01 Октябрь 2010, 10:04
				 Andrew™
				Smith писал(а):Джентльмены! Если бы ето был какой либо SQL - я ( уж поверьте на слово 

) так и написал бы. 
Родной ТПС ! что может быть лучче?!  

))
 
если есть уникальный ключь работаем по нему, иначе создаём клашину VIEW с уникальным ORDER, далее
Код: Выделить всё
 SET(FILE:KEY)
 LOOP 30 TIMES
  NEXT(FILE)
  IF ERRORCODE() THEN BREAK.
  ! добавляем в Queue
  ADD(Queue:Browse)
 END
 читать вперёд:
Код: Выделить всё
 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
 
			 
			
					
				Re: Затмение....
				Добавлено: 01 Октябрь 2010, 10:53
				 lsgsoftware
				Может быть я и не прав,но для чела,умеющего программировать
на клаше, это не проблема.Можно все решить разными методами.
А уж какой лучше,так это знает только господь-бог.С подобной проблемой
я столкнулся уже очень давно в связи с со "сверсложной" проблемой,
связанной с накладной по форме ТОРГ12(кто знает,это тот еще геморой).
Ну и что,провозился дней 10,но сделал.Так что совет автору поста:
изучай клашу,тренируйся,а успех придет.Возможности клаши безграничны.
			 
			
					
				Re: Затмение....
				Добавлено: 01 Октябрь 2010, 12:22
				 Алексей- Софт-Центр
				Можно воспользоваться обычны броузом - выставить его размер на 30 записей и создать две кнопки: туда/сюда с вызовом 
BRW1.ScrollPage
5 вверх 6 - вниз (или наоборот)
Алексей
			 
			
					
				Re: Затмение....
				Добавлено: 01 Октябрь 2010, 13:59
				 Smith
				lsgsoftware писал(а): .Так что совет автору поста:
изучай клашу,тренируйся,а успех придет.Возможности клаши безграничны.
....хм а форум для чего? Задать вопрос - получить ответ, посмотреть как видят решение похожей проблемы другие, возможно предложат более эффективное решение, почему нет?! Если есть с кем посоветоваться почему бы нет? Я ведь не узнаю у сообщества безграничны ли возможности Клариона или нет, и как добиться "просветления" .... 

))