Community

Подсчет суммы необходимых полей в выделенных документах.

Ниже представлено 2 варианта скрипта этапа обработки "Верификация", срабатывающие по пользовательской команде.

1) Скрипт выполняет перечисление значений нужных полей в выделенных документах.
После выполнения команды в окне отображается список полей в выделенных документах.






if((int)CommandId == 1000)
{
string sumValue = null;
if(MainWindow.Selection.Documents != null)
{

foreach(IDocument doc in MainWindow.Selection.Documents)
{
try
{
MainWindow.TaskWindow.OpenDocument(doc);

sumValue += "\n" + doc.Field("Раздел документа 1\\Текст").Text;

}
catch(System.Exception ex)
{
throw ex;
}
}
FCTools.ShowMessage(string.Format("Итого:\n{0}", sumValue), null);
}
}




2) Скрипт выполняет суммирование значений нужных полей в выделенных документах.
В случае, если в документе N в "суммируемом" поле распозналось не числовое значение, то выдается сообщение об ошибке "Значение в документе N будет проигнорировано".
После чего появляется окно с суммой значений остальных полей.




//Подсчет суммы необходимых полей в выделенных документах (суммирование всех числовых значений)
//
//для подсчета, например, суммы платедных поручений (с копейками), испольуется типа данных decimal
//
//TryParse преобразовывает строковое представление числа в эквивалентное ему 32-битовое знаковое целое число.
//
//Если значение не числовое, то оно будет проигнорированно, при этом остальные- суммируются



if((int)CommandId == 1005)
{ decimal sumValue = 0;
if(MainWindow.Selection.Documents != null)
{

foreach(IDocument doc in MainWindow.Selection.Documents)
{
try
{
MainWindow.TaskWindow.OpenDocument(doc);

decimal tmpValue = 0;


if(!decimal.TryParse(doc.Field("Раздел документа 1\\Сумма").Value.ToString(), out tmpValue))

{


FCTools.ShowMessage(string.Format("Значение {0} в документе {1} будет проигнорированно", doc.Field("Раздел документа 1\\Сумма").Value, doc.Index ), null);

}
sumValue += tmpValue;

}
catch(System.Exception ex)
{
throw ex;
}
}
FCTools.ShowMessage(string.Format("Итого:\n{0}", sumValue), null);
}
}

0

Comments

0 comments

Please sign in to leave a comment.