📄 u_fatturazione_main.pas
字号:
unit u_fatturazione_main;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Db, Grids, DBGrids, ActnList, ComCtrls, StdCtrls, RxMemDS, DBGridEh,
DBTables;
type
Tfatturazione_main = class(TForm)
PageControl: TPageControl;
Causale_tipo: TTabSheet;
Elenco: TTabSheet;
Riepilogo: TTabSheet;
ActionList1: TActionList;
DBGrid1: TDBGrid;
DsCausali: TDataSource;
DBGrid2: TDBGrid;
DsCauDoc: TDataSource;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
dal: TDateTimePicker;
Label4: TLabel;
al: TDateTimePicker;
Annulla_Button: TButton;
Avanti_Button: TButton;
Annulla: TAction;
Avanti: TAction;
RxSoggetti: TRxMemoryData;
RxDocumenti: TRxMemoryData;
DBGridEh1: TDBGridEh;
DsSoggetti: TDataSource;
DsDocumenti: TDataSource;
Q_doc: TQuery;
RxSoggettiCodice: TStringField;
RxSoggettiRagionesociale: TStringField;
RxSoggettiTotale: TCurrencyField;
RxSoggettiSelezionato: TBooleanField;
RxDocumentiCodice: TStringField;
RxDocumentiDocumento: TIntegerField;
RxDocumentiData: TDateTimeField;
RxDocumentiNumero: TIntegerField;
RxDocumentiSerie: TStringField;
RxDocumentiSelezionato: TBooleanField;
RxDocumentiRagioneSociale: TStringField;
RxDocumentiTotale: TCurrencyField;
ProgressBar: TProgressBar;
Report: TMemo;
DataFatturazione: TDateTimePicker;
Label5: TLabel;
procedure AnnullaExecute(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure AvantiExecute(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure PageControlMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
private
{ Private declarations }
public
{ Public declarations }
function estrapola_documenti : boolean ;
function esegui_conversione : boolean ;
procedure Prepara_testata ;
end;
var
fatturazione_main: Tfatturazione_main;
implementation
uses doc_mod, ana_mod ;
{$R *.DFM}
procedure Tfatturazione_main.AnnullaExecute(Sender: TObject);
begin
close ;
end;
procedure Tfatturazione_main.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
release ;
end;
procedure Tfatturazione_main.Prepara_testata;
begin
with ModuloDatiDocumenti do
begin
If ModuloDatiAnagrafiche.TTSoggetti.FindKey([TTTestataSoggetto.AsString]) then
begin
If TTTestataMuoviMerce.asBoolean then
begin
// TTTestataPorto.AsString := 'Franco' ;
If (TTTestataIndirizzoMerce.AsString = '') then
TTTestataIndirizzoMerce.AsString := 'IDEM' ;
// Imposto i depositi
if TTTestataTipoMovimento.AsString = 'Iniziale' then
begin
TTTestataDepositoEntrata.AsString := ModuloDatiAnagrafiche.TTsoggettiDepositopreferenziale.AsString ;
TTTestataDepositoUscita.AsString := ModuloDatiAnagrafiche.TTsoggettiDepositopreferenziale.AsString ;
If TTTestataDepositoEntrata.AsString = '' then
TTTestataDepositoEntrata.AsString := TTImpostazioniDepositoEntrata.AsString ;
If TTTestataDepositoUscita.AsString = '' then
TTTestataDepositoUscita.AsString := TTImpostazioniDepositoUscita.AsString ;
end
else
begin
If TTTestataTipoMovimento.AsString = 'Carico' then
begin
TTTestataDepositoEntrata.AsString := ModuloDatiAnagrafiche.TTsoggettiDepositopreferenziale.AsString ;
TTTestataDepositoUscita.AsString := 'Nessuno' ;
If TTTestataDepositoEntrata.AsString = '' then
TTTestataDepositoEntrata.AsString := TTImpostazioniDepositoEntrata.AsString ;
end
else
begin
TTTestataDepositoUscita.AsString := ModuloDatiAnagrafiche.TTsoggettiDepositopreferenziale.AsString ;
TTTestataDepositoEntrata.AsString := 'Nessuno' ;
If TTTestataDepositoUscita.AsString = '' then
TTTestataDepositoUscita.AsString := TTImpostazioniDepositoUscita.AsString ;
end;
end ;
end ;
{
if TTTestataPagamento.AsString = '' then
TTTestataPagamento.AsString := ModuloDatiAnagrafiche.TTsoggettiPagamento.AsString ;
If TTTestataPagamento.AsString = '' then
TTTestataPagamento.asString := TTImpostazioniPagamento.asString ;
TTTestataBanca.AsString := ModuloDatiAnagrafiche.TTSoggettiBanca.AsString ;
TTTestataAgente.AsString := ModuloDatiAnagrafiche.TTSoggettiAgente.AsString ;
If TTTestataAgente.AsString = '' then TTTestataAgente.asString := TTImpostazioniAgente.AsString ;
If TTTestataSpeseBancarie.AsString = '' then
If TTTestataValuta.asString = 'E' then
TTTestataSpeseBancarie.AsCurrency := TTImpostazioniSpeseBancarieE.asCurrency
else
TTTestataSpeseBancarie.AsCurrency := TTImpostazioniSpeseBancarieL.asCurrency ;
If TTTestataSpeseVarie.AsString = '' then
If TTTestataValuta.asString = 'E' then
TTTestataSpeseVarie.AsCurrency := TTImpostazioniSpeseVarieE.asCurrency
else
TTTestataSpeseVarie.AsCurrency := TTImpostazioniSpeseVarieL.asCurrency ;
If TTTestataSpeseTrasporto.AsString = '' then
If TTTestataValuta.asString = 'E' then
TTTestataSpeseTrasporto.AsCurrency := TTImpostazioniSpesediTrasportoE.asCurrency
else
TTTestataSpeseTrasporto.AsCurrency := TTImpostazioniSpesediTrasportoL.asCurrency ;
}
end ;
end ;
end ;
function Tfatturazione_main.estrapola_documenti : boolean ;
var Giorno, Mese, Anno : Word ;
begin
Q_doc.Close ;
//Q_doc.ParamByName('Causale').AsString := ModuloDatiDocumenti.TTCausaliCodice.AsString ;
Q_doc.ParamByName('Tipo').AsString := ModuloDatiDocumenti.TTCaudocTipodocumento.AsString ;
DecodeDate(Dal.DateTime,Anno,Mese,Giorno) ;
Q_doc.ParamByName('Dal').AsDate := Dal.Date ; //StrToDate(IntToStr(Mese) + '/' + IntToStr(Giorno) + '/' + IntToStr(Anno)) ;
DecodeDate(Al.DateTime,Anno,Mese,Giorno) ;
Q_doc.ParamByName('Al').AsDate := Al.Date ;//StrToDate(IntToStr(Mese) + '/' + IntToStr(Giorno) + '/' + IntToStr(Anno)) ;
Q_doc.Prepare ;
Q_doc.ExecSQL ;
Q_doc.Open ;
RxDocumenti.Close ;
RxDocumenti.Open ;
Q_doc.First ;
while not Q_doc.Eof do
begin
RxDocumenti.Insert ;
RxDocumenti['Codice'] := Q_doc['Soggetto'] ;
RxDocumenti['Ragione sociale'] := Q_doc['Ragione sociale documento'] ;
RxDocumenti['Documento'] := Q_doc['Documento'] ;
RxDocumenti['Numero'] := Q_doc['Numero'] ;
RxDocumenti['Serie'] := Q_doc['Serie'] ;
RxDocumenti['Data'] := Q_doc['Data'] ;
RxDocumenti['Totale'] := Q_doc['Totale E'] ;
RxDocumenti['Selezionato'] := True ;
RxDocumenti.Post ;
Q_doc.Next ;
end ;
end ;
function Tfatturazione_main.Esegui_conversione : boolean ;
var Documento : integer ;
DataDoc : TDatetime ;
anno, mese, giorno : word ;
Causale, Tipo, Soggetto : String ;
begin
Fatturazione_riepilogativa := True ;
Documento := 11111 ;
DataDoc := Now ;
Causale := ModuloDatiDocumenti.TTCausali['Codice'] ;
Tipo := ModuloDatiDocumenti.TTCaudocTipodocumento.AsString ;
Report.Lines.Clear ;
progressbar.Position := 0 ;
progressbar.Max := RxDocumenti.RecordCount ;
ProgressBar.Step := 1;
RxDocumenti.First ;
Soggetto := '' ;
while not RxDocumenti.Eof do
begin
if (RxDocumentiSelezionato.AsBoolean) and (Soggetto <> RxDocumenti['Codice']) and (RxDocumenti['Codice'] <> '') then
begin
//PreparaDoc ;
ModuloDatiDocumenti.TTTestata.Insert ;
ModuloDatiDocumenti.TTTestata['Soggetto'] := RxDocumenti['Codice'] ;
Soggetto := RxDocumenti['Codice'] ;
ModuloDatiDocumenti.AggiornaSoggetto ;
ModuloDatiDocumenti.TTTestata['Causale'] := Causale ;
ModuloDatiDocumenti.TTTestata['Tipo'] := Tipo ;
Prepara_Testata ;
ModuloDatiDocumenti.TTTestata['Data'] := DataFatturazione.DateTime ;
DecodeDate(ModuloDatiDocumenti.TTTestataData.AsDateTime,anno,mese,giorno) ;
ModuloDatiDocumenti.TTTestata['Numero'] := ModuloDatiAnagrafiche.IncNumeratore(ModuloDatiAnagrafiche.TTTipidocNumeratore.AsString,inttostr(anno),'','') ;
Documento := ModuloDatiDocumenti.TTTestata['Documento'] ;
ModuloDatiDocumenti.ConvertiDocs(RxDocumenti['Codice'],
ModuloDatiDocumenti.TTTestataTipo.AsString ,
Documento ,
Datadoc,
False,True) ;
ModuloDatiDocumenti.CalcolaImponibili ;
Report.Lines.Add('Soggetto: ' + ModuloDatiDocumenti.TTTestataSoggetto.AsString + ' ' + ModuloDatiDocumenti.TTTestataRagioneSocialedocumento.AsString + ' ' +
'Data: ' + ModuloDatiDocumenti.TTTestataData.AsString + ' ' + 'Numero: ' + ModuloDatiDocumenti.TTTestataNumero.AsString + ' ' +
'Totale: ' + ModuloDatiDocumenti.TTTestataTotaleE.AsString) ;
ModuloDatiDocumenti.TTTestata.Post ;
end ;
ProgressBar.StepIt;
RxDocumenti.Next ;
end ;
Report.Lines.Add('Fine.') ;
Fatturazione_riepilogativa := False ;
end ;
procedure Tfatturazione_main.AvantiExecute(Sender: TObject);
begin
if PageControl.ActivePage = Riepilogo then
close ;
if PageControl.ActivePage = Elenco then
begin
PageControl.SelectNextPage(True) ;
esegui_conversione ;
Avanti_button.Caption := 'Fine' ;
Annulla_button.Enabled := False ;
end ;
if PageControl.ActivePage = Causale_tipo then
begin
PageControl.SelectNextPage(True) ;
estrapola_documenti ;
end ;
end;
procedure Tfatturazione_main.FormCreate(Sender: TObject);
begin
dal.DateTime := now ;
al.DateTime := now ;
DataFatturazione.DateTime := Now ;
Avanti_button.Caption := 'Avanti >>' ;
Annulla_button.Enabled := True ;
end;
procedure Tfatturazione_main.PageControlMouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
abort ;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -