zoukankan      html  css  js  c++  java
  • 从记事本里导入工资数据到数据库的写法

    从记事本里导入工资数据到数据库的写法,

    这种需要用的opendialog 要先添加这个组件;

     

    复制代码
     1 procedure TForm3.N6Click(Sender: TObject);
     2 var
     3   KeFuAry: TArray<string>;
     4   YueFen: string;
     5   MyList: TStringList;
     6   MyAdoq: TADOQuery;
     7   I: Integer;
     8 begin
     9   MyList := TStringList.Create;
    10   MyAdoq := TADOQuery.Create(nil);
    11   try
    12     MyAdoq.Connection := frmDataPool.ADOConnection1;
    13     //获取月份
    14     if not InputQuery('输入月份', '输入月份', YueFen) then
    15     begin
    16       ShowMessage('请输入月份');
    17       Exit;
    18     end;
    19     //从剪切板取到数据
    20     try
    21     if OpenDialog1.Execute then
    22     begin
    23     MyList.Clear;
    24     MyList.LoadFromFile(OpenDialog1.FileName);
    25     end;
    26     except
    27       on E:EReadError do
    28       ShowMessage('打开文件失败');
    29     end;
    30 
    31     //取出空值逐行读取
    32     for I := 0 to MyList.Count - 1 do
    33     begin
    34       if (MyList[I] <> '') and (MyList[I] <> '工资汇总:') then
    35       begin
    36         KeFuAry := MyList[I].Replace(':', ',').Replace('(', '').Replace(')', '').Replace('基本工资', '').Replace('- 个人社保', ',').Replace('- 个人公积金',',').
    37                  Replace('+ 加班请假', ',').Replace('+ 销售提成', ',').Replace('+ 销售奖金',',').Replace('+ 积分奖金', ',').Replace('+ QQ群奖金', ',').
    38                  Replace('= ',',').Replace(' 元','').Split([',']);
    39 
    40         //写入数据库
    41         with MyAdoq do
    42         begin
    43           Close;
    44           SQL.Text := 'INSERT INTO 工资表(月份,姓名,基本工资,个人社保代缴,个人公积金代缴,加班请假,销售提成,销售奖金,售后积分奖金,QQ群等级奖金,工资总额) VALUES ('+YueFen.QuotedString+','+KeFuAry[0].QuotedString+','+
    45                       KeFuAry[1]+',-'+KeFuAry[2]+',-'+KeFuAry[3]+','+KeFuAry[4]+','+KeFuAry[5]+','+
    46                       KeFuAry[6]+','+KeFuAry[7]+','+KeFuAry[8]+','+KeFuAry[9]+')';
    47           ExecSQL;
    48         end;
    49       end;
    50 
    51       //防止程序假死
    52       Application.ProcessMessages;
    53     end;
    54 
    55     //刷新下显示
    56     frmDataPool.qry工资表.Close;
    57     frmDataPool.qry工资表.Open;
    58   finally
    59     MyList.Free;
    60     MyAdoq.Free;
    61   end;
    62 end;
    复制代码
  • 相关阅读:
    vector详解
    笔记
    积木大赛
    codevs 1086 栈(Catalan数)
    不要把球传我
    同余方程 (codevs1200)
    最小集合
    数的计算
    产生数
    逃跑的拉尔夫
  • 原文地址:https://www.cnblogs.com/ddxxxb/p/6803209.html
Copyright © 2011-2022 走看看