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

📄 movmerce.pas

📁 基于OOP设计的一套较好的ERP系统
💻 PAS
📖 第 1 页 / 共 3 页
字号:
unit movMerce;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ActnList, ToolWin, ComCtrls, Mask, ToolEdit, CurrEdit, StdCtrls, ExtCtrls,
  dbGrids, Db, DBTables, RxLookup;

type
  TMovMerce_form = class(TForm)
    ToolBar1: TToolBar;
    ActionList1: TActionList;
    Chiudi: TAction;
    ToolButton1: TToolButton;
    Panel1: TPanel;
    editEtichetta: TEdit;
    Label1: TLabel;
    editDescrizione: TEdit;
    Label2: TLabel;
    editFornitore: TEdit;
    Label3: TLabel;
    Label4: TLabel;
    editInterno: TEdit;
    editQta: TRxCalcEdit;
    Label5: TLabel;
    Carico: TAction;
    Scarico: TAction;
    ToolButton2: TToolButton;
    ToolButton3: TToolButton;
    ToolButton4: TToolButton;
    Arrivo: TAction;
    Partenza: TAction;
    ToolButton5: TToolButton;
    Articoli: TAction;
    ToolButton6: TToolButton;
    TTMovMerce: TTable;
    TTMovMerceId: TAutoIncField;
    TTMovMerceOperatore: TStringField;
    TTMovMerceData: TDateField;
    TTMovMerceArticoloetichetta: TStringField;
    TTMovMerceQta: TFloatField;
    TTMovMerceTipo: TStringField;
    TTMovMerceDeposito: TStringField;
    TTMovMerceIdGiornale: TStringField;
    Pulisci: TAction;
    ToolButton7: TToolButton;
    StatusBar: TStatusBar;
    Inventario: TAction;
    ToolButton8: TToolButton;
    depositoCombo: TRxDBLookupCombo;
    Label6: TLabel;
    dsDepositi: TDataSource;
    MaxDoc: TQuery;
    MaxScontr: TQuery;
    MaxResi: TQuery;
    MaxMovMerce: TQuery;
    MaxDocMassimo: TIntegerField;
    MaxScontrMassimo: TFloatField;
    MaxResiMassimo: TIntegerField;
    MaxMovMerceMassimo: TIntegerField;
    procedure ChiudiExecute(Sender: TObject);
    procedure ArticoliExecute(Sender: TObject);
    procedure ScaricoExecute(Sender: TObject);
    procedure CaricoExecute(Sender: TObject);
    procedure ArrivoExecute(Sender: TObject);
    procedure PartenzaExecute(Sender: TObject);
    procedure editEtichettaExit(Sender: TObject);
    procedure editInternoExit(Sender: TObject);
    procedure editInternoKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure editFornitoreKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure editFornitoreExit(Sender: TObject);
    procedure editEtichettaKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure PulisciExecute(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure InventarioExecute(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure depositoComboChange(Sender: TObject);
  private
    { Private declarations }
  public
    procedure PulisciCampi;
    procedure CercaEtichetta;
    procedure Messaggio(mess: String);
    { Public declarations }
  end;

var
  MovMerce_form: TMovMerce_form;

implementation

uses main, rica_art_u_fornit, u_griglia_varianti;

{$R *.DFM}

procedure TMovMerce_form.ChiudiExecute(Sender: TObject);
begin
 Close ;
end;

procedure TMovMerce_form.ArticoliExecute(Sender: TObject);
begin
     Ricerca_articoli.GrigliaArticoli.Options := [dgTitles,dgIndicator,dgColumnResize,dgColLines,dgRowLines,dgTabs,dgRowSelect,dgConfirmDelete,dgCancelOnExit] ;
     Ricerca_Articoli.Qarticoli.Locate('Articolo etichetta',editEtichetta.text,[]) ;
     Ricerca_articoli.showModal ;
     If Ricerca_Articoli.ModalResult = mrOk then
        editEtichetta.text := Ricerca_Articoli.QarticoliArticoloetichetta.asString ;
      Ricerca_Articoli.Close ;
     cercaEtichetta ;
     editQta.SetFocus ;
end;

procedure TMovMerce_form.ScaricoExecute(Sender: TObject);
var art : Ttable ;
begin
 if editEtichetta.Text = '' then
  begin
   ShowMessage('Inserire articolo.') ;
   exit ;
  end ;

 Art := TTable.Create(nil) ;
 Art.DatabaseName := 'euro2000' ;
 Art.TableName := 'articoli.db' ;
 Art.Open ;

 if Main_form.TTArtbase.FindKey([editEtichetta.text]) then
  if Main_form.TTArticoli.FindKey([Main_form.TTArtbaseArticoloInterno.asString]) then
   begin
     if (Main_form.TTArticoliDistintaBase.AsBoolean) and (Main_form.TTArticoliModalitaDistintaBase.AsString = 'S') then
       begin
         Main_form.TTDistinta.First ;
         while not Main_Form.TTDistinta.Eof do
           begin
             try
               TTmovMerce.insert ;
               TTmovMerceOperatore.AsString := Main_form.TTconfigOperatore.asString ;
               TTmovMerceData.AsDateTime := Now ;
               TTMovMerceQta.AsFloat := main_form.TTDistintaQta.AsFloat * editQta.Value ;
               if Art.FindKey([Main_form.TTDistintaComponente.asString]) then
                 TTmovMerceArticoloEtichetta.asString := Art.FieldByName('Articolo Etichetta').AsString ;
               TTmovMerceTipo.AsString := 'S' ;
               TTmovMerceDeposito.AsString := depositoCombo.Value ;
               TTmovMerceIdGiornale.asString := Main_form.LogI(TTmovMerce.TableName) ;
               TTmovMerce.post ;
               Main_form.LogM(TTmovMerceIdGiornale.asString,TTmovMerce.TableName) ;
             finally
                   if Main_form.GiacenzaDB.FindKey([TTMovMerceArticoloEtichetta.asString,TTmovMerceDeposito.asString]) then
                    begin
                      Main_form.GiacenzaDB.Edit ;
                      Main_form.GiacenzaDBQtaScarico.AsFloat := Main_form.GiacenzaDBQtaScarico.asFloat + TTmovMerceQta.AsFloat ;
                      Main_form.GiacenzaDB.Post ;
                    end
                   else
                    begin
                      Main_form.GiacenzaDB.Insert ;
                      Main_form.GiacenzaDBArticolo.AsString := TTMovMerceArticoloetichetta.asString ;
                      Main_form.GiacenzaDBDeposito.asString := TTMovMerceDeposito.asString ;
                      Main_form.GiacenzaDbQtaIniziale.asFloat := 0 ;
                      Main_form.GiacenzaDbQtaCarico.asFloat := 0 ;
                      Main_form.GiacenzaDBQtaScarico.AsFloat := TTMovMerceQta.AsFloat ;
                      Main_form.GiacenzaDbArticolointerno.asString := Art.FieldByName('Articolo').asString ;
                      Main_form.GiacenzaDB.Post ;
                    end ;
                   Messaggio(editEtichetta.text +': scaricato !') ;
             end ;

             Main_form.TTDistinta.Next ;
           end ;
       end
     else
       begin
         try
           TTmovMerce.insert ;
           TTmovMerceOperatore.AsString := Main_form.TTconfigOperatore.asString ;
           TTmovMerceData.AsDateTime := Now ;
           TTmovMerceArticoloEtichetta.asString := editEtichetta.Text ;
           TTMovMerceQta.AsFloat := editQta.Value ;
           TTmovMerceTipo.AsString := 'S' ;
           TTmovMerceDeposito.AsString := depositoCombo.Value ;
           TTmovMerceIdGiornale.asString := Main_form.LogI(TTmovMerce.TableName) ;
           TTmovMerce.post ;
           Main_form.LogM(TTmovMerceIdGiornale.asString,TTmovMerce.TableName) ;
         finally
               if Main_form.GiacenzaDB.FindKey([TTMovMerceArticoloEtichetta.asString,TTmovMerceDeposito.asString]) then
                begin
                  Main_form.GiacenzaDB.Edit ;
                  Main_form.GiacenzaDBQtaScarico.AsFloat := Main_form.GiacenzaDBQtaScarico.asFloat + TTmovMerceQta.AsFloat ;
                  Main_form.GiacenzaDB.Post ;
                end
               else
                begin
                  Main_form.GiacenzaDB.Insert ;
                  Main_form.GiacenzaDBArticolo.AsString := TTMovMerceArticoloetichetta.asString ;
                  Main_form.GiacenzaDBDeposito.asString := TTMovMerceDeposito.asString ;
                  Main_form.GiacenzaDbQtaIniziale.asFloat := 0 ;
                  Main_form.GiacenzaDbQtaCarico.asFloat := 0 ;
                  Main_form.GiacenzaDBQtaScarico.AsFloat := TTMovMerceQta.AsFloat ;
                  Main_form.GiacenzaDbArticolointerno.asString := Main_form.TTArtbaseArticoloInterno.asString ;
                  Main_form.GiacenzaDB.Post ;
                end ;
               Messaggio(editEtichetta.text +': scaricato !') ;
         end ;
       end ;
   end ;
 art.Close ;
 art.Free ;
 puliscicampi ;
end;

procedure TMovMerce_form.CaricoExecute(Sender: TObject);
var art : Ttable ;
begin
 if editEtichetta.Text = '' then
  begin
   ShowMessage('Inserire articolo.') ;
   exit ;
  end ;

 Art := TTable.Create(nil) ;
 Art.DatabaseName := 'euro2000' ;
 Art.TableName := 'articoli.db' ;
 Art.Open ;

 if Main_form.TTArtbase.FindKey([editEtichetta.text]) then
  if Main_form.TTArticoli.FindKey([Main_form.TTArtbaseArticoloInterno.asString]) then
   begin
     if (not Main_form.TTArticoliDistintaBase.AsBoolean) then
       begin
         try
           TTmovMerce.insert ;
           TTmovMerceOperatore.AsString := Main_form.TTconfigOperatore.asString ;
           TTmovMerceData.AsDateTime := Now ;
           TTmovMerceArticoloEtichetta.asString := editEtichetta.Text ;
           TTMovMerceQta.AsFloat := editQta.Value ;
           TTmovMerceTipo.AsString := 'C' ;
           TTmovMerceDeposito.AsString := depositoCombo.Value ;
           TTmovMerceIdGiornale.asString := Main_form.LogI(TTmovMerce.TableName) ;
           TTmovMerce.post ;
           Main_form.LogM(TTmovMerceIdGiornale.asString,TTmovMerce.TableName) ;
         finally
               if Main_form.GiacenzaDB.FindKey([TTMovMerceArticoloEtichetta.asString,TTmovMerceDeposito.asString]) then
                begin
                  Main_form.GiacenzaDB.Edit ;
                  Main_form.GiacenzaDBQtaCarico.AsFloat := Main_form.GiacenzaDBQtaCarico.asFloat + TTmovMerceQta.AsFloat ;
                  Main_form.GiacenzaDB.Post ;
                end
               else
                begin
                  Main_form.GiacenzaDB.Insert ;
                  Main_form.GiacenzaDBArticolo.AsString := TTMovMerceArticoloetichetta.asString ;
                  Main_form.GiacenzaDBDeposito.asString := TTMovMerceDeposito.asString ;
                  Main_form.GiacenzaDbQtaIniziale.asFloat := 0 ;
                  Main_form.GiacenzaDbQtaScarico.asFloat := 0 ;
                  Main_form.GiacenzaDBQtaCarico.AsFloat := TTMovMerceQta.AsFloat ;
                  Main_form.GiacenzaDbArticolointerno.asString := Main_form.TTArtbaseArticoloInterno.asString ;
                  Main_form.GiacenzaDB.Post ;
                end ;
            Messaggio(editEtichetta.text +': Caricato !') ;
         end ;
       end
     else
       begin
            // DISTINTA BASE
          if main_form.TTArticoliModalitaDistintaBase.AsString = 'G' then
            begin
                  // CARICO DISTINTA BASE CON GIACENZA
               try
                 TTmovMerce.insert ;
                 TTmovMerceOperatore.AsString := Main_form.TTconfigOperatore.asString ;
                 TTmovMerceData.AsDateTime := Now ;
                 TTmovMerceArticoloEtichetta.asString := editEtichetta.Text ;
                 TTMovMerceQta.AsFloat := editQta.Value ;
                 TTmovMerceTipo.AsString := 'C' ;
                 TTmovMerceDeposito.AsString := depositoCombo.Value ;
                 TTmovMerceIdGiornale.asString := Main_form.LogI(TTmovMerce.TableName) ;
                 TTmovMerce.post ;
                 Main_form.LogM(TTmovMerceIdGiornale.asString,TTmovMerce.TableName) ;
               finally
                     if Main_form.GiacenzaDB.FindKey([TTMovMerceArticoloEtichetta.asString,TTmovMerceDeposito.asString]) then
                      begin
                        Main_form.GiacenzaDB.Edit ;
                        Main_form.GiacenzaDBQtaCarico.AsFloat := Main_form.GiacenzaDBQtaCarico.asFloat + TTmovMerceQta.AsFloat ;
                        Main_form.GiacenzaDB.Post ;
                      end
                     else
                      begin
                        Main_form.GiacenzaDB.Insert ;
                        Main_form.GiacenzaDBArticolo.AsString := TTMovMerceArticoloetichetta.asString ;
                        Main_form.GiacenzaDBDeposito.asString := TTMovMerceDeposito.asString ;
                        Main_form.GiacenzaDbQtaIniziale.asFloat := 0 ;
                        Main_form.GiacenzaDbQtaScarico.asFloat := 0 ;
                        Main_form.GiacenzaDBQtaCarico.AsFloat := TTMovMerceQta.AsFloat ;
                        Main_form.GiacenzaDbArticolointerno.asString := Main_form.TTArtbaseArticoloInterno.asString ;
                        Main_form.GiacenzaDB.Post ;
                      end ;
                  Messaggio(editEtichetta.text +': Caricato !') ;
               end ;

               main_form.TTDistinta.First ;
               while not main_form.TTDistinta.Eof do
                 begin
                   try

⌨️ 快捷键说明

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