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

📄 frmrename.pas

📁 小灵通机卡分离模块的设计.建立在数据库服务器
💻 PAS
📖 第 1 页 / 共 3 页
字号:

  lwlBkOwnerInfo.edit;
  lwlBkUserInfo.edit;
  UserInfo1.LwlUserInfo.edit;
  UserInfo2.LwlUserInfo.edit;

  lwlBkOwnerInfo.Post;
  lwlBkUserInfo.Post;
  UserInfo1.LwlUserInfo.Post;
  UserInfo2.LwlUserInfo.Post;
  //showMessage(UserInfo1.LwlUserInfo.FieldByName('cust_id').AsString);
  
  if UserInfo1.LwlUserInfo.FieldByName('cust_id').AsString =UserInfo2.LwlUserInfo.FieldByName('cust_id').AsString then
  begin
      cbSame.Checked := True;
      TabSheet2.TabVisible := False;
      TabSheet1.Caption := '客户信息';
  end
  else
  begin
      cbSame.Checked := False;
      TabSheet2.TabVisible := True;
      TabSheet1.Caption := '所有者信息';
      TabSheet2.Caption := '使用者信息';
  end;

  //如果当前的生产编号,生产流水不为-1,则检索相关的受理等级
  Lwlaccelog.fieldbyname('accept_grade').asstring := 'A';
  if (Currscbh <> -1) and (Currscls <> -1) then
  begin
      if retrieveValue(Lwlaccelog, 'B2', '1', '') <> 1 then
      begin
          Lwlaccelog.Edit;
          Lwlaccelog.fieldbyname('accept_grade').asstring := 'A';
      end;
  end;
  if Currcpbh = -1 then
    Currcpbh :=StrToInt(trim((ProdBase1.LwlProdInfo.fieldbyname('product_id').AsString)));
  pagecontrol1.ActivePage := TabSheet1;
  Rename.WindowState := wsMaximized;
end;

procedure TRename.btnCancelClick(Sender: TObject);
begin
  inherited;
  beClose := true;
  if MessageDlg('是否要取消当前操作,返回客户服务中心?', mtConfirmation, [mbYes, mbNo], 0) = mrNo
  then
  begin
      beClose := false;
      exit;
  end;
  close;
end;

procedure TRename.FormCloseQuery(Sender: TObject;
  var CanClose: Boolean);
begin
  inherited;
  CanClose := beClose;
end;

procedure TRename.btnSaveClick(Sender: TObject);
var
  li_ret: integer;
  ls_oldscls, ls_prodno, ls_khmc: string;
  same_flag: string;
  ls_scbh,ls_scls,ls_slbh,ls_cplb,msgOut:string;
begin
  inherited;
  //合法性检查

  //messagedlg(UserInfo2.LwlUserInfo.FieldByName('cust_id').AsString, mtinformation, [mbok], 0);
  UserInfo1.LwlUserInfo.FieldByName('cust_id').AsString:=bkCustId;
  if UserInfo1.UserValidate <> 0 then
  begin
      PageControl1.ActivePage := TabSheet1;
      UserInfo1.FocusSet;
      exit;
  end;

  if (not cbSame.Checked) then
    if UserInfo2.UserValidate <> 0 then
    begin
        PageControl1.ActivePage := TabSheet2;
        UserInfo2.FocusSet;
        exit;
    end;

  lwlsave.Open;
  lwlsave.Clear;
  lwlsave.Param.Clear;
  lwlsave.CicsRegion := vg_CicsRegion;
  lwlsave.CicsProgram := 'TRANSFER';

  //客户信息(所有者、使用者)变动情况
  if not writeChange() then
  begin
      exit;
  end;
  // messagedlg(UserInfo2.LwlUserInfo.FieldByName('cust_id').AsString, mtinformation, [mbok], 0);
  //增加输入参数
  if (Currscbh <> -1) then
    Oldscbh := inttostr(Currscbh)
  else
    Oldscbh := ProdBase1.LwlProdInfo.fieldbyname('produce_id').asstring;
  if (Currscls <> -1) and (FrmYyslzx.getywlx <> '1') then
    ls_oldscls := inttostr(Currscls)
  else
    ls_oldscls := '';

  setLinkParmVal(lwlsave, 'param1', Oldscbh);
  setLinkParmVal(lwlsave, 'param2', ls_oldscls);
  setLinkParmVal(lwlsave, 'param3', Currddbh);
  setLinkParmVal(lwlsave, 'param4', Currslbh);
  setLinkParmVal(lwlsave, 'param5', inttostr(Currcpbh));
  setLinkParmVal(lwlsave, 'param6', Currywm);
  setLinkParmVal(lwlsave, 'param7', Currywm);
  setLinkParmVal(lwlsave, 'param8', Currsldlx);
  setLinkParmVal(lwlsave, 'param9', '0');
  setLinkParmVal(lwlsave, 'param10', Currywlx);
  setLinkParmVal(lwlsave, 'param11', vg_lan_code);
  setLinkParmVal(lwlsave, 'param12', vg_lan_code);
  setLinkParmVal(lwlsave, 'param13',trim(lwlaccelog.fieldbyname('accept_grade').asstring));
  setLinkParmVal(lwlsave, 'param14', vg_accept_mode);
  setLinkParmVal(lwlsave, 'param15', vg_order_tache);
  setLinkParmVal(lwlsave, 'param16', vg_unit_type);
  setLinkParmVal(lwlsave, 'param17', vg_unit_code);
  setLinkParmVal(lwlsave, 'param18', vg_exch_code);
  setLinkParmVal(lwlsave, 'param19', vg_depart_code);
  setLinkParmVal(lwlsave, 'param20', vg_depart_type);
  setLinkParmVal(lwlsave, 'param21', vg_oper_code);
  setLinkParmVal(lwlsave, 'param22', vg_ipaddr);
  setLinkParmVal(lwlsave, 'param23', vg_term_code);

  if cbSame.Checked then
    same_flag := '1'
  else
    same_flag := '2';
  setLinkParmVal(lwlsave, 'param24', same_flag);//所有者和使用者相同传'1',不同传'2'
  setLinkParmVal(lwlsave, 'param25',trim(UserInfo1.LwlUserInfo.FieldByName('cust_id').AsString));
  //新的所有者编号
  setLinkParmVal(lwlsave, 'param26', inttostr(FrmYyslzx.Getoldscls));
  lwlsave.Param.CreateParam(ftString, 'param27', ptoutput);
  lwlsave.Param.CreateParam(ftString, 'param28', ptoutput);
  lwlsave.Param.CreateParam(ftString, 'param29', ptoutput);
  lwlsave.Param.CreateParam(ftString, 'param30', ptoutput);
  lwlsave.apply; //调用服务
  li_ret := lwlsave.RValue;

  if li_ret <> 0 then
  begin
      showerror('保存失败!', lwlsave.Infomation);
      exit;
  end;

  //给营业受理中心赋值
  FrmYyslzx.setscbh(strtoint(trim(lwlsave.Param.ParamByName('param27').AsString)));
  FrmYyslzx.setscls(strtoint(trim(lwlsave.Param.ParamByName('param28').AsString)));
  FrmYyslzx.setslbh(trim(lwlsave.Param.ParamByName('param29').AsString));
  FrmYyslzx.setddbh(trim(lwlsave.Param.ParamByName('param30').AsString));
  ls_khmc := userinfo1.LwlUserInfo.FieldByName('cust_name').AsString;
  FrmYyslzx.setkhmc(ls_khmc);
  ls_prodno := ProdBase1.getCphm;
  FrmYyslzx.setcphm(ls_prodno);
  FrmYyslzx.setsldlx('00');
  //FrmYyslzx.Setcpbh(trim(lwlsave.Param.ParamByName('param29').asString));  //产品编号
  FrmYyslzx.Dispcurrrecord();
  FrmYyslzx.setuserinfo(userinfo1.LwlUserInfo);
  ///////打印审核单
  ls_scbh:=trim(lwlsave.Param.ParamByName('param27').AsString);
  ls_scls:=trim(lwlsave.Param.ParamByName('param28').AsString);
  ls_slbh:=trim(lwlsave.Param.ParamByName('param29').AsString);
  ls_cplb:=trim(ProdBase1.LwlProdInfo.fieldbyname('prod_class').AsString);
  SetPrint(UserInfo1.LwlUserInfo,ls_scbh,'E7','1','owner',UserInfo1.LwlUserInfoOld.FieldCount);
  SetPrint(UserInfo2.LwlUserInfo,ls_scbh,'E7','1','user',UserInfo2.LwlUserInfoOld.FieldCount);
  //SetPrint(AccountInfo1.LwlAccount,ls_scbh,'A3','1','',AccountInfo1.LwlAccountOld.FieldCount);
  //SetPrint(AccountInfo1.LwlAccoInfo,ls_scbh,'A4','1','',AccountInfo1.LwlAccoInfoOld.FieldCount);
  SetPrint(ProdBase1.LwlProdInfo,ls_scbh,'A0','1','',ProdBase1.LwlProdInfo.FieldCount-6);
  //SetPrint(PhoneInfo.LwlPhoneInfo,Oldscbh,'A1','1','main',PhoneInfo.LwlPhoneInfoOld.FieldCount);
  //SetPrint(pd163line1.lwlpdn_163line,ls_scbh,'C2','1','',37);
  SetAssistantData(ls_scbh,ls_scls,ls_slbh,FrmYyslzx.Getywm(),ls_cplb);
  AnalyseData(msgOut);
  ///////////////////////////
  messagedlg('受理单信息保存成功!', mtinformation, [mbok], 0);
  beClose := true;
  close;
  exit;

end;

procedure TRename.cbSameClick(Sender: TObject);
var
  i: integer;
begin
  inherited;
  UserInfo1.LwlUserInfo.FieldByName('cust_id').AsString:=bkCustId;
  if cbSame.Checked then
  begin
      cbSame.Checked := true;
      TabSheet2.TabVisible := False;
      TabSheet1.Caption := '客户信息';
      UserInfo2.LwlUserInfo.open;
      UserInfo2.LwlUserInfo.Clear;
      UserInfo2.LwlUserInfo.Append;
      for i := 0 to UserInfo1.LwlUserInfo.FieldCount - 1 do
        UserInfo2.LwlUserInfo.Fields[i].AsString :=UserInfo1.LwlUserInfo.Fields[i].AsString;
        UserInfo2.LwlUserInfo.Post;
  end
  else
  begin
      cbSame.Checked := False;
      TabSheet2.TabVisible := True;
      TabSheet1.Caption := '所有者信息';
      TabSheet2.Caption := '使用者信息';
      UserInfo2.LwlUserInfo.open;
      UserInfo2.LwlUserInfo.Clear;
      UserInfo2.LwlUserInfo.Append;
      if lwlBkOwnerInfo.fieldbyname('cust_id').AsString <>lwlBkUserInfo.fieldbyname('cust_id').AsString then
      begin
          for i := 0 to UserInfo1.LwlUserInfo.FieldCount - 1 do
            UserInfo2.LwlUserInfo.Fields[i].AsString :=lwlBkUserInfo.Fields[i].AsString;
      end
      else
        UserInfo2.UserInit;
        UserInfo2.LwlUserInfo.Post;
  end;
end;

//进行比较,然后根据比较结果写信息变动表
function TRename.writeChange(): boolean;
var
  i, li_OwnerChangeNum, li_UserChangeNum, m,k: integer;
  ls_new_cust_id, ls_old_cust_id, ls_fieldCode, ls_fieldName, ls_oldVal,
    ls_newVal: string;
  operFlag: string;
  OldCustId,NewCustId:string;
begin
  li_OwnerChangeNum := 0;
  li_UserChangeNum := 0;
  operFlag := 'M';
  k:=1;
  {if trim(currYwm) = '03' then
    m := 4
  else }
    m := 2;

  for i := m to 43 do
  begin
    if i <> 26 then    ////对性别字段不做比较
    begin
      if trim(lwlBkOwnerInfo.Fields[i].AsString) <> trim(UserInfo1.LwlUserInfo.Fields[i].AsString) then
        li_OwnerChangeNum := li_OwnerChangeNum + 1;
    end;
  end;

   if cbSame.Checked=false  then
   begin
     if trim(UserInfo2.LwlUserInfo.Fields[2].AsString)<> trim(lwlBkUserInfo.Fields[2].AsString)  then
     begin
        UserInfo2.LwlUserInfo.Open;
        UserInfo2.LwlUserInfo.Edit;
        UserInfo2.LwlUserInfo.Fields[2].AsString:= lwlBkUserInfo.Fields[2].AsString;
        UserInfo2.LwlUserInfo.post;
     end;
  end;

  if cbSame.Checked then
  begin
      UserInfo2.LwlUserInfo.open;
      UserInfo2.LwlUserInfo.Clear;
      UserInfo2.LwlUserInfo.Append;
      for i := 0 to UserInfo1.LwlUserInfo.FieldCount - 1 do
        UserInfo2.LwlUserInfo.Fields[i].AsString :=UserInfo1.LwlUserInfo.Fields[i].AsString;
      {if trim(currYwm) = '03' then
        begin
          UserInfo2.LwlUserInfo.Fields[2].AsString :=
            lwlBkOwnerInfo.Fields[2].AsString;
          UserInfo2.LwlUserInfo.Fields[3].AsString :=
            lwlBkOwnerInfo.Fields[3].AsString;
        end;}
        UserInfo2.LwlUserInfo.Post;
    end;

  for i := 2 to 43 do
  begin
    if i <> 26 then
    begin
      if trim(lwlBkUserInfo.Fields[i].AsString) <>
        trim(UserInfo2.LwlUserInfo.Fields[i].AsString) then
        li_UserChangeNum := li_UserChangeNum + 1;
    end;
  end;

  if (li_OwnerChangeNum = 0) and (li_UserChangeNum = 0) then
  begin
      showmessage('你没有做任何变动!');
      result := false;
      exit;
  end;

  if not cbSame.Checked then
  begin
    if (lwlBkOwnerInfo.fieldbyname('cust_id').AsString =UserInfo2.LwlUserInfo.fieldbyname('cust_id').AsString) then
    begin
       showmessage('不合法变动:' + #13 + '改动后所有者和使用者编号相同!' + #13+'如果要改所有者编号,请做"过户"业务');
       result := false;
       exit;
    end;
  end;

  if li_OwnerChangeNum > 0 then
  begin
      NewCustId := '';
      OldCustId := '';
      OldCustId := lwlBkOwnerInfo.Fields[2].AsString;
      NewCustId := UserInfo1.LwlUserInfo.Fields[2].AsString;
      if  NewCustId <> OldCustId then
      begin
        operFlag:='A';
        m:=3;
        ls_newVal := '';
        ls_newVal := UserInfo1.LwlUserInfo.Fields[2].AsString;
        appendvalue('E7', '2', 'cust_id', '客户编号', '',operFlag, IntToStr(k), ls_newVal, '');
        for i := m to 43 do
        begin
          ls_fieldCode := '';
          ls_fieldName := '';
          ls_newVal := '';
          ls_oldVal := '';
          ls_oldVal := lwlBkOwnerInfo.Fields[i].AsString;
          ls_newVal := UserInfo1.LwlUserInfo.Fields[i].AsString;
          getFieldBySeq(i, ls_fieldCode, ls_fieldName);
          appendvalue('E7', IntToStr(i), ls_fieldCode, ls_fieldName, '',operFlag, IntToStr(k), ls_newVal, ls_oldVal);
        end;
        operFlag:='D';
        m:=3;
        K:=K+1;
        ls_oldVal := '';
        ls_oldVal := lwlBkOwnerInfo.Fields[2].AsString;
        appendvalue('E7', '2', 'cust_id', '客户编号', '',operFlag, IntToStr(k), '', ls_oldVal);
        for i := m to 43 do
        begin
          ls_fieldCode := '';
          ls_fieldName := '';
          ls_newVal := '';
          ls_oldVal := '';
          ls_oldVal := lwlBkOwnerInfo.Fields[i].AsString;
          ls_newVal := UserInfo1.LwlUserInfo.Fields[i].AsString;
          getFieldBySeq(i, ls_fieldCode, ls_fieldName);
          appendvalue('E7', IntToStr(i), ls_fieldCode, ls_fieldName, '',operFlag, IntToStr(k), ls_newVal, ls_oldVal);
        end;
      end
      else
      begin
        operFlag:='M';
        if trim(currYwm) = '03' then
        begin
          ls_oldVal := '';
          ls_oldVal := lwlBkOwnerInfo.Fields[2].AsString;
          ls_newVal := UserInfo1.LwlUserInfo.Fields[2].AsString;
          appendvalue('E7', '2', 'cust_id', '客户编号', '',operFlag, IntToStr(k), ls_newVal, ls_oldVal);
          //appendvalue('E7', '2', 'cust_id', '客户编号', '',operFlag, IntToStr(k), ls_oldVal, ls_oldVal);
          m := 4
        end
        else
          m:=2;
        for i := m to 43 do
        begin
          ls_fieldCode := '';
          ls_fieldName := '';
          ls_newVal := '';
          ls_oldVal := '';
          ls_oldVal := lwlBkOwnerInfo.Fields[i].AsString;
          ls_newVal := UserInfo1.LwlUserInfo.Fields[i].AsString;

⌨️ 快捷键说明

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