📄 cl_dj.pas
字号:
unit cl_dj;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Mask, ExtCtrls, Buttons, Db, DBTables, Printers, Grids, DBGrids;
type
Tfrm_cl_dj = class(TForm)
pe_bh: TPanel;
Label1: TLabel;
txt_dj_bh: TStaticText;
pe_edit: TPanel;
Label2: TLabel;
txt_dj_time: TMaskEdit;
Label3: TLabel;
txt_jc_time: TMaskEdit;
gb_std_info: TGroupBox;
Label4: TLabel;
txt_cph: TEdit;
Label5: TLabel;
txt_cx: TEdit;
Label6: TLabel;
txt_dph: TEdit;
Label7: TLabel;
txt_fdjh: TEdit;
Label8: TLabel;
txt_cz: TEdit;
Label9: TLabel;
txt_tel: TEdit;
Label10: TLabel;
txt_czdw: TEdit;
cb_yj: TCheckBox;
cb_bx: TCheckBox;
pe_yj: TPanel;
Panel3: TPanel;
Label11: TLabel;
lbl_kind: TLabel;
txt_yj: TEdit;
combo_bx_kind: TComboBox;
Panel4: TPanel;
combo_wx_kind: TComboBox;
cmd_new: TBitBtn;
cmd_edit: TBitBtn;
cmd_save: TBitBtn;
cmd_cancel: TBitBtn;
cmd_print: TBitBtn;
Label12: TLabel;
txt_addr: TEdit;
qe_jy: TQuery;
qe_cl: TQuery;
sp_update_mode_for_cl_dj: TStoredProc;
qe_bx: TQuery;
combo_p: TComboBox;
pe_info: TPanel;
DBGrid1: TDBGrid;
ds_cl: TDataSource;
sp_up_cl_dj: TStoredProc;
cmd_refresh: TBitBtn;
sp_insert_into_day: TStoredProc;
sp_insert_into_sj: TStoredProc;
//
procedure controlChange1(Sender: TObject);
procedure controlKeyPress1(Sender: TObject; var Key: Char);
procedure controlKeyPress2(Sender: TObject; var Key: Char);
procedure controlKeyPress3(Sender: TObject; var Key: Char);
procedure cb_yjClick(Sender: TObject);
procedure cb_bxClick(Sender: TObject);
procedure cmd_newClick(Sender: TObject);
procedure cmd_editClick(Sender: TObject);
procedure cmd_saveClick(Sender: TObject);
procedure cmd_cancelClick(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormShow(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure FormDestroy(Sender: TObject);
procedure cmd_printClick(Sender: TObject);
procedure qe_clAfterScroll(DataSet: TDataSet);
procedure qe_clEditError(DataSet: TDataSet; E: EDatabaseError;
var Action: TDataAction);
procedure cmd_refreshClick(Sender: TObject);
private
{ Private declarations }
year, month, day: Word;
YJ_BH: string;
//
procedure EnabledComponent(intState: TDataSetState);
procedure controlSetFocus(intpos: integer);
function RuleCheck: integer;
procedure controlDj(intState: TDataSetState);
procedure NewInit;
procedure EditInit;
procedure SaveInit;
procedure CancelInit;
//
procedure SetNewBH;
function SetNewBH1(intKind: integer): string;
public
{ Public declarations }
end;
var
frm_cl_dj: Tfrm_cl_dj;
implementation
{$R *.DFM}
uses
log, main, print, yj_select;
function Tfrm_cl_dj.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_cl_dj.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 * FROM CL_DJ WHERE DJ_YEAR = ' + IntToStr(year) + ' AND DJ_MONTH = ' + IntToStr(month) + ' AND DJ_DAY = ' + IntToStr(day) + '');
qe_jy.Open;
qe_jy.Last;
intR_d := qe_jy.RecordCount;
//
qe_jy.Close;
qe_jy.SQL.Clear;
qe_jy.SQL.Add('SELECT * FROM CL_DJ WHERE DJ_YEAR = ' + IntToStr(year) + ' AND DJ_MONTH = ' + IntToStr(month) + ' ');
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;
procedure Tfrm_cl_dj.controlDj(intState: TDataSetState);
var
cur_yj: Double;
begin
if intState = dsInsert then begin
qe_jy.Close;
qe_jy.SQL.Clear;
qe_jy.SQL.Add('SELECT * FROM CL_DJ WHERE DJ_BH = ''' + Trim(txt_dj_bh.Caption) + '''');
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_cl.FieldByName('dj_bh').AsString := Trim(txt_dj_bh.Caption);
qe_cl.FieldByName('dj_year').AsInteger := year;
qe_cl.FieldByName('dj_month').AsInteger := month;
qe_cl.FieldByName('dj_day').AsInteger := day;
qe_cl.FieldByName('dj_cph').AsString := Trim(txt_cph.Text);
qe_cl.FieldByName('dj_cx').AsString := Trim(txt_cx.Text);
qe_cl.FieldByName('dj_dph').AsString := Trim(txt_dph.Text);
qe_cl.FieldByName('dj_fdjh').AsString := Trim(txt_fdjh.Text);
qe_cl.FieldByName('dj_cz').AsString := Trim(txt_cz.Text);
qe_cl.FieldByName('dj_czdw').AsString := Trim(txt_czdw.Text);
qe_cl.FieldByName('dj_tel').AsString := Trim(txt_tel.Text);
qe_cl.FieldByName('dj_addr').AsString := Trim(txt_addr.Text);
qe_cl.FieldByName('dj_time').AsString := Trim(txt_dj_time.EditText);
qe_cl.FieldByName('dj_jctime').AsString := Trim(txt_jc_time.EditText);
if cb_bx.Checked then begin
qe_cl.FieldByName('dj_bx_bs').AsInteger := 1;
qe_cl.FieldByName('dj_bx_kind').AsString := combo_bx_kind.Text;
qe_cl.FieldByName('dj_wx_kind').AsString := '无';
end else begin
qe_cl.FieldByName('dj_bx_bs').AsInteger := 0;
qe_cl.FieldByName('dj_wx_kind').AsString := combo_wx_kind.Text;
qe_cl.FieldByName('dj_bx_kind').AsString := '无';
end;
if cb_yj.Checked then begin
qe_cl.FieldByName('dj_yj_bs').AsInteger := 1;
//
cur_yj := StrToFloat(Trim(txt_yj.Text));
cur_yj := Int(cur_yj) + Round((Frac(cur_yj)*100))/100;
//
qe_cl.FieldByName('dj_yj_zf').Value := cur_yj;
end else begin
qe_cl.FieldByName('dj_yj_bs').AsInteger := 0;
qe_cl.FieldByName('dj_yj_zf').Value := 0;
end;
qe_cl.FieldByName('edit_type').Value := 1;
qe_cl.FieldByName('dj_czr').AsString := frm_main.user_name;
end else if intState = dsEdit then begin
qe_cl.FieldByName('dj_cph').AsString := Trim(txt_cph.Text);
qe_cl.FieldByName('dj_cx').AsString := Trim(txt_cx.Text);
qe_cl.FieldByName('dj_dph').AsString := Trim(txt_dph.Text);
qe_cl.FieldByName('dj_fdjh').AsString := Trim(txt_fdjh.Text);
qe_cl.FieldByName('dj_cz').AsString := Trim(txt_cz.Text);
qe_cl.FieldByName('dj_czdw').AsString := Trim(txt_czdw.Text);
qe_cl.FieldByName('dj_tel').AsString := Trim(txt_tel.Text);
qe_cl.FieldByName('dj_addr').AsString := Trim(txt_addr.Text);
qe_cl.FieldByName('dj_time').AsString := Trim(txt_dj_time.EditText);
qe_cl.FieldByName('dj_jctime').AsString := Trim(txt_jc_time.EditText);
if cb_bx.Checked then begin
qe_cl.FieldByName('dj_bx_bs').AsInteger := 1;
qe_cl.FieldByName('dj_bx_kind').AsString := combo_bx_kind.Text;
qe_cl.FieldByName('dj_wx_kind').AsString := '无';
end else begin
qe_cl.FieldByName('dj_bx_bs').AsInteger := 0;
qe_cl.FieldByName('dj_wx_kind').AsString := combo_wx_kind.Text;
qe_cl.FieldByName('dj_bx_kind').AsString := '无';
end;
if cb_yj.Checked then begin
qe_cl.FieldByName('dj_yj_bs').AsInteger := 1;
//
cur_yj := StrToFloat(Trim(txt_yj.Text));
cur_yj := Int(cur_yj) + Round((Frac(cur_yj)*100))/100;
//
qe_cl.FieldByName('dj_yj_zf').Value := cur_yj;
end else begin
qe_cl.FieldByName('dj_yj_bs').AsInteger := 0;
qe_cl.FieldByName('dj_yj_zf').Value := 0;
end;
end;
end;
function Tfrm_cl_dj.RuleCheck: integer;
var
intResult: integer;
strYear, strMonth, strDay: string;
v: Double;
code: integer;
begin
intResult := 0;
if Trim(txt_dj_time.EditText) = '0000-00-00' then begin
MessageBox(Handle, '请确定登记时间', '沈阳信德', MB_ICONQUESTION or MB_OK);
txt_dj_time.SetFocus;
intResult := 1;
end else begin
strYear := Copy(Trim(txt_dj_time.EditText), 1, 4);
strMonth := Copy(Trim(txt_dj_time.EditText), 6, 2);
strDay := Copy(Trim(txt_dj_time.EditText), 9, 2);
if (StrToInt(strYear) < 1980) or (StrToInt(strMonth) = 0) or (StrToInt(strDay) = 0) then begin
MessageBox(Handle, '登记时间无效', '沈阳信德', MB_ICONQUESTION or MB_OK);
txt_dj_time.SetFocus;
intResult := 1;
end else begin
if Trim(txt_jc_time.EditText) = '0000-00-00' then begin
MessageBox(Handle, '请确定交车时间', '沈阳信德', MB_ICONQUESTION or MB_OK);
txt_jc_time.SetFocus;
intResult := 1;
end else begin
strYear := Copy(Trim(txt_jc_time.EditText), 1, 4);
strMonth := Copy(Trim(txt_jc_time.EditText), 6, 2);
strDay := Copy(Trim(txt_jc_time.EditText), 9, 2);
if (StrToInt(strYear) < 1980) or (StrToInt(strMonth) = 0) or (StrToInt(strDay) = 0) then begin
MessageBox(Handle, '交车时间无效', '沈阳信德', MB_ICONQUESTION or MB_OK);
txt_jc_time.SetFocus;
intResult := 1;
end else begin
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -