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

📄 pj_wm.pas

📁 汽配前台收费,一个具有详细功能的小系统
💻 PAS
📖 第 1 页 / 共 3 页
字号:

////////////////////////////////////////////////////////////////////////////////
//                                                                            //
//        THE CHECK FOR TRADE RULE BEFORE SAVING THE EDITING RECORD           //
//                                                                            //
////////////////////////////////////////////////////////////////////////////////
function Tfrm_pj_wm.RuleCheck1: integer;
var
  intResult: integer;
  v: Double;
  code: integer;
  v1, v2: Double;
begin
  intResult := 0;
  //
  if (Trim(txt_sum.Text) = '') then begin
    MessageBox(Handle, '请确定销售数量', '沈阳信德', MB_ICONQUESTION or MB_OK);
    txt_sum.SetFocus;
    intResult := 1;
  end else begin
    Val(Trim(txt_sum.Text), v1, code);
    if (code <> 0) or (v1 < 0.01) then begin
      MessageBox(Handle, '销售数量无效', '沈阳信德', MB_ICONQUESTION or MB_OK);
      txt_sum.SetFocus;
      Result := 1;
      Exit;
    end;
    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
        v1 := Int(v1) + Round((Frac(v1)*100))/100;
        qe_jy.Close;
        qe_jy.SQL.Clear;
        qe_jy.SQL.Add('SELECT * FROM PJ_CK WHERE PJ_KIND = ''' + Trim(txt_kind.Text) + ''' AND PJ_GG = ''' + Trim(txt_gg.Text) + ''' AND PJ_NAME = ''' + Trim(txt_pj.Text) + '''');
        qe_jy.Open;
        qe_jy.First;
        v2 := qe_jy.FieldByName('pj_sum').Value;
        qe_jy.Close;
        if v1 > v2 then begin
          MessageBox(Handle, '销售数量超界', '沈阳信德', MB_ICONQUESTION or MB_OK);
          txt_sum.SetFocus;
          Result := 1;
          Exit;
        end;
      end;
    end;
  end;
  //
  Result := intResult;
end;

function Tfrm_pj_wm.RuleCheck: integer;
var
  intResult: integer;
  v1, v2: Double;
  v3: Double;
  code1, code3: integer;
  str_id, str_name: string;
  strSQL: 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_dj.Text), v3, code3);
                if (code1 <> 0) or (code3 <> 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) then begin
                    MessageBox(Handle, '数量不能为0', '沈阳信德', MB_ICONQUESTION or MB_OK);
                    txt_sum.SetFocus;
                    intResult := 1;
                  end else begin
                    qe_jy.Close;
                    qe_jy.SQL.Clear;
                    strSQL := 'SELECT * FROM PJ_CK WHERE PJ_KIND_ID = ''' + Trim(Copy(hideList[1].Items[hideList[1].ItemIndex], 1, 20)) + ''' ';
                    strSQL := strSQL + 'AND PJ_GG_ID = ''' + Trim(Copy(hideList[2].Items[hideList[2].ItemIndex], 1, 20)) + ''' ';
                    strSQL := strSQL + 'AND PJ_ID = ''' + Trim(Copy(hideList[3].Items[hideList[3].ItemIndex], 1, 20)) + ''' ';
                    qe_jy.SQL.Add(strSQL);
                    qe_jy.Open;
                    qe_jy.First;
                    v2 := qe_jy.FieldByName('pj_sum').Value;
                    qe_jy.Close;
                    v1 := Int(v1) + Round((Frac(v1)*100))/100;
                    if v1 > v2 then begin
                      MessageBox(Handle, '销售数量超界', '沈阳信德', MB_ICONQUESTION or MB_OK);
                      txt_sum.SetFocus;
                      Result := 1;
                      Exit;
                    end;
                  end;
                end;
              end;
            end;
          end;
        end;
      end;
    end;  
  //
  Result := intResult;
end;

procedure Tfrm_pj_wm.controlDj(intState: TDataSetState);
var
  str_kind, str_gg, str_name: string;
  str_kind1, str_gg1, str_name1: string;
  f_sum, f_dj: Double;
begin
  f_sum := StrToFloat(Trim(txt_sum.Text));
  f_sum := Int(f_sum) + Round((Frac(f_sum)*100))/100;
  f_dj := StrToFloat(Trim(txt_dj.Text));
  f_dj := Int(f_dj) + Round((Frac(f_dj)*100))/100;
  //
  if intState = dsInsert then begin
    str_kind := Trim(Copy(hideList[1].Items[hideList[1].ItemIndex], 21, 60));
    str_gg := Trim(Copy(hideList[2].Items[hideList[2].ItemIndex], 21, 60));
    str_name := Trim(Copy(hideList[3].Items[hideList[3].ItemIndex], 21, 60));
    str_kind1 := Trim(Copy(hideList[1].Items[hideList[1].ItemIndex], 1, 20));
    str_gg1 := Trim(Copy(hideList[2].Items[hideList[2].ItemIndex], 1, 20));
    str_name1 := Trim(Copy(hideList[3].Items[hideList[3].ItemIndex], 1, 20));
    //
    qe_jy.Close;
    qe_jy.SQL.Clear;
    qe_jy.SQL.Add('SELECT * FROM WM_GL WHERE WM_BH = ''' + Trim(txt_dj_bh.Caption) + ''' AND PJ_CZR <> ''' + frm_main.user_name + '''');
    qe_jy.Open;
    if (qe_jy.Eof) and (qe_jy.Bof) then begin
      ///
    end else begin
      MessageBox(Handle, '注意:委托编号已被占用,将采用新的委托编号', '提醒', MB_ICONQUESTION or MB_OK);
      SetNewBH;
    end;
    //
    qe_jy.Close;
    qe_jy.SQL.Clear;
    qe_jy.SQL.Add('SELECT * FROM PJ_CK WHERE PJ_KIND_ID = ''' + str_kind1 + ''' AND PJ_GG_ID = ''' + str_gg1 + ''' AND PJ_ID = ''' + str_name1 + '''');
    qe_jy.Open;
    qe_jy.First;
    qe_wm_gl.FieldByName('pj_jj').Value := qe_jy.FieldByName('pj_jj').Value;
    //
    qe_wm_gl.FieldByName('wm_bh').AsString := Trim(txt_dj_bh.Caption);
    qe_wm_gl.FieldByName('wm_date').AsString := frm_log.controlDate(DateToStr(Date()));
    qe_wm_gl.FieldByName('wm_year').AsInteger := year;
    qe_wm_gl.FieldByName('wm_month').AsInteger := month;
    qe_wm_gl.FieldByName('wm_day').AsInteger := day;
    qe_wm_gl.FieldByName('pj_kind').AsString := str_kind;
    qe_wm_gl.FieldByName('pj_gg').AsString := str_gg;
    qe_wm_gl.FieldByName('pj_name').AsString := str_name;
    qe_wm_gl.FieldByName('pj_kind_id').AsString := str_kind1;
    qe_wm_gl.FieldByName('pj_gg_id').AsString := str_gg1;
    qe_wm_gl.FieldByName('pj_id').AsString := str_name1;
    qe_wm_gl.FieldByName('pj_ghdw').AsString := Trim(txt_dw.Caption);
    //
    qe_wm_gl.FieldByName('pj_ck_sum').Value := f_sum;
    qe_wm_gl.FieldByName('pj_dj').Value := f_dj;
    //
    qe_wm_gl.FieldByName('pj_unit').AsString := Trim(txt_unit.Text);
    qe_wm_gl.FieldByName('edit_type').Value := 1;
    qe_wm_gl.FieldByName('pj_czr').AsString := frm_main.user_name;
  end else if intState = dsEdit then begin
    qe_wm_gl.FieldByName('pj_ck_sum').Value := f_sum;
    qe_wm_gl.FieldByName('pj_dj').Value := f_dj;
  end;
  //  
  cmd_print.Tag := 25;
end;

////////////////////////////////////////////////////////////////////////////////
//                                                                            //
//                   CONTROLING THE ENTER FOR ALL CONTROLS                    //
//                                                                            //
////////////////////////////////////////////////////////////////////////////////
procedure Tfrm_pj_wm.ControlEnter(Sender: TObject);
var
  i: integer;
  str_name, str_name1: string;
  str_pym: string;
  str_id: string;
  intLen: integer;
begin
  for i := 1 to 3 do
    hideList[i].Visible := False;
  //
  if qe_wm_gl.State = dsInsert then begin
    if Trim(txt_pj.Text) <> '' then begin
      if hideList[3].ItemIndex > -1 then begin
        str_name := Trim(Copy(hideList[3].Items[hideList[3].ItemIndex], 21, 60));
        if Trim(txt_pj.Text) = Trim(str_name) then begin
          txt_unit.Text := lst_unit.Items[hideList[3].ItemIndex];
          txt_dj.Text := lst_sj.Items[hideList[3].ItemIndex];
        end else begin
          txt_unit.Text := '';
          txt_dj.Text := '';
        end;
      end else begin
        txt_unit.Text := '';
        txt_dj.Text := '';
      end;
    end else begin
      txt_unit.Text := '';
      txt_dj.Text := '';
    end;
  end;  
  //
  if TWinControl(Sender).Tag = 2 then begin
    if (Trim(txt_kind.Text) = '') or (hideList[1].ItemIndex = -1) then begin
      MessageBox(Handle, '请确定配件类型', '沈阳信德', MB_ICONQUESTION or MB_OK);
      txt_kind.SetFocus;
      Exit;
    end else begin
      str_name := Trim(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;
        Exit;
      end else begin
        str_id := Copy(hideList[1].Items[hideList[1].ItemIndex], 1, 20);
        if Trim(str_id) <> Trim(qe_gg.ParamByName('ipj_kind_id').Value) then begin
          qe_gg.Close;
          qe_gg.ParamByName('ipj_kind_id').Value := Trim(str_id);
          qe_gg.Open;
          qe_gg.First;
          if (qe_gg.Bof) and (qe_gg.Eof) then begin
            MessageBox(Handle, '该类型的配件规格不存在', '沈阳信德', MB_ICONQUESTION or MB_OK);
            qe_gg.ParamByName('ipj_kind_id').Value := '***';
            txt_kind.SetFocus;
            Exit;
          end;
          qe_gg.First;
          hideList[2].Items.Clear;
          while not qe_gg.Eof do begin
            str_id := Trim(qe_gg.FieldByName('pj_gg_id').AsString);
            str_name := Trim(qe_gg.FieldByName('pj_gg').AsString);
            str_pym := Trim(qe_gg.FieldByName('pj_gg_p').AsString);
            if str_id <> '000' then begin
              intLen := Length(str_id);
              if intLen < 20 then str_id := str_id + spaceArray[20 - intLen];
              hideList[2].Items.Add(str_id + str_name + spaceArray[20] + spaceArray[20] + spaceArray[20] + '  ^' + str_pym);
            end;
            qe_gg.Next;
          end;
          qe_gg.Close;
          hideList[2].ItemIndex := -1;
          //
          txt_gg.OnChange := nil;
          txt_gg.Text := '';
          txt_gg.OnChange := frm_pj_wm.ControlChange1;
        end;
      end;
    end;
  end;
  //
  if TWinControl(Sender).Tag = 3 then begin
    if (Trim(txt_kind.Text) = '') or (hideList[1].ItemIndex = -1) then begin
      MessageBox(Handle, '请确定配件类型', '沈阳信德', MB_ICONQUESTION or MB_OK);
      txt_kind.SetFocus;
      Exit;
    end else begin
      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;
        Exit;
      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;
          Exit;
        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;
            Exit;
          end else begin
            str_name := Copy(hideList[1].Items[hideList[1].ItemIndex], 1, 20);
            str_name1 := Copy(hideList[2].Items[hideList[2].ItemIndex], 1, 20);
            if (Trim(str_name) <> Trim(qe_name.ParamByName('ikind').Value)) or (Trim(str_name1) <> Trim(qe_name.ParamByName('igg').Value)) then begin
              qe_name.Close;
              qe_name.ParamByName('ikind').Value := Trim(str_name);
              qe_name.ParamByName('igg').Value := Trim(str_name1);
              qe_name.Open;
              qe_name.First;
              //
              hideList[3].Items.Clear;
              lst_unit.Items.Clear;
              lst_sj.Items.Clear;
              while not qe_name.Eof do begin
                str_id := Trim(qe_name.FieldByName('pj_id').AsString);
                str_name := Trim(qe_name.FieldByName('pj_name').AsString);
                str_pym := Trim(qe_name.FieldByName('pj_name_p').AsString);
                if str_id <> '000' then begin
                  intLen := Length(str_id);
                  if intLen < 20 then str_id := str_id + spaceArray[20 - intLen];
                  hideList[3].Items.Add(str_id + str_name + spaceArray[20] + spaceArray[20] + spaceArray[20] + '  ^' + str_pym);
                  lst_unit.Items.Add(Trim(qe_name.FieldByName('pj_unit').AsString));
                  lst_sj.Items.Add(FloatToStr(qe_name.FieldByName('pj_sj').Value));
                end;  
                qe_name.Next;
              end;
              qe_name.Close;
              hideList[3].ItemIndex := -1;
            end;
          end;
        end;
      end;
    end;
  end;
end;

procedure Tfrm_pj_wm.ControlChange1(Sender: TObject);
var
  strText: string;
  i: integer;
  intPos: integer;
  //
  intIndex: integer;
  str_id: string;
begin
  if qe_wm_gl.State = dsEdit then
    EnabledComponent(dsEdit);
  if (qe_wm_gl.State = dsInsert) then begin
    EnabledComponent(dsInsert);
    intIndex := TWinControl(Sender).Tag;
    //
    if (intIndex <= 3) and (intIndex > 0) then begin
      hideList[intIndex].Visible := True;
      strText := Trim(TEdit(Sender).Text);
      //第一次
      for i := 0 to hideList[intIndex].Items.Count - 1 do begin
        str_id := Copy(hideList[intIndex].Items[i], Pos('^', hideList[intIndex].Items[i]) + 1, 20);
        intPos := Pos(strText, str_id);
        if intPos = 1 then begin
          hideList[intIndex].ItemIndex := i;
          Break;
        end else begin
          hideList[intIndex].ItemIndex := 0;
        end;
      end;
      //第二次
      if intPos <> 1 then begin
        for i := 0 to hideList[intIndex].Items.Count - 1 do begin
          str_id := Copy(hideList[intIndex].Items[i], 1, 20);
          intPos := Pos(strText, str_id);
          if intPos = 1 then begin
            hideList[intIndex].ItemIndex := i;
            Break;
          end else begin
            hideList[intIndex].ItemIndex := 0;
          end;
        end;
      end;
      //第三次
      if intPos <> 1 then begin
        for i := 0 to hideList[intIndex].Items.Count - 1 do begin
          str_id := Copy(hideList[intIndex].Items[i], 21, 60);
          intPos := Pos(strText, str_id);
          if intPos = 1 then begin
            hideList[intIndex].ItemIndex := i;
            Break;
          end else begin
            hideList[intIndex].ItemIndex := 0;
          end;
        end;
      end;
    end;
  end;
end;

////////////////////////////////////////////////////////////////////////////////
//                                                                            //
//               CONTROLING THE KEYPRESS FOR ALL CONTROLS                     //
//                                                                            //
////////////////////////////////////////////////////////////////////////////////
procedure Tfrm_pj_wm.ControlKeyPress1(Sender: TObject; var Key: Char);

⌨️ 快捷键说明

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