unit U_MLManage_ZHLR; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, ADODB, DBClient, cxGridLevel, cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses, cxControls, cxGridCustomView, cxGrid, ComCtrls, ToolWin, cxGridCustomPopupMenu, cxGridPopupMenu, cxContainer, cxTextEdit, cxMaskEdit, cxDropDownEdit, cxCalendar, StdCtrls, ExtCtrls, BtnEdit, cxButtonEdit; type TfrmMLManage_ZHLR = class(TForm) ToolBar1: TToolBar; ToolButton1: TToolButton; TBClose: TToolButton; CDS_Sub: TClientDataSet; ADOQueryMain: TADOQuery; DataSource2: TDataSource; ADOQueryCmd: TADOQuery; ADOQueryTemp: TADOQuery; cxGridPopupMenu1: TcxGridPopupMenu; Panel1: TPanel; GSNo: TEdit; Label1: TLabel; cxGridPopupMenu2: TcxGridPopupMenu; Order_GX: TClientDataSet; DataSource1: TDataSource; Panel3: TPanel; MLDLNo: TBtnEditA; ML_Col: TClientDataSet; DataSource3: TDataSource; cxGridPopupMenu3: TcxGridPopupMenu; Label3: TLabel; MLNo: TEdit; Label4: TLabel; Label6: TLabel; Ord_HX: TClientDataSet; DataSource4: TDataSource; cxGridPopupMenu4: TcxGridPopupMenu; Panel2: TPanel; cxGrid1: TcxGrid; TV1: TcxGridDBTableView; V1CengJi: TcxGridDBColumn; V1BPCode: TcxGridDBColumn; V1BPName: TcxGridDBColumn; V1ZhengFan: TcxGridDBColumn; cxGrid1Level1: TcxGridLevel; Label5: TLabel; GXName: TBtnEditA; GXNo: TBtnEditA; MLName: TEdit; Label2: TLabel; MLMF: TEdit; MLKZ: TEdit; DLHXK: TBtnEditA; Label7: TLabel; XHXName: TBtnEditA; XHXGYSName: TEdit; XHXNo: TBtnEditA; ToolBar3: TToolBar; ToolButton2: TToolButton; TMLAdd: TToolButton; ToWFBADD: TToolButton; ToMHADD: TToolButton; ToolButton3: TToolButton; Panel6: TPanel; Label8: TLabel; Panel4: TPanel; cxGrid4: TcxGrid; TV4: TcxGridDBTableView; v2ZDYCode: TcxGridDBColumn; v2Column6: TcxGridDBColumn; v2Column12: TcxGridDBColumn; v2Column1: TcxGridDBColumn; v2Column5: TcxGridDBColumn; v2defstr3: TcxGridDBColumn; v2Column3: TcxGridDBColumn; v2Column4: TcxGridDBColumn; cxGridLevel3: TcxGridLevel; Panel5: TPanel; Label9: TLabel; procedure FormShow(Sender: TObject); procedure TBCloseClick(Sender: TObject); procedure ToolButton1Click(Sender: TObject); procedure ToolButton2Click(Sender: TObject); procedure ToolButton3Click(Sender: TObject); procedure TAddClick(Sender: TObject); procedure MLDLNoBtnClick(Sender: TObject); procedure TMLAddClick(Sender: TObject); procedure ToWFBADDClick(Sender: TObject); procedure ToMHADDClick(Sender: TObject); procedure GXNameBtnClick(Sender: TObject); procedure XHXNameBtnClick(Sender: TObject); procedure DLHXKBtnClick(Sender: TObject); procedure XHXNoChange(Sender: TObject); procedure V1CengJiPropertiesEditValueChanged(Sender: TObject); procedure V1ZhengFanPropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); private Fint:Integer; procedure InitSubGrid(); function SaveData():Boolean; procedure BHCZhu(); { Private declarations } public FCYID,FCYCode,FCPID,FCPNO,FBPID,FHXBPID:String; { Public declarations } end; var frmMLManage_ZHLR: TfrmMLManage_ZHLR; implementation uses U_DataLink,U_Fun,U_BPZdy_LR,U_BPZdy_SH,U_MLMange_ADDCX, U_BPZdy_HXK, U_ZDYHelp,U_BPZdy_LRPB; {$R *.dfm} procedure TfrmMLManage_ZHLR.InitSubGrid(); begin try ADOQueryMain.DisableControls; with ADOQueryMain do begin Close; SQL.Clear; SQL.Add('select * from ML_Manage where MLID='''+trim(FCYID)+''''); Open; end; if ADOQueryMain.IsEmpty=false then begin SCSHDataNew(ADOQueryMain,Panel1,2); SCSHDataNew(ADOQueryMain,Panel2,2); FBPID:=Trim(ADOQueryMain.FieldByName('MBPID').Value); end; with ADOQueryMain do begin Close; SQL.Clear; sql.Add(' select A.*,isnull(B.BPCode,C.MLNo) BPCode,isnull(B.BPName,C.MLName) BPName'); sql.Add(' ,isnull(B.BPMF,C.MLMF) BPMF,isnull(B.BPKZ,C.MLKZ) BPKZ'); sql.Add(',B.BPJS,B.BPWS,B.BPMiDu,B.BPUnit'); SQL.Add(' from ML_Manage_PB A left join BP_ZDY B on B.BPID=A.BPID '); sql.Add(' left join ML_Manage C on C.MLID=A.BPID'); sql.Add(' where A.MLID='''+Trim(FCYID)+''''); Open; end; SCreateCDS20(ADOQueryMain,CDS_Sub); SInitCDSData20(ADOQueryMain,CDS_Sub); with ADOQueryMain do begin Close; SQL.Clear; sql.Add(' select A.*,B.* from ML_Manage_GX A inner join BP_ZDY B on B.BPID=A.BPID '); sql.Add('where MLID='''+Trim(FCYID)+''''); Open; end; SCreateCDS20(ADOQueryMain,Order_GX); SInitCDSData20(ADOQueryMain,Order_GX); with ADOQueryMain do begin Close; SQL.Clear; sql.Add('select * from BP_ZDY_Sub '); sql.Add('where BPCode='''+Trim(MLDLNo.Text)+''' and BPflag=''SHK'''); Open; end; SCreateCDS20(ADOQueryMain,ML_Col); SInitCDSData20(ADOQueryMain,ML_Col); with ADOQueryCmd do begin Close; SQL.Clear; sql.Add('select A.* '); sql.Add(',IFTP=(case when isnull((select Top 1 B.CYID from XD_File B where B.CYID=A.BPSubID),'''')='''' then '''' else ''是'' end)'); sql.Add(' from BP_ZDY_Sub A '); sql.Add(' where A.BPCode='''+trim(DLHXK.Text)+''''); open; end; SCreateCDS20(ADOQueryCmd,Ord_HX); SInitCDSData20(ADOQueryCmd,Ord_HX); finally ADOQueryMain.EnableControls; end; end; procedure TfrmMLManage_ZHLR.FormShow(Sender: TObject); var fsj:String; begin ReadCxGrid('面料管理11',Tv1,'样品管理'); //ReadCxGrid('面料管理31',Tv3,'样品管理'); InitSubGrid(); end; procedure TfrmMLManage_ZHLR.TBCloseClick(Sender: TObject); begin WriteCxGrid('面料管理11',Tv1,'样品管理'); //WriteCxGrid('面料管理31',Tv3,'样品管理'); Close; end; function TfrmMLManage_ZHLR.SaveData():Boolean; var maxId,maxno:String; begin try ADOQueryCmd.Connection.BeginTrans; if FCYID='' then begin if GetLSNo(ADOQueryCmd,maxno,'ML','ML_Manage',3,1)=False then begin ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('取最大号失败!','提示',0); Exit; end; end else begin maxno:=Trim(FCYID); end; //GSNo.Text:=Trim(maxno); with ADOQueryCmd do begin Close; sql.Clear; SQL.Add('select * from ML_Manage where MLID='''+Trim(FCYID)+''''); Open; end; with ADOQueryCmd do begin if isempty then begin Append; end else begin Edit; end; FieldByName('MLID').Value:=Trim(maxno); //FieldByName('GSNo').Value:=Trim(maxno); FieldByName('MBPID').Value:=Trim(FBPID); FieldByName('MLType').Value:='组合'; SSetsaveSqlNew(ADOQueryCmd,'ML_Manage',panel1,2); SSetsaveSqlNew(ADOQueryCmd,'ML_Manage',panel2,2); Post; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('select * from ML_Manage where GSNo='''+Trim(GSNo.Text)+''''); Open; end; if ADOQueryCmd.RecordCount>1 then begin ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('公司编号重复!','提示',0); Exit; end; with ADOQueryCmd do begin Close; sql.Clear; sql.Add('select * from ML_Manage where MLNo='''+Trim(MLNo.Text)+''''); Open; end; if ADOQueryCmd.RecordCount>1 then begin ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('客户编号重复!','提示',0); Exit; end; FCYID:=Trim(maxno); CDS_Sub.DisableControls; with CDS_Sub do begin First; while not Eof do begin if Trim(CDS_Sub.fieldbyname('MPID').AsString)='' then begin if GetLSNo(ADOQueryCmd,maxId,'MP','ML_Manage_PB',4,1)=False then begin Result:=False; ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('区最大号失败!','提示',0); Exit; end; end else begin maxId:=Trim(CDS_Sub.fieldbyname('MPID').AsString); end; with ADOQueryCmd do begin Close; SQL.Clear; sql.Add('select * from ML_Manage_PB where MPID='''+Trim(maxId)+''''); Open; end; with ADOQueryCmd do begin if isempty then begin Append; end else begin Edit; end; FieldByName('MPID').Value:=Trim(maxId); FieldByName('MLID').Value:=Trim(FCYID); FieldByName('BPID').Value:=Trim(CDS_Sub.fieldbyname('BPID').AsString); FieldByName('CengJi').Value:=CDS_Sub.fieldbyname('CengJi').Value; FieldByName('ZhengFan').Value:=Trim(CDS_Sub.fieldbyname('ZhengFan').AsString); Post; end; Next; end; end; CDS_Sub.EnableControls; Order_GX.DisableControls; with Order_GX do begin First; while not Eof do begin if Trim(Order_GX.fieldbyname('GXID').AsString)='' then begin if GetLSNo(ADOQueryCmd,maxId,'GX','ML_Manage_GX',4,1)=False then begin Result:=False; ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('区最大号失败!','提示',0); Exit; end; end else begin maxId:=Trim(Order_GX.fieldbyname('GXID').AsString); end; with ADOQueryCmd do begin Close; SQL.Clear; sql.Add('select * from ML_Manage_GX where GXID='''+Trim(maxId)+''''); Open; end; with ADOQueryCmd do begin if isempty then begin Append; end else begin Edit; end; FieldByName('GXID').Value:=Trim(maxId); FieldByName('MLID').Value:=Trim(FCYID); fieldbyname('XHNo').Value:=Order_GX.fieldbyname('XHNo').Value; FieldByName('BPID').Value:=Trim(Order_GX.fieldbyname('BPID').AsString); Post; end; Next; end; end; Order_GX.EnableControls; ADOQueryCmd.Connection.CommitTrans; Result:=True; except; Result:=True; ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('保存失败!','提示',0); end; end; procedure TfrmMLManage_ZHLR.ToolButton1Click(Sender: TObject); var FBH:string; begin {if Trim(MLNo.Text)='' then begin Application.MessageBox('编号不能为空!','提示',0); Exit; end; } ToolBar1.SetFocus; if CDS_Sub.Locate('CengJi',NULL,[])=true then begin Application.MessageBox('层级不能为空','提示'); exit; end; {if CDS_Sub.Locate('ZhengFan','',[])=true then begin Application.MessageBox('正反不能为空','提示'); exit; end; if CDS_Sub.Locate('ZhengFan',NULL,[])=true then begin Application.MessageBox('正反不能为空','提示'); exit; end;} if Trim(MLName.Text)='' then begin Application.MessageBox('品名不能为空!','提示',0); Exit; end; //BHCZhu(); if SaveData() then begin Application.MessageBox('保存成功!','提示',0); ModalResult:=1; end; end; procedure TfrmMLManage_ZHLR.BHCZhu(); var FBH,FCP,FLX:string; begin CDS_Sub.DisableControls; with CDS_Sub do begin First; while not eof do begin if FieldByName('CengJi').AsInteger=1 then begin MLNo.Text:=Trim(GXNo.text)+trim(XHXNo.text)+(fieldbyname('BPCode').AsString); end; if FBH='' then FBH:=trim(CDS_Sub.fieldbyname('BPCode').AsString) else FBH:=FBH+'+'+trim(CDS_Sub.fieldbyname('BPCode').AsString); Next; end; end; CDS_Sub.EnableControls; GSNo.Text:=Trim(FBH)+Trim(GXNo.text)+trim(XHXNo.text); end; procedure TfrmMLManage_ZHLR.ToolButton2Click(Sender: TObject); begin frmBPZDY_LRPB:=TfrmBPZDY_LRPB.create(self); with frmBPZDY_LRPB do begin flag:='PBName'; flagName:='坯布'; ViewFlag:=true; if ShowModal=1 then begin with CDS_Sub do begin append; FieldByName('CengJi').Value:=CDS_Sub.RecordCount+1; FieldByName('BPID').Value:=Trim(ClientDataSet1.fieldbyname('BPID').AsString); FieldByName('BPName').Value:=Trim(ClientDataSet1.fieldbyname('BPName').AsString); FieldByName('BPCode').Value:=Trim(ClientDataSet1.fieldbyname('BPCode').AsString); post; end; BHCZhu(); end; free; end; end; procedure TfrmMLManage_ZHLR.ToolButton3Click(Sender: TObject); begin if CDS_Sub.IsEmpty then exit; if CDS_Sub.fieldbyname('MPID').AsString<>'' then begin if Application.MessageBox('确定要删除数据吗','提示',1)=2 then exit; with ADOQueryCmd do begin close; sql.Clear; sql.Add('delete from ML_Manage_PB where MPID='''+trim(CDS_Sub.fieldbyname('MPID').AsString)+''''); ExecSQL; end; end; CDS_Sub.Delete; end; procedure TfrmMLManage_ZHLR.TAddClick(Sender: TObject); begin frmBPZDY_LR:=TfrmBPZDY_LR.create(self); with frmBPZDY_LR do begin flag:='GXName'; flagName:='工序'; ViewFlag:=true; V1BPMF1.Visible:=false; V1BPKZ.Visible:=false; V1BPJS.Visible:=false; //V1BPWS.Visible:=false; v1BPMiDu.Caption:='序号'; ToolBar2.Visible:=false; cxGrid2.Visible:=false; if ShowModal=1 then begin with Order_GX do begin append; FieldByName('XHNo').Value:=Trim(ClientDataSet1.fieldbyname('BPMiDu').AsString); FieldByName('BPCode').Value:=Trim(ClientDataSet1.fieldbyname('BPCode').AsString); FieldByName('BPName').Value:=Trim(ClientDataSet1.fieldbyname('BPName').AsString); FieldByName('BPID').Value:=Trim(ClientDataSet1.fieldbyname('BPID').AsString); post; end; end; free; end; end; procedure TfrmMLManage_ZHLR.MLDLNoBtnClick(Sender: TObject); begin frmBPZDY_SH:=TfrmBPZDY_SH.Create(self); with frmBPZDY_SH do begin flag:='SHK'; flagName:='色号库'; ViewFlag:=true; if ShowModal=1 then begin MLDLNo.Text:=Trim(ClientDataSet1.fieldbyname('BPCode').AsString); FBPID:=Trim(ClientDataSet1.fieldbyname('BPID').AsString); ML_GYS.DisableControls; with ML_GYS do begin first; while not eof do begin with ML_Col do begin Append; FieldByName('BPSeHao').Value:=Trim(ML_GYS.fieldbyname('BPSeHao').AsString); FieldByName('BPCol').Value:=Trim(ML_GYS.fieldbyname('BPCol').AsString); FieldByName('BPColEng').Value:=Trim(ML_GYS.fieldbyname('BPColEng').AsString); FieldByName('BPNote').Value:=Trim(ML_GYS.fieldbyname('BPNote').AsString); post; end; Next; end; end; ML_GYS.EnableControls; end; free; end; end; procedure TfrmMLManage_ZHLR.TMLAddClick(Sender: TObject); begin frmMLMange_ADDCX:=TfrmMLMange_ADDCX.Create(self); with frmMLMange_ADDCX do begin formid:='1'; if ShowModal=1 then begin with CDS_Sub do begin Append; FieldByName('CengJi').Value:=CDS_Sub.RecordCount+1; FieldByName('BPID').Value:=Trim(CDS_Main.fieldbyname('MLID').AsString); FieldByName('BPCode').Value:=CDS_Main.fieldbyname('MLNo').AsString; FieldByName('BPName').Value:=CDS_Main.fieldbyname('MLName').AsString; post; end; BHCZhu(); end; free; end; end; procedure TfrmMLManage_ZHLR.ToWFBADDClick(Sender: TObject); begin frmBPZDY_LR:=TfrmBPZDY_LR.Create(self); with frmBPZDY_LR do begin flag:='WFBDY'; flagName:='无纺布'; V1BPMF1.Visible:=false; V1BPKZ.Visible:=false; V1BPJS.Caption:='工艺成份'; //V1BPWS.Visible:=false; v1BPMiDu.Visible:=false; cxGrid3.Visible:=false; ViewFlag:=true; if ShowModal=1 then begin with CDS_Sub do begin Append; FieldByName('CengJi').Value:=CDS_Sub.RecordCount+1; FieldByName('BPID').Value:=Trim(ClientDataSet1.fieldbyname('BPID').AsString); FieldByName('BPName').Value:=Trim(ClientDataSet1.fieldbyname('BPName').AsString); FieldByName('BPCode').Value:=Trim(ClientDataSet1.fieldbyname('BPCode').AsString); post; end; BHCZhu(); end; free; end; end; procedure TfrmMLManage_ZHLR.ToMHADDClick(Sender: TObject); begin frmBPZDY_LR:=TfrmBPZDY_LR.Create(self); with frmBPZDY_LR do begin flag:='MHName'; flagName:='棉花'; V1BPJS.Caption:='工艺成份'; //V1BPWS.Visible:=false; v1BPMiDu.Visible:=false; cxGrid3.Visible:=false; ViewFlag:=true; if ShowModal=1 then begin with CDS_Sub do begin Append; FieldByName('CengJi').Value:=CDS_Sub.RecordCount+1; FieldByName('BPID').Value:=Trim(ClientDataSet1.fieldbyname('BPID').AsString); FieldByName('BPName').Value:=Trim(ClientDataSet1.fieldbyname('BPName').AsString); FieldByName('BPCode').Value:=Trim(ClientDataSet1.fieldbyname('BPCode').AsString); post; end; BHCZhu(); end; free; end; end; procedure TfrmMLManage_ZHLR.GXNameBtnClick(Sender: TObject); var FGYLX,FGSNo:string; begin frmBPZDY_LR:=TfrmBPZDY_LR.create(self); with frmBPZDY_LR do begin flag:='GXName'; flagName:='工序'; ViewFlag:=true; V1BPMF1.Caption:='明细编号'; V1BPKZ.Caption:='明细名称'; V1BPJS.Visible:=false; v1BPMiDu.Visible:=false; Panel2.Visible:=false; frmBPZDY_LR.FGYName:='绣花'; cxGrid3.Align:=alClient; if ShowModal=1 then begin GXNo.text:=trim(ML_GX.fieldbyname('BPMF').AsString); GXName.text:=trim(ML_GX.fieldbyname('BPKZ').AsString); MLDLNo.Text:=DASH.Text; BHCZhu(); end; free; end; end; procedure TfrmMLManage_ZHLR.XHXNameBtnClick(Sender: TObject); begin frmBPZDY_LR:=TfrmBPZDY_LR.Create(self); with frmBPZDY_LR do begin flag:='XXName'; flagName:='绣线'; V1BPJS.Visible:=false; //V1BPWS.Visible:=false; v1BPMiDu.Caption:='颜色'; V1BPMF1.Caption:='供应商'; V1BPKZ.Visible:=false; Panel2.Visible:=false; cxGrid3.Visible:=false; cxGrid1.Align:=alClient; ViewFlag:=true; if ShowModal=1 then begin XHXNo.Text:=Trim(ClientDataSet1.fieldbyname('BPCode').AsString); XHXName.Text:=Trim(ClientDataSet1.fieldbyname('BPName').AsString); XHXGYSName.Text:=Trim(ClientDataSet1.fieldbyname('BPMF').AsString); end; free; end; end; procedure TfrmMLManage_ZHLR.DLHXKBtnClick(Sender: TObject); begin frmBPZDY_HXK:=TfrmBPZDY_HXK.Create(self); with frmBPZDY_HXK do begin flag:='HXK'; flagName:='花型库'; ViewFlag:=true; if ShowModal=1 then begin DLHXK.Text:=Trim(ClientDataSet1.fieldbyname('BPCode').AsString); FHXBPID:=Trim(ClientDataSet1.fieldbyname('BPID').AsString); with ADOQueryCmd do begin Close; SQL.Clear; sql.Add('select A.*,B.* from BP_ZDY_Sub A '); Sql.Add('inner join KH_Zdy_Attachment B on A.HXATID=B.ATID and B.Type=''CPHX'''); sql.Add(' where A.BPCode='''+trim(DLHXK.Text)+''''); open; end; SCreateCDS20(ADOQueryCmd,Ord_HX); SInitCDSData20(ADOQueryCmd,Ord_HX); end; free; end; end; procedure TfrmMLManage_ZHLR.XHXNoChange(Sender: TObject); begin BHCZhu(); end; procedure TfrmMLManage_ZHLR.V1CengJiPropertiesEditValueChanged( Sender: TObject); var mavlue:string; begin mavlue:=TcxTextEdit(Sender).EditingText; if mavlue='' then mavlue:='0'; with CDS_Sub do begin edit; FieldByName('CengJi').Value:=mavlue; end; BHCZhu(); end; procedure TfrmMLManage_ZHLR.V1ZhengFanPropertiesButtonClick( Sender: TObject; AButtonIndex: Integer); begin frmZDYHelp:=TfrmZDYHelp.Create(self); with frmZDYHelp do begin flag:='zhengfan'; flagname:='正反'; if ShowModal=1 then begin with CDS_Sub do begin edit; FieldByName('Zhengfan').Value:=Trim(ClientDataSet1.fieldbyname('ZdyName').AsString); end; end; free; end; end; end.