182 lines
8.8 KiB
Python
182 lines
8.8 KiB
Python
|
|
import clr
|
|||
|
|
clr.AddReference("System")
|
|||
|
|
clr.AddReference("Kingdee.BOS")
|
|||
|
|
clr.AddReference("Kingdee.BOS.Core")
|
|||
|
|
clr.AddReference("Kingdee.BOS.DataEntity")
|
|||
|
|
clr.AddReference("Kingdee.BOS.App")
|
|||
|
|
clr.AddReference("Kingdee.BOS.Contracts")
|
|||
|
|
clr.AddReference("Kingdee.BOS.ServiceHelper")
|
|||
|
|
from Kingdee.BOS import*
|
|||
|
|
from Kingdee.BOS.Contracts import*
|
|||
|
|
from Kingdee.BOS.Contracts.Report import*
|
|||
|
|
from Kingdee.BOS.Core import *
|
|||
|
|
from Kingdee.BOS.Core.Metadata import *
|
|||
|
|
from Kingdee.BOS.Core.Report import*
|
|||
|
|
from Kingdee.BOS.Core.SqlBuilder import*
|
|||
|
|
from Kingdee.BOS.Core.Enums import *
|
|||
|
|
from Kingdee.BOS.App.Data import*
|
|||
|
|
from Kingdee.BOS.Orm.DataEntity import*
|
|||
|
|
from System import*
|
|||
|
|
from System.ComponentModel import*
|
|||
|
|
from System.Collections.Generic import*
|
|||
|
|
from System.Text import*
|
|||
|
|
from System.Threading.Tasks import*
|
|||
|
|
from Kingdee.BOS.ServiceHelper import *
|
|||
|
|
#<23><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><DAB4>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ñ<EFBFBD><C3B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȫ<EFBFBD>ֲ<EFBFBD><D6B2><EFBFBD>
|
|||
|
|
def Initialize():
|
|||
|
|
this.ReportProperty.ReportType=ReportType.REPORTTYPE_NORMAL;
|
|||
|
|
this.IsCreateTempTableByPlugin=True;
|
|||
|
|
#<23>Ƿ<EFBFBD>֧<EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C>ں<EFBFBD><DABA><EFBFBD>GetSummaryColumnInfo<66><6F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӻ<EFBFBD><D3BB><EFBFBD><EFBFBD>ֶ<EFBFBD>,
|
|||
|
|
#Ҫ<><D2AA>BOS<4F>й<EFBFBD><D0B9>˿<EFBFBD><CBBF>Ļ<EFBFBD><C4BB><EFBFBD>ҳǩ<D2B3><C7A9><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>Ϣ,<2C>ɲο<C9B2>:<3A><><EFBFBD><EFBFBD><EFBFBD>˱<EFBFBD><CBB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
this.ReportProperty.IsGroupSummary=True;
|
|||
|
|
#IsUIDesignerColumns=False,<2C><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>GetReportHeaders<72>й<EFBFBD><D0B9><EFBFBD><EFBFBD><EFBFBD>ͷ
|
|||
|
|
#<23><>Ҫ<EFBFBD><D2AA>BOS<4F><53><EFBFBD>˿<EFBFBD><CBBF><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ά<EFBFBD><CEAC>,<2C>ֶα<D6B6>ʶ<EFBFBD><CAB6><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>ֶα<D6B6><CEB1><EFBFBD>һ<EFBFBD><D2BB>
|
|||
|
|
#<23>˱<EFBFBD><CBB1><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϸ˵<CFB8><CBB5><EFBFBD>ο<EFBFBD>:<3A>˱<EFBFBD><CBB1>й<EFBFBD><D0B9><EFBFBD>
|
|||
|
|
this.ReportProperty.IsUIDesignerColumns=False;
|
|||
|
|
|
|||
|
|
#<23><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>,<2C><>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD><EFBFBD>˱<EFBFBD>ȡ<EFBFBD><C8A1>sqlƴ<6C>Ӳ<EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˱<EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ŵ<EFBFBD><C5B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>
|
|||
|
|
#<23><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(this.IsCreateTempTableByPlugin=True)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>BuilderReportSqlAndTempTable<6C><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
|
|||
|
|
#<23><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>3<EFBFBD><33><EFBFBD>ӿڣ<D3BF><DAA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˱<EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><DFBC><EFBFBD>sqlָ<6C><EFBFBD><EEBCB4>BuilderSelectFieldSQL<51><4C>BuilderTempTableOrderBySQL<51><4C>BuilderFormWhereSQL
|
|||
|
|
#rptfilter:<3A>˱<EFBFBD><CBB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
#tableName:ϵͳ<CFB5>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˱<EFBFBD><CBB1><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߱<EFBFBD>Ψһ<CEA8>ԣ<EFBFBD><D4A3><EFBFBD><EFBFBD>ձ<EFBFBD><D5B1><EFBFBD>ҳ<EFBFBD><D2B3>չʾ<D5B9><CABE><EFBFBD><EFBFBD><EFBFBD>ݰ<DDB0><F3B6A8B4><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>յı<D5B5><C4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫд<D2AA><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>
|
|||
|
|
def BuilderReportSqlAndTempTable(rptfilter,tableName):
|
|||
|
|
#baseDataTemp=filter.BaseDataTempTable;#<23><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݷ<EFBFBD>ΧȨ<CEA7>ޣ<EFBFBD><DEA3>ñ<EFBFBD><C3B1><EFBFBD><EFBFBD>Ѹ<EFBFBD><D1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݷ<EFBFBD>Χ<EFBFBD><CEA7><EFBFBD>˳<EFBFBD><CBB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>
|
|||
|
|
#ѭ<><D1AD><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD>л<EFBFBD><D0BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݷ<EFBFBD>Χ<EFBFBD><CEA7><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƴ<EFBFBD>ӵ<EFBFBD><D3B5><EFBFBD><EFBFBD><EFBFBD>SQL<51><4C><EFBFBD><EFBFBD>ʵ<EFBFBD><CAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȩ<EFBFBD><EFBFBD><DEB9><EFBFBD>
|
|||
|
|
#for b in baseDataTemp:
|
|||
|
|
# baseType=b.BaseDataFormId;#<23><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>FormId
|
|||
|
|
# PKFldName=b.PKFieldName;#<23><>ʱ<EFBFBD><CAB1><EFBFBD>л<EFBFBD><D0BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD><D6B6><EFBFBD>,<2C><><EFBFBD><EFBFBD>,FORGID
|
|||
|
|
# baseTempTab=b.TempTable;#<23><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݷ<EFBFBD>Χ<EFBFBD><CEA7>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>
|
|||
|
|
#filterStr=filter.FilterParameter.FilterString;#<23><><EFBFBD>˿<EFBFBD><CBBF><EFBFBD><EFBFBD><EFBFBD>ҳǩ<D2B3><C7A9><EFBFBD>˱<EFBFBD><CBB1><EFBFBD>ʽ
|
|||
|
|
#<23><><EFBFBD>˿<EFBFBD><CBBF><EFBFBD><EFBFBD>ݹ<EFBFBD><DDB9><EFBFBD>ҳǩ<D2B3><C7A9>ʵ<EFBFBD><CAB5><EFBFBD><EFBFBD><EFBFBD>ݰ<EFBFBD><DDB0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD>Ĺ<EFBFBD><C4B9><EFBFBD><EFBFBD>ֶ<EFBFBD>ֵ
|
|||
|
|
#DynamicObject<63><74><EFBFBD><EFBFBD>,<2C><>ǰ<EFBFBD>潲<EFBFBD><E6BDB2>ʵ<EFBFBD><CAB5><EFBFBD><EFBFBD><EFBFBD>ݰ<EFBFBD><DDB0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽȡֵ<C8A1><D6B5><EFBFBD>ð<EFBFBD><C3B0><EFBFBD>ʵ<EFBFBD><CAB5><EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD>ʶ
|
|||
|
|
custFilter = rptfilter.FilterParameter.CustomFilter;
|
|||
|
|
if(custFilter==None):
|
|||
|
|
return;
|
|||
|
|
orgObj=custFilter["F_BPW_OrgId"];#<23><>ȡ<EFBFBD><C8A1>֯
|
|||
|
|
whereOrgs="";
|
|||
|
|
if(orgObj != None):
|
|||
|
|
orgId=("{0}").format(orgObj["Id"]);#<23><>֯ID
|
|||
|
|
whereOrgs=(" and a.FPURCHASEORGID in ({0}) ").format(orgId);#ѡ<><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֯<EFBFBD><D6AF>ƴ<EFBFBD><C6B4><EFBFBD><EFBFBD>֯<EFBFBD><D6AF><EFBFBD><EFBFBD>
|
|||
|
|
materials=custFilter["F_BPW_Materials"];#<23><><EFBFBD>϶<EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD>
|
|||
|
|
matList=List[str]();
|
|||
|
|
if(materials != None):
|
|||
|
|
for m in materials:
|
|||
|
|
materialNum="'"+str(m["F_BPW_Materials"]["Number"])+"'";#ȡ<><C8A1><EFBFBD><EFBFBD><EFBFBD>˿<EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD>Ķ<EFBFBD><C4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD>
|
|||
|
|
matList.Add(materialNum);
|
|||
|
|
whereMat=(" and m.FNumber in ({0})").format(str.Join(",",matList)) if(matList.Count>0) else "";#ƴ<><C6B4><EFBFBD><EFBFBD><EFBFBD>϶<EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD>
|
|||
|
|
beginDate=str(custFilter["F_BPW_BeginDate"]);#<23><>ȡ<EFBFBD><C8A1>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>
|
|||
|
|
EndDate=str(custFilter["F_BPW_EndDate"]);#<23><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
beginDate=str(DateTime.Parse(("{0}").format(beginDate)).AddDays(-1));#<23><>ʼ<EFBFBD><CABC><EFBFBD>ڵ<EFBFBD>ǰһ<C7B0><D2BB>
|
|||
|
|
itemDate=beginDate;
|
|||
|
|
fldsSql=List[str]();#<23><>̬<EFBFBD><CCAC>ͷSQL,<2C>൱<EFBFBD><E0B5B1>Select<63><74><EFBFBD><EFBFBD><EFBFBD>IJ<EFBFBD><C4B2><EFBFBD><EFBFBD>ֶ<EFBFBD><D6B6>Ƕ<EFBFBD>̬ƴ<CCAC>ӵģ<D3B5><C4A3>Դ<EFBFBD><D4B4><EFBFBD>ʵ<EFBFBD>ֶ<EFBFBD>̬<EFBFBD><CCAC>
|
|||
|
|
#<23>ӿ<EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѭ<EFBFBD><D1AD><EFBFBD><EFBFBD>1<EFBFBD>죬һֱ<D2BB><D6B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڣ<EFBFBD><DAA3><EFBFBD><EFBFBD>˽<EFBFBD><CBBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>¼<EFBFBD><C2BC><EFBFBD>Ŀ<EFBFBD>ʼ<EFBFBD><CABC><EFBFBD>ڱ<EFBFBD><DAB1><EFBFBD><<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C>ڹ<EFBFBD><DAB9>˽<EFBFBD><CBBD><EFBFBD>ע<EFBFBD><D7A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʵ<EFBFBD><CAB5>
|
|||
|
|
while(itemDate != EndDate):
|
|||
|
|
myDate=DateTime.Parse(("{0}").format(itemDate));
|
|||
|
|
fldKey=("F{0}_{1}_{2}").format(myDate.Year,myDate.Month,myDate.Day);#<23><><EFBFBD><EFBFBD>ÿ<EFBFBD><C3BF><EFBFBD><EFBFBD><EFBFBD>ڹ<EFBFBD><DAB9><EFBFBD>Ψһ<CEA8><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
ss=("{0}=SUM(Case when a.FDATE='{1}' then b.FQty else 0 end)").format(fldKey,myDate);#<23><><EFBFBD><EFBFBD>ÿ<EFBFBD>충<EFBFBD><ECB6A9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϼ<EFBFBD>SQL
|
|||
|
|
fldsSql.Add(ss);#<23><>SQL<51><4C><EFBFBD>ӵ<EFBFBD><D3B5><EFBFBD>̬<EFBFBD><CCAC>SQL<51><4C><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD><D0B1><EFBFBD>
|
|||
|
|
nextDate=myDate.AddDays(1);
|
|||
|
|
itemDate=str(nextDate);#<23><><EFBFBD><EFBFBD>+1<><31>
|
|||
|
|
myDate=DateTime.Parse(("{0}").format(itemDate));#<23><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD>Ľ<EFBFBD>ֹ<EFBFBD><D6B9><EFBFBD>ڣ<EFBFBD><DAA3><EFBFBD><EFBFBD><EFBFBD>ѭ<EFBFBD><D1AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ˣ<EFBFBD><CBA3><EFBFBD><EFBFBD>ﲹ<EFBFBD><EFB2B9>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
fldKey=("F{0}_{1}_{2}").format(myDate.Year,myDate.Month,myDate.Day);
|
|||
|
|
ss=("{0}=SUM(Case when a.FDATE='{1}' then b.FQty else 0 end)").format(fldKey,myDate);
|
|||
|
|
fldsSql.Add(ss);#<23><>SQL<51><4C><EFBFBD>ӵ<EFBFBD><D3B5><EFBFBD>̬<EFBFBD><CCAC>SQL<51><4C><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD><D0B1><EFBFBD>
|
|||
|
|
#raise Exception(str.Join(',',fldsSql));#<23><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>ô<EFBFBD><C3B4>д<EFBFBD><D0B4>룬<EFBFBD><EBA3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ķ<EFBFBD>̬<EFBFBD><CCAC>SQL<51>Բ<EFBFBD><D4B2><EFBFBD>
|
|||
|
|
#<23><>װ<EFBFBD><D7B0><EFBFBD><EFBFBD>д<EFBFBD>뱨<EFBFBD><EBB1A8><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>SQL
|
|||
|
|
#ע<><D7A2>!!!: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>һ<EFBFBD><D2BB>Ҫ<EFBFBD><D2AA>FIDENTITYID <20><>Ҫ<EFBFBD><D2AA>1<EFBFBD><31>ʼ<EFBFBD><CABC><EFBFBD>Ҳ<EFBFBD><D2B2>ظ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ϻţ<CFBA><C5A3><EFBFBD>Ȼǰ̨<C7B0><CCA8>ʾ<EFBFBD>հ<EFBFBD>!!!!
|
|||
|
|
sql=("""/*dialect*/?select row_Number() Over(order by a.orgName,a.MaterialNum) FIDENTITYID, a.*
|
|||
|
|
into {0}
|
|||
|
|
from
|
|||
|
|
(select orgL.FNAME orgName,m.FNUMBER MaterialNum,mL.FNAME materialName,mL.FSPECIFICATION SpecNum,unitL.FNAME unit,
|
|||
|
|
{1}
|
|||
|
|
from t_PUR_POOrder a
|
|||
|
|
inner join T_ORG_ORGANIZATIONS org on org.FORGID=a.FPURCHASEORGID
|
|||
|
|
inner join T_ORG_ORGANIZATIONS_L orgL on orgL.FORGID=org.FORGID and orgL.FLOCALEID=2052
|
|||
|
|
inner join t_PUR_POOrderEntry b on a.FID=b.FID
|
|||
|
|
inner join T_BD_MATERIAL m on m.FMATERIALID=b.FMATERIALID
|
|||
|
|
inner join T_BD_MATERIAL_L mL on mL.FMATERIALID=m.FMATERIALID and mL.FLOCALEID=2052
|
|||
|
|
inner Join T_BD_UNIT_L unitL on unitL.FUNITID=b.FUNITID and unitL.FLOCALEID=2052
|
|||
|
|
where a.FDATE>='{3}' and a.FDATE<='{4}' {2} {5}
|
|||
|
|
group by orgL.FNAME,m.FNUMBER,mL.FNAME,mL.FSPECIFICATION,unitL.FNAME
|
|||
|
|
) a
|
|||
|
|
""").format(tableName,str.Join(',',fldsSql),whereOrgs,beginDate,EndDate,whereMat);
|
|||
|
|
#raise Exception(sql);#<23><><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD>˷<EFBFBD><CBB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Sql<71><6C><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD>֤
|
|||
|
|
DBUtils.Execute(this.Context,sql);#ִ<><D6B4>SQL<51><4C><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><D0B4><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
|
|||
|
|
|
|||
|
|
#<23><><EFBFBD><EFBFBD><EFBFBD>˱<EFBFBD><CBB1><EFBFBD>ͷ
|
|||
|
|
def GetReportHeaders(Filter):
|
|||
|
|
header=ReportHeader();
|
|||
|
|
localEid=this.Context.UserLocale.LCID;#<23><>ȡ<EFBFBD><C8A1>ǰ<EFBFBD><C7B0><EFBFBD>Ի<EFBFBD><D4BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD>Ϊ2052
|
|||
|
|
header.AddChild("orgName",LocaleValue("<EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD>֯",localEid));#<23>ֶ<EFBFBD><D6B6><EFBFBD>,<2C><>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD>,<2C>ֶ<EFBFBD><D6B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>е<EFBFBD><D0B5>ֶ<EFBFBD><D6B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD>൱<EFBFBD><E0B5B1>ÿһ<C3BF><D2BB><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7>Ӧ<EFBFBD><D3A6>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>ĸ<EFBFBD><C4B8>ֶ<EFBFBD>
|
|||
|
|
header.AddChild("MaterialNum",LocaleValue("<EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD><EFBFBD><EFBFBD>",localEid));
|
|||
|
|
header.AddChild("materialName",LocaleValue("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",localEid));
|
|||
|
|
header.AddChild("SpecNum",LocaleValue("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͺ<EFBFBD>",localEid));
|
|||
|
|
header.AddChild("unit",LocaleValue("<EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD>λ",localEid));
|
|||
|
|
|
|||
|
|
#<23><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݹ<EFBFBD><DDB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>䣬<EFBFBD><E4A3AC>̬<EFBFBD><CCAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ,<2C><><EFBFBD><EFBFBD><EFBFBD>湹<EFBFBD><E6B9B9>SQL<51>ֶε<D6B6><CEB5><EFBFBD><DFBC><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
custFilter = Filter.FilterParameter.CustomFilter;
|
|||
|
|
beginDate=str(custFilter["F_BPW_BeginDate"]);#<23><>ȡ<EFBFBD><C8A1>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>
|
|||
|
|
EndDate=str(custFilter["F_BPW_EndDate"]);#<23><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
itemDate=beginDate;
|
|||
|
|
fldsSql=List[str]();
|
|||
|
|
while(itemDate != EndDate):
|
|||
|
|
myDate=DateTime.Parse(("{0}").format(itemDate));
|
|||
|
|
fldKey=("F{0}_{1}_{2}").format(myDate.Year,myDate.Month,myDate.Day);#<23><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD><D6B6><EFBFBD>Ҫ<EFBFBD><D2AA>ǰ<EFBFBD>湹<EFBFBD><E6B9B9><EFBFBD><EFBFBD>SQL<51>ֶζ<D6B6>Ӧ
|
|||
|
|
header.AddChild(fldKey,LocaleValue(str(("{0}-{1}-{2}").format(myDate.Year,myDate.Month,myDate.Day)),localEid),SqlStorageType.SqlDecimal);
|
|||
|
|
nextDate=myDate.AddDays(1);
|
|||
|
|
itemDate=str(nextDate);
|
|||
|
|
myDate=DateTime.Parse(("{0}").format(itemDate));
|
|||
|
|
fldKey=("F{0}_{1}_{2}").format(myDate.Year,myDate.Month,myDate.Day);#<23><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD><D6B6><EFBFBD>Ҫ<EFBFBD><D2AA>ǰ<EFBFBD>湹<EFBFBD><E6B9B9><EFBFBD><EFBFBD>SQL<51>ֶζ<D6B6>Ӧ
|
|||
|
|
header.AddChild(fldKey,LocaleValue(str(("{0}-{1}-{2}").format(myDate.Year,myDate.Month,myDate.Day)),localEid),SqlStorageType.SqlDecimal);
|
|||
|
|
#<23><><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><D4B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˳<EFBFBD><CBB3><EFBFBD><EFBFBD>ʾ
|
|||
|
|
colIndex=0;
|
|||
|
|
for child in header.GetChilds():
|
|||
|
|
if(child.GetChildCount()==0):
|
|||
|
|
child.ColIndex=colIndex;
|
|||
|
|
colIndex=colIndex+1;
|
|||
|
|
else:
|
|||
|
|
child.ColIndex = colIndex;
|
|||
|
|
colIndex=colIndex+1;
|
|||
|
|
for childHeader in child.GetChilds():
|
|||
|
|
childHeader.ColIndex=colIndex;
|
|||
|
|
colIndex=colIndex+1;
|
|||
|
|
return header;
|
|||
|
|
|
|||
|
|
#<23><><EFBFBD>ñ<EFBFBD><C3B1><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD>ֶ<EFBFBD>ֵ
|
|||
|
|
#<23><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD>ǰѹ<C7B0><D1B9>˿<EFBFBD><CBBF><EFBFBD><EFBFBD>õ<EFBFBD><C3B5>ֶ<EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ
|
|||
|
|
def GetReportTitles(Filter):
|
|||
|
|
reportTitles=ReportTitles();
|
|||
|
|
custFilter=Filter.FilterParameter.CustomFilter;#<23><>ȡ<EFBFBD><C8A1><EFBFBD>˿<EFBFBD><CBBF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݰ<EFBFBD>
|
|||
|
|
orgObj=custFilter["F_BPW_OrgId"];#<23><>ȡ<EFBFBD><C8A1>֯
|
|||
|
|
beginDate=str(custFilter["F_BPW_BeginDate"]);#<23><>ȡ<EFBFBD><C8A1>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>
|
|||
|
|
EndDate=str(custFilter["F_BPW_EndDate"]);#<23><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
if(orgObj != None):
|
|||
|
|
reportTitles.AddTitle("F_BPW_OrgId", orgObj["Name"]);
|
|||
|
|
reportTitles.AddTitle("F_BPW_BeginDate", beginDate);
|
|||
|
|
reportTitles.AddTitle("F_BPW_EndDate", EndDate);
|
|||
|
|
return reportTitles;
|
|||
|
|
|
|||
|
|
#<23><><EFBFBD>ñ<EFBFBD><C3B1><EFBFBD><EFBFBD>ײ<EFBFBD><D7B2>ϼ<EFBFBD><CFBC><EFBFBD>
|
|||
|
|
def GetSummaryColumnInfo(rptfilter):
|
|||
|
|
result=List[SummaryField]();
|
|||
|
|
#<23><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD><D6B6>Ƕ<EFBFBD>̬<EFBFBD><CCAC><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD><EFBFBD>Ҳ<EFBFBD><D2B2>Ҫ<EFBFBD><D2AA>̬<EFBFBD><CCAC><EFBFBD>Ӻϼ<D3BA><CFBC><EFBFBD>,<2C>ֶ<EFBFBD><D6B6><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD>汣<EFBFBD><E6B1A3>һ<EFBFBD><D2BB>
|
|||
|
|
custFilter = rptfilter.FilterParameter.CustomFilter;
|
|||
|
|
beginDate=str(custFilter["F_BPW_BeginDate"]);#<23><>ȡ<EFBFBD><C8A1>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>
|
|||
|
|
EndDate=str(custFilter["F_BPW_EndDate"]);#<23><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
itemDate=beginDate;
|
|||
|
|
fldsSql=List[str]();
|
|||
|
|
while(itemDate != EndDate):
|
|||
|
|
myDate=DateTime.Parse(("{0}").format(itemDate));
|
|||
|
|
fldKey=("F{0}_{1}_{2}").format(myDate.Year,myDate.Month,myDate.Day);#<23><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD><D6B6><EFBFBD>Ҫ<EFBFBD><D2AA>ǰ<EFBFBD>湹<EFBFBD><E6B9B9><EFBFBD><EFBFBD>SQL<51>ֶζ<D6B6>Ӧ
|
|||
|
|
result.Add(SummaryField(fldKey,BOSEnums.Enu_SummaryType.SUM));
|
|||
|
|
nextDate=myDate.AddDays(1);
|
|||
|
|
itemDate=str(nextDate);
|
|||
|
|
myDate=DateTime.Parse(("{0}").format(itemDate));
|
|||
|
|
fldKey=("F{0}_{1}_{2}").format(myDate.Year,myDate.Month,myDate.Day);
|
|||
|
|
result.Add(SummaryField(fldKey,BOSEnums.Enu_SummaryType.SUM));
|
|||
|
|
return result;
|
|||
|
|
|
|||
|
|
#<23><><EFBFBD><EFBFBD><EFBFBD>رմ<D8B1><D5B4><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD>ڴ˴<DAB4><CBB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̲<EFBFBD><CCB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
|
|||
|
|
def CloseReport():
|
|||
|
|
this.DropTempTable();
|