📄 ribawizard_u.pas
字号:
unit RibaWizard_u;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Mask, DBCtrls, Db, DBTables, Buttons, ComCtrls, ActnList,
Grids, DBGrids, ExtCtrls;
type
TRibaWizard_Form = class(TForm)
PCRiba: TPageControl;
Scelta: TTabSheet;
SpeedButton1: TSpeedButton;
Avanti_Scelta: TSpeedButton;
TTParRiba: TTable;
DSParRiba: TDataSource;
TTParRibaDal: TDateField;
TTParRibaAl: TDateField;
TTParRibaBanca: TStringField;
TTParRibaRibacumulativa: TBooleanField;
Label1: TLabel;
DBEdit1: TDBEdit;
Label2: TLabel;
DBEdit2: TDBEdit;
Memo1: TMemo;
Scelta_Label: TLabel;
Fatture: TTabSheet;
Elenco_Label: TLabel;
Avanti_fat: TSpeedButton;
SpeedButton3: TSpeedButton;
SpeedButton4: TSpeedButton;
banca: TTabSheet;
ActionList1: TActionList;
Annulla: TAction;
Banca_Label: TLabel;
Memo2: TMemo;
DBGrid1: TDBGrid;
Memo3: TMemo;
ModPag_Label: TLabel;
ModPag: TTabSheet;
Indietro_scelta: TSpeedButton;
ModPag_Avanti: TSpeedButton;
SpeedButton6: TSpeedButton;
Generazione_Label: TLabel;
disco_Label: TLabel;
Memo4: TMemo;
Memo5: TMemo;
Memo6: TMemo;
DBGrid2: TDBGrid;
Memo7: TMemo;
Memo8: TMemo;
SpeedButton5: TSpeedButton;
SpeedButton7: TSpeedButton;
SpeedButton8: TSpeedButton;
generazione: TTabSheet;
disco: TTabSheet;
SpeedButton9: TSpeedButton;
SpeedButton10: TSpeedButton;
SpeedButton11: TSpeedButton;
SpeedButton14: TSpeedButton;
SpeedButton12: TSpeedButton;
PBgenerazione: TProgressBar;
Memo9: TMemo;
Memo10: TMemo;
Memo12: TMemo;
TTParRibaStampadistinta: TBooleanField;
TTParRibaValuta: TStringField;
TTParRibaDatagenerazionedisco: TDateField;
TTModPagRiba: TTable;
DSModPagRiba: TDataSource;
TTModPagRibaModalita: TStringField;
TTModPagRibaRibaelettronica: TBooleanField;
DBCheckBox1: TDBCheckBox;
TTRiba_Fat: TTable;
DSRiba_Fat: TDataSource;
TTSoggetti: TTable;
TTSoggettiCodice: TStringField;
TTSoggettiRagionesociale: TStringField;
Label4: TLabel;
DBEdit4: TDBEdit;
DSSoggetti: TDataSource;
TTParRibaLkBanca: TStringField;
TTBancheRiba: TTable;
TTBancheRibaBanca: TStringField;
TTBancheRibaCodiceazienda: TStringField;
DSBancheRiba: TDataSource;
TTRiba_FatScadenza: TDateField;
TTRiba_FatSoggetto: TStringField;
TTRiba_FatDocumento: TFloatField;
TTRiba_FatDatadocumento: TDateField;
TTRiba_FatNumerodocumento: TIntegerField;
TTRiba_FatSerie: TStringField;
TTRiba_FatTotale: TCurrencyField;
TTRiba_FatElaborare: TStringField;
DBRadioGroup2: TDBRadioGroup;
TTModPagRibaLKPagamenti: TStringField;
tipodoc: TTabSheet;
Tipidoc_Label: TLabel;
SpeedButton13: TSpeedButton;
SpeedButton15: TSpeedButton;
SpeedButton16: TSpeedButton;
TTRibatipi: TTable;
TTRibatipiTipo: TStringField;
TTRibatipiIncluso: TBooleanField;
TTRibatipiLKTipo: TStringField;
DSRibaTipi: TDataSource;
DBGrid3: TDBGrid;
Memo13: TMemo;
DBCheckBox2: TDBCheckBox;
Memo14: TMemo;
TTParRibaTotaleriba: TCurrencyField;
Label7: TLabel;
DBEdit6: TDBEdit;
TTPardiscoRb: TTable;
DSParDiscoRb: TDataSource;
TTPardiscoRbNumeroprimaRiba: TFloatField;
TTPardiscoRbNumeroultimaRiba: TFloatField;
TTPardiscoRbBollovirtuale: TCurrencyField;
TTPardiscoRbProvinciaintendenza: TStringField;
TTPardiscoRbNumeroautorizzazione: TStringField;
TTPardiscoRbDataautorizzazione: TDateField;
SpeedButton17: TSpeedButton;
Label9: TLabel;
Label13: TLabel;
PBImporti: TProgressBar;
Label14: TLabel;
PBTotali: TProgressBar;
Label3: TLabel;
TTBancheRibaImportomassimo: TCurrencyField;
DBGrid4: TDBGrid;
TTBancheRibaLkBanca: TStringField;
DBNavigator1: TDBNavigator;
TTPardiscoRbGruppo: TFloatField;
procedure FormCreate(Sender: TObject);
procedure DBEdit1Change(Sender: TObject);
procedure DBEdit2Change(Sender: TObject);
procedure SceltaShow(Sender: TObject);
procedure FattureShow(Sender: TObject);
procedure SceltaHide(Sender: TObject);
procedure FattureHide(Sender: TObject);
procedure Avanti_SceltaClick(Sender: TObject);
procedure SpeedButton3Click(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure AnnullaExecute(Sender: TObject);
procedure ModPagShow(Sender: TObject);
procedure ModPagHide(Sender: TObject);
procedure bancaShow(Sender: TObject);
procedure bancaHide(Sender: TObject);
procedure ModPag_AvantiClick(Sender: TObject);
procedure Indietro_sceltaClick(Sender: TObject);
procedure SpeedButton7Click(Sender: TObject);
procedure generazioneShow(Sender: TObject);
procedure generazioneHide(Sender: TObject);
procedure discoShow(Sender: TObject);
procedure discoHide(Sender: TObject);
procedure SpeedButton8Click(Sender: TObject);
procedure SpeedButton10Click(Sender: TObject);
procedure SpeedButton11Click(Sender: TObject);
procedure SpeedButton14Click(Sender: TObject);
procedure Avanti_fatClick(Sender: TObject);
procedure tipodocShow(Sender: TObject);
procedure tipodocHide(Sender: TObject);
procedure SpeedButton16Click(Sender: TObject);
procedure SpeedButton13Click(Sender: TObject);
procedure SpeedButton17Click(Sender: TObject);
procedure SpeedButton12Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
function NumToLet(Numero : currency) : String;
function NumeraRiba(Codice, Anno : String) : longInt;
procedure ElencoFatture();
procedure GeneraRiba();
end;
var
RibaWizard_Form: TRibaWizard_Form;
implementation
{$R *.DFM}
Uses Ana_mod, DiscoRb_u;
function TRibaWizard_form.NumToLet(Numero : currency) : String;
var
unita : array[1..9] of String;
decina : array [1..9] of String;
sDecina : array [0..9] of String;
attrib : array[1..3] of String;
terzetti : array[1..4] of string;
strnum, decim : String;
parola, StrApp : string;
cifra, i, j : Integer;
begin
//Converte il numero passato in parola
unita[1] := 'uno';
unita[2] := 'due';
unita[3] := 'tre';
unita[4] := 'quattro';
unita[5] := 'cinque';
unita[6] := 'sei';
unita[7] := 'sette';
unita[8] := 'otto';
unita[9] := 'nove';
decina[1] := 'dieci';
decina[2] := 'venti';
decina[3] := 'trenta';
decina[4] := 'quaranta';
decina[5] := 'cinquanta';
decina[6] := 'sessanta';
decina[7] := 'settanta';
decina[8] := 'ottanta';
decina[9] := 'novanta';
sDecina[0] := 'dieci';
sDecina[1] := 'undici';
sDecina[2] := 'dodici';
sDecina[3] := 'tredici';
sDecina[4] := 'quattordici';
sDecina[5] := 'quindici';
sDecina[6] := 'sedici';
sDecina[7] := 'diciassette';
sDecina[8] := 'diciotto';
sDecina[9] := 'diciannove';
attrib[1] := 'miliardi';
attrib[2] := 'milioni';
attrib[3] := 'mila';
terzetti[1] := '';
terzetti[2] := '';
terzetti[3] := '';
terzetti[4] := '';
parola := '';
if numero > 999999999999 then
begin
result := '-errore-';
exit;
end;
if numero = 0 then
begin
//Se il numero e' zero, e' presto fatto
result := 'zero';
exit;
end;
//Altrimenti...
//Prima convertiamo il numero in string
strNum := formatFloat('0000000000.00',numero);
//showMessage('StrNum ==> ' + strNum);
decim := strNum[12] + strNum[13] ;
numero := trunc(numero);
strNum := formatFloat('000000000000',numero);
for i := 1 to 4 do
for j := 1 to 3 do
terzetti[i] := terzetti[i] + StrNum[(3*(i-1)) + j];
for i := 4 DownTo 1 do
begin
StrApp := '';
//Se uno dei terzetti e' uguale ad 1
if strToInt(terzetti[i]) = 1 then
begin
case i of
1 : StrApp := 'unmiliardo';
2 : StrApp := 'unmilione';
3 : StrApp := 'mille';
4 : StrApp := 'uno';
end;
end
else
begin
for j := 1 to 3 do
begin
cifra := strToInt(terzetti[i][j]);
//Analisi cifra centinaia del terzetto
if j = 1 then
begin
if cifra <> 0 then
begin
if cifra > 1 then
strApp := unita[cifra];
StrApp := StrApp + 'cento';
if terzetti[i][2] = '8' then
StrApp := copy(StrApp,1,(length(StrApp) - 1));
end;
end;
//Analisi cifra decine del terzetto
if j = 2 then
begin
if cifra <> 0 then
begin
if cifra = 1 then
strApp := strApp + sDecina[StrToInt(terzetti[i][3])]
else
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -