📄 ufkxxdc.~pas
字号:
unit uFKXXDC;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ExtCtrls, StdCtrls, Buttons, Db, DBTables, kdb2text, FileCtrl, activex,
shlobj, ComCtrls;
type
TfrmFKXXDC = class(TForm)
Panel1: TPanel;
Panel2: TPanel;
GroupBox1: TGroupBox;
GroupBox2: TGroupBox;
Label1: TLabel;
edtPath: TEdit;
mmoMain: TMemo;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
SpeedButton1: TSpeedButton;
qryMain: TQuery;
toCSV: TKDatasetToText;
Label2: TLabel;
dtpFKRQ: TDateTimePicker;
RadioButton1: TRadioButton;
RadioButton2: TRadioButton;
Button1: TButton;
procedure BitBtn1Click(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure RadioButton1Click(Sender: TObject);
procedure RadioButton2Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
frmFKXXDC: TfrmFKXXDC;
implementation
uses dMain, uCommon, uFKXX_rpt_1;
{$R *.DFM}
procedure TfrmFKXXDC.BitBtn1Click(Sender: TObject);
var
path: string;
procedure AddLine;
begin
// mmoMain.Lines.Add('**********************************');
mmoMain.Lines.Add('');
end;
begin
//路径不能为空
//检查路径
if not DirectoryExists(edtPath.Text) then
begin
gfShowError('路径不存在,无法生成文件');
Abort;
end
else
begin
if Copy(edtPath.Text, length(edtPath.Text), 1) <> '\' then
Path := edtPath.Text + '\'
else
Path := edtPath.Text;
end;
//清空Memo
mmoMain.Lines.Clear;
Self.Repaint;
mmoMain.Lines.Add('提供给单位的反馈数据正在生成...');
mmoMain.Lines.Add('');
with TQuery.Create(Self) do
try
DataBaseName := dfmMain.dbsMain.DataBaseName;
SQL.Add('select dwdm,count(*)');
SQL.Add('from tff_ryfkxx fkxx');
SQL.Add('where ffbz=1'); //发放标志为未处理
SQL.Add('group by dwdm');
Open;
if RecordCount <> 0 then
while not EOF do
begin
//查询出现错误的单位列表
mmoMain.Lines.Add(FieldByName('DWDM').AsString +
'_反馈数据(无组)正在生成...');
qryMain.SQL.Clear;
qryMain.SQL.Add('SELECT');
{
姓名,身份证号,帐号,开户行,汇入地点,邮政编码,详细地址,发放金额,
地区代码,地区名称,单位代码,人员标识,错误标志,备注,发放年月。
}
qryMain.SQL.Add(' xm "姓名",sfzh "身份证号",zh "帐号",khh "开户行",hrdd "汇入地点",yzbm "邮政编码",dz "地址",ffje "发放金额",');
qryMain.SQL.Add(' dqdm "地区代码",dqmc "地区名称",dwdm "单位代码",ryid_ff "人员标识",cwbz "错误标识",bz "备注",ffyf "发放月份"');
qryMain.SQL.Add(' FROM');
qryMain.SQL.Add(' tff_ryfkxx');
qryMain.SQL.Add('WHERE');
qryMain.SQL.Add(' dwdm=''' + FieldByName('dwdm').AsString + '''');
if RadioButton1.Checked then
qryMain.SQL.Add(' and fkrq>to_date(''' + DateToStr(dtpFKRQ.Date) +
''', ''' + ShortDateFormat + ''')');
qryMain.SQL.Add(' order by ryid_ff');
qryMain.Open;
mmoMain.Lines.Add('共生成数据' + IntToStr(qryMain.RecordCount) +
'条记录');
if qryMain.RecordCount <> 0 then
begin
ToCSV.Transfer(Path + TrimRight(FieldByName('DWDM').AsString) +
'_反馈数据(无组).csv');
mmoMain.Lines.Add('已生成文件' + Path +
TrimRight(FieldByName('DWDM').AsString) +
'_反馈数据(无组).csv');
end;
qryMain.Close;
AddLine;
Next;
end;
finally
Free;
end;
with TQuery.Create(Self) do
try
DataBaseName := dfmMain.dbsMain.DataBaseName;
SQL.Add('select dwdm,count(*)');
SQL.Add('from tff_zfkxx fkxx');
SQL.Add('group by dwdm');
Open;
if RecordCount <> 0 then
while not EOF do
begin
//查询出现错误的单位列表
mmoMain.Lines.Add(FieldByName('DWDM').AsString +
'_反馈数据(有组)正在生成...');
qryMain.SQL.Clear;
qryMain.SQL.Add('SELECT');
{
姓名,帐号,开户行,汇入地点,邮政编码,详细地址,发放金额,地区代码,
地区名称,单位代码,组标识,组人数,错误标志,备注,发放年月。
}
qryMain.SQL.Add(' xm "姓名",zh "帐户",khh "开户行",hrdd "汇入地点",yzbm "邮政编码",dz "地址",ffje "发放金额",');
qryMain.SQL.Add(' dqdm "地区代码",dqmc "地区名称",dwdm "单位代码",dwid_ff "组标识",zrs "组人数",cwbz "错误标识",bz "备注",ffyf "发放月份"');
qryMain.SQL.Add(' FROM');
qryMain.SQL.Add(' tff_zfkxx');
qryMain.SQL.Add('WHERE');
qryMain.SQL.Add(' dwdm='''
+ FieldByName('dwdm').AsString + '''');
if RadioButton1.Checked then
qryMain.SQL.Add(' and fkrq>to_date(''' + DateToStr(dtpFKRQ.Date) +
''', ''' + ShortDateFormat + ''')');
qryMain.SQL.Add(' order by dwid_ff');
qryMain.Open;
mmoMain.Lines.Add('共生成数据' + IntToStr(qryMain.RecordCount) +
'条记录');
if qryMain.RecordCount <> 0 then
begin
ToCSV.Transfer(Path + TrimRight(FieldByName('DWDM').AsString) +
'_反馈数据(有组).csv');
mmoMain.Lines.Add('已生成文件' + Path +
TrimRight(FieldByName('DWDM').AsString) +
'_反馈数据(有组).csv');
end;
qryMain.Close;
AddLine;
Next;
end;
finally
Free;
end;
mmoMain.Lines.Add('提供给单位的反馈数据已经生成');
end;
procedure TfrmFKXXDC.SpeedButton1Click(Sender: TObject);
var
bi: TBROWSEINFO;
str: array[0..MAX_PATH] of Char;
pIDListItem: PItemIDList;
pStr: PChar;
begin
bi.hwndOwner := GetActiveWindow;
bi.lpszTitle := PChar('目录选择');
bi.pidlRoot := nil;
bi.pszDisplayName := @str;
bi.ulFlags := BIF_RETURNONLYFSDIRS;
bi.lpfn := nil;
pIDListItem := SHBrowseForFolder(bi);
if pIDListItem <> nil then
begin
pStr := @Str;
SHGetPathFromIDList(pIDListItem, pStr);
CoTaskMemFree(pIDListItem);
edtPath.Text := pStr;
end;
end;
procedure TfrmFKXXDC.FormShow(Sender: TObject);
begin
dtpFKRQ.Date := StrToDate(DateToStr(Now));
end;
procedure TfrmFKXXDC.RadioButton1Click(Sender: TObject);
begin
if TRadioButton(Sender).Checked then
Radiobutton2.Checked := False
else
Radiobutton2.Checked := True;
end;
procedure TfrmFKXXDC.RadioButton2Click(Sender: TObject);
begin
if TRadioButton(Sender).Checked then
Radiobutton1.Checked := False
else
Radiobutton1.Checked := True;
end;
procedure TfrmFKXXDC.Button1Click(Sender: TObject);
begin
frmFKXX_rpt_1 := TfrmFKXX_rpt_1.Create(Self);
try
frmFKXX_Rpt_1.qryDetail.SQL.Clear;
frmFKXX_Rpt_1.qryDetail.SQL.Add('SELECT dwdm,xm,zh,yzbm,dz,cwbz,ffyf');
frmFKXX_Rpt_1.qryDetail.SQL.Add('FROM tff_ryfkxx');
if RadioButton1.Checked then
begin
frmFKXX_Rpt_1.qryDetail.SQL.Add('WHERE fkrq>to_date(''' +
DateToStr(dtpFKRQ.Date) +
''', ''' + ShortDateFormat + ''')');
end;
frmFKXX_Rpt_1.qryDetail.SQL.Add('order by dwdm,ryid_ff');
frmFKXX_Rpt_1.qryDetail.Open;
frmFKXX_rpt_1.QuickRep.Preview;
finally
frmFKXX_rpt_1.Free;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -