📄 pj_wm.pas
字号:
////////////////////////////////////////////////////////////////////////////////
// //
// THE CHECK FOR TRADE RULE BEFORE SAVING THE EDITING RECORD //
// //
////////////////////////////////////////////////////////////////////////////////
function Tfrm_pj_wm.RuleCheck1: integer;
var
intResult: integer;
v: Double;
code: integer;
v1, v2: Double;
begin
intResult := 0;
//
if (Trim(txt_sum.Text) = '') then begin
MessageBox(Handle, '请确定销售数量', '沈阳信德', MB_ICONQUESTION or MB_OK);
txt_sum.SetFocus;
intResult := 1;
end else begin
Val(Trim(txt_sum.Text), v1, code);
if (code <> 0) or (v1 < 0.01) then begin
MessageBox(Handle, '销售数量无效', '沈阳信德', MB_ICONQUESTION or MB_OK);
txt_sum.SetFocus;
Result := 1;
Exit;
end;
if Trim(txt_dj.Text) = '' then begin
MessageBox(Handle, '请确定售价', '沈阳信德', MB_ICONQUESTION or MB_OK);
txt_dj.SetFocus;
intResult := 1;
end else begin
Val(Trim(txt_dj.Text), v, code);
if (code <> 0) or (v < 0.01) then begin
MessageBox(Handle, '售价无效', '沈阳信德', MB_ICONQUESTION or MB_OK);
txt_dj.SetFocus;
intResult := 1;
end else begin
v1 := Int(v1) + Round((Frac(v1)*100))/100;
qe_jy.Close;
qe_jy.SQL.Clear;
qe_jy.SQL.Add('SELECT * FROM PJ_CK WHERE PJ_KIND = ''' + Trim(txt_kind.Text) + ''' AND PJ_GG = ''' + Trim(txt_gg.Text) + ''' AND PJ_NAME = ''' + Trim(txt_pj.Text) + '''');
qe_jy.Open;
qe_jy.First;
v2 := qe_jy.FieldByName('pj_sum').Value;
qe_jy.Close;
if v1 > v2 then begin
MessageBox(Handle, '销售数量超界', '沈阳信德', MB_ICONQUESTION or MB_OK);
txt_sum.SetFocus;
Result := 1;
Exit;
end;
end;
end;
end;
//
Result := intResult;
end;
function Tfrm_pj_wm.RuleCheck: integer;
var
intResult: integer;
v1, v2: Double;
v3: Double;
code1, code3: integer;
str_id, str_name: string;
strSQL: string;
begin
intResult := 0;
//
if (Trim(txt_kind.Text) = '') or (hideList[1].ItemIndex = -1) then begin
MessageBox(Handle, '请确定配件类型', '沈阳信德', MB_ICONQUESTION or MB_OK);
txt_kind.SetFocus;
intResult := 1;
end else begin
str_id := Copy(hideList[1].Items[hideList[1].ItemIndex], 1, 20);
str_name := Copy(hideList[1].Items[hideList[1].ItemIndex], 21, 60);
if Trim(str_name) <> Trim(txt_kind.Text) then begin
MessageBox(Handle, '配件类型不完整', '沈阳信德', MB_ICONQUESTION or MB_OK);
txt_kind.SetFocus;
intResult := 1;
end else begin
if (Trim(txt_gg.Text) = '') or (hideList[2].ItemIndex = -1) then begin
MessageBox(Handle, '请确定配件规格', '沈阳信德', MB_ICONQUESTION or MB_OK);
txt_gg.SetFocus;
intResult := 1;
end else begin
if Trim(str_id) <> Trim(qe_gg.ParamByName('ipj_kind_id').Value) then begin
MessageBox(Handle, '配件规格与配件类型不一致', '沈阳信德', MB_ICONQUESTION or MB_OK);
txt_kind.SetFocus;
intResult := 1;
end else begin
str_name := Copy(hideList[2].Items[hideList[2].ItemIndex], 21, 60);
if Trim(str_name) <> Trim(txt_gg.Text) then begin
MessageBox(Handle, '配件规格不完整', '沈阳信德', MB_ICONQUESTION or MB_OK);
txt_gg.SetFocus;
intResult := 1;
end else begin
if (Trim(txt_pj.Text) = '') or (hideList[3].ItemIndex = -1) then begin
MessageBox(Handle, '请确定配件名称', '沈阳信德', MB_ICONQUESTION or MB_OK);
txt_pj.SetFocus;
intResult := 1;
end else begin
str_name := Copy(hideList[3].Items[hideList[3].ItemIndex], 21, 60);
if Trim(str_name) <> Trim(txt_pj.Text) then begin
MessageBox(Handle, '配件名称不完整', '沈阳信德', MB_ICONQUESTION or MB_OK);
txt_pj.SetFocus;
Result := 1;
Exit;
end;
str_id := Copy(hideList[1].Items[hideList[1].ItemIndex], 1, 20);
str_name := Copy(hideList[2].Items[hideList[2].ItemIndex], 1, 20);
if (Trim(str_id) <> Trim(qe_name.ParamByName('ikind').Value)) or (Trim(str_name) <> Trim(qe_name.ParamByName('igg').Value)) then begin
MessageBox(Handle, '配件名称不存在', '沈阳信德', MB_ICONQUESTION or MB_OK);
txt_pj.SetFocus;
Result := 1;
Exit;
end;
Val(Trim(txt_sum.Text), v1, code1);
Val(Trim(txt_dj.Text), v3, code3);
if (code1 <> 0) or (code3 <> 0) then begin
MessageBox(Handle, '输入的数据不是有效数字, 请检查', '沈阳信德', MB_ICONQUESTION or MB_OK);
txt_sum.SetFocus;
intResult := 1;
end else begin
if (v1 < 0.01) or (v3 < 0.01) then begin
MessageBox(Handle, '数量不能为0', '沈阳信德', MB_ICONQUESTION or MB_OK);
txt_sum.SetFocus;
intResult := 1;
end else begin
qe_jy.Close;
qe_jy.SQL.Clear;
strSQL := 'SELECT * FROM PJ_CK WHERE PJ_KIND_ID = ''' + Trim(Copy(hideList[1].Items[hideList[1].ItemIndex], 1, 20)) + ''' ';
strSQL := strSQL + 'AND PJ_GG_ID = ''' + Trim(Copy(hideList[2].Items[hideList[2].ItemIndex], 1, 20)) + ''' ';
strSQL := strSQL + 'AND PJ_ID = ''' + Trim(Copy(hideList[3].Items[hideList[3].ItemIndex], 1, 20)) + ''' ';
qe_jy.SQL.Add(strSQL);
qe_jy.Open;
qe_jy.First;
v2 := qe_jy.FieldByName('pj_sum').Value;
qe_jy.Close;
v1 := Int(v1) + Round((Frac(v1)*100))/100;
if v1 > v2 then begin
MessageBox(Handle, '销售数量超界', '沈阳信德', MB_ICONQUESTION or MB_OK);
txt_sum.SetFocus;
Result := 1;
Exit;
end;
end;
end;
end;
end;
end;
end;
end;
end;
//
Result := intResult;
end;
procedure Tfrm_pj_wm.controlDj(intState: TDataSetState);
var
str_kind, str_gg, str_name: string;
str_kind1, str_gg1, str_name1: string;
f_sum, f_dj: Double;
begin
f_sum := StrToFloat(Trim(txt_sum.Text));
f_sum := Int(f_sum) + Round((Frac(f_sum)*100))/100;
f_dj := StrToFloat(Trim(txt_dj.Text));
f_dj := Int(f_dj) + Round((Frac(f_dj)*100))/100;
//
if intState = dsInsert then begin
str_kind := Trim(Copy(hideList[1].Items[hideList[1].ItemIndex], 21, 60));
str_gg := Trim(Copy(hideList[2].Items[hideList[2].ItemIndex], 21, 60));
str_name := Trim(Copy(hideList[3].Items[hideList[3].ItemIndex], 21, 60));
str_kind1 := Trim(Copy(hideList[1].Items[hideList[1].ItemIndex], 1, 20));
str_gg1 := Trim(Copy(hideList[2].Items[hideList[2].ItemIndex], 1, 20));
str_name1 := Trim(Copy(hideList[3].Items[hideList[3].ItemIndex], 1, 20));
//
qe_jy.Close;
qe_jy.SQL.Clear;
qe_jy.SQL.Add('SELECT * FROM WM_GL WHERE WM_BH = ''' + Trim(txt_dj_bh.Caption) + ''' AND PJ_CZR <> ''' + frm_main.user_name + '''');
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_jy.Close;
qe_jy.SQL.Clear;
qe_jy.SQL.Add('SELECT * FROM PJ_CK WHERE PJ_KIND_ID = ''' + str_kind1 + ''' AND PJ_GG_ID = ''' + str_gg1 + ''' AND PJ_ID = ''' + str_name1 + '''');
qe_jy.Open;
qe_jy.First;
qe_wm_gl.FieldByName('pj_jj').Value := qe_jy.FieldByName('pj_jj').Value;
//
qe_wm_gl.FieldByName('wm_bh').AsString := Trim(txt_dj_bh.Caption);
qe_wm_gl.FieldByName('wm_date').AsString := frm_log.controlDate(DateToStr(Date()));
qe_wm_gl.FieldByName('wm_year').AsInteger := year;
qe_wm_gl.FieldByName('wm_month').AsInteger := month;
qe_wm_gl.FieldByName('wm_day').AsInteger := day;
qe_wm_gl.FieldByName('pj_kind').AsString := str_kind;
qe_wm_gl.FieldByName('pj_gg').AsString := str_gg;
qe_wm_gl.FieldByName('pj_name').AsString := str_name;
qe_wm_gl.FieldByName('pj_kind_id').AsString := str_kind1;
qe_wm_gl.FieldByName('pj_gg_id').AsString := str_gg1;
qe_wm_gl.FieldByName('pj_id').AsString := str_name1;
qe_wm_gl.FieldByName('pj_ghdw').AsString := Trim(txt_dw.Caption);
//
qe_wm_gl.FieldByName('pj_ck_sum').Value := f_sum;
qe_wm_gl.FieldByName('pj_dj').Value := f_dj;
//
qe_wm_gl.FieldByName('pj_unit').AsString := Trim(txt_unit.Text);
qe_wm_gl.FieldByName('edit_type').Value := 1;
qe_wm_gl.FieldByName('pj_czr').AsString := frm_main.user_name;
end else if intState = dsEdit then begin
qe_wm_gl.FieldByName('pj_ck_sum').Value := f_sum;
qe_wm_gl.FieldByName('pj_dj').Value := f_dj;
end;
//
cmd_print.Tag := 25;
end;
////////////////////////////////////////////////////////////////////////////////
// //
// CONTROLING THE ENTER FOR ALL CONTROLS //
// //
////////////////////////////////////////////////////////////////////////////////
procedure Tfrm_pj_wm.ControlEnter(Sender: TObject);
var
i: integer;
str_name, str_name1: string;
str_pym: string;
str_id: string;
intLen: integer;
begin
for i := 1 to 3 do
hideList[i].Visible := False;
//
if qe_wm_gl.State = dsInsert then begin
if Trim(txt_pj.Text) <> '' then begin
if hideList[3].ItemIndex > -1 then begin
str_name := Trim(Copy(hideList[3].Items[hideList[3].ItemIndex], 21, 60));
if Trim(txt_pj.Text) = Trim(str_name) then begin
txt_unit.Text := lst_unit.Items[hideList[3].ItemIndex];
txt_dj.Text := lst_sj.Items[hideList[3].ItemIndex];
end else begin
txt_unit.Text := '';
txt_dj.Text := '';
end;
end else begin
txt_unit.Text := '';
txt_dj.Text := '';
end;
end else begin
txt_unit.Text := '';
txt_dj.Text := '';
end;
end;
//
if TWinControl(Sender).Tag = 2 then begin
if (Trim(txt_kind.Text) = '') or (hideList[1].ItemIndex = -1) then begin
MessageBox(Handle, '请确定配件类型', '沈阳信德', MB_ICONQUESTION or MB_OK);
txt_kind.SetFocus;
Exit;
end else begin
str_name := Trim(Copy(hideList[1].Items[hideList[1].ItemIndex], 21, 60));
if Trim(str_name) <> Trim(txt_kind.Text) then begin
MessageBox(Handle, '请确定配件类型', '沈阳信德', MB_ICONQUESTION or MB_OK);
txt_kind.SetFocus;
Exit;
end else begin
str_id := Copy(hideList[1].Items[hideList[1].ItemIndex], 1, 20);
if Trim(str_id) <> Trim(qe_gg.ParamByName('ipj_kind_id').Value) then begin
qe_gg.Close;
qe_gg.ParamByName('ipj_kind_id').Value := Trim(str_id);
qe_gg.Open;
qe_gg.First;
if (qe_gg.Bof) and (qe_gg.Eof) then begin
MessageBox(Handle, '该类型的配件规格不存在', '沈阳信德', MB_ICONQUESTION or MB_OK);
qe_gg.ParamByName('ipj_kind_id').Value := '***';
txt_kind.SetFocus;
Exit;
end;
qe_gg.First;
hideList[2].Items.Clear;
while not qe_gg.Eof do begin
str_id := Trim(qe_gg.FieldByName('pj_gg_id').AsString);
str_name := Trim(qe_gg.FieldByName('pj_gg').AsString);
str_pym := Trim(qe_gg.FieldByName('pj_gg_p').AsString);
if str_id <> '000' then begin
intLen := Length(str_id);
if intLen < 20 then str_id := str_id + spaceArray[20 - intLen];
hideList[2].Items.Add(str_id + str_name + spaceArray[20] + spaceArray[20] + spaceArray[20] + ' ^' + str_pym);
end;
qe_gg.Next;
end;
qe_gg.Close;
hideList[2].ItemIndex := -1;
//
txt_gg.OnChange := nil;
txt_gg.Text := '';
txt_gg.OnChange := frm_pj_wm.ControlChange1;
end;
end;
end;
end;
//
if TWinControl(Sender).Tag = 3 then begin
if (Trim(txt_kind.Text) = '') or (hideList[1].ItemIndex = -1) then begin
MessageBox(Handle, '请确定配件类型', '沈阳信德', MB_ICONQUESTION or MB_OK);
txt_kind.SetFocus;
Exit;
end else begin
str_name := Copy(hideList[1].Items[hideList[1].ItemIndex], 21, 60);
if Trim(str_name) <> Trim(txt_kind.Text) then begin
MessageBox(Handle, '请确定配件类型', '沈阳信德', MB_ICONQUESTION or MB_OK);
txt_kind.SetFocus;
Exit;
end else begin
if (Trim(txt_gg.Text) = '') or (hideList[2].ItemIndex = -1) then begin
MessageBox(Handle, '请确定配件规格', '沈阳信德', MB_ICONQUESTION or MB_OK);
txt_gg.SetFocus;
Exit;
end else begin
str_name := Copy(hideList[2].Items[hideList[2].ItemIndex], 21, 60);
if Trim(str_name) <> Trim(txt_gg.Text) then begin
MessageBox(Handle, '请确定配件规格', '沈阳信德', MB_ICONQUESTION or MB_OK);
txt_gg.SetFocus;
Exit;
end else begin
str_name := Copy(hideList[1].Items[hideList[1].ItemIndex], 1, 20);
str_name1 := Copy(hideList[2].Items[hideList[2].ItemIndex], 1, 20);
if (Trim(str_name) <> Trim(qe_name.ParamByName('ikind').Value)) or (Trim(str_name1) <> Trim(qe_name.ParamByName('igg').Value)) then begin
qe_name.Close;
qe_name.ParamByName('ikind').Value := Trim(str_name);
qe_name.ParamByName('igg').Value := Trim(str_name1);
qe_name.Open;
qe_name.First;
//
hideList[3].Items.Clear;
lst_unit.Items.Clear;
lst_sj.Items.Clear;
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_name_p').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(FloatToStr(qe_name.FieldByName('pj_sj').Value));
end;
qe_name.Next;
end;
qe_name.Close;
hideList[3].ItemIndex := -1;
end;
end;
end;
end;
end;
end;
end;
procedure Tfrm_pj_wm.ControlChange1(Sender: TObject);
var
strText: string;
i: integer;
intPos: integer;
//
intIndex: integer;
str_id: string;
begin
if qe_wm_gl.State = dsEdit then
EnabledComponent(dsEdit);
if (qe_wm_gl.State = dsInsert) then begin
EnabledComponent(dsInsert);
intIndex := TWinControl(Sender).Tag;
//
if (intIndex <= 3) and (intIndex > 0) then begin
hideList[intIndex].Visible := True;
strText := Trim(TEdit(Sender).Text);
//第一次
for i := 0 to hideList[intIndex].Items.Count - 1 do begin
str_id := Copy(hideList[intIndex].Items[i], Pos('^', hideList[intIndex].Items[i]) + 1, 20);
intPos := Pos(strText, str_id);
if intPos = 1 then begin
hideList[intIndex].ItemIndex := i;
Break;
end else begin
hideList[intIndex].ItemIndex := 0;
end;
end;
//第二次
if intPos <> 1 then begin
for i := 0 to hideList[intIndex].Items.Count - 1 do begin
str_id := Copy(hideList[intIndex].Items[i], 1, 20);
intPos := Pos(strText, str_id);
if intPos = 1 then begin
hideList[intIndex].ItemIndex := i;
Break;
end else begin
hideList[intIndex].ItemIndex := 0;
end;
end;
end;
//第三次
if intPos <> 1 then begin
for i := 0 to hideList[intIndex].Items.Count - 1 do begin
str_id := Copy(hideList[intIndex].Items[i], 21, 60);
intPos := Pos(strText, str_id);
if intPos = 1 then begin
hideList[intIndex].ItemIndex := i;
Break;
end else begin
hideList[intIndex].ItemIndex := 0;
end;
end;
end;
end;
end;
end;
////////////////////////////////////////////////////////////////////////////////
// //
// CONTROLING THE KEYPRESS FOR ALL CONTROLS //
// //
////////////////////////////////////////////////////////////////////////////////
procedure Tfrm_pj_wm.ControlKeyPress1(Sender: TObject; var Key: Char);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -