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

📄 pj_wm.pas

📁 汽配前台收费,一个具有详细功能的小系统
💻 PAS
📖 第 1 页 / 共 3 页
字号:
var
  intIndex: integer;
  str_name: string;
begin
  if Ord(Key) = 13 then begin
    intIndex := TEdit(Sender).Tag;
    if (intIndex <= 3) and (intIndex > 0) then begin
      if hideList[intIndex].ItemIndex > -1 then begin
        str_name := Trim(Copy(hideList[intIndex].Items[hideList[intIndex].ItemIndex], 21, 60));
        TEdit(Sender).OnChange := nil;
        TEdit(Sender).Text := str_name;
        TEdit(Sender).OnChange := frm_pj_wm.ControlChange1;
      end;
      hideList[intIndex].Visible := False;
      controlSetFocus(TWinControl(Sender).Tag);
    end else begin
      controlSetFocus(TWinControl(Sender).Tag);
    end;
  end;
end;

procedure Tfrm_pj_wm.ControlKeyPress3(Sender: TObject; var Key: Char);
begin
  if not (((Key >= '0') and (Key <= '9')) or (Ord(Key) = 8) or (Ord(Key) = 46) or (Ord(Key) = 13)) then
    Key := Chr(0);
  if Ord(Key) = 13 then controlSetFocus(TWinControl(Sender).Tag);
end;

////////////////////////////////////////////////////////////////////////////////
//                                                                            //
//                  CONTROLING THE FOCUS WHEN PRESS 'ENTER'                   //
//                                                                            //
////////////////////////////////////////////////////////////////////////////////
procedure Tfrm_pj_wm.controlSetFocus(intpos: integer);
begin
  case intpos of
    1: txt_gg.SetFocus;
    2: txt_pj.SetFocus;
    3: txt_sum.SetFocus;
    4: begin
         if txt_dj.Enabled then
           txt_dj.SetFocus;
       end;
    5: begin
         if qe_wm_gl.State = dsInsert then
           frm_pj_wm.cmd_newClick(nil);
       end;
  end;
end;

procedure Tfrm_pj_wm.SetNewBH;
var
  intR_m, intR_d: integer;
  stryear, strmonth, strday: string;
  strm, strd: string;
begin
  DecodeDate(Now, year, month, day);
  stryear := IntToStr(year);
  strmonth := Format('%2.2d', [month]);
  strday := Format('%2.2d', [day]);
  //
  qe_jy.Close;
  qe_jy.SQL.Clear;
  qe_jy.SQL.Add('SELECT WM_BH FROM WM_GL WHERE WM_YEAR = ' + IntToStr(year) + ' AND WM_MONTH = ' + IntToStr(month) + ' AND WM_DAY = ' + IntToStr(day) + ' GROUP BY WM_BH');
  qe_jy.Open;
  qe_jy.Last;
  intR_d := qe_jy.RecordCount;
  //
  qe_jy.Close;
  qe_jy.SQL.Clear;
  qe_jy.SQL.Add('SELECT WM_BH FROM WM_GL WHERE WM_YEAR = ' + IntToStr(year) + ' AND WM_MONTH = ' + IntToStr(month) + ' GROUP BY WM_BH');
  qe_jy.Open;
  qe_jy.Last;
  intR_m := qe_jy.RecordCount;
  qe_jy.Close;
  //
  if (intR_m = 0) and (intR_d = 0) then begin
    txt_dj_bh.Caption := stryear + strmonth + strday + '-' + '001' + '-' + '001';
  end else if intR_m = 0 then begin
    txt_dj_bh.Caption := stryear + strmonth + strday + '-' + '001' + '-' + '001';
  end else if intR_d = 0 then begin
    intR_m := intR_m + 1;
    strm := Format('%3.3d', [intR_m]);
    txt_dj_bh.Caption := stryear + strmonth + strday + '-' + strm + '-' + '001';
  end else begin
    intR_m := intR_m + 1;
    intR_d := intR_d + 1;
    strm := Format('%3.3d', [intR_m]);
    strd := Format('%3.3d', [intR_d]);
    txt_dj_bh.Caption := stryear + strmonth + strday + '-' + strm + '-' + strd;
  end;
end;

////////////////////////////////////////////////////////////////////////////////
//                                                                            //
//                  CONTROLING ENABLED FOR BUTTONS                            //
//                                                                            //
////////////////////////////////////////////////////////////////////////////////
procedure Tfrm_pj_wm.EnabledComponent(intState: TDataSetState);
begin
  case intState of
    dsBrowse: begin
                cmd_new.Enabled := True;
                cmd_save.Enabled := False;
                cmd_cancel.Enabled := False;
                cmd_del.Enabled := True;
                cmd_print.Enabled := True;
                cmd_edit.Enabled := True;
                //
                if (qe_wm_gl.Bof) and (qe_wm_gl.Eof) then begin
                  cmd_del.Enabled := False;
                  cmd_print.Enabled := False;
                  cmd_edit.Enabled := False;
                  cmd_print.Tag := 0;
                end;
              end;
    dsEdit  : begin
                cmd_new.Enabled := False;
                cmd_save.Enabled := True;
                cmd_cancel.Enabled := True;
                cmd_del.Enabled := False;
                cmd_print.Enabled := False;
                cmd_edit.Enabled := False;
              end;
    dsInsert: begin
                cmd_new.Enabled := True;
                cmd_save.Enabled := True;
                cmd_cancel.Enabled := True;
                cmd_del.Enabled := False;
                cmd_print.Enabled := False;
                cmd_edit.Enabled := False;
              end;
  end;
end;

////////////////////////////////////////////////////////////////////////////////
//                                                                            //
//                       INITALIZING THE SPACE ARRAY                          //
//                                                                            //
////////////////////////////////////////////////////////////////////////////////
procedure Tfrm_pj_wm.arrayInit;
var
  i: integer;
begin
  for i := 0 to 20 do begin
    if i = 0 then spaceArray[i] := '';
    if i = 1 then spaceArray[i] := ' ';
    if i > 1 then spaceArray[i] := spaceArray[i - 1] + ' ';
  end;
end;

////////////////////////////////////////////////////////////////////////////////
//                                                                            //
//                      INITALIZING THE INFOMATION LIST                       //
//                                                                            //
////////////////////////////////////////////////////////////////////////////////
procedure Tfrm_pj_wm.lstInfoInit;
var
  str_id: string;
  str_name: string;
  str_pym: string;
  i: integer;
  intLen: integer;
begin
  for i := 1 to 3 do begin
    hideList[i] := TListBox.Create(Self);
    hideList[i].BorderStyle := bsNone;
    hideList[i].Color := clInfoBk;
    hideList[i].Width := 300;
    hideList[i].Height := 68;
    hideList[i].Parent := pe_edit;
    hideList[i].Tag := i;
    hideList[i].OnClick := frm_pj_wm.ControlClick;
    hideList[i].Visible := False;
  end;
  //初始化配件类型列表
  qe_pj.Close;
  qe_pj.Open;
  qe_pj.First;
  while not qe_pj.Eof do begin
    str_id := Trim(qe_pj.FieldByName('pj_kind_id').AsString);
    str_name := Trim(qe_pj.FieldByName('pj_kind').AsString);
    str_pym := Trim(qe_pj.FieldByName('pj_kind_p').AsString);
    if str_id <> '000' then begin
      intLen := Length(str_id);
      if intLen < 20 then str_id := str_id + spaceArray[20 - intLen];
      hideList[1].Items.Add(str_id + str_name + spaceArray[20] + spaceArray[20] + spaceArray[20] + '  ^' + str_pym);
    end;  
    qe_pj.Next;
  end;
  qe_pj.Close;
  hideList[1].Left := 70;
  hideList[1].Top := 29;
  hideList[1].ItemIndex := -1;
  //初始化配件规格列表
  hideList[2].Left := 437;
  hideList[2].Top := 29;
  //初始化配件信息列表
  hideList[3].Left := 70;
  hideList[3].Top := 56;
end;

////////////////////////////////////////////////////////////////////////////////
//                                                                            //
//                  CONTROLING THE CLICK FOR LISTBOX                          //
//                                                                            //
////////////////////////////////////////////////////////////////////////////////
procedure Tfrm_pj_wm.ControlClick(Sender: TObject);
var
  intIndex: integer;
  str_name: string;
begin
  intIndex := TListBox(Sender).Tag;
  if (intIndex <= 3) and (intIndex > 0) then begin
    case intIndex of
      1: begin
           str_name := Trim(Copy(hideList[1].Items[hideList[1].ItemIndex], 21, 60));
           txt_kind.Text := str_name;
           txt_kind.SetFocus;
         end;
      2: begin
           str_name := Trim(Copy(hideList[2].Items[hideList[2].ItemIndex], 21, 60));
           txt_gg.Text := str_name;
           txt_gg.SetFocus;
         end;
      3: begin
           str_name := Trim(Copy(hideList[3].Items[hideList[3].ItemIndex], 21, 60));
           txt_pj.Text := str_name;
           txt_pj.SetFocus;
         end;
    end;
  end;
end;

procedure Tfrm_pj_wm.FormShow(Sender: TObject);
begin
  qe_wm_gl.Close;
  qe_wm_gl.ParamByName('iczr').Value := frm_main.user_name;
  qe_wm_gl.Open;
  qe_wm_gl.First;
  //
  frm_main.mu_yw_gl_xs_wm.Enabled := False;
  frm_main.cmd_pj.Enabled := False;
  //
  frm_main.current_handle := Handle;
  //
  arrayInit;
  lstInfoInit;
  //
  EnabledComponent(dsBrowse);
  //
  SetNewBH;
end;

procedure Tfrm_pj_wm.b1Click(Sender: TObject);
begin
  hideList[1].Visible := True;
end;

procedure Tfrm_pj_wm.b2Click(Sender: TObject);
begin
  hideList[2].Visible := True;
end;

procedure Tfrm_pj_wm.b3Click(Sender: TObject);
begin
  hideList[3].Visible := True;
end;

procedure Tfrm_pj_wm.cmd_newClick(Sender: TObject);
var
  i: integer;
  intResult: integer;
  f_zj: Double;
begin
  for i := 1 to 3 do
    hideList[i].Visible := False;
  //
  if (qe_wm_gl.State = dsInsert) and (cmd_save.Enabled) then begin
    intResult := RuleCheck;
    if intResult = 1 then
      Exit
    else begin
      controlDj(dsInsert);
      qe_wm_gl.Post;
      qe_wm_gl.Close;
      qe_wm_gl.Open;
      qe_wm_gl.Last;
    end;
    //
    qe_jy3.Close;
    qe_jy3.ParamByName('ibh').Value := Trim(txt_dj_bh.Caption);
    qe_jy3.Open;
    qe_jy3.First;
    if (qe_jy3.Bof) and (qe_jy3.Eof) then
      txt_zj.Caption := '0'
    else begin
      f_zj := qe_jy3.FieldByName('pj_zj').Value;
      f_zj := Int(f_zj) + Round((Frac(f_zj)*100))/100;
      txt_zj.Caption := FloatToStr(f_zj);
    end;
    qe_jy3.Close;
  end;
  //
  NewInit;
end;

procedure Tfrm_pj_wm.cmd_editClick(Sender: TObject);
begin
  EditInit;
end;

procedure Tfrm_pj_wm.cmd_saveClick(Sender: TObject);
var
  i: integer;
  intResult: integer;
begin
  for i := 1 to 3 do
    hideList[i].Visible := False;
  //
  if qe_wm_gl.State = dsInsert then begin
    intResult := RuleCheck;
    if intResult = 1 then
      Exit
    else begin
      controlDj(dsInsert);
      qe_wm_gl.Post;
      qe_wm_gl.Close;
      qe_wm_gl.Open;
      qe_wm_gl.Last;
    end;
  end else if qe_wm_gl.State = dsEdit then begin
    intResult := RuleCheck1;
    if intResult = 1 then
      Exit
    else begin
      controlDj(dsEdit);
      qe_wm_gl.Post;
    end;
  end;
  //
  SaveInit;
end;

procedure Tfrm_pj_wm.cmd_cancelClick(Sender: TObject);
var
  i: integer;
begin
  for i := 1 to 3 do
    hideList[i].Visible := False;
  //
  CancelInit;
end;

procedure Tfrm_pj_wm.cmd_printClick(Sender: TObject);
begin
  if MessageBox(Handle, '确定要进行销售结算吗?', '沈阳信德', MB_ICONQUESTION or MB_OKCANCEL) = ID_OK then begin
    combo_p.Items.Clear;
    combo_p.items.Assign(Printer.Printers);
    if combo_p.Items.Count = 0 then begin
      MessageBox(Handle, '没有可用的打印机,请添加打印机', '沈阳信德', MB_ICONQUESTION or MB_OK);
      Exit;
    end;
    //
    if not Assigned(frm_yj_select) then begin
      frm_yj_select := Tfrm_yj_select.Create(Application);
      frm_yj_select.ShowModal;
    end;
    if frm_log.yj_jsfs = -1 then Exit;
    //
    ExportInit;
  end;
end;

procedure Tfrm_pj_wm.FormCloseQuery(Sender: TObject;
  var CanClose: Boolean);
begin
  CanClose := True;
  //
  if (cmd_print.Tag = 25) then begin
    MessageBox(Handle, '配件销售尚未结算,不能关闭窗体', '沈阳信德', MB_ICONQUESTION or MB_OK);
    CanClose := False;
    Exit;
  end;
  //
  if CanClose then begin
    sp_update_mode_for_wm.ExecProc;
    //
    qe_wm_gl.Close;
    qe_pj.Close;
    qe_gg.Close;
    qe_name.Close;
    qe_jy.Close;
    qe_jy2.Close;
    qe_jy3.Close;
    //
    frm_main.mu_yw_gl_xs_wm.Enabled := True;
    frm_main.cmd_pj.Enabled := True;
    frm_main.current_handle := 0;
    //
    frm_main.Tag := 1; //标识窗体能否关闭; 1-能关闭;2-不能关闭;
  end;
end;

procedure Tfrm_pj_wm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  Action := caFree;
end;

procedure Tfrm_pj_wm.FormDestroy(Sender: TObject);
begin
  qe_wm_gl := nil;
  qe_name := nil;
  qe_gg := nil;
  qe_pj := nil;
  qe_jy := nil;
  qe_jy2 := nil;
  qe_jy3 := nil;
  //
  frm_pj_wm := nil;
end;

procedure Tfrm_pj_wm.cmd_delClick(Sender: TObject);
begin
  ExeDelandInit;
end;

end.

⌨️ 快捷键说明

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