列表作废插件导致引出错误
金蝶云社区-熊猫和傻瓜
熊猫和傻瓜
0人赞赏了该文章 907次浏览 未经作者许可,禁止转载编辑于2018年06月13日 16:22:18

做了一个支票管理的作废插件,执行引出操作的时候会报错。报错如图,报错信息没有显示我做的插件,可是在BOS不启动插件的时候,就可以正常引出。麻烦各位老师帮忙看一下。


public class GJJ_ZPTZ_ZF: AbstractListPlugIn
{
public override void BeforeDoOperation(BeforeDoOperationEventArgs e)
{
CML.Log.WriteInLog writeLog = new Log.WriteInLog();
base.BeforeDoOperation(e);
string operation = e.Operation.FormOperation.Operation;
if(operation != null)
{
if(operation == "TBnZF1" || operation == "TBnZF")
{
List lstBillData = GetSelectBillData();
for(int i = 0; i < lstBillData.Count ; i++)
{
string FID = lstBillData[0]["Id"].ToString();
string sql = string.Format("/*dialect*/update GJJ_ZPTZ z set z.fdocumentstatus = 'E' where z.fid = {0} ", FID);
DBServiceHelper.ExecuteDynamicObject(this.Context, sql);
}
}
if(operation == "TBnUnZF")
{
List lstBillData = GetSelectBillData2();
for (int i = 0; i < lstBillData.Count ; i++)
{
string FID = lstBillData[0]["Id"].ToString();
string sql = string.Format("/*dialect*/update GJJ_ZPTZ z set z.fdocumentstatus = 'C' where z.fid = {0} ", FID);
DBServiceHelper.ExecuteDynamicObject(this.Context, sql);
}
}
this.View.UpdateView();
this.View.Refresh();
}
}

private List GetSelectBillData()
{
CML.Log.WriteInLog writeLog = new Log.WriteInLog();
List list = new List();
List list2 = new List();
List listEry = new List();
ListSelectedRowCollection selectedRowsInfo = this.ListView.SelectedRowsInfo;

List result = new List();
if (selectedRowsInfo.Count <= 0)
{
this.View.ShowErrMessage("没有选中要操作的支票!", "", 0);
}
else
{
foreach (ListSelectedRow current in selectedRowsInfo)
{
list2.Add(current.PrimaryKeyValue);
listEry.Add(current.EntryPrimaryKeyValue);
}
FormMetadata formMetadata = MetaDataServiceHelper.Load(this.View.Context, "PAEZ_ZPTZ", true) as FormMetadata;
DynamicObject[] source = BusinessDataServiceHelper.Load(this.View.Context, list2.Distinct().ToArray(), formMetadata.BusinessInfo.GetDynamicObjectType());

List list3 = (from p in source
where (StringUtils.EqualsIgnoreCase(p.GetDynamicObjectItemValue("FZPZT").ToString(), "0")
|| StringUtils.EqualsIgnoreCase(p.GetDynamicObjectItemValue("FZPZT").ToString(), "1"))
&& StringUtils.EqualsIgnoreCase(p.GetDynamicObjectItemValue("DocumentStatus").ToString(), "C")
select p).ToList();
if (ListUtils.IsEmpty(list3))
{
this.View.ShowErrMessage("已选择的单据不是 \"已领用\" 或者 \"已使用\" 状态或支票未审核", "", 0);
writeLog.writeInLog("ListUtils.IsEmpty(list3):"+ ListUtils.IsEmpty(list3));
writeLog.writeInLog("list:"+list3);
}
else
{
result = list3;
}
}
return result;
}
private List GetSelectBillData2()
{
List list = new List();
List list2 = new List();
List listEry = new List();
ListSelectedRowCollection selectedRowsInfo = this.ListView.SelectedRowsInfo;

List result = new List();
if (selectedRowsInfo.Count <= 0)
{
this.View.ShowErrMessage("没有选中要操作的支票!", "", 0);
}
else
{
foreach (ListSelectedRow current in selectedRowsInfo)
{
list2.Add(current.PrimaryKeyValue);
listEry.Add(current.EntryPrimaryKeyValue);
}
FormMetadata formMetadata = MetaDataServiceHelper.Load(this.View.Context, "PAEZ_ZPTZ", true) as FormMetadata;
DynamicObject[] source = BusinessDataServiceHelper.Load(this.View.Context, list2.Distinct().ToArray(), formMetadata.BusinessInfo.GetDynamicObjectType());

List list3 = (from p in source
where StringUtils.EqualsIgnoreCase(p.GetDynamicObjectItemValue("DocumentStatus").ToString(), "E")

select p).ToList();
if (ListUtils.IsEmpty(list3))
{
this.View.ShowErrMessage("只能对已作废的支票进行反作废!", "", 0);

}
else
{
result = list3;
}
}
return result;
}
}
}

您的鼓励与嘉奖将成为创作者们前进的动力,如果觉得本文还不错,可以给予作者创作打赏哦!

请选择打赏金币数 *

10金币20金币30金币40金币50金币60金币
可用金币: 0