📄 grp_rkfh.pas
字号:
raise
else
raise exception.Create(errMsg);
end;
end;
qryRKD.CommitUpdates;
qryRKDPP.CommitUpdates;
SetState(dtBrowse);
end;
procedure TFrm_GRP_RKFH.ModiPanel1BtnClick(Index: TBtnVisible);
begin
inherited;
case index of
bnAdd:
SetState(dtInsert);
bnDelete:
if CHQMsgBox(MSG_DELETE, 2) = IDYES then
with qryRKD do {query}
begin
Database.StartTransaction;
try
Delete; {query1}
Database.Commit;
except
if Database.InTransaction then
Database.RollBack;
if errMsg = '' then
raise
else
raise exception.Create(errMsg);
end;
end;
bnEdit:
begin
if qryRKDPP.IsEmpty then
begin
CHQMsgBox('无效的入库单!');
exit;
end;
SetState(dtEdit);
end;
bnSave:
Save;
bnCancel:
if CHQMsgBox('取消编辑, 确定吗?', 2) = IDYES then
begin
qryRKD.CancelUpdates;
qryRKDPP.CancelUpdates;
SetState(dtBrowse);
end;
bnPrint: {print}
;
bnClose:
Close;
end;
end;
procedure TFrm_GRP_RKFH.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caFree;
if (FDtstate in [dtInsert, dtEdit]) then
case CHQMsgBox(MSG_EXITSAVE, 3) of
IDYES:
if not Save then
Action := caNone;
IDCANCEL:
Action := caNone;
end;
SaveAllColWidth(Self);
end;
procedure TFrm_GRP_RKFH.FormCreate(Sender: TObject);
begin
inherited;
DWMC.Caption := '使用单位:' + VG_UNITNAME;
InitData;
qryRKDPP.open;
SetState(dtBrowse);
GetAllColWidth(Self);
end;
procedure TFrm_GRP_RKFH.InitData;
begin
qryRKD.Close;
qryRKD.MacroByName('CON').AsString := 'JZY is null';
qryRKD.MacroByName('YGDM').AsString := '''' + VG_USERID + '''';
qryRKD.Open;
end;
procedure TFrm_GRP_RKFH.BitBtn1Click(Sender: TObject);
begin
inherited;
if qryRKDPP.IsEmpty then
exit;
end;
procedure TFrm_GRP_RKFH.BitBtn5Click(Sender: TObject);
var
v_s_yjr: string;
begin
if qryRKD.IsEmpty then
exit;
if qryRKD.FieldByName('RKRQ').AsDateTime = 0 then
begin
CHQMsgBox('请先确定入库日期!');
exit;
end;
if not CheckINYJRQ(io_grp, qryRKD.FieldByName('RKDH').AsString, v_s_yjr) then
begin
CHQMsgBox('该入库单不在月结范围(' + format('%s年%s月', [copy(v_s_yjr, 1, 4), copy(v_s_yjr, 5, 2)]) + ')内,不能复核!');
exit;
end;
if Check(qryRKD.FieldByName('RKDH').Asstring) then
CHQMsgBox('复核记帐成功! ');
end;
function TFrm_GRP_RKFH.Check(id: string): boolean;
begin
with StoredProc2 do
begin
ParamByName('PC_RKDH').Asstring := id;
ParamByName('PC_USERID').Asstring := VG_USERNAME;
data.dm.StartTransaction;
try
ExecProc;
data.dm.commit;
qryRKD.Edit;
qryRKD.FieldByName('JZY').Asstring := VG_USERNAME;
qryRKD.Post;
except
if data.dm.inTransaction then
data.dm.rollback;
raise;
end;
result := Params[0].asInteger = 0;
case Params[0].asInteger of
0: ;
1: CHQMsgBox('复核记帐失败! 没有初始化或结转 [集邮票总帐表] 数据.');
2: CHQMsgBox('复核记帐失败! 没有初始化或结转 [集邮票总分户帐表] 数据.');
3: CHQMsgBox('复核记帐失败! 没有初始化或结转 [集邮票明细分类帐] 数据.');
4: CHQMsgBox('复核记帐失败! 没有初始化或结转 [集邮票进发存明细帐表] 数据.');
5: CHQMsgBox('复核记帐失败! 没有初始化或结转 [集邮票明细分类帐(库管员)] 数据.');
10: CHQMsgBox('复核记帐失败! 没有初始化或结转 [集邮票待销存总帐表] 数据.');
11: CHQMsgBox('复核记帐失败! 没有初始化或结转 [集邮票待销存明细分类帐] 数据.');
12: CHQMsgBox('复核记帐失败! 没有初始化或结转 [集邮票待销存明细分类帐(库管员)] 数据] 数据.');
-1: CHQMsgBox('找不到相应的入库单!');
-2: CHQMsgBox('错误:此入库单已复核过!');
-3: CHQMsgBox('错误:此入库单的入库性质没找到或不需记帐!');
else
CHQMsgBox('复核记帐失败! ');
end;
end;
end;
procedure TFrm_GRP_RKFH.qryRKDUpdateError(DataSet: TDataSet;
E: EDatabaseError; UpdateKind: TUpdateKind;
var UpdateAction: TUpdateAction);
begin
inherited;
case GetErrCode(DataSet, E, ErrMsg) of
Err_NoMasterRec: errMsg := errMsg + '&_&' + Format(MST_NOREC, ['', '', '']);
Err_HasDetailRec: errMsg := errMsg + '&_&' + Format(DTL_EXSTREC, ['']);
Err_RecDouble: errMsg := errMsg + '&_&' + Format(DBL_REC, ['']);
Err_NotNull: errMsg := errMsg + '&_&' + Format(NOTNULL, ['']);
else
errMsg := errMsg + '&_&' + OTHERERROR;
end;
end;
procedure TFrm_GRP_RKFH.DBGrid2DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
begin
inherited;
DrawCheckedGrid(not qryRKD.FieldByName('JZY').IsNull, Sender, Rect, DataCol, Column);
end;
procedure TFrm_GRP_RKFH.BitBtn6Click(Sender: TObject);
var
i: integer;
v_b_skip: boolean;
v_s_yjr: string;
begin
inherited;
if qryRKD.IsEmpty then
exit;
i := 0;
with qryRKD do
begin
DisableControls;
First;
while not Eof do
begin
v_b_skip := false;
if FieldByName('JZY').IsNull and (not qryRKD.FieldByName('RKRQ').IsNull) then
begin
if not CheckINYJRQ(io_grp, qryRKD.FieldByName('RKDH').AsString, v_s_yjr) then
begin
v_b_skip := true;
// CHQMsgBox('该入库单不在月结范围(' + format('%s年%s月', [copy(v_s_yjr, 1, 4), copy(v_s_yjr, 5, 2)]) + ')内,不能复核!');
end;
if not v_b_skip then
if Check(FieldByName('RKDH').Asstring) then
i := i + 1;
end;
Next;
end;
EnableControls;
if i > 0 then
CHQMsgBox('共完成' + inttostr(i) + '笔入库复核!');
end;
end;
procedure TFrm_GRP_RKFH.BitBtn7Click(Sender: TObject);
begin
inherited;
qryRKD.Close;
qryRKD.MacroByName('CON').AsString := ' TO_CHAR(KDRQ, ''YYYYMMDD'') >= ''' + FormatDateTime('YYYYMMDD', DateEdit1.Date) + '''';
qryRKD.MacroByName('YGDM').AsString := '''' + VG_USERID + '''';
qryRKD.Open;
end;
procedure TFrm_GRP_RKFH.qryRKDPPJJGetText(Sender: TField; var Text: string;
DisplayText: Boolean);
begin
inherited;
nDisplay.GetText(Sender, Text, DisplayText);
end;
procedure TFrm_GRP_RKFH.qryRKDPPJJSetText(Sender: TField;
const Text: string);
begin
inherited;
nDisplay.SetText(Sender, Text);
end;
procedure TFrm_GRP_RKFH.qryRKDAfterScroll(DataSet: TDataSet);
begin
inherited;
Modipanel1.FButtons[bnEdit].Enabled := qryRKD.FieldByName('JZY').IsNull;
BitBtn5.Enabled := qryRKD.FieldByName('JZY').IsNull;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -