D7myYunxiang//生产计划单原/U_CheJianXS.pas
DESKTOP-E401PHE\Administrator 19ebd6eb13 251013
2025-10-13 13:18:40 +08:00

625 lines
17 KiB
ObjectPascal
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

unit U_CheJianXS;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, ComCtrls, ToolWin, cxStyles, cxCustomData,
cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, ADODB,
cxGridCustomPopupMenu, cxGridPopupMenu, cxGridLevel, cxClasses, cxControls,
cxGridCustomView, cxGridCustomTableView, cxGridTableView, cxGridDBTableView,
cxGrid, DBClient, cxCheckBox, cxCalendar, cxSplitter, RM_Dataset, RM_System,
RM_Common, RM_Class, RM_GridReport, RM_e_Xls, Menus, MovePanel, cxTextEdit,
cxContainer, cxCurrencyEdit, BtnEdit, RM_e_main, RM_e_htm, RM_e_Graphic,
RM_e_Jpeg, RM_e_txt, RM_e_csv, RM_E_llPDF, Math, cxPC, cxLookAndFeels,
cxLookAndFeelPainters, cxNavigator, cxButtonEdit;
type
TfrmCheJianXS = class(TForm)
ToolBar1: TToolBar;
TBRafresh: TToolButton;
TBClose: TToolButton;
cxGridPopupMenu1: TcxGridPopupMenu;
ADOQueryCmd: TADOQuery;
ADOQueryMain: TADOQuery;
ADOQueryTemp: TADOQuery;
DataSource1: TDataSource;
TBExport: TToolButton;
Order_Main: TClientDataSet;
Panel4: TPanel;
Label11: TLabel;
Panel10: TPanel;
Image2: TImage;
RichEdit1: TRichEdit;
MovePanel2: TMovePanel;
Cxgrid1: TcxGrid;
Tv1: TcxGridDBTableView;
v1OrdDate: TcxGridDBColumn;
v1MLOrderNo: TcxGridDBColumn;
v1MLConNo: TcxGridDBColumn;
v1Column1: TcxGridDBColumn;
v1MLCodeName: TcxGridDBColumn;
v1KHName: TcxGridDBColumn;
Cxgrid1Level1: TcxGridLevel;
Panel1: TPanel;
Label1: TLabel;
Label3: TLabel;
Label4: TLabel;
Label9: TLabel;
Label12: TLabel;
Label5: TLabel;
Label7: TLabel;
BegDate: TDateTimePicker;
EndDate: TDateTimePicker;
MLOrderNo: TEdit;
KHNameHZ: TEdit;
MLConNo: TEdit;
MPRTKZ: TEdit;
MLCodeName: TEdit;
status: TComboBox;
v1Column3: TcxGridDBColumn;
ToolButton1: TToolButton;
RMDBMain: TRMDBDataSet;
RM1: TRMGridReport;
ADOQueryPrint: TADOQuery;
ToolButton2: TToolButton;
Panel2: TPanel;
Label6: TLabel;
SMID: TEdit;
cxGrid2: TcxGrid;
Tv2: TcxGridDBTableView;
v1XHNo: TcxGridDBColumn;
v1MLColor: TcxGridDBColumn;
v2Column1: TcxGridDBColumn;
v2Column4: TcxGridDBColumn;
v1MLColorNo: TcxGridDBColumn;
v2Column2: TcxGridDBColumn;
v1MLHX: TcxGridDBColumn;
v2Column3: TcxGridDBColumn;
v1Qty: TcxGridDBColumn;
v1QtyUnit: TcxGridDBColumn;
cxGridLevel1: TcxGridLevel;
DataSource2: TDataSource;
Order_Sub: TClientDataSet;
Panel3: TPanel;
Label8: TLabel;
Label10: TLabel;
Label13: TLabel;
Label14: TLabel;
Label15: TLabel;
Label16: TLabel;
MXGYS2: TBtnEditC;
DXGYS2: TBtnEditC;
MXSeHao2: TEdit;
DXSeHao2: TEdit;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Tv1Column1: TcxGridDBColumn;
Tv1Column2: TcxGridDBColumn;
Tv1Column3: TcxGridDBColumn;
Label2: TLabel;
Label17: TLabel;
Label18: TLabel;
Label19: TLabel;
DXSeHao: TEdit;
MXGYS: TEdit;
DXGYS: TEdit;
MXSeHao: TEdit;
ToolButton3: TToolButton;
ToolButton4: TToolButton;
Button4: TButton;
Label20: TLabel;
Tv1Column4: TcxGridDBColumn;
procedure FormDestroy(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormCreate(Sender: TObject);
procedure TBCloseClick(Sender: TObject);
procedure TBExportClick(Sender: TObject);
procedure TBRafreshClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure Panel10MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
procedure Image2Click(Sender: TObject);
procedure Tv1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
procedure Tv1CellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean);
procedure MLOrderNoKeyPress(Sender: TObject; var Key: Char);
procedure gangNOKeyPress(Sender: TObject; var Key: Char);
procedure MLConNoKeyPress(Sender: TObject; var Key: Char);
procedure TCBNORChange(Sender: TObject);
procedure MLColorKeyPress(Sender: TObject; var Key: Char);
procedure BegDateChange(Sender: TObject);
procedure EndDateChange(Sender: TObject);
procedure JYTypeChange(Sender: TObject);
procedure KHNameHZChange(Sender: TObject);
procedure ToolButton1Click(Sender: TObject);
procedure ToolButton2Click(Sender: TObject);
procedure SMIDKeyPress(Sender: TObject; var Key: Char);
procedure MXGYS2BtnDnClick(Sender: TObject);
procedure DXGYS2BtnDnClick(Sender: TObject);
procedure MXGYS2BtnUpClick(Sender: TObject);
procedure DXGYS2BtnUpClick(Sender: TObject);
procedure Tv2DblClick(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure ToolButton3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure ToolButton4Click(Sender: TObject);
private
DQdate: TDateTime;
FLeft, FTop: Integer;
CurrentPage, RecordsNumber: Integer;
canshu1, FNewMLID, FNewSubid, FXSID: string;
procedure InitGrid();
procedure InitForm();
{ Private declarations }
public
FFInt: Integer;
{ Public declarations }
end;
var
frmCheJianXS: TfrmCheJianXS;
implementation
uses
U_DataLink, U_Fun, U_ZDYHelp, U_KHGYSList;
{$R *.dfm}
procedure TfrmCheJianXS.FormDestroy(Sender: TObject);
begin
frmCheJianXS := nil;
end;
procedure TfrmCheJianXS.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caFree;
end;
procedure TfrmCheJianXS.FormCreate(Sender: TObject);
begin
cxgrid1.Align := alClient;
DQdate := SGetServerDate(ADOQueryTemp);
canshu1 := Trim(DParameters1);
end;
procedure TfrmCheJianXS.TBCloseClick(Sender: TObject);
begin
Close;
WriteCxGrid('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD>1', Tv1, '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
end;
procedure TfrmCheJianXS.InitGrid();
begin
try
ADOQueryMain.DisableControls;
with ADOQueryMain do
begin
Filtered := False;
Close;
sql.Clear;
sql.Add('select A.*,B.MLCodeName,B.MLConNo,B.MLOrderNo,C.MLColor ');
sql.Add(',KHNameJC=(select KHNameJC from KH_Main KM where KM.KHNO=B.KHNO) ');
sql.Add(' from CheJianXS A inner join ML_OrderMainNew B on A.NewMLID =B.NewMLID');
sql.Add(' inner join ML_OrderSubidNew C on A.NewSubid =C.NewSubid');
sql.Add(' where A.Filltime>=''' + Trim(FormatDateTime('yyyy-MM-dd', BegDate.Date)) + '''');
sql.Add(' and A.Filltime<''' + Trim(FormatDateTime('yyyy-MM-dd', EndDate.Date + 1)) + '''');
// ShowMessage(SQL.Text);
Open;
end;
SCreateCDS20(ADOQueryMain, Order_Main);
SInitCDSData20(ADOQueryMain, Order_Main);
finally
ADOQueryMain.EnableControls;
end;
end;
procedure TfrmCheJianXS.InitForm();
var
fsj: string;
begin
ReadCxGrid('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD>1', Tv1, '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
BegDate.DateTime := SGetServerDate10(ADOQueryTemp) - 1;
EndDate.DateTime := SGetServerDate10(ADOQueryTemp);
InitGrid();
end;
procedure TfrmCheJianXS.TBExportClick(Sender: TObject);
begin
if ADOQueryMain.IsEmpty then
Exit;
SelExportData(Tv1, ADOQueryMain, '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD>');
end;
procedure TfrmCheJianXS.TBRafreshClick(Sender: TObject);
begin
toolbar1.SetFocus;
InitGrid();
end;
procedure TfrmCheJianXS.FormShow(Sender: TObject);
begin
InitForm();
end;
procedure TfrmCheJianXS.Panel10MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
ReleaseCapture;
TWinControl(Panel4).Perform(WM_SYSCOMMAND, $F012, 0);
end;
procedure TfrmCheJianXS.Image2Click(Sender: TObject);
begin
Panel4.Visible := False;
end;
procedure TfrmCheJianXS.Tv1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
FLeft := X;
FTop := Y;
end;
procedure TfrmCheJianXS.Tv1CellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean);
begin
Panel4.Left := FLeft;
Panel4.Top := FTop + 110;
Panel4.Visible := True;
Panel4.Refresh;
Panel10.Caption := Trim(TV1.Controller.FocusedColumn.Caption);
RichEdit1.Text := Order_Main.fieldbyname(TV1.Controller.FocusedColumn.DataBinding.FilterFieldName).AsString;
end;
procedure TfrmCheJianXS.MLOrderNoKeyPress(Sender: TObject; var Key: Char);
begin
if Key = #13 then
begin
InitGrid();
end;
end;
procedure TfrmCheJianXS.gangNOKeyPress(Sender: TObject; var Key: Char);
begin
if Key = #13 then
begin
InitGrid();
end;
end;
procedure TfrmCheJianXS.MLConNoKeyPress(Sender: TObject; var Key: Char);
begin
if Key = #13 then
begin
InitGrid();
end;
end;
procedure TfrmCheJianXS.TCBNORChange(Sender: TObject);
begin
InitGrid();
end;
procedure TfrmCheJianXS.MLColorKeyPress(Sender: TObject; var Key: Char);
begin
InitGrid();
end;
procedure TfrmCheJianXS.BegDateChange(Sender: TObject);
begin
InitGrid();
end;
procedure TfrmCheJianXS.EndDateChange(Sender: TObject);
begin
InitGrid();
end;
procedure TfrmCheJianXS.JYTypeChange(Sender: TObject);
begin
InitGrid();
end;
procedure TfrmCheJianXS.KHNameHZChange(Sender: TObject);
begin
if ADOQueryMain.Active = False then
Exit;
SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2));
SCreateCDS20(ADOQueryMain, Order_Main);
SInitCDSData20(ADOQueryMain, Order_Main);
end;
procedure TfrmCheJianXS.ToolButton1Click(Sender: TObject);
var
fPrintFile: string;
Porderno, LBName, SYRName: string;
i, j: Integer;
Txt, fImagePath: string;
Moudle: THandle;
Makebar: TMakebar;
Mixtext: TMixtext;
begin
if Order_Main.IsEmpty then
Exit;
with ADOQueryPrint do
begin
Close;
sql.Clear;
sql.add('select A.*,B.*');
sql.add(',KHNameJC1=(select KHNameJC from KH_Main X where X.KHNo= A.KHNo and X.KHFlag=''KH'')');
sql.Add(',KHConNo=(select TOP 1 X.KHConNo from ML_ConMain X where X.MLConID=A.ConMainId)');
sql.add(',EWM=cast('''' as varchar(1000)) from ML_OrderMainNew A ');
sql.Add('inner Join ML_OrderSubidNew B on A.NewMLID=B.NewMLID ');
sql.Add('where A.NewMLID=' + quotedstr(Trim(Order_Main.fieldbyname('NewMLID').AsString)));
Open;
end;
try
Moudle := LoadLibrary('MakeQRBarcode.dll');
@Makebar := GetProcAddress(Moudle, 'Make');
@Mixtext := GetProcAddress(Moudle, 'MixText');
Txt := Trim(ADOQueryPrint.fieldbyname('NewMLID').AsString);
fImagePath := ExtractFilePath(Application.ExeName) + 'image\temp' + inttostr(i) + '.bmp';
if not DirectoryExists(pchar(ExtractFilePath(Application.ExeName) + 'image')) then
CreateDirectory(pchar(ExtractFilePath(Application.ExeName) + 'image'), nil);
if FileExists(fImagePath) then
DeleteFile(fImagePath);
Makebar(pchar(Txt), Length(Txt), 3, 3, 0, PChar(fImagePath), 3);
except
application.MessageBox('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD>', '<27><>ʾ<EFBFBD><CABE>Ϣ', MB_ICONERROR);
exit;
end;
fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\<5C><><EFBFBD><EFBFBD>ָʾ<D6B8><CABE>ͨ<EFBFBD><CDA8>.rmf';
if FileExists(fPrintFile) then
begin
RMVariables['QRBARCODE'] := fImagePath;
RM1.LoadFromFile(fPrintFile);
RM1.ShowReport;
end
else
begin
Application.MessageBox(PChar(<><C3BB><EFBFBD><EFBFBD>' + ExtractFilePath(Application.ExeName) + 'Report\' + Trim(LBName) + '.rmf'), '<27><>ʾ', 0);
end;
end;
procedure TfrmCheJianXS.ToolButton2Click(Sender: TObject);
begin
Panel2.Visible := true;
SMID.SetFocus;
end;
procedure TfrmCheJianXS.SMIDKeyPress(Sender: TObject; var Key: Char);
begin
if Key = #13 then
begin
with ADOQueryMain do
begin
Close;
sql.Clear;
sql.Add('select * from ML_OrderMainNew where NewMLID =' + quotedstr(Trim(SMID.text)));
Open;
end;
if ADOQueryMain.IsEmpty = true then
begin
application.MessageBox(<>ҵ<EFBFBD><D2B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>', '<27><>ʾ<EFBFBD><CABE>Ϣ', MB_ICONERROR);
SMID.text := '';
exit;
end
else
begin
Panel2.Visible := false;
cxGrid2.Visible := True;
try
ADOQueryTemp.DisableControls;
with ADOQueryTemp do
begin
Close;
sql.Clear;
sql.Add('select * from ML_OrderMainNew A INNER JOIN ML_OrderSubidNew B on A.NewMLID =B.NewMLID where A.NewMLID =' + quotedstr(Trim(SMID.text)));
Open;
end;
SCreateCDS20(ADOQueryTemp, Order_Sub);
SInitCDSData20(ADOQueryTemp, Order_Sub);
finally
ADOQueryTemp.EnableControls;
end;
SMID.text := '';
end;
end;
end;
procedure TfrmCheJianXS.MXGYS2BtnDnClick(Sender: TObject);
begin
TBtnEditC(Sender).Text := '';
TBtnEditC(Sender).TxtCode := '';
end;
procedure TfrmCheJianXS.DXGYS2BtnDnClick(Sender: TObject);
begin
TBtnEditC(Sender).Text := '';
TBtnEditC(Sender).TxtCode := '';
end;
procedure TfrmCheJianXS.MXGYS2BtnUpClick(Sender: TObject);
begin
try
frmKHGYSList := TfrmKHGYSList.Create(Application);
with frmKHGYSList do
begin
if ShowModal = 1 then
begin
MXGYS2.text := Trim(Order_Main.fieldbyname('KHNameJC').AsString);
end;
end;
finally
frmKHGYSList.Free;
end;
end;
procedure TfrmCheJianXS.DXGYS2BtnUpClick(Sender: TObject);
begin
try
frmKHGYSList := TfrmKHGYSList.Create(Application);
with frmKHGYSList do
begin
if ShowModal = 1 then
begin
DXGYS2.text := Trim(Order_Main.fieldbyname('KHNameJC').AsString);
end;
end;
finally
frmKHGYSList.Free;
end;
end;
procedure TfrmCheJianXS.Tv2DblClick(Sender: TObject);
begin
Panel3.Visible := true;
cxGrid2.Visible := false;
FNewMLID := Trim(Order_Sub.fieldbyname('NewMLID').AsString);
FNewSubid := Trim(Order_Sub.fieldbyname('NewSubid').AsString);
Label20.Caption := Trim(Order_Sub.fieldbyname('MLColor').AsString);
with ADOQueryTemp do
begin
Close;
sql.Clear;
sql.Add('select * from CheJianXS where NewSubid =' + quotedstr(Trim(FNewSubid)));
Open;
end;
if ADOQueryTemp.IsEmpty = true then
begin
MXGYS2.Text := '';
DXGYS2.Text := '';
MXSeHao2.Text := '';
DXSeHao2.Text := '';
Button4.Visible := False;
Button2.Visible := true;
end
else
begin
FXSID := Trim(ADOQueryTemp.fieldbyname('XSID').AsString);
MXGYS2.Text := Trim(ADOQueryTemp.fieldbyname('MXGYS').AsString);
DXGYS2.Text := Trim(ADOQueryTemp.fieldbyname('DXGYS').AsString);
MXSeHao2.Text := Trim(ADOQueryTemp.fieldbyname('MXSeHao').AsString);
DXSeHao2.Text := Trim(ADOQueryTemp.fieldbyname('DXSeHao').AsString);
Button2.Visible := False;
Button4.Visible := true;
end;
end;
procedure TfrmCheJianXS.Button1Click(Sender: TObject);
begin
Panel2.Visible := false;
SMID.text := '';
end;
procedure TfrmCheJianXS.Button3Click(Sender: TObject);
begin
Panel3.Visible := False;
MXGYS2.Text := '';
DXGYS2.Text := '';
MXSeHao2.Text := '';
DXSeHao2.Text := '';
end;
procedure TfrmCheJianXS.Button2Click(Sender: TObject);
var
maxno: string;
begin
if GetLSNo(ADOQueryTemp, maxno, 'XS', 'CheJianXS', 3, 1) = False then
begin
Application.MessageBox(<><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>!', '<27><>ʾ', 0);
Exit;
end;
with ADOQueryTemp do
begin
Close;
sql.Clear;
sql.Add('insert into CheJianXS(NewMLID,NewSubid,XSID,MXGYS,DXGYS,MXSeHao,DXSeHao,Filler) values( ');
sql.Add(quotedstr(Trim(FNewMLID)));
sql.Add(',' + quotedstr(Trim(FNewSubid)));
sql.Add(',' + quotedstr(Trim(maxno)));
sql.Add(',' + quotedstr(Trim(MXGYS2.text)));
sql.Add(',' + quotedstr(Trim(DXGYS2.text)));
sql.Add(',' + quotedstr(Trim(MXSeHao2.text)));
sql.Add(',' + quotedstr(Trim(DXSeHao2.text)));
sql.Add(', ' + quotedstr(trim(DName)));
sql.Add(')');
ExecSQL;
end;
Panel3.Visible := False;
MXGYS2.Text := '';
DXGYS2.Text := '';
MXSeHao2.Text := '';
DXSeHao2.Text := '';
TBRafresh.Click;
end;
procedure TfrmCheJianXS.ToolButton3Click(Sender: TObject);
begin
Panel3.Visible := true;
Button2.Visible := false;
Button4.Visible := true;
FXSID := Trim(Order_Main.fieldbyname('XSID').AsString);
with ADOQueryTemp do
begin
Close;
sql.Clear;
sql.Add('select * from CheJianXS where XSID =' + quotedstr(Trim(FXSID)));
Open;
end;
Label20.Caption := Trim(Order_Main.fieldbyname('MLColor').AsString);
MXGYS2.Text := Trim(ADOQueryTemp.fieldbyname('MXGYS').AsString);
DXGYS2.Text := Trim(ADOQueryTemp.fieldbyname('DXGYS').AsString);
MXSeHao2.Text := Trim(ADOQueryTemp.fieldbyname('MXSeHao').AsString);
DXSeHao2.Text := Trim(ADOQueryTemp.fieldbyname('DXSeHao').AsString);
end;
procedure TfrmCheJianXS.Button4Click(Sender: TObject);
begin
with ADOQueryTemp do
begin
Close;
sql.Clear;
sql.Add('update CheJianXS ');
sql.Add('set MXGYS =' + quotedstr(Trim(MXGYS2.text)));
sql.Add(',DXGYS=' + quotedstr(Trim(DXGYS2.text)));
sql.Add(',MXSeHao=' + quotedstr(Trim(MXSeHao2.text)));
sql.Add(',DXSeHao=' + quotedstr(Trim(DXSeHao2.text)));
sql.Add(',Editer=' + quotedstr(trim(DName)));
sql.Add(',Edittime=getdate() ');
sql.Add('where XSID =' + quotedstr(Trim(FXSID)));
ExecSQL;
end;
Panel3.Visible := False;
MXGYS2.Text := '';
DXGYS2.Text := '';
MXSeHao2.Text := '';
DXSeHao2.Text := '';
TBRafresh.Click;
end;
procedure TfrmCheJianXS.ToolButton4Click(Sender: TObject);
begin
with ADOQueryTemp do
begin
Close;
sql.Clear;
sql.Add('DELETE from CheJianXS ');
sql.Add('where XSID =' + quotedstr(Trim(Order_Main.fieldbyname('XSID').AsString)));
ExecSQL;
end;
Order_Main.Delete;
end;
end.