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

📄 ana_articoli_u.pas

📁 基于OOP设计的一套较好的ERP系统
💻 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 + -