根据仓库取得仓位,赋值不显示
金蝶云社区-周全
周全
0人赞赏了该文章 1,007次浏览 未经作者许可,禁止转载编辑于2016年10月19日 12:04:47

//取得仓位ID
public static DynamicObjectCollection GetFFLEXENTRYID(Context cxt, object fstockid)
{
StringBuilder sqlBuilder = new StringBuilder();
SqlParam[] parmlist = new SqlParam[1];
String fflexentryid = "";
parmlist[0] = new SqlParam("@FSTOCKID", KDDbType.String, fstockid);

sqlBuilder.Append(@" select FFLEXENTRYID,tbf.FNumber,tbf.FENTRYID
from t_BD_Stock s
left join T_BD_STOCKFLEXITEM sfi on s.FSTOCKID=sfi.FSTOCKID
left join T_BD_STOCKFLEXDETAIL sfd on sfi.FENTRYID=sfd.FENTRYID
left join T_BAS_FLEXVALUESENTRY tbf on sfd.FFLEXENTRYID=tbf.FENTRYID
where s.FSTOCKID=@FSTOCKID
");
DynamicObjectCollection dyCols = DBServiceHelper.ExecuteDynamicObject(cxt, sqlBuilder.ToString(), null, null, CommandType.Text, parmlist);
if (dyCols.Count > 0)
fflexentryid = dyCols[0][0].ToString();

return dyCols;
}
//给纬度资料赋值
private void SetFlexValue(IBillView billView, string key, object id, int rowiderx = 0)
{
if (id.IsNullOrEmptyOrWhiteSpace()||id.Pint()==0) return;
RelatedFlexGroupField flexfld = billView.BillBusinessInfo.GetField(key) as RelatedFlexGroupField;
DynamicObject stockloc = BusinessDataServiceHelper.LoadSingle(this.Context, id,flexfld.RefFormDynamicObjectType);

if (stockloc==null)return;

if (flexfld.FlexDisplayFormat == Kingdee.BOS.Core.Metadata.FlexType.Format.POPUPBOX)
{
billView.Model.SetValue(flexfld.Key,stockloc[0],rowiderx);
}

else if (flexfld.FlexDisplayFormat == Kingdee.BOS.Core.Metadata.FlexType.Format.FIXEDCOLUMN)
{
DynamicObject copyFldDynamicObject = (DynamicObject)stockloc.Clone(false, false);
billView.Model.SetValue(flexfld.Key, copyFldDynamicObject, rowiderx);
}

}
//
public override void DataChanged(DataChangedEventArgs e)
{
base.DataChanged(e);
if (e.Field.Key != "FStockId") return;

int index = this.Model.GetEntryCurrentRowIndex("FEntity"); //FEntity为明细表实体
DynamicObject fSTOCKID = this.Model.GetValue("FStockId", index) as DynamicObject;
if (fSTOCKID == null) return;
string fBaseRow = fSTOCKID[0].ToString(); // 取单元格值
RelatedFlexGroupField stockLocFld = this.View.BillBusinessInfo.GetField("FStockLocId") as RelatedFlexGroupField;
DynamicObjectCollection stockLocld = AbstractGspBillListPlugIn.GetFFLEXENTRYID(this.Context, fBaseRow);
if (stockLocld == null||stockLocld.Count<1) return;

SetFlexValue(this.View, "FStockLocId", Convert.ToInt32(stockLocld[0]["FENTRYID"]));

请问哪里错了,为什么在其他出库单上,选了仓库不会带出仓位

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

请选择打赏金币数 *

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