unit U_OrderInPutZP; 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, cxCalendar, cxGridBandedTableView, cxGridDBBandedTableView, Menus, RM_Common, RM_Class, RM_e_Xls, RM_GridReport, RM_System, RM_Dataset; type TfrmOrderInPutZP = class(TForm) ToolBar1: TToolBar; TBSave: TToolButton; TBClose: TToolButton; ScrollBox1: TScrollBox; Label1: TLabel; Label2: TLabel; Label3: TLabel; OrderNo: TEdit; OrderDate: TDateTimePicker; Label5: TLabel; Label6: TLabel; Label8: TLabel; ADOTemp: TADOQuery; ADOCmd: TADOQuery; DataSourceZ: TDataSource; Order_SubZ: TClientDataSet; DataSource2: TDataSource; ADOZDY: TADOQuery; CDS_ZDY: TClientDataSet; WFBCodeName: TcxButtonEdit; SCXName: TcxButtonEdit; WJGName: TcxButtonEdit; ADOQuery1: TADOQuery; Label12: TLabel; CustomNoName: TcxButtonEdit; Note: TRichEdit; Label13: TLabel; ArrivalPortName: TcxButtonEdit; Label10: TLabel; WFBHW: TEdit; Label14: TLabel; WFBFK: TEdit; Label15: TLabel; Label16: TLabel; OrdQty: TEdit; OrdUnit: TComboBox; Label17: TLabel; OrdPrice: TEdit; Label19: TLabel; Label20: TLabel; Label21: TLabel; ETADate: TDateTimePicker; Label22: TLabel; ETDDate: TDateTimePicker; Label23: TLabel; ZGDate: TDateTimePicker; Label24: TLabel; BegRKDate: TDateTimePicker; Label25: TLabel; BegSCDate: TDateTimePicker; Day1: TEdit; Label26: TLabel; Label27: TLabel; Label28: TLabel; Day2: TEdit; Label29: TLabel; Label30: TLabel; Label31: TLabel; Day3: TEdit; Label18: TLabel; Label32: TLabel; Label33: TLabel; Label34: TLabel; MJKZX: TEdit; Label35: TLabel; Label36: TLabel; MJKZD: TEdit; Label37: TLabel; XJKZX: TEdit; Label38: TLabel; Label39: TLabel; XJKZD: TEdit; Label4: TLabel; Label7: TLabel; cxGrid4: TcxGrid; TVDB: TcxGridDBTableView; cxGridDBColumn1: TcxGridDBColumn; cxGridLevel3: TcxGridLevel; VDBColumn1: TcxGridDBColumn; VDBColumn2: TcxGridDBColumn; PopupMenu1: TPopupMenu; N1: TMenuItem; N2: TMenuItem; DataSource3: TDataSource; CDS_DB: TClientDataSet; Order_SubF: TClientDataSet; DataSourceF: TDataSource; Order_SubQ: TClientDataSet; DataSourceQ: TDataSource; ScrollBox2: TScrollBox; cxGrid3: TcxGrid; Tv3: TcxGridDBBandedTableView; v3Column1: TcxGridDBBandedColumn; v3Column2: TcxGridDBBandedColumn; v3Column3: TcxGridDBBandedColumn; v3Column4: TcxGridDBBandedColumn; v3Column5: TcxGridDBBandedColumn; cxGridLevel2: TcxGridLevel; cxGrid2: TcxGrid; Tv2: TcxGridDBBandedTableView; v2Column1: TcxGridDBBandedColumn; v2Column2: TcxGridDBBandedColumn; v2Column3: TcxGridDBBandedColumn; v2Column4: TcxGridDBBandedColumn; v2Column5: TcxGridDBBandedColumn; cxGridLevel1: TcxGridLevel; cxGrid1: TcxGrid; Tv1: TcxGridDBBandedTableView; v1Column1: TcxGridDBBandedColumn; v1Column2: TcxGridDBBandedColumn; v1Column3: TcxGridDBBandedColumn; v1Column4: TcxGridDBBandedColumn; v1Column5: TcxGridDBBandedColumn; v1Column6: TcxGridDBBandedColumn; cxGrid1Level1: TcxGridLevel; ToolBar2: TToolBar; ToolButton1: TToolButton; ToolButton2: TToolButton; TBPrint: TToolButton; v1Column7: TcxGridDBBandedColumn; v2Column6: TcxGridDBBandedColumn; v3Column6: TcxGridDBBandedColumn; v1Column8: TcxGridDBBandedColumn; v2Column7: TcxGridDBBandedColumn; v3Column7: TcxGridDBBandedColumn; v1Column9: TcxGridDBBandedColumn; v2Column8: TcxGridDBBandedColumn; v3Column8: TcxGridDBBandedColumn; ADOQueryQG: TADOQuery; RMDB_Main: TRMDBDataSet; RM2: TRMGridReport; RMXLSExport1: TRMXLSExport; Label40: TLabel; WFBBZQty1: TEdit; WFBBZUnit1: TcxButtonEdit; Label41: TLabel; WFBBZQty2: TEdit; WFBBZUnit2: TcxButtonEdit; Label42: TLabel; WFBBZQty3: TEdit; WFBBZUnit3: TcxButtonEdit; Label43: TLabel; Label44: TLabel; WFBFK2: TEdit; WFBFK1: TEdit; Label45: TLabel; Label9: TLabel; Label11: TLabel; WFBKZ: TEdit; BZ: TcxButtonEdit; Label46: TLabel; PanZDY: TPanel; CXGridZDY: TcxGrid; TVZDY: TcxGridDBTableView; VHelpZDYName: TcxGridDBColumn; CXGridZDYLevel1: TcxGridLevel; Button1: TButton; procedure TBCloseClick(Sender: TObject); procedure TVZDYCellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); procedure Button1Click(Sender: TObject); procedure WFBCodeNameKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); procedure TVZDYKeyPress(Sender: TObject; var Key: Char); procedure FormShow(Sender: TObject); procedure TBSaveClick(Sender: TObject); procedure ToolButton1Click(Sender: TObject); procedure ToolButton2Click(Sender: TObject); procedure CustomNoNamePropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure CustomNoNamePropertiesChange(Sender: TObject); procedure ArrivalPortNamePropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure SCXNamePropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure WJGNamePropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure WFBCodeNamePropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure WFBCodeNamePropertiesChange(Sender: TObject); procedure ArrivalPortNamePropertiesChange(Sender: TObject); procedure SCXNamePropertiesChange(Sender: TObject); procedure WJGNamePropertiesChange(Sender: TObject); procedure N1Click(Sender: TObject); procedure N2Click(Sender: TObject); procedure Day1Change(Sender: TObject); procedure OrdQtyKeyPress(Sender: TObject; var Key: Char); procedure Day2Change(Sender: TObject); procedure Day3Change(Sender: TObject); procedure ETADateChange(Sender: TObject); procedure BegRKDateChange(Sender: TObject); procedure Tv1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure Tv2MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure Tv3MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure v1Column2PropertiesEditValueChanged(Sender: TObject); procedure v1Column3PropertiesEditValueChanged(Sender: TObject); procedure v2Column2PropertiesEditValueChanged(Sender: TObject); procedure OrdQtyChange(Sender: TObject); procedure v3Column4PropertiesEditValueChanged(Sender: TObject); procedure TBPrintClick(Sender: TObject); procedure v1Column1PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure v2Column1PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure v3Column1PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure WFBBZUnit1PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure WFBBZUnit2PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure WFBBZUnit3PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure WFBBZUnit1PropertiesChange(Sender: TObject); procedure WFBBZUnit2PropertiesChange(Sender: TObject); procedure WFBBZUnit3PropertiesChange(Sender: TObject); procedure BZPropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure BZPropertiesChange(Sender: TObject); procedure WFBBZQty1Change(Sender: TObject); private MInt:Integer; procedure InitData(); procedure ZDYHelp(FButn:TcxButtonEdit;LType:string); function SaveData():Boolean; procedure DelOrderSub(FOrder_Sub:TClientDataSet); procedure SELYCL(SCDS_Sub:TClientDataSet); procedure EditYCL(SCDS_Sub:TClientDataSet); { Private declarations } public PState,BState:Integer; FMainId:String; FXS:Integer; OrderType:String; { Public declarations } end; var frmOrderInPutZP: TfrmOrderInPutZP; implementation uses U_DataLink,U_ZDYHelp,U_Fun,U_GetPGJBInList; {$R *.dfm} procedure TfrmOrderInPutZP.TBCloseClick(Sender: TObject); begin if PState<>3 then begin if Application.MessageBox('是否要保存数据?','提示',32+4)=IDYES then begin TBSave.Click; Exit; end; end; Close; WriteCxBandedGrid('配料主',Tv1,'无纺布订单'); WriteCxBandedGrid('配料辅',Tv2,'无纺布订单'); WriteCxBandedGrid('配料其它',Tv3,'无纺布订单'); end; procedure TfrmOrderInPutZP.InitData(); var i:Integer; begin with ADOQuery1 do begin Close; SQL.Clear; sql.Add(' exec P_WFBOrder_List :begdate,:endate,:MainId'); if PState>0 then begin ADOQuery1.Parameters.ParamByName('MainId').Value:=Trim(FMainId); ADOQuery1.Parameters.ParamByName('begdate').Value:=''; ADOQuery1.Parameters.ParamByName('endate').Value:=''; end; if PState=0 then begin ADOQuery1.Parameters.ParamByName('MainId').Value:='999999'; ADOQuery1.Parameters.ParamByName('begdate').Value:=''; ADOQuery1.Parameters.ParamByName('endate').Value:=''; end; Open; end; // SCreateCDS20(ADOQuery1,Order_Sub); //SInitCDSData20(ADOQuery1,Order_Sub); SCSHData(ADOQuery1,ScrollBox1,0); if PState=0 then begin OrderDate.DateTime:=StrToDate(FormatDateTime('yyyy-MM-dd',SGetServerDateTime(ADOTemp))); ETADate.DateTime:=OrderDate.DateTime; ETDDate.DateTime:=OrderDate.DateTime; ZGDate.DateTime:=OrderDate.DateTime; BegRKDate.DateTime:=OrderDate.DateTime; BegSCDate.DateTime:=OrderDate.DateTime; ETADate.Checked:=False; ETDDate.Checked:=False; ZGDate.Checked:=False; BegRKDate.Checked:=False; BegSCDate.Checked:=False; end; if Trim(DParameters1)<>'审核' then begin BegRKDate.Enabled:=False; Day3.Enabled:=False; BegSCDate.Enabled:=False; //Note.Enabled:=False; cxGrid4.Enabled:=False; MJKZX.Enabled:=False; MJKZD.Enabled:=False; XJKZX.Enabled:=False; XJKZD.Enabled:=False; SCXName.Enabled:=False; WJGName.Enabled:=False; ScrollBox2.Enabled:=False; end; if PState=4 then begin BegRKDate.Enabled:=True; Day3.Enabled:=True; BegSCDate.Enabled:=True; //Note.Enabled:=False; cxGrid4.Enabled:=True; MJKZX.Enabled:=True; MJKZD.Enabled:=True; XJKZX.Enabled:=True; XJKZD.Enabled:=True; SCXName.Enabled:=True; WJGName.Enabled:=True; ScrollBox2.Enabled:=True; end; with ADOQuery1 do begin Close; sql.Clear; SQL.Add('select * from WFB_DB where MainId='''+Trim(FMainId)+''''); Open; end; SCreateCDS20(ADOQuery1,CDS_DB); SInitCDSData20(ADOQuery1,CDS_DB); with ADOQuery1 do begin Close; sql.Clear; SQL.Add('select A.*,Case when A.YLQty-A.YCLYJkc>=0 then A.YLQty-A.YCLYJkc else null end as BZ from WFBYCL_PB A where MainId='''+Trim(FMainId)+''''); sql.Add(' and PBType=''主要'' '); Open; end; SCreateCDS20(ADOQuery1,Order_SubZ); SInitCDSData20(ADOQuery1,Order_SubZ); with ADOQuery1 do begin Close; sql.Clear; SQL.Add('select A.*,Case when A.YLQty-A.YCLYJkc>=0 then A.YLQty-A.YCLYJkc else null end as BZ from WFBYCL_PB A where MainId='''+Trim(FMainId)+''''); sql.Add(' and PBType=''辅助'' '); Open; end; SCreateCDS20(ADOQuery1,Order_SubF); SInitCDSData20(ADOQuery1,Order_SubF); with ADOQuery1 do begin Close; sql.Clear; SQL.Add('select A.*,Case when A.YLQty-A.YCLYJkc>=0 then A.YLQty-A.YCLYJkc else null end as BZ from WFBYCL_PB A where MainId='''+Trim(FMainId)+''''); sql.Add(' and PBType=''其它'' '); Open; end; SCreateCDS20(ADOQuery1,Order_SubQ); SInitCDSData20(ADOQuery1,Order_SubQ); PanZDY.Visible:=False; if PState=4 then begin PState:=0; FMainId:='999999'; //OrderNo.Text:=''; WFBCodeName.Text:=''; WFBCodeName.Hint:=''; PanZDY.Visible:=False; with CDS_DB do begin First; while not Eof do begin Edit; FieldByName('DBID').Value:=''; Post; Next; end; end; with Order_SubZ do begin First; while not Eof do begin Edit; FieldByName('PBID').Value:=''; FieldByName('YLKC').Value:=0; FieldByName('YCLYJKC').Value:=0; FieldByName('BZ').Value:=0; FieldByName('SGQty').Value:=0; Post; Next; end; end; v1Column1.Options.Focusing:=True; with Order_SubF do begin First; while not Eof do begin Edit; FieldByName('PBID').Value:=''; FieldByName('YLKC').Value:=0; FieldByName('YCLYJKC').Value:=0; FieldByName('BZ').Value:=0; FieldByName('SGQty').Value:=0; Post; Next; end; end; v2Column1.Options.Focusing:=True; with Order_SubQ do begin First; while not Eof do begin Edit; FieldByName('PBID').Value:=''; FieldByName('YLKC').Value:=0; FieldByName('YCLYJKC').Value:=0; FieldByName('BZ').Value:=0; FieldByName('SGQty').Value:=0; Post; Next; end; end; v3Column1.Options.Focusing:=True; end; end; procedure TfrmOrderInPutZP.ZDYHelp(FButn:TcxButtonEdit;LType:string); var FType,ZDYName,FText:String; begin PanZDY.Visible:=True; PanZDY.Left:=FButn.Left; PanZDY.Top:=FButn.Top+FButn.Height; with ADOZDY do begin Filtered:=False; Close; SQL.Clear; SQL.Add('select RTrim(ZDYNo) ZDYNo,RTrim(ZDYName) ZDYName from KH_ZDY where Type='''+Trim(LType)+''''); Open; end; FText:=Trim(FButn.Text); if FText<>'' then SDofilter(ADOZDY,' ZDYName like '+QuotedStr('%'+Trim(FText)+'%')) else SDofilter(ADOZDY,''); VHelpZDYName.Summary.GroupFormat:=Trim(FButn.Name); end; procedure TfrmOrderInPutZP.TVZDYCellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); var FName:string; begin if ADOZDY.IsEmpty then Exit; FName:=Trim(VHelpZDYName.Summary.GroupFormat); TcxButtonEdit(FindComponent(FName)).Text:=Trim(ADOZDY.fieldbyname('ZDYName').AsString); TcxButtonEdit(FindComponent(FName)).Hint:=Trim(ADOZDY.fieldbyname('ZDYNO').AsString); PanZDY.Visible:=False; end; procedure TfrmOrderInPutZP.Button1Click(Sender: TObject); begin PanZDY.Visible:=False; end; procedure TfrmOrderInPutZP.WFBCodeNameKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if (key=vk_return) or (Key=vk_Down) then begin if ADOZDY.Active then CXGridZDY.SetFocus; end; end; procedure TfrmOrderInPutZP.TVZDYKeyPress(Sender: TObject; var Key: Char); begin if Key=#13 then begin if ADOZDY.IsEmpty then Exit; TcxButtonEdit(FindComponent(VHelpZDYName.Summary.GroupFormat)).Text:=Trim(ADOZDY.fieldbyname('ZDYName').AsString); TcxButtonEdit(FindComponent(VHelpZDYName.Summary.GroupFormat)).Hint:=Trim(ADOZDY.fieldbyname('ZDYNO').AsString); PanZDY.Visible:=False; ADOZDY.Active:=False; end; end; procedure TfrmOrderInPutZP.FormShow(Sender: TObject); begin {if Trim(DParameters1)='1' then begin Label12.Visible:=False; CustomNoName.Visible:=False; end else begin Label12.Visible:=True; CustomNoName.Visible:=True; end; } InitData(); ReadCxBandedGrid('配料主',Tv1,'无纺布订单'); ReadCxBandedGrid('配料辅',Tv2,'无纺布订单'); ReadCxBandedGrid('配料其它',Tv3,'无纺布订单'); end; function TfrmOrderInPutZP.SaveData():Boolean; var maxno:String; begin try ADOCmd.Connection.BeginTrans; ///保存主表 with ADOCmd do begin Close; sql.Clear; SQL.Add('select * from WFBOrder_Main where MainId='''+Trim(FMainId)+''''); Open; end; with ADOCmd do begin if Trim(FMainId)='999999' then begin Append; if GetLSNo(ADOTemp,maxno,'','WFBOrder_Main',2,1)=False then begin ADOCmd.Connection.RollbackTrans; Application.MessageBox('生成流水号异常!','提示',0); exit; end; end else begin maxno:=Trim(FMainId); Edit; end; FieldByName('MainId').Value:=Trim(maxno); FieldByName('OrderType').Value:=Trim(OrderType); SSetsaveSql(ADOCmd,'WFBOrder_Main',ScrollBox1,0); if PState=2 then begin FieldByName('Chker').Value:=Trim(DName); FieldByName('ChkTime').Value:=SGetServerDateTime(ADOTemp); end; if Trim(FMainId)='999999' then begin FieldByName('Filler').Value:=Trim(DName); end else begin if PState=1 then begin FieldByName('Editer').Value:=Trim(DName); FieldByName('EditTime').Value:=SGetServerDateTime(ADOTemp); end; end; Post; end; FMainId:=Trim(maxno); ///保存打包详细 with CDS_DB do begin First; while not Eof do begin if Trim(CDS_DB.fieldbyname('DBId').AsString)='' then begin if GetLSNo(ADOTemp,maxno,'DB','WFB_DB',3,1)=False then begin ADOCmd.Connection.RollbackTrans; Application.MessageBox('取子流水号失败!','提示',0); Exit; end; end else begin maxno:=Trim(CDS_DB.fieldbyname('DBId').AsString); end; with ADOCmd do begin Close; SQL.Clear; sql.Add('select * from WFB_DB '); sql.Add(' where DBId='''+Trim(maxno)+''''); Open; end; with ADOCmd do begin if Trim(CDS_DB.fieldbyname('DBId').AsString)='' then Append else Edit; FieldByName('MainId').Value:=Trim(FMainId); FieldByName('DBId').Value:=Trim(maxno); SSetSaveDataCDSNew(ADOCmd,TVDB,CDS_DB,'WFB_DB',0); Post; end; CDS_DB.Edit; CDS_DB.FieldByName('DBId').Value:=Trim(maxno); //Order_Sub.Post; Next; end; end; //保存主要原料 if not Order_SubZ.IsEmpty then begin with Order_SubZ do begin First; while not Eof do begin if Trim(Order_SubZ.fieldbyname('PBId').AsString)='' then begin if GetLSNo(ADOTemp,maxno,'PB','WFBYCL_PB',3,1)=False then begin ADOCmd.Connection.RollbackTrans; Application.MessageBox('取子流水号失败!','提示',0); Exit; end; end else begin maxno:=Trim(Order_SubZ.fieldbyname('PBId').AsString); end; with ADOCmd do begin Close; SQL.Clear; sql.Add('select * from WFBYCL_PB '); sql.Add(' where PBId='''+Trim(maxno)+''''); Open; end; with ADOCmd do begin if Trim(Order_SubZ.fieldbyname('PBId').AsString)='' then Append else Edit; FieldByName('MainId').Value:=Trim(FMainId); FieldByName('PBId').Value:=Trim(maxno); FieldByName('CRId').Value:=Trim(Order_SubZ.fieldbyname('CRID').AsString); FieldByName('PBType').Value:='主要'; // SSetSaveDataCDSNew(); SSetSaveDataCDSBandNew(ADOCmd,TV1,Order_SubZ,'WFBYCL_PB',0); Post; end; Order_SubZ.Edit; Order_SubZ.FieldByName('PBId').Value:=Trim(maxno); //Order_Sub.Post; Next; end; end; end; //保存辅助原料 if not Order_SubF.IsEmpty then begin with Order_SubF do begin First; while not Eof do begin if Trim(Order_SubF.fieldbyname('PBId').AsString)='' then begin if GetLSNo(ADOTemp,maxno,'PB','WFBYCL_PB',3,1)=False then begin ADOCmd.Connection.RollbackTrans; Application.MessageBox('取子流水号失败!','提示',0); Exit; end; end else begin maxno:=Trim(Order_SubF.fieldbyname('PBId').AsString); end; with ADOCmd do begin Close; SQL.Clear; sql.Add('select * from WFBYCL_PB '); sql.Add(' where PBId='''+Trim(maxno)+''''); Open; end; with ADOCmd do begin if Trim(Order_SubF.fieldbyname('PBId').AsString)='' then Append else Edit; FieldByName('MainId').Value:=Trim(FMainId); FieldByName('PBId').Value:=Trim(maxno); FieldByName('PBType').Value:='辅助'; FieldByName('CRId').Value:=Trim(Order_SubF.fieldbyname('CRID').AsString); // SSetSaveDataCDSNew(); SSetSaveDataCDSBandNew(ADOCmd,TV2,Order_SubF,'WFBYCL_PB',0); Post; end; Order_SubF.Edit; Order_SubF.FieldByName('PBId').Value:=Trim(maxno); //Order_Sub.Post; Next; end; end; end; //保存其它原料 if not Order_SubQ.IsEmpty then begin with Order_SubQ do begin First; while not Eof do begin if Trim(Order_SubQ.fieldbyname('PBId').AsString)='' then begin if GetLSNo(ADOTemp,maxno,'PB','WFBYCL_PB',3,1)=False then begin ADOCmd.Connection.RollbackTrans; Application.MessageBox('取子流水号失败!','提示',0); Exit; end; end else begin maxno:=Trim(Order_SubQ.fieldbyname('PBId').AsString); end; with ADOCmd do begin Close; SQL.Clear; sql.Add('select * from WFBYCL_PB '); sql.Add(' where PBId='''+Trim(maxno)+''''); Open; end; with ADOCmd do begin if Trim(Order_SubQ.fieldbyname('PBId').AsString)='' then Append else Edit; FieldByName('MainId').Value:=Trim(FMainId); FieldByName('PBId').Value:=Trim(maxno); FieldByName('PBType').Value:='其它'; FieldByName('CRId').Value:=Trim(Order_SubQ.fieldbyname('CRID').AsString); // SSetSaveDataCDSNew(); SSetSaveDataCDSBandNew(ADOCmd,TV3,Order_SubQ,'WFBYCL_PB',0); Post; end; Order_SubQ.Edit; Order_SubQ.FieldByName('PBId').Value:=Trim(maxno); //Order_Sub.Post; Next; end; end; end; ///保存子表 {with Order_Sub do begin First; while not Eof do begin if Trim(Order_Sub.fieldbyname('SubId').AsString)='' then begin if GetLSNo(ADOTemp,maxno,'OS','Order_Sub',3,1)=False then begin ADOCmd.Connection.RollbackTrans; Application.MessageBox('取子流水号失败!','提示',0); Exit; end; end else begin maxno:=Trim(Order_Sub.fieldbyname('SubId').AsString); end; with ADOCmd do begin Close; SQL.Clear; sql.Add('select * from Order_Sub where MainId='''+Trim(FMainId)+''''); sql.Add(' and SubId='''+Trim(maxno)+''''); Open; end; with ADOCmd do begin if Trim(Order_Sub.fieldbyname('SubId').AsString)='' then Append else Edit; FieldByName('MainId').Value:=Trim(FMainId); FieldByName('SubId').Value:=Trim(maxno); SSetSaveDataCDSNew(ADOCmd,Tv1,Order_Sub,'Order_Sub',0); Post; end; Order_Sub.Edit; Order_Sub.FieldByName('SubId').Value:=Trim(maxno); //Order_Sub.Post; Next; end; end; } ADOCmd.Connection.CommitTrans; Result:=True; except Result:=False; ADOCmd.Connection.RollbackTrans; Application.MessageBox('保存失败!','提示',0); end; end; procedure TfrmOrderInPutZP.TBSaveClick(Sender: TObject); begin OrderDate.SetFocus; if Trim(OrderNo.Text)='' then begin Application.MessageBox('订单编号不能为空!','提示',0); Exit; end; if Trim(WFBCodeName.Text)='' then begin Application.MessageBox('代号不能为空!','提示',0); Exit; end; if Trim(WFBCodeName.Hint)='' then begin Application.MessageBox('代号未定义!','提示',0); Exit; end; {if Order_Sub.IsEmpty then begin Application.MessageBox('明细不能为空!','提示',0); Exit; end; } if CDS_DB.Locate('BSL',null,[]) then begin Application.MessageBox('包数量不能为空!','提示',0); Exit; end; if CDS_DB.Locate('JSL',null,[]) then begin Application.MessageBox('卷数量不能为空!','提示',0); Exit; end; if Order_SubZ.Locate('YLKC;YCLYJKC;BZ',VarArrayOf([0,0,0]),[]) then begin Application.MessageBox('请指定物料!','提示',0); Exit; end; if Order_SubF.Locate('YLKC;YCLYJKC;BZ',VarArrayOf([0,0,0]),[]) then begin Application.MessageBox('请指定物料!','提示',0); Exit; end; if Order_SubQ.Locate('YLKC;YCLYJKC;BZ',VarArrayOf([0,0,0]),[]) then begin Application.MessageBox('请指定物料!','提示',0); Exit; end; if SaveData() then begin Application.MessageBox('保存成功!','提示',0); end; end; procedure TfrmOrderInPutZP.SELYCL(SCDS_Sub:TClientDataSet); begin try frmGetPGJBInList:=TfrmGetPGJBInList.Create(Application); with frmGetPGJBInList do begin if ShowModal=1 then begin with ClientDataSet2 do begin First; while not Eof do begin with SCDS_Sub do begin Append; SCDS_Sub.FieldByName('YCLCode').Value:=Trim(ClientDataSet2.fieldbyname('YCLCode').AsString); SCDS_Sub.FieldByName('YCLName').Value:=Trim(ClientDataSet2.fieldbyname('YCLName').AsString); SCDS_Sub.FieldByName('YCLSpec').Value:=Trim(ClientDataSet2.fieldbyname('YCLSpec').AsString); //SCDS_Sub.FieldByName('GYSName').Value:=Trim(ClientDataSet2.fieldbyname('GYSName').AsString); //SCDS_Sub.FieldByName('GYS').Value:=Trim(ClientDataSet2.fieldbyname('GYS').AsString); SCDS_Sub.FieldByName('YLKC').Value:=Trim(ClientDataSet2.fieldbyname('QuantityKC').AsString); //CDS_Sub.FieldByName('Qty').Value:=Trim(ClientDataSet2.fieldbyname('QtyKC').AsString); SCDS_Sub.FieldByName('YLUnit').Value:=Trim(ClientDataSet2.fieldbyname('CRUnit').AsString); SCDS_Sub.FieldByName('CRID').Value:=Trim(ClientDataSet2.fieldbyname('CRID').AsString); SCDS_Sub.FieldByName('YCLYJKC').Value:=Trim(ClientDataSet2.fieldbyname('YJKC').AsString); //SCDS_Sub.FieldByName('YCLType').Value:=Trim(ClientDataSet2.fieldbyname('YCLType').AsString); //SCDS_Sub.FieldByName('YCLPrice').Value:=Trim(ClientDataSet2.fieldbyname('YCLPrice').AsString); //SCDS_Sub.FieldByName('KCPlace').Value:=Trim(ClientDataSet2.fieldbyname('KCPlace').AsString); //CDS_Sub.FieldByName('DepotShow').Value:=Trim(ClientDataSet2.fieldbyname('DepotShow').AsString); Post; end; Next; end; end; end; end; finally frmGetPGJBInList.Free; end; end; procedure TfrmOrderInPutZP.EditYCL(SCDS_Sub:TClientDataSet); begin try frmGetPGJBInList:=TfrmGetPGJBInList.Create(Application); with frmGetPGJBInList do begin if ShowModal=1 then begin with ClientDataSet2 do begin //First; // while not Eof do //begin with SCDS_Sub do begin Edit; SCDS_Sub.FieldByName('YCLCode').Value:=Trim(ClientDataSet2.fieldbyname('YCLCode').AsString); SCDS_Sub.FieldByName('YCLName').Value:=Trim(ClientDataSet2.fieldbyname('YCLName').AsString); SCDS_Sub.FieldByName('YCLSpec').Value:=Trim(ClientDataSet2.fieldbyname('YCLSpec').AsString); //SCDS_Sub.FieldByName('GYSName').Value:=Trim(ClientDataSet2.fieldbyname('GYSName').AsString); //SCDS_Sub.FieldByName('GYS').Value:=Trim(ClientDataSet2.fieldbyname('GYS').AsString); SCDS_Sub.FieldByName('YLKC').Value:=Trim(ClientDataSet2.fieldbyname('QuantityKC').AsString); //CDS_Sub.FieldByName('Qty').Value:=Trim(ClientDataSet2.fieldbyname('QtyKC').AsString); SCDS_Sub.FieldByName('YLUnit').Value:=Trim(ClientDataSet2.fieldbyname('CRUnit').AsString); SCDS_Sub.FieldByName('CRID').Value:=Trim(ClientDataSet2.fieldbyname('CRID').AsString); SCDS_Sub.FieldByName('YCLYJKC').Value:=Trim(ClientDataSet2.fieldbyname('YJKC').AsString); if SCDS_Sub.FieldByName('YLQty').Value-ClientDataSet2.fieldbyname('YJKC').Value>=0 then SCDS_Sub.FieldByName('BZ').Value:=SCDS_Sub.FieldByName('YLQty').Value- ClientDataSet2.fieldbyname('YJKC').Value else SCDS_Sub.FieldByName('BZ').Value:=null; //SCDS_Sub.FieldByName('YCLType').Value:=Trim(ClientDataSet2.fieldbyname('YCLType').AsString); //SCDS_Sub.FieldByName('YCLPrice').Value:=Trim(ClientDataSet2.fieldbyname('YCLPrice').AsString); //SCDS_Sub.FieldByName('KCPlace').Value:=Trim(ClientDataSet2.fieldbyname('KCPlace').AsString); //CDS_Sub.FieldByName('DepotShow').Value:=Trim(ClientDataSet2.fieldbyname('DepotShow').AsString); //Post; end; // Next; //end; end; end; end; finally frmGetPGJBInList.Free; end; end; procedure TfrmOrderInPutZP.ToolButton1Click(Sender: TObject); begin if MInt=1 then begin SELYCL(Order_SubZ); end else if MInt=2 then begin SELYCL(Order_SubF); end else if MInt=3 then begin SELYCL(Order_SubQ); end; end; procedure TfrmOrderInPutZP.ToolButton2Click(Sender: TObject); begin if MInt=1 then begin DelOrderSub(Order_SubZ); end else if MInt=2 then begin DelOrderSub(Order_SubF); end else if MInt=3 then begin DelOrderSub(Order_SubQ); end; end; procedure TfrmOrderInPutZP.DelOrderSub(FOrder_Sub:TClientDataSet); begin if FOrder_Sub.IsEmpty then Exit; if Trim(FOrder_Sub.fieldbyname('PBID').AsString)<>'' then begin if Application.MessageBox('不能在此删除已保存的数据!','提示',32+4)<>IDYES then Exit; with ADOCmd do begin Close; sql.Clear; sql.Add('delete WFBYCL_PB where PBID='''+Trim(FOrder_Sub.fieldbyname('PBID').AsString)+''''); ExecSQL; end; end; FOrder_Sub.Delete; end; procedure TfrmOrderInPutZP.CustomNoNamePropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); begin try frmZDYHelp:=TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag:=Trim('CustomNoName'); flagname:='客户名称'; if ShowModal=1 then begin Self.FXS:=99; CustomNoName.Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); CustomNoName.Hint:=Trim(ClientDataSet1.fieldbyname('ZDYNo').AsString); end; end; finally frmZDYHelp.Free; end; end; procedure TfrmOrderInPutZP.CustomNoNamePropertiesChange(Sender: TObject); begin if FXS=99 then begin PanZDY.Visible:=False; FXS:=0; Exit; end; ZDYHelp(CustomNoName,'CustomNoName'); end; procedure TfrmOrderInPutZP.ArrivalPortNamePropertiesButtonClick( Sender: TObject; AButtonIndex: Integer); begin try frmZDYHelp:=TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag:=Trim('ArrivalPort'); flagname:='到达港'; if ShowModal=1 then begin Self.FXS:=99; ArrivalPortName.Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); ArrivalPortName.Hint:=Trim(ClientDataSet1.fieldbyname('ZDYNo').AsString); end; end; finally frmZDYHelp.Free; end; end; procedure TfrmOrderInPutZP.SCXNamePropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); begin try frmZDYHelp:=TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag:=Trim('SCXName'); flagname:='生产线'; if ShowModal=1 then begin Self.FXS:=99; SCXName.Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); SCXName.Hint:=Trim(ClientDataSet1.fieldbyname('ZDYNo').AsString); end; end; finally frmZDYHelp.Free; end; end; procedure TfrmOrderInPutZP.WJGNamePropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); begin try frmZDYHelp:=TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag:=Trim('WJGName'); flagname:='网结构'; if ShowModal=1 then begin Self.FXS:=99; WJGName.Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); WJGName.Hint:=Trim(ClientDataSet1.fieldbyname('ZDYNo').AsString); end; end; finally frmZDYHelp.Free; end; end; procedure TfrmOrderInPutZP.WFBCodeNamePropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); begin try frmZDYHelp:=TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag:=Trim(WFBCodeName.Name); flagname:='代号'; if ShowModal=1 then begin Self.FXS:=99; WFBCodeName.Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); WFBCodeName.Hint:=Trim(ClientDataSet1.fieldbyname('ZDYNo').AsString); end; end; finally frmZDYHelp.Free; end; end; procedure TfrmOrderInPutZP.WFBCodeNamePropertiesChange(Sender: TObject); begin if FXS=99 then begin PanZDY.Visible:=False; FXS:=0; Exit; end; ZDYHelp(WFBCodeName,Trim(WFBCodeName.Name)); end; procedure TfrmOrderInPutZP.ArrivalPortNamePropertiesChange(Sender: TObject); begin if FXS=99 then begin PanZDY.Visible:=False; FXS:=0; Exit; end; ZDYHelp(ArrivalPortName,'ArrivalPort'); end; procedure TfrmOrderInPutZP.SCXNamePropertiesChange(Sender: TObject); begin if FXS=99 then begin PanZDY.Visible:=False; FXS:=0; Exit; end; ZDYHelp(SCXName,Trim(SCXName.Name)); end; procedure TfrmOrderInPutZP.WJGNamePropertiesChange(Sender: TObject); begin if FXS=99 then begin PanZDY.Visible:=False; FXS:=0; Exit; end; ZDYHelp(WJGName,Trim(WJGName.Name)); end; procedure TfrmOrderInPutZP.N1Click(Sender: TObject); begin with CDS_DB do begin Append; FieldByName('DBUnit').Value:='卷/包'; Post; end; end; procedure TfrmOrderInPutZP.N2Click(Sender: TObject); begin if CDS_DB.IsEmpty then Exit; with ADOCmd do begin Close; sql.Clear; sql.Add('delete WFB_DB where DBID='''+Trim(CDS_DB.fieldbyname('DBID').AsString)+''''); ExecSQL; end; CDS_DB.Delete; end; procedure TfrmOrderInPutZP.Day1Change(Sender: TObject); var DayL:string; begin if trim(Day1.Text)='' then DayL:='0' else DayL:=Trim(Day1.Text); ETDDate.DateTime:=ETADate.Date-strtoint(DayL); end; procedure TfrmOrderInPutZP.OrdQtyKeyPress(Sender: TObject; var Key: Char); begin if not (Key in['0'..'9','.',#8,#13]) then begin key:=#0; end; end; procedure TfrmOrderInPutZP.Day2Change(Sender: TObject); var DayL:string; begin if trim(Day2.Text)='' then DayL:='0' else DayL:=Trim(Day2.Text); ZGDate.DateTime:=ETDDate.Date-strtoint(DayL); end; procedure TfrmOrderInPutZP.Day3Change(Sender: TObject); var DayL:string; begin if trim(Day3.Text)='' then DayL:='0' else DayL:=Trim(Day3.Text); BegSCDate.DateTime:=BegRKDate.Date-strtoint(DayL); end; procedure TfrmOrderInPutZP.ETADateChange(Sender: TObject); begin if Trim(Day1.Text)<>'' then begin ETDDate.DateTime:=ETADate.Date-strtoint(Day1.Text); end; if Trim(Day2.Text)<>'' then begin ZGDate.DateTime:=ETDDate.Date-strtoint(Day2.Text); end; end; procedure TfrmOrderInPutZP.BegRKDateChange(Sender: TObject); begin if Trim(Day3.Text)<>'' then begin BegSCDate.DateTime:=BegRKDate.Date-strtoint(Day3.Text); end; end; procedure TfrmOrderInPutZP.Tv1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin MInt:=1; Tv1.Bands[0].Caption:='主要原料√'; Tv2.Bands[0].Caption:='辅助原料'; Tv3.Bands[0].Caption:='其它'; Tv1.Bands[0].Styles.Header.TextColor:=clBlue; Tv2.Bands[0].Styles.Header.TextColor:=clBlack; Tv3.Bands[0].Styles.Header.TextColor:=clBlack; end; procedure TfrmOrderInPutZP.Tv2MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin MInt:=2; Tv1.Bands[0].Caption:='主要原料'; Tv2.Bands[0].Caption:='辅助原料√'; Tv3.Bands[0].Caption:='其它'; Tv1.Bands[0].Styles.Header.TextColor:=clBlack; Tv2.Bands[0].Styles.Header.TextColor:=clBlue; Tv3.Bands[0].Styles.Header.TextColor:=clBlack; end; procedure TfrmOrderInPutZP.Tv3MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin MInt:=3; Tv1.Bands[0].Caption:='主要原料'; Tv2.Bands[0].Caption:='辅助原料'; Tv3.Bands[0].Caption:='其它√'; Tv1.Bands[0].Styles.Header.TextColor:=clBlack; Tv2.Bands[0].Styles.Header.TextColor:=clBlack; Tv3.Bands[0].Styles.Header.TextColor:=clBlue; end; procedure TfrmOrderInPutZP.v1Column2PropertiesEditValueChanged( Sender: TObject); var mvalue,YLSH,DHSL:Double; begin if Trim(OrdQty.Text)='' then begin Application.MessageBox('订货数量不能为空!','提示',0); Exit; end; mvalue:=TcxTextEdit(Sender).EditingValue; //㎏㎡ if Trim(OrdUnit.Text)='㎏' then begin if Trim(Order_SubZ.fieldbyname('YLSH').AsString)='' then begin YLSH:=0; end else YLSH:=StrToFloat(Order_SubZ.fieldbyname('YLSH').AsString); with Order_SubZ do begin Edit; FieldByName('YLQty').Value:=StrToFloat(OrdQty.Text)*mvalue/100*(1+YLSH/100); if StrToFloat(OrdQty.Text)*mvalue/100*(1+YLSH/100)-FieldByName('YCLYJKC').Value>=0 then FieldByName('BZ').Value:=StrToFloat(OrdQty.Text)*mvalue/100*(1+YLSH/100)-FieldByName('YCLYJKC').Value else FieldByName('BZ').Value:=null; FieldByName('YLPB').Value:=mvalue; Post; end; end else if Trim(OrdUnit.Text)='㎡' then begin if Trim(WFBKZ.Text)='' then begin Application.MessageBox('克重不能为空!','提示',0); Exit; end; {if Trim(WFBfk.Text)='' then begin Application.MessageBox('幅宽不能为空!','提示',0); Exit; end;} DHSL:=StrToFloat(OrdQty.Text)*strtofloat(WFBKZ.Text)/1000; if Trim(Order_SubZ.fieldbyname('YLSH').AsString)='' then begin YLSH:=0; end else YLSH:=StrToFloat(Order_SubZ.fieldbyname('YLSH').AsString); with Order_SubZ do begin Edit; FieldByName('YLQty').Value:=DHSL*mvalue/100*(1+YLSH/100); if DHSL*mvalue/100*(1+YLSH/100)-FieldByName('YCLYJKC').Value>=0 then FieldByName('BZ').Value:=DHSL*mvalue/100*(1+YLSH/100)-FieldByName('YCLYJKC').Value else FieldByName('BZ').Value:=null; FieldByName('YLPB').Value:=mvalue; Post; end; end; end; procedure TfrmOrderInPutZP.v1Column3PropertiesEditValueChanged( Sender: TObject); var mvalue,YLPB,DHSL:Double; begin if Trim(OrdQty.Text)='' then begin Application.MessageBox('订货数量不能为空!','提示',0); Exit; end; mvalue:=TcxTextEdit(Sender).EditingValue; //㎏㎡ if Trim(OrdUnit.Text)='㎏' then begin if Trim(Order_SubZ.fieldbyname('YLPB').AsString)='' then begin YLPB:=0; end else YLPB:=StrToFloat(Order_SubZ.fieldbyname('YLPB').AsString); with Order_SubZ do begin Edit; FieldByName('YLQty').Value:=StrToFloat(OrdQty.Text)*YLPB/100*(1+mvalue/100); if StrToFloat(OrdQty.Text)*YLPB/100*(1+mvalue/100)-FieldByName('YCLYJKC').Value>=0 then FieldByName('BZ').Value:=StrToFloat(OrdQty.Text)*YLPB/100*(1+mvalue/100)-FieldByName('YCLYJKC').Value else FieldByName('BZ').Value:=null; FieldByName('YLSH').Value:=mvalue; Post; end; end else begin if Trim(WFBKZ.Text)='' then begin Application.MessageBox('克重不能为空!','提示',0); Exit; end; {if Trim(WFBfk.Text)='' then begin Application.MessageBox('幅宽不能为空!','提示',0); Exit; end;} DHSL:=StrToFloat(OrdQty.Text)*strtofloat(WFBKZ.Text)/1000; if Trim(Order_SubZ.fieldbyname('YLPB').AsString)='' then begin YLPB:=0; end else YLPB:=StrToFloat(Order_SubZ.fieldbyname('YLPB').AsString); with Order_SubZ do begin Edit; FieldByName('YLQty').Value:=DHSL*YLPB/100*(1+mvalue/100); if DHSL*YLPB/100*(1+mvalue/100)-FieldByName('YCLYJKC').Value>=0 then FieldByName('BZ').Value:=DHSL*YLPB/100*(1+mvalue/100)-FieldByName('YCLYJKC').Value else FieldByName('BZ').Value:=null; FieldByName('YLSH').Value:=mvalue; Post; end; end; end; procedure TfrmOrderInPutZP.v2Column2PropertiesEditValueChanged( Sender: TObject); var mvalue,DHSL:Double; begin if Trim(OrdQty.Text)='' then begin Application.MessageBox('订货数量不能为空!','提示',0); Exit; end; mvalue:=TcxTextEdit(Sender).EditingValue; //㎏㎡ if Trim(OrdUnit.Text)='㎏' then begin with Order_SubF do begin Edit; FieldByName('YLQty').Value:=StrToFloat(OrdQty.Text)*(mvalue/1000); if StrToFloat(OrdQty.Text)*(mvalue/1000)-FieldByName('YCLYJKC').Value>=0 then FieldByName('BZ').Value:=StrToFloat(OrdQty.Text)*(mvalue/1000)-FieldByName('YCLYJKC').Value else FieldByName('BZ').Value:=null; FieldByName('YLSHQ').Value:=mvalue; Post; end; end else begin if Trim(WFBKZ.Text)='' then begin Application.MessageBox('克重不能为空!','提示',0); Exit; end; DHSL:=StrToFloat(OrdQty.Text)*strtofloat(WFBKZ.Text)/1000; with Order_SubF do begin Edit; FieldByName('YLQty').Value:=DHSL*(mvalue/1000); if DHSL*(mvalue/1000)-FieldByName('YCLYJKC').Value>=0 then FieldByName('BZ').Value:=DHSL*(mvalue/1000)-FieldByName('YCLYJKC').Value else FieldByName('BZ').Value:=null; FieldByName('YLSHQ').Value:=mvalue; Post; end; end; end; procedure TfrmOrderInPutZP.OrdQtyChange(Sender: TObject); var YLPB,YLSH,DHSL:Double; begin if Trim(OrdQty.Text)='' then Exit; if Trim(OrdUnit.Text)='㎏' then DHSL:=StrToFloat(OrdQty.Text) else if Trim(OrdUnit.Text)='㎡' then begin if Trim(WFBKZ.Text)='' then Exit; DHSL:=StrToFloat(OrdQty.Text)*strtofloat(WFBKZ.Text)/1000; end; if not Order_SubZ.IsEmpty then begin with Order_SubZ do begin Order_SubZ.DisableControls; First; while not Eof do begin Edit; if Trim(fieldbyname('YLPB').AsString)='' then YLPB:=0 else YLPB:=StrToFloat(fieldbyname('YLPB').AsString); if Trim(fieldbyname('YLSH').AsString)='' then YLSH:=0 else YLSH:=StrToFloat(fieldbyname('YLSH').AsString); FieldByName('YLQty').Value:=DHSL*YLPB/100*(1+YLSH/100); if DHSL*YLPB/100*(1+YLSH/100)-FieldByName('YCLYJKC').Value>=0 then FieldByName('BZ').Value:=DHSL*YLPB/100*(1+YLSH/100)-FieldByName('YCLYJKC').Value else FieldByName('BZ').Value:=null; Post; Next; end; Order_SubZ.EnableControls; First; end; end; if not Order_SubF.IsEmpty then begin with Order_SubF do begin Order_SubF.DisableControls; First; while not Eof do begin Edit; if Trim(fieldbyname('YLSHQ').AsString)='' then YLSH:=0 else YLSH:=StrToFloat(fieldbyname('YLSHQ').AsString); FieldByName('YLQty').Value:=DHSL*(YLSH/1000); if DHSL*(YLSH/1000)-FieldByName('YCLYJKC').Value>=0 then FieldByName('BZ').Value:=DHSL*(YLSH/1000)-FieldByName('YCLYJKC').Value else FieldByName('BZ').Value:=null; Post; Next; end; Order_SubF.EnableControls; First; end; end; end; procedure TfrmOrderInPutZP.v3Column4PropertiesEditValueChanged( Sender: TObject); var mvalue:Double; begin mvalue:=TcxTextEdit(Sender).EditingValue; with Order_SubQ do begin Edit; FieldByName('YLQty').Value:=mvalue; if mvalue-fieldbyname('YCLYJKC').Value>=0 then FieldByName('BZ').Value:=mvalue-fieldbyname('YCLYJKC').Value else FieldByName('BZ').Value:=null; Post; end; end; procedure TfrmOrderInPutZP.TBPrintClick(Sender: TObject); var fPrintFile:String; begin with ADOQueryQG do begin Close; sql.Clear; sql.Add(' exec P_Print_SGD :OrderNo'); Parameters.ParamByName('OrderNo').Value:=Trim(OrderNo.Text); Open; end; if ADOQueryQG.IsEmpty then Exit; fPrintFile:=ExtractFilePath(Application.ExeName)+'Report\请购单.rmf' ; if FileExists(fPrintFile) then begin RM2.LoadFromFile(fPrintFile); RMVariables['dyr']:=Trim(DName); RM2.ShowReport; end else begin Application.MessageBox(PChar('没有找'+ExtractFilePath(Application.ExeName)+'Report\请购单.rmf'),'提示',0); end; end; procedure TfrmOrderInPutZP.v1Column1PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); begin EditYCL(Order_SubZ); end; procedure TfrmOrderInPutZP.v2Column1PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); begin EditYCL(Order_SubF); end; procedure TfrmOrderInPutZP.v3Column1PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); begin EditYCL(Order_SubQ); end; procedure TfrmOrderInPutZP.WFBBZUnit1PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); begin try frmZDYHelp:=TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag:=Trim('WFBBZUnitD'); flagname:='大包装'; if ShowModal=1 then begin Self.FXS:=99; WFBBZUnit1.Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); WFBBZUnit1.Hint:=Trim(ClientDataSet1.fieldbyname('ZDYNo').AsString); end; end; finally frmZDYHelp.Free; end; end; procedure TfrmOrderInPutZP.WFBBZUnit2PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); begin try frmZDYHelp:=TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag:=Trim('WFBBZUnitZ'); flagname:='中包装'; if ShowModal=1 then begin Self.FXS:=99; WFBBZUnit2.Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); WFBBZUnit2.Hint:=Trim(ClientDataSet1.fieldbyname('ZDYNo').AsString); end; end; finally frmZDYHelp.Free; end; end; procedure TfrmOrderInPutZP.WFBBZUnit3PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); begin try frmZDYHelp:=TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag:=Trim('WFBBZUnitX'); flagname:='小包装'; if ShowModal=1 then begin Self.FXS:=99; WFBBZUnit3.Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); WFBBZUnit3.Hint:=Trim(ClientDataSet1.fieldbyname('ZDYNo').AsString); end; end; finally frmZDYHelp.Free; end; end; procedure TfrmOrderInPutZP.WFBBZUnit1PropertiesChange(Sender: TObject); begin if FXS=99 then begin PanZDY.Visible:=False; FXS:=0; Exit; end; ZDYHelp(WFBBZUnit1,'WFBBZUnitD'); end; procedure TfrmOrderInPutZP.WFBBZUnit2PropertiesChange(Sender: TObject); begin if FXS=99 then begin PanZDY.Visible:=False; FXS:=0; Exit; end; ZDYHelp(WFBBZUnit2,'WFBBZUnitZ'); end; procedure TfrmOrderInPutZP.WFBBZUnit3PropertiesChange(Sender: TObject); begin if FXS=99 then begin PanZDY.Visible:=False; FXS:=0; Exit; end; ZDYHelp(WFBBZUnit3,'WFBBZUnitX'); end; procedure TfrmOrderInPutZP.BZPropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); begin try frmZDYHelp:=TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag:=Trim('BZ'); flagname:='单价单位'; if ShowModal=1 then begin Self.FXS:=99; BZ.Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); BZ.Hint:=Trim(ClientDataSet1.fieldbyname('ZDYNo').AsString); end; end; finally frmZDYHelp.Free; end; end; procedure TfrmOrderInPutZP.BZPropertiesChange(Sender: TObject); begin if FXS=99 then begin PanZDY.Visible:=False; FXS:=0; Exit; end; ZDYHelp(BZ,'BZ'); end; procedure TfrmOrderInPutZP.WFBBZQty1Change(Sender: TObject); var FQty1,FQty2,FQty3,FFK1,FFK2,FKZ1,YLPB,YLSH,DHSL:Double; begin if Trim(WFBBZQty1.Text)<>'' then begin FQty1:=StrToFloat(WFBBZQty1.Text); end else begin FQty1:=1; end; if Trim(WFBBZQty2.Text)<>'' then begin FQty2:=StrToFloat(WFBBZQty2.Text); end else begin FQty2:=1; end; if Trim(WFBBZQty3.Text)<>'' then begin FQty3:=StrToFloat(WFBBZQty3.Text); end else begin FQty3:=1; end; if Trim(WFBFK1.Text)<>'' then begin FFK1:=StrToFloat(WFBFK1.Text); end else begin FFK1:=0; end; if Trim(WFBFK2.Text)<>'' then begin FFK2:=StrToFloat(WFBFK2.Text); end else begin FFK2:=0; end; if Trim(WFBKZ.Text)<>'' then begin FKZ1:=StrToFloat(WFBKZ.Text); end else begin FKZ1:=0; end; if Trim(WFBKZ.Text)='' then begin OrdQty.Text:=FloatToStr(FQty1*FQty2*FQty3*FFK1*FFK2/10000); OrdUnit.ItemIndex:=OrdUnit.Items.IndexOf('㎡'); end else begin OrdQty.Text:=FloatToStr(FQty1*FQty2*FQty3*FFK1*FFK2/10000*FKZ1/1000); OrdUnit.ItemIndex:=OrdUnit.Items.IndexOf('㎏'); end; if Trim(OrdQty.Text)='' then Exit; if Trim(OrdUnit.Text)='㎏' then DHSL:=StrToFloat(OrdQty.Text) else if Trim(OrdUnit.Text)='㎡' then begin if Trim(WFBKZ.Text)='' then Exit; DHSL:=StrToFloat(OrdQty.Text)*strtofloat(WFBKZ.Text)/1000; end; if not Order_SubZ.IsEmpty then begin with Order_SubZ do begin Order_SubZ.DisableControls; First; while not Eof do begin Edit; if Trim(fieldbyname('YLPB').AsString)='' then YLPB:=0 else YLPB:=StrToFloat(fieldbyname('YLPB').AsString); if Trim(fieldbyname('YLSH').AsString)='' then YLSH:=0 else YLSH:=StrToFloat(fieldbyname('YLSH').AsString); FieldByName('YLQty').Value:=DHSL*YLPB/100*(1+YLSH/100); if DHSL*YLPB/100*(1+YLSH/100)-FieldByName('YCLYJKC').Value>=0 then FieldByName('BZ').Value:=DHSL*YLPB/100*(1+YLSH/100)-FieldByName('YCLYJKC').Value else FieldByName('BZ').Value:=null; Post; Next; end; Order_SubZ.EnableControls; First; end; end; if not Order_SubF.IsEmpty then begin with Order_SubF do begin Order_SubF.DisableControls; First; while not Eof do begin Edit; if Trim(fieldbyname('YLSHQ').AsString)='' then YLSH:=0 else YLSH:=StrToFloat(fieldbyname('YLSHQ').AsString); FieldByName('YLQty').Value:=DHSL*(YLSH/1000); if DHSL*(YLSH/1000)-FieldByName('YCLYJKC').Value>=0 then FieldByName('BZ').Value:=DHSL*(YLSH/1000)-FieldByName('YCLYJKC').Value else FieldByName('BZ').Value:=null; Post; Next; end; Order_SubF.EnableControls; First; end; end; end; end.