📄 produzione_u.pas
字号:
unit Produzione_u;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Db, DBTables;
type
TProduzione = class(TDataModule)
TTProduzione: TTable;
TTDProduzione: TTable;
DSProduzione: TDataSource;
DsDproduzione: TDataSource;
TTPartiProdotto: TTable;
DsPartiprodotto: TDataSource;
TTProduzioneId: TIntegerField;
TTProduzioneNumerolotto: TIntegerField;
TTProduzioneData: TDateField;
TTProduzioneRiferimentointerno: TStringField;
TTProduzioneIncaricato: TStringField;
TTDProduzioneId: TIntegerField;
TTDProduzioneArticolo: TStringField;
TTDProduzioneNote: TMemoField;
TTDProduzioneIdriga: TIntegerField;
TTDProduzioneRiferimentoordine: TIntegerField;
TTPartiProdottoId: TIntegerField;
TTPartiProdottoIdriga: TIntegerField;
TTPartiProdottoComponente: TStringField;
TTPartiProdottoQta: TFloatField;
TTPartiProdottoAggiunta: TBooleanField;
TTProduzioneDepositoparti: TStringField;
TTProduzioneDepositoprodotti: TStringField;
TTDProduzioneDescrizione: TStringField;
TTPartiProdottoDescrizione: TStringField;
TTDProduzioneQta: TFloatField;
TTProduzioneCausaleparti: TStringField;
TTProduzioneCausaleprodotti: TStringField;
TTPartiProdottoArticoloEtichetta: TStringField;
TTDProduzioneArticoloetichetta: TStringField;
TTProdMatr: TTable;
TTProdMatrId: TIntegerField;
TTProdMatrIdriga: TIntegerField;
TTProdMatrMatricola: TStringField;
TTProdMatrScaricato: TBooleanField;
DsProdMatr: TDataSource;
TTProduzioneDepositopartiLookUp: TStringField;
TTProduzioneDepositoProdottiLookUp: TStringField;
TTProduzioneCausalePartiLookUp: TStringField;
TTProduzioneCausaleprodottilookup: TStringField;
procedure TTProduzioneAfterInsert(DataSet: TDataSet);
procedure TTDProduzioneAfterInsert(DataSet: TDataSet);
procedure TTPartiProdottoBeforeEdit(DataSet: TDataSet);
procedure TTPartiProdottoAfterInsert(DataSet: TDataSet);
procedure TTPartiProdottoAfterPost(DataSet: TDataSet);
procedure TTPartiProdottoBeforeDelete(DataSet: TDataSet);
procedure TTPartiProdottoCalcFields(DataSet: TDataSet);
procedure TTDProduzioneCalcFields(DataSet: TDataSet);
procedure TTDProduzioneBeforeEdit(DataSet: TDataSet);
procedure TTDProduzioneBeforeDelete(DataSet: TDataSet);
procedure TTDProduzioneAfterPost(DataSet: TDataSet);
procedure TTProduzioneBeforeInsert(DataSet: TDataSet);
procedure TTProduzioneAfterOpen(DataSet: TDataSet);
private
{ Private declarations }
Procedure AggiornaGiacenzaParti(Deposito,
Causale,Cod_old : string ;
qta_old : real;
Cod_new : string;
Qta_new : real) ;
Procedure AggiornaGiacenzaProdotti(Deposito,
Causale,Cod_old : string ;
qta_old : real;
Cod_new : string;
Qta_new : real) ;
public
{ Public declarations }
end;
var
Produzione: TProduzione;
Componente_old,prodotto_old : string ;
Qta_old,Qta_prodotto_old : real ;
Deposito_parti_old,deposito_prodotti_old :string ;
Causale_parti,
Causale_prodotti,
Deposito_parti,
Deposito_prodotti,
Riferimento,
Incaricato : string ;
implementation
uses ana_mod, Doc_mod;
{$R *.DFM}
Procedure Tproduzione.AggiornaGiacenzaParti(Deposito,
Causale,Cod_old : string ;
qta_old : real;
Cod_new : string;
Qta_new : real) ;
begin
// Scarichiamo codice precedente, se diverso da ''
If Cod_old <> '' then
With ModulodatiDocumenti do
begin
If TTGiacenza.FindKey([Cod_old,deposito]) then
begin
TTGiacenza.Edit ;
TTGiacenzaQtaScarico.Value := TTgiacenzaQtaSCarico.Value - qta_old ;
TTGiacenza.Post ;
end
else
begin
TTGiacenza.Insert ;
TTGiacenzaArticolo.asString := Cod_old ;
TTGiacenzaDeposito.asString := deposito ;
TTGiacenzaQtaScarico.Value := - qta_old ;
TTGiacenza.Post ;
end ;
end ;
// Carichiamo codice nuovo se diverso da ''
If Cod_new <> '' then
With ModulodatiDocumenti do
begin
If TTGiacenza.FindKey([Cod_new,deposito]) then
begin
TTGiacenza.Edit ;
TTGiacenzaQtaScarico.Value := TTgiacenzaQtaSCarico.Value + qta_new ;
TTGiacenza.Post ;
end
else
begin
TTGiacenza.Insert ;
TTGiacenzaArticolo.asString := Cod_new ;
TTGiacenzaDeposito.asString := deposito ;
TTGiacenzaQtaScarico.Value := qta_new ;
TTGiacenza.Post ;
end ;
end ;
end ;
Procedure Tproduzione.AggiornaGiacenzaProdotti(Deposito,
Causale,Cod_old : string ;
qta_old : real;
Cod_new : string;
Qta_new : real) ;
begin
// Scarichiamo codice precedente, se diverso da ''
If Cod_old <> '' then
With ModulodatiDocumenti do
begin
If TTGiacenza.FindKey([Cod_old,deposito]) then
begin
TTGiacenza.Edit ;
TTGiacenzaQtacarico.Value := TTgiacenzaQtaCarico.Value - qta_old ;
TTGiacenza.Post ;
end
else
begin
TTGiacenza.Insert ;
TTGiacenzaArticolo.asString := Cod_old ;
TTGiacenzaDeposito.asString := deposito ;
TTGiacenzaQtacarico.Value := - qta_old ;
TTGiacenza.Post ;
end ;
end ;
// Carichiamo codice nuovo se diverso da ''
If Cod_new <> '' then
With ModulodatiDocumenti do
begin
If TTGiacenza.FindKey([Cod_new,deposito]) then
begin
TTGiacenza.Edit ;
TTGiacenzaQtaCarico.Value := TTgiacenzaQtaCarico.Value + qta_new ;
TTGiacenza.Post ;
end
else
begin
TTGiacenza.Insert ;
TTGiacenzaArticolo.asString := Cod_new ;
TTGiacenzaDeposito.asString := deposito ;
TTGiacenzaQtacarico.Value := qta_new ;
TTGiacenza.Post ;
end ;
end ;
end ;
procedure TProduzione.TTProduzioneAfterInsert(DataSet: TDataSet);
begin
TTProduzioneId.Value := ModuloDatiAnagrafiche.IncNumeratore('PR','','','') ;
TTProduzioneData.Value := Now ;
TTProduzioneNumeroLotto.Value := TTProduzioneId.Value ;
TTProduzioneCausaleParti.asString := Causale_parti ;
TTProduzioneCausaleProdotti.asString := Causale_prodotti ;
TTProduzioneDepositoParti.asString := Deposito_parti ;
TTProduzioneDepositoProdotti.asString := Deposito_prodotti ;
TTProduzioneIncaricato.asString := Incaricato ;
TTProduzioneRiferimentoInterno.asString := Riferimento ;
end;
procedure TProduzione.TTDProduzioneAfterInsert(DataSet: TDataSet);
begin
TTDproduzioneIdRiga.Value := ModuloDatiAnagrafiche.IncNumeratore('PR','DTPR','','') ;
Prodotto_old := '' ;
qta_prodotto_old := 0 ;
end;
procedure TProduzione.TTPartiProdottoBeforeEdit(DataSet: TDataSet);
begin
Componente_old := TTPartiProdottoArticoloEtichetta.AsString ;
qta_old := TTPartiProdottoQta.Value ;
end;
procedure TProduzione.TTPartiProdottoAfterInsert(DataSet: TDataSet);
begin
Componente_old := '' ;
Qta_old := 0 ;
end;
procedure TProduzione.TTPartiProdottoAfterPost(DataSet: TDataSet);
begin
AggiornaGiacenzaParti(TTProduzioneDepositoparti.asString,
TTProduzioneCausaleParti.asString,
Componente_old,
Qta_old,
TTPartiProdottoArticoloEtichetta.asString,
TTPartiProdottoQta.Value) ;
end;
procedure TProduzione.TTPartiProdottoBeforeDelete(DataSet: TDataSet);
begin
AggiornaGiacenzaParti(TTProduzioneDepositoParti.asString,
TTProduzioneCausaleParti.asString,
TTPartiProdottoArticoloEtichetta.asString,
TTPartiProdottoQta.Value,
'',
0) ;
end;
procedure TProduzione.TTPartiProdottoCalcFields(DataSet: TDataSet);
begin
If ModulodatiAnagrafiche.TTarticoliLookup.FindKey([TTPartiProdottocomponente.asstring]) then
TTPartiProdottoArticoloEtichetta.asString := ModulodatiAnagrafiche.TTArticoliLookUpArticoloEtichetta.asString ;
end;
procedure TProduzione.TTDProduzioneCalcFields(DataSet: TDataSet);
begin
If ModulodatiAnagrafiche.TTarticoliLookUp.FindKey([TTDproduzionearticolo.asstring]) then
TTDProduzioneArticoloEtichetta.asString := ModulodatiAnagrafiche.TTArticoliLookUpArticoloEtichetta.asString ;
end;
procedure TProduzione.TTDProduzioneBeforeEdit(DataSet: TDataSet);
begin
Prodotto_old := TTDProduzioneArticoloetichetta.AsString ;
qta_prodotto_old := TTDProduzioneQta.Value ;
end;
procedure TProduzione.TTDProduzioneBeforeDelete(DataSet: TDataSet);
begin
AggiornaGiacenzaProdotti(TTProduzioneDepositoProdotti.asString,
TTProduzioneCausaleProdotti.asString,
TTDProduzioneArticoloEtichetta.asString,
TTDProduzioneQta.Value,
'',
0) ;
end;
procedure TProduzione.TTDProduzioneAfterPost(DataSet: TDataSet);
begin
AggiornaGiacenzaProdotti(TTProduzioneDepositoProdotti.asString,
TTProduzioneCausaleProdotti.asString,
Prodotto_old,
qta_prodotto_old,
TTDProduzioneArticoloEtichetta.asString,
TTDproduzioneQta.Value) ;
// Creiamo il dettaglio per questa riga.
// Primo : Cancelliamo il dettaglio se gi
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -