⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ufkxxdc.~pas

📁 行业应急系统 包括: 应急系统(待遇核发) 发放系统 开发环境:Delphi5 (sp1)+ Oracle 8.05 MultiExport是一个可以将数据按指定字段倒出
💻 ~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 + -