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

📄 pj_add.pas

📁 汽配前台收费,一个具有详细功能的小系统
💻 PAS
📖 第 1 页 / 共 4 页
字号:
  txt_gg.Enabled := True;
  txt_pj.Enabled := True;
  b1.Enabled := True;
  b2.Enabled := True;
  b3.Enabled := True;  
  //
  curState := dsBrowse;
  EnabledComponent(dsBrowse);
end;

procedure Tfrm_pj_add.ExeDelandInit;
var
  intSum: Double;
  f_fk_sum: Double;
begin
  if MessageBox(Handle, '确实要删除当前记录?', '沈阳信德', MB_ICONQUESTION or MB_OKCANCEL) = ID_OK then begin
    intSum := qe_pj_add.FieldByName('pj_ck_sum').Value;
    if intSum > 0.01 then begin
      MessageBox(Handle, '配件已经出库,请首先进行配件退库,才可删除', '沈阳信德', MB_ICONQUESTION or MB_OK);
      Exit;
    end;
    f_fk_sum := qe_pj_add.FieldByName('pj_fk_sum').Value;
    if f_fk_sum > 0.01 then begin
      MessageBox(Handle, '存在预返库数量,请先退库', '沈阳信德', MB_ICONQUESTION or MB_OK);
      Exit;
    end;
    sp_del_from_pj_add.ParamByName('@ipj_id').Value := qe_pj_add.FieldByName('pj_id').AsInteger;
    sp_del_from_pj_add.ExecProc;
    //
    qe_pj_add.Close;
    qe_pj_add.Open;
    qe_pj_add.First;
  end;
  //
  EnabledComponent(dsBrowse);
end;

procedure Tfrm_pj_add.QueryResult;
var
  intResult: integer;
begin
  intResult := 0;
  //
  qe_jy1.Close;
  qe_jy1.ParamByName('ibh').Value := Trim(combo_bh.Text);
  qe_jy1.Open;
  qe_jy1.First;
  //
  if (qe_jy1.Bof) and (qe_jy1.Eof) then begin
    MessageBox(Handle, '未找到此委托编号相关的登记信息', '沈阳信德', MB_ICONQUESTION or MB_OK);
    intResult := 1;
  end;
  //
  if intResult = 0 then begin
    if (qe_jy1.FieldByName('dj_wx_kind').AsString) = '三包' then begin
      cb_sb.Checked := True;
      cb_sb.Enabled := False;
      cur_sb := 1;
    end else begin
      cb_sb.Checked := False;
      cb_sb.Enabled := True;
      cur_sb := 0;
    end;
    //  
    qe_pj_add.Close;
    qe_pj_add.ParamByName('ibh').Value := Trim(combo_bh.Text);
    qe_pj_add.Open;
    qe_pj_add.First;
    //
    cur_bh := Trim(combo_bh.Text);
    cur_cph := Trim(qe_jy1.FieldByName('dj_cph').AsString);
    cur_cx := Trim(qe_jy1.FieldByName('dj_cx').AsString);
    cur_cz := Trim(qe_jy1.FieldByName('dj_cz').AsString);
    cur_czdw := Trim(qe_jy1.FieldByName('dj_czdw').AsString);
    cur_dph := Trim(qe_jy1.FieldByName('dj_dph').AsString);
    //
    cur_bx := qe_jy1.FieldByName('dj_bx_bs').AsInteger;
    if cur_bx = 1 then
      cur_dj := 'pj_sj'
    else if cur_bx = 0 then
      cur_dj := 'pj_sj';
    //
    EnabledComponent(dsBrowse);
  end else if intResult = 1 then begin
    qe_pj_add.Close;
    qe_jy1.Close;
    //
    cmd_edit.Enabled := False;
    cmd_new.Enabled := False;
    cmd_save.Enabled := False;
    cmd_cancel.Enabled := False;
    cmd_del.Enabled := False;
    cmd_print.Enabled := False;
    cmd_print1.Enabled := False;
  end;
end;

procedure Tfrm_pj_add.ExportInit;
var
  intXSum, intOSum: Double;
  strKind, strGg, strName: string;
  intpos: integer;
  intId: integer;
