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

📄 frmmainp.pas

📁 二次开发模块 一、条形码的批量生成
💻 PAS
📖 第 1 页 / 共 2 页
字号:
procedure TFrmMain.CheckInv(cVouch: String);
Var LsQry:TADOQuery;
begin
  LsQry:=TADOQuery.Create(Self);
  LsQry.Connection:=DataDm.AdoConUfsoft;

  LsQry.Close;
  LsQry.SQL.Clear;
  LsQry.SQL.Add('SELECT DISTINCT dbo.Szb_PurInList.cBarCode');
  LsQry.SQL.Add('FROM dbo.Szb_PurIn INNER JOIN');
  LsQry.SQL.Add('      dbo.Szb_PurInList ON');
  LsQry.SQL.Add('      dbo.Szb_PurIn.id = dbo.Szb_PurInList.iPurID LEFT OUTER JOIN');
  LsQry.SQL.Add('      dbo.InventoryBarCodeSet ON dbo.Szb_PurInList.cBarCode = dbo.InventoryBarCodeSet.cBarCode');
  LsQry.SQL.Add('WHERE (dbo.InventoryBarCodeSet.cBarCode IS NULL)');
  LsQry.SQL.Add(' And  (dbo.Szb_PurInList.PCID='''+FrmMain.PCID+''')');
  LsQry.SQL.Add(' And  (dbo.Szb_PurIn.cVouchType='''+cVouch+''')');
  LsQry.SQL.Add('Order by dbo.Szb_PurInList.cBarCode');
//  LsQry.SQL.SaveToFile('c:\1.txt');
  LsQry.Open;
  if LsQry.RecordCount>0 then
    begin
       Application.MessageBox(Pchar('共有:'+inttostr(LsQry.RecordCount)+'个条形码找不到对应的存货.'),'信息',MB_OK+ MB_ICONINFORMATION);
       Application.CreateForm(TFrmPoPInv,FrmPoPInv);
       FrmPoPInv.DataSource1.DataSet:=LsQry;
       FrmPoPInv.ShowModal;
       FrmPoPInv.Free;
       FrmPoPInv:=nil;
       LsQry.Destroy;
       Abort;
    end;
  LsQry.Destroy;  
end;

procedure TFrmMain.UpdateInv(cVouch: String);
Var LsQry:TADOQuery;
begin
  LsQry:=TADOQuery.Create(Self);
  LsQry.Connection:=DataDm.AdoConUfsoft;
  LsQry.SQL.Add('update Szb_PurInList set Szb_PurInList.cInvName= InventoryBarCodeSet.cInvName, Szb_PurInList.cInvStd=InventoryBarCodeSet.cInvStd,');
  LsQry.SQL.Add('      Szb_PurInList.cInvCode=InventoryBarCodeSet.cInvCode, Szb_PurInList.cFree1=InventoryBarCodeSet.cFree1,Szb_PurInList.cFree2=InventoryBarCodeSet.cFree2');
  LsQry.SQL.Add('FROM dbo.Szb_PurIn INNER JOIN');
  LsQry.SQL.Add('      dbo.Szb_PurInList ON');
  LsQry.SQL.Add('      dbo.Szb_PurIn.id = dbo.Szb_PurInList.iPurID LEFT OUTER JOIN');
  LsQry.SQL.Add('      dbo.InventoryBarCodeSet ON dbo.Szb_PurInList.cBarCode = dbo.InventoryBarCodeSet.cBarCode');
  LsQry.SQL.Add('Where  (Szb_PurInList.PCID='''+FrmMain.PCID+''')');
  LsQry.SQL.Add(' And   (Szb_PurIn.cVouchType='''+cVouch+''')');
//  LsQry.SQL.SaveToFile('c:\1.txt');
  LsQry.ExecSQL;
  LsQry.Destroy;
end;

procedure TFrmMain.ReadTxtFile(cFile, cChar, cVouch: String;AdoQry:TADOQuery);
Var cFileName,Ch,LsStr,ss:String;
   F1: TextFile;
   LsQry,LsQryList:TADOQuery;
   ii:Integer;
begin
  if Application.MessageBox('确定读取数据?','信息',MB_OKCANCEL+ MB_ICONINFORMATION + MB_DEFBUTTON2)<> IDOK  Then
       begin
         Abort;
       end;
  cFileName:=SUFunction.ReadInformation('条形码文本文件路径','cValue','')+'\'+cFile;
  Try
   AssignFile(F1, cFileName);
   Reset(F1);
  Except
    Application.MessageBox(Pchar('无法打开条形码文本文件:'+cFileName+'.'),'信息',MB_OK+ MB_ICONINFORMATION);
    Abort;
  End;
  DataDm.DeleteTabe('Szb_PurIn',cVouch);
  DataDm.DeleteTabe('Szb_PurInList',cVouch);
  LsQry:=TADOQuery.Create(Self);
  LsQry.Connection:=DataDm.AdoConUfsoft;
  LsQry.SQL.Add('select * from Szb_PurIn');
  LsQry.SQL.Add('Where pcid=''1''');
  LsQry.Open;
  LsQryList:=TADOQuery.Create(Self);
  LsQryList.Connection:=DataDm.AdoConUfsoft;
  LsQryList.SQL.Add('select * from Szb_PurInList');
  LsQryList.SQL.Add('Where pcid=''1''');
  LsQryList.Open;
  LsStr:='';
  ii:=0;
  while not Eof(F1) do
    begin
      Readln(F1, Ch);
      ss:=FrmMain.GetString(Ch,1);
      if (ss<>cChar) then
          Continue;
      if (FrmMain.GetString(Ch,2))<>LsStr then
        begin
         LsStr:=FrmMain.GetString(Ch,2);
         LsQry.Append;
         LsQry.FieldByName('cVouchType').AsString:=cVouch;
         LsQry.FieldByName('cMaker').AsString:=DataDm.Maker;
         LsQry.FieldByName('PCID').AsString:=FrmMain.PCID;
         LsQry.FieldByName('cOrderCode').AsString:=FrmMain.GetString(Ch,3);
         LsQry.FieldByName('cType').AsString:=FrmMain.GetString(Ch,4);
         LsQry.Post;
         ii:=LsQry.FieldByName('ID').AsInteger;
       end;
     LsQryList.Append;
     LsQryList.FieldByName('PCID').AsString:=FrmMain.PCID;
     LsQryList.FieldByName('iPurID').AsInteger:=ii;
     LsQryList.FieldByName('cVouchType').AsString:=cVouch;
     LsQryList.FieldByName('cBarCode').AsString:=FrmMain.GetString(Ch,5);
     LsQryList.FieldByName('iQuantity').AsFloat:=StrToFloat(FrmMain.GetString(Ch,6));
     LsQryList.Post;
    end;
  CloseFile(F1);
  AdoQry.Close;
  AdoQry.SQL.Clear;
  AdoQry.SQL.Add('select * from Szb_PurIn');
  AdoQry.SQL.Add('Where (PCID='''+FrmMain.PCID+''')');
  AdoQry.SQL.Add(' And  (cVouchType='''+cVouch+''')');
  AdoQry.Open;
end;

procedure TFrmMain.DeleteRD(AdoQry: TADOQuery);
Var LsQry:TADOQuery;
    ii,kk: Integer;
begin
    if Application.MessageBox('确定删除此张单据?','信息',MB_OKCANCEL+ MB_ICONINFORMATION + MB_DEFBUTTON2)= IDOK  Then
       begin
         ii:=AdoQry.FieldByName('ID').AsInteger;
         kk:=AdoQry.RecNo;
         LsQry:=TADOQuery.Create(Self);
         LsQry.Connection:=DataDm.AdoConUfsoft;
         LsQry.SQL.Add('Delete from Szb_PurInList');
         LsQry.SQL.Add('Where (PCID='''+FrmMain.PCID+''')');
         LsQry.SQL.Add(' And  (iPurID='+IntToStr(II)+')');
         LsQry.ExecSQL;

         LsQry.Close;
         LsQry.SQL.Clear;
         LsQry.SQL.Add('Delete from Szb_PurIN');
         LsQry.SQL.Add('Where (PCID='''+FrmMain.PCID+''')');
         LsQry.SQL.Add(' And  (ID='+IntToStr(II)+')');
         LsQry.ExecSQL;
         LsQry.Destroy;

         AdoQry.Close;
         AdoQry.Open;
         AdoQry.MoveBy(kk-1);
       end;

end;

procedure TFrmMain.DeleteRDS(ii, kk: Integer);
Var LsQry:TADOQuery;
begin
    if Application.MessageBox('确定删除此条分录?','信息',MB_OKCANCEL+ MB_ICONINFORMATION + MB_DEFBUTTON2)= IDOK  Then
       begin
         LsQry:=TADOQuery.Create(Self);
         LsQry.Connection:=DataDm.AdoConUfsoft;
         LsQry.SQL.Add('Delete from Szb_PurInList');
         LsQry.SQL.Add('Where (PCID='''+FrmMain.PCID+''')');
         LsQry.SQL.Add(' And  (iPurID='+IntToStr(II)+')');
         LsQry.SQL.Add(' And  (ID='+IntToStr(kk)+')');
         LsQry.ExecSQL;
         LsQry.Destroy;
       end;
end;

procedure TFrmMain.GetNullNumber(cType, cVouch: String);
Var LsQry:TADOQuery;
    ii:Integer;
begin
  LsQry:=TADOQuery.Create(Self);
  LsQry.Connection:=DataDm.AdoConUfsoft;
  LsQry.SQL.Add('select count(*) as iSum');
  LsQry.SQL.Add('from (');
  LsQry.SQL.Add('SELECT count(dbo.Szb_PurIn.id) as iSum');
  LsQry.SQL.Add('FROM dbo.Szb_PurIn INNER JOIN');
  LsQry.SQL.Add('      dbo.Szb_PurInList ON dbo.Szb_PurIn.id = dbo.Szb_PurInList.iPurID');
  LsQry.SQL.Add('WHERE (dbo.Szb_PurIn.PCID = '''+FrmMain.PCID+''')');
  LsQry.SQL.Add(' And  (Szb_PurIn.cVouchType='''+cVouch+''')');
  LsQry.SQL.Add(' And  ((dbo.Szb_PurInList.cInvcode  is null)');
  if (cVouch<>'32') then
     LsQry.SQL.Add(' Or  (dbo.Szb_PurIn.cVenCode is null)');
//  if cType='采购到货单' then
     LsQry.SQL.Add('  Or  (dbo.Szb_PurInList.iArrsId   is null)');
  if cType='采购订单' then
     LsQry.SQL.Add('  Or  (dbo.Szb_PurInList.iPosID    is null)');
  if cType='发货单' then
     LsQry.SQL.Add('  Or  (dbo.Szb_PurInList.iDLsID  is null)');
  LsQry.SQL.Add('  Or   (dbo.Szb_PurIn.cWhcode  is null))');
  LsQry.SQL.Add('Group by dbo.Szb_PurIn.id) aa');
  LsQry.SQL.SaveToFile('c:\1.txt');
  LsQry.Open;
  ii:=LsQry.FieldByName('iSum').AsInteger;
  LsQry.Destroy;
  if ii>0 then
    begin
    if Application.MessageBox(pchar('共有'+IntToStr(ii)+'张单据未经过检查,是否继续?'),'信息',MB_OKCANCEL+ MB_ICONINFORMATION + MB_DEFBUTTON2)<> IDOK  Then
       begin
         Abort;
       end;
    end;
end;

procedure TFrmMain.UpdateNull(II: Integer;cVouch: String);
Var LsQry:TADOQuery;
begin

   LsQry:=TADOQuery.Create(Self);
   LsQry.Connection:=DataDm.AdoConUfsoft;
   LsQry.SQL.Add('Update Szb_PurIn set cCusCode=null,cVenCode=null,cWhCode=null,cWhCodeOut=null,DLID=Null,ipurarriveid=Null,');
   LsQry.SQL.Add('     ipurorderid=Null');
   LsQry.SQL.Add('Where (PCID='''+FrmMain.PCID+''')');
   LsQry.SQL.Add(' And  (Szb_PurIn.cVouchType='''+cVouch+''')');
   if ii<>0 then
      LsQry.SQL.Add(' And  (ID='+IntToStr(II)+')');

   LsQry.ExecSQL;

   LsQry.Close;
   LsQry.SQL.Clear;
   LsQry.SQL.Add('Update Szb_PurInList set cInvCode=null,iDLsID=null,iPosid=null,iArrsId=null');
   LsQry.SQL.Add('FROM dbo.Szb_PurIn INNER JOIN');
   LsQry.SQL.Add('      dbo.Szb_PurInList ON dbo.Szb_PurIn.id = dbo.Szb_PurInList.iPurID');
   LsQry.SQL.Add('Where (Szb_PurIn.PCID='''+FrmMain.PCID+''')');
   LsQry.SQL.Add(' And   (Szb_PurIn.cVouchType='''+cVouch+''')');
   if ii<>0 then
      LsQry.SQL.Add(' And  (iPurID='+IntToStr(II)+')');

   LsQry.ExecSQL;

   LsQry.Destroy;
end;

procedure TFrmMain.SumNumber(cVouch: String; Lab: TLabel);
Var LsQry:TADOQuery;
begin
  LsQry:=TADOQuery.Create(Self);
  LsQry.Connection:=DataDm.AdoConUfsoft;
  LsQry.SQL.Add('select sum(isnull(iQuantity,0)) as iSum from Szb_PurInList');
  LsQry.SQL.Add('Where  (Szb_PurInList.PCID='''+FrmMain.PCID+''')');
  LsQry.SQL.Add(' And   (Szb_PurInList.cVouchType='''+cVouch+''')');
  LsQry.Open;
  Lab.Caption:='数量总计:'+IntToStr(LsQry.FieldByName('isum').AsInteger);
  LsQry.Destroy;
end;

procedure TFrmMain.CalcFieldsList(AdoQry: TADOQuery; cCheck: String);
Var bb:Boolean;
begin
  AdoQry.FieldByName('cError').AsString:='';
  bb:=True;
  if AdoQry.FieldByName('cInvCode').AsString='' then
    begin
     AdoQry.FieldByName('cError').AsString:='条形码无对应关系';
     bb:=False;
    end;
  if cCheck<>'' then
    begin
      if (AdoQry.FieldByName(cCheck).AsInteger=0)  then
        begin
            if AdoQry.FieldByName('cError').AsString<>'' then
               AdoQry.FieldByName('cError').AsString:=AdoQry.FieldByName('cError').AsString+'、无相应的上游单据分录.'
            else
               AdoQry.FieldByName('cError').AsString:='无相应的上游单据分录';
            bb:=False;
        end;
    end;
  if bb then
    AdoQry.FieldByName('cc').AsString:='√'
  else
    AdoQry.FieldByName('cc').AsString:='';
end;

procedure TFrmMain.CheckType(cType, cVouch: String);
Var LsQry:TADOQuery;
begin
  LsQry:=TADOQuery.Create(Self);
  LsQry.Connection:=DataDm.AdoConUfsoft;
  LsQry.Close;
  LsQry.SQL.Clear;
  LsQry.SQL.Add('SELECT Szb_PurIn.id, Szb_PurIn.cType');
  LsQry.SQL.Add('FROM (SELECT *  FROM szb_ini');
  LsQry.SQL.Add('      WHERE (Szb_Ini.cMaker = '''+DataDm.Maker+''')');
  LsQry.SQL.Add('       AND  (Szb_Ini.cVouch = '''+cVouch+''')');
  LsQry.SQL.Add('       AND  (Szb_Ini.cType = '''+cType+'''))');
  LsQry.SQL.Add('      AA RIGHT OUTER JOIN');
  LsQry.SQL.Add('      Szb_PurIn ON AA.cNO = Szb_PurIn.cType');
  LsQry.SQL.Add('WHERE (Szb_PurIn.PCID = '''+FrmMain.PCID+''') AND (AA.cNO IS NULL)');
  LsQry.SQL.Add(' And  (Szb_PurIn.cVouchType='''+cVouch+''')');
  LsQry.Open;
  if LsQry.RecordCount>0 then
    begin
       Application.MessageBox(Pchar('共有:'+inttostr(LsQry.RecordCount)+'张单据的找不到对应的方案号.'),'信息',MB_OK+ MB_ICONINFORMATION);
       Application.CreateForm(TFrmPoPType,FrmPoPType);
       FrmPoPType.DataSource1.DataSet:=LsQry;
       FrmPoPType.ShowModal;
       FrmPoPType.Free;
       FrmPoPType:=nil;
    end;
  LsQry.Destroy;
end;

procedure TFrmMain.B3Click(Sender: TObject);
begin
   if FrmOtherIn=nil then
     Application.CreateForm(tFrmOtherIn,FrmOtherIn);
   FrmOtherIn.Show;
end;

procedure TFrmMain.A5Click(Sender: TObject);
begin
   if FrmMaterialOut=nil then
     Application.CreateForm(tFrmMaterialOut,FrmMaterialOut);
   FrmMaterialOut.Show;
end;

procedure TFrmMain.C3Click(Sender: TObject);
begin
   if FrmOtherOut=nil then
     Application.CreateForm(tFrmOtherOut,FrmOtherOut);
   FrmOtherOut.Show;
end;

function TFrmMain.ReadReg(LsStr, cFStr, cType: String): String;
Var LsQry:TADOQuery;
begin
  LsQry:=TADOQuery.Create(Self);
  LsQry.Connection:=DataDm.ConDataSys;
  LsQry.Close;
  LsQry.SQL.Clear;
  LsQry.SQL.Add('Select * from Register Where cAcc = '''+LsStr+'''');
  LsQry.Open;
  if LsQry.RecordCount=0 Then
    begin
      LsQry.Append;
      LsQry.FieldByName('cAcc').AsString:=LsStr;
      LsQry.FieldByName(cFStr).AsString:=cType;
      LsQry.Post;
    end
  else
    begin
      if cType<>'' then
         begin
            LsQry.Edit;
            LsQry.FieldByName(cFStr).AsString:=cType;
            LsQry.Post;
         end;
    end;
  Result:=LsQry.FieldByName(cFStr).AsString;
  LsQry.Destroy;

end;

procedure TFrmMain.N7Click(Sender: TObject);
begin
  Application.CreateForm(TFrmReg,FrmReg);
  FrmReg.ShowModal;
  FrmReg.Free;
  FrmReg:=nil;
end;

procedure TFrmMain.C4Click(Sender: TObject);
begin
   if FrmTransVouch=nil then
     Application.CreateForm(tFrmTransVouch,FrmTransVouch);
   FrmTransVouch.Show;
end;

procedure TFrmMain.N12Click(Sender: TObject);
begin
  Application.CreateForm(TFrmBarAuto,FrmBarAuto);
  FrmBarAuto.ShowModal;
  FrmBarAuto.Free;
  FrmBarAuto:=nil;
end;

procedure TFrmMain.B5Click(Sender: TObject);
begin
  if FrmBundle=nil then
    Application.CreateForm(TFrmBundle,FrmBundle);
  FrmBundle.Show;  
end;

procedure TFrmMain.C5Click(Sender: TObject);
begin
  if FrmBox=nil then
    Application.CreateForm(TFrmBox,FrmBox);
  FrmBox.Show;
end;

end.

⌨️ 快捷键说明

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