⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 u_griglia_varianti.pas

📁 基于OOP设计的一套较好的ERP系统
💻 PAS
字号:
unit u_griglia_varianti;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ExtCtrls, DBCtrls, StdCtrls, Buttons, DBGrids, Grids, ComCtrls, Mask, Db,
  DBTables;

type
  TGriglia_varianti = class(TForm)
    GroupBox1: TGroupBox;
    Label1: TLabel;
    Interno: TDBEdit;
    Label2: TLabel;
    Descrizione: TDBMemo;
    Pagine: TPageControl;
    Griglia: TTabSheet;
    Elenco: TTabSheet;
    GridVarianti: TStringGrid;
    DBGrid1: TDBGrid;
    okbtn: TBitBtn;
    TTDettaglioArticoli: TTable;
    DataSource1: TDataSource;
    BitBtn2: TBitBtn;
    TTDettaglioArticoliArticoloetichetta: TStringField;
    TTDettaglioArticoliArticolointerno: TStringField;
    TTDettaglioArticoliCodvar1: TStringField;
    TTDettaglioArticoliCodvar2: TStringField;
    TTDettaglioArticoliVariante1: TStringField;
    TTDettaglioArticoliVariante2: TStringField;
    TTDettaglioArticoliDenominazioneVariante1: TStringField;
    TTDettaglioArticoliDenominazioneVariante2: TStringField;
    TTDettaglioArticoliIdGiornale: TStringField;
    procedure GrigliaShow(Sender: TObject);
    procedure GridVariantiSelectCell(Sender: TObject; ACol, ARow: Integer;
      var CanSelect: Boolean);
    procedure okbtnClick(Sender: TObject);
    procedure GridVariantiKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure GridVariantiKeyPress(Sender: TObject; var Key: Char);
  private
    { Private declarations }
    Procedure Costruisci_griglia ;
    //Function Trova(var matrice: array of string;stringa:string) : integer ;
  public
    { Public declarations }
  end;

var
  Griglia_varianti: TGriglia_varianti;
  Righe,Colonne : array of string ;

implementation

uses articoli, main;

{$R *.DFM}

(*Function TGriglia_Varianti.Trova(var matrice: array of string;stringa:string) : integer ;
Var
   i,index : integer ;

begin
 // Trova una stringa nell'array passato in matrice e restituisce l'indice dell'elemento.
 index := -1 ;
 i := 0 ;
 While (i <= Length(Matrice)) and
       (index = -1) do
  begin
   if Matrice[i] = stringa then
      index := i ;
   Inc(i) ;
  end ;
 result := Index ;
end ;
 *)
Procedure TGriglia_Varianti.Costruisci_griglia ;
Var
   criga,cColonna,Riga,Colonna: integer ;
   variante1_old,variante2_old : string ;

begin
 With TTdettaglioArticoli do
  begin
   First ;
   variante1_old := '' ;
   variante2_old := '' ;
   While not Eof do
    begin
     Criga := 0 ;
     cColonna := 0 ;
     For riga := 1 to GridVarianti.RowCount -1 do
      If (GridVarianti.Cells[0,riga] = TTDettaglioArticoliVariante1.asString)  then
       begin
         criga := riga ;
       end ;
     For colonna := 1 to GridVarianti.colcount -1 do
      IF (GridVarianti.Cells[colonna,0] = TTDettaglioArticoliVariante2.asString)  then
       begin
         cColonna := Colonna ;
       end ;
     If (cColonna = 0) and (TTDettaglioArticoliVariante2.asString <> '') then
      begin
       GridVarianti.ColCount := GridVarianti.ColCount + 1 ;
       cColonna := GridVarianti.ColCount - 1 ;
       GridVarianti.Cells[cColonna,0] := TTDettaglioArticoliVariante2.asString ;
      end ;
     If (cRiga = 0) and (TTDettaglioArticoliVariante1.asString <> '') then
      begin
       GridVarianti.RowCount := GridVarianti.RowCount + 1 ;
       cRiga := GridVarianti.RowCount - 1 ;
       GridVarianti.Cells[0,cRiga] := TTDettaglioArticoliVariante1.asString ;
      end ;
   //  GridVarianti.Cells[cColonna,cRiga] := TTDettaglioArticoliPezzi.asString ;
     next ;
    end ;
    gridVarianti.FixedCols := 1 ;
    gridVarianti.FixedRows := 1 ;
  end ;
end ;

procedure TGriglia_varianti.GrigliaShow(Sender: TObject);
begin
     Costruisci_griglia ;
end;

procedure TGriglia_varianti.GridVariantiSelectCell(Sender: TObject; ACol,
  ARow: Integer; var CanSelect: Boolean);
begin
 TTDettaglioArticoli.Locate('Variante 1;Variante 2',VarArrayOf([GridVarianti.Cells[0,Arow],GridVarianti.Cells[aCol,0]]),[]) 
end;

procedure TGriglia_varianti.okbtnClick(Sender: TObject);
begin
     Main_form.TTDettaglio.Edit ;
     Main_form.TTDettaglioArticolo.asString := TTDettaglioArticoliArticoloEtichetta.AsString ;
end;

procedure TGriglia_varianti.GridVariantiKeyDown(Sender: TObject;
  var Key: Word; Shift: TShiftState);
begin
     if key = 13 then
        modalresult := mrOk;
end;

procedure TGriglia_varianti.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
     if key = 13 then
        okbtn.Click ;
end;

procedure TGriglia_varianti.GridVariantiKeyPress(Sender: TObject;
  var Key: Char);
var riga, colonna : integer ;
    riga_val, colonna_val : integer ;
    valore : string ;
begin
   if una_variante then
     begin
       //      FUNZIONA SOLAMENTE CON IL TAB
         riga_val := GridVarianti.Row ;
         colonna_val := GridVarianti.Col ;
         Valore := GridVarianti.Cells[colonna_val,Riga_val] ;
         For riga := 1 to GridVarianti.RowCount -1 do
           For colonna := 1 to GridVarianti.colcount -1 do
             begin
               GridVarianti.Cells[colonna,riga] := '' ;
             end ;
         GridVarianti.Cells[colonna_val,Riga_val] := Valore ;
     end ;

end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -