?? plugin_u.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 + -