📄 ss_ypkccsh.pas
字号:
qry_initZK.AsFloat := Old_Value;
qry_initZK.OnChange := qry_initZKChange;
Abort;
end;
qry_initJSJ.OnChange := nil;
qry_init.FieldByName('JSJ').AsFloat := 0;
qry_initJSJ.OnChange := qry_initJSJChange;
qry_init.FieldByName('TEMP').AsInteger := 1;
end;
{-------------------------------------------------------------------------------}
{结算价}
procedure Tfrm_YPKCCSH.qry_initJSJChange(Sender: TField);
var
Old_Value: Double;
begin
{判断结算价是否合法}
if qry_initJSJ.AsFloat < 0 then
begin
CHQMsgBox('结算价不能为负!');
Old_Value := 0;
if qry_init.FieldByName('PPDM').AsString <> '' then
try
Old_Value := qry_initJSJ.OldValue;
except
end;
qry_initJSJ.OnChange := nil;
qry_initJSJ.AsFloat := Old_Value;
qry_initJSJ.OnChange := qry_initJSJChange;
Abort;
end;
qry_initZK.OnChange := nil;
qry_init.FieldByName('ZK').AsFloat := 0;
qry_initZK.OnChange := qry_initZKChange;
qry_init.FieldByName('TEMP').AsInteger := 1;
end;
{-------------------------------------------------------------------------------}
{显示面值、售价、进价、销价、结算价}
procedure Tfrm_YPKCCSH.qry_initGetText(Sender: TField;
var Text: string; DisplayText: Boolean);
begin
try
Sender.AsFloat;
if not Sender.IsNull then
if Sender.Name = 'qry_initJJ' then
Text := FormatFloat('#,##0.0000##', Sender.AsFloat / 100)
else
Text := FormatFloat('#,##0.00##', Sender.AsFloat / 100);
except
end;
end;
{保存进价、销价、结算价}
procedure Tfrm_YPKCCSH.qry_initSetText(Sender: TField;
const Text: string);
begin
Sender.AsFloat := strToFloat(Text) * 100;
end;
{-------------------------------------------------------------------------------}
{库位号}
procedure Tfrm_YPKCCSH.qry_initKWHChange(Sender: TField);
begin
qry_init.FieldByName('TEMP').AsInteger := 1;
end;
{-------------------------------------------------------------------------------}
{新增同一票品的不同进价}
procedure Tfrm_YPKCCSH.Add_Init_Data;
var
l_ZH, l_TMC, l_KWH, l_TDM: string;
l_TPMZ, l_TPSJ, l_XJ, l_ZK, l_JSJ: Double;
// l_JJ,l_TS,
Before_Insert: TDataSetNotifyEvent;
begin
with qry_Init do
begin
l_ZH := FieldByName('ZH').AsString;
l_TMC := FieldByName('TMC').AsString;
l_KWH := FieldByName('KWH').AsString;
l_TDM := FieldByName('TDM').AsString;
l_TPMZ := FieldByName('TPMZ').AsFloat;
l_TPSJ := FieldByName('TPSJ').AsFloat;
// l_JJ := FieldByName('JJ').AsInteger;
l_XJ := FieldByName('XJ').AsFloat;
// l_TS := FieldByName('TS').AsInteger;
l_ZK := FieldByName('ZK').AsFloat;
l_JSJ := FieldByName('JSJ').AsFloat;
DisableControls;
Before_Insert := BeforeInsert;
BeforeInsert := nil;
Insert;
BeforeInsert := Before_Insert;
FieldByName('ZH').AsString := l_ZH;
FieldByName('TMC').AsString := l_TMC;
FieldByName('KWH').AsString := l_KWH;
FieldByName('TDM').AsString := l_TDM;
FieldByName('TPMZ').AsFloat := l_TPMZ;
FieldByName('TPSJ').AsFloat := l_TPSJ;
// FieldByName('JJ').AsInteger := l_JJ;
qry_initXJ.OnChange := nil;
FieldByName('XJ').AsFloat := l_XJ;
qry_initXJ.OnChange := qry_initXJChange;
FieldByName('TS').AsFloat := 0;
FieldByName('ZK').AsFloat := l_ZK;
FieldByName('JSJ').AsFloat := l_JSJ;
EnableControls;
{设置处于编辑状态}
rxdb_Init.SelectedIndex := 4;
if not (dgAlwaysShowEditor in rxdb_Init.Options) then
begin
rxdb_Init.Options := rxdb_Init.Options + [dgAlwaysShowEditor];
rxdb_Init.Options := rxdb_Init.Options - [dgAlwaysShowEditor];
end;
rxdb_Init.SetFocus;
end;
end;
{==============================================================================}
{批量设置进价等}
procedure Tfrm_YPKCCSH.Set_Data;
begin
with TFrm_YP_Init_PLSR.Create(Application) do
try
ShowModal;
if ModalResult = mrok then
case State of
1: Set_ZK(Set_Result);
21: Set_JSJ(Set_Result);
22: Set_JSJ(Set_Result, false);
31: Set_JJ1(Set_Result, Over_Write);
32: Set_JJ2(Set_Result, Over_Write);
4: Set_XJ(Set_Result);
end;
finally
Free;
end;
end;
{-------------------------------------------------------------------------------}
{批量设置折扣}
procedure Tfrm_YPKCCSH.Set_ZK(Value: Double);
var
cur_pos: Pointer;
i: Integer;
begin
with qry_Init do
begin
lbl_Search.Visible := False;
pgb_State.Visible := True;
lbl_State.Visible := True;
lbl_State.Caption := '正在设置...';
lbl_State.Refresh;
Self.Refresh;
pgb_State.Max := RecordCount;
i := 0;
cur_pos := GetBookmark;
try
DisableControls;
ds_init.DataSet := nil;
First;
while not Eof do
begin
Edit;
FieldByName('JSJ').AsFloat := 0;
FieldByName('ZK').AsFloat := Value;
pgb_State.Position := i;
i := i + 1;
Next;
end;
GotoBookmark(cur_pos);
finally
FreeBookmark(cur_pos);
ds_init.DataSet := qry_init;
EnableControls;
end;
pgb_State.Visible := False;
lbl_State.Visible := False;
lbl_Search.Visible := True;
end;
end;
{-------------------------------------------------------------------------------}
{批量设置结算价}
procedure Tfrm_YPKCCSH.Set_JSJ(Value: Double; AGDZ: boolean = true);
var
cur_pos: Pointer;
i: Integer;
begin
with qry_Init do
begin
lbl_Search.Visible := False;
pgb_State.Visible := True;
lbl_State.Visible := True;
lbl_State.Caption := '正在设置...';
lbl_State.Refresh;
Self.Refresh;
pgb_State.Max := RecordCount;
i := 0;
cur_pos := GetBookmark;
try
DisableControls;
ds_init.DataSet := nil;
First;
while not Eof do
begin
Edit;
FieldByName('ZK').AsFloat := 0;
if AGDZ then
FieldByName('JSJ').AsFloat := Value * 100
else
FieldByName('JSJ').AsFloat := FieldByName('JJ').AsFloat;
pgb_State.Position := i;
i := i + 1;
Next;
end;
GotoBookmark(cur_pos);
finally
FreeBookmark(cur_pos);
ds_init.DataSet := qry_init;
EnableControls;
end;
pgb_State.Visible := False;
lbl_State.Visible := False;
lbl_Search.Visible := True;
end;
end;
{-------------------------------------------------------------------------------}
{批量设置进价1,依据折算价计算}
procedure Tfrm_YPKCCSH.Set_JJ1(Value: Double; Over_Write: Boolean);
var
cur_pos: Pointer;
i: Integer;
begin
with qry_Init do
begin
lbl_Search.Visible := False;
pgb_State.Visible := True;
lbl_State.Visible := True;
lbl_State.Caption := '正在设置...';
lbl_State.Refresh;
Self.Refresh;
pgb_State.Max := RecordCount;
i := 0;
cur_pos := GetBookmark;
try
DisableControls;
ds_init.DataSet := nil;
First;
while not Eof do
begin
if (Over_Write = True) or (FieldByName('JJ').AsFloat = 0) then
begin
Edit;
FieldByName('JJ').AsFloat := FieldByName('TPSJ').AsFloat * Value / 100;
end;
pgb_State.Position := i;
i := i + 1;
Next;
end;
GotoBookmark(cur_pos);
finally
FreeBookmark(cur_pos);
ds_init.DataSet := qry_init;
EnableControls;
end;
pgb_State.Visible := False;
lbl_State.Visible := False;
lbl_Search.Visible := True;
end;
end;
{批量设置进价2,直接赋值}
procedure Tfrm_YPKCCSH.Set_JJ2(Value: Double; Over_Write: Boolean);
var
cur_pos: Pointer;
i: Integer;
begin
with qry_Init do
begin
lbl_Search.Visible := False;
pgb_State.Visible := True;
lbl_State.Visible := True;
lbl_State.Caption := '正在设置...';
lbl_State.Refresh;
Self.Refresh;
pgb_State.Max := RecordCount;
i := 0;
cur_pos := GetBookmark;
try
DisableControls;
ds_init.DataSet := nil;
First;
while not Eof do
begin
if (Over_Write = True) or (FieldByName('JJ').AsFloat = 0) then
begin
Edit;
FieldByName('JJ').AsFloat := Value * 100;
end;
pgb_State.Position := i;
i := i + 1;
Next;
end;
GotoBookmark(cur_pos);
finally
FreeBookmark(cur_pos);
ds_init.DataSet := qry_init;
EnableControls;
end;
pgb_State.Visible := False;
lbl_State.Visible := False;
lbl_Search.Visible := True;
end;
end;
{批量设置销价}
procedure Tfrm_YPKCCSH.Set_XJ(Value: Double);
var
cur_pos: Pointer;
XjChange: TFieldNotifyEvent;
i: Integer;
begin
XjChange := qry_initXJ.OnChange;
qry_initXJ.OnChange := nil;
with qry_Init do
begin
lbl_Search.Visible := False;
pgb_State.Visible := True;
lbl_State.Visible := True;
lbl_State.Caption := '正在设置...';
lbl_State.Refresh;
Self.Refresh;
pgb_State.Max := RecordCount;
i := 0;
cur_pos := GetBookmark;
try
DisableControls;
ds_init.DataSet := nil;
First;
while not Eof do
begin
Edit;
FieldByName('XJ').AsFloat := Value * 100;
FieldByName('TEMP').AsInteger := 1;
pgb_State.Position := i;
i := i + 1;
Next;
end;
GotoBookmark(cur_pos);
finally
FreeBookmark(cur_pos);
ds_init.DataSet := qry_init;
EnableControls;
end;
pgb_State.Visible := False;
lbl_State.Visible := False;
lbl_Search.Visible := True;
end;
qry_initXJ.OnChange := XjChange;
end;
{===============================================================================}
{查询}
procedure Tfrm_YPKCCSH.bbtn_FindClick(Sender: TObject);
begin
with TFrm_YP_Init_Search.Create(Application) do
begin
try
ShowModal;
if ModalResult = mrOk then
begin
lbl_Search.Caption := Search_Caption;
Find_SQL := part_SQL;
Show_Data;
end;
finally
Free;
end;
end;
end;
{-------------------------------------------------------------------------------}
{更改库房,则按照默认显示其内容}
procedure Tfrm_YPKCCSH.fcb_KFChange(Sender: TObject);
begin
if Edit_State <> 1 then
Show_Data;
end;
{-------------------------------------------------------------------------------}
{取消保存初始化数据,恢复原来的状态}
procedure Tfrm_YPKCCSH.Cancel_Init_Data;
begin
if CHQMsgBox('确实要取消所做的修改吗?', 2) = mrNo then
Exit;
qry_init.CancelUpdates;
Set_State(0);
end;
{-------------------------------------------------------------------------------}
{保存初始化数据}
function Tfrm_YPKCCSH.Save_Init_Data: Boolean;
var
cur_pos: Pointer;
l_PPDM, l_failPPDM: string;
l_JJ, l_failJJ: Double;
Can_Continue: Boolean;
Have_Find: Boolean;
i: Integer;
procedure DoFailLocate;
begin
qry_Init.Locate('TDM', l_failPPDM, [loCaseInsensitive]);
qry_Init.Locate('TDM;JJ', VarArrayOf([l_failPPDM, l_failJJ]), [loCaseInsensitive]);
end;
begin
l_JJ := 0;
l_PPDM := '';
with qry_init do
begin
DisableControls;
ds_init.DataSet := nil;
cur_pos := GetBookmark;
{保存完毕以后返回原始位置}
Have_Find := False;
while not Eof do
begin
if FieldByName('TS').AsInteger <> 0 then
begin
l_PPDM := FieldByName('TDM').AsString;
l_JJ := FieldByName('JJ').AsFloat;
Have_Find := True;
Break;
end;
Next;
end;
if Have_Find = False then
begin
GotoBookmark(cur_pos);
while not Bof do
begin
if FieldByName('TS').AsInteger <> 0 then
begin
l_PPDM := FieldByName('TDM').AsString;
l_JJ := FieldByName('JJ').AsFloat;
Have_Find := True;
Break;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -