?? ss_grpkccsh.pas
字號:
except
end;
qry_initZK.OnChange := nil;
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_GRPKCCSH.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_GRPKCCSH.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_GRPKCCSH.qry_initSetText(Sender: TField;
const Text: string);
begin
Sender.AsFloat := strToFloat(Text) * 100;
end;
{-------------------------------------------------------------------------------}
{庫位號}
procedure Tfrm_GRPKCCSH.qry_initKWHChange(Sender: TField);
begin
qry_init.FieldByName('TEMP').AsInteger := 1;
end;
{-------------------------------------------------------------------------------}
{新增同一票品的不同進價}
procedure Tfrm_GRPKCCSH.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_GRPKCCSH.Set_Data;
begin
with TFrm_GRP_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(Over_Write);
end;
finally
Free;
end;
end;
{-------------------------------------------------------------------------------}
{批量設置折扣}
procedure Tfrm_GRPKCCSH.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_GRPKCCSH.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_GRPKCCSH.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_GRPKCCSH.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_GRPKCCSH.Set_XJ(Over_Write: Boolean);
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
if (Over_Write = True) or (FieldByName('XJ').AsFloat = 0) then
begin
with qry_Tmp do
begin
Close;
SQL.Text := 'Select KCHSJ From TG_GJPPJGB where PPDM=''' + qry_Init.FieldByName('TDM').ASString + '''';
Open;
end;
Edit;
FieldByName('XJ').AsFloat := qry_Tmp.FieldByName('KCHSJ').AsFloat;
FieldByName('TEMP').AsInteger := 1;
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;
qry_initXJ.OnChange := XjChange;
end;
{===============================================================================}
{查詢}
procedure Tfrm_GRPKCCSH.bbtn_FindClick(Sender: TObject);
begin
with TFrm_GRP_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_GRPKCCSH.fcb_KFChange(Sender: TObject);
begin
if Edit_State <> 1 then
Show_Data;
end;
{-------------------------------------------------------------------------------}
{取消保存初始化數據,恢復原來的狀態}
procedure Tfrm_GRPKCCSH.Cancel_Init_Data;
begin
if CHQMsgBox('確實要取消所做的修改嗎?', 2) = mrNo then
Exit;
qry_init.CancelUpdates;
Set_State(0);
end;
{-------------------------------------------------------------------------------}
{保存初始化數據}
function Tfrm_GRPKCCSH.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);
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -