Страница 1 из 2

Очистка use - поля combo бокса

Добавлено: 03 Август 2006, 7:54
SSTA
Здравствуйте.
cw 6.1. ABC
Имею рядовой combo box.
Файл:
Fil:Cod
Fil:Name
Use переменная - поле файла Fil:Name (string). После выбора/добавления проделываю с записью её обработку по нажатию кнопки. После этого в окне устанавливается первая запись файла. А нужно бы чиcтую строку. Не помогает ничего, ни erase, ни попытка установить или выбрать несуществующую запись, ни привязка в action к пустым полям.
Как увернуться?

Добавлено: 03 Август 2006, 9:16
Admin
а пробовал перед обработкой записи сделать

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

SaveState = Access:MyFile.SaveFile()
а после этого

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

Access:MyFile.RestoreFile(SaveState)

Добавлено: 03 Август 2006, 9:22
Леонид
Используй в качесве USE-переменной локальную переменную, типа LOC:Name и очищай ее

Добавлено: 03 Август 2006, 9:23
ru_alex
попробуй

ERASE(?Fil:Name)
FDCB1.ResetQueue

если используешь локальные переменные, в которые попадают значения из файла, наверное, их тоже нужно очистить.

Добавлено: 03 Август 2006, 9:32
ru_alex
Леонид писал(а):Используй в качесве USE-переменной локальную переменную, типа LOC:Name и очищай ее
Неа, так не пойдет.
Там в классе при обработке event:accepted есть код:

SELF.UseField = SELF.EntryField{PROP:ScreenText}

которые перекрывает очистку переменной

Добавлено: 03 Август 2006, 12:44
Дед Пахом
а ?combo{prop:text}='' не поможет? Сам проверить в данный момент не могу, но помню, что-то похожее очень простое работало.

Добавлено: 03 Август 2006, 12:53
ru_alex
Дед Пахом писал(а):а ?combo{prop:text}='' не поможет? Сам проверить в данный момент не могу, но помню, что-то похожее очень простое работало.
ну, батенька :)

из c60help:

COMBO Places a data entry field with an associated list of data items on the WINDOW or TOOLBAR.

picture A display picture token that specifies the input format for the data entered into the control (PROP:Text).

Добавлено: 03 Август 2006, 20:42
Дед Пахом
ну не prop:text, а prop:screentext

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

  program
  map
  end

Q     QUEUE
S       STRING(20)
      END

Window WINDOW('Caption'),AT(,,260,100),FONT('MS Sans Serif',8,,FONT:regular,CHARSET:CYRILLIC),SYSTEM, |
         GRAY
       COMBO(@s20),AT(20,16,163,15),USE(?Combo1),DROP(5),FROM(Q)
       BUTTON('Очистить'),AT(19,46,45,14),USE(?Button1)
     END

  code
  Q.S='AAAAAAAAAAAAAAAAA'
  ADD(Q)

  Q.S='BBBBBBBBBBBBBBBBB'
  ADD(Q)

  Q.S='CCCCCCCCCCCCCCCCC'
  ADD(Q)

  open(window)
  accept
    case event()
    of event:accepted
      case field()
      of ?Button1
        ?Combo1{prop:screentext}=''
        display
      end
    end
  end
  close(window)
очищается...

PS для админа:
если копировать сюда из IDE клариона, то русские буквы превращаются в элегантные шорты, в смысле в кракозябры.

Добавлено: 04 Август 2006, 0:13
Admin
А я тут каким боком? Это вроблема Clarion`а
Т.к. из других продуктов все вставляется на ура. Например из Дельфи :)

Добавлено: 04 Август 2006, 0:29
Дед Пахом
ну и кривой у вас сайт тогда.

Добавлено: 04 Август 2006, 9:32
Admin
Вот для теста из Клариного редактора эмбедов вставил данный код.
Как видим все прекрасно, так что не нужно на сайт все валить ...

!-------------------------------------------------------------
IF Select.Set(Script)
MAVSHOWERROR('Ошибка инициализации запроса')
RETURN
END

LOOP
CASE Select.Fetch()
OF NoError
OF NoRecErr
BREAK
ELSE
MAVSHOWERROR('Ошибка извлечения записи')
BREAK
END
LOOP I = 1 TO RECORDS(Select.QCol)
GET(Select.QCol,I)
CASE Select.QCol.ColType
OF SQL_C_TYPE_TIMESTAMP
!MAVCOPY(DTInfo,Select.QCol.Value,SIZE(DTInfo))
ELSE
MESSAGE('Результат: ' & Select.QCol.Value,'ExecuteScript')
END
END
END
Select.Kill

Добавлено: 04 Август 2006, 9:36
Admin
Мы тут с Андреем подумали что может быть это зависит как то от версии Клариона. На Clarion 6.3 все как видишь нормально ...

Добавлено: 04 Август 2006, 9:39
Admin
На C5.5 тоже все Ok
!----------------------------
xAccess.Log('*** Не установлен каталог для отправки данных!', xLog:Low, 'RouteFileIfNeed')
xWarning('Не установлен каталог для отправки данных!')
END
LOC:FileName = xExtractFile(FileForCheck) ! получаем имя файла
LOC:FileFromID = LOC:FileName[1:2] ! от кого файл
LOC:FileFromType = LOC:FileName[3] ! от какого типа программы
LOC:FileExt = UPPER(xExtractExt(LOC:FileName)) ! получем расширение программы

Добавлено: 04 Август 2006, 9:46
Дед Пахом
Жень, не принимай близко к сердцу, я не наезжал, забыл смайлик добавить :) :) :)
Но честно, в IDE нажал Ctrl-A Ctrl-C, сюда Ctrl-V, текст на кнопке превратился в мусор. Правда, у меня Opera 8.5, может она глючит.

Добавлено: 07 Август 2006, 4:03
ShilakAV
Но честно, в IDE нажал Ctrl-A Ctrl-C, сюда Ctrl-V, текст на кнопке превратился в мусор. Правда, у меня Opera 8.5, может она глючит.
Такая же беда. Opera 9.0