unit U_TradeInspEdit; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, cxTextEdit, DBClient, ADODB, cxGridLevel, cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses, cxControls, cxGridCustomView, cxGrid, StdCtrls, ExtCtrls, ComCtrls, ToolWin, cxButtonEdit, cxLookAndFeels, cxLookAndFeelPainters, cxNavigator, dxSkinsCore, dxSkinsDefaultPainters, dxDateRanges; type TfrmTradeInspEdit = class(TForm) ToolBar1: TToolBar; ToolButton2: TToolButton; TBClose: TToolButton; Panel1: TPanel; Label1: TLabel; CIID: TEdit; ADOTmp: TADOQuery; ADOQueryMain: TADOQuery; ADOCmd: TADOQuery; DataSource1: TDataSource; Order_MJ: TClientDataSet; ToolButton1: TToolButton; ToolButton3: TToolButton; Label2: TLabel; GrossWeight: TEdit; Label4: TLabel; Label6: TLabel; Meter: TEdit; RadioGroup1: TRadioGroup; Ma: TLabel; Label7: TLabel; MJQty1: TEdit; Label5: TLabel; Label10: TLabel; Label12: TLabel; Label14: TLabel; NetWeight: TEdit; PieceNo: TEdit; Label15: TLabel; Label11: TLabel; Yardage: TEdit; ToolButton4: TToolButton; cxGrid1: TcxGrid; TV1: TcxGridDBTableView; cxGridDBColumn2: TcxGridDBColumn; cxGridDBColumn3: TcxGridDBColumn; cxGridDBColumn4: TcxGridDBColumn; cxGridDBColumn5: TcxGridDBColumn; cxGridDBColumn6: TcxGridDBColumn; cxGridDBColumn7: TcxGridDBColumn; cxGridDBColumn8: TcxGridDBColumn; cxGridDBColumn9: TcxGridDBColumn; cxGridLevel3: TcxGridLevel; TV1Column1: TcxGridDBColumn; procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure FormDestroy(Sender: TObject); procedure tv2CDWZPropertiesEditValueChanged(Sender: TObject); procedure ToolButton1Click(Sender: TObject); procedure ToolButton3Click(Sender: TObject); procedure ToolButton2Click(Sender: TObject); procedure TBCloseClick(Sender: TObject); procedure FormShow(Sender: TObject); procedure ToolButton4Click(Sender: TObject); procedure cxGridDBColumn3PropertiesEditValueChanged(Sender: TObject); procedure TV1Column1PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); private { Private declarations } function SaveData(): Boolean; procedure GetJYXK(FJYIP: string); public { Public declarations } end; var frmTradeInspEdit: TfrmTradeInspEdit; implementation uses U_RTFun, U_ZDYHelp, U_DataLink; {$R *.dfm} procedure TfrmTradeInspEdit.GetJYXK(FJYIP: string); begin with ADOTmp do begin Close; sql.Clear; SQL.Add('select A.* from Trade_Cloth_Inspect A '); sql.Add(' where A.CIID=''' + Trim(FJYIP) + ''''); Open; end; if ADOTmp.IsEmpty then begin CIID.Text := ''; Label2.Caption := ''; Label2.Visible := False; Application.MessageBox('�������!', '��ʾ', 0); Exit; end; PieceNo.Text := Trim(ADOTmp.fieldbyname('PieceNo').AsString); GrossWeight.Text := Trim(ADOTmp.fieldbyname('GrossWeight').AsString); NetWeight.Text := Trim(ADOTmp.fieldbyname('NetWeight').AsString); Meter.Text := Trim(ADOTmp.fieldbyname('Meter').AsString); Yardage.Text := Trim(ADOTmp.fieldbyname('Yardage').AsString); if Trim(Trim(ADOTmp.fieldbyname('Grade').AsString)) = '��Ʒ' then begin RadioGroup1.ItemIndex := 0 end else if Trim(Trim(ADOTmp.fieldbyname('Grade').AsString)) = '����' then begin RadioGroup1.ItemIndex := 1; end else if Trim(Trim(ADOTmp.fieldbyname('Grade').AsString)) = '����' then begin RadioGroup1.ItemIndex := 2; end; with ADOTmp do begin Close; sql.Clear; SQL.Add('select * from Trade_Cloth_Inspect_Flaw A where A.CIID=''' + Trim(CIID.Text) + ''''); Open; end; Label2.Caption := Trim(CIID.Text); Label2.Visible := True; CIID.Text := ''; SCreateCDS(ADOTmp, Order_MJ); SInitCDSData(ADOTmp, Order_MJ); end; procedure TfrmTradeInspEdit.cxGridDBColumn3PropertiesEditValueChanged(Sender: TObject); var mvalue, CIFbeg, CIFEnd: string; FFReal: Double; begin mvalue := TcxTextEdit(Sender).EditingText; with Order_MJ do begin Edit; FieldByName('CIFEnd').Value := mvalue; Post; end; CIFbeg := Trim(Order_MJ.fieldbyname('CIFbeg').AsString); CIFEnd := Trim(Order_MJ.fieldbyname('CIFEnd').AsString); if (Trim(CIFbeg) <> '') and (Trim(CIFEnd) <> '') then begin if TryStrToFloat(CIFbeg, FFReal) and TryStrToFloat(CIFbeg, FFReal) then begin if StrToFloat(CIFEnd) < StrToFloat(CIFbeg) then begin Application.MessageBox('��ֹλ��С����ʼλ��!', '��ʾ', 0); Exit; end; with Order_MJ do begin Edit; FieldByName('CDQty').Value := StrToFloat(CIFEnd) - StrToFloat(CIFbeg); Post; end; end else begin Application.MessageBox('�Ƿ�����!', '��ʾ', 0); Exit; end; end; end; procedure TfrmTradeInspEdit.FormClose(Sender: TObject; var Action: TCloseAction); begin Action := caFree; end; procedure TfrmTradeInspEdit.FormDestroy(Sender: TObject); begin frmTradeInspEdit := nil; end; procedure TfrmTradeInspEdit.tv2CDWZPropertiesEditValueChanged(Sender: TObject); var mvalue, CIFbeg, CIFEnd: string; FFReal: Double; begin mvalue := TcxTextEdit(Sender).EditingText; with Order_MJ do begin Edit; FieldByName('CIFbeg').Value := mvalue; Post; end; CIFbeg := Trim(Order_MJ.fieldbyname('CIFbeg').AsString); CIFEnd := Trim(Order_MJ.fieldbyname('CIFEnd').AsString); if (Trim(CIFbeg) <> '') and (Trim(CIFEnd) <> '') then begin if TryStrToFloat(CIFbeg, FFReal) and TryStrToFloat(CIFbeg, FFReal) then begin if StrToFloat(CIFEnd) < StrToFloat(CIFbeg) then begin Application.MessageBox('��ֹλ��С����ʼλ��!', '��ʾ', 0); Exit; end; with Order_MJ do begin Edit; FieldByName('CIFQty').Value := StrToFloat(CIFEnd) - StrToFloat(CIFbeg); Post; end; end else begin Application.MessageBox('�Ƿ�����!', '��ʾ', 0); Exit; end; end; end; procedure TfrmTradeInspEdit.ToolButton1Click(Sender: TObject); begin if Trim(Label2.Caption) = '' then Exit; Order_MJ.Append; Order_MJ.Post; end; procedure TfrmTradeInspEdit.ToolButton3Click(Sender: TObject); begin if Trim(Label2.Caption) = '' then Exit; if Order_MJ.IsEmpty then Exit; if Trim(Order_MJ.fieldbyname('CIFID').AsString) <> '' then begin if Application.MessageBox('ȷ��Ҫɾ��������', '��ʾ', 32 + 4) <> IDYES then Exit; with ADOCmd do begin Close; sql.Clear; sql.Add('delete Trade_Cloth_Inspect_Flaw where CIFID=''' + Trim(Order_MJ.fieldbyname('CIFID').AsString) + ''''); ExecSQL; end; end; Order_MJ.Delete; end; procedure TfrmTradeInspEdit.ToolButton4Click(Sender: TObject); begin WriteCxGrid(trim(Self.Caption), Tv1, 'ӡȾ�������'); end; procedure TfrmTradeInspEdit.TV1Column1PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); begin try frmZDYHelp := TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag := 'WFBCD'; flagname := '�õ�'; if ShowModal = 1 then begin Self.Order_MJ.Edit; Self.Order_MJ.FieldByName('CIFName').value := Trim(ClientDataSet1.fieldbyname('ZdyName').AsString); end; end; finally frmZDYHelp.Free; end; end; function TfrmTradeInspEdit.SaveData(): Boolean; var maxno: string; FFreal: Double; begin try ADOCmd.Connection.BeginTrans; ///����õ�� with Order_MJ do begin First; while not Eof do begin if trim(Order_MJ.FieldByName('CIFName').AsString) = '' then raise Exception.Create(pchar('�õ����Ʋ���Ϊ�գ�')); if Trim(Order_MJ.fieldbyname('CIFID').AsString) = '' then begin if GetLSNo(ADOTmp, maxno, 'JC', 'Trade_Cloth_Inspect_Flaw', 5, 1) = False then raise Exception.Create(pchar('ȡ����ˮ��ʧ�ܣ�')); end else begin maxno := Trim(Order_MJ.fieldbyname('CIFID').AsString); end; with ADOCmd do begin Close; SQL.Clear; sql.Add(' select * from Trade_Cloth_Inspect_Flaw '); sql.Add(' where CIFID=''' + Trim(maxno) + ''' '); Open; end; with ADOCmd do begin if Trim(Order_MJ.fieldbyname('CIFID').AsString) = '' then Append else Edit; FieldByName('CIID').Value := Trim(Label2.Caption); FieldByName('CIFID').Value := Trim(maxno); RTSetSaveDataCDS(ADOCmd, Tv1, Order_MJ, 'Trade_Cloth_Inspect_Flaw', 0); Post; end; Order_MJ.Edit; Order_MJ.FieldByName('CIFID').Value := Trim(maxno); Order_MJ.FieldByName('CIID').Value := Trim(Label2.Caption); Next; end; end; with ADOCmd do begin Close; sql.Clear; sql.Add(' UPdate Trade_Cloth_Inspect Set '); sql.Add(' PieceNo=''' + Trim(PieceNo.Text) + ''' '); sql.Add(',GrossWeight=' + FloatToStr(Strtofloatdef(GrossWeight.Text, 0))); sql.Add(',NetWeight=' + FloatToStr(Strtofloatdef(NetWeight.Text, 0))); sql.Add(',Meter=' + FloatToStr(Strtofloatdef(Meter.Text, 0))); sql.Add(',Yardage=' + FloatToStr(Strtofloatdef(Yardage.Text, 0))); // if RadioGroup1.ItemIndex = 0 then // begin // sql.Add(',Grade=''��Ʒ'' '); // end // else if RadioGroup1.ItemIndex = 1 then // begin // sql.Add(',Grade=''��Ʒ'' '); // end; sql.Add(' where CIID=''' + Trim(Label2.Caption) + ''''); ExecSQL; end; ////////////////// ���¾��Ŵõ���Ϣ ////////////////// with ADOCmd do begin Close; sql.Clear; sql.Add('exec P_Trade_Insp_Up @CIID=''' + Trim(Label2.Caption) + ''''); sql.Add(',@InspType=' + QuotedStr('������')); // sql.Add(',@RulePieceNo=' + QuotedStr('�ֶ�����')); //�������ɹ��� execsql; end; ////////////////// ���¾��Ŵõ���Ϣ ////////////////// ////////////////// ����⼰��� ////////////////// if RadioGroup1.ItemIndex <> 1 then begin with ADOCmd do begin Close; sql.Clear; sql.Add('exec P_Trade_Insp_In_Stk @CIID=''' + Trim(Label2.Caption) + ''''); execsql; end; end; ////////////////// ����⼰��� ////////////////// /// ////////////////// ���½��� ////////////////// with ADOCmd do begin Close; sql.Clear; sql.Add('insert into Trade_Need_Up(UOperation,UType,UDataId) values(''����'',''����༭'',' + quotedstr(Trim(Label2.Caption)) + ') '); execsql; end; ////////////////// ���½��� ////////////////// /// ADOCmd.Connection.CommitTrans; Result := True; except Result := False; ADOCmd.Connection.RollbackTrans; application.MessageBox(PChar(Exception(ExceptObject).Message), '��ʾ��Ϣ', 0); end; end; procedure TfrmTradeInspEdit.ToolButton2Click(Sender: TObject); begin if Trim(Label2.Caption) = '' then Exit; if SaveData() then begin Application.MessageBox('����ɹ�!', '��ʾ', 0); Exit; end; end; procedure TfrmTradeInspEdit.TBCloseClick(Sender: TObject); begin Close; end; procedure TfrmTradeInspEdit.FormShow(Sender: TObject); begin ReadCxGrid(trim(Self.Caption), Tv1, 'ӡȾ�������'); if CIID.Text <> '' then begin GetJYXK(CIID.Text); end; end; end.