?? ss_txpkccsh.pas
字號(hào):
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;
{設(shè)置處于編輯狀態(tài)}
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;
{==============================================================================}
{批量設(shè)置進(jìn)價(jià)等}
procedure Tfrm_TXPKCCSH.Set_Data;
begin
with TFrm_TXP_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);
// 2: Set_JSJ(Set_Result);
end;
finally
Free;
end;
end;
{-------------------------------------------------------------------------------}
{批量設(shè)置折扣}
procedure Tfrm_TXPKCCSH.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 := '正在設(shè)置...';
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;
{-------------------------------------------------------------------------------}
{批量設(shè)置結(jié)算價(jià)}
procedure Tfrm_TXPKCCSH.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 := '正在設(shè)置...';
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;
// FieldByName('JSJ').AsFloat := Value * 100;
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;
{-------------------------------------------------------------------------------}
{批量設(shè)置進(jìn)價(jià)1,依據(jù)折算價(jià)計(jì)算}
procedure Tfrm_TXPKCCSH.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 := '正在設(shè)置...';
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;
{批量設(shè)置進(jìn)價(jià)2,直接賦值}
procedure Tfrm_TXPKCCSH.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 := '正在設(shè)置...';
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;
{批量設(shè)置銷價(jià)}
procedure Tfrm_TXPKCCSH.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 := '正在設(shè)置...';
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 := FieldByName('TPSJ').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_TXPKCCSH.bbtn_FindClick(Sender: TObject);
begin
with TFrm_TXP_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;
{-------------------------------------------------------------------------------}
{更改庫(kù)房,則按照默認(rèn)顯示其內(nèi)容}
procedure Tfrm_TXPKCCSH.fcb_KFChange(Sender: TObject);
begin
if Edit_State <> 1 then
Show_Data;
end;
{-------------------------------------------------------------------------------}
{取消保存初始化數(shù)據(jù),恢復(fù)原來(lái)的狀態(tài)}
procedure Tfrm_TXPKCCSH.Cancel_Init_Data;
begin
if CHQMsgBox('確實(shí)要取消所做的修改嗎?', 2) = mrNo then
Exit;
qry_init.CancelUpdates;
Set_State(0);
end;
{-------------------------------------------------------------------------------}
{保存初始化數(shù)據(jù)}
function Tfrm_TXPKCCSH.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;
end;
Prior;
end;
end;
lbl_Search.Visible := False;
pgb_State.Visible := True;
lbl_State.Visible := True;
lbl_State.Caption := '正在保存...';
lbl_State.Refresh;
pgb_State.Max := RecordCount;
i := 0;
cur_pos := GetBookmark;
try
Database.StartTransaction;
First;
while not Eof do
begin
if FieldByName('Temp').AsInteger = 1 then
begin
{如果寫(xiě)入數(shù)據(jù)庫(kù),則判斷進(jìn)價(jià)和銷價(jià)是否符合}
Can_Continue := True;
l_failPPDM := FieldByName('TDM').AsString; //by jillshao 2002-06-13
l_failJJ := FieldByName('JJ').AsFloat; //by jillshao 2002-08-14
if FieldByName('TS').AsFloat <> 0 then
begin
if Test_JJ = False then
begin
Can_Continue := False;
if Database.InTransaction then
Database.Rollback;
ds_init.DataSet := qry_init;
DoFailLocate;
CHQMsgBox('同一票品進(jìn)價(jià)不能相同!');
end;
if Test_XJ = False then
begin
Can_Continue := False;
if Database.InTransaction then
Database.Rollback;
ds_init.DataSet := qry_init;
DoFailLocate;
CHQMsgBox('其他庫(kù)房已經(jīng)存在該票品的不同銷價(jià)!其價(jià)格為:' + FloatToStr(qry_Tmp.FieldByName('XJ').AsFloat / 100) + '元');
end;
if Can_Continue = False then
begin
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;
FreeBookmark(cur_pos);
EnableControls;
pgb_State.Visible := False;
lbl_State.Visible := False;
lbl_Search.Visible := True;
Result := False;
Exit;
end;
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -