unit U_ClothContractInPutSXMX; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, cxGridLevel, cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses, cxControls, cxGridCustomView, cxGrid, cxMemo, cxRichEdit, ComCtrls, cxContainer, cxTextEdit, cxMaskEdit, cxButtonEdit, StdCtrls, ToolWin, DBClient, ADODB, ExtCtrls, BtnEdit, cxDropDownEdit, cxGridCustomPopupMenu, cxGridPopupMenu, cxCalendar, cxSplitter, cxCheckBox; type TfrmClothContractInPutSXMX = class(TForm) ToolBar1: TToolBar; TBSave: TToolButton; TBClose: TToolButton; ScrollBox1: TScrollBox; Label1: TLabel; Label4: TLabel; DLYDate: TDateTimePicker; Label5: TLabel; ToolBar2: TToolBar; ToolButton1: TToolButton; ToolButton2: TToolButton; cxGrid1: TcxGrid; Tv1: TcxGridDBTableView; v1PRTSpec: TcxGridDBColumn; cxGrid1Level1: TcxGridLevel; v1Price: TcxGridDBColumn; v1ClothUnit: TcxGridDBColumn; ADOTemp: TADOQuery; ADOCmd: TADOQuery; DataSource1: TDataSource; Order_Sub: TClientDataSet; DataSource2: TDataSource; ADOZDY: TADOQuery; CDS_ZDY: TClientDataSet; ADOQuery1: TADOQuery; v1Column1: TcxGridDBColumn; Label2: TLabel; QDTime: TDateTimePicker; Label3: TLabel; v1Column2: TcxGridDBColumn; Label13: TLabel; FactoryNoName: TBtnEditA; CompanyName: TBtnEditA; ConTypeOther: TComboBox; Label14: TLabel; v1Column5: TcxGridDBColumn; v1Column6: TcxGridDBColumn; v1Column7: TcxGridDBColumn; v1Column9: TcxGridDBColumn; cxGridPopupMenu1: TcxGridPopupMenu; Label7: TLabel; CGNo: TEdit; Label11: TLabel; Label12: TLabel; Label6: TLabel; Label8: TLabel; JieSuanNote: TBtnEditA; PRTZhiLiang: TBtnEditA; QtyNote: TBtnEditA; PayMent: TBtnEditA; Label9: TLabel; v1MaChi: TcxGridDBColumn; DDDate: TDateTimePicker; v1PBMoney: TcxGridDBColumn; ConNO: TBtnEditA; Panel1: TPanel; cxGrid2: TcxGrid; Tv2: TcxGridDBTableView; TV2PSXH: TcxGridDBColumn; TV2PSName: TcxGridDBColumn; v2PSSH: TcxGridDBColumn; TV2PSNote: TcxGridDBColumn; cxGridLevel2: TcxGridLevel; cxGrid3: TcxGrid; Tv3: TcxGridDBTableView; cxGridDBColumn3: TcxGridDBColumn; v3Column1: TcxGridDBColumn; v3Column8: TcxGridDBColumn; Tv3Column1: TcxGridDBColumn; v3Column2: TcxGridDBColumn; v3Column3: TcxGridDBColumn; v3Column5: TcxGridDBColumn; v3Column6: TcxGridDBColumn; v3Column7: TcxGridDBColumn; v3TOGYSName: TcxGridDBColumn; v3Column4: TcxGridDBColumn; cxGridLevel3: TcxGridLevel; cxSplitter1: TcxSplitter; Order_GX: TClientDataSet; DataSource3: TDataSource; DataSource4: TDataSource; CDS_JGC: TClientDataSet; Note: TMemo; Label10: TLabel; FJNote: TMemo; Label15: TLabel; SQType: TComboBox; v1IFHS: TcxGridDBColumn; Label16: TLabel; JGGX: TBtnEditA; v1C_Color: TcxGridDBColumn; v1C_SeNo: TcxGridDBColumn; procedure TBCloseClick(Sender: TObject); procedure FormShow(Sender: TObject); procedure TBSaveClick(Sender: TObject); procedure ToolButton1Click(Sender: TObject); procedure ToolButton2Click(Sender: TObject); procedure CompanyNameBtnClick(Sender: TObject); procedure JieSuanNoteBtnClick(Sender: TObject); procedure PRTZhiLiangBtnClick(Sender: TObject); procedure QtyNoteBtnClick(Sender: TObject); procedure PayMentBtnClick(Sender: TObject); procedure Label13DblClick(Sender: TObject); procedure v1Column3PropertiesEditValueChanged(Sender: TObject); procedure v1PRTSpecPropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure v1Column6PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure v1Column7PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure v1ClothUnitPropertiesEditValueChanged(Sender: TObject); procedure Tv2FocusedRecordChanged(Sender: TcxCustomGridTableView; APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; ANewItemRecordFocusingChanged: Boolean); procedure FJNoteDblClick(Sender: TObject); procedure JGGXBtnClick(Sender: TObject); procedure v1C_ColorPropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure v1C_ColorEngPropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); private FXS:Integer; procedure InitData(); procedure ZDYHelp(FButn:TcxButtonEdit;LType:string); function SaveData():Boolean; { Private declarations } public PState,PCopyInt,EditInt:Integer; FMainId,FConNo,FConType,canshu1,FCanshu2:String; { Public declarations } end; var frmClothContractInPutSXMX: TfrmClothContractInPutSXMX; implementation uses U_DataLink,U_ZDYHelp,U_RTFun,U_ZDYHelpSel; {$R *.dfm} procedure TfrmClothContractInPutSXMX.TBCloseClick(Sender: TObject); begin Close; WriteCxGrid('采购加工合同录入123',Tv1,'采购加工合同'); end; procedure TfrmClothContractInPutSXMX.InitData(); begin with ADOQuery1 do begin Close; SQL.Clear; sql.Add(' select *,'); sql.add(' OrdMainid=(select C.Mainid from JYOrder_Main C where C.OrderNo=A.ConNO)'); sql.add(' from Contract_Main A inner join Contract_Sub B on A.MainId=B.MainId'); sql.Add(' where A.MainId='''+Trim(FMainId)+''''); Open; end; SCreateCDS20(ADOQuery1,Order_Sub); SInitCDSData20(ADOQuery1,Order_Sub); if PCopyInt=1 then begin FMainId:=''; with Order_Sub do begin First; while not Eof do begin Edit; FieldByName('SubId').Value:=''; Post; Next; end; end; end; if ADOQuery1.IsEmpty=false then SCSHDataNew(ADOQuery1,ScrollBox1,0); FactoryNoName.TxtCode:=Trim(ADOQuery1.FieldByName('FactoryNo').AsString); if PState=0 then begin SQType.ItemIndex:=SQType.Items.IndexOf(FCanshu2); QDTime.DateTime:=SGetServerDate(ADOTemp); DLYDate.DateTime:=QDTime.DateTime; QDTime.Checked:=True; DLYDate.Checked:=False; DDDate.DateTime:=QDTime.DateTime; end; with ADOCmd do begin Close; sql.Clear; sql.Add('select * from JYOrder_Process where MainId='''+Trim(ADOQuery1.fieldbyname('OrdMainid').AsString)+''''); Open; end; SCreateCDS20(ADOCmd,Order_GX); SInitCDSData20(ADOCmd,Order_GX); end; procedure TfrmClothContractInPutSXMX.ZDYHelp(FButn:TcxButtonEdit;LType:string); begin end; procedure TfrmClothContractInPutSXMX.FormShow(Sender: TObject); var FSJ:String; begin ReadCxGrid('采购加工合同录入123',Tv1,'采购加工合同'); InitData(); if FCanshu2='辅料' then begin Label7.Caption:='辅料合同号'; Panel1.Visible:=false; end else begin Label7.Caption:='坯布合同号'; Panel1.Visible:=true; end; if FCanshu2='加工' then begin JGGX.Visible:=true; Label16.Visible:=true; end else begin JGGX.Visible:=False; Label16.Visible:=False; JGGX.Text:='采购'; end; if PCopyInt=1 then begin FMainId:=''; FConNo:=''; ConNo.Text:=''; with Order_Sub do begin First; while not Eof do begin Edit; FieldByName('SubId').Value:=''; FieldByName('ConPrice').Value:=Null; FieldByName('Price').Value:=Null; Post; Next; end; end; end; if PCopyInt=1 then begin PState:=0; end; if Trim(canshu1)<>'高权限' then begin if PState=1 then begin v1Price.Options.Editing:=False; end; if EditInt=9 then begin v1Price.Options.Editing:=True; end; end; end; function TfrmClothContractInPutSXMX.SaveData():Boolean; var maxno,maxSubNo:String; begin try Result:=False; ADOCmd.Connection.BeginTrans; //保存主表 if Trim(FMainId)='' then begin if GetLSNo(ADOCmd,maxno,'CM','Contract_Main',3,1)=False then begin ADOCmd.Connection.RollbackTrans; Application.MessageBox('取合同流水号失败!','提示',0); Exit; end; end else begin maxno:=Trim(FMainId); end; with ADOCmd do begin Close; sql.Clear; SQL.Add('select * from Contract_Main where MainId='''+Trim(FMainId)+''''); Open; end; with ADOCmd do begin if Trim(FMainId)='' then begin Append; end else begin Edit; end; FieldByName('MainId').Value:=Trim(maxno); FieldByName('JGGX').Value:=Trim(JGGX.Text); RTSetsavedata(ADOCmd,'Contract_Main',ScrollBox1,0); FieldByName('FactoryNo').Value:=Trim(FactoryNoName.TxtCode); if Trim(FMainId)='' then begin FieldByName('Filler').Value:=Trim(DName); end else begin FieldByName('Editer').Value:=Trim(DName); FieldByName('EditTime').Value:=SGetServerDateTime(ADOTemp); end; Post; end; with ADOTemp do begin Close; sql.Clear; sql.Add('select * from Contract_Main where CGNo='''+Trim(CGNo.Text)+''''); Open; end; if ADOTemp.RecordCount>1 then begin ADOCmd.Connection.RollbackTrans; Application.MessageBox('采购号重复!','提示',0); Exit; end; ///保存子表 with Order_Sub do begin First; while not Eof do begin if Trim(Order_Sub.fieldbyname('SubId').AsString)='' then begin if GetLSNo(ADOCmd,maxSubNo,'CS','Contract_Sub',2,1)=False then begin ADOCmd.Connection.RollbackTrans; Application.MessageBox('生成合同明细表流水号异常!','提示',0); exit; end; end else begin maxSubNo:=Trim(Order_Sub.fieldbyname('SubId').AsString); end; with ADOCmd do begin Close; SQL.Clear; sql.Add('select * from Contract_Sub where '); sql.Add('SubId='''+Trim(maxSubNo)+''''); Open; end; with ADOCmd do begin if Trim(Order_Sub.fieldbyname('SubId').AsString)='' then Append else Edit; FieldByName('MainId').Value:=Trim(maxno); FieldByName('SubId').Value:=Trim(maxSubNo); RTSetSaveDataCDS(ADOCmd,Tv1,Order_Sub,'Contract_Sub',0); Post; end; Order_Sub.Edit; Order_Sub.FieldByName('SubId').Value:=Trim(maxSubNo); Next; end; end; ADOCmd.Connection.CommitTrans; FMainId:=Trim(maxno); Result:=True; except Result:=False; ADOCmd.Connection.RollbackTrans; Application.MessageBox('保存失败!','提示',0); end; end; procedure TfrmClothContractInPutSXMX.TBSaveClick(Sender: TObject); begin DLYDate.SetFocus; if Trim(ConNo.Text)='' then begin Application.MessageBox('订单号不能为空!','提示',0); Exit; end; if Trim(CGNo.Text)='' then begin Application.MessageBox('合同单号不能为空!','提示',0); Exit; end; if Trim(JGGX.Text)='' then begin Application.MessageBox('加工工序不能为空!','提示',0); Exit; end; if Trim(FactoryNoName.Text)='' then begin Application.MessageBox('供应商不能为空!','提示',0); Exit; end; if Order_Sub.IsEmpty then begin Application.MessageBox('明细不能为空!','提示',0); exit; end; if Order_Sub.Locate('C_Qty',null,[]) then begin Application.MessageBox('数量不能为空!','提示',0); Exit; end; if Order_Sub.Locate('C_Unit',null,[]) then begin Application.MessageBox('数量单位不能为空!','提示',0); Exit; end; if Order_Sub.Locate('C_Spec',null,[]) then begin Application.MessageBox('规格型号不能为空!','提示',0); Exit; end; if SQType.Text='' then begin Application.MessageBox('申请类型不能为空!','提示',0); Exit; end; if PState=0 then begin if Application.MessageBox('确定要保存数据吗?数据保存后不能修改!','提示',32+4)<>IDYES then Exit; end; if SaveData() then begin Application.MessageBox('保存成功!','提示',0); ModalResult:=1; end; end; procedure TfrmClothContractInPutSXMX.ToolButton1Click(Sender: TObject); begin CopyAddRow(Tv1,Order_Sub); with Order_Sub do begin Edit; FieldByName('SubId').Value:=''; Post; end; end; procedure TfrmClothContractInPutSXMX.ToolButton2Click(Sender: TObject); begin if Order_Sub.IsEmpty then Exit; if Trim(Order_Sub.fieldbyname('SubId').AsString)<>'' then begin with ADOTemp do begin Close; sql.Clear; sql.Add('select * from CK_SXPB_CR where CGSubId='''+Trim(Order_Sub.fieldbyname('SubId').AsString)+''''); Open; end; if ADOTemp.IsEmpty=false then begin Application.MessageBox('已经录入码单不能删除数据!','提示',0); Exit; end; if Application.MessageBox('确定要删除数据吗?','提示',32+4)<>IDYES then Exit; with ADOCmd do begin Close; sql.Clear; sql.Add('delete Contract_Sub where SubId='''+Trim(Order_Sub.fieldbyname('SubId').AsString)+''''); ExecSQL; end; end; Order_Sub.Delete; end; procedure TfrmClothContractInPutSXMX.CompanyNameBtnClick(Sender: TObject); begin try frmZDYHelp:=TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag:='OrdDefStr2'; flagname:='公司抬头'; if ShowModal=1 then begin CompanyName.Text:=Trim(ClientDataSet1.fieldbyname('ZdyName').AsString); end; end; finally frmZDYHelp.Free; end; end; procedure TfrmClothContractInPutSXMX.JieSuanNoteBtnClick(Sender: TObject); begin try frmZDYHelp:=TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag:='JieSuanNote'; flagname:='结算说明'; if ShowModal=1 then begin JieSuanNote.Text:=Trim(ClientDataSet1.fieldbyname('ZdyName').AsString); end; end; finally frmZDYHelp.Free; end; end; procedure TfrmClothContractInPutSXMX.PRTZhiLiangBtnClick(Sender: TObject); begin try frmZDYHelp:=TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag:='PRTZhiLiang'; flagname:='产品质量'; if ShowModal=1 then begin PRTZhiLiang.Text:=Trim(ClientDataSet1.fieldbyname('ZdyName').AsString); end; end; finally frmZDYHelp.Free; end; end; procedure TfrmClothContractInPutSXMX.QtyNoteBtnClick(Sender: TObject); begin try frmZDYHelp:=TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag:='QtyNote'; flagname:='数量说明'; if ShowModal=1 then begin QtyNote.Text:=Trim(ClientDataSet1.fieldbyname('ZdyName').AsString); end; end; finally frmZDYHelp.Free; end; end; procedure TfrmClothContractInPutSXMX.PayMentBtnClick(Sender: TObject); begin try frmZDYHelp:=TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag:='PayMentZW'; flagname:='付款方式'; if ShowModal=1 then begin PayMent.Text:=Trim(ClientDataSet1.fieldbyname('ZdyName').AsString); end; end; finally frmZDYHelp.Free; end; end; procedure TfrmClothContractInPutSXMX.Label13DblClick(Sender: TObject); begin try frmZDYHelpSel:=TfrmZDYHelpSel.Create(Application); with frmZDYHelpSel do begin flag:='ConMainNote'; flagname:='合同备注'; frmZDYHelpSel.Align:=alClient; if ShowModal=1 then begin with ClientDataSet1 do begin First; while not Eof do begin if FieldByName('SSel').AsBoolean=True then begin if Trim(Note.Text)='' then Note.Text:=Trim(ClientDataSet1.fieldbyname('ZdyName').AsString) else Note.Text:=Note.Text+#13+Trim(ClientDataSet1.fieldbyname('ZdyName').AsString); end; Next; end; end; //JiaoHuoNote.Text:=Trim(ClientDataSet1.fieldbyname('ZdyName').AsString); end; end; finally frmZDYHelpSel.Free; end; end; procedure TfrmClothContractInPutSXMX.v1Column3PropertiesEditValueChanged( Sender: TObject); var mvalue:String; begin {mvalue:=TcxTextEdit(Sender).EditingText; with Order_Sub do begin Edit; FieldByName('C_Code').Value:=Trim(mvalue); Post; end; with ADOTemp do begin Close; sql.Clear; sql.Add('select * from JYOrder_Main where OrderNo='''+Trim(ConNo.Text)+''''); Open; end; if ADOTemp.IsEmpty then begin with ADOTemp do begin Close; sql.Clear; sql.Add('select Top 1* from JYOrder_Main where RTrim(MPRTCode)+RTrim(MPRTGY)='''+Trim(mvalue)+''''); sql.Add(' order by FillTime desc'); Open; end; if ADOTemp.IsEmpty=False then begin with Order_Sub do begin Edit; FieldByName('JGGY').Value:=Trim(ADOTemp.fieldbyname('MPRTGYHZ').AsString); FieldByName('MFQty').Value:=Trim(ADOTemp.fieldbyname('MPRTMF').AsString); FieldByName('KZQty').Value:=Trim(ADOTemp.fieldbyname('MPRTKZ').AsString); FieldByName('C_CF').Value:=Trim(ADOTemp.fieldbyname('MPRTSpec').AsString); FieldByName('C_Note').Value:=Trim(ADOTemp.fieldbyname('MPRTCF').AsString); Post; end; end; end;} end; procedure TfrmClothContractInPutSXMX.v1PRTSpecPropertiesButtonClick( Sender: TObject; AButtonIndex: Integer); begin try frmZDYHelp:=TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag:='C_Spec'; flagname:='产品规格'; if ShowModal=1 then begin with Order_Sub do begin edit; fieldbyname('C_Spec').asstring:=Trim(ClientDataSet1.fieldbyname('ZdyName').AsString); end; end; end; finally frmZDYHelp.Free; end; end; procedure TfrmClothContractInPutSXMX.v1Column6PropertiesButtonClick( Sender: TObject; AButtonIndex: Integer); begin try frmZDYHelp:=TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag:='MFQty'; flagname:='门幅'; if ShowModal=1 then begin with Order_Sub do begin edit; fieldbyname('MFQty').asstring:=Trim(ClientDataSet1.fieldbyname('ZdyName').AsString); end; end; end; finally frmZDYHelp.Free; end; end; procedure TfrmClothContractInPutSXMX.v1Column7PropertiesButtonClick( Sender: TObject; AButtonIndex: Integer); begin try frmZDYHelp:=TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag:='KZQty'; flagname:='克重'; if ShowModal=1 then begin with Order_Sub do begin edit; fieldbyname('KZQty').asstring:=Trim(ClientDataSet1.fieldbyname('ZdyName').AsString); end; end; end; finally frmZDYHelp.Free; end; end; procedure TfrmClothContractInPutSXMX.v1ClothUnitPropertiesEditValueChanged( Sender: TObject); var Fieldname:string; begin Fieldname:=Tv1.Controller.FocusedColumn.DataBinding.FilterFieldName; with Order_Sub do begin edit; fieldbyname(Fieldname).Value:=TcxTextEdit(Sender).EditingText; FieldByName('PBMoney').Value:=strtofloat(format('%.2f',[Fieldbyname('C_Qty').AsFloat*Fieldbyname('Price').AsFloat ])); end; Tv1.Controller.EditingController.ShowEdit(); end; procedure TfrmClothContractInPutSXMX.Tv2FocusedRecordChanged( Sender: TcxCustomGridTableView; APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord; ANewItemRecordFocusingChanged: Boolean); begin with ADOCmd do begin Close; sql.Clear; sql.Add('select A.*,B.PRTHX,PRTColor=isnull(B.PRTColorNo,'''')+'' ''+isnull(B.PRTColorEng,'''')+'' ''+isnull(B.PRTColor,''''), '); sql.Add(' B.PRTOrderQty,B.OrderUnit from JYOrder_PCS_Sub A'); sql.Add(' left join JYOrder_Sub B on A.SubId=B.SubId'); sql.Add('where A.PSID='''+Trim(Order_GX.fieldbyname('PSID').AsString)+''''); Open; end; SCreateCDS20(ADOCmd,CDS_JGC); SInitCDSData20(ADOCmd,CDS_JGC); end; procedure TfrmClothContractInPutSXMX.FJNoteDblClick(Sender: TObject); var i:Integer; begin try frmZDYHelpSel:=TfrmZDYHelpSel.Create(Application); with frmZDYHelpSel do begin flag:='FJNote'; flagname:='附加条款'; frmZDYHelpSel.Align:=alClient; if ShowModal=1 then begin with ClientDataSet1 do begin First; i:=1; while not Eof do begin if FieldByName('SSel').AsBoolean=True then begin if Trim(FJNote.Text)='' then FJNote.Text:=IntToStr(i)+'.'+Trim(ClientDataSet1.fieldbyname('ZdyName').AsString) else FJNote.Text:=FJNote.Text+#13+IntToStr(i)+'.'+Trim(ClientDataSet1.fieldbyname('ZdyName').AsString); i:=i+1; end; Next; end; end; end; end; finally frmZDYHelpSel.Free; end; end; procedure TfrmClothContractInPutSXMX.JGGXBtnClick(Sender: TObject); begin try frmZDYHelp:=TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag:='FromGX'; flagname:='加工工序'; if ShowModal=1 then begin JGGX.Text:=Trim(ClientDataSet1.fieldbyname('ZdyName').AsString); end; end; finally frmZDYHelp.Free; end; end; procedure TfrmClothContractInPutSXMX.v1C_ColorPropertiesButtonClick( Sender: TObject; AButtonIndex: Integer); begin try frmZDYHelp:=TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag:='C_Color'; flagname:='颜色'; if ShowModal=1 then begin with Order_Sub do begin edit; fieldbyname('C_Color').value:=Trim(ClientDataSet1.fieldbyname('ZdyName').AsString); end; end; end; finally frmZDYHelp.Free; end; end; procedure TfrmClothContractInPutSXMX.v1C_ColorEngPropertiesButtonClick( Sender: TObject; AButtonIndex: Integer); begin try frmZDYHelp:=TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag:='C_ColorEng'; flagname:='颜色(英文)'; if ShowModal=1 then begin with Order_Sub do begin edit; fieldbyname('C_ColorEng').value:=Trim(ClientDataSet1.fieldbyname('ZdyName').AsString); end; end; end; finally frmZDYHelp.Free; end; end; end.