📄 ana_articoli_u.pas
字号:
unit ana_articoli_u;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Mask, DBCtrls, ExtCtrls, DB, Grids, DBGrids, DBTables, ActnList,
ComCtrls, Menus, TeeProcs, TeEngine, Chart, DBChart, Series, TeeFunci,
Buttons, DBGridEh, RxCalc, ToolEdit, CurrEdit, RXDBCtrl, DBCGrids ;
type
TAna_articoli_form = class(TForm)
Panel1: TPanel;
DBNavigator1: TDBNavigator;
Chiudi_but: TButton;
duplica_but: TButton;
TTArticoliBufSource: TTable;
TTArticoliBufDest: TTable;
Ricerca_art: TButton;
Pagine_articolo: TPageControl;
Generale: TTabSheet;
Fornitori: TTabSheet;
GroupBox4: TGroupBox;
Label5: TLabel;
DBLookupComboBox1: TDBLookupComboBox;
Prezzi: TTabSheet;
Label34: TLabel;
Label36: TLabel;
Label37: TLabel;
Label35: TLabel;
Label38: TLabel;
DBEdit24: TDBEdit;
DBEdit25: TDBEdit;
Label39: TLabel;
Magazzino: TTabSheet;
alarmneg: TDBCheckBox;
alarm_sotto: TDBCheckBox;
gestriord: TDBCheckBox;
classeriordino: TDBComboBox;
Label31: TLabel;
consegna: TDBEdit;
Label21: TLabel;
Label30: TLabel;
mm: TDBEdit;
ss: TDBEdit;
Label29: TLabel;
Label20: TLabel;
mo: TDBEdit;
gestGiac: TDBCheckBox;
Label3: TLabel;
um: TDBEdit;
Label28: TLabel;
stagione: TDBLookupComboBox;
Varianti: TTabSheet;
GroupBox8: TGroupBox;
Label22: TLabel;
Label23: TLabel;
DBLookupComboBox7: TDBLookupComboBox;
DBLookupComboBox8: TDBLookupComboBox;
DBGrid3: TDBGrid;
Genera_varianti: TButton;
Scadenza: TTabSheet;
GroupBox7: TGroupBox;
Label27: TLabel;
Label26: TLabel;
Label24: TLabel;
Label25: TLabel;
DBEdit17: TDBEdit;
DBEdit16: TDBEdit;
DBEdit8: TDBEdit;
DBEdit15: TDBEdit;
DBCheckBox3: TDBCheckBox;
Label1: TLabel;
EditCodice: TDBEdit;
Label2: TLabel;
DBEdit2: TDBEdit;
Label41: TLabel;
DBEdit27: TDBEdit;
DBEdit5: TDBEdit;
Label6: TLabel;
Label4: TLabel;
DBEdit4: TDBEdit;
DBCheckBox9: TDBCheckBox;
GroupBox1: TGroupBox;
Label10: TLabel;
Label11: TLabel;
Label12: TLabel;
DBLookupComboBox2: TDBLookupComboBox;
DBLookupComboBox3: TDBLookupComboBox;
DBLookupComboBox4: TDBLookupComboBox;
GroupBox3: TGroupBox;
DBText1: TDBText;
Label18: TLabel;
Label17: TLabel;
Label19: TLabel;
DBText2: TDBText;
DBLookupComboBox6: TDBLookupComboBox;
GroupBox5: TGroupBox;
DBGrid5: TDBGrid;
Label44: TLabel;
Label45: TLabel;
Label46: TLabel;
DBEdit31: TDBEdit;
Label47: TLabel;
Label48: TLabel;
Label9: TLabel;
DBEdit34: TDBEdit;
Label49: TLabel;
DBEdit35: TDBEdit;
Label50: TLabel;
DBEdit36: TDBEdit;
Calcola: TButton;
ActionList1: TActionList;
cercatutto: TAction;
lista: TAction;
DBNavigator2: TDBNavigator;
Button3: TButton;
dep_pref_but: TButton;
Button1: TButton;
Button2: TButton;
Grafico: TAction;
Tabella: TAction;
Impostazioni: TAction;
TTGiacenza: TTable;
DSGiacenza: TDataSource;
TabSheet1: TTabSheet;
GroupBox6: TGroupBox;
DBCheckBox4: TDBCheckBox;
DBGrid2: TDBGrid;
GroupBox2: TGroupBox;
Label13: TLabel;
Label14: TLabel;
Label15: TLabel;
Label16: TLabel;
DBEdit1: TDBEdit;
DBEdit9: TDBEdit;
DBEdit10: TDBEdit;
DBLookupComboBox5: TDBLookupComboBox;
DBEdit26: TDBEdit;
TTGiacenzaArticolo: TStringField;
TTGiacenzaDeposito: TStringField;
TTGiacenzaQtainiziale: TFloatField;
TTGiacenzaQtacarico: TFloatField;
TTGiacenzaQtascarico: TFloatField;
TTGiacenzaDataultimoMovimento: TDateField;
TTGiacenzaGiacenza: TFloatField;
TTGiacenzaValoreAcquistoL: TCurrencyField;
TTGiacenzaValoreAcquistoE: TCurrencyField;
TTGiacenzaVenduto: TFloatField;
TTGiacenzaRimanenza: TFloatField;
TTGiacenzaArticolointerno: TStringField;
Situazione: TGroupBox;
DBGrid7: TDBGrid;
DBNavigator3: TDBNavigator;
Ricalcola_giacenze: TAction;
Tot_ini: TLabel;
Tot_car: TLabel;
Tot_scar: TLabel;
Tot_giac: TLabel;
Media_Venduto: TLabel;
Media_rimanenza: TLabel;
Tot_Valore_L: TLabel;
Tot_valore_E: TLabel;
TTGiacenzaPermanenza: TFloatField;
Media_Permanenza: TLabel;
DataSource1: TDataSource;
DBGridEh1: TDBGridEh;
DBGridEh2: TDBGridEh;
Label42: TLabel;
Tutti1: TButton;
Nessuno1: TButton;
Nessuno2: TButton;
tutti2: TButton;
Label7: TLabel;
Label32: TLabel;
Label8: TLabel;
Label33: TLabel;
DBCheckBox2: TDBCheckBox;
Pulisci: TButton;
CreaEtiVar: TButton;
CreaEti: TButton;
DBEdit29: TDBEdit;
Label69: TLabel;
SecPrincBtn: TButton;
distintabase: TDBCheckBox;
Listino_check: TButton;
Istat: TTabSheet;
GrigliaIstat: TDBGrid;
Label43: TLabel;
DBNavigator4: TDBNavigator;
Elenco: TTabSheet;
DBText5: TDBText;
DBText6: TDBText;
DBText7: TDBText;
Label70: TLabel;
Label71: TLabel;
Label72: TLabel;
Chiudi: TButton;
GridaListini: TDBCtrlGrid;
Label51: TLabel;
Label52: TLabel;
DBText3: TDBText;
DBText4: TDBText;
DBText8: TDBText;
DBText9: TDBText;
Label54: TLabel;
Label55: TLabel;
Label57: TLabel;
DBEdit7: TDBEdit;
DBCheckBox8: TDBCheckBox;
Ricarico_edit: TDBEdit;
DBEdit6: TDBEdit;
DBEdit18: TDBEdit;
DBEdit19: TDBEdit;
DBLookupComboBox11: TDBLookupComboBox;
RxCalculator: TRxCalculator;
Note: TTabSheet;
DBMemo1: TDBMemo;
Label58: TLabel;
Label59: TLabel;
DBText10: TDBText;
DBText11: TDBText;
DBCheckBox11: TDBCheckBox;
DBCheckBox12: TDBCheckBox;
AssociaBtn: TButton;
Storico: TTabSheet;
DBGrid4: TDBGrid;
Aiuto: TAction;
dsStoricoPrezzi: TDataSource;
FotoBtn: TButton;
uc: TDBEdit;
Label60: TLabel;
Label40: TLabel;
DBLookupComboBox10: TDBLookupComboBox;
TTGiacenzaIdGiornale: TStringField;
DBEdit21: TDBEdit;
Label61: TLabel;
Label62: TLabel;
DBEdit22: TDBEdit;
Distinta_Base: TTabSheet;
GroupBox9: TGroupBox;
DBCheckBox13: TDBCheckBox;
DBRadioGroup1: TDBRadioGroup;
DBNavigator5: TDBNavigator;
Griglia_Distinta: TDBGridEh;
Aggiorna_Prz_Distinta: TAction;
Button4: TButton;
peso: TDBEdit;
Label63: TLabel;
Prz_Consigliato: TTabSheet;
GroupBox10: TGroupBox;
Label64: TLabel;
Label66: TLabel;
Label65: TLabel;
Label67: TLabel;
DBGrid6: TDBGrid;
DBNavigator6: TDBNavigator;
QStoricoPrezzi: TQuery;
QStoricoPrezziSoggetto: TStringField;
QStoricoPrezziArticolo: TStringField;
QStoricoPrezziData: TDateField;
QStoricoPrezziCausale: TStringField;
QStoricoPrezziPrezzo: TCurrencyField;
QStoricoPrezziSconto: TFloatField;
QStoricoPrezziSconto2: TFloatField;
QStoricoPrezziSconto3: TFloatField;
QStoricoPrezziQta: TFloatField;
QStoricoPrezziValuta: TStringField;
QStoricoPrezziImporto: TCurrencyField;
QStoricoPrezziDenominazione: TStringField;
QStoricoPrezziDescr_causale: TStringField;
DBGridEh3: TDBGridEh;
DBEdit11: TDBEdit;
DBEdit12: TDBEdit;
DBEdit13: TDBEdit;
DBEdit14: TDBEdit;
DBEdit20: TDBEdit;
DBEdit23: TDBEdit;
DBEdit28: TDBEdit;
DBEdit30: TDBEdit;
DBEdit32: TDBEdit;
DBEdit33: TDBEdit;
DBEdit37: TDBEdit;
DBEdit38: TDBEdit;
DBEdit41: TDBEdit;
DBEdit42: TDBEdit;
DBEdit43: TDBEdit;
DBEdit44: TDBEdit;
DBEdit45: TDBEdit;
DBEdit3: TDBEdit;
DBEdit46: TDBEdit;
DBEdit47: TDBEdit;
DBEdit48: TDBEdit;
DBEdit49: TDBEdit;
Label53: TLabel;
Label56: TLabel;
Label68: TLabel;
Label73: TLabel;
procedure Chiudi_butClick(Sender: TObject);
procedure Genera_variantiClick(Sender: TObject);
procedure duplica_butClick(Sender: TObject);
procedure DBNavigator1BeforeAction(Sender: TObject;
Button: TNavigateBtn);
procedure Ricerca_artClick(Sender: TObject);
procedure CercatuttoExecute(Sender: TObject);
procedure ListaExecute(Sender: TObject);
procedure CalcolaClick(Sender: TObject);
procedure PrezziShow(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure dep_pref_butClick(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure GraficoExecute(Sender: TObject);
procedure TabellaExecute(Sender: TObject);
procedure TTGiacenzaCalcFields(DataSet: TDataSet);
procedure Ricalcola_giacenzeExecute(Sender: TObject);
procedure MagazzinoShow(Sender: TObject);
procedure MagazzinoHide(Sender: TObject);
procedure DSGiacenzaDataChange(Sender: TObject; Field: TField);
procedure DataSource1DataChange(Sender: TObject; Field: TField);
procedure Tutti1Click(Sender: TObject);
procedure Nessuno1Click(Sender: TObject);
procedure tutti2Click(Sender: TObject);
procedure Nessuno2Click(Sender: TObject);
procedure DBGridEh2Exit(Sender: TObject);
procedure DBGridEh1Exit(Sender: TObject);
procedure PulisciClick(Sender: TObject);
procedure CreaEtiClick(Sender: TObject);
procedure CreaEtiVarClick(Sender: TObject);
procedure SecPrincBtnClick(Sender: TObject);
procedure Listino_checkClick(Sender: TObject);
procedure CalcolatriceClick(Sender: TObject);
procedure GrigliaIstatEditButtonClick(Sender: TObject);
procedure EditCodiceKeyPress(Sender: TObject; var Key: Char);
procedure AssociaBtnClick(Sender: TObject);
procedure AiutoExecute(Sender: TObject);
procedure FotoBtnClick(Sender: TObject);
procedure TTGiacenzaAfterInsert(DataSet: TDataSet);
procedure TTGiacenzaAfterPost(DataSet: TDataSet);
procedure TTGiacenzaBeforeDelete(DataSet: TDataSet);
procedure Griglia_DistintaEditButtonClick(Sender: TObject);
procedure Aggiorna_Prz_DistintaExecute(Sender: TObject);
procedure StoricoShow(Sender: TObject);
procedure StoricoHide(Sender: TObject);
procedure QStoricoPrezziCalcFields(DataSet: TDataSet);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Ana_articoli_form: TAna_articoli_form;
implementation
uses ana_mod, rica_art_u_fornit, Ucerca, Uelenco, art_forn, Umenu, Doc_mod,
associa_U, aboutOS, uPhoto;
{$R *.DFM}
procedure TAna_articoli_form.Chiudi_butClick(Sender: TObject);
begin
If (EditCodice.DataSource.DataSet.State = dsEdit) or
(EditCodice.DataSource.DataSet.State = dsInsert) then
if MessageDlg('Attenzione, salvare le modifiche ?',mtConfirmation,[mbYes,mbNo],0) = mrYes then
EditCodice.DataSource.DataSet.Post
else
EditCodice.DataSource.Dataset.Cancel ;
release ;
end;
procedure TAna_articoli_form.Genera_variantiClick(Sender: TObject);
begin
ModuloDatiAnagrafiche.genera_varianti ;
end;
procedure TAna_articoli_form.duplica_butClick(Sender: TObject);
Type
Distinta = record
codice : string ;
qta : real ;
end ;
Var
num_nuovo : string ;
i, numnum : integer ;
artnuovo,art_old : string ;
distlist : array of Distinta ;
quantidist : integer ;
codice_ok : boolean ;
genera_cod_Num : string ;
begin
TTArticoliBufSource.Open ;
TTArticoliBufDest.Open ;
quantidist := ModuloDatiAnagrafiche.TTDistinta.RecordCount ;
If quantidist > 0 then
begin
// Creazione Array per distinta base
ModuloDatianagrafiche.TTDistinta.first ;
SetLength(distlist,quantidist);
i := 0 ;
While not ModuloDatiAnagrafiche.TTdistinta.eof do
begin
distList[i].codice := ModuloDatiAnagrafiche.TTdistintaComponente.asString ;
distlist[i].qta := ModuloDatiAnagrafiche.TTDistintaqta.Value ;
Inc(i) ;
ModuloDatiAnagrafiche.TTdistinta.Next ;
end ;
end ;
ModuloDatiAnagrafiche.TTArticoli.Disablecontrols ;
// Trovo il record da duplicare sulla tabella appoggio
If TTarticoliBufSource.findKey([ModuloDatiAnagrafiche.TTArticoliArticolo.AsString]) then
begin
Genera_Cod_Num := 'SI' ;
ModuloDatiAnagrafiche.LeggiChiave('DUPLICA CODICE CON ARTICOLO',Genera_cod_Num) ;
If Genera_Cod_Num = 'SI' then
begin
art_old := TTarticoliBufSource.FieldByName('Articolo').asString ;
Codice_ok:= false ;
numnum := 0 ;
While not Codice_ok and (numnum < 999) do
begin
numnum := ModuloDatiAnagrafiche.IncNumeratore('AA',art_old[1]+art_old[2]+art_old[3],'','') ;
Num_nuovo := IntToStr(numnum) ;
For i := 0 to 3 - (length(num_nuovo) + 1) do
num_nuovo := '0' + num_nuovo ;
artnuovo := art_old[1]+art_old[2]+art_old[3]+ num_nuovo ;
If Not ModuloDatiAnagrafiche.TTarticoliLookUp.FindKey([artnuovo]) then
codice_ok := true ;
end ;
If Numnum = 999 then
begin
Showmessage('Impossibile duplicare questo articolo, errore di codice...') ;
exit ;
end ;
end
else
begin
artnuovo := ModuloDatiAnagrafiche.Generacodice('Articoli.db','Articolo','') ;
end ;
// Inserisco il nuovo record in TTArticoliBufDest
TTArticoliBufDest.Insert ;
For i:= 1 to TTarticolibufdest.FieldCount - 1 do
begin
TTArticoliBufdest.Fields.Fields[i].Value := TTArticoliBufsource.Fields.Fields[i].Value ;
end ;
TTarticolibufDest.FieldByName('Articolo').AsString := artnuovo ;
TTArticolibufDest.FieldByName('Articolo etichetta').asString := artnuovo ;
TTArticoliBufDest.FieldByName('Articolo fornitore').asString := artnuovo ;
TTarticoliBufdest.Post ;
end ;
If ModuloDatiAnagrafiche.TTArticoli.FindKey([artnuovo]) then
begin
// Se l'articolo
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -