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

📄 udataout.pas

📁 行业应急系统 包括: 应急系统(待遇核发) 发放系统 开发环境:Delphi5 (sp1)+ Oracle 8.05 MultiExport是一个可以将数据按指定字段倒出
💻 PAS
📖 第 1 页 / 共 5 页
字号:
unit uDataOut;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, Buttons, ComCtrls, ExtCtrls, Tabs, Db, DBTables, kdb2text, shlobj,
  activex, FileCtrl, Spin, Grids, DBGrids;

type
  TfrmDataOut = class(TForm)
    Panel1: TPanel;
    Panel2: TPanel;
    btnOK: TBitBtn;
    BitBtn2: TBitBtn;
    TabSet1: TTabSet;
    Panel3: TPanel;
    grpJG: TGroupBox;
    chkJG_1: TCheckBox;
    chkJG_2: TCheckBox;
    chkJG_3: TCheckBox;
    chkJG_4: TCheckBox;
    chkJG_5: TCheckBox;
    chkJG_6: TCheckBox;
    chkJG_7: TCheckBox;
    Panel4: TPanel;
    Label6: TLabel;
    edtPath: TEdit;
    mmoMain: TMemo;
    btnDir: TSpeedButton;
    toCSV: TKDatasetToText;
    qryMain: TQuery;
    pnlDW: TPanel;
    Label1: TLabel;
    edtDW: TEdit;
    lblDWMC: TLabel;
    pnlSJ: TPanel;
    Label2: TLabel;
    edtYear: TSpinEdit;
    edtMonth: TSpinEdit;
    Label3: TLabel;
    Label4: TLabel;
    Label9: TLabel;
    edtYear2: TSpinEdit;
    Label7: TLabel;
    edtMonth2: TSpinEdit;
    Label8: TLabel;
    procedure FormShow(Sender: TObject);
    procedure TabSet1Change(Sender: TObject; NewTab: Integer;
      var AllowChange: Boolean);
    procedure btnDirClick(Sender: TObject);
    procedure btnOKClick(Sender: TObject);
    procedure edtDWChange(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
  private
    { Private declarations }
    procedure ShowStyle(TabInd: Integer);
  public
    { Public declarations }
  end;

var
  frmDataOut: TfrmDataOut;
  strlst_1, strlst_2, strlst_3, strlst_4, strlst_5: TStringList;

implementation

uses dMain, uCommon;

{$R *.DFM}

procedure TfrmDataOut.FormShow(Sender: TObject);
var
  year, month, day: Word;
begin
  TabSet1.TabIndex := 0;

  chkJG_1.Checked := True;
  chkJG_2.Checked := True;
  chkJG_3.Checked := True;
  chkJG_4.Checked := True;
  chkJG_5.Checked := True;
  chkJG_6.Checked := True;
  chkJG_7.Checked := True;

  pnlDW.Visible := False;

  DecodeDate(Now, year, month, day);
  edtYear.Value := Year;
  edtMonth.Value := Month;
  edtYear2.Value := Year;
  edtMonth2.Value := Month;

  ShowStyle(TabSet1.TabIndex);
end;

procedure TfrmDataOut.TabSet1Change(Sender: TObject; NewTab: Integer;
  var AllowChange: Boolean);
begin

  case TabSet1.TabIndex of
    0:
      strlst_1.Assign(mmoMain.Lines);
    1:
      strlst_2.Assign(mmoMain.Lines);
    2:
      strlst_3.Assign(mmoMain.Lines);
    3:
      strlst_4.Assign(mmoMain.Lines);
    4:
      strlst_5.Assign(mmoMain.Lines);
  end;

  case NewTab of
    0: //单位汇总表
      begin
        mmoMain.Lines.Assign(strlst_1);
        pnlDW.Visible := False;
        pnlSJ.Visible := False;
      end;
    1: //发放名册
      begin
        mmoMain.Lines.Assign(strlst_2);
        pnlDW.Visible := False;
        pnlSJ.Visible := True;
        Label2.Caption := '所属年月';
      end;
    2: //补发数据
      begin
        mmoMain.Lines.Assign(strlst_3);
        pnlDW.Visible := False;
        pnlSJ.Visible := True;
        Label2.Caption := '补发年月';
      end;
    3: //新增人员
      begin
        mmoMain.Lines.Assign(strlst_4);
        pnlDW.Visible := False;
        pnlSJ.Visible := True;
        Label2.Caption := '新增年月';
      end;
    4: //发放机构变更人员表
      begin
        mmoMain.Lines.Assign(strlst_5);
        pnlDW.Visible := False;
        pnlSJ.Visible := True;
        Label2.Caption := '补发年月';
      end;
  end;

  ShowStyle(NewTab);
end;

procedure TfrmDataOut.btnDirClick(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 TfrmDataOut.btnOKClick(Sender: TObject);
var
  path: string;
  i: integer;

  procedure AddLine;
  begin
    //    mmoMain.Lines.Add('**********************************');
    mmoMain.Lines.Add('');
    Self.Update;
  end;
  function isDWDMValide(dwdm: string): boolean;
  begin
    with TQuery.Create(Self) do
    try
      DataBaseName := dfmMain.dbsMain.DataBaseName;
      SQL.Add('SELECT count(*) FROM tff_dwxx WHERE ssdwid=dwid_ff and dwdm=''' +
        edtDW.Text +
        '''');
      Open;
      if Fields[0].AsInteger = 0 then
        Result := False
      else
        Result := True;
    finally
      Free;
    end;
  end;

  function FillWord(inStr: string; WordLength: Integer): string;
  begin
    Result := inStr;

    if Length(inStr) < WordLength then
    begin
      Result := StringOfChar('0', WordLength - length(inStr)) + inStr;
    end;
  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;

  // 生成所有单位发放数据

  //  if (TabSet1.TabIndex = 0) then
  //    if not isDWDMValide(edtDW.Text) then
  //    begin
  //      gfShowError('请输入正确的单位代码');
  //      Abort;
  //    end;

    //清空Memo
  mmoMain.Lines.Clear;
  Self.Repaint;

  case TabSet1.TabIndex of
    0: //单位汇总表
      begin
        //查询所有单位信息
        with TQuery.Create(Self) do
        try
          DataBaseName := dfmMain.dbsMain.DatabaseName;
          SQL.Add('select dwid_ff,dwdm,dwmc from tff_dwxx');
          SQL.Add('where dwid_ff=ssdwid');
          SQL.Add('order by dwdm');
          Open;

          //显示该单位的发放数据
          mmoMain.Lines.Add('单位汇总表正在生成...');
          mmoMain.Lines.Add('共有单位' + IntToStr(RecordCount) + '家');
          mmoMain.Lines.Add('');

          i := 1;
          while not EOF do
          begin
            Self.Update;

            mmoMain.Lines.Add(FieldByName('DWMC').AsString +
              '(' +
              FieldByName('DWDM').AsString +

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -