首页 智能决策技术报告

智能决策技术报告

举报
开通vip

智能决策技术报告智能决策技术期末考核设计题目:生产物料需求决策支持系统目录TOC\o"1-3"\h\z\u一.规划与分析阶段1.问题描述1.1现状选定决策支持主题是生产物料需求计划。在现代企业的生产经营活动中物料是企业价值链中极其重要的一环,物料采购决策占有十分重要的地位。在成熟、稳定的市场条件下,理性的企业决策者总是力争在“正确时间”采购“正确数量”的物料,供企业生产使用。物料需求计算的基本任务是:一是从最终产品的生产计划导出相关物料(原材料、零部件)的需求量和需求时间(相关需求);二是根据物料的需求时间和订货周期来确定其...

智能决策技术报告
智能决策技术期末考核设计题目:生产物料需求决策支持系统目录TOC\o"1-3"\h\z\u一.规划与分析阶段1.问题描述1.1现状选定决策支持主题是生产物料需求 计划 项目进度计划表范例计划下载计划下载计划下载课程教学计划下载 。在现代企业的生产经营活动中物料是企业价值链中极其重要的一环,物料采购决策占有十分重要的地位。在成熟、稳定的市场条件下,理性的企业决策者总是力争在“正确时间”采购“正确数量”的物料,供企业生产使用。物料需求计算的基本任务是:一是从最终产品的生产计划导出相关物料(原材料、零部件)的需求量和需求时间(相关需求);二是根据物料的需求时间和订货周期来确定其开始订货的时间。物料需求计算的基本 内容 财务内部控制制度的内容财务内部控制制度的内容人员招聘与配置的内容项目成本控制的内容消防安全演练内容 是编制物料(包括零部件和原材料)的采购计划(这里不考虑生产的自制,假定所有的物料都进行采购)。要正确编制物料采购计划,首先必须落实最终产品的产出进度计划,即主生产计划,这是物料需求计算展开的依据。还要需要知道产品的零部件和原材料结构,即无聊清单,才能把主生产计划展开成物料需求计划;同时,必须知道库存数量才能准确地计算出各种零部件和原材料的采购数量。因此,以主生产计划,物料清单为依据计算物料需求。物料需求计划原理框架如下图1.1:产品产出计划物料需求计划报告物料需求计划(数量、时间)产品结构文件库存状态文件图1.11.2解决手段建立物料需求分析的决策支持系统,完成复杂的分析过程,并自动生成物料需求订单,以供生产使用。1.3意义应用该系统,可为企业生产过程中物料需求和选择供应商提供依据。2.数据处理分析2.1数据流程图图2.SEQ图2\*ARABIC12.2物料需求分析的核心流程:物料需求计划主要按照反工艺路线(成品——组装件——零部件)的原理,按照产品产出计划规定的产品的生产数量和期限 要求 对教师党员的评价套管和固井爆破片与爆破装置仓库管理基本要求三甲医院都需要复审吗 ,利用产品结构文件、库存信息文件等数据资料,反工艺顺序计算出各种物料的需求数量与需求期限,进而,根据企业实际确定自制和采购的数量和期限。物料需求计算时主要用到五种库存状态数据:毛需求G(t)、计划到货量S(t)、现有量H(t)、净需求量N(t)和计划发出订货量R(t-L),这里t是表示周期的变量,L是提前期。计算在第t周期第i层所有物料需求量和需求时间的步骤为:第一步:确定第i层第t周期所有毛需求量。毛需求量是指生产中实际需要的量,0层的毛需求由主生产计划确定,其余各层的毛需求量是由其上层的计划订单下达。第二步:确定物料第i层第t周期的净需求量,净需求量是指实际需要的增加量。第三步:根据净需求量确定第t周期计划下达数量第四步:第i层第t周期的计划订单下达数量,即为第i层物料的毛需求量,由毛需求量开始重复上述1—4步,直至最低层物料。其分析流程图如下图:i=0,t=1按照时间周期计算第n层所有物料的毛需求量第0层根据产品计划得出,其他层由其父项计划下达取得确定第n层第t周期净需求量N(t)由净需求N(t)确定计划定单入库R(t-L)所有周期算完否确定计划定单下达所有产品结构层次已分解向下一层分解i=i+1结束t=t+1否是是否2.3建立数据字典:总编号编号名称来源去向包含数据结构1-01F1客户订单客户分析处理订单号、产品编号、订购数量、交货日期1-02F2产品结构设计分析处理产品编号、层次、上层编号、上层需求1-03F3库存状态库存分析处理产品编号、产品名称、库存总量、可用量、将要入库量、安全库存1-04F4物料订单分析处理订单下达订单号、物料编号、订购数量、订购日期、有效期至1-05F5用户信息用户登录判断用户名、密码、权限、备注表2.33.抽象模型建立3.1系统功能结构图图3.SEQ图1.2\*ARABIC13.2系统业务流程图图3.SEQ图1.2\*ARABIC2二.设计阶段1.系统平台设计1.1开发平台设计前台设计工具:BorlandDelphi6后台数据库:SQLServer2008开发环境:硬件环境:PC电脑软件环境:(见下图)服务器操作系统WINDOWS2007应用程序SQLServer2008客户端操作系统WINDOWS2007应用程序BorlandDelphi61.2网络运行模式设计本系统采用C/S模式,即客户端/服务器模式网络拓扑结构为星型结构2.主要功能模块设计2.1登录模块界面截图如下图4.21:图4.2SEQ图4.2\*ARABIC1功能是验证用户是否合法,是否允许登入系统,如果合法则还要判断其权限,以限定用户的操作权限。2.2主界面模块界面如图4.22登录之前及4.23登录之后,其功能是实现在各个功能模块的界面之间的进行跳转:图4.2SEQ图4.2\*ARABIC2图4.2SEQ图4.2\*ARABIC32.3主生产计划模块界面如下图4.24,主要是实现客户订单管理:图4.2SEQ图4.2\*ARABIC4图4.25为产品结构管理:图4.2SEQ图4.2\*ARABIC5图4.26为物料库存管理:图4.2SEQ图4.2\*ARABIC6图4.27为物料需求分析界面:图4.2SEQ图4.2\*ARABIC72.4订单管理模块图4.28为订单管理界面:图4.2SEQ图4.2\*ARABIC82.5用户管理模块图4.29为用户管理界面,包括注册、修改密码、权限设置等:图4.2SEQ图4.2\*ARABIC93.数据库设计数据库设计如下:客户订单文件表oderform字段名称字段描述数据类型字段长度是否主键允许为空否Oderno订单号Char10YNPno产品编号Char10NNPnum订单总量Int4NNPselfnum自产量Int4NNPbuynum外购量Int4NNOdert下单日期Datetime8NYDelit交货日期Datetime8NYState当前状态Datetime10NY物料需求订单文件表matelist字段名称字段描述数据类型字段长度是否主键允许为空否Mlno订单编号Char10YNMno物料编号Char10NYMlnum订购数量Int4NYMltime订购日期Datetime8NYMlvivtime有效期至Datetime8NYRemark备注Char30NY物料库存文件表matestor字段名称字段描述数据类型字段长度是否主键允许为空否Mno物料编号Char8YNMname物料名称Char10NYMlayer所属层次Int4NYMpreno上层编号Char8NYMprenum上层需求Int4NYMtnum库存总量Int4NYMvnum可用数量Int4NYMwnum将要入库量Int4NYSecnum安全库存Int4NYMut计量单位Char4NYMfinish成品率Float8NYMadvant提前期Int4NYAvat生效日期Datetime8NYInvat失效日期Datetime8NYRemark备注Char30NY物料分析临时表tempinfo字段名称字段描述数据类型字段长度是否主键允许为空否Dtime需求日期Datetime8NNDmno物料编号Char8NNDmname物料名称Char10NNDmlayer所属层次Int4NNDmadvantt提前期Int4NNDpreno上层编号Char8NNDprenum上层需求Int4NNDmfinish成品率Float8NNDvnum可用数量Int4NNDwnum将要入库量Int4NNDsnum安全库存Int4NNDdtnum毛需求量Int4NNDdnetnum净需求量Int4NNdselfn自产量Int4NYdbuyn外购量Int4NY用户信息表userinfo字段名称字段描述数据类型字段长度是否主键允许为空否Username用户名Char10YNPassswd用密码Char10NNUright用户权限Char10NYLastit最近登录时间Datetime8NYLastot最近登出时间Datetime8NYRemark备注Char30NY三.实施阶段1.实现 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 以一个简化了的自行车产品来说明,其库存状态书记库如上图所示。其结构示意图为:自行车车架(1)车轮(2)车把(1)轮圈(1)轮胎(2)辐条(42)0层1层2层基本的物料计划步骤为:确定自行车的总需求、净需求和计划定单下达的时间;根据上层的结果,确定第1层上所有物料的净需求和计划定单下达的时间;根据上层车轮的结果,确定第2层上所有物料的净需求和计划定单下达的时间。其中用到的公式有:第t周期的净需求量=第t周期的毛需求—现有量—第t周期计划入库量+安全库存不考虑批量问题,则t-L周期计算计划订单下达数量等于t周期净需求量,即:R(t-L)=N(t)2.系统开发、调试与运行2.1登录模块设计界面如图图5.4SEQ图5.4\*ARABIC1主要程序代码为:unitLogin;varfmLogin:TfmLogin;implementationusesdatamd,Main;{$R*.dfm}//////////////////////自定义过程,验证用户///////////////////////////////procedureTfmlogin.userjug(u,p,r:string);varupsql,upsql2:string;beginifu=''thenbeginshowmessage('用户名不能为空,请输入用户名!');edtun.setfocus;endelseifp=''thenbeginshowmessage('密码不能为空,请输入密码!');edtpw.setfocus;endelsebeginupsql:='selectusernm,passwd,urightfromuserinfowhereusernm='+''''+u+''''+'andpasswd='+''''+p+''''+'anduright='+''''+r+'''';upsql2:='updateuserinfosetlastit='+''''+datetostr(Now)+''''+'whereusernm='+''''+u+'''';trydtmd.qryup.Close;dtmd.qryup.SQL.Clear;dtmd.qryup.SQL.Add(upsql);dtmd.qryup.Open;ifnotdtmd.qryup.Eofthen//用户合法,则进入系统begindtmd.qryup.Close;//更新用户的最近登录时间dtmd.qryup.SQL.Clear;dtmd.qryup.SQL.Add(upsql2);dtmd.qryup.ExecSQL;fmMain.RzGroup1.Visible:=false;fmMain.RzGroup2.Visible:=true;fmMain.RzGroup2.Opened:=true;fmMain.RzGroup3.Visible:=true;fmMain.RzGroup4.Visible:=true;fmMain.RzGroup5.Visible:=true;fmMain.RzGroup5.Visible:=true;fmMain.pu:=u;fmMain.pp:=p;fmMain.pr:=r;fmMain.sttb.Panels[0].Text:=fmMain.pu;fmLogin.Close;endelsebeginshowmessage('用户名或密码错误!');edtun.SetFocus;endexceptshowmessage('连接数据库失败,请检查数据库服务是否正常!');end;end;end;//////////////////////////////退出登录/////////////////////////////////procedureTfmLogin.btnextClick(Sender:TObject);beginself.Close;end;//////////////////////////////登录按钮////////////////////////////////procedureTfmLogin.btnlgClick(Sender:TObject);varri:string;beginifself.rbu.Checkedthenri:='user'elseifself.rba.Checkedthenri:='admini';userjug(trim(edtun.Text),trim(edtpw.Text),ri);end;////////////////////用户名和密码文本框里回车/////////////////////////procedureTfmLogin.edtunKeyPress(Sender:TObject;varKey:Char);varri:string;beginifkey=#13thenbeginifself.rbu.Checkedthenri:='user'elseifself.rba.Checkedthenri:='admini';userjug(trim(edtun.Text),trim(edtpw.Text),ri);end;end;end.2.2订单管理界面如图5.42图5.4SEQ图5.4\*ARABIC2主要代码:unitOderform;varfmOderform:TfmOderform;implementationusesdatamd,Main;{$R*.dfm}///////////////////////////各个下拉框赋值共用过程///////////////////////procedureTfmOderform.cbpbdpd(tet:string);vari,j:integer;osql:string;beginwithdtmd.qryofmdobeginosql:='selectdistinct'+tet+'fromoderform';//查询唯一值tryClose;SQL.clear;SQL.Add(osql);Open;fmOderform.dbno.DataSource:=nil;fmOderform.dbgo.DataSource:=nil;First;i:=RecordCount;forj:=0toi-1do//循环赋值beginifm=1thencbno1.Items.Add(FieldByName('oderno').AsString)elseifm=2thencbno2.Items.Add(FieldByName('oderno').AsString);Next;end;exceptshowmessage('数据库连接失败!请检查数据库服务是否正常!');end;end;end;procedureTfmOderform.btnexitClick(Sender:TObject);beginself.Close;end;procedureTfmOderform.cbno1DropDown(Sender:TObject);beginm:=1;self.cbno1.Items.Clear;self.cbpbdpd('oderno');end;procedureTfmOderform.cbno2DropDown(Sender:TObject);beginm:=2;self.cbno2.Items.Clear;self.cbpbdpd('oderno');end;///=================================================================///procedureTfmOderform.btnsearClick(Sender:TObject);varssql,cdt:string;beginssql:='selectodernoas订单号,pnoas产品编号,mnameas产品名称,pnumas订购量,odertas订购日期,delitas交货日期,stateas当前状态fromoderform,matestorwheremno=pnoandpno<>'+''''+'''';ifcbno1.Text<>''thencdt:='andoderno>='+''''+trim(cbno1.Text)+'''';ifcbno2.Text<>''thencdt:=cdt+'andoderno<='+''''+trim(cbno2.Text)+'''';ifdatetostr(dtp1.Date)<>''thencdt:=cdt+'anddelit>='+''''+datetostr(dtp1.DateTime)+'''';ifdatetostr(dtp2.Date)<>''thencdt:=cdt+'anddelit<='+''''+datetostr(dtp2.DateTime)+'''';ifcbnm.Text<>''thencdt:=cdt+'andpno='+''''+trim(cbnm.Text)+'''';ifcbst.Text<>''thencdt:=cdt+'andstate='+''''+trim(cbst.Text)+'''';ssql:=ssql+cdt;withdtmd.qryofmdobegintryClose;SQL.clear;SQL.Add(ssql);Open;fmOderform.dbno.DataSource:=dtmd.dsofm;//动态指定数据感知组件的数据源fmOderform.dbgo.DataSource:=dtmd.dsofm;exceptshowmessage('数据库连接失败!请检查数据库服务是否正常!');end;end;end;//****************************是否允许编辑********************************procedureTfmOderform.edorClick(Sender:TObject);beginiffmOderform.edor.Checkedthen//允许编辑beginfmOderform.dbgo.Options:=fmOderform.dbgo.Options-[dgRowSelect]+[dgediting];fmOderform.dbno.VisibleButtons:=[nbinsert,nbdelete,nbedit,nbpost,nbcancel,nbrefresh];endelse//不允许编辑beginfmOderform.dbgo.Options:=fmOderform.dbgo.Options+[dgRowSelect]-[dgediting];fmOderform.dbno.VisibleButtons:=[nbfirst,nbprior,nbnext,nblast];endend;procedureTfmOderform.FormCreate(Sender:TObject);beginfmOderform.dbno.VisibleButtons:=[nbfirst,nbprior,nbnext,nblast];fmOderform.dbgo.Options:=fmOderform.dbgo.Options+[dgRowSelect]-[dgediting];end;procedureTfmOderform.FormShow(Sender:TObject);beginiffmMain.sttb.Panels[0].Text=''thenbegin//游客不能操作数据库self.GroupBox1.Enabled:=false;self.GroupBox2.Enabled:=false;endelsebegin//游客不能操作数据库self.GroupBox1.Enabled:=true;self.GroupBox2.Enabled:=true;end;//self.dtp1.DateTime:=now;self.dtp2.DateTime:=now;end;///////////////////////////单击DBGrid标题时排序///////////////////////procedureTfmOderform.dbgoTitleClick(Column:TColumn);vari:integer;beginifdtmd.qryofm.Activethenbeginfori:=1todbgo.Columns.Countdobegindbgo.Columns[i-1].Title.Font.Color:=clWindowText;//恢复所有标题字体为默认dbgo.Columns[i-1].Title.Font.Style:=[];end;ifdtmd.qryofm.Sort<>(Column.FieldName+'ASC')thenbegindtmd.qryofm.Sort:=Column.FieldName+'ASC';Column.Title.Font.Color:=clRed;//改变标题行字体为红色,表示当前的排序方式为升序Column.Title.Font.Style:=[fsBold];endelsebegindtmd.qryofm.Sort:=Column.FieldName+'DESC';Column.Title.Font.Color:=clBlue;//改变标题行字体为蓝色,表示当前的排序方式为降序Column.Title.Font.Style:=[fsBold];endendelseshowmessage('记录为空,不能排序!');end;end.2.3库存管理界面如图5.43:图5.4SEQ图5.4\*ARABIC3主要代码:procedureTfmMstorage.cbmDropDown(tet:string);vari,j:integer;lsql:string;beginwithdtmd.qrysdobeginlsql:='selectdistinct'+tet+'frommatestor';//查询唯一值tryClose;SQL.clear;SQL.Add(lsql);Open;fmMstorage.dbgd22.DataSource:=nil;fmMstorage.nvg23.DataSource:=nil;First;i:=RecordCount;forj:=0toi-1do//循环赋值beginifm=1thencno23.Items.Add(FieldByName('mno').AsString)elseifm=2thencno24.Items.Add(FieldByName('mno').AsString)elseifm=3thencnm22.Items.Add(FieldByName('mname').AsString)elseifm=4thencbly22.Items.Add(FieldByName('mlayer').AsString);Next;end;exceptshowmessage('数据库连接失败!请检查数据库服务是否正常!');end;end;end;procedureTfmMstorage.cno23DropDown(Sender:TObject);beginm:=1;self.cno23.Items.Clear;self.cbmDropDown('mno');end;procedureTfmMstorage.cno24DropDown(Sender:TObject);beginm:=2;self.cno24.Items.Clear;self.cbmDropDown('mno');end;procedureTfmMstorage.cnm22DropDown(Sender:TObject);beginm:=3;self.cnm22.Items.Clear;self.cbmDropDown('mname');end;procedureTfmMstorage.cbly22DropDown(Sender:TObject);beginm:=4;self.cbly22.Items.Clear;self.cbmDropDown('mlayer');end;//****************************查询//////////////////////////////////////////procedureTfmMstorage.searchClick(Sender:TObject);varssql,cdt:string;beginssql:='selectmnoas物料编号,mnameas物料名称,mlayeras层次,mtnumas库存总量,mvnumas可用量,mwnumas即将入库量,secnumas安全库存,invatas有效期至frommatestorwheremno<>'+''''+'''';ifcno23.Text<>''thencdt:='andmno>='+''''+trim(cno23.Text)+'''';ifcno24.Text<>''thencdt:=cdt+'andmno<='+''''+trim(cno24.Text)+'''';ifcnm22.Text<>''thencdt:=cdt+'andmname='+''''+trim(cnm22.Text)+'''';ifdatetostr(dtp22.Date)<>''thencdt:=cdt+'andinvat>='+''''+datetostr(dtp22.DateTime)+'''';ifdatetostr(dtp23.Date)<>''thencdt:=cdt+'andinvat<='+''''+datetostr(dtp23.DateTime)+'''';ifcbly22.Text<>''thencdt:=cdt+'andmlayer='+''''+trim(cbly22.Text)+'''';ssql:=ssql+cdt;withdtmd.qrysdobegintryClose;SQL.clear;SQL.Add(ssql);Open;fmMstorage.dbgd22.DataSource:=dtmd.dss;//动态指定数据感知组件的数据源fmMstorage.nvg23.DataSource:=dtmd.dss;exceptshowmessage('数据库连接失败!请检查数据库服务是否正常!');end;end;end;//******************************退出///////////////////////////////////////procedureTfmMstorage.exitClick(Sender:TObject);beginself.Close;end;//****************************是否允许编辑********************************procedureTfmMstorage.checkClick(Sender:TObject);beginiffmMstorage.check.Checkedthen//允许编辑beginfmMstorage.dbgd22.Options:=fmMstorage.dbgd22.Options-[dgRowSelect]+[dgediting];fmMstorage.nvg23.VisibleButtons:=[nbinsert,nbdelete,nbedit,nbpost,nbcancel,nbrefresh];endelse//不允许编辑beginfmMstorage.dbgd22.Options:=fmMstorage.dbgd22.Options+[dgRowSelect]-[dgediting];fmMstorage.nvg23.VisibleButtons:=[nbfirst,nbprior,nbnext,nblast];endend;//****************************创建时默认不允许编辑***************************procedureTfmMstorage.FormCreate(Sender:TObject);beginfmMstorage.dbgd22.Options:=fmMstorage.dbgd22.Options+[dgRowSelect]-[dgediting];fmMstorage.nvg23.VisibleButtons:=[nbfirst,nbprior,nbnext,nblast];end;procedureTfmMstorage.FormShow(Sender:TObject);beginiffmMain.sttb.Panels[0].Text=''thenbegin//游客不能操作数据库self.GroupBox1.Enabled:=false;self.GroupBox2.Enabled:=false;endelsebegin//用户可以操作数据库self.GroupBox1.Enabled:=true;self.GroupBox2.Enabled:=true;end;end;end.2.4物料需求分析界面如下图5.44:图5.4SEQ图5.4\*ARABIC4主要代码:procedureTfmDmdbreak.FormCreate(Sender:TObject);beginfmDmdbreak.dbgo.Options:=fmDmdbreak.dbgo.Options+[dgRowSelect]-[dgediting];fmDmdbreak.dbg2.Options:=fmDmdbreak.dbgo.Options+[dgRowSelect]-[dgediting];fmDmdbreak.dbno.VisibleButtons:=[nbfirst,nbprior,nbnext,nblast];fmDmdbreak.nvg2.VisibleButtons:=[nbfirst,nbprior,nbnext,nblast];end;//==============================显示窗体======================================procedureTfmDmdbreak.FormShow(Sender:TObject);beginiffmMain.sttb.Panels[0].Text=''thenbegin//游客不能操作数据库self.gpb1.Enabled:=false;self.gpb2.Enabled:=false;endelsebegin//用户可以操作数据库self.gpb2.Enabled:=true;self.gpb2.Enabled:=true;self.btninit.Enabled:=true;self.btnbk.Enabled:=false;self.btnnext.Enabled:=false;self.btnend.Enabled:=true;self.btnod.Enabled:=false;end;end;//---------------------------------------------------------------------------//===================================初始化==================================//---------------------------------------------------------------------------procedureTfmDmdbreak.btninitClick(Sender:TObject);varssql,cdt:string;i,mm:integer;dtime,dmno,dmname,dmlayer,dmadvant,dpreno,dprenum:string;dvnum,dwnum,dsnum,ddtnum,ddnetnum,dselfn,dbuyn:string;dmfinish:string;beginmm:=0;//查询层次,其实可以不用的b:=0;//初始化里的一个简单的判断,只用一个周期j:=0;//全局的层次记录,很重要fmDmdbreak.dbno.DataSource:=nil;fmDmdbreak.dbgo.DataSource:=nil;fmDmdbreak.nvg2.DataSource:=nil;fmDmdbreak.dbg2.DataSource:=nil;self.btninit.Enabled:=true;trybegin//==================数据库初始化,主要是临时表的初始化withdtmd.qryinitdobeginClose;SQL.clear;SQL.Add('deletefromtempinfo');ExecSQL;end;//===================借助视图,做0层次的订单分析======================//实际上,因为分析的sql语句太长超过255个字符才借助视图ssql:='select*frompinitvwwhere订单号<>'+''''+'''';ifdatetostr(dtpt.Date)<>''thencdt:='and需求日期<='+''''+datetostr(dtpt.DateTime)+'''';ssql:=ssql+cdt;withdtmd.qryinitdobeginClose;SQL.clear;SQL.Add(ssql);Open;self.btninit.Enabled:=false;self.rebtn.Enabled:=true;end;a:=dtmd.dsinit.DataSet.RecordCount;ifa=0then//不存在未分析的订单showmessage('没有未分解的订单,你不需要再分解了!呵呵!')elseifa>0then//存在未分析的订单,将执行下面的一大段代码begin//===================将分析结果放入临时表,已备下层分析==============ifdtmd.qryinit.Activethenbegindtmd.qryinit.First;beginfori:=0toa-1dobeginwithdtmd.qryrddobegin//首先取出各个要用的字段的值dtime:=dtmd.qryinit.fieldbyname('需求日期').AsString;dmno:=dtmd.qryinit.fieldbyname('产品编号').AsString;dmname:=dtmd.qryinit.fieldbyname('产品名称').AsString;dmlayer:=dtmd.qryinit.fieldbyname('层次').AsString;dmadvant:=dtmd.qryinit.fieldbyname('提前期').AsString;dpreno:=dtmd.qryinit.fieldbyname('上层编号').AsString;dprenum:=dtmd.qryinit.fieldbyname('上层需求').AsString;dmfinish:=dtmd.qryinit.fieldbyname('成品率').AsString;dvnum:=dtmd.qryinit.fieldbyname('可用库存').AsString;dwnum:=dtmd.qryinit.fieldbyname('将要入库量').AsString;dsnum:=dtmd.qryinit.fieldbyname('安全库存量').AsString;ddtnum:=dtmd.qryinit.fieldbyname('毛需求量').AsString;ddnetnum:=dtmd.qryinit.fieldbyname('净需求量').AsString;dselfn:=dtmd.qryinit.fieldbyname('自产量').AsString;dbuyn:=dtmd.qryinit.fieldbyname('外购量').AsString;dtmd.qryinit.Next;close;sql.clear;//插入临时表sql.add('insertintotempinfovalues('+''''+dtime+''''+','+''''+dmno+''''+','+''''+dmname+''''+','+''''+dmlayer+''''+','+''''+dmadvant+''''+','+''''+dpreno+''''+','+''''+dprenum+''''+','+''''+dmfinish+''''+','+''''+dvnum+''''+','+''''+dwnum+''''+','+''''+dsnum+''''+','+''''+ddtnum+''''+','+''''+ddnetnum+''''+','+''''+dselfn+''''+','+''''+dbuyn+''''+')');ExecSQL;endend;end;b:=1;end;//===============将刚刚完成的分析结果从临时表导出来显示==============ifb=1thenbeginwithdtmd.qryinitdobeginClose;SQL.clear;SQL.Add('selectdtimeas需求日期,dmnoas产品编号,dmnameas产品名称,dmlayeras层次,dmadvantas提前期,dprenoas上层编号,dprenumas上层需求,dmfinish,dvnum,dwnum,dsnum,ddtnum,ddnetnum,dselfnas自产量,dbuynas外购量fromtempinfowheredmlayer='+inttostr(mm));Open;fmDmdbreak.dbno.DataSource:=dtmd.dsinit;//动态指定数据感知组件的数据源fmDmdbreak.dbgo.DataSource:=dtmd.dsinit;self.gpb1.Caption:='第'+inttostr(j)+'层的状态---未订物料的订单';//self.btnbk.Enabled:=true;end;end;//===================================================================withdtmd.qrylyerdo//获取物料结构的最低层次beginclose;sql.Clear;sql.Add('selectmax(mlayer)asmlyfrommatestor');open;c:=dtmd.qrylyer.fieldbyname('mly').AsInteger;end;self.btninit.Enabled:=false;self.btnbk.Enabled:=true;self.btnend.Enabled:=true;self.btnod.Enabled:=true;showmessage('准备完成,现在可以开始分解了!呵呵!');end;end;exceptshowmessage('数据库失败!请检查数据库服务是否正常!');end;end;//********************************退出****************************************procedureTfmDmdbreak.exitClick(Sender:TObject);beginself.Close;end;//***********************上面表格是否可以编辑**********************************procedureTfmDmdbreak.edorClick(Sender:TObject);beginiffmDmdbreak.edor.Checkedthen//允许编辑beginfmDmdbreak.dbgo.Options:=fmDmdbreak.dbgo.Options-[dgRowSelect]+[dgediting];fmDmdbreak.dbno.VisibleButtons:=[nbinsert,nbdelete,nbedit,nbpost,nbcancel,nbrefresh];endelse//不允许编辑beginfmDmdbreak.dbgo.Options:=fmDmdbreak.dbgo.Options+[dgRowSelect]-[dgediting];fmDmdbreak.dbno.VisibleButtons:=[nbfirst,nbprior,nbnext,nblast];endend;procedureTfmDmdbreak.dbgoCellClick(Column:TColumn);begin{n:=self.dbgo.SelectedField.AsString;y:=self.dbgo.DataSource.DataSet.FieldValues['订单号'];sql:='select*from';}end;//============================================================================//********************************分解**************************************//============================================================================procedureTfmDmdbreak.btnbkClick(Sender:TObject);varssql:string;i:integer;dtime,dmno,dmname,dpreno:string;dmlayer,dmadvant,dprenum,dvnum,dwnum,dsnum,ddtnum,ddnetnum,dselfn,dbuyn:string;dmfinish:string;begin//==================首先借助视图,进行查询分析===============j:=j+1;ifj>cthenshowmessage('已经是最后一层了,不需要再分解了!')elseifnotdtmd.qryinit.Activethenshowmessage('请先初始化,在进行次操作!!')elsebeginssql:='select*frommbreakvwwhere层次='+inttostr(j);withdtmd.qrybkdobegintryClose;SQL.clear;SQL.Add(ssql);Open;exceptshowmessage('数据库连接失败!请检查数据库服务是否正常!');end;end;//==================然后将结果存入临时表====================ifdtmd.qrybk.Activethentrya:=dtmd.dsbk.DataSet.RecordCount;dtmd.qrybk.First;beginfori:=0toa-1dobeginwithdtmd.qryrddobegindtime:=dtmd.qrybk.fieldbyname('需求日期').AsString;dmno:=dtmd.qrybk.fieldbyname('产品编号').AsString;dmname:=dtmd.qrybk.fieldbyname('产品名称').AsString;dmlayer:=dtmd.qrybk.fieldbyname('层次').AsString;dmadvant:=dtmd.qrybk.fieldbyname('提前期').AsString;dpreno:=dtmd.qrybk.fieldbyname('上层编号').AsString;dprenum:=dtmd.qrybk.fieldbyname('上层需求').AsString;dmfinish:=dtmd.qrybk.fieldbyname('成品率').AsString;dvnum:=dtmd.qrybk.fieldbyname('可用库存').AsString;dwnum:=dtmd.qrybk.fieldbyname('将要入库量').AsString;dsnum:=dtmd.qrybk.fieldbyname('安全库存量').AsString;ddtnum:=dtmd.qrybk.fieldbyname('毛需求量').AsString;ddnetnum:=dtmd.qrybk.fieldbyname('净需求').AsString;dselfn:=dtmd.qrybk.fieldbyname('自产').AsString;dbuyn:=dtmd.qrybk.fieldbyname('外购').AsString;dtmd.qrybk.Next;close;sql.clear;sql.add('insertintotempinfovalues('+''''+dtime+''''+','+''''+dmno+''''+','+''''+dmname+''''+','+''''+dmlayer+''''+','+''''+dmadvant+''''+','+''''+dpreno+''''+','+''''+dprenum+''''+','+''''+dmfinish+''''+','+''''+dvnum+''''+','+''''+dwnum+''''+','+''''+dsnum+''''+','+''''+ddtnum+''''+','+''''+ddnetnum+''''+','+''''+dselfn+''''+','+''''+dbuyn+''''+')');ExecSQL;endend;end;exceptend;//================最后再将结果显示出来,并且可以编辑==================withdtmd.qrybkdobegintryssql:='selectdtimeas需求日期,dmno,dmname,dmlayeras层次,dmadvantas提前期,d
本文档为【智能决策技术报告】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
小利
人民教育工作者
格式:doc
大小:1MB
软件:Word
页数:0
分类:企业经营
上传时间:2021-07-11
浏览量:0