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

📄 salesm_unit.~pas

📁 餐营的数据核算,模拟入库,出库,库存.对餐营的流程详细叙述
💻 ~PAS
字号:
unit SALESM_Unit;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Grids, DBGridEh, StdCtrls, Buttons, ToolWin, ComCtrls, DB, ADODB,
  ExtCtrls,dbgridehimpexp;

type


  TSALESM_Form = class(TForm)

    CoolBar1: TCoolBar;
    ScrollBox3: TScrollBox;
    BitBtn3: TBitBtn;
    BitBtn5: TBitBtn;
    BitBtn10: TBitBtn;
    BitBtn6: TBitBtn;
    DBGridEh1: TDBGridEh;
    BitBtn1: TBitBtn;
    HZADOQ: TADOQuery;
    INSADOQ: TADOQuery;
    Panel1: TPanel;
    Label1: TLabel;
    BitBtn2: TBitBtn;
    Label2: TLabel;
    BitBtn7: TBitBtn;
    BitBtn4: TBitBtn;
    DBGridEh2: TDBGridEh;
    BitBtn8: TBitBtn;
    Label3: TLabel;
    DATACS_ADOQ: TADOQuery;
    CX_ADOQ: TADOQuery;
    DBGridEh3: TDBGridEh;
    Button1: TButton;
    Button2: TButton;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormDestroy(Sender: TObject);
    procedure BitBtn10Click(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure BitBtn3Click(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure BitBtn5Click(Sender: TObject);
    procedure BitBtn6Click(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
    procedure BitBtn7Click(Sender: TObject);
    procedure BitBtn4Click(Sender: TObject);
    procedure BitBtn8Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
     function ExportToExcel(Grid:TDBGridEh):Boolean;
    { Private declarations }
  public

    LSNO:integer;//流水号
    { Public declarations }
  end;

var
  SALESM_Form: TSALESM_Form;

implementation

uses DMUnit, U_CheckRights, MainUnit, JSZTJ_Unit, BEGSTOCK_Unit, RPTUnit,
  zf_Unit, csUnit;

{$R *.dfm}

procedure TSALESM_Form.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
Action:=cafree;
end;

procedure TSALESM_Form.FormDestroy(Sender: TObject);
begin
SALESM_Form:=nil;
end;

procedure TSALESM_Form.BitBtn10Click(Sender: TObject);
begin
Close;
end;

procedure TSALESM_Form.BitBtn1Click(Sender: TObject);

begin
  if Application.FindComponent('JSZTJ_FORM')<>NIL Then
    JSZTJ_FORM.Show
  Else
    JSZTJ_FORM:=TJSZTJ_FORM.Create(Application);
    JSZTJ_FORM.Show;

end;

procedure TSALESM_Form.FormCreate(Sender: TObject);
begin
  with DM.SALE_ADOQ do
  begin
    Close;
    SQL.Clear;
    SQL.Add('SELECT Top 100 * FROM SALE');
    Open;
  end;
end;

procedure TSALESM_Form.BitBtn3Click(Sender: TObject);
var
  CARNO:String; //车号
  HZ: string; //汇总编号
begin
    HZ:= InputBox('请输入汇总编号', '编号', '');
  if Trim(HZ)='' Then
    begin
      Showmessage('汇总编号不能为空');
      Exit;
    end;
  Try
    if DM.ADOC.InTransaction then DM.ADOC.RollbackTrans;
    DM.ADOC.BeginTrans;
      with HZADOQ do
      begin
      Close;
      SQL.Clear;
      SQL.Add('SELECT S.ITEM_CARNO,S.ITEM_BZ,S.ITEM_NO,I.ITEM_NAME,U.NUIT_NAME,SO.SORTNAME ,ITEM_NUM=SUM(I.ITEM_NUM*S.ITEM_NUM) ');
      SQL.Add('FROM SALE S LEFT JOIN LCITEM_ITEM I ON I.ITEM_FBS=S.ITEM_NO LEFT JOIN ITEM_UNIT U ON ');
      SQL.Add('U.NUIT_ID=I.ITEM_UNIT LEFT JOIN ITEM_SORT SO ON SO.SORTID=I.ITEM_SORT ');
      SQL.Add('GROUP BY I.ITEM_NAME,U.NUIT_NAME,SO.SORTNAME,S.ITEM_CARNO,S.ITEM_BZ,S.ITEM_NO ');
      Open;
      end;
       HZADOQ.First;
       while not HZADOQ.Eof do
       begin
         with INSADOQ do
         begin
         Close;
         SQl.Clear;
         SQL.Add('INSERT INTO LCSALE_HZ(SALE_CARNO,SALE_BZ,SALE_HZ,SALE_ITEMNO,SALE_ITEMNAME,SALE_UNIT,SALE_NUM,SALE_SORT)VALUES(:SALE_CARNO,:SALE_BZ, ');
         SQL.Add(':SALE_HZ,:SALE_ITEMNO,:SALE_ITEMNAME,:SALE_UNIT,:SALE_NUM,:SALE_SORT)');
         INSADOQ.Parameters.ParamByName('SALE_CARNO').Value:=HZADOQ.FieldByName('ITEM_CARNO').AsString;
         INSADOQ.Parameters.ParamByName('SALE_BZ').Value:=HZADOQ.FieldByName('ITEM_BZ').AsString;
         INSADOQ.Parameters.ParamByName('SALE_HZ').Value:=HZ;
         INSADOQ.Parameters.ParamByName('SALE_ITEMNO').Value:=HZADOQ.FieldByName('ITEM_NO').AsString;
         INSADOQ.Parameters.ParamByName('SALE_ITEMNAME').Value:=HZADOQ.FieldByName('ITEM_NAME').AsString;
         INSADOQ.Parameters.ParamByName('SALE_UNIT').Value:=HZADOQ.FieldByName('NUIT_NAME').AsString;
         INSADOQ.Parameters.ParamByName('SALE_NUM').Value:=HZADOQ.FieldByName('ITEM_NUM').AsFloat;
         INSADOQ.Parameters.ParamByName('SALE_SORT').Value:=HZADOQ.FieldByName('SORTNAME').AsString;

         INSADOQ.ExecSQL;
         end;
        HZADOQ.Next;
       end;

    DM.ADOC.CommitTrans;
    showmessage('销售单单品汇总完毕');
  Except
    DM.ADOC.RollbackTrans;
  end;
end;

procedure TSALESM_Form.FormShow(Sender: TObject);
begin
  BitBtn6.Enabled:=CheckRights('销售管理单','打印');
  BitBtn5.Enabled:=CheckRights('销售管理单','查找');
  BitBtn3.Enabled:=CheckRights('销售管理单','汇总');
  BitBtn1.Enabled:=CheckRights('销售管理单','采集');
  BitBtn8.Enabled:=CheckRights('销售管理单','传输');
  BitBtn4.Enabled:=CheckRights('销售管理单','导出');
  BitBtn2.Enabled:=CheckRights('销售管理单','作废');
end;
procedure TSALESM_Form.BitBtn5Click(Sender: TObject);
begin
  if Application.FindComponent('BEGSTOCK_Form')<>nil then
    BEGSTOCK_Form.Show
  else
  begin
    BEGSTOCK_Form:=TBEGSTOCK_Form.Create(Application);
    BEGSTOCK_Form.Show;
  end;
end;

procedure TSALESM_Form.BitBtn6Click(Sender: TObject);
begin
  RPTDM.SALE_Rpt.LoadFromFile(ExtractFilePath(ParamStr(0)) +   'RPT/销售.frf');
  RPTDM.SALE_Rpt.ShowReport;
end;

procedure TSALESM_Form.BitBtn2Click(Sender: TObject);
begin
  LSNO:=DM.SALE_ADOQ.FieldByName('SALENO').AsInteger;
  if Application.FindComponent('ZF_Form')<>nil then
    ZF_Form.Show
  else
  begin
    ZF_Form:=TZF_Form.Create(Application);
    ZF_Form.Show;
  end;
end;

procedure TSALESM_Form.BitBtn7Click(Sender: TObject);
begin
  with DM.SALE_ADOQ do
  begin
    Close;
    SQL.Clear;
    SQL.Add('SELECT * FROM SALE WHERE 2>1 ');
    open;
  end;
end;

procedure TSALESM_Form.BitBtn4Click(Sender: TObject);
begin
 ExportToExcel(dbgrideh2);
end;

function TSALESM_Form.ExportToExcel(Grid: TDBGridEh): Boolean;
const
  Filter='Excel文件(*.xls)|*.xls';
  var
  SaveDiaLog:TSaveDialog;
  fileName:String;
begin
  Result:=false;
  if Grid=nil then exit;
  if Grid.DataSource=nil then exit;
  if Grid.DataSource.DataSet=nil then exit;
  if Not Grid.DataSource.DataSet.Active then exit;
  if Grid.DataSource.DataSet.RecordCount<=0 then exit;

  SaveDiaLog:=TSaveDialog.Create(nil);
  SaveDiaLog.Options:=SaveDiaLog.Options+[ofOverwritePrompt];
  try
    try
      SaveDiaLog.Filter:=Filter;
      if SaveDiaLog.Execute then
      begin
        fileName:=SaveDiaLog.FileName;
        if UpperCase(ExtractFileExt(fileName))<>'.XLS' then
          fileName:=fileName+'.xls';
      //  SaveDBGridEhToExportFile(TDBGridEhExportAsHTML,Grid,FileName,true);
        SaveDBGridEhToExportFile(TDBGridEhExportAsXLS,Grid,FileName,true);
        Application.MessageBox('文件导出成功!','提示',MB_OK+MB_IconInformation);
       // SetOtherAction(GetParent(Grid.Handle).Name,daExcel,'');
        //postmessage(Application.MainForm.Handle,WM_LOG,integer(@LogInfo),0);
        result:=true;
      end;
    except
      Raise Exception.Create('文件导出失败:'+Exception(ExceptObject).Message);
    end;
  finally
    SaveDialog.Free;
  end;
end;

procedure TSALESM_Form.BitBtn8Click(Sender: TObject);
begin
 DM.ADOCo.Connected:=false;
 DM.ADOCo.ConnectionString:='';
 if MainForm.DATACS='' then
    begin
      ShowMessage('请先配置服务器!');
      Exit;
    end;
 if Application.MessageBox('是否确认传输该收银机数据?', '提示',
     MB_ICONQUESTION + MB_YESNO + MB_DEFBUTTON2) = IDYES then
      DM.ADOCo.ConnectionString:=MainForm.DATACS;
      DM.ADOCo.Connected:=True;
      DATACS_ADOQ.Connection:=DM.ADOCo;
      with DATACS_ADOQ do
      begin
        Close;
        SQL.Clear;
        SQL.Add('SELECT TOP 10 * FROM SALE');
        Open;
      end;
        DM.SALE_ADOQ.First;
      while not DM.SALE_ADOQ.Eof do
      begin
      with DATACS_ADOQ do
      begin
        Close;
        SQL.Clear;
        SQL.Add('SELECT * FROM SALE WHERE ITEM_CARNO='''+DM.SALE_ADOQ.FieldByname('ITEM_CARNO').AsString+''' AND ITEM_BZ='''+DM.SALE_ADOQ.FieldByname('ITEM_BZ').AsString+''' AND ITEM_DATE='''+DM.SALE_ADOQ.FieldByname('ITEM_DATE').AsString+''' AND ITEM_LSNO='''+DM.SALE_ADOQ.FieldBYNAME('ITEM_LSNO').AsString+''' AND ITEM_NO='''+DM.SALE_ADOQ.FieldBYNAME('ITEM_NO').AsString+'''');
        Open;
      end;
      if DATACS_ADOQ.RecordCount>0 then
      begin
        ShowMessage('该收银机销售数据已经传输,不能再次传输!');
        Exit;
      end ;
     { else
      begin
      Try
        csform:=Tcsform.Create(application);
        csform.Show;
        if DM.ADOC.InTransaction then DM.ADOC.RollbackTrans;
        DM.ADOC.BeginTrans;
        begin
        DATACS_ADOQ.Append;
        DATACS_ADOQ.FieldByName('ITEM_CARNO').AsString:=DM.SALE_ADOQ.FieldByName('ITEM_CARNO').AsString;
        DATACS_ADOQ.FieldByName('ITEM_BZ').AsString:=DM.SALE_ADOQ.FieldByName('ITEM_BZ').AsString;
        DATACS_ADOQ.FieldByName('ITEM_SJDM').AsString:=DM.SALE_ADOQ.FieldByName('ITEM_SJDM').AsString;
        DATACS_ADOQ.FieldByName('ITEM_CSJNO').AsString:=DM.SALE_ADOQ.FieldByName('ITEM_CSJNO').AsString;
        DATACS_ADOQ.FieldByName('ITEM_LSNO').AsString:=DM.SALE_ADOQ.FieldByName('ITEM_LSNO').AsString;
        DATACS_ADOQ.FieldByName('ITEM_JYNUM').ASinteger:=DM.SALE_ADOQ.FieldByName('ITEM_JYNUM').AsInteger;
        DATACS_ADOQ.FieldByName('ITEM_NO').AsString:=DM.SALE_ADOQ.FieldByName('ITEM_NO').AsString;
        DATACS_ADOQ.FieldByName('ITEM_PRICE').AsCurrency:=DM.SALE_ADOQ.FieldByName('ITEM_PRICE').AsCurrency;
        DATACS_ADOQ.FieldByName('ITEM_NUM').AsInteger:=DM.SALE_ADOQ.FieldByName('ITEM_NUM').AsInteger;
        DATACS_ADOQ.FieldByName('ITEM_MON').AsCurrency:=DM.SALE_ADOQ.FieldByName('ITEM_MON').AsCurrency;
        DATACS_ADOQ.FieldByName('ITEM_TIME').AsDateTime:=DM.SALE_ADOQ.FieldByName('ITEM_TIME').AsDateTime;
        DATACS_ADOQ.FieldByName('ITEM_MEN').AsString:=DM.SALE_ADOQ.FieldByName('ITEM_MEN').AsString;
        DATACS_ADOQ.FieldByName('ITEM_MARKS').AsString:=DM.SALE_ADOQ.FieldByName('ITEM_MARKS').AsString;
        DATACS_ADOQ.FieldByName('ITEM_BS').AsString:=DM.SALE_ADOQ.FieldByName('ITEM_BS').AsString;
        DATACS_ADOQ.FieldByName('ITEM_DATE').AsDateTime:=DM.SALE_ADOQ.FieldByName('ITEM_DATE').AsDateTime;
        DATACS_ADOQ.Post;
      end;
      DM.ADOC.CommitTrans;
      csform.Close;
 Except
   DM.ADOC.RollbackTrans;
 end;
 end; }
 DM.SALE_ADOQ.Next;
 end;
  ShowMessage('数据传输成功!');
end;

procedure TSALESM_Form.Button1Click(Sender: TObject);
begin
DBGridEh3.SendToBack;
end;

procedure TSALESM_Form.Button2Click(Sender: TObject);
begin
DBGridEh3.BringToFront;
end;

end.

⌨️ 快捷键说明

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