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

📄 plugin_u.pas

📁 大型企业管理源码,JAVA类,包括销售,采购,财务,OA辅助办公处理,有学习JAVA的朋友,将是不错的参考资料!
💻 PAS
字号:
unit plugIn_u;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, ComCtrls, Buttons, ExtCtrls, Db, DBTables, Grids, DBGrids;

type
  TPlugIn_Form = class(TForm)
    Panel1: TPanel;
    OkBtn: TBitBtn;
    AnnullaBtn: TBitBtn;
    Panel2: TPanel;
    Label1: TLabel;
    dalPick: TDateTimePicker;
    Label2: TLabel;
    alPick: TDateTimePicker;
    Label3: TLabel;
    Panel3: TPanel;
    Panel4: TPanel;
    Label4: TLabel;
    TipoDocCombo: TComboBox;
    DBGrid1: TDBGrid;
    SoggettiDB: TTable;
    dsSoggetti: TDataSource;
    SoggettiDBCodice: TStringField;
    SoggettiDBTiporapporto: TStringField;
    SoggettiDBRagionesociale: TStringField;
    SoggettiDBRagionesocialeMerce: TStringField;
    SoggettiDBIndirizzo: TStringField;
    SoggettiDBCap: TStringField;
    SoggettiDBLocalita: TStringField;
    SoggettiDBProvincia: TStringField;
    SoggettiDBStato: TStringField;
    SoggettiDBPartitaIVA: TStringField;
    SoggettiDBCodiceFiscale: TStringField;
    SoggettiDBEL: TStringField;
    SoggettiDBIndirizzofatture: TStringField;
    SoggettiDBCapfatture: TStringField;
    SoggettiDBLocalitafatture: TStringField;
    SoggettiDBProvinciafatture: TStringField;
    SoggettiDBStatofatture: TStringField;
    SoggettiDBPersonadacontattare: TStringField;
    SoggettiDBTelefono: TStringField;
    SoggettiDBFax: TStringField;
    SoggettiDBDati: TStringField;
    SoggettiDBEmail: TStringField;
    SoggettiDBURL: TStringField;
    SoggettiDBLogin: TStringField;
    SoggettiDBHost: TStringField;
    SoggettiDBPathlistino: TStringField;
    SoggettiDBNomefilelistino: TStringField;
    SoggettiDBNomeproceduralistino: TStringField;
    SoggettiDBFido: TCurrencyField;
    SoggettiDBAgente: TStringField;
    SoggettiDBZona: TStringField;
    SoggettiDBDepositopreferenziale: TStringField;
    SoggettiDBVettorepreferenziale: TStringField;
    SoggettiDBListino: TStringField;
    SoggettiDBBanca: TStringField;
    SoggettiDBConto: TStringField;
    SoggettiDBValutaconto: TStringField;
    SoggettiDBPagamento: TStringField;
    SoggettiDBGruppo: TStringField;
    SoggettiDBIva: TStringField;
    SoggettiDBTestoesenzioniIVA: TMemoField;
    SoggettiDBContocorrente: TStringField;
    SoggettiDBSconto: TFloatField;
    SoggettiDBNote: TMemoField;
    SoggettiDBPartitaPC: TStringField;
    SoggettiDBCausalecontabile: TStringField;
    SoggettiDBCodiceritenuta: TStringField;
    Label5: TLabel;
    Soggetto_ricerca: TEdit;
    PlugIns: TTable;
    Progress: TProgressBar;
    Panel5: TPanel;
    Label6: TLabel;
    PlugInCombo: TComboBox;
    PlugInsDescrizione: TStringField;
    PlugInsNomelibreria: TStringField;
    Panel6: TPanel;
    TuttiSoggetti: TCheckBox;
    Label7: TLabel;
    CausaleCombo: TComboBox;
    QGruppi: TQuery;
    QGruppiSoggetto: TStringField;
    QGruppiGruppo: TFloatField;
    QDettaglio: TQuery;
    dsGruppi: TDataSource;
    Plug2: TTable;
    Plug2Documento: TIntegerField;
    QDettaglioRECORD_ID: TFloatField;
    QDettaglioSOGGETTO: TStringField;
    QDettaglioARTICOLO: TStringField;
    QDettaglioDESCRIZION: TStringField;
    QDettaglioUM: TStringField;
    QDettaglioQTA: TFloatField;
    QDettaglioPREZZO: TFloatField;
    QDettaglioVALUTA: TStringField;
    QDettaglioTIP_PREZZO: TStringField;
    QDettaglioSCONTO: TFloatField;
    QDettaglioSCONTO2: TFloatField;
    QDettaglioSCONTO3: TFloatField;
    QDettaglioIVA: TStringField;
    QDettaglioGRUPPO: TFloatField;
    QDettaglioDATA_DOCUM: TDateField;
    QDettaglioNUMERO_DOC: TFloatField;
    QDettaglioSERIE_DOC: TStringField;
    DataDoc: TDateTimePicker;
    Label8: TLabel;
    QGruppiValuta: TStringField;
    SoggettiDBPasswd: TStringField;
    SoggettiDBRicarico: TFloatField;
    SoggettiDBIdGiornale: TStringField;
    procedure Soggetto_ricercaChange(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure OkBtnClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  PlugIn_Form: TPlugIn_Form;

implementation

uses Doc_mod, ana_mod, gestModExt, plug_doc_gen;

{$R *.DFM}

procedure TPlugIn_Form.Soggetto_ricercaChange(Sender: TObject);
begin
 SoggettiDb.Locate('Ragione sociale',Soggetto_Ricerca.Text,[loPartialKey,loCaseInsensitive]) ;
end;

procedure TPlugIn_Form.FormCreate(Sender: TObject);
Var
   Anno,Mese,Giorno : word ;
begin


 DataDoc.Date := now ;
 PlugIns.First ;
 While Not PlugIns.Eof do
  begin
   PlugInCombo.Items.Add(PlugInsDescrizione.AsString) ;
   PlugIns.Next ;
  end ;
 PlugInCombo.ItemIndex := 0 ;

 With ModuloDatiAnagrafiche do
  begin
   TTTipiDoc.First ;
   While Not TTTipiDoc.Eof do
    begin
     TipoDocCombo.Items.Add(TTTipidocDescrizione.asString) ;
     TTTipiDoc.Next ;
    end;
  end ;

 With ModuloDatiAnagrafiche do
  begin
   TTCausali.First ;
   While Not TTCausali.Eof do
    begin
     CausaleCombo.Items.Add(TTCausaliDescrizione.asString) ;
     TTCausali.Next ;
    end;
  end ;

 DecodeDate(now,Anno,Mese,Giorno) ;
 DalPick.Date := EncodeDate(Anno,Mese - 1, 1) ;
 AlPick.Date := EncodeDate(Anno,Mese,1) - 1 ;

end;

procedure TPlugIn_Form.OkBtnClick(Sender: TObject);
Var
   Descr : String ;
   n : integer ;
   CodCli : Array[0..6] of Char ;
   TipoSmarca : Array [0..2] of Char ;
   SerieSmarca : Array [0..10] of char ;
   DataInizio,DataFine,DataSmarca : Array [0..8] of Char ;
   Anno,Mese,Giorno : Word ;

begin
 If CausaleCombo.ItemIndex = -1 then
  begin
   ShowMessage('Selezionare una causale...') ;
   exit ;
  end ;

 If TipoDocCombo.ItemIndex = -1 then
  begin
   ShowMessage('Selezionare un tipo documento...') ;
   exit ;
  end ;

 Descr := 'Eseguire la generazione di ' + TipoDocCombo.Text + #10#13 +
          'per causale ' + CausaleCombo.Text + #10#13 + 'sui movimenti dal ' +
          DateToStr(DalPick.Date) + ' al ' + DateToStr(AlPick.Date) ;
 If TuttiSoggetti.Checked then
   Descr := Descr + #10#13 + 'per tutti i soggetti '
 else
   Descr := Descr + #10#13 + 'per il soggetto ' + SoggettiDbRagioneSociale.AsString ;
 Descr := Descr + ' ?' ;
 If MessageDlg(Descr,MtConfirmation,[mbYes,mbNo],0) = mrNo then
  exit ;
 PlugIns.FindKey([PlugInCombo.Text]) ;
 if Not FattAutoLoader(PlugInsnomeLibreria.asString) then
  begin
   ShowMessage(PlugInsnomeLibreria.asString + ' non trovata...');
   exit ;
  end ;

 StrPcopy(CodCli,SoggettiDbCodice.AsString) ;
 StrPcopy(DataInizio,DateToStr(DalPick.Date)) ;
 StrPCopy(DataFine,DateToStr(AlPick.Date)) ;
 n := FattAutoSeleziona(CodCli,DataInizio,DataFine,'') ;
 If n = 0 then
  begin
   ShowMessage('Non ci sono movimenti da esaminare....') ;
   exit ;
  end ;
 // Iniziamo l'inserimento dei documenti.....
 While Not Plug2.IsEmpty do
  Plug2.Delete ;
 QGruppi.Open ;
 QDettaglio.Open ;
 Qgruppi.First ;
 Progress.Max := Qgruppi.RecordCount ;
 With ModuloDatiDocumenti do
  begin
   While Not QGruppi.Eof do
    begin
     TTTestata.Insert ;
     TTTestataSoggetto.AsString := QGruppiSoggetto.AsString ;

     If ModuloDatiAnagrafiche.TTTipidoc.Locate('Descrizione',{TipoDocCombo.Text}'',[]) then
        TTTestataTipo.AsString := ModuloDatiAnagrafiche.TTTipiDocCodice.AsString ;

     If ModuloDatiAnagrafiche.TTCausali.Locate('Descrizione',{CausaleCombo.Text}'',[]) then
        TTTestataCausale.AsString := ModuloDatiAnagrafiche.TTCausaliCodice.AsString ;

     Progress.Position := QGruppi.RecNo ;
     TTTestataData.AsDateTime := DataDoc.Date ;
     TTTestataValuta.AsString := QGruppiValuta.asString ;
     DecodeDate(TTTestataData.Value,Anno,Mese,Giorno) ;
     TTTestataNumero.Value := ModuloDatiAnagrafiche.IncNumeratore(TTTestataNumeratoreDaTipiDoc.AsString,IntToStr(Anno),'','') ;
     QDettaglio.First ;
     While Not QDettaglio.Eof do
      begin
       TTDettaglio.Insert ;
       If QDettaglioArticolo.AsString <> '' then
          TTDettaglioArticoloInterno.AsString := QdettaglioArticolo.AsString ;
       If QdettaglioDescrizion.AsString <> '' then
          TTDettaglioDescrizione.AsString := QdettaglioDescrizion.asString ;
       TTDettaglioQta.AsFloat := QdettaglioQta.AsFloat ;
       TTDettaglioPrezzo.AsCurrency := QDettaglioPrezzo.AsCurrency ;
       TTDettaglioSconto.AsFloat := QdettaglioSconto.AsFloat ;
       TTDettaglioSconto2.AsFloat := QdettaglioSconto2.AsFloat ;
       TTDettaglioSconto3.AsFloat := QdettaglioSconto3.AsFloat ;
       TTDettaglioIVA.AsString := QDettaglioIva.AsString ;
       Try
        TTDettaglio.post ;
       finally
        // Marcatura record con data e numero fattura.....
        StrPcopy(SerieSmarca,TTTestataSerie.AsString) ;
        StrPcopy(DataSmarca,TTTestataData.AsString) ;
        StrPcopy(TipoSmarca,TTTestataTipo.AsString) ;
        FattAutoSmarca(QdettaglioRecord_id.asInteger,
                       TTTestataDocumento.asInteger,
                       TTTestataNumero.asInteger,
                       SerieSmarca,
                       DataSmarca,
                       TipoSmarca) ;
       end ;
       Qdettaglio.Next ;
      end ;
     Try
      CalcolaImponibili ;
      TTTestata.Post ;
     finally
      Plug2.Insert ;
      Plug2Documento.AsInteger := TTTestataDocumento.asInteger ;
      Plug2.Post ;
     end ;
     QGruppi.Next ;
    end ;
  end ;
 // Mostriamo il risultato del nostro lavoro......
 If Plug2.IsEmpty then
  begin
   ShowMessage('Non sono stati creati documenti....') ;
  end
 else
  begin
   Documenti_generati_form := TDocumenti_generati_form.Create(self) ;
   Documenti_generati_form.Show ;
  end ;

end;

end.

⌨️ 快捷键说明

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