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

Ответ
 
LinkBack Опции темы Опции просмотра
Старый 30.05.2006, 17:11   #1
Пользователи
 
Регистрация: 04.05.2006
Сообщений: 17
Thumbs up

Как произвести расчет табличной части документа Заказ.Покупателя.Товары????? Вот как я пытался делать взято из ИТС за май месяц
private int GetColumnVisibleIndex (string columnName)
{
int index = 0;
if (V8EditGrid1.AutoNumberColumn)
index ++;
foreach (V8EditGridColumn column in V8EditGrid1.Columns)
{
if (!column.Visible)
continue;
if (column.ColumnName == columnName)
return index;
index ++;
}
return -1;
}




private void Page_PreRender(object sender, System.EventArgs e)
{
switch (ItemDataSource.FormMode)
{
case V8ItemDataSourceMode.New :
menuPanel.Buttons[1].Text = _1C.V8.Data.V8.GetString("V8ItemDataSourceMode.New ");


break;
case V8ItemDataSourceMode.Edit :
menuPanel.Buttons[1].Text = _1C.V8.Data.V8.GetString("V8ItemDataSourceMode.Edi t");

break;
case V8ItemDataSourceMode.Copy :
menuPanel.Buttons[1].Text = _1C.V8.Data.V8.GetString("V8ItemDataSourceMode.Cop y");

break;
case V8ItemDataSourceMode.InputOnBasis :
menuPanel.Buttons[1].Text = _1C.V8.Data.V8.GetString("V8ItemDataSourceMode.Inp utOnBasis");

break;
}
}

private void V8EditGrid1_ItemDataBound(object sender, _1C.V8.WebControls.V8GridItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.SelectedItem)
{
int quantityIndex = GetColumnVisibleIndex("Количество");
int priceIndex = GetColumnVisibleIndex("Цена");
// int stavkaIndex = GetColumnVisibleIndex("СтавкаНДС");
// decimal stavka = (e.Item.Value(stavkaIndex) is decimal) ? (decimal)e.Item.Value(stavkaIndex) : 0;
decimal quantity = (e.Item.Value(quantityIndex) is decimal) ? (decimal)e.Item.Value(quantityIndex) : 0;
decimal price = (e.Item.Value(priceIndex) is decimal) ? (decimal)e.Item.Value(priceIndex) : 0;
decimal total = quantity* price* 1;//stavka;
int totalIndex = GetColumnVisibleIndex("Сумма");
((V8EditGridCell)e.Item.Cells[totalIndex]).Value = total;
}
}

private void V8CommandPanel1_ItemCommand(object source, System.Web.UI.WebControls.CommandEventArgs e)
{
if (e.CommandName == "Recalc")
{
ItemDataSource.GetDataFromForm();
ItemDataSource.SetDataToForm();
}
}
}
}

А вот как меня послало
Заданное приведение является недопустимым.
Описание: Необработанное исключение при выполнении текущего веб-запроса. Изучите трассировку стека для получения дополнительных сведений о данной ошибке и о вызвавшем ее фрагменте кода.

Сведения об исключении: System.InvalidCastException: Заданное приведение является недопустимым.

Ошибка источника:


Строка 190: {
Строка 191: ItemDataSource.GetDataFromForm();
Строка 192: ItemDataSource.SetDataToForm();//ВОТ В ЭТОМ Месте
Строка 193: }
Строка 194: }


Исходный файл: c:inetpubwwwrootsuperzakaz.aspx.cs Строка: 192

Трассировка стека:


[InvalidCastException: Заданное приведение является недопустимым.]
_1C.V8.WebControls.V8TextBox.DataBind()
_1C.V8.WebControls.V8ItemDataSource.SetDataToForm( )
_1C.V8.WebControls.V8ObjectDataSource.SetDataToFor m()
super.zakaz.V8CommandPanel1_ItemCommand(Object source, CommandEventArgs e) in c:inetpubwwwrootsuperzakaz.aspx.cs:192
_1C.V8.WebControls.V8CommandPanel.OnItemCommand(Co mmandEventArgs e)
_1C.V8.WebControls.V8CommandPanel.RaisePostBackEve nt(String eventArgument)
System.Web.UI.Page.RaisePostBackEvent(IPostBackEve ntHandler sourceControl, String eventArgument)
System.Web.UI.Page.RaisePostBackEvent(NameValueCol lection postData)
System.Web.UI.Page.ProcessRequestMain() +1277

Так как это написать приведите действующий пример. Можно мне на мыло. Буду признателен.




Maksver вне форума  
Digg this Post!Bookmark Post in Technorati
Ответить с цитированием
30.05.2006, 17:11
Техник
реклама
Thumbs up

Старый 30.04.2009, 12:36   #2
jk3
Пользователи
 
Регистрация: 13.02.2007
Сообщений: 59
По умолчанию

Я так понимаю при SetDataToForm() вызывается V8EditGrid1_ItemDataBound, значит там где-то косяк с приведением типов, трассируй в отладчике
jk3 вне форума  
Digg this Post!Bookmark Post in Technorati
Ответить с цитированием
Ответ


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

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

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



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


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