begin
  if MessageBox(Handle, '确定要将追加配件出库吗?', '沈阳信德', MB_ICONQUESTION or MB_OKCANCEL) = ID_CANCEL then
    Exit;
  //
  qe_jy.Close;
  qe_jy.SQL.Clear;
  qe_jy.SQL.Add('SELECT * FROM PJ_ADD WHERE DJ_BH = ''' + cur_bh + '''');
  qe_jy.Open;
  qe_jy.First;
  //
  intpos := 0;
  lst_kind.Clear;
  lst_gg.Clear;
  lst_name.Clear;
  lst_sum.Clear;
  lst_id.Clear;
  while not qe_jy.Eof do begin
    intXSum := qe_jy.FieldByName('pj_xz_sum').Value;
    strKind := Trim(qe_jy.FieldByName('pj_kind_id').AsString);
    strGg := Trim(qe_jy.FieldByName('pj_gg_id').AsString);
    strName := Trim(qe_jy.FieldByName('pj_iid').AsString);
    intId := qe_jy.FieldByName('pj_id').AsInteger;
    //
    if intXSum >= 0.01 then begin
      qe_jy2.Close;
      qe_jy2.ParamByName('ikind').Value := strKind;
      qe_jy2.ParamByName('igg').Value := strGg;
      qe_jy2.ParamByName('iname').Value := strName;
      qe_jy2.Open;
      qe_jy2.First;
      //
      if (qe_jy2.Bof) and (qe_jy2.Eof) then begin
        //MessageBox(Handle, '库存中不存在该配件', '沈阳信德', MB_ICONQUESTION or MB_OK);
        //intpos := 1;
        //Break;
        intXSum := 0;
      end else begin
        intOSum := qe_jy2.FieldByName('pj_sum').Value;
        if intOSum < 0.01 then begin
          //MessageBox(Handle, '该配件库存数量为0', '沈阳信德', MB_ICONQUESTION or MB_OK);
          //intpos := 1;
          //Break;
          intXSum := 0;
        end else begin
          if intOSum < intXSum then begin
            //MessageBox(Handle, '出库数量大于现库存数量,配件出库失败', '沈阳信德', MB_ICONQUESTION or MB_OK);
            //intpos := 1;
            //Break;
            intXSum := intOSum;
          end;
        end;
      end;
      //
      lst_kind.Items.Add(strKind);
      lst_gg.Items.Add(strGg);
      lst_name.Items.Add(strName);
      lst_sum.Items.Add(FloatToStr(intXSum));
      lst_id.Items.Add(IntToStr(intId));
    end;
    //
    qe_jy.Next;
  end;
  //
  if intpos = 1 then begin
    qe_jy.Close;
    qe_jy2.Close;
    Exit;
  end else begin
    if lst_kind.Items.Count = 0 then begin
      MessageBox(Handle, '没有新增配件可出库', '沈阳信德', MB_ICONQUESTION or MB_OK);
      qe_jy.Close;
      qe_jy2.Close;
      Exit;
    end;
    for intpos := 0 to lst_kind.Items.Count - 1 do begin
      sp_up_pj_ck.ParamByName('@ipos').Value := 1;
      sp_up_pj_ck.ParamByName('@ipj_kind_id').Value := lst_kind.Items[intpos];
      sp_up_pj_ck.ParamByName('@ipj_gg_id').Value := lst_gg.Items[intpos];
      sp_up_pj_ck.ParamByName('@ipj_id').Value := lst_name.Items[intpos];
      sp_up_pj_ck.ParamByName('@ipj_sum').Value := StrToFloat(lst_sum.Items[intpos]);
      sp_up_pj_ck.ExecProc;
      //
      sp_up_pj_add1.ParamByName('@ipos').Value := 1;
      sp_up_pj_add1.ParamByName('@ipj_xz_sum').Value := StrToFloat(lst_sum.Items[intpos]);
      sp_up_pj_add1.ParamByName('@ipj_id').Value := StrToInt(lst_id.Items[intpos]);
      sp_up_pj_add1.ParamByName('@idate').Value := frm_log.controlDate(DateToStr(Date()));
      sp_up_pj_add1.ExecProc;
    end;
    //
    qe_jy.Close;
    qe_jy2.Close;
    //
    qe_pj_add.Close;
    qe_pj_add.Open;
    qe_pj_add.Last;
  end;
end;

////////////////////////////////////////////////////////////////////////////////
//                                                                            //
//              THE CLICK PROCEDURE FOR BUTTONS OF CONTROLING RECORDS         //
//                                                                            //
////////////////////////////////////////////////////////////////////////////////

procedure Tfrm_pj_add.ControlClick1(Sender: TObject);
var
  intResult: integer;
  i: integer;
  intTag: integer;
begin
  intTag := TBitBtn(Sender).Tag;
  case intTag of
    20: begin       //APPENDING NEW RECORD
          for i := 1 to 3 do
            hideList[i].Visible := False;
          //
          if (curState = dsInsert) and (cmd_save.Enabled) then begin
            intResult := RuleCheck;
            if intResult = 1 then
              Exit
            else begin
              NewSave;
              qe_pj_add.Close;
              qe_pj_add.Open;
              qe_pj_add.Last;
            end;
          end;
          //
          NewInit;
        end;
    21: EditInit;   //EDITING THE CURRENT RECORD
    22: begin       //SAVING THE EDITED RECORD
          for i := 1 to 3 do
            hideList[i].Visible := False;
          //
          if curState = dsInsert then begin
            intResult := RuleCheck;
            if intResult = 1 then
              Exit
            else begin
              NewSave;
              qe_pj_add.Close;
              qe_pj_add.Open;
              qe_pj_add.Last;
            end;
          end else if curState = dsEdit then begin
            intResult := RuleCheck1;
            if intResult = 1 then
              Exit
            else
              qe_pj_add.Post;
          end;
          //
          SaveInit;
        end;
    23: begin     //RESTORING THE EDTING RECORD TO BEGINNING STATUS
          for i := 1 to 3 do
            hideList[i].Visible := False;
          //
          CancelInit;
        end;
    24: begin    //DELETE THE CURRENT RECORD FROM DATABASE
          ExeDelandInit;
        end;
    25: begin    //EXPORT THE GOODS FOR REPAIR
          ExportInit;
        end;
    26: PrintInit; //QUERYING THE RECORDSET           
  end;
end;

////////////////////////////////////////////////////////////////////////////////
//                                                                            //
//          FORM PROCEDURE(SHOW, CLOSE, CLOSEQUERY, DESTROY)                  //
//                                                                            //
////////////////////////////////////////////////////////////////////////////////
procedure Tfrm_pj_add.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  Action := caFree;
end;

procedure Tfrm_pj_add.FormCloseQuery(Sender: TObject;
  var CanClose: Boolean);
var
  intResult: integer;
begin
  CanClose := True;
  //
  if (curState = dsInsert) or (curState = dsEdit) then begin
    if cmd_save.Enabled then begin
      intResult := MessageBox(Handle, '记录正被编辑, 是否在关闭窗体前保存所作修改?', '沈阳信德', MB_YESNOCANCEL or MB_ICONQUESTION);
      if intResult = ID_YES then begin
        if curState = dsInsert then
          intResult := RuleCheck
        else if curState = dsEdit then
          intResult := RuleCheck1;
        if intResult = 1 then begin
          CanClose := False;
          Exit;
        end;
        if curState = dsEdit then
          qe_pj_add.Post
        else if curState = dsInsert then
          NewSave;
        CanClose := True;
      end else if intResult = ID_NO then begin
        if curState = dsEdit then
          qe_pj_add.Cancel;
        CanClose := True;
      end else if intResult = ID_CANCEL then
        CanClose := False;
    end;
  end;
  //
  if CanClose then begin
    qe_pj_add.Close;
    qe_pj.Close;
    qe_gg.Close;
    qe_name.Close;
    qe_jy.Close;
    qe_jy1.Close;
    qe_jy2.Close;
    //
    frm_main.mu_yw_gl_pj.Enabled := True;
    frm_main.cmd_add.Enabled := True;
    frm_main.current_handle := 0;
    //
    frm_main.Tag := 1; //标识窗体能否关闭; 1-能关闭;2-不能关闭;
  end;
end;

procedure Tfrm_pj_add.FormShow(Sender: TObject);
begin
  qe_pj_add.Close;
  //
  frm_main.mu_yw_gl_pj.Enabled := False;
  frm_main.cmd_add.Enabled := False;
  //
  frm_main.current_handle := Handle;
  //
  arrayInit;
  lstInfoInit;
  InitBHList;
  //
  cmd_new.Enabled := False;
  cmd_edit.Enabled := False;
  cmd_save.Enabled := False;
  cmd_cancel.Enabled := False;
  cmd_del.Enabled := False;
  cmd_print.Enabled := False;
  cmd_print1.Enabled := False;
  //
  combo_bh.SetFocus;
end;

procedure Tfrm_pj_add.FormDestroy(Sender: TObject);
begin
  qe_pj_add := nil;
  qe_pj := nil;
  qe_gg := nil;
  qe_name := nil;
  qe_jy := nil;
  qe_jy1 := nil;
  qe_jy2 := nil;
  //
  frm_pj_add := nil;
end;

procedure Tfrm_pj_add.combo_bhChange(Sender: TObject);
begin
  QueryResult;
end;

end.

⌨️ 快捷键说明

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