⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 frmdsqc00_detalp.~pas

📁 进销存管理系统包含开题报告、无错程序源代码、无个性标记的可执行程序、院优毕业论文、PPT答辩资料等
💻 ~PAS
字号:
unit FrmDsQc00_DetalP;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, FrmBaseFormP, DB, ADODB, StdCtrls, ExtCtrls, Menus;

type
  TFrmDsQc00_Detal = class(TFrmBaseForm)
    Img1: TImage;
    Label1: TLabel;
    Label2: TLabel;
    Shape1: TShape;
    Shape2: TShape;
    Label3: TLabel;
    Label4: TLabel;
    Label8: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label9: TLabel;
    Label10: TLabel;
    Label11: TLabel;
    Label12: TLabel;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit7: TEdit;
    Edit3: TEdit;
    Edit4: TEdit;
    Edit5: TEdit;
    Edit8: TEdit;
    Edit9: TEdit;
    Edit11: TEdit;
    Edit13: TEdit;
    Edit12: TEdit;
    ADOQ_DsQc01: TADOQuery;
    ADOQ_DsEl00: TADOQuery;
    Label13: TLabel;
    ADOQ_DsCh03: TADOQuery;
    procedure FormShow(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Edit3DblClick(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure Edit12Exit(Sender: TObject);
    procedure Edit3Exit(Sender: TObject);
    procedure Edit4Exit(Sender: TObject);
    procedure Edit11Exit(Sender: TObject);
    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
  private
    { Private declarations }
  public

    { Public declarations }
  end;

var
  FrmDsQc00_Detal: TFrmDsQc00_Detal;
  FailFlag:Boolean;
implementation

uses FrmMainP,SysPub, DataM1P, FrmDsQc00P ;

{$R *.dfm}

procedure TFrmDsQc00_Detal.FormShow(Sender: TObject);
begin
  inherited;
  FrmMain.TlB1.Enabled :=False;
  Img1.Picture.LoadFromFile(_AppPath+'Bmp\Tao.Bmp');
  FrmMain.TQuit.Enabled :=True;
  If DetalFlag=1 then
  Begin
  Edit1.Text :=ADOQ_DsQc01.FieldByName('QC_ID').AsString ;
  Edit2.Text :=ADOQ_DsQc01.FieldByName('QC_SID').AsString ;
  Edit3.Text :=ADOQ_DsQc01.FieldByName('CH_ID').AsString ;
  Edit4.Text :=ADOQ_DsQc01.FieldByName('CH_SID').AsString ;
  Edit5.Text :=ADOQ_DsQc01.FieldByName('EL_NO').AsString ;
  IF ADOQ_DsEl00.Locate('EL_No',Edit5.Text,[]) Then
     Edit7.Text :=ADOQ_DsEl00.FieldByName('El_Name').AsString
     Else
     Edit7.Text :='';
  Edit11.Text :=FloatToStr(ADOQ_DsQc01.FieldByName('QC_QTY').AsFloat ) ;
  Edit12.Text :=FloatToStr(ADOQ_DsQc01.FieldByName('QC_AQty').AsFloat );
  Edit13.Text :=ADOQ_DsQc01.FieldByName('QC_NOTE').AsString ;
  End
  Else
    Begin
      Edit1.Text :=StrFNo ;
      Edit2.Text :=StrSno;
    End;
end;

procedure TFrmDsQc00_Detal.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
 // inherited;
  FrmMain.TlB1.Enabled :=True;
  IF Edit12.Text ='' Then
     Edit12.Text :='0.0';
  Try
  DataM1.Adoc.BeginTrans ;
  With ADOQ_DsQc01 Do
       IF DetalFlag=0 then
       Begin
         Edit ;
         FieldByName('QC_ID').AsString :=StrFNo ;
         FieldByName('QC_SID').AsString :=StrSno;
         FieldByName('CH_ID').AsString :=Edit3.Text ;
         FieldByName('CH_SID').AsString :=Edit4.Text ;
         FieldByName('EL_NO').AsString :=Edit5.Text ;
         FieldByName('QC_QTY').AsFloat :=StrToFloat(Edit11.Text ) ;
         FieldByName('QC_AQTY').AsFloat :=StrToFloat(Edit12.Text ) ;
         FieldByName('QC_NOTE').AsString :=Edit13.Text ;
         post;
       End
       Else
       Begin
         Edit;
         FieldByName('CH_ID').AsString :=Edit3.Text ;
         FieldByName('CH_SID').AsString :=Edit4.Text ;
         FieldByName('EL_NO').AsString :=Edit5.Text ;
         FieldByName('QC_QTY').AsFloat :=StrToFloat(Edit11.Text ) ;
         FieldByName('QC_AQTY').AsFloat :=StrToFloat(Edit12.Text ) ;
         FieldByName('QC_NOTE').AsString :=Edit13.Text ;
         post;
      End;
   DataM1.Adoc.CommitTrans ;
   Except
      Begin
      Showmessage('数据保存出错');
      DataM1.Adoc.RollbackTrans ;
      abort;
      End;
end;
ADOQ_DsQc01.Active :=False;
ADOQ_DsEL00.Active :=False;
ADOQ_DsCh03.Active :=False;
action:=cafree;
End;

procedure TFrmDsQc00_Detal.FormCreate(Sender: TObject);
var Sqltext:String ;
begin
  //inherited;
  SqlText:='Select * From DsQC01 Where QC_ID='+''''+StrFno+''''+' And QC_SID='+''''+StrSno+'''' ;
  ADOQ_DsQc01.SQL.Clear ;
  ADOQ_DsQc01.SQL.Text:=SqlText;
  IF ADOQ_DsQc01.Active =False Then
     ADOQ_DsQc01.Active :=True;
  ADOQ_DsQc01.Open ;
  ADOQ_DsEl00.Active :=True;
  ADOQ_DsCh03.Active :=True;
  FailFlag:=False;
end;

procedure TFrmDsQc00_Detal.Edit3DblClick(Sender: TObject);
var SqlStr:String;
begin
  inherited;
   IF Edit3.ReadOnly <>True Then
     Begin
       SqlStr:='Select Ch_ID as 采购单号,Ch_SID as 采购项次,EL_NO as 料品名称,Ch_Qty As 采购数量,Ch_AQty As 验收数量,Ch_BQty As 退货数量,Ch_Dqty As 待交数量 From DsCh03 Where Ch_ID Like '+''''+Edit3.Text+'%'+''''+' Order By Ch_ID,CH_SID';
       Edit3.Text :=SetFindForm(Self.Caption,SqlStr);
     End;
end;


procedure TFrmDsQc00_Detal.Edit12Exit(Sender: TObject);
begin
  inherited;

  IF Edit12.Text ='' Then
     Begin
     Edit12.Text :='0.0';
     PD_Sure:='N';
     End
     Else
       PD_Sure:='Y';
   Try
    IF StrToFloat(Edit12.Text)<0 Then
       Begin
       ShowMessage('验收数量不能小于0!');
       Edit12.SetFocus ;
       FailFlag:=True;
       exit;
       End;
    IF StrToFloat(Edit12.Text) >StrToFloat(Edit11.Text)  Then
     Begin
       ShowMessage('验收数不能大于送货数!');
       Edit12.SetFocus ;
       FailFlag:=True;
       Exit;
     End;
    Except
       Begin
       ShowMessage('非法数据');
       Edit12.SetFocus ;
       FailFlag:=True;
       Exit;
       End;
    End;
FailFlag:=False;

end;

procedure TFrmDsQc00_Detal.Edit3Exit(Sender: TObject);
begin
  inherited;
  IF Edit3.Text='' Then
     ShowMessage('无采购订单');
end;

procedure TFrmDsQc00_Detal.Edit4Exit(Sender: TObject);
begin
  inherited;
  IF (Edit3.Text<>'') Then
     IF ADOQ_DsCh03.Locate('Ch_ID;Ch_SID',VarArrayOf([Edit3.Text,Edit4.Text]),[loCaseInsensitive]) Then
        Begin
          IF (ADOQ_DsCh03.FieldByName('CH_Sure').AsString<>'Y') Then
              Begin
                ShowMessage('采购单号'+Edit3.Text+'项次'+Edit4.Text+'未确认');
                Edit4.SetFocus ;
                FailFlag:=True;
                Exit;
              End;
          Edit5.Text :=ADOQ_DsCh03.fieldByName('EL_NO').AsString ;
          IF ADOQ_DsEL00.Locate('EL_No',Edit5.Text,[]) Then
             Edit7.Text :=ADOQ_DsEl00.FieldByName('EL_Name').AsString
             Else
             Edit7.Text :='';
          Edit8.Text :=FloatToStr(ADOQ_DsCh03.FieldByName('CH_QTY').AsFloat) ;
          Edit9.Text :=FloatToStr(ADOQ_DsCh03.FieldByName('Ch_Dqty').AsFloat );
          End;
 FailFlag:=False;
end;

procedure TFrmDsQc00_Detal.Edit11Exit(Sender: TObject);
begin
  inherited;
  IF Edit11.Text='0' Then
     Begin
       ShowMessage('送货数量为0');
       Edit11.SetFocus ;
      // FailFlag:=True;
       Exit;
     End
     Else
       FailFlag:=False;
  Try
    IF StrToFloat(Edit11.Text)<0 Then
       Begin
       ShowMessage('送货数量不能小于0!');
       Edit11.SetFocus ;
       FailFlag:=True;
       exit;
       End;
    Except
       Begin
       ShowMessage('非法数据');
       Edit11.SetFocus ;
       FailFlag:=True;
       Exit;
       End;
    End;
  IF StrToFloat(Edit11.Text)>StrToFloat(Edit9.Text) Then
     Begin
       ShowMessage('送货数量不能大于可采量!');
       Edit11.SetFocus ;
       FailFlag:=True;
       Exit;
     End;
FailFlag:=False;
end;

procedure TFrmDsQc00_Detal.FormCloseQuery(Sender: TObject;
  var CanClose: Boolean);
begin
  inherited;
  IF FailFlag=True Then
     Begin
       ShowMessage('一个或多个栏位有异常,请先确认数据正确再退出!');
       CanClose:=False;
     End;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -