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