📄 frmmainp.~pas
字号:
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 + -