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

📄 pj_add.pas

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

interface

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

type
  Tfrm_pj_add = class(TForm)
    pe_bh: TPanel;
    Label1: TLabel;
    pe_info: TPanel;
    ds_pj_add: TDataSource;
    DBGrid1: TDBGrid;
    Panel1: TPanel;
    cmd_new: TBitBtn;
    cmd_edit: TBitBtn;
    cmd_save: TBitBtn;
    cmd_cancel: TBitBtn;
    cmd_del: TBitBtn;
    pe_edit: TPanel;
    Label2: TLabel;
    txt_kind: TEdit;
    Label3: TLabel;
    txt_gg: TEdit;
    Label11: TLabel;
    txt_pj: TEdit;
    b1: TBitBtn;
    b3: TBitBtn;
    b2: TBitBtn;
    Label4: TLabel;
    txt_sum: TEdit;
    Label5: TLabel;
    txt_unit: TEdit;
    Label6: TLabel;
    txt_dj: TEdit;
    cb_sb: TCheckBox;
    lst_unit: TListBox;
    sp_up_pj_add: TStoredProc;
    lst_sj: TListBox;
    qe_pj_add: TQuery;
    qe_pj: TQuery;
    qe_gg: TQuery;
    qe_name: TQuery;
    qe_jy: TQuery;
    pe_image: TPanel;
    Image1: TImage;
    qe_jy1: TQuery;
    sp_del_from_pj_add: TStoredProc;
    sp_up_pj_ck: TStoredProc;
    qe_jy2: TQuery;
    lst_kind: TListBox;
    lst_gg: TListBox;
    lst_name: TListBox;
    lst_sum: TListBox;
    sp_up_pj_add1: TStoredProc;
    Panel2: TPanel;
    Label7: TLabel;
    Label8: TLabel;
    Label9: TLabel;
    Label10: TLabel;
    Label12: TLabel;
    Label13: TLabel;
    Label14: TLabel;
    txt_time: TDBEdit;
    txt_cph: TDBEdit;
    txt_cx: TDBEdit;
    txt_cz: TDBEdit;
    txt_wx: TDBEdit;
    txt_bx: TDBEdit;
    txt_dw: TDBEdit;
    ds_jy1: TDataSource;
    combo_bh: TComboBox;
    cmd_print1: TBitBtn;
    cmd_print: TBitBtn;
    combo_p: TComboBox;
    lbl_jj: TLabel;
    txt_jj: TEdit;
    lst_jj: TListBox;
    lst_id: TListBox;
    //
    procedure ControlClick1(Sender: TObject);
    procedure ControlClick(Sender: TObject);
    procedure ControlChange1(Sender: TObject);
    procedure ControlKeyPress1(Sender: TObject; var Key: Char);
    procedure ControlKeyPress3(Sender: TObject; var Key: Char);
    procedure ControlKeyPress4(Sender: TObject; var Key: Char);
    procedure ControlEnter(Sender: TObject);
    //
    procedure b1Click(Sender: TObject);
    procedure b3Click(Sender: TObject);
    procedure b2Click(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    procedure FormDestroy(Sender: TObject);
    procedure combo_bhChange(Sender: TObject);
  private
    { Private declarations }
    hideList: array[1..3] of TListBox;
    spaceArray: array[0..20] of string;
    curState: TDataSetState;
    cur_bh: string;
    cur_cph: string;
    cur_cz: string;
    cur_czdw: string;
    cur_dph: string;
    cur_cx: string;
    //
    cur_sb: integer;
    //
    cur_dj: string;
    cur_bx: integer;
    //
    procedure arrayInit;
    procedure lstInfoInit;
    procedure EnabledComponent(intState: TDataSetState);
    procedure controlSetFocus(intpos: integer);
    function RuleCheck: integer;
    function RuleCheck1: integer;
    procedure NewSave;
    procedure NewInit;
    procedure EditInit;
    procedure SaveInit;
    procedure CancelInit;
    procedure ExeDelandInit;
    procedure ExportInit;
    procedure InitBHList;
    procedure PrintInit;
    //
    procedure QueryResult;
  public
    { Public declarations }
  end;

var
  frm_pj_add: Tfrm_pj_add;

implementation

{$R *.DFM}

uses
  log, main, print;

procedure Tfrm_pj_add.PrintInit;
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;
  //
  qe_jy.Close;
  qe_jy.SQL.Clear;
  qe_jy.SQL.Add('SELECT * FROM PJ_ADD WHERE DJ_BH = ''' + cur_bh + ''' AND PJ_XZ_SUM > 0.01');
  qe_jy.Open;
  qe_jy.First;
  if (qe_jy.Bof) and (qe_jy.Eof) then begin
    MessageBox(Handle, '没有新增配件,不能打印领料单', '沈阳信德', MB_ICONQUESTION or MB_OK);
    qe_jy.Close;
    Exit;
  end;
  frm_print.lbl_cap1.Caption := frm_log.cur_gs_name;
  frm_print.lbl_date1.Caption := frm_log.controlDate(DateToStr(Date()));
  frm_print.lbl_bh1.Caption := cur_bh;
  frm_print.lbl_cph1.Caption := cur_cph;
  frm_print.lbl_cx1.Caption := cur_cx;
  //frm_print.lbl_dph1.Caption := cur_dph;
  frm_print.lbl_cz1.Caption := cur_cz;
  frm_print.lbl_czdw1.Caption := cur_czdw;
  frm_print.qr_ll.DataSet := qe_jy;
  frm_print.txt_kind1.DataSet := qe_jy;
  frm_print.txt_gg1.DataSet := qe_jy;
  frm_print.txt_name1.DataSet := qe_jy;
  frm_print.txt_sum1.DataSet := qe_jy;
  frm_print.txt_dw1.DataSet := qe_jy;
  frm_print.qr_ll.Print;
  qe_jy.Close;
end;

procedure Tfrm_pj_add.InitBHList;
begin
  qe_jy.Close;
  qe_jy.SQL.Clear;
  qe_jy.SQL.Add('SELECT DJ_BH FROM CL_DJ WHERE DJ_ZF_BS = 0 AND DJ_JS_BS = 0 ORDER BY DJ_BH');
  qe_jy.Open;
  qe_jy.First;
  //
  if (qe_jy.Bof) and (qe_jy.Eof) then begin
    MessageBox(Handle, '未找到尚未结算的委托编号', '沈阳信德', MB_ICONQUESTION or MB_OK);
    Exit;
  end else begin
    combo_bh.Items.Clear;
    while not qe_jy.Eof do begin
      combo_bh.Items.Add(Trim(qe_jy.FieldByName('dj_bh').AsString));
      qe_jy.Next;
    end;
    combo_bh.ItemIndex := -1;
  end;
end;

////////////////////////////////////////////////////////////////////////////////
//                                                                            //
//                       INITALIZING THE SPACE ARRAY                          //
//                                                                            //
////////////////////////////////////////////////////////////////////////////////
procedure Tfrm_pj_add.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_add.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_add.ControlClick;
    hideList[i].Visible := False;
  end;
  //初始化配件类型列表
  qe_pj.Close;
  qe_pj.Open;
  qe_pj.First;
  hideList[1].Items.Add('000' + spaceArray[17] + '(新类型)');
  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_name').AsString);
    str_pym := Trim(qe_pj.FieldByName('pj_pym').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;
  //初始化配件信息列表
  qe_name.Close;
  qe_name.Open;
  qe_name.First;
  hideList[3].Items.Add('000' + spaceArray[17] + '(新类型)');
  lst_unit.Items.Add('');
  lst_sj.Items.Add('0');
  lst_jj.Items.Add('0');
  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_pym').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('0');
      lst_jj.Items.Add('0');
      //
    end;
    qe_name.Next;
  end;
  qe_name.Close;
  hideList[3].Left := 70;
  hideList[3].Top := 56;
  hideList[3].ItemIndex := -1;
end;

////////////////////////////////////////////////////////////////////////////////
//                                                                            //
//                  CONTROLING ENABLED FOR BUTTONS                            //
//                                                                            //
////////////////////////////////////////////////////////////////////////////////
procedure Tfrm_pj_add.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_print1.Enabled := True;
                cmd_edit.Enabled := True;
                //
                if (qe_pj_add.Bof) and (qe_pj_add.Eof) then begin
                  cmd_del.Enabled := False;
                  cmd_print.Enabled := False;
                  cmd_print1.Enabled := False;
                  cmd_edit.Enabled := False;
                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_print1.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_print1.Enabled := False;
                cmd_edit.Enabled := False;
              end;
  end;
end;

////////////////////////////////////////////////////////////////////////////////
//                                                                            //
//                  CONTROLING THE FOCUS WHEN PRESS 'ENTER'                   //
//                                                                            //
////////////////////////////////////////////////////////////////////////////////
procedure Tfrm_pj_add.controlSetFocus(intpos: integer);
var
  i: integer;
  intResult: integer;
begin
  case intpos of
    1: txt_gg.SetFocus;
    2: txt_pj.SetFocus;
    3: txt_sum.SetFocus;
    4: txt_unit.SetFocus;
    5: begin
         if txt_dj.Enabled then
           txt_dj.SetFocus;
       end;
    6: if txt_jj.Visible then txt_jj.SetFocus;
    7: cb_sb.SetFocus;
    8: begin
         if curState = dsInsert then begin
           for i := 1 to 3 do
             hideList[i].Visible := False;
           //
           if cmd_save.Enabled then begin
             intResult := RuleCheck;
             if intResult = 1 then
               Exit
             else begin
               NewSave;
               qe_pj_add.Close;
               qe_pj_add.Open;

⌨️ 快捷键说明

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