компьютерный форум
Вернуться   Компьютерный форум > Программирование и вебстроительство > 1C (Все версии) > WEB расширение 1С 8.0


Ответ
 
LinkBack Опции темы Опции просмотра
Старый 11.09.2009, 10:30   #11
Пользователи
 
Регистрация: 16.07.2009
Сообщений: 26
По умолчанию

Цитата:
Наверно я бы тогда указал в колонке тип string, а затем перед записью данных переводил бы его в decimal, а заодно бы еще и менял точку на запятую, чтобы по любому было правильно.
Я так же думаю. Но как реализовать замену точки на запятую в string? Как ее найти в строке?

И еще вот строка обработки события:
this.V8EditGrid1.ValueChanged += new _1C.V8.WebControls.V8EditGridValueChangedHandler(t his.V8EditGrid1_ValueChanged);
В V8EditGrid1 нужно установить UseValueChengedEvent у двух колонок. Сейчас стоит только у Номенклатуры, а нужно еще поставить у Количества. Как описать this.V8EditGrid1.ValueChanged отдельно для первой колонки и отдельно для второй, чтоб обработать эти два события отдельно.




avi-murom вне форума  
Digg this Post!Bookmark Post in Technorati
Ответить с цитированием
11.09.2009, 10:30
Техник
реклама
По умолчанию

Старый 11.09.2009, 21:34   #12
Пользователи
 
Регистрация: 04.12.2006
Сообщений: 119
По умолчанию

Цитата:
Я так же думаю. Но как реализовать замену точки на запятую в string? Как ее найти в строке?

И еще вот строка обработки события:
this.V8EditGrid1.ValueChanged += new _1C.V8.WebControls.V8EditGridValueChangedHandler(t his.V8EditGrid1_ValueChanged);
В V8EditGrid1 нужно установить UseValueChengedEvent у двух колонок. Сейчас стоит только у Номенклатуры, а нужно еще поставить у Количества. Как описать this.V8EditGrid1.ValueChanged отдельно для первой колонки и отдельно для второй, чтоб обработать эти два события отдельно.
Замена точки на запятую в строке s:
s=s.Replace(".",",");

На второй вопрос ответить не могу. Давно уже не работаю с расширением, а пишу по памяти. Возможно обработчик события получает параметр из которого можно определить колонку.
Юрич вне форума  
Digg this Post!Bookmark Post in Technorati
Ответить с цитированием
Старый 15.09.2009, 05:38   #13
Пользователи
 
Регистрация: 16.07.2009
Сообщений: 26
По умолчанию

Цитата:
Замена точки на запятую в строке s:
s=s.Replace(".",",");

На второй вопрос ответить не могу. Давно уже не работаю с расширением, а пишу по памяти. Возможно обработчик события получает параметр из которого можно определить колонку.
Второй вопрос решил вот так:
if (eventArgs.ColumnName == "Номенклатура")
Спасибо за подсказку.

По поводу первого. Не могу получить значение, которое только что ввел.
s = (V8EditGrid1.Items[V8EditGrid1.SelectedIndex].Cells[3]).Text;
Получаю предыдущее значение. Которое было введено до изменения значение в колонке Количество.
avi-murom вне форума  
Digg this Post!Bookmark Post in Technorati
Ответить с цитированием
Старый 15.09.2009, 13:44   #14
Пользователи
 
Регистрация: 16.07.2009
Сообщений: 26
По умолчанию

Цитата:
Второй вопрос решил вот так:
if (eventArgs.ColumnName == "Номенклатура")
Спасибо за подсказку.

По поводу первого. Не могу получить значение, которое только что ввел.
s = (V8EditGrid1.Items[V8EditGrid1.SelectedIndex].Cells[3]).Text;
Получаю предыдущее значение. Которое было введено до изменения значение в колонке Количество.
Вообще интересно. Если запятая введена правильно, то значение получаю. Если введено через точку, то получаю ноль.
Как считать ячейку непосредственно с формы экрана?
avi-murom вне форума  
Digg this Post!Bookmark Post in Technorati
Ответить с цитированием
Старый 15.09.2009, 20:08   #15
Пользователи
 
Регистрация: 04.12.2006
Сообщений: 119
По умолчанию

Цитата:
Вообще интересно. Если запятая введена правильно, то значение получаю. Если введено через точку, то получаю ноль.
Как считать ячейку непосредственно с формы экрана?
видимо тип колонки указан не string
Юрич вне форума  
Digg this Post!Bookmark Post in Technorati
Ответить с цитированием
Старый 16.09.2009, 05:34   #16
Пользователи
 
Регистрация: 16.07.2009
Сообщений: 26
По умолчанию

Цитата:
видимо тип колонки указан не string
Не string. Если поставить string, то при заполнении заказа цифру не видно. Заполнение стандартное.
Сделал колонку Presentation.
Достаю: s = ((V8EditGridCell)V8EditGrid1.Items[V8EditGrid1.SelectedIndex].Cells[3]).Text;
Gолучаю предыдущее число. Откуда?
avi-murom вне форума  
Digg this Post!Bookmark Post in Technorati
Ответить с цитированием
Старый 16.09.2009, 19:38   #17
Пользователи
 
Регистрация: 04.12.2006
Сообщений: 119
По умолчанию

Цитата:
Не string. Если поставить string, то при заполнении заказа цифру не видно. Заполнение стандартное.
Сделал колонку Presentation.
Достаю: s = ((V8EditGridCell)V8EditGrid1.Items[V8EditGrid1.SelectedIndex].Cells[3]).Text;
Gолучаю предыдущее число. Откуда?
возможно в обработчике события доступно только Value
если value меняется, то идея такова, чтобы поставить тип колонки string и набирать число строкой, а затем уже при записи данных в базу преобразовывать его в число. и уже после этого выдавать сообщение, что данные введены неверно. Либо забить на преобразование, и проверять число на 0. Ведь если была опечатка - будет ноль вместо числа.
Юрич вне форума  
Digg this Post!Bookmark Post in Technorati
Ответить с цитированием
Старый 17.09.2009, 12:45   #18
Пользователи
 
Регистрация: 16.07.2009
Сообщений: 26
По умолчанию

Теперь глупый вопрос: КАК сделать вывод сообщения об ошибке в отдельном окне с надписью "Ошибка! При вводе количества используйте запятую" и кнопка ОК, для закрытия этой формы.
avi-murom вне форума  
Digg this Post!Bookmark Post in Technorati
Ответить с цитированием
Старый 17.09.2009, 20:13   #19
Пользователи
 
Регистрация: 04.12.2006
Сообщений: 119
По умолчанию

Цитата:
Теперь глупый вопрос: КАК сделать вывод сообщения об ошибке в отдельном окне с надписью "Ошибка! При вводе количества используйте запятую" и кнопка ОК, для закрытия этой формы.
Response.Write("alert('Ошибка! При вводе количества используйте запятую');");
Юрич вне форума  
Digg this Post!Bookmark Post in Technorati
Ответить с цитированием
Старый 18.09.2009, 10:13   #20
Пользователи
 
Регистрация: 16.07.2009
Сообщений: 26
По умолчанию

Огромное спасибо.
Остался один нюанс. После ввода количества все отрабатывается и сохраняется нормально, но при добавлении второй строки в первой пропадает цифра введенного количества. При установке мыши в эту ячейку цифра появляется.
Например вводим 5 строк. Каждый раз при вводе новой с экрана пропадает цифра в предыдущей строке. В итоге получаем на экране в колонке Количество цифры только в пятой строке, остальные чистые. Нажимаем записать или просто тыкаем мышкой в ячейку количества на каждой строке и цифры появляются.
Вроде где-то подобное в форуме видел, теперь не найду.

Вот что написал

if (((V8EditGridCell)V8EditGrid1.Items[V8EditGrid1.SelectedIndex].Cells[3]).Value == null)
{
Response.Write("alert('Ошибка! При вводе количества используйте запятую');");
((V8EditGridCell)V8EditGrid1.Items[V8EditGrid1.SelectedIndex].Cells[3]).Presentation = "0";
}
// ItemDataSource.GetDataFromForm();

Если разремарить ItemDataSource.GetDataFromForm() то возникает ошибка "Невозможно присвоить столбцу Количество пустое значение. Используйте DBNull.
avi-murom вне форума  
Digg this Post!Bookmark Post in Technorati
Ответить с цитированием
Ответ


Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Вкл.



Текущее время: 17:55. Часовой пояс GMT.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd. Перевод: zCarot
Content Relevant URLs by vBSEO 3.5.0 RC2