📄 u_griglia_varianti.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 + -