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

📄 giacenza_u.~pa

📁 Mosaic ERP大型系统 v6.09.rar
💻 ~PA
字号:
unit giacenza_u;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  Db, DBTables, StdCtrls, Grids, DBGrids, ActnList, ppEndUsr, ppProd,
  ppClass, ppReport, ppComm, ppCache, ppDB, ppDBPipe, ppDBBDE, ppVar,
  ppStrtch, ppMemo, ppCtrls, ppPrnabl, ppBands, ComCtrls, ToolWin, ExtCtrls,
  TeEngine, Series, TeeProcs, Chart, DBChart, TeeFunci, DBCtrls, ppRelatv,
  ppModule, DBSumLst, Buttons;

type
  TGiacenza_form = class(TForm)
    ActionList1: TActionList;
    cercatutto: TAction;
    Anagrafico: TAction;
    ToolBar1: TToolBar;
    Esegui: TAction;
    Stampa: TAction;
    Modifica: TAction;
    Chiudi: TAction;
    ToolButton1: TToolButton;
    ToolButton2: TToolButton;
    ToolButton3: TToolButton;
    ToolButton4: TToolButton;
    ToolButton5: TToolButton;
    ToolButton6: TToolButton;
    Pagine: TPageControl;
    Impostazione: TTabSheet;
    Grafico: TTabSheet;
    Chart: TDBChart;
    Series1: TBarSeries;
    Tabella: TTabSheet;
    Panel1: TPanel;
    Series2: TBarSeries;
    Rimanenza: TCheckBox;
    Venduto: TCheckBox;
    TTParam: TTable;
    TTParamFornitore: TStringField;
    TTParamDeposito: TStringField;
    TTParamMarca: TStringField;
    TTParamCategoria: TStringField;
    TTParamMerceologia: TStringField;
    TTParamFornitoreLookUP: TStringField;
    TTParamDepositoLookUP: TStringField;
    TTParamMarcaLookUP: TStringField;
    TTParamCategoriaLookUP: TStringField;
    TTParamMerceologiaLookUP: TStringField;
    TTParamTuttiifornitori: TBooleanField;
    TTParamTuttiidepositi: TBooleanField;
    TTParamTuttelemarche: TBooleanField;
    TTParamTuttelecategorie: TBooleanField;
    TTParamTuttelemerceologie: TBooleanField;
    DSParam: TDataSource;
    GroupBox1: TGroupBox;
    Label1: TLabel;
    DBLookupComboBox1: TDBLookupComboBox;
    Label2: TLabel;
    DBLookupComboBox2: TDBLookupComboBox;
    Label3: TLabel;
    DBLookupComboBox3: TDBLookupComboBox;
    Label4: TLabel;
    DBLookupComboBox4: TDBLookupComboBox;
    Label5: TLabel;
    DBLookupComboBox5: TDBLookupComboBox;
    DBCheckBox5: TDBCheckBox;
    DBCheckBox4: TDBCheckBox;
    DBCheckBox3: TDBCheckBox;
    DBCheckBox2: TDBCheckBox;
    DBCheckBox1: TDBCheckBox;
    Mostragrafico: TAction;
    Mostratabella: TAction;
    ToolButton7: TToolButton;
    ToolButton8: TToolButton;
    QSelezione: TQuery;
    BatchMoveQselezione: TBatchMove;
    QCalcoli1: TQuery;
    Destinazione1: TTable;
    QSelezioneDeposito: TStringField;
    QSelezioneArticolointerno: TStringField;
    QSelezioneDescrizione: TStringField;
    QSelezioneArticoloetichetta: TStringField;
    QSelezioneFornitore: TStringField;
    QSelezioneArticolofornitore: TStringField;
    QSelezioneTipoarticolo: TStringField;
    QSelezioneCategoriamerceologica: TStringField;
    QSelezioneMarca: TStringField;
    QSelezioneQtainiziale: TFloatField;
    QSelezioneQtacarico: TFloatField;
    QSelezioneQtaScarico: TFloatField;
    BatchMoveQcalcoli1: TBatchMove;
    Destinazione2: TTable;
    ProgressBar: TProgressBar;
    DsSituazione: TDataSource;
    QRaggruppa: TQuery;
    TTSituazione: TTable;
    BatchRaggruppa: TBatchMove;
    Griglia: TDBGrid;
    Series3: TBarSeries;
    Series4: TBarSeries;
    ValAcqL: TCheckBox;
    ValAcqE: TCheckBox;
    Label6: TLabel;
    TTParamDadata: TDateField;
    TTParamAdata: TDateField;
    Raggruppamento: TDBRadioGroup;
    TTParamRaggruppamento: TStringField;
    Giacenza: TppReport;
    ModGiacenza: TppDesigner;
    ppGiacenza: TppBDEPipeline;
    ppHeaderBand1: TppHeaderBand;
    ppDetailBand1: TppDetailBand;
    ppDBText1: TppDBText;
    ppDBText2: TppDBText;
    ppDBText3: TppDBText;
    ppDBText4: TppDBText;
    ppDBText5: TppDBText;
    ppDBText6: TppDBText;
    ppDBText7: TppDBText;
    ppLabel1: TppLabel;
    ppSystemVariable1: TppSystemVariable;
    ppSystemVariable2: TppSystemVariable;
    ppSummaryBand1: TppSummaryBand;
    ppDBCalc1: TppDBCalc;
    ppDBCalc2: TppDBCalc;
    ppDBCalc3: TppDBCalc;
    ppDBCalc4: TppDBCalc;
    ppDBCalc5: TppDBCalc;
    ppLabel2: TppLabel;
    ppLabel3: TppLabel;
    ppLabel4: TppLabel;
    ppLabel5: TppLabel;
    ppLabel6: TppLabel;
    ppLabel7: TppLabel;
    ppLabel8: TppLabel;
    ppLabel9: TppLabel;
    Valore_A_magazzino: TGroupBox;
    Sommatoria: TDBSumList;
    vLire: TEdit;
    SpeedButton1: TSpeedButton;
    SpeedButton2: TSpeedButton;
    Label7: TLabel;
    Label8: TLabel;
    vEuro: TEdit;
    Aiuto: TAction;
    TogliZeri: TCheckBox;
    QCalcoli1Deposito: TStringField;
    QCalcoli1Articolointerno: TStringField;
    QCalcoli1Identificativo: TStringField;
    QCalcoli1Descrizione: TStringField;
    QCalcoli1Articoloetichetta: TStringField;
    QCalcoli1Fornitore: TStringField;
    QCalcoli1Articolofornitore: TStringField;
    QCalcoli1Tipoarticolo: TStringField;
    QCalcoli1Categoriamerceologica: TStringField;
    QCalcoli1Marca: TStringField;
    QCalcoli1Qtainiziale: TFloatField;
    QCalcoli1Qtacarico: TFloatField;
    QCalcoli1QtaScarico: TFloatField;
    QCalcoli1PrezzoacquistoL: TCurrencyField;
    QCalcoli1UC: TFloatField;
    QCalcoli1PrezzoacquistoE: TCurrencyField;
    QCalcoli1Listino: TStringField;
    QCalcoli1Giacenza: TFloatField;
    QCalcoli1Venduto: TFloatField;
    QCalcoli1Rimanenza: TFloatField;
    QCalcoli1VGiacAcqL: TFloatField;
    QCalcoli1VGiacAcqE: TFloatField;
    QCalcoli1ID: TFloatField;
    QCalcoli1Descrittivo: TStringField;
    Destinazione2Deposito: TStringField;
    Destinazione2Articolointerno: TStringField;
    Destinazione2Identificativo: TStringField;
    Destinazione2Descrizione: TStringField;
    Destinazione2Articoloetichetta: TStringField;
    Destinazione2Fornitore: TStringField;
    Destinazione2Articolofornitore: TStringField;
    Destinazione2Tipoarticolo: TStringField;
    Destinazione2Categoriamerceologica: TStringField;
    Destinazione2Marca: TStringField;
    Destinazione2Qtainiziale: TFloatField;
    Destinazione2Qtacarico: TFloatField;
    Destinazione2QtaScarico: TFloatField;
    Destinazione2PrezzoacquistoL: TCurrencyField;
    Destinazione2UC: TFloatField;
    Destinazione2PrezzoacquistoE: TCurrencyField;
    Destinazione2Listino: TStringField;
    Destinazione2Giacenza: TFloatField;
    Destinazione2Venduto: TFloatField;
    Destinazione2Rimanenza: TFloatField;
    Destinazione2VGiacAcqL: TFloatField;
    Destinazione2VGiacAcqE: TFloatField;
    Destinazione2ID: TFloatField;
    Destinazione2Descrittivo: TStringField;
    ListinoDB: TTable;
    procedure QGiacenzaCalcFields(DataSet: TDataSet);
    procedure cercatuttoExecute(Sender: TObject);
    procedure AnagraficoExecute(Sender: TObject);
    procedure modGiacenzaCustomSaveDoc(Sender: TObject);
    procedure EseguiExecute(Sender: TObject);
    procedure StampaExecute(Sender: TObject);
    procedure ModificaExecute(Sender: TObject);
    procedure ChiudiExecute(Sender: TObject);
    procedure RimanenzaClick(Sender: TObject);
    procedure VendutoClick(Sender: TObject);
    procedure ValAcqLClick(Sender: TObject);
    procedure ValAcqEClick(Sender: TObject);
    procedure TabellaShow(Sender: TObject);
    procedure TabellaHide(Sender: TObject);
    procedure MostragraficoExecute(Sender: TObject);
    procedure MostratabellaExecute(Sender: TObject);
    procedure TTParamBeforeEdit(DataSet: TDataSet);
    procedure TTParamFornitoreChange(Sender: TField);
    procedure TTParamDepositoChange(Sender: TField);
    procedure TTParamMarcaChange(Sender: TField);
    procedure TTParamCategoriaChange(Sender: TField);
    procedure TTParamMerceologiaChange(Sender: TField);
    procedure SommatoriaSumListChanged(Sender: TObject);
    procedure SpeedButton1Click(Sender: TObject);
    procedure SpeedButton2Click(Sender: TObject);
    procedure AiutoExecute(Sender: TObject);
  private
    { Private declarations }
    Function NomeDaRaggruppamento : string ;
  public
    { Public declarations }
  end;

var
  Giacenza_form: TGiacenza_form;
  id : integer ;

implementation

uses Ucerca, Umenu, ana_mod;

{$R *.DFM}

Function TGiacenza_form.NomeDaRaggruppamento : string ;
begin
 // Compone il nome del record delle impostazioni globali in funzione del raggruppamento attivo
 result := 'Layout giacenza '+ intToStr(Raggruppamento.Itemindex) ;
end ;

procedure TGiacenza_form.QGiacenzaCalcFields(DataSet: TDataSet);
begin
(*     ini := QgiacenzaIniziale.asFloat ;
     car := QgiacenzaCarico.asFLoat ;
     scar := QgiacenzaScarico.asFloat ;
     QGiacenzaQta.asFloat := ini+ car - scar ;
     QGiacenzaindice.asFloat := (car / scar) * 100 ;*)
end;

procedure TGiacenza_form.cercatuttoExecute(Sender: TObject);
begin
     Cerca_form.Trova(self) ;
end;

procedure TGiacenza_form.AnagraficoExecute(Sender: TObject);
begin
     Case Raggruppamento.ItemIndex of
      0 : begin
           Menu_form.Apri_soggetti.Execute ;
           ModuloDatiAnagrafiche.TTsoggetti.FindKey([TTSituazione['Identificativo']]) ;
          end ;
      1 : begin
           //Deposito
           Menu_form.Depositi.execute ;
           ModuloDatiAnagrafiche.TTDepositi.FindKey([TTSituazione['Identificativo']]) ;
          end ;
      2 : begin
           // Tipo articolo
           Menu_form.Categorie_Articoli.Execute ;
           ModuloDatiAnagrafiche.TTTipArt.FindKey([TTSituazione['Identificativo']]) ;
          end ;
      3 : begin
           //Categoria Merceologica
           Menu_form.Categorie_merceologiche.Execute ;
           ModuloDatiAnagrafiche.TTCatMer.FindKey([TTSituazione['Identificativo']]) ;
          end ;
      4 : begin
           //Marca
           Menu_form.Marche.Execute ;
           ModuloDatiAnagrafiche.TTMarche.FindKey([TTSituazione['Identificativo']]) ;
          end ;
      else
          begin
           // Articolo e Nessun Raggruppamento
           Menu_form.Apri_articoli.Execute ;
           ModuloDatiAnagrafiche.TTarticoli.FindKey([Destinazione2ArticoloInterno.asString]) ;
          end ;
     end ;
end;

procedure TGiacenza_form.modGiacenzaCustomSaveDoc(Sender: TObject);
Var
   nn : string ;
begin
  nn := NomeDaRaggruppamento ;
  ModuloDatiAnagrafiche.ScriviChiave(nn,Giacenza.Template.Filename) ;
  Giacenza.Template.SaveToFile ;
end;

procedure TGiacenza_form.EseguiExecute(Sender: TObject);
Var
   identif : string ;
   IdTab : TTable ;
   ini,car,scar,Pezzi,venduto,rimanenza : double ;
   Campo : Tfield ;
   Pc,Uc : Real ;

  Function LookUp(rag : integer; ident : string) : string ;
   begin
    // Ricerchiamo nell'anagrafica giusta la descrizione giusta
    Case Rag of
     0 : begin
          // Fornitore
          if ModuloDatiAnagrafiche.TTsoggetti.FindKey([ident])then
           result := ModuloDatiAnagrafiche.TTsoggettiRagioneSociale.Value ;
         end ;
     1 : begin
          // Deposito
          If ModuloDatiAnagrafiche.TTDepositi.FindKey([ident]) then
           result := ModuloDatiAnagrafiche.TTDepositiDenominazione.Value ;
         end ;
     2 : begin
          // Categorie
           result := ident ;
         end ;
     3 : begin
          // Merceologia
           result := ident ;
         end ;
     4 : begin
          // Marca
           result := ident ;
         end ;
     5 : begin
          // Articolo e Nessun raggruppamento
          If ModuloDatiAnagrafiche.TTArticoli.FindKey([ident]) then
           result := ModuloDatiAnagrafiche.TTArticoliDescrizione.Value ;
         end ;
     6 : begin
          // Articolo e Nessun raggruppamento
          If ModuloDatiAnagrafiche.TTArticoli.Locate('Descrizione',ident,[]) then
           result := ModuloDatiAnagrafiche.TTArticoliArticolo.AsString ;
         end ;
    end ;
   end ;

  Procedure Raggruppa(nomecampo : String) ;
  begin
   TTSituazione.Close;
   Qraggruppa.Close ;
   QRaggruppa.SQL[0] := 'SELECT DISTINCT d."'+nomecampo + '" as d.Identificativo,' ;
   QRaggruppa.SQL[12] := 'GROUP BY d."'+nomecampo + '"' ;
   QRaggruppa.SQL[13] := 'ORDER BY d."'+nomecampo + '"' ;
   QRaggruppa.Open ;
   BatchRaggruppa.Source := QRaggruppa ;
   BatchRaggruppa.Execute ;
  end ;

begin
   if TTParam.State = DsEdit then TTParam.Post ;
   TTSituazione.Close ;
// Fase 1 : Selezione articoli
     Destinazione1.Close ;
     Destinazione2.Close ;
     Qselezione.Open ;
     ProgressBar.Position := 1 ;
     ProgressBar.Update ;
     BatchMoveQselezione.Execute ;
     ProgressBar.Position := 2 ;
     ProgressBar.Update ;
     Qselezione.Close ;
// Fase 2 : Calcoli su risultati selezione
     id := 1 ;
     QCalcoli1.Open ;
     ProgressBar.Position := 3 ;
     ProgressBar.Update ;
     BatchMoveQcalcoli1.Execute ;
     Qcalcoli1.Close ;
     // Calcoliamo giacenza, rimanenza, venduto, ecc.
     Destinazione2.Open ;
     While Not Destinazione2.Eof do
      begin
       application.processmessages;
       ini := Destinazione2Qtainiziale.Value ;
       car := Destinazione2QtaCarico.Value ;
       scar := Destinazione2Qtascarico.value ;
       pezzi := ini + car - scar ;
       If (ini + car) <> 0 then
        begin
         Rimanenza := pezzi/(ini + Car) * 100 ;
         Venduto := (scar / (ini + car)) * 100 ;
        end
       else
        begin
         Rimanenza := 0 ;
         if scar > 0 then
          Venduto := 100
         else
          Venduto := 0 ;
        end ;
       pc := 0 ;
       uc := destinazione2UC.Value ;
       If ListinoDb.Findkey([Destinazione2Listino.asString,Destinazione2Articolointerno.asString]) then
          Pc := ListinoDb.fieldByName('Pezzi per Confezione').asFloat ;
       if pc = 0 then pc := 1 ;
       if uc = 0 then uc := 1 ;
       Destinazione2.Edit ;
       Destinazione2Giacenza.Value := pezzi ;
       Destinazione2Venduto.Value := Venduto ;
       Destinazione2Rimanenza.Value := Rimanenza ;
       Destinazione2PrezzoAcquistoL.Value :=  Destinazione2PrezzoacquistoL.value * Uc / Pc ;
       Destinazione2PrezzoAcquistoE.Value :=  Destinazione2PrezzoAcquistoE.Value * Uc / Pc ;
       Destinazione2VGiacAcqL.Value := Pezzi * Destinazione2PrezzoacquistoL.value ;
       Destinazione2VGiacAcqE.Value := Pezzi * Destinazione2PrezzoAcquistoE.Value ;
       Destinazione2.Post ;
       Destinazione2.Next ;
      end ;
// Fase 2bis : eliminiamo gli articoli a 0
     if TogliZeri.Checked then
      begin
        Destinazione2.First ;
        While Destinazione2.Locate('Giacenza',0,[]) do
          Destinazione2.Delete ;
      end ;
     Destinazione2.Close ;
     ProgressBar.Position := 4 ;
     ProgressBar.Update ;
// Fase 3 : Se 

⌨️ 快捷键说明

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