zoukankan      html  css  js  c++  java
  • 在xsxxxg表中找出修改的项目

    crtvu中,xsxxxg表没有识别究竟是哪个字段进行了信息修改(sfzh,xbdm,xm)。然尔却要求我们生成报表,找出哪个项目修改过的。但以上项目都有修改前、修改后的信息。因此,想法是对比修改前后数据,如果不一致,记录项目名称(有可能修改多个项目)。
    关键:使用Tstringlist.commatext.
    事前准备,将xsxxxg表从SQLServer中导出至Access,然后增加mfield,mpos字段。

    代码如下:
    procedure TForm1.Button1Click(Sender: TObject);
    var
      i,j,no:integer;
      sl,slpos:Tstringlist;
    //生成结果,分别记录修改项目,以及身份证号修改的位置
      osfzh,nsfzh:string;
    //记录新旧新份证号
      issfzh:Boolean;
    //是否身份证号修改了
    begin
       sl:
    =TStringList.Create;
       slpos:
    =TStringList.Create;
      
    with tbl do
       
    begin
         Open;
        no:
    =tbl.RecordCount;
        First;
        
    for i:=1 to no do
          
    begin
            issfzh:
    =false;
            sl.clear;
            slpos.Clear;
            osfzh:
    =Trim(FieldByName('sfzh').AsString);
            nsfzh:
    = Trim(FieldByName('ysfzh').AsString);
            
    if osfzh<>nsfzh then
               
    begin
                 issfzh:
    =true;
                 sl.Add(
    'sfzh');
                 
    for j:=1 to Length(osfzh) do
                   
    begin
                     
    if osfzh[j]<>nsfzh[j] then
                       slpos.add(IntToStr(j));
                   
    end;
               
    end;
                    
    if Trim(FieldByName('xm').AsString)<>Trim(FieldByName('yxm').AsString) then
               
    begin
                 sl.Add(
    'xm');
               
    end;
                    
    if Trim(FieldByName('xbdm').AsString)<>Trim(FieldByName('yxbdm').AsString) then
               
    begin
                 sl.Add(
    'xbdm');
               
    end;
               edit;
               
    if issfzh then
                  FieldByName(
    'mpos').Value:=slpos.CommaText;
               FieldByName(
    'mfield').Value:=sl.CommaText;
               Post;
               Next;
          
    end;//for
       
    end;
       sl.Free;
       slpos.Free;
    end;

    执行的结果:
    mfield记录了修改的项目,mpos是修改身份证号时,记录修改的位置。
  • 相关阅读:
    core dump相关
    编译与链接的问题
    shell和awk配合使用
    cybergarage-upnp
    miniupnpc
    openssl
    在 linux 下使用 CMake 构建应用程序
    Ubuntu下的多线程下载工具:MultiGet;并与 Firefox 建立关联 uget
    嵌入式web服务器-thttpd
    Android_Layout_xml布局
  • 原文地址:https://www.cnblogs.com/samsonleung/p/1229658.html
Copyright © 2011-2022 走看看