?? jm_yyypptp.pas
字號:
fieldbyname('czy').asstring := VG_UserID;
fieldbyname('tcz').asstring := pygxm(combobox1.Items.Objects[combobox1.Items.IndexOf(combobox1.text)])^.ygdm;
fieldbyname('trz').asstring := pygxm(combobox2.Items.Objects[combobox2.Items.IndexOf(combobox2.text)])^.ygdm;
FieldByName('rq').AsDateTime := StrToDateTime(VarToStr(VG_year) + '-' + VarToStr(VG_month) + '-' + VarToStr(VG_day));
post;
end;
with qry_tpdpp do
begin
datasource := nil;
open;
Qry_tpdpp0.First;
while not Qry_tpdpp0.eof do
begin
append;
if (not Qry_tpdpp0.FieldByname('SL').isNull) and (Qry_tpdpp0.FieldByname('SL').AsFloat > 0) then
begin
fieldbyname('dh').AsString := rkdh;
fieldbyname('ppdm').AsString := Qry_tpdpp0.fieldbyname('ppdm').AsString;
fieldbyname('sl').asinteger := Qry_tpdpp0.fieldbyname('sl').AsInteger;
fieldbyname('lb').asstring := Qry_tpdpp0.fieldbyname('lb').AsString;
FieldByName('dj').AsFloat := Qry_tpdpp0.fieldbyname('dj').AsFloat;
Fieldbyname('Jj').AsFloat := Qry_tpdpp0.fieldbyName('Jj').AsFloat;
post;
flag := true;
end
else if (not Qry_tpdpp0.FieldByname('SL').isNull) then
begin
Flag := False;
Break;
end;
Qry_tpdpp0.next;
end;
end;
if not Flag then
begin
save1 := true;
CHQMsgBox('數量不能為空且必須大于0!');
qry_tpd.Close;
Qry_tpdpp.Close;
exit;
end
else
begin
SetState(dtBrowse);
end;
qry_tpd.Database.StartTransaction;
try
qry_tpd.ApplyUpdates;
qry_tpdpp.ApplyUpdates;
qry_tpd.Database.Commit;
queding := false;
qry_tpdpp.close;
qry_tpdpp.open;
queding := false;
save1 := false;
except
if qry_tpd.Database.InTransaction then
begin qry_tpd.Database.RollBack;
queding := false;
Saved := False;
end;
raise exception.Create('保存數據失敗!');
end;
end;
end
else
begin
rkdh := qry_tpdpp0.FieldByName('dh').asstring;
flag := false;
Qry_tpdpp0.first;
while not Qry_tpdpp0.eof do
begin
if (not Qry_tpdpp0.FieldByname('SL').isNull) and (Qry_tpdpp0.FieldByname('SL').AsFloat > 0) then
begin
with Qry_temp do
begin
Close;
SQL.Clear;
SQL.Add('select * from tm_tpdpp where dh=''' + Qry_tpdpp0.fieldbyname('dh').AsString + ''' and ppdm=''' + Qry_tpdpp0.fieldbyname('ppdm').AsString + '''');
Open;
Edit;
FieldByName('sl').AsFloat := Qry_tpdpp0.FieldByName('sl').AsFloat;
post;
ApplyUpdates;
end;
flag := true;
end
else
begin
Flag := False;
Break;
end;
Qry_tpdpp0.next;
end;
if not Flag then
begin
CHQMsgBox('數量不能為空且必須大于0!');
exit;
end
else
begin
SetState(dtBrowse);
end;
qry_tpd.Database.StartTransaction;
try
qry_tpd.ApplyUpdates;
Qry_temp.ApplyUpdates;
qry_tpd.Database.Commit;
except
if qry_tpd.Database.InTransaction then qry_tpd.Database.RollBack;
Saved := False;
raise exception.Create('保存數據失敗!');
end
end;
end;
procedure Tfrm_YYYPPTP.ModiPanel1BtnClick(Index: TBtnVisible);
var
i: integer;
sqltext: string;
Before_insert: TDataSetNotifyEvent;
begin
inherited;
case index of
bnAdd:
begin //SetState(dtInsert);
queding := false;
if (Combobox1.Text = '') or (Combobox2.Text = '') then
begin
CHQMsgBox('請選擇票品調出者和調入者!');
Exit;
end;
if combobox1.text = combobox2.text then
begin
CHQMsgBox('調出者與調入者不可相同!');
Exit;
end;
ComBoBox1.Enabled := False;
ComBoBox2.Enabled := False;
ExeSY_SCGRP;
if queding then
begin
Before_Insert := Qry_tpdpp0.BeforeInsert;
Qry_tpdpp0.BeforeInsert := nil;
if recordcount = 0 then
begin
setState(dtBrowse);
Rgp_ppfl.Enabled := True;
Qry_tpdpp0.BeforeInsert := Before_Insert;
exit;
end;
sqltext := 'SELECT dh,a.ppdm,a.sl,a.lb,a.dj,a.jj,b.zh,b.ppmc FROM tm_tpdpp a,tm_yyykc b where a.ppdm=b.ppdm and a.lb=b.lb and a.jj=b.jj and dh=''0''';
open_sql(Qry_tpdpp0, sqltext);
insertmode := true;
for i := 0 to recordcount - 1 do
begin
with Qry_lykc do
begin
Close;
Parambyname('ygdm').AsString := pygxm(combobox1.Items.Objects[combobox1.Items.IndexOf(combobox1.text)])^.ygdm;
Parambyname('lb').AsString := lb_type;
Open;
end;
Qry_tpdpp0.Append;
Qry_tpdpp0.FieldByName('zh').asstring := zh[i];
Qry_tpdpp0.FieldByName('ppmc').asstring := mc[i];
Qry_tpdpp0.FieldByName('ppdm').asstring := tdm[i];
Qry_tpdpp0.FieldByName('lb').asstring := lb[i];
Qry_tpdpp0.FieldByName('dj').AsString := dj[i];
Qry_tpdpp0.FieldByName('jj').AsString := jj[i];
Qry_tpdpp0.post;
end;
insertmode := false;
Qry_tpdpp0.BeforeInsert := Before_Insert;
SetState(dtEdit);
Rgp_ppfl.Enabled := False;
end
else
begin
SetState(dtBrowse);
Rgp_ppfl.Enabled := True;
end;
end;
bnDelete:
begin
if DBGrid2.DataSource.DataSet.IsEmpty then exit;
if CHQMsgBox('刪除此記錄, 確定嗎?', 2) = IDYES then
begin
Str_Locate_tpdh := '';
sqltext := 'Select tcfh,trfh from tm_tpdb where dh=''' + Qry_tpd.fieldbyname('dh').asstring + '''';
open_sql(query1, sqltext);
if (query1.FieldByName('tcfh').asstring = '') and (query1.FieldByName('trfh').asstring = '') then
begin
Str_Locate_tpdh := Qry_tpd.fieldbyname('dh').asstring;
sqltext := 'Delete from tm_tpdpp where DH =''' + Qry_tpd.fieldbyname('dh').asstring + '''';
exec_sql(query1, sqltext);
sqltext := 'Delete from tm_tpdb where DH =''' + Qry_tpd.fieldbyname('dh').asstring + '''';
exec_sql(query1, sqltext);
Qry_tpd.close;
Qry_tpd.Open;
Qry_tpdpp0.Close;
Qry_tpdpp0.Open;
end
else
CHQMsgBox('此調配單已經復核,不能刪除!');
end;
end;
bnEdit:
begin
Str_Locate_tpdh := '';
if DBGrid2.DataSource.DataSet.IsEmpty then exit;
sqltext := 'select * from tm_tpdb where dh=''' + Qry_tpd.fieldbyname('dh').asstring + '''';
open_sql(query1, sqltext);
if (query1.FieldByName('tcfh').asstring = '') and (query1.FieldByName('trfh').asstring = '') then
begin
SetState(dtEdit);
Rgp_ppfl.Enabled := False;
Str_Locate_tpdh := DBGrid2.DataSource.DataSet.FieldByName('dh').AsString;
end
else
begin
CHQMsgBox('此調配單已經復核,不能修改!');
SetState(dtBrowse);
end;
end;
bnSave:
begin
Qry_tpdpp0.First;
with Qry_tpdpp0 do
begin
while not eof do
begin
if FieldByName('sl').AsInteger <= 0 then
begin
if MessageBox(application.handle, '此票品分配的數量為‘0’,刪除該票品嗎?', '提示', MB_YESNO + MB_ICONQUESTION) <> idyes then
begin
DBGrid3.SelectedIndex := 4;
DBGrid3.SetFocus;
Exit;
end;
Delete;
end;
Next;
end;
end;
Qry_tpdpp0.First;
with Qry_tpdpp0 do
begin
while not eof do
begin
if FieldByName('sl').AsInteger <= 0 then
begin
if MessageBox(application.handle, '此票品分配的數量為‘0’,刪除該票品嗎?', '提示', MB_YESNO + MB_ICONQUESTION) <> idyes then
Exit;
Delete;
end;
Next;
end;
end;
if Qry_tpdpp0.IsEmpty then
begin
SetState(dtBrowse);
Exit;
end;
if CheckKC = 1 then exit;
Save; {保存數據}
if Saved then
begin
if Trim(Str_Locate_tpdh) <> '' then
Qry_tpd.Locate('dh', Str_Locate_tpdh, []);
Rgp_ppfl.Enabled := true;
end;
end;
bnCancel:
if CHQMsgBox('取消編輯, 確定嗎?', 2) = IDYES then
begin
qry_tpd.CancelUpdates;
Qry_tpdpp0.CancelUpdates;
SetState(dtBrowse);
Rgp_ppfl.Enabled := true;
end;
bnPrint:
begin
if Qry_tpd.IsEmpty then exit;
Frm_rpttpfh := TFrm_rpttpfh.Create(Application);
with frm_rpttpfh do
try
begin
qry_ryb.close;
qry_ryb.Open;
with qry_tpd0 do
begin
Close;
SQL.Clear;
SQL.Add('select DH, TCZ, TRZ, CZY, to_char(RQ,''YYYY-MM-DD'') RQ, TCFH, TRFH from tm_tpdb where dh= ''' + Qry_tpd.FieldByName('dh').AsString + '''');
Open;
end;
Prepare;
qrl_page.Caption := '共 ' + IntToStr(QRPrinter.PageCount) + ' 頁 ';
line_count := 0;
qry_tpdpp.First;
if MessageBox(self.Handle, '是否采用套打?', '詢問', MB_YESNO + MB_ICONQUESTION) = IDYES then
taoda_flag := True
else
taoda_flag := False;
Preview;
end;
finally
Free;
end;
{ if Qry_tpd.IsEmpty then exit;
Frm_rpttpfh := TFrm_rpttpfh.Create(Application);
with frm_rpttpfh do
try
begin
Query3.close;
Query3.Open;
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add('select DH, TCZ, TRZ, CZY, to_char(RQ,''YYYY-MM-DD'') RQ, TCFH, TRFH from tm_tpdb where dh= ''' + Qry_tpd.FieldByName('dh').AsString + '''');
Query1.Open;
Preview;
end;
finally
Free;
end;}
end;
bnClose: Close;
end;
end;
procedure Tfrm_YYYPPTP.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caFree;
if (FDtstate in [dtInsert, dtEdit]) then
case CHQMsgBox('數據已經編輯,需要保存嗎?', 3) of
IDYES:
if not Saved then Action := caNone;
IDCANCEL: Action := caNone;
end;
end;
procedure Tfrm_YYYPPTP.InitData;
begin
if Fckjhh <> '' then
begin
if not qry_tpd.Active then
begin
qry_tpd.Open;
qry_tpdpp.Open;
end;
end;
end;
procedure Tfrm_YYYPPTP.qryRKDRKAfterScroll(DataSet: TDataSet);
var
sqltext: string;
begin
end;
procedure Tfrm_YYYPPTP.Qry_tpdpp0AfterInsert(DataSet: TDataSet);
begin
Abort;
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -