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是修改身份证号时,记录修改的位置。
  • 相关阅读:
    看从小自带BUFF的他,如何用代码降低万物互联的门槛
    30亿参数,华为云发布全球最大预训练模型,开启工业化AI开发新模式
    6大新品重磅发布,华为云全栈云原生技术能力持续创新升级
    ISO/IEC 5055:软件代码质量的标尺
    Python基础语法和数据类型最全总结
    40个问题让你快速掌握Java多线程的精髓
    编程实战:如何管理代码里的常量
    总是记不住java的IO流用法?用N个问题教你掌握java IO流
    4种语义分割数据集Cityscapes上SOTA方法总结
    PHP 在Swoole中使用双IoC容器实现无污染的依赖注入
  • 原文地址:https://www.cnblogs.com/samsonleung/p/1229658.html
Copyright © 2011-2022 走看看