分享一个Python插件,读数据包,查询,写数据原创
金蝶云社区-htv
htv
90人赞赏了该文章 688次浏览 未经作者许可,禁止转载编辑于2024年08月03日 17:03:38
def match_material(entry):
    
    useorg=this.View.Model.GetValue("F_OrgId_fg2")
    if useorg is None:return
    if this.View.Model.GetValue("F_StyleNo",0) is None:return
    useorgid=useorg.Id
    tableN="T_TEMP_"+str(this.Context.UserId)
    data_package = this.Model.DataObject[entry]
    dt = DataTable()
    dt.Columns.Add("Seq")
    dt.Columns.Add("F_StyleNo")
    dt.Columns.Add("F_ColorDesc")
    dt.Columns.Add("F_SizeDesc")

    dt.BeginLoadData()
    for item in data_package:
        dt.LoadDataRow(Array[object]([item["Seq"],item["F_StyleNo"], item["F_ColorDesc"],item["F_SizeDesc"]]), True)
    dt.EndLoadData()
    
    #创建临时表
    sql_create=""" /*dialect*/
    IF not EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = '{0}')
    begin
    CREATE TABLE {0} (Seq INT, F_StyleNo VARCHAR(150), F_ColorDesc VARCHAR(150),FMaterialId INT,F_SizeDesc VARCHAR(150))
    end
    delete from {0}
    """.format(tableN)
    DBUtils.Execute(this.Context, sql_create)

    # 插入数据
    dt.TableName = tableN
    DBUtils.BulkInserts(this.Context, dt)

    # 关联取数
    query = """ /*dialect*/
        SELECT b.FMATERIALID,c.size_id  FROM {0} a
        left JOIN t_bd_material b ON b.F_KH = a.F_StyleNo AND b.F_YWYS = a.F_ColorDesc and b.FUSEORGID={1}
        left join u_view_kmx c on c.pm_id=b.F_ASSISTANT_PEIMA and a.F_SizeDesc=c.f_kmx
        where b.FMATERIALID>0
        order by a.seq """.format(tableN,str(useorgid))
    reader=DBUtils.ExecuteReader(this.Context, query)

    # 删除临时表
    #DBUtils.DropSessionTemplateTable(this.Context, tableN)

    # 处理查询结果
    # 填充 FMaterialId 列
    i=0
    for item in reader:
        FMaterialId=item["FMaterialId"]
        SizeId=item["size_id"]
        this.View.Model.SetValue("FMaterialId",FMaterialId,i)
        this.View.UpdateView("FMaterialId")
        this.View.Model.SetValue("$$FAuxPropId__FF100001",SizeId,i)   
        this.View.UpdateView("$$FAuxPropId__FF100001")        
        i=i+1


图标赞 90
90人点赞
还没有人点赞,快来当第一个点赞的人吧!
图标打赏
0人打赏
还没有人打赏,快来当第一个打赏的人吧!