📄 ujhmaterialname.pas
字号:
unit UJhMaterialName;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Grids, DBGridEh, Buttons, Db, DBTables, ExtCtrls, ComCtrls, ADODB,
EHGrids, StdCtrls;
type
TFrmJhMaterialName = class(TForm)
Panel2: TPanel;
DataSource1: TDataSource;
ADOQuery1: TADOQuery;
ADOQuery2: TADOQuery;
DBGridEh1: TDBGridEh;
Panel1: TPanel;
Edit1: TEdit;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
procedure FormCreate(Sender: TObject);
procedure DBGridEh1GetCellParams(Sender: TObject; Column: TColumnEh;
AFont: TFont; var Background: TColor; State: TGridDrawState);
procedure DBGridEh1KeyPress(Sender: TObject; var Key: Char);
procedure Drop(AControl : TControl; HostControl: TControl);
procedure Edit1Change(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure DBGridEh1DblClick(Sender: TObject);
procedure FormShow(Sender: TObject);
private
procedure OnActivate(var msg: TWMActivate); message WM_ACTIVATE;
{ Private declarations }
public
function Execute(HostControl: TControl; var MaterialNo: string;var spec:string;var ClName: String;var cgUnit: string; var kcl: real):Boolean;
{ Public declarations }
end;
var
FrmJhMaterialName: TFrmJhMaterialName;
implementation
uses SYS_DataModal, U_DM;
{$R *.DFM}
{ TForm1 }
procedure TFrmJhMaterialName.Drop(AControl : TControl; HostControl: TControl);
var
WorkArea: TRect;
HostP, PDelpta: TPoint;
begin
SystemParametersInfo(SPI_GETWORKAREA,0,@WorkArea,0);
HostP := HostControl.ClientToScreen(Point(0,0));
PDelpta := AControl.ClientToScreen(Point(0,0));
AControl.Left := HostP.x;
AControl.Top := HostP.y + HostControl.Height + 1;
if (AControl.Width > WorkArea.Right - WorkArea.Left) then
AControl.Width := WorkArea.Right - WorkArea.Left;
if (AControl.Left + AControl.Width > WorkArea.Right) then
AControl.Left := WorkArea.Right - AControl.Width;
if (AControl.Left < WorkArea.Left) then
AControl.Left := WorkArea.Left;
if (AControl.Top + AControl.Height > WorkArea.Bottom) then
begin
if (HostP.y - WorkArea.Top > WorkArea.Bottom - HostP.y - HostControl.Height) then
AControl.Top := HostP.y - AControl.Height;
end;
if (AControl.Top < WorkArea.Top) then
begin
AControl.Height := AControl.Height - (WorkArea.Top - AControl.Top);
AControl.Top := WorkArea.Top;
end;
if (AControl.Top + AControl.Height > WorkArea.Bottom) then
begin
AControl.Height := WorkArea.Bottom - AControl.Top;
end;
end;
function TFrmJhMaterialName.Execute(HostControl: TControl; var MaterialNo: string; var spec:string; var ClName: String; var cgUnit: string; var kcl: real):Boolean;
var
k,flag: Integer;
w: real;
ss: string;
begin
{ss := dm.adoxsrm.FieldByName('MaterialNo').AsString;
ss := #39 + ss + '%' + #39;
with Adoquery1 do begin
close;
sql.clear;
sql.add('select nGdCode,nGdGg,nGdUnit,nGdName from s_goods where nGdCode like ' + ss + ' order by nGdCode ');//where nGdCJCode in (select * from mkind)');
//SQL.Add('select nYwType,nFsCount,nGdCJCode from V_KCL where nGdCJCode in (select * from mkind)');
//Parameters.ParamByName('nGdCode').value := '%' + ss + '%';
open;
end; //选出与在原材料编号输入的字符相匹配的原材料明细
if MaterialNo <> '' then
Adoquery1.Locate('nGdCode',MaterialNo,[]);
Drop(Self,HostControl);
Visible := True;
ModalResult := mrCancel;
while (Visible) do Application.ProcessMessages;
Result := False;
if ModalResult = mrOk then
begin
MaterialNo := AdoQuery1.FieldByName('nGdCode').Asstring;
spec :=AdoQuery1.FieldByName('nGdGg').asstring;
ClName := Adoquery1.FieldByName('nGdName').AsString;
cgUnit := Adoquery1.FieldByName('nGdUnit').AsString; //RB
Result := True;
end; }
end;
procedure TFrmJhMaterialName.OnActivate(var msg: TWMActivate);
begin
// inherited;
//if (msg.Active=WA_INACTIVE) then
// Close;
end;
procedure TFrmJhMaterialName.FormCreate(Sender: TObject);
begin
//选出与在原材料编号输入的字符相匹配的原材料明细
end;
procedure TFrmJhMaterialName.DBGridEh1GetCellParams(Sender: TObject;
Column: TColumnEh; AFont: TFont; var Background: TColor;
State: TGridDrawState);
begin
{if DbgridEh1.SumList.RecNo mod 2 = 1 then
Background := $00FFC4C4
else
Background := $00FFDDDD; }
end;
procedure TFrmJhMaterialName.DBGridEh1KeyPress(Sender: TObject;
var Key: Char);
begin
if Key = #13 then
bitbtn1Click(Sender);
if Key = #27 then
bitbtn2Click(Sender);
end;
procedure TFrmJhMaterialName.Edit1Change(Sender: TObject);
begin
if (tag=1) then
adoquery1.Locate('nGdCode',Trim(Edit1.text),[loPartialKey]);
if (tag=2) then
adoquery1.Locate('R_name',Trim(Edit1.text),[loPartialKey]);
end;
procedure TFrmJhMaterialName.BitBtn2Click(Sender: TObject);
begin
close;
FrmJhMaterialName.modalresult:=8;
end;
procedure TFrmJhMaterialName.BitBtn1Click(Sender: TObject);
begin
close;
FrmJhMaterialName.ModalResult:=2;
end;
procedure TFrmJhMaterialName.DBGridEh1DblClick(Sender: TObject);
begin
bitbtn1.OnClick(Nil);
end;
procedure TFrmJhMaterialName.FormShow(Sender: TObject);
var
ss:string;
begin
if tag=1 then
begin
//ss := dm.adoxsrbd.fields[0].DisplayText ;
//if tag=2 then
//ss := frmcgdd.dddquery.FieldByName('MaterialNo').AsString;
ss := #39 + ss + '%' + #39;
with Adoquery1 do begin
close;
sql.clear;
sql.add('select nGdCode,nGdGg,nGdUnit,nGdName from s_goods where nGdCode like ' + ss + ' order by nGdCode ');//where nGdCJCode in (select * from mkind)');
//SQL.Add('select nYwType,nFsCount,nGdCJCode from V_KCL where nGdCJCode in (select * from mkind)');
//Parameters.ParamByName('nGdCode').value := '%' + ss + '%';
open;
end;
end;
if tag=2 then
begin
dbgrideh1.Columns.Items[1].Visible :=false;
dbgrideh1.Columns.Items[0].Title.caption:='款式';
dbgrideh1.Columns.Items[0].FieldName :='R_name';
dbgrideh1.Columns.Items[0].Width :=150;
ss := #39 + ss + '%' + #39;
with Adoquery1 do begin
close;
sql.clear;
sql.add('select R_name from js_region order by r_name' );
open;
end;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -