Ниже представлено 2 варианта скрипта этапа обработки "Верификация", срабатывающие по пользовательской команде.
1) Скрипт выполняет перечисление значений нужных полей в выделенных документах.
После выполнения команды в окне отображается список полей в выделенных документах.
2) Скрипт выполняет суммирование значений нужных полей в выделенных документах.
В случае, если в документе N в "суммируемом" поле распозналось не числовое значение, то выдается сообщение об ошибке "Значение в документе N будет проигнорировано".
После чего появляется окно с суммой значений остальных полей.
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);
}
}
Comments
0 comments
Please sign in to leave a comment.