Докомпиляция интерфейса заявок BOOKINGS

Программирование на Атлантисе (VIP, FCOM, ARD), FastReport

Модераторы: m0p3e, edward_K, Модераторы

zna
Местный житель
Сообщения: 552
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Челябинск
Контактная информация:

Re: Докомпиляция интерфейса заявок BOOKINGS

Сообщение zna »

Да, действительно, это то, что надо. Прочитал нужные записи, благодарю! :cool:
zna
Местный житель
Сообщения: 552
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Челябинск
Контактная информация:

Re: Докомпиляция интерфейса заявок BOOKINGS

Сообщение zna »

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

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

cmExprFieldChanged :
{
  if inherited:: handleEvent (cmExprFieldChanged) = heOk then
    {
      case curfield of
      ... 
        #CLAIM_PRICE_:
         {
           if claim.kol = 0 then {message('Изменилась цена!');   // Нормально
         }
       #CLAIM.KOL_:
         {                                                                              //Нет реакции
         } 
      end;
   }
}
А как быть с количеством? Изменение поля "Количество" не ловится в переменной curfield.
Irina_
Местный житель
Сообщения: 554
Зарегистрирован: 17 июл 2012, 11:56
Откуда: Республика Беларусь, г.Могилев

Re: Докомпиляция интерфейса заявок BOOKINGS

Сообщение Irina_ »

Здравствуйте. Может неправильно написали? Точно #CLAIM.KOL_, а не #CLAIM_KOL_? Явно проблема с написанием, если нет реакции.
zna
Местный житель
Сообщения: 552
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Челябинск
Контактная информация:

Re: Докомпиляция интерфейса заявок BOOKINGS

Сообщение zna »

Вот из хелпа:

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

TreeBrowser ClaimTree 'Спецификация'
TreeColumn c_CLAIMTREE_CLAIM_WPOS_N #252
TreeColumn c_CLAIMTREE_PRMC
TreeColumn c_CLAIMTREE_KATNOTES_.SNAME_Статус_позиции 'Статус'^M'позиции'
TreeColumn c_CLAIMTREE_CLAIMGROUPNAME_Наименование_группы 'Наименование'^M'группы'
TreeColumn c_CLAIMTREE_CLAIMGROUPCODE_Код_группы 'Код'^M'группы'
TreeColumn c_CLAIMTREE_SPECIFICATIONNAME_Наименование_ресурса 'Наименование'^M'ресурса'
TreeColumn c_CLAIMTREE_SPECIFICATIONBAR_Номенклатурный_номер 'Номенклатурный'^M'номер'
TreeColumn c_CLAIMTREE_CONSTRUCTIONSIGN_Конструкторское_обозначение 'Конструкторское'^M'обозначение'
TreeColumn c_CLAIMTREE_CLAIM_DSTART_Дата_приёма 'Дата'^M'приёма'
TreeColumn c_CLAIMTREE_CLAIM_DFINISH_Дата_исполнения 'Дата'^M'исполнения'
TreeColumn c_CLAIMTREE_EDNAME_Ед._изм. 'Ед.'^M'изм.'
TreeColumn c_CLAIMTREE_CLAIM.KOL_Кол-во 'Кол-во'
TreeColumn c_CLAIMTREE_CLAIM_PRICE_Цена 'Цена'
TreeColumn c_CLAIMTREE_CLAIM_SUMMA_Сумма 'Сумма'
TreeColumn c_CLAIMTREE_CLAIM_DISCOUNT_Скидка 'Скидка'
TreeColumn c_CLAIMTREE_FANAL1_Аналитика_1 'Аналитика 1'
TreeColumn c_CLAIMTREE_FANAL2_Аналитика_2 'Аналитика 2'
TreeColumn c_CLAIMTREE_FANAL3_Аналитика_3 'Аналитика 3'
TreeColumn c_CLAIMTREE_FANAL4_Аналитика_4 'Аналитика 4'
TreeColumn c_CLAIMTREE_FANAL5_Аналитика_5 'Аналитика 5'
TreeColumn c_CLAIMTREE_VALUE1_Дополнительное_поле_1 'Дополнительное поле 1'
TreeColumn c_CLAIMTREE_VALUE2_Дополнительное_поле_2 'Дополнительное поле 2'
TreeColumn c_CLAIMTREE_VALUE3_Дополнительное_поле_3 'Дополнительное поле 3'
TreeColumn c_CLAIMTREE_VALUE4_Дополнительное_поле_4 'Дополнительное поле 4'
TreeColumn c_CLAIMTREE_VALUE5_Дополнительное_поле_5 'Дополнительное поле 5'
TreeColumn c_CLAIMTREE_FOOTDYNAMIC1_Расчётное_поле_1 'Расчётное'^M'поле 1'
TreeColumn c_CLAIMTREE_FOOTDYNAMIC2_Расчётное_поле_2 'Расчётное'^M'поле 2'
TreeColumn c_CLAIMTREE_FOOTDYNAMIC3_Расчётное_поле_3 'Расчётное'^M'поле 3'
TreeColumn c_CLAIMTREE_FOOTDYNAMIC4_Расчётное_поле_4 'Расчётное'^M'поле 4'
TreeColumn c_CLAIMTREE_FOOTDYNAMIC5_Расчётное_поле_5 'Расчётное'^M'поле 5'
Вроде правильно написал.. Любые другие поля ловятся, а это никак..
Может, кто-нить подскажет, как все поля прочитать в TreeColumn c_CLAIMTREE?
Или такая мысль: удалить это поле (для этого надо указатель, что ли, на него получить), а вместо него создать своё?
m0p3e
Местный житель
Сообщения: 1386
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва

Re: Докомпиляция интерфейса заявок BOOKINGS

Сообщение m0p3e »

zna писал(а):Доброй среды, коллеги.
Продолжаю с вашей помощью совершенствовать наш интерфейс по заявкам. На сей раз прошу подсказать, как поймать изменение поля "количество". Сейчас изменение цены обрабатывается так:

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

       #CLAIM.KOL_:
А как быть с количеством? Изменение поля "Количество" не ловится в переменной curfield.
А зачем подчеркивание в конце?

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

fields
  Claim.Kol'Кол-во'('Количество для исполнения',,sci178Esc):[11,3], noprotect;
  [Claim_Price_]if(5=5,Claim.Price,0)'Цена'('Цена за единицу',,sci178Esc):[11,2],noProtect;
  [Claim_Summa_]if(7=7,Claim.Summa,0)'Сумма'('Сумма по позиции',,sci178Esc):[13,2],noProtect;
  [Claim_Discount_]if(3=3,Claim.Discount,0)'Скидка'('Скидка по позиции',,sci1378Esc):[6,2],noProtect, pickbutton;
end
zna
Местный житель
Сообщения: 552
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Челябинск
Контактная информация:

Re: Докомпиляция интерфейса заявок BOOKINGS

Сообщение zna »

Убрал подчёркивание, теперь так:

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

cmExprFieldChanged :
{
  if inherited:: handleEvent (cmExprFieldChanged) = heOk then
    {
      case curfield of
      ...
        #CLAIM_PRICE_:
         {
           if claim.kol = 0 then {message('Изменилась цена!');   // Нормально
         }
       #CLAIM.KOL:
         { message('Claim.kol!');                                                                            //Нет реакции
         } 
Нет реакции
Den
Местный житель
Сообщения: 1844
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Ярославская область ОАО "Часовой завод Чайка" г. Углич
Контактная информация:

Re: Докомпиляция интерфейса заявок BOOKINGS

Сообщение Den »

cmExprFieldChanged
Событие возникает при изменении вычисляемого поля
zna
Местный житель
Сообщения: 552
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Челябинск
Контактная информация:

Re: Докомпиляция интерфейса заявок BOOKINGS

Сообщение zna »

Понял. Получилось так:

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

Panel specClaim table Claim;
HandleEvent
cmCheckField:
 {
   if inherited::handleEvent(cmCheckField) = heOk then
    {
     case curfield of #CLAIM.KOL:{message('Claim.kol!');}
     end;
   }
 }
end;
end;
Благодарю всех ответивших!
zna
Местный житель
Сообщения: 552
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Челябинск
Контактная информация:

Re: Докомпиляция интерфейса заявок BOOKINGS

Сообщение zna »

Нет предела совершенству, в том числе и этому замечательному интерфейсу..
Вот есть задумка внизу окна разместить свой дополнительный browse. Для этого в интерфейсе редактирования заявок Win1 c размерами (0,1,80,25) изменил TreeBrowse CLAIMTREE

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

if cfsGetObjInfo('ClaimTree', cur_obj, l04, cont_inf, aObjType) = cfOk then
        {if cfsSetProp(l04, cfpRectB_Y, word(15))  <> cfOk
в результате его размеры стали (1,12,79,15). Казалось бы, место есть.
Но если добавить панель

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

Panel Panel_;
  Table t_claim
  browse bmnpl
  show at (5, 18,30 ,19 )
  fields
      t_claim.ddate 'Дата'  : [10], protect;
      t_claim.cena  'Цена'           : [10], protect;
      t_claim.nacemka 'Наценка, %'    : [10], protect;
  end;
end;
то получаю ошибку Ошибка: Текущая область ввода перекрывается с CLAIMTREE C:\Viper\Bookings\AlterBookings.vip(стр. 155, поз. 3)
Изображение
Собственно, вопрос: почему?? Ведь места хватает, если по координатам считать!
Den
Местный житель
Сообщения: 1844
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Ярославская область ОАО "Часовой завод Чайка" г. Углич
Контактная информация:

Re: Докомпиляция интерфейса заявок BOOKINGS

Сообщение Den »

Потому что cfsSetProp в рантайме сработает только
zna
Местный житель
Сообщения: 552
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Челябинск
Контактная информация:

Re: Докомпиляция интерфейса заявок BOOKINGS

Сообщение zna »

Den писал(а):Потому что cfsSetProp в рантайме сработает только
.. и как поправить?
Ответить