expertcad/SRC/SCSNormBase/U_MakeEditSupplyKind.pas
2025-05-12 10:07:51 +03:00

188 lines
6.1 KiB
ObjectPascal

unit U_MakeEditSupplyKind;
interface
uses
Windows, U_LNG, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,
U_BaseCommon, U_BaseConstants, RzButton, ExtCtrls, RzPanel, StdCtrls, RzEdit, Mask, kbmMemTable,
siComp, siLngLnk;
type
TF_MakeEditSupplyKind = class(TForm)
RzGroupBox1: TRzGroupBox;
RzGroupBox2: TRzGroupBox;
btOk: TRzBitBtn;
btCancel: TRzBitBtn;
lng_Forms: TsiLangLinked;
RzGroupBox3: TRzGroupBox;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
edName: TRzEdit;
edIzm: TRzEdit;
neUnitKolvo: TRzNumericEdit;
RzGroupBox4: TRzGroupBox;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
edNameTradUOM: TRzEdit;
edIzmTradUOM: TRzEdit;
neUnitKolvoTradUOM: TRzNumericEdit;
procedure FormCreate(Sender: TObject);
procedure RzGroupBox2Resize(Sender: TObject);
private
GForm: TForm;
public
NewID: Integer;
constructor Create(AOwner: TComponent; AForm: TForm);
destructor Destroy; override;
function Execute(AMakeEdit: TMakeEdit; AMemTable: TkbmMemTable): Boolean;
end;
//var
// F_MakeEditSupplyKind: TF_MakeEditSupplyKind;
implementation
Uses U_Main, Unit_DM_SCS, DB;
{$R *.dfm}
{ TF_MakeEditSupplyKind }
constructor TF_MakeEditSupplyKind.Create(AOwner: TComponent; AForm: TForm);
begin
GForm := AForm;
inherited Create(AOwner);
end;
destructor TF_MakeEditSupplyKind.Destroy;
begin
inherited;
end;
function TF_MakeEditSupplyKind.Execute(AMakeEdit: TMakeEdit; AMemTable: TkbmMemTable): Boolean;
var
SupplyKindID: Integer;
SuppliesKind: TSuppliesKind;
begin
Result := false;
try
Caption := '';
NewID := 0;
SupplyKindID := 0;
case AMakeEdit of
meMake:
begin
Caption := cMakeEditSupplyKind_Msg1_1;
edName.Text := '';
edIzm.Text := '';
neUnitKolvo.Value := 1;
end;
meEdit:
begin
Caption := cMakeEditSupplyKind_Msg1_2;
if AMemTable <> nil then
begin
SupplyKindID := AMemTable.FieldByName(fnID).AsInteger;
edName.Text := AMemTable.FieldByName(fnName).AsString;
edNameTradUOM.Text := AMemTable.FieldByName(fnNameTradUOM).AsString;
edIzm.Text := AMemTable.FieldByName(fnIzm).AsString;
edIzmTradUOM.Text := AMemTable.FieldByName(fnIzmTradUOM).AsString;
neUnitKolvo.Value := RoundCP(AMemTable.FieldByName(fnUnitKolvo).AsFloat);
neUnitKolvoTradUOM.Value := RoundCP(AMemTable.FieldByName(fnUnitKolvoTradUOM).AsFloat);
end
else
with TF_Main(GForm).DM do
begin
SupplyKindID := DataSet_SuppliesKinds.FN(fnID).AsInteger;
edName.Text := DataSet_SuppliesKinds.FN(fnName).AsString;
edNameTradUOM.Text := DataSet_SuppliesKinds.FN(fnNameTradUOM).AsString;
edIzm.Text := DataSet_SuppliesKinds.FN(fnIzm).AsString;
edIzmTradUOM.Text := DataSet_SuppliesKinds.FN(fnIzmTradUOM).AsString;
neUnitKolvo.Value := RoundCP(DataSet_SuppliesKinds.FN(fnUnitKolvo).AsFloat);
neUnitKolvoTradUOM.Value := RoundCP(DataSet_SuppliesKinds.FN(fnUnitKolvoTradUOM).AsFloat);
end;
end;
end;
if ShowModal = mrOk then
begin
Result := true;
if AMemTable <> nil then
begin
case AMakeEdit of
meMake:
AMemTable.Append;
meEdit:
AMemTable.Edit;
end;
if AMemTable.State <> dsBrowse then
begin
AMemTable.FieldByName(fnName).AsString := edName.Text;
AMemTable.FieldByName(fnNameTradUOM).AsString := edNameTradUOM.Text;
AMemTable.FieldByName(fnIzm).AsString := edIzm.Text;
AMemTable.FieldByName(fnIzmTradUOM).AsString := edIzmTradUOM.Text;
AMemTable.FieldByName(fnUnitKolvo).AsFloat := RoundCP(neUnitKolvo.Value);
AMemTable.FieldByName(fnUnitKolvoTradUOM).AsFloat := RoundCP(neUnitKolvoTradUOM.Value);
AMemTable.FieldByName(fnIsModified).AsBoolean := true;
AMemTable.Post;
if AMakeEdit = meMake then
NewID := AMemTable.FieldByName(fnID).AsInteger;
end;
end
else
with TF_Main(GForm).DM do
begin
ZeroMemory(@SuppliesKind, SizeOf(TSuppliesKind));
SuppliesKind.ID := SupplyKindID;
SuppliesKind.Name := edName.Text;
SuppliesKind.NameTradUOM := edNameTradUOM.Text;
SuppliesKind.Izm := edIzm.Text;
SuppliesKind.IzmTradUOM := edIzmTradUOM.Text;
SuppliesKind.UnitKolvo := RoundCP(neUnitKolvo.Value);
SuppliesKind.UnitKolvoTradUOM := RoundCP(neUnitKolvoTradUOM.Value);
SaveSuppliesKind(AMakeEdit, @SuppliesKind);
if AMakeEdit = meMake then
NewID := SuppliesKind.ID
else
if AMakeEdit = meEdit then
DataSet_SuppliesKinds.FullRefresh;
{case AMakeEdit of
meMake:
DataSet_SuppliesKinds.Append;
meEdit:
DataSet_SuppliesKinds.Edit;
end;
if DataSet_SuppliesKinds.State <> dsBrowse then
begin
DataSet_SuppliesKinds.FN(fnName).AsString := edName.Text;
DataSet_SuppliesKinds.FN(fnIzm).AsString := edIzm.Text;
DataSet_SuppliesKinds.FN(fnUnitKolvo).AsFloat := RoundCP(neUnitKolvo.Value);
DataSet_SuppliesKinds.Post;
if AMakeEdit = meMake then
NewID := DataSet_SuppliesKinds.FN(fnID).AsInteger;
end;}
end;
end;
except
on E: Exception do AddExceptionToLog('TF_MakeEditSupplyKind.Execute: '+E.Message);
end;
end;
procedure TF_MakeEditSupplyKind.FormCreate(Sender: TObject);
begin
neUnitKolvo.DisplayFormat := GetDisplayFormatForFloat;
neUnitKolvoTradUOM.DisplayFormat := GetDisplayFormatForFloat;
end;
procedure TF_MakeEditSupplyKind.RzGroupBox2Resize(Sender: TObject);
begin
SetMiddleControlChilds(TControl(Sender), TControl(Self));
end;
end.