📄 craftinput.pas
字号:
unit CraftInput;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, BasicFind, Menus, ActnList, ImgList, StdCtrls, RzLstBox,
RzBckgnd, RzButton, RzEdit, RzLabel, Mask, RzRadChk, RzPanel, ExtCtrls,
Grids, DBGridEh, RzTabs, RzDBEdit, TeEngine, Series, TeeProcs, Chart,
DBChart, DB, DBCtrls, RzDBCmbo, RzCmboBx, ppDB, ppBands, ppCache,
ppClass, ppProd, ppReport, ppRelatv, ppDBPipe, ppComm, ppEndUsr, RzGrids;
type
TfrmCraftInput = class(TfrmBasicFind)
actExcelFind: TAction;
dbgridList: TDBGridEh;
RzPanel8: TRzPanel;
Splitter1: TSplitter;
ppCraftXB: TppDBPipeline;
ppCraft: TppDBPipeline;
Panel1: TPanel;
RzPageControl1: TRzPageControl;
TabSheet1: TRzTabSheet;
Label3: TLabel;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
Label13: TLabel;
Label14: TLabel;
Label15: TLabel;
Label16: TLabel;
Label24: TLabel;
Label8: TLabel;
RzSeparator6: TRzSeparator;
Label26: TLabel;
Label27: TLabel;
Label28: TLabel;
Label35: TLabel;
Label29: TLabel;
Label30: TLabel;
Label33: TLabel;
Label1: TLabel;
Label2: TLabel;
Label5: TLabel;
Label7: TLabel;
Label12: TLabel;
Label17: TLabel;
Label18: TLabel;
Label19: TLabel;
Label20: TLabel;
Label21: TLabel;
RzSeparator2: TRzSeparator;
Label4: TLabel;
Label6: TLabel;
Label22: TLabel;
Label23: TLabel;
Label25: TLabel;
Label31: TLabel;
RzDBEdit1: TRzDBEdit;
RzDBEdit3: TRzDBEdit;
RzDBEdit10: TRzDBEdit;
RzDBEdit11: TRzDBEdit;
RzDBEdit13: TRzDBEdit;
RzDBEdit14: TRzDBEdit;
RzDBEdit15: TRzDBEdit;
RzDBLookupComboBox1: TRzDBLookupComboBox;
RzDBLookupComboBox3: TRzDBLookupComboBox;
RzDBEdit2: TRzDBEdit;
RzDBEdit8: TRzDBEdit;
RzDBEdit12: TRzDBEdit;
RzDBMemo2: TRzDBMemo;
RzDBEdit17: TRzDBEdit;
RzDBEdit18: TRzDBEdit;
RzDBEdit19: TRzDBEdit;
RzDBEdit20: TRzDBEdit;
RzDBEdit21: TRzDBEdit;
RzDBEdit22: TRzDBEdit;
RzDBEdit23: TRzDBEdit;
RzDBEdit4: TRzDBEdit;
RzDBEdit5: TRzDBEdit;
RzDBEdit6: TRzDBEdit;
RzDBEdit24: TRzDBEdit;
RzDBEdit25: TRzDBEdit;
RzDBEdit26: TRzDBEdit;
RzDBEdit9: TRzDBEdit;
RzDBEdit16: TRzDBEdit;
RzDBEdit7: TRzDBEdit;
RzDBEdit27: TRzDBEdit;
RzDBLookupComboBox2: TRzDBLookupComboBox;
RzDBLookupComboBox5: TRzDBLookupComboBox;
RzDBLookupComboBox6: TRzDBLookupComboBox;
RzDBLookupComboBox7: TRzDBLookupComboBox;
RzDBEdit28: TRzDBEdit;
Label36: TLabel;
RzDBEdit32: TRzDBEdit;
TabSheet2: TRzTabSheet;
actShowPrice: TAction;
RzPanel9: TRzPanel;
plInput: TRzPanel;
Label41: TLabel;
Label42: TLabel;
Label43: TLabel;
Label44: TLabel;
Label45: TLabel;
Label46: TLabel;
Label47: TLabel;
Label48: TLabel;
edtZS: TRzEdit;
cboxJwlx: TRzComboBox;
edtPH: TRzEdit;
edtBZ: TRzEdit;
edtYldm: TRzEdit;
edtTF: TRzEdit;
edtSH: TRzEdit;
btnAdd: TRzBitBtn;
btnDel: TRzBitBtn;
edtFG: TRzEdit;
btnModif: TRzBitBtn;
DBGridEh3: TDBGridEh;
plYldm: TRzPanel;
RzSeparator4: TRzSeparator;
RzLabel8: TRzLabel;
DBGridEh1: TDBGridEh;
Bevel2: TBevel;
Panel2: TPanel;
plPrice: TPanel;
Label39: TLabel;
Label40: TLabel;
RzDBEdit35: TRzDBEdit;
RzDBEdit36: TRzDBEdit;
Panel3: TPanel;
Label37: TLabel;
Label38: TLabel;
RzSeparator1: TRzSeparator;
Label32: TLabel;
Label34: TLabel;
Label49: TLabel;
RzDBEdit33: TRzDBEdit;
btnOK: TRzBitBtn;
RzDBEdit29: TRzDBEdit;
RzDBEdit30: TRzDBEdit;
RzDBEdit31: TRzDBEdit;
RzDBEdit34: TRzDBEdit;
RzDBEdit37: TRzDBEdit;
DBGridEh2: TDBGridEh;
Bevel1: TBevel;
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure actExcelFindExecute(Sender: TObject);
procedure dbgridListTitleBtnClick(Sender: TObject; ACol: Integer; Column: TColumnEh);
procedure RzPageControl1Change(Sender: TObject);
procedure edtYldmChange(Sender: TObject);
procedure edtYldmKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
procedure DBGridEh1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
procedure btnAddClick(Sender: TObject);
procedure btnDelClick(Sender: TObject);
procedure RzDBEdit9Enter(Sender: TObject);
procedure dbgridListDrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumnEh; State: TGridDrawState);
procedure DBGridEh3DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumnEh; State: TGridDrawState);
procedure cboxJwlxChange(Sender: TObject);
procedure btnModifClick(Sender: TObject);
procedure btnOKClick(Sender: TObject);
private
{ Private declarations }
procedure doMyOpen(Sender: TObject; var _EventNote, _State: String); override;
procedure doNewData(Sender: TObject; var _EventNote, _State: String); override;
procedure doSave(Sender: TObject; var _EventNote, _State: String); override;
procedure doCancel(Sender: TObject; var _EventNote, _State: String); override;
procedure doDelete(Sender: TObject; var _EventNote, _State: String); override;
procedure doCheck(Sender: TObject; var _EventNote, _State: String); override;
procedure doUnCheck(Sender: TObject; var _EventNote, _State: String); override;
procedure doForLog1(Sender: TObject; var _EventNote, _State: String); override;
procedure doAfterScroll(DataSet: TDataSet);
procedure doAfterPost(DataSet: TDataSet);
procedure doBeforePrint(Sender: TObject); override;
function GetJWSHZ(_Style: String): String;
procedure ButtonState(_IsActive, _IsEmpty, _IsModify, _IsCheck :Boolean); override;
public
{ Public declarations }
end;
var
frmCraftInput: TfrmCraftInput;
implementation
uses dm32, MyPublic, dmc32;
{$R *.dfm}
procedure TfrmCraftInput.actExcelFindExecute(Sender: TObject);
begin
RzEdit1.SetFocus;
end;
procedure TfrmCraftInput.FormCreate(Sender: TObject);
begin
inherited;
FindFields[1] := 'CPMC LIKE ''%'+REPLACEKEY+'%''';
FindFields[2] := 'CPYS='''+REPLACEKEY+'''';
FindFields[3] := 'CPZZ='''+REPLACEKEY+'''';
FindFields[4] := 'BZ LIKE ''%'+REPLACEKEY+'%''';
FindFields[5] := 'SZBS='''+REPLACEKEY+'''';
FindFields[6] := 'SZYM='''+REPLACEKEY+'''';
FindFields[7] := 'KH='+REPLACEKEY;
FindFields[8] := 'CPGG LIKE ''%'+REPLACEKEY+'%''';
FindFields[13]:='SRRQ';
FindSQL[2] := 'SELECT CODE +'' = ''+ NAME AS LISTFIELD FROM CODER WHERE ISOK ='+ IntToStr(SHBZ_OK) +' AND FZLX=''BASE_YSMC''';
FindSQL[3] := 'SELECT CODE +'' = ''+ NAME AS LISTFIELD FROM CODER WHERE ISOK ='+ IntToStr(SHBZ_OK) +' AND FZLX=''BASE_CPZZ''';
UseDataset := dm.qryCraft;
with dm.qryCraft do
begin
AfterScroll := doAfterScroll;
AfterPost := doAfterPost;
BeforeEdit := doBeforeEdit;
end;
with dm.qryCraftXB do
begin
BeforeEdit := doBeforeEdit;
end;
GetGroupVal(cboxJwlx.Items, 'SELECT CODE + '' = '' + NAME AS LISTFIELD FROM CODER WHERE '+
'ISOK ='+ IntToStr(SHBZ_OK) +' AND FZLX=''BASE_YLSYFW''');
RzPageControl1.ActivePageIndex := 0;
//设置备用按钮
Btn1.Visible := False;
actOther1.Enabled := False;
//打开数据集
dmc.OpenCpys(True);
dmc.OpenCpzz(True);
dmc.OpenHcllx(True);
dm.qryCraft.Close;
dm.qryCraftXB.Close;
end;
procedure TfrmCraftInput.dbgridListTitleBtnClick(Sender: TObject; ACol: Integer;
Column: TColumnEh);
begin
DBGridTitleBtnClick(Sender, ACol, Column);
end;
procedure TfrmCraftInput.ButtonState(_IsActive, _IsEmpty, _IsModify, _IsCheck: Boolean);
begin
if _IsActive and not _IsEmpty then
_IsCheck := UseDataSet.FieldByName('SHBZ').AsInteger = SHBZ_OK;
inherited;
dbgridList.Enabled := not actSave.Enabled;
actOther1.Enabled := _IsActive and not _IsEmpty and not _IsModify;
TabSheet1.Enabled := not _IsCheck;
//价格信息
plPrice.Visible := actShowPrice.Visible;
//TabSheet2.Enabled := not _IsCheck;
plInput.Visible := not _IsCheck;
DBGridEh3.ReadOnly := _IsCheck;;
end;
procedure TfrmCraftInput.doCancel(Sender: TObject; var _EventNote, _State: String);
begin
if not ShowMess('询问','确定要取消刚才对数据的修改吗?此操作不可恢复!', MB_OKCANCEL) then Exit;
_EventNote := '取消工艺资料输入';
_State := EV_OK;
try
if dm.qryCraft.State in [dsEdit, dsInsert] then dm.qryCraft.Cancel;
if dm.qryCraftXB.State in [dsEdit, dsInsert] then dm.qryCraftXB.Cancel;
except
_State := EV_FAIL;
end;
end;
procedure TfrmCraftInput.doCheck(Sender: TObject; var _EventNote, _State: String);
var ls_Cpmc: String;
begin
//先保存之前的输入
if dm.qryCraft.State in [dsEdit, dsInsert] then dm.qryCraft.Post;
if dm.qryCraftXB.State in [dsEdit, dsInsert] then dm.qryCraftXB.Post;
//数据检查
try
with dm.qryCraft do
begin
if not IsEmpty then
if State in [dsEdit, dsInsert] then Post;
ls_Cpmc := FieldByName('CPMC').AsString;
_EventNote := '审核成品'+ls_Cpmc+'工艺资料';
_State := EV_OK;
Edit;
FieldByName('SHBZ').AsInteger := ShBZ_OK;
FieldByName('SHR').AsString := CurrentUser.EmpName;
FieldByName('SHRQ').AsDateTime:= Now;
Post;
end;
except
On E: Exception do
begin
ShowMess('系统错误','审核成品'+ls_Cpmc+'工艺资料失败,具体为:'+E.Message, MB_ICONERROR);
_State := EV_FAIL;
end;
end;
end;
procedure TfrmCraftInput.doDelete(Sender: TObject; var _EventNote, _State: String);
var ls_Err, ls_cpser, ls_cpmc: String;
SQLs: TStrings;
begin
ls_cpmc := dm.qryCraft.FieldByName('CPMC').AsString;
ls_cpser:= dm.qryCraft.FieldByName('GYSER').AsString;
if not ShowMess('询问','确定要删除成品['+ ls_Cpmc +']的工艺资料吗?此操作不可恢复!', MB_OKCANCEL) then Exit;
_EventNote := '删除成品['+ ls_Cpmc +']的工艺资料';
_State := EV_OK;
SQLs := TStringList.Create;
try
dm.qryCraft.Delete;
SQLs.Add('DELETE FROM CRAFT WHERE GYSER='+ls_cpser);
SQLs.Add('DELETE FROM CRAFTXB WHERE GYSER='+ls_cpser);
ls_Err := doBatchSQL(SQLs);
if ls_err <> '' then
begin
ShowMess('系统错误','删除成品['+ ls_Cpmc +']的工艺资料失败,具体为:'+ls_Err, MB_ICONERROR);
_State := EV_FAIL;
Exit;
end;
finally
SQLs.Free;
end;
end;
procedure TfrmCraftInput.doMyOpen(Sender: TObject; var _EventNote, _State: String);
var ls_SQL, ls_Err, ls_where: String;
begin
ls_where := WhereSQL;
if ls_where = '' then Exit;
_EventNote := '打开工艺资料:'+ls_where;
_State := EV_OK;
ls_SQL := 'SELECT * FROM CRAFT WHERE '+ ls_where;
ls_Err := OpenDataSet(dm.qryCraft, ls_SQL);
if ls_err <> '' then
begin
ShowMess('系统错误','打开工艺资料失败,具体为:'+ls_Err, MB_ICONERROR);
_State := EV_FAIL;
end;
if dm.qryCraft.IsEmpty then
ShowMess('提示','按您指定的条件未发现有效记录!', MB_OK);
end;
procedure TfrmCraftInput.doNewData(Sender: TObject; var _EventNote, _State: String);
var ls_SQL, ls_Err: String;
begin
_EventNote := '新增工艺资料';
_State := EV_OK;
RzPageControl1.ActivePageIndex := 0;
TabSheet1.Enabled := True;
RzDBEdit1.SetFocus;
dm.qryCraftXB.Close;
with dm.qryCraft do
try
//打开一个空数据集
if not Active then
begin
ls_SQL := 'SELECT * FROM CRAFT WHERE 0=1';
ls_Err := OpenDataSet(dm.qryCraft, ls_SQL);
if ls_Err <> '' then
begin
ShowMess('系统错误','生成空数据集失败,具体为:'+ls_Err, MB_ICONERROR);
_State := EV_FAIL;
Exit;
end;
end;
//先保存之前的输入
if not IsEmpty then
if State in [dsEdit, dsInsert] then Post;
Append;
except
_State := EV_FAIL;
end;
end;
procedure TfrmCraftInput.doSave(Sender: TObject; var _EventNote, _State: String);
var ls_cpSer, ls_Cpmc, ls_SQL, ls_Err: String;
ls_tmp, ls_jshz, ls_wshz: String;
lf_zsl, lf_Zjl, lf_Zwm, lf_kc: Double;
lf_bmhs,lf_Jf, lf_Tsbj, lf_Ptbj, lf_wc, lf_wxys: Double;
begin
//滚动
ls_cpmc := dm.qryCraft.FieldByName('CPMC').AsString;
_EventNote := '保存['+ls_cpmc+']工艺资料';
_State := EV_OK;
lf_Zjl := 0; //总经量
lf_Jf := 0; //经幅
lf_Tsbj:= 0; //特殊报价
lf_Ptbj:= 0; //普通报价
lf_wc := 0; //纬长
lf_bmhs:= 0; //百码耗纱
lf_zsl := 0; //织缩率
lf_zwm := 0; //总纬密
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -