Затмение....

Clarion, Clarion 7

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Ответить
Smith
Старожил
Сообщения: 213
Зарегистрирован: 05 Сентябрь 2005, 19:21
Откуда: Пермь
Благодарил (а): 1 раз

Затмение....

Сообщение Smith »

Нужно Прочитать 30 записей файла. Остановиться. Пользователь нажал кнопку "Вперед".Прочитать следующие 30. Остановиться. пользователь нажал на кнопку "Назад". Прочитать предыдущие 30
Люди ! не бросьте в беде! ;-)
BOB
Ветеран
Сообщения: 336
Зарегистрирован: 17 Июль 2005, 5:43

Re: Затмение....

Сообщение BOB »

Точно затмение участника !!!
Ну , на первый вопрос я ответ знаю.
file{prop:sql}='select top 30 * from baza.dbo.file' , а дальше только гуру могут.
Аватара пользователя
WadimZapara
Активист
Сообщения: 181
Зарегистрирован: 11 Июнь 2008, 12:11
Откуда: Тамбов

Re: Затмение....

Сообщение WadimZapara »

BOB писал(а):Ну , на первый вопрос я ответ знаю.
file{prop:sql}='select top 30 * from baza.dbo.file' , а дальше только гуру могут.
BOB, ты ясновидящий, что файл MSSQL-ный или MySQL-ный ?
Smith, читай правила, хотя бы указал какой файл (таблица, база), ну и Клара какая - тоже стоит.
Вопрос дурацкий - ответ дурацкий
извините оба
Компьютер имеет то преимущество перед мозгом, что им пользуются...
Аватара пользователя
Admin
Администратор
Сообщения: 3960
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 25 раз
Поблагодарили: 22 раза
Контактная информация:

Re: Затмение....

Сообщение 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
Вложения
demo.zip
TPS файл для примера
(592 байт) 120 скачиваний
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
BOB
Ветеран
Сообщения: 336
Зарегистрирован: 17 Июль 2005, 5:43

Re: Затмение....

Сообщение BOB »

Код: Выделить всё

BOB, ты ясновидящий, что файл MSSQL-ный или MySQL-ный ?
Нет у меня перекосов в сознании , а ответ самый вероятный (хотя и шутливый) . Думаю кларионистов sql уже больше tps , еще думаю в ближайшие 5 лет кларион шарп задавит вин. И Вам предлагаю попробовать шарт , а то я совсем один и скоро буду писать "Люди помогите !!!" .
Smith
Старожил
Сообщения: 213
Зарегистрирован: 05 Сентябрь 2005, 19:21
Откуда: Пермь
Благодарил (а): 1 раз

Re: Затмение....

Сообщение Smith »

Джентльмены! Если бы ето был какой либо SQL - я ( уж поверьте на слово :-)) так и написал бы.
Родной ТПС ! что может быть лучче?! :-)))
Smith
Старожил
Сообщения: 213
Зарегистрирован: 05 Сентябрь 2005, 19:21
Откуда: Пермь
Благодарил (а): 1 раз

Re: Затмение....

Сообщение Smith »

....А вот Админ у нас добрейшей души человек..... Респект и уважуха :-) Благодарю за помощь! :-)
Аватара пользователя
Andrew™
SQL профи
Сообщения: 651
Зарегистрирован: 05 Июль 2005, 16:32
Откуда: Москва, Зеленоград

Re: Затмение....

Сообщение 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
lsgsoftware
Ветеран
Сообщения: 311
Зарегистрирован: 08 Июль 2005, 22:04

Re: Затмение....

Сообщение lsgsoftware »

Может быть я и не прав,но для чела,умеющего программировать
на клаше, это не проблема.Можно все решить разными методами.
А уж какой лучше,так это знает только господь-бог.С подобной проблемой
я столкнулся уже очень давно в связи с со "сверсложной" проблемой,
связанной с накладной по форме ТОРГ12(кто знает,это тот еще геморой).
Ну и что,провозился дней 10,но сделал.Так что совет автору поста:
изучай клашу,тренируйся,а успех придет.Возможности клаши безграничны.
Алексей- Софт-Центр
Ветеран
Сообщения: 390
Зарегистрирован: 26 Август 2009, 12:41
Откуда: Moscow
Контактная информация:

Re: Затмение....

Сообщение Алексей- Софт-Центр »

Можно воспользоваться обычны броузом - выставить его размер на 30 записей и создать две кнопки: туда/сюда с вызовом
BRW1.ScrollPage
5 вверх 6 - вниз (или наоборот)

Алексей
Smith
Старожил
Сообщения: 213
Зарегистрирован: 05 Сентябрь 2005, 19:21
Откуда: Пермь
Благодарил (а): 1 раз

Re: Затмение....

Сообщение Smith »

lsgsoftware писал(а): .Так что совет автору поста:
изучай клашу,тренируйся,а успех придет.Возможности клаши безграничны.
....хм а форум для чего? Задать вопрос - получить ответ, посмотреть как видят решение похожей проблемы другие, возможно предложат более эффективное решение, почему нет?! Если есть с кем посоветоваться почему бы нет? Я ведь не узнаю у сообщества безграничны ли возможности Клариона или нет, и как добиться "просветления" .... :-)))
Ответить