unit U_PlanCardOFF;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, cxGraphics, cxCustomData, cxStyles, cxTL, cxMaskEdit, DB, ADODB,
  cxInplaceContainer, cxDBTL, cxControls, cxTLData, ComCtrls, ToolWin, StdCtrls,
  cxFilter, cxData, cxDataStorage, cxEdit, cxDBData, DBClient,
  cxGridCustomTableView, cxGridTableView, cxGridDBTableView, ExtCtrls,
  cxSplitter, cxGridLevel, cxClasses, cxGridCustomView, cxGrid,
  cxGridCustomPopupMenu, cxGridPopupMenu, RM_Dataset, RM_System, RM_Common,
  RM_Class, RM_GridReport, IdBaseComponent, IdComponent, IdTCPConnection,
  IdTCPClient, IdFTP, ShellAPI, IniFiles, cxCheckBox, cxCalendar, cxButtonEdit,
  cxTextEdit, cxDBLookupComboBox, ComObj, cxLookAndFeels, cxLookAndFeelPainters,
  cxNavigator, U_BaseList, dxSkinsCore, dxSkinsDefaultPainters, dxDateRanges,
  dxBarBuiltInMenu, dxScrollbarAnnotations;

type
  TfrmPlanCardOFF = class(TfrmBaseList)
    ToolBar1: TToolBar;
    TBRafresh: TToolButton;
    TBClose: TToolButton;
    ADOQueryTemp: TADOQuery;
    ADOQueryCmd: TADOQuery;
    ADOQueryMain: TADOQuery;
    cxGrid1: TcxGrid;
    Tv1: TcxGridDBTableView;
    cxGridLevel1: TcxGridLevel;
    GPM_1: TcxGridPopupMenu;
    DS_1: TDataSource;
    CDS_1: TClientDataSet;
    v2Column6: TcxGridDBColumn;
    v2Column2: TcxGridDBColumn;
    v2Column10: TcxGridDBColumn;
    Tv1Column1: TcxGridDBColumn;
    Panel1: TPanel;
    Label1: TLabel;
    edtScan: TEdit;
    btnFind: TToolButton;
    ToolButton2: TToolButton;
    Tv1Column2: TcxGridDBColumn;
    ADOQueryPrint: TADOQuery;
    RMDB_1: TRMDBDataSet;
    RM1: TRMGridReport;
    cxStyleRepository1: TcxStyleRepository;
    cxStyle1: TcxStyle;
    CDS_Print: TClientDataSet;
    procedure FormDestroy(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure TBCloseClick(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure TBRafreshClick(Sender: TObject);
    procedure btnFindClick(Sender: TObject);
    procedure ToolButton2Click(Sender: TObject);
    procedure edtScanKeyPress(Sender: TObject; var Key: Char);
    procedure PlayWav(MWav: string);
  private
    fFlileFlag: string;
    { Private declarations }
    procedure InitGrid();
  public
    FAuthority, FCIID: string;
  end;

var
  frmPlanCardOFF: TfrmPlanCardOFF;

implementation

uses
  U_DataLink, U_RTFun, U_ZDYHelp, U_AttachmentUpload, MMSystem;

{$R *.dfm}

procedure TfrmPlanCardOFF.PlayWav(MWav: string);
begin
  if FileExists(PChar(ExtractFilePath(Application.ExeName) + 'wav\' + MWav + '.wav')) then
    PlaySound(PChar(ExtractFilePath(Application.ExeName) + 'wav\' + MWav + '.wav'), 0, SND_ASYNC);
end;

procedure TfrmPlanCardOFF.InitGrid();
begin
  try
    ADOQueryMain.DisableControls;
    with ADOQueryMain do
    begin
      Filtered := False;
      Close;
      SQL.Clear;
      sql.Add('select top 500 * from Knit_Plan_Card A INNER JOIN Knit_Plan_Sub B on A.MainID=B.MainID');
      sql.Add('where A.Offer =''' + trim(DName) + '''');
      sql.Add('order by A.OffTime desc');
      Open;
    end;
    SCreateCDS(ADOQueryMain, CDS_1);
    SInitCDSData(ADOQueryMain, CDS_1);
  finally
    ADOQueryMain.EnableControls;
  end;
  CDS_1.Last;
end;

procedure TfrmPlanCardOFF.FormDestroy(Sender: TObject);
begin
  inherited;
  frmPlanCardOFF := nil;
end;

procedure TfrmPlanCardOFF.edtScanKeyPress(Sender: TObject; var Key: Char);
var
  fPrintFile, FLabVolume, FPCID: string;
begin
  if Key = #13 then
  begin
    if trim(edtScan.Text) = '' then
      exit;

    FPCID := trim(edtScan.Text);
    edtScan.text := '';
    with ADOQueryTemp do
    begin
      Close;
      SQL.Clear;
      sql.Add(' select * from Knit_Plan_Card ');
      SQL.Add(' where PCID=''' + trim(FPCID) + '''');
//      ShowMessage(sql.text);
      Open;
    end;
    if ADOQueryTemp.IsEmpty then
    begin
      PlayWav('��Ʊ����');
//      Application.MessageBox('��Ʊ����', '��ʾ', 0);
      Exit;
    end
    else if Trim(ADOQueryTemp.fieldbyname('IsOffMachine').AsString) = '��' then
    begin
      PlayWav('���»�');
//      Application.MessageBox('���»�', '��ʾ', 0);
      Exit;
    end
    else
    begin
      with ADOQueryCmd do
      begin
        Close;
        SQL.Clear;
        sql.Add(' update Knit_Plan_Card set IsOffMachine=''��'' , Offer=''' + trim(DName) + '''');
        sql.Add(' ,OffTime=getdate()');
        SQL.Add(' where PCID=''' + trim(FPCID) + '''');
        ExecSQL;
      end;

      PlayWav('�»��ɹ�');
    end;
    InitGrid();
  end;
end;

procedure TfrmPlanCardOFF.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  inherited;
  Action := caFree;
end;

procedure TfrmPlanCardOFF.TBCloseClick(Sender: TObject);
begin
  Close;
end;

procedure TfrmPlanCardOFF.FormShow(Sender: TObject);
begin
  inherited;
  ReadCxGrid(trim(self.Caption), Tv1, '�ͻ�����');
  InitGrid();
end;

procedure TfrmPlanCardOFF.TBRafreshClick(Sender: TObject);
begin
  InitGrid();
end;

procedure TfrmPlanCardOFF.btnFindClick(Sender: TObject);
begin
  if ADOQueryMain.Active then
  begin
    SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2));
    SCreateCDS(ADOQueryMain, CDS_1);
    SInitCDSData(ADOQueryMain, CDS_1);
  end;
end;

procedure TfrmPlanCardOFF.ToolButton2Click(Sender: TObject);
begin
  WriteCxGrid(trim(self.caption), Tv1, '�ͻ�����');

end;

end.