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

📄 frmoutp.~pas

📁 二次开发模块 一、条形码的批量生成
💻 ~PAS
📖 第 1 页 / 共 2 页
字号:
unit FrmOutP;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, dxExEdtr, DB, ADODB, Buttons, DBCtrls, StdCtrls, dxDBTLCl,
  dxGrClms, dxDBCtrl, dxDBGrid, dxTL, dxCntner, ExtCtrls, dfsSplitter,
  ComCtrls, xmldom, XMLIntf, msxmldom, XMLDoc;

type
  TFrmOut = class(TForm)
    Bevel1: TBevel;
    Panel1: TPanel;
    Panel2: TPanel;
    GroupBox1: TGroupBox;
    RadioButton1: TRadioButton;
    RadioButton2: TRadioButton;
    btnText: TButton;
    CheckBox1: TCheckBox;
    CheckBox2: TCheckBox;
    GroupBox2: TGroupBox;
    Date1: TDateTimePicker;
    btnCheck: TButton;
    btnXML: TButton;
    Panel3: TPanel;
    dfsSplitter1: TdfsSplitter;
    dxDBGrid1: TdxDBGrid;
    dxDBGrid1cc: TdxDBGridColumn;
    dxDBGrid1cOrderCode: TdxDBGridMaskColumn;
    dxDBGrid1cVenAbbName: TdxDBGridMaskColumn;
    dxDBGrid1cDeptName: TdxDBGridMaskColumn;
    dxDBGrid1cPersonName: TdxDBGridColumn;
    dxDBGrid1cWhName: TdxDBGridMaskColumn;
    dxDBGrid1cError: TdxDBGridColumn;
    dxDBGrid1cMaker: TdxDBGridMaskColumn;
    Panel4: TPanel;
    Label1: TLabel;
    btnOutHead: TSpeedButton;
    sbDelete: TSpeedButton;
    DBNavigator1: TDBNavigator;
    BtnSave: TBitBtn;
    Panel5: TPanel;
    Label2: TLabel;
    btnOutBody: TSpeedButton;
    SpeedButton1: TSpeedButton;
    Label3: TLabel;
    DBNavigator2: TDBNavigator;
    QryOut: TADOQuery;
    dsQryOut: TDataSource;
    QryOutList: TADOQuery;
    QryOutListcc: TStringField;
    QryOutListID: TAutoIncField;
    QryOutListPCID: TStringField;
    QryOutListiPurID: TIntegerField;
    QryOutListcInvCode: TStringField;
    QryOutListcInvName: TStringField;
    QryOutListcInvStd: TStringField;
    QryOutListcBarCode: TStringField;
    QryOutListiQuantity: TFloatField;
    QryOutListiUnitCost: TFloatField;
    QryOutListiPrice: TBCDField;
    QryOutListiPosID: TIntegerField;
    QryOutListcError: TStringField;
    QryOutListiArrsId: TIntegerField;
    dsQryOutList: TDataSource;
    LsQryPop: TADOQuery;
    QryCheckPo: TADOQuery;
    QryCheckType: TADOQuery;
    SaveDialog1: TSaveDialog;
    QryOutid: TAutoIncField;
    QryOutcMaker: TStringField;
    QryOutPCID: TStringField;
    QryOutcVouchType: TStringField;
    QryOutcOrderCode: TStringField;
    QryOutipurorderid: TIntegerField;
    QryOutcType: TStringField;
    QryOutcVenCode: TStringField;
    QryOutcVenAbbName: TStringField;
    QryOutcDept: TStringField;
    QryOutcDeptName: TStringField;
    QryOutcPerson: TStringField;
    QryOutcPersonName: TStringField;
    QryOutcWhCode: TStringField;
    QryOutcWhName: TStringField;
    QryOutcPTCode: TStringField;
    QryOutcRdCode: TStringField;
    QryOutcMemo: TStringField;
    QryOutipurarriveid: TIntegerField;
    QryOutcCusCode: TStringField;
    QryOutcCusAbbName: TStringField;
    QryOutcPTName: TStringField;
    QryOutcSTCode: TStringField;
    QryOutcSTName: TStringField;
    QryOutDLID: TIntegerField;
    QryOutListcVouchType: TStringField;
    QryOutListiDLsID: TIntegerField;
    QryOutcc: TStringField;
    QryOutcError: TStringField;
    dxDBGrid2: TdxDBGrid;
    dxDBGrid2cc: TdxDBGridColumn;
    dxDBGrid2cBarCode: TdxDBGridMaskColumn;
    dxDBGrid2cInvCode: TdxDBGridMaskColumn;
    dxDBGrid2cInvName: TdxDBGridMaskColumn;
    dxDBGrid2cFree1: TdxDBGridColumn;
    dxDBGrid2cFree2: TdxDBGridColumn;
    dxDBGrid2cInvStd: TdxDBGridMaskColumn;
    dxDBGrid2iQuantity: TdxDBGridMaskColumn;
    dxDBGrid2iUnitCost: TdxDBGridMaskColumn;
    dxDBGrid2iPrice: TdxDBGridCurrencyColumn;
    dxDBGrid2cError: TdxDBGridColumn;
    QryOutListcFree1: TStringField;
    QryOutListcFree2: TStringField;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure btnTextClick(Sender: TObject);
    procedure FindList;
    procedure FormShow(Sender: TObject);
    procedure btnOutHeadClick(Sender: TObject);
    procedure btnOutBodyClick(Sender: TObject);
    procedure btnCheckClick(Sender: TObject);
    procedure LsQryPopBeforeEdit(DataSet: TDataSet);
    procedure CheckDL;
    procedure UpdateDL;    
    Procedure RefData;
    procedure QryOutBeforeEdit(DataSet: TDataSet);
    procedure QryOutListBeforeEdit(DataSet: TDataSet);
    procedure QryOutAfterScroll(DataSet: TDataSet);
    procedure QryOutBeforePost(DataSet: TDataSet);
    procedure QryOutAfterPost(DataSet: TDataSet);
    procedure BtnSaveClick(Sender: TObject);
    procedure sbDeleteClick(Sender: TObject);
    procedure SpeedButton1Click(Sender: TObject);
    procedure QryOutListAfterScroll(DataSet: TDataSet);
    procedure QryOutListCalcFields(DataSet: TDataSet);
    procedure QryOutCalcFields(DataSet: TDataSet);
    procedure btnXMLClick(Sender: TObject);
    procedure dxDBGrid2CustomDrawFooter(Sender: TObject; ACanvas: TCanvas;
      ARect: TRect; ANode: TdxTreeListNode; AColumn: TdxTreeListColumn;
      var AText: String; var AColor: TColor; AFont: TFont;
      var AAlignment: TAlignment; var ADone: Boolean);
    Procedure InsertBoxBarCode;
    Procedure UpdateSetBarCode;
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  FrmOut: TFrmOut;

implementation

uses DataDmP, SUFunctionP, FrmMainP, FrmPoPInvP, FrmPoPPoP;

{$R *.dfm}

procedure TFrmOut.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  DataDm.DeleteTabe('Szb_PurIn','32');
  DataDm.DeleteTabe('Szb_PurInList','32');
  Action:=caFree;
  FrmOut:=nil;
end;

procedure TFrmOut.btnTextClick(Sender: TObject);
begin
  if RadioButton1.Checked  then
     FrmMain.ReadTxtFile('SO.TXT','1','32',QryOut);
  if RadioButton2.Checked  then
     FrmMain.ReadTxtFile('SO.TXT','0','32',QryOut);
  InsertBoxBarCode;
  UpdateSetBarCode;
  FindList;
  btnCheck.Enabled:=True;
  btnCheck.Click;
end;

procedure TFrmOut.FindList;
Var ii:Integer;
begin
  QryOutList.Close;
  if QryOut.RecordCount=0 then Exit;
  ii:=QryOut.FieldByName('ID').AsInteger;
  QryOutList.SQL.Clear;
  QryOutList.SQL.Add('select * from Szb_PurInList');
  QryOutList.SQL.Add('Where (PCID='''+FrmMain.PCID+''')');
  QryOutList.SQL.Add(' And  (iPurID='+IntToStr(II)+')');
  QryOutList.Open;
  Label1.Caption:='记录:'+IntToStr(QryOut.RecNo)+'/'+IntToStr(QryOut.RecordCount);
  Label2.Caption:='记录:'+IntToStr(QryOutList.RecNo)+'/'+IntToStr(QryOutList.RecordCount);

end;

procedure TFrmOut.FormShow(Sender: TObject);
begin
  CheckBox2.Checked:=False;
  date1.Date:=Date();
  SUFunction.SetGridColor(dxDBGrid1);
  SUFunction.SetGridColor(dxDBGrid2);
end;

procedure TFrmOut.btnOutHeadClick(Sender: TObject);
begin
  SUFunction.DBGridSaveToFile(dxDBGrid1,'销售出库单.xls');
end;

procedure TFrmOut.btnOutBodyClick(Sender: TObject);
begin
  SUFunction.DBGridSaveToFile(dxDBGrid2,'销售出库单表体.xls');
end;

procedure TFrmOut.btnCheckClick(Sender: TObject);
begin
  btnXML.Enabled:=False;
  FrmMain.UpdateNull(0,'32');
  FrmMain.UpdateInv('32');  
  FrmMain.CheckInv('32');
  FrmMain.UpdateInv('32');
  CheckDL;
  RefData;
  FrmMain.SumNumber('32',Label3);
  btnXML.Enabled:=True;
  FindList;    
end;

procedure TFrmOut.LsQryPopBeforeEdit(DataSet: TDataSet);
begin
  Abort;
end;

procedure TFrmOut.CheckDL;
Var LsQry:TADOQuery;
begin
  QryCheckPo.Close;
  QryCheckPo.SQL.Clear;

  QryCheckPo.SQL.Add('SELECT  dbo.Szb_PurIn.ID,dbo.Szb_PurIn.cOrderCode');
  QryCheckPo.SQL.Add('FROM dbo.Szb_PurIn LEFT OUTER JOIN');
  QryCheckPo.SQL.Add('      dbo.DispatchList ON dbo.Szb_PurIn.cOrderCode = dbo.DispatchList.cDLCode');
  QryCheckPo.SQL.Add('WHERE (dbo.DispatchList.cDLCode IS NULL)');
  QryCheckPo.SQL.Add(' And  (PCID='''+FrmMain.PCID+''')');
  QryCheckPo.SQL.Add(' And  (Szb_PurIn.cVouchType=''32'')');
//  QryCheckPo.SQL.SaveToFile('c:\1.txt');
  QryCheckPo.Open;
  if QryCheckPo.RecordCount>0 then
    begin
       Application.MessageBox(Pchar('共有:'+inttostr(QryCheckPo.RecordCount)+'张单据的找不到对应的销售发货单.'),'信息',MB_OK+ MB_ICONINFORMATION);
       Application.CreateForm(TFrmPoPPo,FrmPoPPo);
       FrmPoPPo.DataSource1.DataSet:=QryCheckPo;
       FrmPoPPo.dxDBGrid1cOrderCode.Caption:='销售发货单';
       FrmPoPPo.ShowModal;
       FrmPoPPo.Free;
       FrmPoPPo:=nil;
    end;
 UpdateDL;

end;

procedure TFrmOut.RefData;
Var ii:Integer;
begin
 II:=QryOut.RecNo;
 CheckBox1.Checked:=False;
 QryOut.Close;
 QryOut.Open;
 CheckBox1.Checked:=True;
 FindList;
end;

procedure TFrmOut.UpdateDL;
Var LsQry:TADOQuery;
begin
  LsQry:=TADOQuery.Create(Self);
  LsQry.Connection:=DataDm.AdoConUfsoft;
  LsQry.SQL.Add('Update Szb_PurIn set');
  LsQry.SQL.Add(' Szb_PurIn.cCusCode=Customer.cCusCode, Szb_PurIn.cCusAbbName=Customer.cCusAbbName, Szb_PurIn.cDept=DispatchList.cDepCode,');
  LsQry.SQL.Add('      Szb_PurIn.cDeptName=Department.cDepName, Szb_PurIn.cPerson=DispatchList.cPersonCode, Szb_PurIn.cPersonName=Person.cPersonName,');
  LsQry.SQL.Add('      Szb_PurIn.cSTCode=DispatchList.cSTCode,Szb_PurIn.cMemo=DispatchList.cMemo,');
  LsQry.SQL.Add('      Szb_PurIn.cSTName=SaleType.cSTName,Szb_PurIn.cRdCode=SaleType.cRdCode,Szb_PurIn.DLID=DispatchList.DLID');
  LsQry.SQL.Add('FROM DispatchList INNER JOIN');
  LsQry.SQL.Add('      SaleType ON DispatchList.cSTCode = SaleType.cSTCode INNER JOIN');
  LsQry.SQL.Add('      Customer ON DispatchList.cCusCode = Customer.cCusCode INNER JOIN');
  LsQry.SQL.Add('      Szb_PurIn ON');
  LsQry.SQL.Add('      DispatchList.cDLCode = Szb_PurIn.cOrderCode LEFT OUTER JOIN');
  LsQry.SQL.Add('      Department ON');
  LsQry.SQL.Add('      DispatchList.cDepCode = Department.cDepCode LEFT OUTER JOIN');
  LsQry.SQL.Add('      Person ON DispatchList.cPersonCode = Person.cPersonCode');
  LsQry.SQL.Add('Where  (Szb_PurIn.PCID='''+FrmMain.PCID+''')');
  LsQry.SQL.Add(' And   (Szb_PurIn.cVouchType=''32'')');
//  LsQry.SQL.SaveToFile('C:\1.TXT');
  LsQry.ExecSQL;

  LsQry.Close;
  LsQry.SQL.Clear;
  LsQry.SQL.Add('Update Szb_PurInList');
  LsQry.SQL.Add('set Szb_PurInList.iDLsID=DispatchLists.iDLsID,Szb_PurInList.iUnitCost=DispatchLists.iUnitPrice');
  LsQry.SQL.Add('FROM dbo.DispatchList INNER JOIN');
  LsQry.SQL.Add('      dbo.Szb_PurIn ON');
  LsQry.SQL.Add('      dbo.DispatchList.cDLCode = dbo.Szb_PurIn.cOrderCode INNER JOIN');

⌨️ 快捷键说明

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