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

📄 pj_tk.pas

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

interface

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

type
  Tfrm_pj_tk1 = class(TForm)
    pe_bh: TPanel;
    Label1: TLabel;
    pe_info: TPanel;
    DBGrid1: TDBGrid;
    Panel1: TPanel;
    cmd_edit: TBitBtn;
    cmd_save: TBitBtn;
    cmd_cancel: TBitBtn;
    cmd_del: TBitBtn;
    qe_jy: TQuery;
    qe_jy1: TQuery;
    ds_pj_add: TDataSource;
    qe_pj_add: TQuery;
    sp_del_from_pj_add: TStoredProc;
    pe_edit: TPanel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    txt_kind: TEdit;
    txt_gg: TEdit;
    txt_name: TEdit;
    txt_ck_sum: TEdit;
    txt_fk_sum: TEdit;
    txt_unit: TEdit;
    pe_image: TPanel;
    Image2: TImage;
    sp_up_pj_add1: TStoredProc;
    sp_up_pj_ck: TStoredProc;
    lst_kind: TListBox;
    lst_gg: TListBox;
    lst_name: TListBox;
    lst_sum: TListBox;
    Panel2: TPanel;
    Label8: TLabel;
    Label9: TLabel;
    Label10: TLabel;
    Label11: 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;
    cmd_print1: TBitBtn;
    cmd_print: TBitBtn;
    combo_p: TComboBox;
    combo_bh: TComboBox;
    //
    procedure ControlChange(Sender: TObject);
    procedure ControlKeypress(Sender: TObject; var Key: Char);
    procedure ControlKeypress1(Sender: TObject; var Key: Char);
    procedure cmd_qClick(Sender: TObject);
    procedure cmd_editClick(Sender: TObject);
    procedure cmd_saveClick(Sender: TObject);
    procedure cmd_cancelClick(Sender: TObject);
    procedure cmd_delClick(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormDestroy(Sender: TObject);
    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    procedure FormShow(Sender: TObject);
    procedure cmd_printClick(Sender: TObject);
    procedure cmd_print1Click(Sender: TObject);
    procedure combo_bhChange(Sender: TObject);
  private
    { Private declarations }
    cur_bh: string;
    cur_cph: string;
    cur_cx: string;
    cur_cz: string;
    cur_dph: string;
    //
    cur_sum: Double;
    cur_sum1: Double;
    //
    procedure EnabledComponent(intState: TDataSetState);
    procedure QueryResult;
    procedure EditInit;
    function RuleCheck: integer;
    procedure SaveInit;
    procedure CancelInit;
    procedure ExeDelandInit;
    procedure ImportInit;
    procedure PrintInit;
    procedure InitBHList;
  public
    { Public declarations }
  end;

var
  frm_pj_tk1: Tfrm_pj_tk1;

implementation

{$R *.DFM}

uses
  log, main, print;

procedure Tfrm_pj_tk1.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;


procedure Tfrm_pj_tk1.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_FK_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_cap2.Caption := frm_log.cur_gs_name;
  frm_print.lbl_date2.Caption := frm_log.controlDate(DateToStr(Date()));
  frm_print.lbl_bh2.Caption := cur_bh;
  frm_print.lbl_cph2.Caption := cur_cph;
  frm_print.lbl_cx2.Caption := cur_cx;
  frm_print.lbl_dph2.Caption := cur_dph;
  frm_print.lbl_cz2.Caption := cur_cz;
  frm_print.qr_tl.DataSet := qe_jy;
  frm_print.txt_kind2.DataSet := qe_jy;
  frm_print.txt_gg2.DataSet := qe_jy;
  frm_print.txt_name2.DataSet := qe_jy;
  frm_print.txt_sum2.DataSet := qe_jy;
  frm_print.txt_dw2.DataSet := qe_jy;
  frm_print.txt_id2.DataSet := qe_jy;
  frm_print.qr_tl.Print;
  qe_jy.Close;
end;

function Tfrm_pj_tk1.RuleCheck: integer;
var
  intResult: integer;
  v, v1: Double;
  code: integer;
begin
  intResult := 0;
  //
  if Trim(txt_fk_sum.Text) = '' then begin
    MessageBox(Handle, '请确定配件退库数量', '沈阳信德', MB_ICONQUESTION or MB_OK);
    txt_fk_sum.SetFocus;
    intResult := 1;
  end else begin
    Val(Trim(txt_fk_sum.Text), v, code);
    if (code <> 0) then begin
      MessageBox(Handle, '配件退库数量无效', '沈阳信德', MB_ICONQUESTION or MB_OK);
      txt_fk_sum.SetFocus;
      intResult := 1;
    end else begin
      v := Int(v) + Round((Frac(v)*100))/100;
      if v < 0.01 then v := 0;
      v1 := cur_sum + cur_sum1;
      //
      if v1 < v then begin
        MessageBox(Handle, '退库数量超界', '沈阳信德', MB_ICONQUESTION or MB_OK);
        txt_fk_sum.SetFocus;
        intResult := 1;
      end else begin
        qe_pj_add.FieldByName('pj_sy_sum').Value := qe_pj_add.FieldByName('pj_sy_sum').Value + cur_sum - v;
        qe_pj_add.FieldByName('pj_ck_sum').Value := qe_pj_add.FieldByName('pj_ck_sum').Value + cur_sum - v;
        qe_pj_add.FieldByName('pj_fk_sum').Value := v;
      end;
    end;
  end;
  //
  Result := intResult;
end;

procedure Tfrm_pj_tk1.ImportInit;
var
  intXSum: Double;
  strKind, strGg, strName: string;
  intpos: integer;
begin
  if MessageBox(Handle, '确定要将配件返库吗?', '沈阳信德', MB_ICONQUESTION or MB_OKCANCEL) = ID_CANCEL then
    Exit;
  //  
  qe_jy.Close;
  qe_jy.SQL.Clear;
  qe_jy.SQL.Add('SELECT * FROM PJ_ADD WHERE DJ_BH = ''' + cur_bh + '''');
  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_fk_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_iid').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_jy.Next;
  end;
  //
  if intpos = 1 then begin
    qe_jy.Close;
    Exit;
  end else begin
    if lst_kind.Items.Count = 0 then begin
      MessageBox(Handle, '没有配件可返库', '沈阳信德', MB_ICONQUESTION or MB_OK);
      qe_jy.Close;
      Exit;
    end;
    for intpos := 0 to lst_kind.Items.Count - 1 do begin
      sp_up_pj_ck.ParamByName('@ipos').Value := 2;
      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;
      //
      sp_up_pj_add1.ParamByName('@ipos').Value := 2;
      sp_up_pj_add1.ParamByName('@ipj_kind_id').Value := lst_kind.Items[intpos];
      sp_up_pj_add1.ParamByName('@ipj_gg_id').Value := lst_gg.Items[intpos];
      sp_up_pj_add1.ParamByName('@ipj_iid').Value := lst_name.Items[intpos];
      sp_up_pj_add1.ParamByName('@idj_bh').Value := cur_bh;
      sp_up_pj_add1.ParamByName('@idate').Value := frm_log.controlDate(DateToStr(Date()));
      sp_up_pj_add1.ExecProc;
    end;
    //
    qe_jy.Close;
    //    
    qe_pj_add.Close;
    qe_pj_add.Open;
    qe_pj_add.Last;
  end;
end;

procedure Tfrm_pj_tk1.SaveInit;
begin
  pe_bh.Enabled := True;
  pe_info.Enabled := True;
  pe_image.Visible := True;
  pe_edit.Visible := False;
  //
  EnabledComponent(dsBrowse);
end;

⌨️ 快捷键说明

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