unit U_TatPlanCard;

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, cxCalendar, cxButtonEdit, cxSplitter, RM_Common, RM_Class,
  RM_e_Xls, RM_Dataset, RM_System, RM_GridReport, cxTextEdit, cxCheckBox,
  BtnEdit, RM_BarCode, cxPC, cxLookAndFeels, cxLookAndFeelPainters, cxNavigator,
  dxSkinsCore, dxSkinsDefaultPainters, dxDateRanges, dxBarBuiltInMenu,
  U_BaseList, Vcl.Menus;

type
  TfrmTatPlanCard = class(TfrmBaseList)
    ToolBar1: TToolBar;
    TBRafresh: TToolButton;
    TBClose: TToolButton;
    Panel1: TPanel;
    GPM_1: TcxGridPopupMenu;
    ADOQueryCmd: TADOQuery;
    ADOQueryMain: TADOQuery;
    ADOQueryTemp: TADOQuery;
    Label3: TLabel;
    ConNo: TEdit;
    ADOQueryPrint: TADOQuery;
    ZhuanQty: TEdit;
    Label9: TLabel;
    CarNo: TEdit;
    Label1: TLabel;
    cxGrid1: TcxGrid;
    Tv1: TcxGridDBTableView;
    cxGridLevel2: TcxGridLevel;
    v3Column1: TcxGridDBColumn;
    v3Column2: TcxGridDBColumn;
    Label2: TLabel;
    C_Name: TEdit;
    DS_1: TDataSource;
    CDS_1: TClientDataSet;
    Label4: TLabel;
    C_Code: TEdit;
    v3Column6: TcxGridDBColumn;
    v3Column8: TcxGridDBColumn;
    v3Column14: TcxGridDBColumn;
    v3Column15: TcxGridDBColumn;
    v3Column16: TcxGridDBColumn;
    cxTabControl1: TcxTabControl;
    Tv1Column1: TcxGridDBColumn;
    Tv1Column2: TcxGridDBColumn;
    Tv1Column3: TcxGridDBColumn;
    ToolButton1: TToolButton;
    ToolButton2: TToolButton;
    Tv1Column4: TcxGridDBColumn;
    Tv1Column5: TcxGridDBColumn;
    Tv1Column6: TcxGridDBColumn;
    Tv1Column7: TcxGridDBColumn;
    Tv1Column8: TcxGridDBColumn;
    Label5: TLabel;
    OrderNo: TEdit;
    Tv1Column9: TcxGridDBColumn;
    Label6: TLabel;
    BatchNo: TEdit;
    PopupMenu1: TPopupMenu;
    N1: TMenuItem;
    N2: TMenuItem;
    ToolButton3: TToolButton;
    Label7: TLabel;
    PCID: TEdit;
    ToolButton4: TToolButton;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure TBCloseClick(Sender: TObject);
    procedure TBRafreshClick(Sender: TObject);
    procedure ConNoChange(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure cxTabControl1Change(Sender: TObject);
    procedure ToolButton2Click(Sender: TObject);
    procedure ToolButton1Click(Sender: TObject);
    procedure N1Click(Sender: TObject);
    procedure N2Click(Sender: TObject);
    procedure ToolButton3Click(Sender: TObject);
    procedure ToolButton4Click(Sender: TObject);
  private
    FInt, PFInt: Integer;
    FFMainID, BPFlag: string;
    procedure InitGrid();
    { Private declarations }
  public
    canshu1: string;
    { Public declarations }
  end;

implementation

uses
  U_DataLink, U_RTFun, U_ZDYHelp, U_LabelPrint, U_TatCardInPut;

{$R *.dfm}

procedure TfrmTatPlanCard.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  inherited;
  Action := caFree;
  WriteCxGrid('DCG13', Tv1, '坯布生产2');
end;

procedure TfrmTatPlanCard.TBCloseClick(Sender: TObject);
begin
  Close;

end;

procedure TfrmTatPlanCard.InitGrid();
begin
  FFMainID := '';
  try
    ADOQueryMain.DisableControls;
    with ADOQueryMain do
    begin
      Close;
      sql.Clear;
      sql.Add('select A.*,C.*,D.* ');
      sql.Add(' from  Tat_Plan_Card A ');
      sql.Add(' inner join Tat_Plan_Sub C on A.SubId=C.SubId');
      sql.Add(' inner join Tat_Plan_Main D on A.MainId=D.MainId');
      sql.Add(' where  isnull(A.status,''0'')=''0''');
      case cxTabControl1.TabIndex of
        0:
          begin
            sql.Add(' and PRTCount=0');
          end;
        1:
          begin
            sql.Add(' and PRTCount>0');
          end;
        2:
          begin

          end;
      end;

      Open;
    end;
    SCreateCDS(ADOQueryMain, CDS_1);
    SInitCDSData(ADOQueryMain, CDS_1);
  finally
    ADOQueryMain.EnableControls;
  end;
end;

procedure TfrmTatPlanCard.N1Click(Sender: TObject);
begin
  SelOKNo(cds_1, true)
end;

procedure TfrmTatPlanCard.N2Click(Sender: TObject);
begin
  SelOKNo(cds_1, false);
end;

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

procedure TfrmTatPlanCard.ToolButton1Click(Sender: TObject);
var
  WSql: string;
begin
  if CDS_1.IsEmpty then
    Exit;
  Tv1.OnFocusedRecordChanged := nil;
  if CDS_1.Locate('SSel', True, []) = False then
  begin
    Application.MessageBox('没有选择数据!', '提示', 0);
    Exit;
  end;

  WSql := '';
  CDS_1.DisableControls;

  with CDS_1 do
  begin
    First;
    while not Eof do
    begin
      if CDS_1.fieldbyname('SSel').AsBoolean then
      begin
        if WSql <> '' then
        begin
          WSql := WSql + ',' + QuotedStr(Trim(CDS_1.fieldbyname('PCID').AsString));
        end
        else
        begin
          WSql := QuotedStr(Trim(CDS_1.fieldbyname('PCID').AsString));
        end;
      end;
      Next;
    end;
  end;

  CDS_1.Locate('SSel', True, []);
  CDS_1.EnableControls;

  try
    frmLabelPrint := TfrmLabelPrint.Create(Application);
    with frmLabelPrint do
    begin
      FPreviewPrint := False;
      FLMType := 'TatPlanCard';
      FFiltration1 := WSql;
      if ShowModal = 1 then
      begin
        Self.InitGrid();
        with ADOQueryCmd do
        begin
          Close;
          sql.Clear;
          sql.Add('update Tat_Plan_Card         ');
          sql.Add('set PRTer=' + quotedstr(DName));
          sql.Add(', PRTCount=PRTCount+1');
          sql.Add(', PRTDate=getdate()');
          sql.Add(' where PCID in (' + WSql + ')');
          ExecSQL;
        end;
      end;
    end;
  finally
    frmLabelPrint.Free;
  end;

end;

procedure TfrmTatPlanCard.ToolButton2Click(Sender: TObject);
begin
  WriteCxGrid(trim(self.Caption), Tv1, '坯布生产2');
end;

procedure TfrmTatPlanCard.ToolButton3Click(Sender: TObject);
var
  WSql: string;
begin
  if CDS_1.IsEmpty then
    Exit;
  Tv1.OnFocusedRecordChanged := nil;
  if CDS_1.Locate('SSel', True, []) = False then
  begin
    Application.MessageBox('没有选择数据!', '提示', 0);
    Exit;
  end;

  WSql := '';
  CDS_1.DisableControls;

  with CDS_1 do
  begin
    First;
    while not Eof do
    begin
      if CDS_1.fieldbyname('SSel').AsBoolean then
      begin
        if WSql <> '' then
        begin
          WSql := WSql + ',' + QuotedStr(Trim(CDS_1.fieldbyname('PCID').AsString));
        end
        else
        begin
          WSql := QuotedStr(Trim(CDS_1.fieldbyname('PCID').AsString));
        end;
      end;
      Next;
    end;
  end;

  CDS_1.Locate('SSel', True, []);
  CDS_1.EnableControls;

  with ADOQueryCmd do
  begin
    Close;
    sql.Clear;
    sql.Add('update Tat_Plan_Card         ');
    sql.Add('  set Deler=' + quotedstr(DName));
    sql.Add(', Status=''-1'' ');
    sql.Add(', Deltime=getdate()');
    sql.Add(' where PCID in (' + WSql + ')');
    ExecSQL;
  end;
  InitGrid();
end;

procedure TfrmTatPlanCard.ToolButton4Click(Sender: TObject);
begin
  try
    frmTatCardInPut := TfrmTatCardInPut.Create(Application);
    with frmTatCardInPut do
    begin
      FMainId := Trim(Self.CDS_1.fieldbyname('MainId').AsString);
      FSubId := Trim(Self.CDS_1.fieldbyname('SubId').AsString);
      if ShowModal = 1 then
      begin
        InitGrid();
      end;
    end;
  finally
    frmTatCardInPut.Free;
  end;
end;

procedure TfrmTatPlanCard.ConNoChange(Sender: TObject);
begin
  if ADOQueryMain.Active = False then
    Exit;
  SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2));
  SCreateCDS(ADOQueryMain, CDS_1);
  SInitCDSData(ADOQueryMain, CDS_1);
end;

procedure TfrmTatPlanCard.FormShow(Sender: TObject);
begin
  inherited;

  ReadCxGrid(trim(self.Caption), Tv1, '坯布生产2');
//  fsj := 'select distinct Code=Null,Name=MCCJ from Machine Group by MCCJ ';
//  SInitComBoxBySql(ADOQueryTemp, CheJian, False, fsj);
  InitGrid();
end;

procedure TfrmTatPlanCard.Button1Click(Sender: TObject);
begin
//  if CDS_AnPai.IsEmpty then
//    Exit;
//  if CDS_AnPai.Locate('SSel', True, []) = False then
//  begin
//    Application.MessageBox('没有选择数据!', '提示', 0);
//    Exit;
//  end;
//  if CDS_AnPai.Locate('SSel;JYFlag', VarArrayOf([True, True]), []) then
//  begin
//    Application.MessageBox('已检验不能作废!', '提示', 0);
//    Exit;
//  end;
//  if Application.MessageBox('确定要作废数据吗？', '提示', 32 + 4) <> IDYES then
//    Exit;
//  try
//    ADOQueryCmd.Connection.BeginTrans;
//    CDS_AnPai.DisableControls;
//    with CDS_AnPai do
//    begin
//      while CDS_AnPai.FieldByName('SSel').AsBoolean = True do
//      begin
//        with ADOQueryCmd do
//        begin
//          Close;
//          sql.Clear;
//          sql.Add('delete Tat_Plan_Card  ');
//          sql.Add(' where APId=''' + Trim(CDS_AnPai.fieldbyname('APID').AsString) + '''');
//          sql.Add(' and not exists(select * from Tat_Cloth_Inspect A where A.MJID=Tat_Plan_Card.APID)');
//
//          sql.Add('insert into SY_SysLog(operor,opertime,Model,acction,opevent,result) values( ');
//          sql.Add(' ' + quotedstr(trim(DName)));
//          sql.Add(',getdate() ');
//          sql.Add(',' + quotedstr(trim(self.Caption)));
//          sql.Add(',' + quotedstr(trim('作废布票')));
//          sql.Add(',' + quotedstr(trim('卷号:' + trim(CDS_AnPai.FieldByName('apid').AsString) + ' 车号:' + trim(CDS_AnPai.FieldByName('carno').AsString) + '   批号:' + trim(CDS_AnPai.FieldByName('APBatchNo').AsString) + '  MAINID:' + trim(CDS_AnPai.FieldByName('mainid').AsString))));
//          sql.Add(',' + quotedstr(trim('成功')));
//          sql.Add(')');
//          ExecSQL;
//        end;
//        CDS_AnPai.Delete;
//      end;
//    end;
//    CDS_AnPai.EnableControls;
//
//    ADOQueryCmd.Connection.CommitTrans;
//  except
//    ADOQueryCmd.Connection.RollbackTrans;
//    CDS_AnPai.EnableControls;
//    Application.MessageBox('作废失败!', '提示', 0);
//    Exit;
//  end;
end;

procedure TfrmTatPlanCard.cxTabControl1Change(Sender: TObject);
begin
  InitGrid();
end;

end.

