unit U_CLXX_Sub; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, cxCalendar, cxDropDownEdit, ComCtrls, ToolWin, cxGridLevel, cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses, cxControls, cxGridCustomView, cxGrid, cxGridCustomPopupMenu, cxGridPopupMenu, ADODB, DBClient, cxButtonEdit, cxTextEdit, ExtCtrls, StdCtrls, BtnEdit; type TfrmCLXX_Sub = class(TForm) ToolBar1: TToolBar; TBSave: TToolButton; TBClose: TToolButton; DataSource3: TDataSource; CDS_Sub: TClientDataSet; ADOQueryCmd: TADOQuery; ADOQueryMain: TADOQuery; ADOQueryTemp: TADOQuery; cxGridPopupMenu2: TcxGridPopupMenu; ToolButton1: TToolButton; ToolButton2: TToolButton; ADOQuery1: TADOQuery; ADOQuery2: TADOQuery; cxGrid2: TcxGrid; Tv1: TcxGridDBTableView; v1DJDate: TcxGridDBColumn; v1CRType: TcxGridDBColumn; v1FactoryName: TcxGridDBColumn; v1CLName: TcxGridDBColumn; v1CLXNo: TcxGridDBColumn; v1JPSpec: TcxGridDBColumn; v1CheHao: TcxGridDBColumn; v1CLNote: TcxGridDBColumn; cxGrid2Level1: TcxGridLevel; v1CPNo: TcxGridDBColumn; procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure TBCloseClick(Sender: TObject); procedure FormShow(Sender: TObject); procedure TBSaveClick(Sender: TObject); procedure v1Column3PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure v1Column14PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure v2Column1PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure v1Column5PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure v1Column16PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure v1Column13PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure v2Column6PropertiesEditValueChanged(Sender: TObject); procedure v1PricePropertiesEditValueChanged(Sender: TObject); procedure QtyChange(Sender: TObject); procedure ToolButton1Click(Sender: TObject); procedure ToolButton2Click(Sender: TObject); procedure v2CPFLQtyPropertiesEditValueChanged(Sender: TObject); procedure v1CLSpecPropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure v1SJNamePropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure v1CPNoPropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure v1CheHaoPropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure v1CRTypePropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure v1FactoryNamePropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure v1CLNamePropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure v1CLXNoPropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure v2CPNoPropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure v1JPSpecPropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); private { Private declarations } function SaveCKData():Boolean; procedure YLCKData(); public { Public declarations } FBCId,canshu3:String; end; var frmCLXX_Sub: TfrmCLXX_Sub; implementation uses U_DataLink,U_RTFun,U_ClothContractListHZCX,U_ZDYHelp, U_ZdyAttachGYS,U_ProductOrderListSel, U_ZdyAttachCP,U_CLManage; {$R *.dfm} procedure TfrmCLXX_Sub.YLCKData(); var FMaxNO:string; begin with ADOQuery2 do begin close; sql.Clear; sql.Add('select A.*'); sql.Add(',Price=(select Sum(B.Money)/Sum(B.Qty) from CK_SXPB_CR B '); sql.add('where B.YLName=A.PLName and B.CRFlag=''入库'' and isnull(B.CKName,'''')=''原料'''); sql.Add(' and B.CRTime<='''+formatdatetime('yyyy-MM-dd',CDS_Sub.fieldbyname('CRTime').AsDateTime)+''')'); SQL.Add(' from JYOrder_Sub A '); sql.Add('where Mainid='''+trim(CDS_Sub.fieldbyname('Mainid').AsString)+''''); open; end; with ADOQuery2 do begin first; while not eof do begin with ADOQueryTemp do begin close; sql.Clear; sql.Add('select * from CK_SXPB_CR '); sql.Add('where CPID='''+trim(CDS_Sub.fieldbyname('CPID').AsString)+''' '); sql.Add('and isnull(CKName,'''')=''原料'' and CRFlag=''出库'''); open; end; with ADOQueryTemp do begin if IsEmpty then begin append; if GetLSNo(ADOQuery1,FMaxNO,'CK','CK_SXPB_CR',3,1)=False then begin Application.MessageBox('取最大号失败!','提示',0); Exit; end; FieldByName('SPID').Value:=Trim(FMaxNO); FieldByName('filler').Value:=Trim(DName); end else begin edit; end; FieldByName('CRFlag').Value:='出库'; FieldByName('CKName').Value:='原料'; FieldByName('CRTime').Value:=CDS_Sub.fieldbyname('CRTime').AsDateTime; FieldByName('CRType').Value:='领用出库'; FieldByName('ConNO').Value:=Trim(CDS_Sub.fieldbyname('ConNO').AsString); FieldByName('FactoryName').Value:=Trim(CDS_Sub.fieldbyname('CustomerNoName').AsString); FieldByName('OrderNo').Value:=Trim(CDS_Sub.fieldbyname('OrderNo').AsString); FieldByName('CPID').Value:=Trim(CDS_Sub.fieldbyname('CPID').AsString); FieldByName('ConSubid').Value:=Trim(CDS_Sub.fieldbyname('ConSubid').AsString); FieldByName('OrdMainid').Value:=Trim(CDS_Sub.fieldbyname('Mainid').AsString); FieldByName('YLName').Value:=Trim(ADOQuery2.fieldbyname('PLName').AsString); FieldByName('CRQtyFlag').Value:=-1; FieldByName('Qty').Value:=ADOQuery2.fieldbyname('OrderQty').AsFloat*CDS_Sub.fieldbyname('CPFLQty').AsFloat; FieldByName('QtyUnit').Value:=Trim(ADOQuery2.fieldbyname('OrderUnit').AsString); FieldByName('Price').Value:=ADOQuery2.fieldbyname('Price').AsFloat; FieldByName('Money').Value:=ADOQuery2.fieldbyname('Price').AsFloat*ADOQuery2.fieldbyname('OrderQty').AsFloat*CDS_Sub.fieldbyname('CPFLQty').AsFloat; post; end; Next; end; end; end; procedure TfrmCLXX_Sub.FormClose(Sender: TObject; var Action: TCloseAction); begin Action:=caFree; end; function TfrmCLXX_Sub.SaveCKData():Boolean; var FCRID,Maxno,FFSPID:string; begin try ADOQueryCmd.Connection.BeginTrans; with CDS_Sub do begin first; while not eof do begin if Trim(fieldbyname('CLID').AsString)='' then begin if GetLSNo(ADOQueryCmd,Maxno,'CL','CLXX_Main',3,1)=False then begin Result:=False; ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('取车辆编号失败!','提示',0); Exit; end; end else begin Maxno:=Trim(fieldbyname('CLID').AsString); end; with ADOQueryCmd do begin close; sql.Clear; sql.Add('select * from CLXX_Main '); sql.Add('where CLID='''+trim(MaxNo)+''''); open; end; with ADOQueryCmd do begin if IsEmpty then begin Append; end else begin Edit; end; FieldByName('CLID').Value:=Trim(MaxNo); RTSetSaveDataCDS(ADOQueryCmd,Tv1,CDS_Sub,'CLXX_Main',2); //FieldByName('LCQty').Value:=CDS_Sub.fieldbyname('LCQty').AsFloat; //FieldByName('YLiang').Value:=CDS_Sub.fieldbyname('YLiang').AsFloat; Post; end; Next; end; end; ADOQueryCmd.Connection.CommitTrans; Result:=True; except; Result:=False; ADOQueryCmd.Connection.RollbackTrans; Application.MessageBox('保存异常!','提示',0); end; end; procedure TfrmCLXX_Sub.TBCloseClick(Sender: TObject); begin WriteCxGrid('车辆登记FM3',Tv1,'车辆仓库'); Close; end; procedure TfrmCLXX_Sub.FormShow(Sender: TObject); var fsj:String; begin ReadCxGrid('车辆登记FM3',Tv1,'车辆仓库'); with ADOQueryTemp do begin Close; sql.Clear; sql.Add(' select A.* '); sql.Add(' from CLXX_Main A'); sql.Add(' where CLID='''+Trim(FBCId)+''''); Open; end; SCreateCDS20(ADOQueryTemp,CDS_Sub); SInitCDSData20(ADOQueryTemp,CDS_Sub); end; procedure TfrmCLXX_Sub.TBSaveClick(Sender: TObject); begin if CDS_Sub.IsEmpty then Exit; if CDS_Sub.Locate('CLXNo','',[]) then begin application.MessageBox('车辆型号不能为空','提示'); exit; end; if CDS_Sub.Locate('CLXNo',NULL,[]) then begin application.MessageBox('车辆型号不能为空','提示'); exit; end; ToolBar1.SetFocus; if SaveCKData() then begin Application.MessageBox('保存成功!','提示',0); ModalResult:=1; end; end; procedure TfrmCLXX_Sub.v1Column3PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); begin try frmZDYHelp:=TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag:='QtyUnit'; flagname:='数量单位'; if ShowModal=1 then begin with Self.CDS_Sub do begin Edit; FieldByName('QtyUnit').Value:=Trim(frmZDYHelp.ClientDataSet1.fieldbyname('ZdyName').AsString); end; end; end; finally frmZDYHelp.Free; end; end; procedure TfrmCLXX_Sub.v1Column14PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); begin try frmZdyAttachGYS:=TfrmZdyAttachGYS.Create(Application); with frmZdyAttachGYS do begin if ShowModal=1 then begin with Self.CDS_Sub do begin edit; FieldByName('FactoryNo').Value:=Trim(frmZdyAttachGYS.CDS_HZ.fieldbyname('ZdyCode').AsString) ; FieldByName('FactoryName').Value:=Trim(frmZdyAttachGYS.CDS_HZ.fieldbyname('ZdyName').AsString); //Post; end; end; end; finally frmZdyAttachGYS.Free; end; end; procedure TfrmCLXX_Sub.v2Column1PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); begin if Trim(canshu3)='' then begin try frmZDYHelp:=TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag:='PBName'; flagname:='坯布名称'; if ShowModal=1 then begin with Self.CDS_Sub do begin Edit; FieldByName('SPName').Value:=Trim(frmZDYHelp.ClientDataSet1.fieldbyname('ZdyName').AsString); end; end; end; finally frmZDYHelp.Free; end; end else begin try frmZdyAttachCP:=TfrmZdyAttachCP.Create(Application); with frmZdyAttachCP do begin if ShowModal=1 then begin with Self.CDS_Sub do begin Edit; FieldByName('SPName').Value:=Trim(frmZdyAttachCP.CDS_HZ.fieldbyname('ZdyName').AsString); FieldByName('SPSpec').Value:=Trim(frmZdyAttachCP.CDS_HZ.fieldbyname('DEFstr1').AsString); FieldByName('SPCF').Value:=Trim(frmZdyAttachCP.CDS_HZ.fieldbyname('DEFstr2').AsString); FieldByName('SPMF').Value:=Trim(frmZdyAttachCP.CDS_HZ.fieldbyname('DEFstr7').AsString); FieldByName('SPKZ').Value:=Trim(frmZdyAttachCP.CDS_HZ.fieldbyname('DEFstr8').AsString); FieldByName('SPKZ').Value:=Trim(frmZdyAttachCP.CDS_HZ.fieldbyname('DEFstr8').AsString); FieldByName('SPCode').Value:=Trim(frmZdyAttachCP.CDS_HZ.fieldbyname('ZdyCode').AsString); FieldByName('CPID').Value:=Trim(frmZdyAttachCP.CDS_HZ.fieldbyname('ATID').AsString); end; end; end; finally frmZdyAttachCP.Free; end; end; end; procedure TfrmCLXX_Sub.v1Column5PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); begin try frmZDYHelp:=TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag:='PLName'; flagname:='原料名称'; if ShowModal=1 then begin with Self.CDS_Sub do begin Edit; FieldByName('YLName').Value:=Trim(frmZDYHelp.ClientDataSet1.fieldbyname('ZdyName').AsString); end; end; end; finally frmZDYHelp.Free; end; end; procedure TfrmCLXX_Sub.v1Column16PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); begin try frmZdyAttachGYS:=TfrmZdyAttachGYS.Create(Application); with frmZdyAttachGYS do begin if ShowModal=1 then begin with Self.CDS_Sub do begin edit; FieldByName('FromFactoryNo').Value:=Trim(frmZdyAttachGYS.CDS_HZ.fieldbyname('ZdyCode').AsString) ; FieldByName('FromFactoryName').Value:=Trim(frmZdyAttachGYS.CDS_HZ.fieldbyname('ZdyName').AsString); //Post; end; end; end; finally frmZdyAttachGYS.Free; end; end; procedure TfrmCLXX_Sub.v1Column13PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); begin try frmProductOrderListSel:=TfrmProductOrderListSel.Create(Application); with frmProductOrderListSel do begin if ShowModal=1 then begin with Self.CDS_Sub do begin Edit; FieldByName('ORDMainIdRK').Value:=Trim(frmProductOrderListSel.Order_Main.fieldbyname('MainId').AsString); FieldByName('ORDSubIdRK').Value:=Trim(frmProductOrderListSel.Order_Main.fieldbyname('SubId').AsString); FieldByName('OrderNo').Value:=Trim(frmProductOrderListSel.Order_Main.fieldbyname('OrderNo').AsString); end; end; end; finally frmProductOrderListSel.Free; end; end; procedure TfrmCLXX_Sub.v2Column6PropertiesEditValueChanged( Sender: TObject); var mavlue:string; begin mavlue:=TcxTextEdit(Sender).EditingText; if mavlue='' then begin mavlue:='0'; end; with CDS_Sub do begin edit; fieldbyname('Qty').Value:=trim(Mavlue); end; with CDS_Sub do begin edit; fieldbyname('Money').Value:=fieldbyname('Qty').AsFloat*fieldbyname('Price').AsFloat; end; end; procedure TfrmCLXX_Sub.v1PricePropertiesEditValueChanged( Sender: TObject); var mavlue:string; begin mavlue:=TcxTextEdit(Sender).EditingText; if mavlue='' then begin mavlue:='0'; end; with CDS_Sub do begin edit; fieldbyname('Price').Value:=trim(Mavlue); end; with CDS_Sub do begin edit; fieldbyname('CPMoney').Value:=fieldbyname('Qty').AsFloat*fieldbyname('Price').AsFloat; end; end; procedure TfrmCLXX_Sub.QtyChange(Sender: TObject); var i:double; begin end; procedure TfrmCLXX_Sub.ToolButton1Click(Sender: TObject); begin with CDS_Sub do begin append; FieldByName('DJDate').Value:=SGetServerDate10(ADOQueryTemp); post; end; end; procedure TfrmCLXX_Sub.ToolButton2Click(Sender: TObject); begin if CDS_Sub.IsEmpty then exit; CDS_Sub.Delete; end; procedure TfrmCLXX_Sub.v2CPFLQtyPropertiesEditValueChanged( Sender: TObject); var mvalue:string; begin mvalue:=Trim(TcxTextEdit(Sender).EditingText); if mvalue='' then mvalue:='0'; with CDS_Sub do begin Edit; FieldByName('CPFLQty').Value:=mvalue; FieldByName('CPMoney').Value:=fieldbyname('Price').AsFloat*strtofloat(mvalue); end; end; procedure TfrmCLXX_Sub.v1CLSpecPropertiesButtonClick( Sender: TObject; AButtonIndex: Integer); begin try frmCLManage:=TfrmCLManage.Create(Application); with frmCLManage do begin if ShowModal=1 then begin with Self.CDS_Sub do begin Edit; FieldByName('CLSpec').Value:=Trim(CDS_Main.fieldbyname('CLXNo').AsString); FieldByName('JPSpec').Value:=Trim(CDS_Main.fieldbyname('JPSpec').AsString); FieldByName('CPNo').Value:=Trim(CDS_Main.fieldbyname('CPNo').AsString); FieldByName('CheHao').Value:=Trim(CDS_Main.fieldbyname('CheHao').AsString); end; end; end; finally frmCLManage.Free; end; end; procedure TfrmCLXX_Sub.v1SJNamePropertiesButtonClick( Sender: TObject; AButtonIndex: Integer); begin try frmZDYHelp:=TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag:='SJName'; flagname:='司机'; if ShowModal=1 then begin with Self.CDS_Sub do begin Edit; FieldByName('SJName').Value:=Trim(frmZDYHelp.ClientDataSet1.fieldbyname('ZdyName').AsString); end; end; end; finally frmZDYHelp.Free; end; end; procedure TfrmCLXX_Sub.v1CPNoPropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); begin try frmZDYHelp:=TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag:='CPNo'; flagname:='车牌号码'; if ShowModal=1 then begin with Self.CDS_Sub do begin Edit; FieldByName('CPNo').Value:=Trim(frmZDYHelp.ClientDataSet1.fieldbyname('ZdyName').AsString); end; end; end; finally frmZDYHelp.Free; end; end; procedure TfrmCLXX_Sub.v1CheHaoPropertiesButtonClick( Sender: TObject; AButtonIndex: Integer); begin try frmZDYHelp:=TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag:='CheHao'; flagname:='车号'; if ShowModal=1 then begin with Self.CDS_Sub do begin Edit; FieldByName('CheHao').Value:=Trim(frmZDYHelp.ClientDataSet1.fieldbyname('ZdyName').AsString); end; end; end; finally frmZDYHelp.Free; end; end; procedure TfrmCLXX_Sub.v1CRTypePropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); begin try frmZDYHelp:=TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag:='CRType'; flagname:='来源类型'; if ShowModal=1 then begin with Self.CDS_Sub do begin Edit; FieldByName('CRType').Value:=Trim(frmZDYHelp.ClientDataSet1.fieldbyname('ZdyName').AsString); end; end; end; finally frmZDYHelp.Free; end; end; procedure TfrmCLXX_Sub.v1FactoryNamePropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); begin try frmZDYHelp:=TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag:='FactoryName'; flagname:='制造商'; if ShowModal=1 then begin with Self.CDS_Sub do begin Edit; FieldByName('FactoryName').Value:=Trim(frmZDYHelp.ClientDataSet1.fieldbyname('ZdyName').AsString); end; end; end; finally frmZDYHelp.Free; end; end; procedure TfrmCLXX_Sub.v1CLNamePropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); begin try frmZDYHelp:=TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag:='CLName'; flagname:='车辆名称'; if ShowModal=1 then begin with Self.CDS_Sub do begin Edit; FieldByName('CLName').Value:=Trim(frmZDYHelp.ClientDataSet1.fieldbyname('ZdyName').AsString); end; end; end; finally frmZDYHelp.Free; end; end; procedure TfrmCLXX_Sub.v1CLXNoPropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); begin try frmZDYHelp:=TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag:='CLXNo'; flagname:='车辆型号'; if ShowModal=1 then begin with Self.CDS_Sub do begin Edit; FieldByName('CLXNo').Value:=Trim(frmZDYHelp.ClientDataSet1.fieldbyname('ZdyName').AsString); end; end; end; finally frmZDYHelp.Free; end; end; procedure TfrmCLXX_Sub.v2CPNoPropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); begin try frmZDYHelp:=TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag:='CPNo'; flagname:='车牌号'; if ShowModal=1 then begin with Self.CDS_Sub do begin Edit; FieldByName('CPNo').Value:=Trim(frmZDYHelp.ClientDataSet1.fieldbyname('ZdyName').AsString); end; end; end; finally frmZDYHelp.Free; end; end; procedure TfrmCLXX_Sub.v1JPSpecPropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); begin try frmZDYHelp:=TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag:='JPSpec'; flagname:='级配'; if ShowModal=1 then begin with Self.CDS_Sub do begin Edit; FieldByName('JPSpec').Value:=Trim(frmZDYHelp.ClientDataSet1.fieldbyname('ZdyName').AsString); end; end; end; finally frmZDYHelp.Free; end; end; end.