📄 udwxx.pas
字号:
end;
end;
procedure TfrmDWXX.chkSingleClick(Sender: TObject);
begin
inherited;
ShowEdit(TabSet1.TabIndex);
end;
procedure TfrmDWXX.qryMasterBeforePost(DataSet: TDataSet);
begin
//检查数据是否正确
if TQuery(DataSet).FieldByName('SJDWDM').isNULL then
begin
gfShowError('上级单位不能为空');
Abort;
end;
if TQuery(DataSet).FieldByName('SHHFFSJ').isNULL then
begin
gfShowError('社会化发放时间不能为空');
Abort;
end;
//如果上级代码是0,表示这是一个单位。这时候所属单位代码等于发放单位代码
//如果上级代码不是0,表示这是一个组,,这时候所属单位代码等于
inherited;
end;
procedure TfrmDWXX.qryRYXXAfterInsert(DataSet: TDataSet);
begin
inherited;
//取得唯一ID
TQuery(DataSet).FieldByName('RYID_FF').AsString :=
gfGetNumber('tFF_RYXX');
//发放组
TQuery(DataSet).FieldByName('DWID_FF').AsString :=
qryMaster.FieldByName('DWID_FF').AsString;
//所属单位
TQuery(DataSet).FieldByName('SSDWID').AsString :=
qryMaster.FieldByName('SSDWID').AsString;
//默认人员状态为正常发放
TQuery(DataSet).FieldByName('RYZT').AsInteger := 1;
TQuery(DataSet).FieldByName('LJFFJE').Value :=
TQuery(DataSet).FieldByName('FFJE').Value;
end;
procedure TfrmDWXX.qryRYXXAfterPost(DataSet: TDataSet);
begin
inherited;
TQuery(DataSet).ApplyUpdates;
TQuery(DataSet).CommitUpdates;
end;
procedure TfrmDWXX.qryRYXXBeforePost(DataSet: TDataSet);
begin
inherited;
//调试用
if TQuery(DataSet).FieldByName('XM').isNULL then
begin
gfShowError('请输入姓名');
Abort;
end;
if TQuery(DataSet).FieldByName('SFZH').isNULL then
begin
gfShowError('请输入身份证号');
Abort;
end;
if TQuery(DataSet).FieldByName('HDJE').isNULL then
begin
gfShowError('请输入核定金额');
Abort;
end;
if TQuery(DataSet).FieldByName('FFFS').isNULL then
begin
gfShowError('请输入发放方式');
Abort;
end;
if TQuery(DataSet).FieldByName('FFJGID').isNULL then
begin
gfShowError('请输入发放机构');
Abort;
end;
if TQuery(DataSet).FieldByName('DJQK').isNULL then
begin
gfShowError('请输入定居情况');
Abort;
end;
if TQuery(DataSet).FieldByName('DZ').isNULL then
begin
gfShowError('请输入地址');
Abort;
end;
if TQuery(DataSet).FieldByName('FFJE').isNULL then
begin
gfShowError('请输入发放金额');
Abort;
end;
if TQuery(DataSet).FieldByName('LJFFJE').isNULL then
begin
gfShowError('请输入累计发放金额');
Abort;
end;
if TQuery(DataSet).FieldByName('FFZQ').isNULL then
begin
gfShowError('请输入发放周期');
Abort;
end;
if TQuery(DataSet).FieldByName('RYZT').isNULL then
begin
gfShowError('请输入人员状态');
Abort;
end;
if TQuery(DataSet).FieldByName('KSFFYF').isNULL then
begin
gfShowError('请输入开始发放月份');
Abort;
end;
end;
procedure TfrmDWXX.qryMasterBeforeInsert(DataSet: TDataSet);
var
dwmc: string;
result: integer;
begin
//查询当前记录所属单位对应的单位名称
with TQuery.Create(Self) do
begin
DataBaseName := dfmMain.dbsMain.DatabaseName;
SQL.Add('select dwmc from tff_dwxx where dwid_ff=''' +
TQuery(DataSet).FieldByName('ssdwid').AsString +
'''');
Open;
dwmc := FieldByName('dwmc').AsString;
end;
//询问创建单位还是发放组
result :=
Application.MessageBox(
PChar(
'创建发放单位还是发放组' + #13 +
'选择"是"将创建一个新的发放单位' + #13 +
'选择"否"将创建一个新的发放组,' + #13 +
'其所在单位是" ' + dwmc + ' ", ' + #13 +
'上级发放组是"' +
TQuery(DataSet).FieldByName('DWMC').AsString + '"'), '',
MB_ICONQUESTION + MB_YESNOCANCEL + MB_DEFBUTTON1);
case result of
MrYES:
begin
//创建单位
strSSDWID := '';
strSJDWID := '';
strSSHY := '';
end;
MrNO:
begin
//创建组
strSSDWID := TQuery(DataSet).FieldByName('SSDWID').AsString;
strSJDWID := TQuery(DataSet).FieldByName('DWID_FF').AsString;
strSSHY := TQuery(DataSet).FieldByName('SSHY').AsString;
end;
MrCANCEL:
Abort;
end;
if not Self.chkSingle.Checked then
begin
Self.chkSingle.Checked := True;
ShowEdit(TabSet1.TabIndex);
end;
inherited;
end;
procedure TfrmDWXX.pTreeRefresh;
var
RootNode: TTreeNode;
begin
//避免刷新
TreDW.Hide;
with TQuery.Create(Self) do
try
DatabaseName := dfmMain.dbsMain.DatabaseName;
//显示行业单位表
TreDW.Items.Clear;
//添加单位项
SQL.Add('SELECT DMB.DMMC,COUNT(*) DMCOUNT ');
SQL.Add('FROM tDMB DMB,tff_dwxx DW ');
SQL.Add('WHERE DMB.DM(+)=DW.SSHY and DMB.ZDBZ=''SSHY'' ');
SQL.Add('GROUP BY DMMC ');
Open;
while not Eof do
begin
RootNode := treDW.Items.Add(nil, FieldByName('DMMC').AsString);
RootNode.ImageIndex := 0;
RootNode.SelectedIndex := 1;
if FieldByName('DMCOUNT').AsInteger = 0 then
RootNode.HasChildren := False
else
RootNode.HasChildren := True;
Next;
end;
Close;
finally
Free;
end;
treDW.Show;
end;
procedure TfrmDWXX.treDWExpanding(Sender: TObject; Node: TTreeNode;
var AllowExpansion: Boolean);
var
ChildNode: TTreeNode;
begin
inherited;
//如果HasChildren 为真,需要
if Node.HasChildren then
begin
//Node=0 行业
//Node=1 单位
if Node.Level = 0 then //行业
begin
//清空子节点
Node.DeleteChildren;
//添加子节点
with TQuery.Create(Self) do
try
DataBaseName := dfmMain.dbsMain.DatabaseName;
SQL.Add('SELECT DW.SSDWID,DW2.DWMC,COUNT(*) DMCOUNT');
SQL.Add('FROM tff_DWXX DW,tff_DWXX DW2,tDMB ');
SQL.Add('WHERE DW.SSHY=tDMB.DM AND tDMB.ZDBZ=''SSHY''');
SQL.Add(' AND DW.SSDWID=DW2.DWID_FF AND tDMB.DMMC=''' + Node.Text +
'''');
SQL.Add('GROUP BY DW.SSDWID,DW2.DWMC');
Open;
while not EOF do
begin
ChildNode := treDW.Items.AddChildObject(
Node,
FieldByName('DWMC').AsString,
Pointer(FieldByName('SSDWID').AsInteger));
ChildNode.ImageIndex := 2;
ChildNode.SelectedIndex := 3;
if FieldByName('DMCOUNT').AsInteger = 1 then
ChildNode.HasChildren := False
else
ChildNode.HasChildren := True;
Next;
end;
finally
Free;
end;
end;
end;
if Node.Level = 1 then //单位
begin
//清空子节点
Node.DeleteChildren;
//添加子节点
with TQuery.Create(Self) do
try
DataBaseName := dfmMain.dbsMain.DatabaseName;
SQL.Add('SELECT DWMC,DWID_FF');
SQL.Add('FROM tff_DWXX');
SQL.Add('WHERE ssdwid=''' + IntToStr(Integer(Node.Data)) + '''');
SQL.Add(' and dwid_ff<>ssdwid');
Open;
while not EOF do
begin
ChildNode := treDW.Items.AddChildObject(
Node,
FieldByName('DWMC').AsString,
Pointer(FieldByName('DWID_FF').AsInteger));
ChildNode.ImageIndex := 2;
ChildNode.SelectedIndex := 3;
Next;
end;
finally
Free;
end;
end;
end;
procedure TfrmDWXX.treDWClick(Sender: TObject);
begin
inherited;
if treDW.Selected.Level <> 0 then
begin
Screen.Cursor := crSQLWait;
qryMaster.DisableControls;
qryMaster.Close;
qryMaster.ParamByName('DWID_FF').AsInteger := Integer(treDW.Selected.Data);
qryMaster.Open;
qryMaster.EnableControls;
Screen.Cursor := crDefault;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -