📄 jm_fhdsc.pas
字号:
Save;
RxQry_fhd.GotoBookmark(bk);
PPlb_StateChange;
end;
bnCancel:
if CHQMsgBox('取消编辑, 确定吗?', 2) = IDYES then
begin
bk := rxQry_fhd.GetBookmark;
RxQry_ckpp.Cancelupdates;
rxQry_fhd.GotoBookmark(bk);
SetState(dtBrowse);
Rgp_ppfl.Enabled := True;
end;
bnPrint:
begin
if RxQry_ckpp.IsEmpty then
begin
CHQMsgBox('没有票品信息可打印!');
Exit;
end;
Frm_RKDRPT := TFrm_RKDRPT.Create(nil);
with Frm_RKDRPT do
try //RxQry_ckpp.FieldByName('lb').AsString
QRLabel1.Caption := Rgp_ppfl.Items[Rgp_ppfl.ItemIndex] + ' 入库通知单';
QRLabel1.Left := round((ColumnHeaderBand1.Width - QRLabel1.Width) / 2);
QRLabel25.Caption := VG_UnitName;//DBEdit7.Text;
QRLabel8.Caption := rxQry_fhd.fieldByName('fhdh').AsString; //edit3.text;
jycx := 'select a.FHDH, a.PPDM, DECODE(a.LB,''0'',''集邮票'',''1'',''集邮品'',''2'',''购入票'') LB'
+ ', a.ZH, a.PPMC, a.JJ/100 jj,a.JJ*a.SL/100 JJJE, a.SL, a.XJ/100 xj,a.XJ*a.SL/100 ZJJE,b.fxrq from tm_htckpp a,tb_yzppxxb b '
+ ' where a.ppdm(+)=b.tdm and fhdh= ''' + rxQry_fhd.FieldByName('fhdh').AsString + '''';
Qry_ckdayin.close;
Qry_ckdayin.sql.clear;
Qry_ckdayin.sql.add(jycx);
Qry_ckdayin.open;
QRLabel11.Caption := FormatDateTime('yyyy"年"mm"月"d"日" ', DBDateEdit1.Date);
{初始化Frm_RKDRPT中的全局变量}
sumzj := 0;
sumjsj := 0;
DetailLines := 0;
{设置套打标记}
if CHQMsgBox('是否采用套打?', 2) = IDYES then
Tao_Print_Flag := True
else
Tao_Print_Flag := False;
{得到总页数}
Prepare;
try
QRLabel29.Caption := IntToStr(QRPrinter.PageCount);
finally
QRPrinter.Free;
end;
QRPrinter := nil;
{受PREPARE方法的影响必须再次的初始化Frm_RKDRPT中的全局变量}
sumzj := 0;
sumjsj := 0;
DetailLines := 0;
preview;
finally
Frm_RKDRPT.Free;
Frm_RKDRPT := nil;
end;
{ if rxQry_fhd.IsEmpty then Exit;
if not AsSigned(frm_httjrpt) then
frm_httjrpt := TFrm_httjrpt.Create(nil);
with frm_httjrpt do
try
Qry_tjd.Close;
Qry_tjd.SQL.Clear;
Qry_tjd.SQL.Add('select * from tm_htckd where fhdh=''' + rxQry_fhd.fieldByName('fhdh').AsString + '''');
Qry_tjd.Open;
QRLabel1.Caption := '营业员票品发货单';
QRLabel1.Left := Round((PageHeaderBand1.Width - QRlabel1.Width) / 2);
QRLabel3.Caption := Qry_tjd.FieldByName('fhdh').AsString;
QRLabel5.Caption := FormatDateTime('yyyy-mm-dd', Qry_tjd.FieldByName('kdrq').AsDateTime);
with Qry_tjpp do
begin
Close;
SQL.Clear;
SQL.Add('select decode(lb,''0'',''集邮票'',''1'',''集邮品'',''2'',''购入票'')'
+ ' LB,jj/100 jj,xj/100 xj,jsj/100 jsj,sl, zh,ppmc from tm_htckpp where fhdh=''' + rxQry_fhd.fieldByName('fhdh').AsString + '''');
Open;
end;
Preview;
finally
Free;
Frm_httjrpt := nil;
end; }
end;
bnClose: Close;
end;
end;
procedure Tfrm_FHDSC.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caFree;
if (FDtState in [dtInsert, dtEdit]) then
case CHQMsgBox('数据已经编辑,需要保存吗?', 3) of
IDYES:
if not Save then Action := caNone;
IDCANCEL: Action := caNone;
end;
end;
procedure Tfrm_FHDSC.Qry_jycxXJSetText(Sender: TField; const Text: string);
begin
inherited;
CurrSetText(sender, Text);
end;
procedure Tfrm_FHDSC.Qry_jycxXJGetText(Sender: TField; var Text: string;
DisplayText: Boolean);
begin
inherited;
CurrGetText(Sender, Text, DisplayText);
end;
procedure Tfrm_FHDSC.Qry_jycxJSJSetText(Sender: TField;
const Text: string);
begin
inherited;
CurrSetText(sender, Text);
end;
procedure Tfrm_FHDSC.Qry_jycxJSJGetText(Sender: TField; var Text: string;
DisplayText: Boolean);
begin
inherited;
CurrGetText(Sender, Text, DisplayText);
end;
procedure Tfrm_FHDSC.Qry_jycxJJGetText(Sender: TField; var Text: string;
DisplayText: Boolean);
begin
inherited;
CurrGetText(Sender, Text, DisplayText);
end;
procedure Tfrm_FHDSC.Qry_jycxJJSetText(Sender: TField; const Text: string);
begin
inherited;
CurrSetText(Sender, Text);
end;
procedure Tfrm_FHDSC.CBo_checkedClick(Sender: TObject);
begin
pplb_statechange;
end;
procedure Tfrm_FHDSC.DBG_fhdDrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
begin
inherited;
if rxQry_fhd.FieldByName('GHRQ').AsString = '' then
DBG_fhd.Canvas.Font.Color := clblue
else
DBG_fhd.Canvas.Font.Color := clred;
if gdSelected in State then
begin
DBG_fhd.Canvas.Brush.Color := clNavy;
dbg_fhd.Canvas.Font.Color := clWhite;
end;
DBG_fhd.DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;
procedure Tfrm_FHDSC.DoDeleteFHD;
begin
Data.DM.StartTransaction;
try
RxQry_ckpp.Edit;
rxQry_ckpp.First;
while not rxQry_ckpp.Eof do
begin
RxQry_ckpp.Delete;
RxQry_ckpp.Next;
end;
rxQry_ckpp.First;
while not rxQry_ckpp.Eof do
begin
RxQry_ckpp.Delete;
RxQry_ckpp.Next;
end;
rxQry_fhd.Edit;
rxQry_fhd.Delete;
RxQry_ckpp.ApplyUpdates;
rxQry_fhd.ApplyUpdates;
data.DM.Commit;
except
data.DM.Rollback;
raise;
end;
end;
procedure Tfrm_FHDSC.SetState(currdtState: TDataState);
begin
FDtState := currdtState;
ModiPanel1.ChangeMode(currdtState = dtBrowse);
if currdtState = dtEdit then
DBGrid3.Columns[3].Color := clInfoBk
else
DBGrid3.Columns[3].Color := clWindow;
end;
procedure Tfrm_FHDSC.RxQry_ckppJJGetText(Sender: TField; var Text: string;
DisplayText: Boolean);
begin
inherited;
CurrGetText(Sender, Text, DisplayText);
end;
procedure Tfrm_FHDSC.RxQry_ckppJJSetText(Sender: TField;
const Text: string);
begin
inherited;
CurrSetText(Sender, Text);
end;
procedure Tfrm_FHDSC.RxQry_ckppXJGetText(Sender: TField; var Text: string;
DisplayText: Boolean);
begin
inherited;
CurrGetText(Sender, Text, DisplayText);
end;
procedure Tfrm_FHDSC.RxQry_ckppXJSetText(Sender: TField;
const Text: string);
begin
inherited;
CurrSetText(Sender, Text);
end;
procedure Tfrm_FHDSC.Rgp_ppflClick(Sender: TObject);
begin
case Rgp_ppfl.ItemIndex of
0:
begin
L_type := io_jyp;
lb_type := '0';
end;
1:
begin
L_type := io_yp;
lb_type := '1';
end;
2:
begin
L_type := io_GRP;
lb_type := '2';
end;
end;
PPLB_StateChange;
end;
procedure Tfrm_FHDSC.PPLB_StateChange;
var
v_s_sql: string;
begin
inherited;
v_s_sql := 'a.QXDW=b.DWDM and a.CKXZ=c.RCKXZDM and fhdh in (select distinct fhdh from tm_htckpp where lb=''' + lb_type + ''') ';
if CBo_checked.Checked then
v_s_sql := v_s_sql + 'and GHRQ is null';
rxQry_fhd.Close;
rxQry_fhd.MacroByName('TJ').AsString := v_s_sql;
rxQry_fhd.Open;
end;
procedure Tfrm_FHDSC.RxQry_ckppBeforeInsert(DataSet: TDataSet);
begin
Abort;
end;
function Tfrm_FHDSC.CheckKC: Integer; //检测分配的票品 数量是否超出库存
var
FQuery1, FQuery2, FQuery3: TQuery;
StrSql: string;
begin
Result := 0;
if rxQry_ckpp.IsEmpty then exit;
rxQry_ckpp.First;
with rxQry_ckpp do
begin
while not Eof do
begin
try
FQuery1 := TQuery.Create(nil);
FQuery2 := TQuery.Create(nil);
case RGp_ppfl.ItemIndex of
0: StrSql := SqlStrings1.jyp_Sql.Text;
1: StrSql := SqlStrings1.yp_Sql.Text;
2: StrSql := SqlStrings1.grp_Sql.Text;
end;
with FQuery1 do
begin
DataBaseName := 'yzpp';
Close;
Sql.clear;
Sql.add(strsql);
Params[0].Value := rxQry_ckpp.fieldbyname('kfdm').AsString;
Open;
end;
case Rgp_ppfl.ItemIndex of
0: StrSql := 'select ppdm,jj,lb,sl ts,kfdm from tm_htckpp where fhdh=''' + FieldByName('fhdh').AsString + ''' and lb=''0'' and kfdm=''' + FieldbyName('kfdm').AsString + ''' and ppdm=''' + FieldByName('Ppdm').AsString + ''' and jj=' + FieldByName('jj').AsString;
1: StrSql := 'select ppdm,jj,lb,sl ts,kfdm from tm_htckpp where fhdh=''' + FieldByName('fhdh').AsString + ''' and lb=''1'' and kfdm=''' + FieldbyName('kfdm').AsString + ''' and ppdm=''' + FieldByName('Ppdm').AsString + ''' and jj=' + FieldByName('jj').AsString;
2: StrSql := 'select ppdm,jj,lb,sl ts,kfdm from tm_htckpp where fhdh=''' + FieldByName('fhdh').AsString + ''' and lb=''2'' and kfdm=''' + FieldbyName('kfdm').AsString + ''' and ppdm=''' + FieldByName('Ppdm').AsString + ''' and jj=' + FieldByName('jj').AsString;
end;
with FQuery2 do
begin
DataBaseName := 'yzpp';
Close;
Sql.Clear;
Sql.Add(StrSql);
Open;
end;
if FQuery1.Locate('PPDM;JJ;KFDM', vararrayof([Fieldbyname('ppdm').AsString, FieldbyName('jj').asString, FieldByname('kfdm').AsString]), []) then
if FieldByName('sl').AsInteger > FQuery1.FieldByName('ts').AsInteger - FQuery2.FieldByName('ts').AsInteger then
begin
Result := 1;
CHQMsgBox('退缴票品数量大于库存数量,请重新设置!'#13'(库存数量为:' + VarToStr(FQuery1.FieldByName('ts').AsInteger - FQuery2.FieldByName('ts').AsInteger) + ')');
Exit;
end;
finally
FQuery1.Free;
FQuery2.Free;
end;
Next;
end;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -