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

📄 pj_add.pas

📁 汽配前台收费,一个具有详细功能的小系统
💻 PAS
📖 第 1 页 / 共 4 页
字号:
  code, code1, code2: integer;
begin
  intResult := 0;
  //
  if Trim(txt_kind.Text) = '' then begin
    MessageBox(Handle, '请确定配件类型', '沈阳信德', MB_ICONQUESTION or MB_OK);
    txt_kind.SetFocus;
    Result := 1;
    Exit;
  end;
  if Trim(txt_gg.Text) = '' then begin
    MessageBox(Handle, '请确定配件规格', '沈阳信德', MB_ICONQUESTION or MB_OK);
    txt_gg.SetFocus;
    Result := 1;
    Exit;
  end;
  if Trim(txt_pj.Text) = '' then begin
    MessageBox(Handle, '请确定配件名称', '沈阳信德', MB_ICONQUESTION or MB_OK);
    txt_pj.SetFocus;
    Result := 1;
    Exit;
  end;
  if Trim(txt_unit.Text) = '' then begin
    MessageBox(Handle, '请确定单位', '沈阳信德', MB_ICONQUESTION or MB_OK);
    txt_unit.SetFocus;
    Result := 1;
    Exit;
  end;
  //
  if Trim(txt_jj.Text) = '' then begin
    MessageBox(Handle, '请确定进价', '沈阳信德', MB_ICONQUESTION or MB_OK);
    txt_jj.SetFocus;
    Result := 1;
    Exit;
  end else begin
    Val(Trim(txt_jj.Text), v2, code2);
    if (code <> 0) or (v2 < 0.01) then begin
      MessageBox(Handle, '进价无效', '沈阳信德', MB_ICONQUESTION or MB_OK);
      txt_jj.SetFocus;
      Result := 1;
      Exit;
    end;
  end;
  //
  if Trim(txt_sum.Text) = '' then begin
    MessageBox(Handle, '请确定新的追加数量', '沈阳信德', MB_ICONQUESTION or MB_OK);
    txt_sum.SetFocus;
    intResult := 1;
  end else begin
    if Trim(txt_dj.Text) = '' then begin
      MessageBox(Handle, '请确定新的单价', '沈阳信德', MB_ICONQUESTION or MB_OK);
      txt_dj.SetFocus;
      intResult := 1;
    end else begin
      Val(Trim(txt_dj.Text), v, code);
      if (code <> 0) or (v < 0.01) then begin
        MessageBox(Handle, '单价无效', '沈阳信德', MB_ICONQUESTION or MB_OK);
        txt_dj.SetFocus;
        intResult := 1;
      end else begin
        Val(Trim(txt_sum.Text), v1, code1);
        if code1 <> 0 then begin
          MessageBox(Handle, '新增数量无效', '沈阳信德', MB_ICONQUESTION or MB_OK);
          txt_sum.SetFocus;
          Result := 1;
          Exit;
        end;
        v := Int(v) + Round((Frac(v)*100))/100;
        v1 := Int(v1) + Round((Frac(v1)*100))/100;
        v2 := Int(v2) + Round((Frac(v2)*100))/100;
        if v1 < 0.01 then v1 := 0;
        qe_pj_add.FieldByName('pj_sy_sum').Value := qe_pj_add.FieldByName('pj_sy_sum').Value - qe_pj_add.FieldByName('pj_xz_sum').Value + v1;
        qe_pj_add.FieldByName('pj_xz_sum').Value := v1;
        qe_pj_add.FieldByName('pj_dj').Value := v;
        qe_pj_add.FieldByName('pj_jj').Value := v2;
        qe_pj_add.FieldByName('pj_kind').AsString := Trim(txt_kind.Text);
        qe_pj_add.FieldByName('pj_gg').AsString := Trim(txt_gg.Text);
        qe_pj_add.FieldByName('pj_name').AsString := Trim(txt_pj.Text);
        qe_pj_add.FieldByName('pj_unit').AsString := Trim(txt_unit.Text);
        if cb_sb.Checked then
          qe_pj_add.FieldByName('pj_sb').AsString := '是'
        else
          qe_pj_add.FieldByName('pj_sb').AsString := '否';
      end;
    end;
  end;
  //
  Result := intResult;
end;

function Tfrm_pj_add.RuleCheck: integer;
var
  intResult: integer;
  v1, v2, v3: Double;
  code1, code2, code3: integer;
  str_id, str_name: string;
begin
  intResult := 0;
  //
    if (Trim(txt_kind.Text) = '') or (hideList[1].ItemIndex = -1) then begin
      MessageBox(Handle, '请确定配件类型', '沈阳信德', MB_ICONQUESTION or MB_OK);
      txt_kind.SetFocus;
      intResult := 1;
    end else begin
      str_id := Copy(hideList[1].Items[hideList[1].ItemIndex], 1, 20);
      str_name := Copy(hideList[1].Items[hideList[1].ItemIndex], 21, 60);
      if Trim(str_name) <> Trim(txt_kind.Text) then begin
        MessageBox(Handle, '配件类型不完整', '沈阳信德', MB_ICONQUESTION or MB_OK);
        txt_kind.SetFocus;
        intResult := 1;
      end else begin
        if (Trim(txt_gg.Text) = '') or (hideList[2].ItemIndex = -1) then begin
          MessageBox(Handle, '请确定配件规格', '沈阳信德', MB_ICONQUESTION or MB_OK);
          txt_gg.SetFocus;
          intResult := 1;
        end else begin
          if Trim(str_id) <> Trim(qe_gg.ParamByName('ipj_kind_id').Value) then begin
            MessageBox(Handle, '配件规格与配件类型不一致', '沈阳信德', MB_ICONQUESTION or MB_OK);
            txt_kind.SetFocus;
            intResult := 1;
          end else begin
            str_name := Copy(hideList[2].Items[hideList[2].ItemIndex], 21, 60);
            if Trim(str_name) <> Trim(txt_gg.Text) then begin
              MessageBox(Handle, '配件规格不完整', '沈阳信德', MB_ICONQUESTION or MB_OK);
              txt_gg.SetFocus;
              intResult := 1;
            end else begin
              if (Trim(txt_pj.Text) = '') or (hideList[3].ItemIndex = -1) then begin
                MessageBox(Handle, '请确定配件名称', '沈阳信德', MB_ICONQUESTION or MB_OK);
                txt_pj.SetFocus;
                intResult := 1;
              end else begin
                str_name := Copy(hideList[3].Items[hideList[3].ItemIndex], 21, 60);
                if Trim(str_name) <> Trim(txt_pj.Text) then begin
                  MessageBox(Handle, '配件名称不完整', '沈阳信德', MB_ICONQUESTION or MB_OK);
                  txt_pj.SetFocus;
                  Result := 1;
                  Exit;
                end;
                str_id := Copy(hideList[1].Items[hideList[1].ItemIndex], 1, 20);
                str_name := Copy(hideList[2].Items[hideList[2].ItemIndex], 1, 20);
                {if (Trim(str_id) <> Trim(qe_name.ParamByName('ikind').Value)) or (Trim(str_name) <> Trim(qe_name.ParamByName('igg').Value)) then begin
                  MessageBox(Handle, '配件名称不存在', '沈阳信德', MB_ICONQUESTION or MB_OK);
                  txt_pj.SetFocus;
                  Result := 1;
                  Exit;
                end;}
                Val(Trim(txt_sum.Text), v1, code1);
                Val(Trim(txt_jj.Text), v2, code2);
                Val(Trim(txt_dj.Text), v3, code3);
                if (code1 <> 0) or (code3 <> 0) or (code2 <> 0) then begin
                  MessageBox(Handle, '输入的数据不是有效数字, 请检查', '沈阳信德', MB_ICONQUESTION or MB_OK);
                  txt_sum.SetFocus;
                  intResult := 1;
                end else begin
                  if (v1 < 0.01) or (v3 < 0.01) or (v2 < 0.01) then begin
                    MessageBox(Handle, '数量或单价不能为0', '沈阳信德', MB_ICONQUESTION or MB_OK);
                    txt_sum.SetFocus;
                    intResult := 1;
                  end;
                end;
              end;
            end;
          end;
        end;
      end;
    end;  
  //
  if (Trim(txt_unit.Text) = '') then begin
    MessageBox(Handle, '请确定配件单位', '沈阳信德', MB_ICONQUESTION or MB_OK);
    txt_unit.SetFocus;
    Result := 1;
    Exit;
  end;
  //
  Result := intResult;
end;

////////////////////////////////////////////////////////////////////////////////
//                                                                            //
//  THE TREATING RECORD PROCEDURE(APPEND, EDIT, SAVE, CANCEL, DELETE, QUERY)  //
//                                                                            //
////////////////////////////////////////////////////////////////////////////////
procedure Tfrm_pj_add.NewSave;
var
  str_bh, str_kind: string;
  str_gg, str_name: string;
  str_kind1, str_gg1: string;
  str_name1: string;
  str_unit: string;
  int_sum: Double;
  f_dj: Double;
  f_jj: Double;
begin
  str_bh := cur_bh;
  str_kind := Trim(Copy(hideList[1].Items[hideList[1].ItemIndex], 1, 20));
  str_gg := Trim(Copy(hideList[2].Items[hideList[2].ItemIndex], 1, 20));
  str_name := Trim(Copy(hideList[3].Items[hideList[3].ItemIndex], 1, 20));
  str_kind1 := Trim(Copy(hideList[1].Items[hideList[1].ItemIndex], 21, 60));
  str_gg1 := Trim(Copy(hideList[2].Items[hideList[2].ItemIndex], 21, 60));
  str_name1 := Trim(Copy(hideList[3].Items[hideList[3].ItemIndex], 21, 60));
  str_unit := Trim(txt_unit.Text);
  //
  int_sum := StrToFloat(Trim(txt_sum.Text));
  int_sum := Int(int_sum) + Round((Frac(int_sum)*100))/100;
  f_dj := StrToFloat(Trim(txt_dj.Text));
  f_dj := Int(f_dj) + Round((Frac(f_dj)*100))/100;
  f_jj := StrToFloat(Trim(txt_jj.Text));
  f_jj := Int(f_jj) + Round((Frac(f_jj)*100))/100;
  //
  sp_up_pj_add.ParamByName('@ipj_jj').Value := f_jj; //qe_jy.FieldByName('pj_jj').Value;
  sp_up_pj_add.ParamByName('@ipos').Value := 1;
  sp_up_pj_add.ParamByName('@idj_bh').Value := str_bh;
  sp_up_pj_add.ParamByName('@ipj_kind').Value := str_kind1;
  sp_up_pj_add.ParamByName('@ipj_gg').Value := str_gg1;
  sp_up_pj_add.ParamByName('@ipj_name').Value := str_name1;
  sp_up_pj_add.ParamByName('@ipj_kind_id').Value := str_kind;
  sp_up_pj_add.ParamByName('@ipj_gg_id').Value := str_gg;
  sp_up_pj_add.ParamByName('@ipj_iid').Value := str_name;
  sp_up_pj_add.ParamByName('@ipj_sum').Value := int_sum;
  sp_up_pj_add.ParamByName('@ipj_unit').Value := str_unit;
  sp_up_pj_add.ParamByName('@ipj_dj').Value := f_dj;
  if cb_sb.Checked then
    sp_up_pj_add.ParamByName('@ipj_sb').Value := '是'
  else
    sp_up_pj_add.ParamByName('@ipj_sb').Value := '否';
  //
  {qe_jy.Close;
  qe_jy.SQL.Clear;
  qe_jy.SQL.Add('SELECT * FROM PJ_ADD WHERE DJ_BH = ''' + str_bh + ''' AND PJ_KIND_ID = ''' + str_kind + ''' AND PJ_GG_ID = ''' + str_gg + ''' AND PJ_IID = ''' + str_name + '''');
  qe_jy.Open;
  qe_jy.First;
  //
  if (qe_jy.Bof) and (qe_jy.Eof) then begin
    //qe_jy.Close;
    //qe_jy.SQL.Clear;
    //qe_jy.SQL.Add('SELECT * FROM PJ_CK WHERE PJ_KIND_ID = ''' + str_kind + ''' AND PJ_GG_ID = ''' + str_gg + ''' AND PJ_ID = ''' + str_name + '''');
    //qe_jy.Open;
    //qe_jy.First;
    sp_up_pj_add.ParamByName('@ipj_jj').Value := f_jj; //qe_jy.FieldByName('pj_jj').Value;
    sp_up_pj_add.ParamByName('@ipos').Value := 1;
    sp_up_pj_add.ParamByName('@idj_bh').Value := str_bh;
    sp_up_pj_add.ParamByName('@ipj_kind').Value := str_kind1;
    sp_up_pj_add.ParamByName('@ipj_gg').Value := str_gg1;
    sp_up_pj_add.ParamByName('@ipj_name').Value := str_name1;
    sp_up_pj_add.ParamByName('@ipj_kind_id').Value := str_kind;
    sp_up_pj_add.ParamByName('@ipj_gg_id').Value := str_gg;
    sp_up_pj_add.ParamByName('@ipj_iid').Value := str_name;
    sp_up_pj_add.ParamByName('@ipj_sum').Value := int_sum;
    sp_up_pj_add.ParamByName('@ipj_unit').Value := str_unit;
    sp_up_pj_add.ParamByName('@ipj_dj').Value := f_dj;
    if cb_sb.Checked then
      sp_up_pj_add.ParamByName('@ipj_sb').Value := '是'
    else
      sp_up_pj_add.ParamByName('@ipj_sb').Value := '否';
  end else begin
    sp_up_pj_add.ParamByName('@ipos').Value := 2;
    sp_up_pj_add.ParamByName('@idj_bh').Value := str_bh;
    sp_up_pj_add.ParamByName('@ipj_kind_id').Value := str_kind;
    sp_up_pj_add.ParamByName('@ipj_gg_id').Value := str_gg;
    sp_up_pj_add.ParamByName('@ipj_iid').Value := str_name;
    sp_up_pj_add.ParamByName('@ipj_sum').Value := int_sum;
    sp_up_pj_add.ParamByName('@ipj_unit').Value := '';
    sp_up_pj_add.ParamByName('@ipj_dj').Value := f_dj;
    if cb_sb.Checked then
      sp_up_pj_add.ParamByName('@ipj_sb').Value := '是'
    else
      sp_up_pj_add.ParamByName('@ipj_sb').Value := '否';
  end;}
  sp_up_pj_add.ExecProc;
end;

procedure Tfrm_pj_add.SaveInit;
begin
  pe_bh.Enabled := True;
  pe_image.Visible := True;
  pe_info.Enabled := True;
  pe_edit.Visible := False;
  //
  txt_kind.Enabled := True;
  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.EditInit;
var
  f_fk_sum: Double;
begin
  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;
  pe_edit.Visible := True;
  pe_image.Visible := False;
  pe_info.Enabled := False;
  pe_bh.Enabled := False;
  //
  b1.Enabled := False;
  b2.Enabled := False;
  b3.Enabled := False;
  //
  txt_kind.Text := Trim(qe_pj_add.FieldByName('pj_kind').AsString);
  txt_gg.Text := Trim(qe_pj_add.FieldByName('pj_gg').AsString);
  txt_pj.Text := Trim(qe_pj_add.FieldByName('pj_name').AsString);
  txt_sum.Text := FloatToStr(qe_pj_add.FieldByName('pj_xz_sum').Value);
  txt_unit.Text := Trim(qe_pj_add.FieldByName('pj_unit').AsString);
  txt_dj.Text := FloatToStr(qe_pj_add.FieldByName('pj_dj').Value);
  txt_jj.Text := FloatToStr(qe_pj_add.FieldByName('pj_jj').Value);
  //
  if cur_sb = 0 then begin
    if Trim(qe_pj_add.FieldByName('pj_sb').AsString) = '是' then
      cb_sb.Checked := True
    else
      cb_sb.Checked := False;
  end else if cur_sb = 1 then
    cb_sb.Checked := True;
  //
  txt_kind.SetFocus;
  //
  cmd_edit.Enabled := False;
  cmd_new.Enabled := False;
  cmd_save.Enabled := False;
  cmd_cancel.Enabled := True;
  cmd_print.Enabled := False;
  cmd_print1.Enabled := False;
  cmd_del.Enabled := False;
  //
  qe_pj_add.Edit;
  curState := dsEdit;
end;

procedure Tfrm_pj_add.NewInit;
begin
  pe_bh.Enabled := False;
  pe_image.Visible := False;
  pe_info.Enabled := False;
  pe_edit.Visible := True;
  //
  cmd_new.Enabled := True;
  cmd_save.Enabled := False;
  cmd_cancel.Enabled := True;
  cmd_del.Enabled := False;
  cmd_print.Enabled := False;
  cmd_print1.Enabled := False;
  cmd_edit.Enabled := False;
  //
  txt_kind.Text := '';
  txt_gg.Text := '';
  txt_pj.Text := '';
  txt_sum.Text := '';
  txt_dj.Text := '';
  txt_jj.Text := '';
  txt_unit.Text := '';
  //
  if cur_sb = 0 then
    cb_sb.Checked := False
  else
    cb_sb.Checked := True;
  //
  txt_kind.SetFocus;
  //
  curState := dsInsert;
end;

procedure Tfrm_pj_add.CancelInit;
begin
  if qe_pj_add.State = dsEdit then
    qe_pj_add.Cancel;
  //
  pe_bh.Enabled := True;
  pe_image.Visible := True;
  pe_info.Enabled := True;
  pe_edit.Visible := False;
  //
  txt_kind.Enabled := True;

⌨️ 快捷键说明

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