PDA

Ver la Versión Completa : Capturar Valor de variable dentro de Procedimiento


oscarac
24-09-2014, 05:36:07
buenas noches

intento pasar el valor de una variable a otra Global dentro de un procedimiento

algo asi como esto


w_DOC := '';
BuscarNumeroFactura(edtTdc.Text, _Serie, w_DOC);
edtnumero.Text := w_DOC;


Function BuscarNumeroFactura (TipoDoc : string; Serie:string; Documento :String ) :string;
var _Numero :Double;
begin
dmComercio.qryBuscarNumeroFactura.Parameters.ParamByName('Empresa').Value := dmComercio.g_CodigoEmpresa;
dmComercio.qryBuscarNumeroFactura.Parameters.ParamByName('Indice').Value := TipoDoc;
dmComercio.qryBuscarNumeroFactura.Open;
_Numero := dmComercio.qryBuscarNumeroFacturaNumero.AsFloat;
Documento := Serie + '-' + Llenar(FloatToStr(_Numero), 7); // LLenar rellena de ceros tantas veces como el parametro
// la variable documento quedaria mas o menos asi "001-1234567"

end;



Select *
from
tblNumeracion
Where
Empresa = :Empresa and
indice = :Indice



lo que pretendo es que el campo w_DOC tome el valor de la variable "Documento" dentro del procedimiento

espero me haya dejado entender

oscarac
24-09-2014, 06:17:45
es bien cierto q si dejas de programar te olvidas las cosas
ya esta solucionado

quiza a alguien le pueda servir

todo esta en la declaracion del procedimiento debio ser asi

Function BuscarNumeroFactura (TipoDoc : string; Serie:string; VAR Documento :String ) :string;

gracias de todas maneras

nlsgarcia
24-09-2014, 06:59:01
oscarac,


...pasar el valor de una variable a otra Global dentro de un procedimiento...

:rolleyes:

Revisa este código

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);

function GetDocument1(Serie : String) : String;
var
Numero : Integer;
begin
Numero := 789;
Result := Format('%s-%.7d',[Serie,Numero]); // Result := 123-0000789
end;

procedure GetDocument2(Serie : String; var Document : String);
var
Numero : Integer;
begin
Numero := 789;
Document := Format('%s-%.7d',[Serie,Numero]); // Document := 123-0000789
end;

var
Serie, Document : String;

begin

Serie := '123';

Document := GetDocument1(Serie);
ShowMessage(Document);

Document := EmptyStr;
GetDocument2(Serie, Document);
ShowMessage(Document);

end;

end.

El código anterior en Delphi 7 sobre Windows 7 Professional x32, es un ejemplo de retorno de valores por medio de funciones y procedimientos con variables por referencia.

Espero sea útil :)

Nelson.