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

📄 ribawizard_u.pas

📁 基于OOP设计的一套较好的ERP系统
💻 PAS
📖 第 1 页 / 共 3 页
字号:
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 + -