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

📄 pj_wm.pas

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

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ExtCtrls, StdCtrls, Grids, DBGrids, Buttons, Mask, Db, DBTables, Printers;

type
  Tfrm_pj_wm = class(TForm)
    pe_bh: TPanel;
    Label1: TLabel;
    combo_p: TComboBox;
    pe_info: TPanel;
    DBGrid1: TDBGrid;
    Panel1: TPanel;
    cmd_new: TBitBtn;
    cmd_edit: TBitBtn;
    cmd_save: TBitBtn;
    cmd_cancel: TBitBtn;
    cmd_del: TBitBtn;
    pe_edit: TPanel;
    Label2: TLabel;
    Label3: TLabel;
    Label11: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    txt_kind: TEdit;
    txt_gg: TEdit;
    txt_pj: TEdit;
    b1: TBitBtn;
    b3: TBitBtn;
    b2: TBitBtn;
    txt_sum: TEdit;
    txt_unit: TEdit;
    txt_dj: TEdit;
    lst_unit: TListBox;
    lst_sj: TListBox;
    pe_image: TPanel;
    Image1: TImage;
    qe_wm_gl: TQuery;
    ds_wm_gl: TDataSource;
    txt_dj_bh: TStaticText;
    qe_jy: TQuery;
    cmd_print: TBitBtn;
    sp_up_pj_ck: TStoredProc;
    lst_kind: TListBox;
    lst_gg: TListBox;
    lst_name: TListBox;
    lst_sum: TListBox;
    qe_jy2: TQuery;
    qe_jy3: TQuery;
    Label7: TLabel;
    txt_dw: TStaticText;
    Label8: TLabel;
    txt_zj: TStaticText;
    sp_update_mode_for_wm: TStoredProc;
    sp_del_from_pj_add: TStoredProc;
    sp_insert_into_day: TStoredProc;
    sp_insert_into_sj: TStoredProc;
    qe_pj: TQuery;
    qe_gg: TQuery;
    qe_name: TQuery;
    //
    procedure ControlClick(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure ControlKeyPress3(Sender: TObject; var Key: Char);
    procedure ControlKeyPress1(Sender: TObject; var Key: Char);
    procedure ControlChange1(Sender: TObject);
    procedure ControlEnter(Sender: TObject);
    procedure b1Click(Sender: TObject);
    procedure b2Click(Sender: TObject);
    procedure b3Click(Sender: TObject);
    procedure cmd_newClick(Sender: TObject);
    procedure cmd_editClick(Sender: TObject);
    procedure cmd_saveClick(Sender: TObject);
    procedure cmd_cancelClick(Sender: TObject);
    procedure cmd_printClick(Sender: TObject);
    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormDestroy(Sender: TObject);
    procedure cmd_delClick(Sender: TObject);
  private
    { Private declarations }
    hideList: array[1..3] of TListBox;
    spaceArray: array[0..20] of string;
    year, month, day: Word;
    WM_BH: string;
    //
    procedure arrayInit;
    procedure lstInfoInit;
    procedure EnabledComponent(intState: TDataSetState);
    procedure SetNewBH;
    procedure controlSetFocus(intpos: integer);
    procedure controlDj(intState: TDataSetState);
    //
    function RuleCheck1: integer;
    function RuleCheck: integer;
    procedure NewInit;
    procedure SaveInit;
    procedure EditInit;
    procedure CancelInit;
    procedure ExportInit;
    procedure ExeDelandInit;
    //
    function SetNewBH1(intKind: integer): string;
  public
    { Public declarations }
  end;

var
  frm_pj_wm: Tfrm_pj_wm;

implementation

{$R *.DFM}

uses
  log, main, print, yj_select;

function Tfrm_pj_wm.SetNewBH1(intKind: integer): string;
var
  intR_m, intR_d: integer;
  stryear, strmonth, strday: string;
  year1, month1, day1: Word;
  strm, strd: string;
  strResult: string;
begin
  DecodeDate(Now, year1, month1, day1);
  stryear := IntToStr(year1);
  strmonth := Format('%2.2d', [month1]);
  strday := Format('%2.2d', [day1]);
  //
  qe_jy.Close;
  qe_jy.SQL.Clear;
  qe_jy.SQL.Add('SELECT * FROM SJ_SUM WHERE SJ_YEAR = ' + IntToStr(year1) + ' AND SJ_MONTH = ' + IntToStr(month1) + ' AND SJ_DAY = ' + IntToStr(day1) + ' AND SJ_KIND = ' + IntToStr(intKind) + ' ');
  qe_jy.Open;
  qe_jy.Last;
  intR_d := qe_jy.RecordCount;
  //
  qe_jy.Close;
  qe_jy.SQL.Clear;
  qe_jy.SQL.Add('SELECT * FROM SJ_SUM WHERE SJ_YEAR = ' + IntToStr(year1) + ' AND SJ_MONTH = ' + IntToStr(month1) + ' AND SJ_KIND = ' + IntToStr(intKind) + ' ');
  qe_jy.Open;
  qe_jy.Last;
  intR_m := qe_jy.RecordCount;
  qe_jy.Close;
  //
  if (intR_m = 0) and (intR_d = 0) then begin
    strResult := stryear + strmonth + strday + '-' + '001' + '-' + '001';
  end else if intR_m = 0 then begin
    strResult := stryear + strmonth + strday + '-' + '001' + '-' + '001';
  end else if intR_d = 0 then begin
    intR_m := intR_m + 1;
    strm := Format('%3.3d', [intR_m]);
    strResult := 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]);
    strResult := stryear + strmonth + strday + '-' + strm + '-' + strd;
  end;
  //
  sp_insert_into_sj.ParamByName('@iyear').Value := year1;
  sp_insert_into_sj.ParamByName('@imonth').Value := month1;
  sp_insert_into_sj.ParamByName('@iday').Value := day1;
  sp_insert_into_sj.ParamByName('@ikind').Value := intKind;
  sp_insert_into_sj.ExecProc;
  //
  Result := strResult;
end;

procedure Tfrm_pj_wm.ExeDelandInit;
var
  f_zj: Double;
begin
  if MessageBox(Handle, '确实要删除当前记录?', '沈阳信德', MB_ICONQUESTION or MB_OKCANCEL) = ID_OK then begin
    sp_del_from_pj_add.ParamByName('@iwm_id').Value := qe_wm_gl.FieldByName('wm_id').AsInteger;
    sp_del_from_pj_add.ExecProc;
    //
    qe_wm_gl.Close;
    qe_wm_gl.Open;
    qe_wm_gl.First;
  end;
  //
  EnabledComponent(dsBrowse);
  //
  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;

procedure Tfrm_pj_wm.ExportInit;
var
  intXSum, intOSum: Double;
  strKind, strGg, strName: string;
  intpos: integer;
begin
  qe_jy.Close;
  qe_jy.SQL.Clear;
  qe_jy.SQL.Add('SELECT * FROM WM_GL WHERE WM_BH = ''' + Trim(txt_dj_bh.Caption) + ''' AND WM_ZF_BS = 0');
  qe_jy.Open;
  qe_jy.First;
  //
  intpos := 0;
  lst_kind.Clear;
  lst_gg.Clear;
  lst_name.Clear;
  lst_sum.Clear;
  while not qe_jy.Eof do begin
    intXSum := qe_jy.FieldByName('pj_ck_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_id').AsString);
    if intXSum > 0.01 then begin
      lst_kind.Items.Add(strKind);
      lst_gg.Items.Add(strGg);
      lst_name.Items.Add(strName);
      lst_sum.Items.Add(FloatToStr(intXSum));
    end;  
    //
    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;
    end else begin
      intOSum := qe_jy2.FieldByName('pj_sum').Value;
      if intOSum < intXSum then begin
        MessageBox(Handle, '销售数量大于现库存数量,配件出库失败', '沈阳信德', MB_ICONQUESTION or MB_OK);
        intpos := 1;
        Break;
      end;
    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;
      //
    end;
    //
    qe_jy.Close;
    qe_jy2.Close;
  end;
  //
  sp_insert_into_day.ParamByName('@idate').Value := frm_log.controlDate(DateToStr(Date()));
  sp_insert_into_day.ParamByName('@izy').Value := '(配件销售)-' + Trim(txt_dw.Caption) + '收款';
  if frm_log.yj_jsfs = 1 then
    sp_insert_into_day.ParamByName('@ikm').Value := '现金'
  else
    sp_insert_into_day.ParamByName('@ikm').Value := '银行存款';
  //
  sp_insert_into_day.ParamByName('@ijf').Value := StrToFloat(Trim(txt_zj.Caption));
  sp_insert_into_day.ParamByName('@idf').Value := 0;
  sp_insert_into_day.ParamByName('@izy_id').Value := 10;
  sp_insert_into_day.ParamByName('@idj_bh').Value := '';
  sp_insert_into_day.ExecProc;
  //
  WM_BH := SetNewBH1(0);
  frm_print.lbl_cap9.Caption := frm_log.cur_gs_name;
  frm_print.lbl_dw9.Caption := Trim(txt_dw.Caption);
  frm_print.lbl_zj.Caption := Trim(txt_zj.Caption);
  frm_print.lbl_date9.Caption := frm_log.controlDate(DateToStr(Date()));
  frm_print.lbl_bh9.Caption := 'SK' + WM_BH;
  frm_print.lbl_zcr9.Caption := frm_main.user_name;
  if frm_log.yj_jsfs = 1 then
    frm_print.lbl_fs9.Caption := '现金'
  else
    frm_print.lbl_fs9.Caption := '支票';
  frm_print.qr_wm_js.DataSet := qe_wm_gl;
  frm_print.txt_kind.DataSet := qe_wm_gl;
  frm_print.txt_gg.DataSet := qe_wm_gl;
  frm_print.txt_name.DataSet := qe_wm_gl;
  frm_print.txt_sum.DataSet := qe_wm_gl;
  frm_print.txt_unit.DataSet := qe_wm_gl;
  frm_print.txt_dj.DataSet := qe_wm_gl;
  frm_print.txt_id.DataSet := qe_wm_gl;
  frm_print.qr_wm_js.Print;
  //
  cmd_new.Enabled := False;
  cmd_save.Enabled := False;
  cmd_cancel.Enabled := False;
  cmd_del.Enabled := False;
  cmd_print.Enabled := False;
  cmd_edit.Enabled := False;
  cmd_print.Tag := 0;
end;

procedure Tfrm_pj_wm.CancelInit;
begin
  qe_wm_gl.Cancel;
  //
  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;
  //
  EnabledComponent(dsBrowse);
end;

procedure Tfrm_pj_wm.SaveInit;
var
  f_zj: Double;
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;
  //
  EnabledComponent(dsBrowse);
  //
  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;

procedure Tfrm_pj_wm.EditInit;
begin
  pe_edit.Visible := True;
  pe_image.Visible := False;
  pe_info.Enabled := False;
  pe_bh.Enabled := False;
  //
  txt_kind.Enabled := False;
  txt_gg.Enabled := False;
  txt_pj.Enabled := False;
  b1.Enabled := False;
  b2.Enabled := False;
  b3.Enabled := False;
  //
  txt_kind.Text := Trim(qe_wm_gl.FieldByName('pj_kind').AsString);
  txt_gg.Text := Trim(qe_wm_gl.FieldByName('pj_gg').AsString);
  txt_pj.Text := Trim(qe_wm_gl.FieldByName('pj_name').AsString);
  txt_sum.Text := FloatToStr(qe_wm_gl.FieldByName('pj_ck_sum').Value);
  txt_unit.Text := Trim(qe_wm_gl.FieldByName('pj_unit').AsString);
  txt_dj.Text := FloatToStr(qe_wm_gl.FieldByName('pj_dj').Value);
  txt_sum.SetFocus;
  //
  cmd_edit.Enabled := False;
  cmd_new.Enabled := False;
  cmd_save.Enabled := False;
  cmd_cancel.Enabled := True;
  cmd_print.Enabled := False;
  cmd_del.Enabled := False;
  //
  qe_wm_gl.Edit;
end;

procedure Tfrm_pj_wm.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_edit.Enabled := False;
  //
  txt_kind.Text := '';
  txt_gg.Text := '';
  txt_pj.Text := '';
  txt_sum.Text := '';
  txt_dj.Text := '';
  txt_unit.Text := '';
  //
  txt_kind.SetFocus;
  //
  qe_wm_gl.Append;
end;

⌨️ 快捷键说明

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