unit MaterialMst; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, wItem, FireDAC.Stan.Intf, FireDAC.Stan.Option, FireDAC.Stan.Error, FireDAC.UI.Intf, FireDAC.Phys.Intf, FireDAC.Stan.Def, FireDAC.Stan.Pool, FireDAC.Stan.Async, FireDAC.Phys, FireDAC.Stan.Param, FireDAC.DatS, FireDAC.DApt.Intf, FireDAC.DApt, FireDAC.Phys.PGDef, FireDAC.VCLUI.Wait, FireDAC.Comp.UI, FireDAC.Phys.PG, Data.DB, FireDAC.Comp.DataSet, FireDAC.Comp.Client; type TMaterialMst = class(TwItem) private { Private declarations } FMatCode: string; FDescriptions: string; FMatType: string; FCustName: string; FUnitt: string; protected { Protected declarations } public { Public declarations } class function xAddSqlMark(velStr: string): string; class function xGetStrSqlMaterialMstList(AQuery: TFDQuery; codeStr, nameStr: string): TList; class function LoadFromQuery(AQuery: TFDQuery): TList; published { Published declarations } property MatCode: string read FMatCode write FMatCode; property Descriptions: string read FDescriptions write FDescriptions; property MatType: string read FMatType write FMatType; property CustName: string read FCustName write FCustName; property Unitt: string read FUnitt write FUnitt; end; implementation { TMaterialMst } class function TMaterialMst.LoadFromQuery(AQuery: TFDQuery): TList; var curMat: TMaterialMst; begin Result := TList.Create; while not AQuery.Eof do begin curMat := TMaterialMst.Create(nil); curMat.OBID := AQuery.FieldByName('OBID').AsString; curMat.Name := AQuery.FieldByName('Name').AsString; curMat.wClassName := AQuery.FieldByName('wClassName').AsString; curMat.CreateDate := AQuery.FieldByName('CreateDate').AsString; curMat.CreateTime := FormatDateTime('hh:nn:ss', AQuery.FieldByName('CreateTime').AsDateTime); curMat.CreatorID := AQuery.FieldByName('CreatorID').AsString; curMat.IsValid := AQuery.FieldByName('IsValid').AsString; curMat.LcStatus := AQuery.FieldByName('LcStatus').AsString; curMat.MatCode := AQuery.FieldByName('MatCode').AsString; curMat.Descriptions := AQuery.FieldByName('Descriptions').AsString; curMat.MatType := AQuery.FieldByName('MatType').AsString; curMat.CustName := AQuery.FieldByName('CustName').AsString; curMat.Unitt := AQuery.FieldByName('Unitt').AsString; Result.Add(curMat); AQuery.Next; end; end; class function TMaterialMst.xAddSqlMark(velStr: string): string; begin Result := ''; Result := '''' + velStr + ''''; end; class function TMaterialMst.xGetStrSqlMaterialMstList(AQuery: TFDQuery; codeStr, nameStr: string): TList; var sql: string; begin Result := nil; sql := 'SELECT * FROM "MaterialMst"'; sql := sql + ' WHERE "IsValid"=' + xAddSqlMark('t'); if Length(Trim(codeStr)) > 0 then begin codeStr := '%' + codeStr + '%'; sql := sql + ' AND "MatCode" LIKE ' + xAddSqlMark(codeStr); end; if Length(Trim(nameStr)) > 0 then begin nameStr := '%' + nameStr + '%'; sql := sql + ' AND "Name" LIKE ' + xAddSqlMark(nameStr); end; try AQuery.Close; AQuery.SQL.Text := sql; AQuery.Open; except on E: Exception do ShowMessage('xGetMaterialMstAssign Äõ¸® ½ÇÇà ¿À·ù: ' + E.Message); end; Result := LoadFromQuery(AQuery); end; end.