Переключение на Главную Страницу Страницы: 1 ... 21 22 [23] 24 25 ... 32 ОтправитьПечать
Очень популярная тема (более 25 ответов) ТП: Прямое редактирование значений (число прочтений - 210633 )
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: ТП: Прямое редактирование значений
Ответ #330 - 03. Декабря 2008 :: 11:22
Печать  
artbear писал(а) 03. Декабря 2008 :: 11:05:
Кстати, Дима мне код по клавиатуре для ТП передал, но мне пока что некогда его влить и проверить Печаль

Лучше б тебе, Артур, было некогда его проверить и влить. Подмигивание
Ну, ты видел, конечно: http://www.1cpp.ru/forum/YaBB.pl?num=1227620684

Ну, а в целом это здорово.
  

De quelle planète es-tu?
Наверх
 
IP записан
 
Burlak
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 65
Зарегистрирован: 28. Апреля 2008
Re: ТП: Прямое редактирование значений
Ответ #331 - 03. Декабря 2008 :: 14:36
Печать  
Коллеги! Спасибо Вам большое!
С Вашей помощью научился работать с комплексом индексированная_таблица+ табличное_поле. Теперь в документе могу заполнить ИТ (Прямой SELECT ...), показать ее в закрепленном ТП, осуществить прямое редактирование полей ТП и одновременно имею возможность наложить сортировку на столбцы ИТ, с отображением результата в ТП.

  
Наверх
 
IP записан
 
Burlak
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 65
Зарегистрирован: 28. Апреля 2008
Re: ТП: Прямое редактирование значений
Ответ #332 - 04. Декабря 2008 :: 10:30
Печать  
Применяю прямое редактирование полей табличного поля: col=тпПеремещения.ТекущаяКолонка;
тпПеремещения.РедактироватьЗначение(n, col, 3," ",80, 0, "кнпНоменклатураВыбор","0x00000024");
Автоматически в поле (клетке) табличного поля создаётся элемент поля ввода с кнопкой выбора. Вопрос в том, как мне обработать событие её нажатия.
  
Наверх
 
IP записан
 
Burlak
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 65
Зарегистрирован: 28. Апреля 2008
Re: ТП: Прямое редактирование значений
Ответ #333 - 04. Декабря 2008 :: 15:59
Печать  
Индексированная Таблица + Табличное Поле и Прямое редактирование.
Вышел на стабильную не штатную ситуацию.
Имею:
1. Индексированную таблицу
итНоменклатура=СоздатьОбъект("ИндексированнаяТаблица");
итПеремещения.НоваяКолонка("id_Номенклатура");
итПеремещения.НоваяКолонка("Номенклатура");
итПеремещения.НоваяКолонка("Количество");
итПеремещения.НоваяКолонка("ск");      //-- Суррогатный ключ
//итПеремещения.ДобавитьИндекс("idx_ск","ск");

2. Табличное Поле
//=================================================
  //-- Построим колонки в табличном поле Перемещения
  //=================================================
  ИмяКолонки="Номенклатура";
  Колонка                   = тпПеремещения.Колонки.Добавить(ИмяКолонки);
  Колонка.Заголовок         = ИмяКолонки;
  Колонка.ШрифтЗаголовка    = ШрифтАриал10Жирный;
  Колонка.Данные            = ИмяКолонки; //-- Колонка таблицы значений
  Колонка.ИзменятьВидимость = 0;
  Колонка.Ширина            = 80;
  ксПеремещения                                          = Колонка;
 
  ИмяКолонки="Количество";
  Колонка                   = тпПеремещения.Колонки.Добавить(ИмяКолонки);
  Колонка.Заголовок         = ИмяКолонки;
  Колонка.ШрифтЗаголовка    = ШрифтАриал10Жирный;
  Колонка.Данные            = ИмяКолонки; //-- Колонка таблицы значений
  Колонка.ИзменятьВидимость = 0;
  Колонка.Ширина            = 20;
  Колонка.ГоризонтальноеВыравнивание=2;
  тпПеремещения.VScroller=1;

     ИмяКолонки="ск";
  Колонка                   = тпПеремещения.Колонки.Добавить(ИмяКолонки);
  Колонка.Заголовок         = ИмяКолонки;
  Колонка.ШрифтЗаголовка    = ШрифтАриал10Жирный;
  Колонка.Данные            = ИмяКолонки; //-- Колонка таблицы значений
  Колонка.Видимость                              = 0;
  Колонка.Ширина            = 5;

  //-- Подключим индексную таблицу к табличному полю
  оиПеремещенияИТ.ИндексированнаяТаблица=итПеремещения;
  тпПеремещения.ПоставщикДанных       = оиПеремещенияИТ;
  тпПеремещения.ТаймаутБыстрогоПоиска = 100;

3. Обработчик события
//-- Обработка события кнпПеремещенияТП_ПриРедактированииЗначения
Процедура кнпПеремещенияТП_ПриРедактированииЗначения(ТП,стр,кол,рег,x)
     Если (кол.Имя="Количество") И (Форма.АктивныйЭлемент()="пвКоличество")Тогда
           str=тпПеремещения.ТекущиеДанные.Получить(3);
           n=f_итПеремещения_ПоискСтроки(str);      //-- Номер строки без сортировки
           );  //-- Количество
//    тпПеремещения.ОбновитьСтроки();
     КонецЕсли;
     Если (кол.Имя="Номенклатура") И (Форма.АктивныйЭлемент()="пвНоменклатура") Тогда
           str_Номенклатура=x;
    Сервис.ВнешнееСобытие("","f_ВыборНоменклатуры","");
     КонецЕсли;
КонецПроцедуры

4. Функцию получения номера строки
//-- Функция поиска номера строки в итПеремещения по знчению суррогатного ключа
Функция f_итПеремещения_ПоискСтроки(ск)
  //Возврат итПеремещения.НайтиСтроку("idx_ск",ск);
  n=итПеремещения.КоличествоСтрок();
  Для i=1 По n Цикл
    Если итПеремещения.ПолучитьЗначение(i,4)=ск Тогда Возврат i;  КонецЕсли;
  КонецЦикла;
     Возврат 0;
КонецФункции

Редактирую Количество. Если сортировки нет или установлена на столбец Количество, то всё ок. Если сортировка на столбце Номенклатура, а редактирую Количество, то
str=тпПеремещения.ТекущиеДанные.Получить(3);
возвращает значение Количества, а не суррогатный ключ.

Почему?
  
Наверх
 
IP записан
 
Burlak
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 65
Зарегистрирован: 28. Апреля 2008
Re: ТП: Прямое редактирование значений
Ответ #334 - 04. Декабря 2008 :: 16:05
Печать  
Вдогонку.
Если str=тпПеремещения.ТекущиеДанные.Получить("ск");
то штатно.
  
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: ТП: Прямое редактирование значений
Ответ #335 - 04. Декабря 2008 :: 16:37
Печать  
Burlak

Пишу один раз.

1. Может ты не заметил, но здесь был вопрос: http://www.1cpp.ru/forum/YaBB.pl?num=1202765199/327#327

2. С таким оформлением как в http://www.1cpp.ru/forum/YaBB.pl?num=1202765199/333#333 ты долго будешь ждать желающих ответить.

Нужны внятные тесты.
"Уважай себя - уважай нас - уважай кавказ - посети нас".
  

De quelle planète es-tu?
Наверх
 
IP записан
 
Burlak
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 65
Зарегистрирован: 28. Апреля 2008
Re: ТП: Прямое редактирование значений
Ответ #336 - 05. Декабря 2008 :: 06:53
Печать  
>Пишу один раз.
Странно. Не я разработчик ТП. Но это:
str=тпПеремещения.ТекущиеДанные.Получить(3); //-- Ошибка
str=тпПеремещения.ТекущиеДанные.Получить("ск"); //-- Штатно
+ задана сортировка ТП по Номенклатуре.
Ошибка найдена. Стабильно проявляется. И что ещё надо то для её исправления?


  
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: ТП: Прямое редактирование значений
Ответ #337 - 05. Декабря 2008 :: 08:03
Печать  
Burlak писал(а) 05. Декабря 2008 :: 06:53:
Ошибка найдена. Стабильно проявляется. И что ещё надо то для её исправления?

Правда не понимаешь?

В #326 ты заявил, что 1С падает при определенных условиях.
Мой вопрос об условиях ты дважды проигнорировал.

Соответственно, либо в #326 ты просто сболтнул, а подтвердить не в состоянии.
Либо ты не готов к совместному обсуждению (исходя из отсутствия ответов на #327).

Ну ты не заморачивайся, у меня нет цели тебя каким-то образом огорчить.
Это я так, чтоб было понимание, почему твои проблемы записаны под номером 16.
  

De quelle planète es-tu?
Наверх
 
IP записан
 
Burlak
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 65
Зарегистрирован: 28. Апреля 2008
Re: ТП: Прямое редактирование значений
Ответ #338 - 05. Декабря 2008 :: 10:54
Печать  
> kms
>Правда не понимаешь?

Извини бога ради. Запарка.
Мне надо было решить задачу. Делая - получил не штатную ситуацию по сортировке с использованием индексов. Покрутил покрутил, а трясти то надо, то бишь задачу делать. Перешел на сортировку сортировкой. Получилось. Попробую вернуться к сортировке индексами и получить сбой.
  
Наверх
 
IP записан
 
Burlak
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 65
Зарегистрирован: 28. Апреля 2008
Re: ТП: Прямое редактирование значений
Ответ #339 - 05. Декабря 2008 :: 12:51
Печать  
> kms
>Правда не понимаешь? (Продолжение)
Перевел отлаженную версию обработки на сортировку по индексам. Полет нормальный. 1С++ от 05.12.2008.
Но не пойму алгоритм сортировки. С цифрами все нормально, а с буквами (алфавитом) не могу понять.
  
Наверх
 
IP записан
 
Burlak
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 65
Зарегистрирован: 28. Апреля 2008
Re: ТП: Прямое редактирование значений
Ответ #340 - 05. Декабря 2008 :: 13:01
Печать  
> kms
>Правда не понимаешь? (Продолжение 2)
Всё ок. Заработался.
В базе данных текст набит или с первым пробелом или без оного. Если не приглядываться, то и не заметно.
  
Наверх
 
IP записан
 
Burlak
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 65
Зарегистрирован: 28. Апреля 2008
Re: ТП: Прямое редактирование значений
Ответ #341 - 05. Декабря 2008 :: 13:11
Печать  
> kms
>Правда не понимаешь? (Продолжение 3)
Запутался окончательно.
так:
  итПеремещения.ДобавитьИндекс("idx_Номенклатура","-Номенклатура");
сортирует, как SELECT...ORDER BY.      
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


Я всего лишь als-особиратель
;-)

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: ТП: Прямое редактирование значений
Ответ #342 - 05. Декабря 2008 :: 13:36
Печать  
Михаил вот тебе от меня "подарочек"

http://www.1cpp.ru/bugs/show_bug.cgi?id=4250 - ошибочка такая вот.
Когда писал об этом но потерялось в просторах родного форума  Подмигивание

ну и вот до кучи http://www.1cpp.ru/bugs/show_bug.cgi?id=4251
Чтобы не потерялась.  Подмигивание
  

Отхожу от дел. Долго и мучительно.
Наверх
IP записан
 
Burlak
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 65
Зарегистрирован: 28. Апреля 2008
Re: ТП: Прямое редактирование значений
Ответ #343 - 06. Декабря 2008 :: 15:40
Печать  
> vandalsvq
>...ну и вот до кучи http://www.1cpp.ru/bugs/show_bug.cgi?id=4251 ...
А если попытаться в обработчике события определить элемент, имеющий фокус ввода (активный)?
  
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: ТП: Прямое редактирование значений
Ответ #344 - 06. Декабря 2008 :: 17:14
Печать  
Burlak писал(а) 05. Декабря 2008 :: 10:54:
Извини бога ради. Запарка.
Мне надо было решить задачу. Делая - получил не штатную ситуацию по сортировке с использованием индексов. Покрутил покрутил, а трясти то надо, то бишь задачу делать. Перешел на сортировку сортировкой. Получилось. Попробую вернуться к сортировке индексами и получить сбой.

А, ну ясно, не вопрос.

Ну, если что-то конкретное будет - велкам.
Особенно, если будет готовая иллюстрация, чтобы не терять время на несущественных деталях.
  

De quelle planète es-tu?
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1 ... 21 22 [23] 24 25 ... 32
ОтправитьПечать