📄 resi.pas
字号:
unit resi;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
RXCtrls, PageMngr, StdCtrls, ExtCtrls, Db, DBTables, RxLookup, Mask,
ToolEdit, ActnList, Grids, DBGrids, DBCtrls, CurrEdit;
type
TReso_form = class(TForm)
Panel1: TPanel;
Panel2: TPanel;
Notebook1: TNotebook;
AvantiBtn: TButton;
IndietroBtn: TButton;
PageManager1: TPageManager;
P1: TPageProxy;
P2: TPageProxy;
P3: TPageProxy;
Panel3: TPanel;
RxLabel1: TRxLabel;
Panel4: TPanel;
QScontrini: TQuery;
Label42: TLabel;
RxDBLookupList1: TRxDBLookupList;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
descrizioneLabel: TLabel;
nominativoLabel: TLabel;
dal: TDateEdit;
al: TDateEdit;
ActionList1: TActionList;
Annulla: TAction;
articolo: TEdit;
cliente: TEdit;
Panel5: TPanel;
RxLabel2: TRxLabel;
Panel6: TPanel;
Panel7: TPanel;
RxLabel3: TRxLabel;
Panel8: TPanel;
elenco: TDBGrid;
dsScontrini: TDataSource;
QScontriniData: TDateField;
QScontriniNumeroscontrino: TFloatField;
QScontriniCliente: TStringField;
QScontriniScontovalore: TCurrencyField;
QScontriniSconto: TFloatField;
QScontriniAbbuono: TCurrencyField;
QScontriniTotalemerce: TCurrencyField;
QScontriniArticolo: TStringField;
QScontriniQuantita: TFloatField;
QScontriniRiga: TIntegerField;
QScontriniPrezzoIvato: TCurrencyField;
QScontriniScontoDett: TFloatField;
QScontriniScontoValDett: TCurrencyField;
QScontriniNominativo: TStringField;
QScontriniDescrizione: TStringField;
TTResi: TTable;
TTResiIdScontrino: TIntegerField;
TTResiIdRigaScontrino: TIntegerField;
TTResiData: TDateField;
TTResiQta: TFloatField;
TTResiValore: TCurrencyField;
TTResiValuta: TStringField;
TTResiIdbuono: TIntegerField;
TTResiIdReso: TAutoIncField;
dsResi: TDataSource;
TTBuoni: TTable;
TTBuoniId: TAutoIncField;
TTBuoniTipo: TStringField;
TTBuoniData: TDateField;
TTBuoniCliente: TStringField;
TTBuoniDescrizione: TMemoField;
TTBuoniImporto: TCurrencyField;
TTBuoniValuta: TStringField;
TTBuoniUsato: TBooleanField;
TTBuoniIdGiornale: TStringField;
dsBuoni: TDataSource;
TTResiIdGiornale: TStringField;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
TTResiImporto: TCurrencyField;
Label4: TLabel;
Label5: TLabel;
Conferma: TAction;
Button1: TButton;
QScontriniValuta: TStringField;
Button2: TButton;
descrizione: TMemo;
data: TDateEdit;
quantita: TRxCalcEdit;
valore: TRxCalcEdit;
Label10: TLabel;
importo: TCurrencyEdit;
valuta: TEdit;
QScontriniDeposito: TStringField;
dsCLienti: TDataSource;
Button3: TButton;
Avanti: TAction;
Indietro: TAction;
procedure AnnullaExecute(Sender: TObject);
procedure PageManager1PageChanged(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure P2Show(Next: Boolean);
procedure TTBuoniAfterInsert(DataSet: TDataSet);
procedure TTBuoniAfterPost(DataSet: TDataSet);
procedure TTBuoniBeforeDelete(DataSet: TDataSet);
procedure TTResiAfterInsert(DataSet: TDataSet);
procedure TTResiAfterPost(DataSet: TDataSet);
procedure TTResiBeforeDelete(DataSet: TDataSet);
procedure ConfermaExecute(Sender: TObject);
procedure P3Enter(Next: Boolean);
procedure Button3Click(Sender: TObject);
procedure articoloChange(Sender: TObject);
procedure clienteChange(Sender: TObject);
procedure AvantiExecute(Sender: TObject);
procedure IndietroExecute(Sender: TObject);
procedure RxDBLookupList1Click(Sender: TObject);
procedure RxDBLookupList1KeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure quantitaChange(Sender: TObject);
procedure valoreChange(Sender: TObject);
private
{ Private declarations }
public
Function Ricerca : boolean ;
procedure FaiReso;
{ Public declarations }
end;
var
Reso_form: TReso_form;
implementation
uses main, rica_art_u_fornit;
{$R *.DFM}
procedure TReso_form.AnnullaExecute(Sender: TObject);
begin
QScontrini.Close ;
Release ;
end;
Function TReso_form.Ricerca : boolean ;
begin
result := False ;
Qscontrini.Close ;
Qscontrini.ParamByName('datainizio').Value := Dal.date ;
Qscontrini.ParamByName('datafine').Value := Al.date ;
QScontrini.ParamByName('tuttiArt').Value := (Articolo.Text = '') ;
QScontrini.ParamByName('Articolopar').Value := Articolo.Text ;
Qscontrini.ParamByName('TuttiCli').Value := (Cliente.Text = '') ;
QScontrini.ParamByName('ClientePar').Value := Cliente.Text ;
QScontrini.Prepare ;
QScontrini.Open ;
if Qscontrini.IsEmpty then
begin
ShowMessage('Nessuno scontrino corrisponde alla ricerca...') ;
exit ;
end ;
result := true ;
end;
procedure TReso_form.PageManager1PageChanged(Sender: TObject);
begin
if notebook1.ActivePage = 'Elenco' then
if not ricerca then indietro.execute ;
end;
procedure TReso_form.FormCreate(Sender: TObject);
begin
dal.date := now - 7 ;
al.date := now ;
end;
procedure TReso_form.P2Show(Next: Boolean);
begin
elenco.Columns[1].Visible := (cliente.Text = '') ;
elenco.Columns[2].Visible := (cliente.Text = '') ;
end;
procedure TReso_form.FaiReso;
begin
// Preparazione del reso....
data.date := now ;
Quantita.Value := QScontriniQuantita.AsFloat ;
Valore.Value := (QScontriniPrezzoIvato.asCurrency *
(1 - QScontriniScontoDett.AsFloat / 100) -
(QscontriniScontoValDett.AsCurrency / QScontriniQuantita.AsFloat)) *
(1 - QScontriniSconto.AsFloat / 100) *
(1 - (QScontriniScontoValore.AsFloat / QScontriniTotaleMerce.AsFloat)) *
(1 - (QscontriniAbbuono.AsFloat / QScontriniTotaleMerce.asFloat)) ;
Descrizione.Lines.Clear ;
Descrizione.Lines.Add( 'Reso merce da scontrino N
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -