Ver Mensaje Individual
  #12  
Antiguo 12-08-2003
Avatar de apicito
apicito apicito is offline
Miembro
 
Registrado: may 2003
Ubicación: Ourense
Posts: 341
Reputación: 22
apicito Va por buen camino
Cool

Ya sé que nadie me va a copiar. Quizás cuando lleve 20 años con delphi se me ocurrirá algo original.

Código:
unit UDecretos;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Menus, IB_Components, Grids, IB_Grid, Buttons, ExtCtrls,
  StdCtrls;

type
  TDecretos = class(TForm)
    Panel1: TPanel;
    Novo: TButton;
    Image1: TImage;
    Image2: TImage;
    QueryDecr: TIB_Query;
    SurceDecr: TIB_DataSource;
    Transa: TIB_Transaction;
    Edita: TButton;
    B_Tipos: TButton;
    Grid: TIB_Grid;
    procedure NovoClick(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure GridDrawCell(Sender: TObject; ACol, ARow: Integer;
      Rect: TRect; State: TGridDrawState);
    procedure FormCreate(Sender: TObject);
    procedure B_TiposClick(Sender: TObject);
    procedure EditaClick(Sender: TObject);
  private
    { Private declarations }
  public

  end;

var
  Decretos: TDecretos;

implementation

uses UDatos, UEditDecretos, UDecTip;

{$R *.dfm}

procedure TDecretos.FormCreate(Sender: TObject);
begin
  QueryDecr.Open;
end;

procedure TDecretos.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  if Transa.InTransaction then
    Transa.Rollback;
    Action:=caFree;
end;

procedure TDecretos.GridDrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
begin
if (ACol=4) and (Grid.BuffFields[3].AsInteger > 0) then
  Grid.Canvas.Draw(Rect.Left,Rect.Top,image2.Picture.Graphic);
if (ACol=3) and (Grid.BuffFields[2].AsInteger > 0) then
  Grid.Canvas.Draw(Rect.Left,Rect.Top,image2.Picture.Graphic);
end;

// ************************* MENU **********************************************
procedure TDecretos.NovoClick(Sender: TObject);
var Ed:TEditDecretos;
begin
  Ed:=TEditDecretos.Create(self);
  with Ed do
    begin
      Modo:='A';
      LabelModo.Caption:='NUEVO';
      SurceDecr.AutoEdit:=True;
      SurceDecr.AutoInsert:=True;
      QueryDecr.Open;
      QueryDecr.Insert;
      QueryDecr.FieldByName('DECR_FECHA').AsDate:=now();
      QueryDecr.FieldByName('DECR_A_USUARIO').AsString:=
        Datos.QueryUsu.FieldByName('USU_USUARIO').AsString;
      CargaOrd;
      QueryDecr.FieldByName('DECR_ORD').AsString:=
        QueryOrd.FieldByName('USU_USUARIO').AsString;
      CargaDecTip;
      QueryDecr.FieldByName('DECR_TIPO').AsInteger:=
        QueryDecTip.fieldByname('DECTIP_CODIGO').AsInteger;
      Texto.text:=QueryDecr.fieldbyName('DECR_TEXTO').AsString;
      ShowModal;
    end;
  Actualiza;
  Grid.SetFocus;
end;

procedure TDecretos.EditaClick(Sender: TObject);
var Ed:TEditDecretos;
begin
  Ed:=TEditDecretos.Create(self);
  Ed.QueryDecr.SQL.Text:='select * from DECR where DECR_CODIGO = '
    +#39+trim(QueryDecr.fieldbyName('DECR_CODIGO').asstring)+#39;
  with Ed do
    begin
      Modo:='M';
      LabelModo.Caption:='EDITANDO';
      SurceDecr.AutoEdit:=True;
      QueryDecr.Open;
      CargaOrd;
      CargaDecTip;
      QueryDecr.Edit;
      ShowModal;
    end;
  Grid.SetFocus;
end;

procedure TDecretos.B_TiposClick(Sender: TObject);
var DecTip:TDectip;
begin
  DecTip:=TDecTip.Create(Self);
  DecTip.ShowModal;
  DecTip.Free;
end;
y el otro

Código:
unit UEditDecretos;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, IB_Components, Tx4oleLib_TLB, OleCtrls, DBOleCtl, ExtCtrls,
  IB_Grid, IB_Controls, StdCtrls, Mask, Buttons, ComCtrls;

type
  TEditDecretos = class(TForm)
    B_Ok: TSpeedButton;
    B_Cancelar: TSpeedButton;
    LabelModo: TLabel;
    Label3: TLabel;
    Label1: TLabel;
    Label2: TLabel;
    Label4: TLabel;
    E_Usuario: TIB_Edit;
    E_Fecha: TIB_Date;
    E_OrdCargo: TIB_Edit;
    E_OrdNome: TIB_LookupCombo;
    E_Tipo: TIB_LookupCombo;
    E_Descrip: TIB_Edit;
    E_Firma_Sec: TIB_Edit;
    E_Firma_Ord: TIB_Edit;
    Panel: TPanel;
    Transa: TIB_Transaction;
    QueryDecr: TIB_Query;
    SurceDecr: TIB_DataSource;
    SurceNum: TIB_DataSource;
    QueryNum: TIB_Query;
    SurceOrd: TIB_DataSource;
    QueryOrd: TIB_Query;
    QueryDecTip: TIB_Query;
    SurceDecTip: TIB_DataSource;
    Texto: TIB_RichEdit;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure B_OkClick(Sender: TObject);
    procedure B_CancelarClick(Sender: TObject);
    procedure FormShow(Sender: TObject);
  private
    { Private declarations }
  public
    Modo:Char;
    Procedure CargaOrd;
    Procedure CargaDecTip;
  end;

var
  EditDecretos: TEditDecretos;

implementation
Uses UDatos;
{$R *.dfm}

procedure TEditDecretos.FormShow(Sender: TObject);
begin
  E_Fecha.SetFocus;
end;

procedure TEditDecretos.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  if Transa.InTransaction then
    Transa.Rollback;
  SurceDecr.AutoEdit:=False;
  SurceDecr.AutoInsert:=False;
  Action:=caFree;
end;

procedure TEditDecretos.B_CancelarClick(Sender: TObject);
begin
  Modo:='';
  QueryDecr.Cancel;
  Close;
end;

procedure TEditDecretos.B_OkClick(Sender: TObject);
begin
  try
    QueryNum.Open
  except
    Begin
      showmessage('Error No Contador de Decretos');
//      E_Nome.SetFocus;
      Exit;
    end;
  end;
  QueryDecr.FieldByName('DECR_CODIGO').AsInteger:=
    QueryNum.Fields[0].AsInteger;
  Try
    QueryDecr.post
  except
    begin
      Showmessage('Non se poido grabar o rexistro');
      Exit
    end;
  end;
  Transa.CommitRetaining;
  Close;
end;

procedure TEditDecretos.CargaOrd;
begin
  with QueryOrd do
    begin
      close;
      SQL.text:='Select USU_USUARIO,USU_NOME,USU_CARGO from USU '+
                'where USU_ORDENA='#39+'1'+#39;
      KeyLinks.Text:='USU.USU_USUARIO=DECR.DECR_ORD';
      KeySource:=SurceDecr;
      Open;
    end;
end;

procedure TEditDecretos.CargaDecTip;
begin
  with QueryDecTip do
    begin
      close;
      SQL.text:='Select * from DECTIP';
      KeyLinks.Text:='DECTIP.DECTIP_CODIGO=DECR.DECR_TIPO';
      KeySource:=SurceDecr;
      Open;
    end;
end;


end.
Responder Con Cita