📄 uproducebill_e.pas
字号:
unit uproducebill_e;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ubaseinfo_e, DB, ADODB, StdCtrls, wwcheckbox, Mask, wwdbedit,
ExtCtrls, wwdblook, wwdbdatetimepicker, DBClient, Buttons;
const
WM_USER_CREATEDATA = WM_USER+1024;
type
Tfrmproducebill_e = class(TfrmBaseinfo_e)
Label4: TLabel;
edit2: TwwDBEdit;
Label5: TLabel;
wwDBEdit2: TwwDBEdit;
Label6: TLabel;
edit3: TwwDBEdit;
edit5: TwwDBEdit;
Label7: TLabel;
edit4: TwwDBEdit;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
edit1: TwwDBEdit;
Label11: TLabel;
Label12: TLabel;
Label13: TLabel;
edit6: TwwDBEdit;
Panel1: TPanel;
wwCheckBox2: TwwCheckBox;
Label14: TLabel;
Label15: TLabel;
Label16: TLabel;
Label17: TLabel;
wwDBDateTimePicker1: TwwDBDateTimePicker;
wwDBDateTimePicker2: TwwDBDateTimePicker;
wwDBDateTimePicker3: TwwDBDateTimePicker;
wwDBLookupCombo1: TwwDBLookupCombo;
wwDBLookupCombo2: TwwDBLookupCombo;
wwDBDateTimePicker4: TwwDBDateTimePicker;
wwDBLookupCombo3: TwwDBLookupCombo;
CDSmaterial: TClientDataSet;
CDSproduce: TClientDataSet;
Quser: TADOQuery;
Quserfname: TStringField;
CDSproducestate: TStringField;
CDSmaterialstate: TStringField;
SpeedButton1: TSpeedButton;
spGetOutNumber: TADOStoredProc;
Qitem: TADOQuery;
Qitemfcode: TWideStringField;
Qitemfname: TWideStringField;
Qitemfdesc: TWideStringField;
Qitemfcolor: TWideStringField;
Qitemfunit: TWideStringField;
Qitemfid: TIntegerField;
procedure FormCreate(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
procedure createdata(var msg:Tmessage);message WM_USER_CREATEDATA;
function Getoutnumber(iBilltypeid:integer):String;
{ Private declarations }
public
{ Public declarations }
end;
var
frmproducebill_e: Tfrmproducebill_e;
implementation
uses uproducebill, Data, Global, uProductFilter;
{$R *.dfm}
procedure Tfrmproducebill_e.createdata(var msg: Tmessage);
begin
with Quser do
begin
close;
sql.Clear;
sql.Add('Select fname from tuser order by fname');
open;
end;
with CDSmaterial do
begin
close;
fielddefs.Add('State',ftString,18);
Createdataset;
AppendRecord(['准备开始']);
AppendRecord(['已分解物料']);
AppendRecord(['已申请采购']);
open;
end;
with CDSproduce do
begin
close;
fielddefs.Add('State',ftString,18);
Createdataset;
AppendRecord(['准备开始']);
AppendRecord(['已制定生产计划']);
AppendRecord(['已制定资源计划']);
open;
end;
end;
procedure Tfrmproducebill_e.FormCreate(Sender: TObject);
begin
inherited;
MainTable:='Tproducebill';
end;
procedure Tfrmproducebill_e.FormShow(Sender: TObject);
begin
inherited;
postmessage(handle,WM_USER_CREATEDATA,0,0);
application.ProcessMessages;
end;
procedure Tfrmproducebill_e.SpeedButton1Click(Sender: TObject);
begin
inherited;
iProductID:=0;
if not assigned(frmProductFilter) then
frmProductFilter:=TfrmProductFilter.Create(application);
frmProductFilter.ShowModal;
if iproductID>0 then
begin
with Qitem do
begin
close;
sql.Clear;
sql.Add('select fid,fcode,fname,fdesc,fcolor,funit from titem where fid='+vartosql(iproductID));
open;
end;
if Qitem.RecordCount > 0 then
begin
Dataset.FieldByName('fitemcode').AsString:=Qitem.fieldbyname('fcode').AsString;
Dataset.FieldByName('fitemname').AsString:=Qitem.fieldbyname('fname').AsString;
Dataset.FieldByName('fitemdesc').AsString:=Qitem.fieldbyname('fdesc').AsString;
Dataset.FieldByName('fitemcolor').AsString:=Qitem.fieldbyname('fcolor').AsString;
Dataset.FieldByName('fitemunit').AsString:=Qitem.fieldbyname('funit').AsString;
Dataset.FieldByName('fitemid').AsInteger:=Qitem.fieldbyname('fid').AsInteger;
end;
end;
iProductID:=0;
end;
function Tfrmproducebill_e.Getoutnumber(iBilltypeid: integer): String;
begin
//取外部单号NO
if ibilltypeid=0 then Result:='';
Try
With spGetOutNumber do
begin
parameters.ParamValues['@BillType']:=iBillTypeID;
Execproc;
end;
except
on E:Exception do
begin
Result:='';
MessageDlg('取单据号失败!'+#13#10+E.Message,mterror,[mbOk],0);
Abort;
end;
end;
Result:=Trim(spGetOutNumber.Parameters.ParamValues['@OutNumber']);
end;
procedure Tfrmproducebill_e.Button1Click(Sender: TObject);
begin
if iBillTypeid>0 then
begin
if Dataset.State=dsInsert then
Dataset.FieldByName('fname').AsString:=Getoutnumber(iBilltypeid);
end;
if wwDBEdit2.Text='' then
begin
messagedlg('生产数量不能为空 ! ',mtError,[mbok],0);
Exit;
end;
inherited;
end;
procedure Tfrmproducebill_e.Button3Click(Sender: TObject);
begin
if (iBillTypeid>0) and (not isAddEdit) then
begin
Dataset.FieldByName('fname').AsString:=Getoutnumber(iBilltypeid);
end;
if wwDBEdit2.Text='' then
begin
messagedlg('生产数量不能为空 ! ',mtError,[mbok],0);
Exit;
end;
inherited;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -