Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 30-12-2010
Lenny Lenny is offline
Miembro
 
Registrado: jun 2007
Posts: 161
Poder: 17
Lenny Va por buen camino
Question Generar Codigo Por Letras Segun Criterio

De antemano muchas por cualquier ayuda...

Necesito generar un CODIGO a partir de los 2 ó 3 primeros caracteres de un producto, como por ejemplo:

COCA COLA/LIGHT /BOTELLA/PLASTICA / Lts / 2.5 = COCLIBOTPLALT2.5
COCA COLA/NORMAL/BOTELLA/VIDRIO / Lts / 1.0 = COCNORBOVIDLT1.0
FANTA / NORMAL/LATA / LATA / Cc / 350 = FANNOLATLATCC350

por mas que doy vueltas no encuentro como hacer que el programa, al ingresar los criterios genere ese codigo automaticamente....
se entiende??? ante cualquier pregunta adicional estare atento, muchas gracias de antemano

PD: Utilizo DELPHI 2010, ZEOS, MYSQL
Responder Con Cita
  #2  
Antiguo 30-12-2010
cloayza cloayza is offline
Miembro
 
Registrado: may 2003
Ubicación: San Pedro de la Paz, Chile
Posts: 913
Poder: 23
cloayza Tiene un aura espectacularcloayza Tiene un aura espectacular
A la rapida escribi este codigo, prueba y me cuentas...

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);

   Function GetCodigo(AText:String; ASep:Char):string;
   var
      j:Integer;
      List:TStrings;
   begin
        List:=TStringList.Create;

        List.Clear;
        List.Delimiter    :=ASep;
        List.DelimitedText:=ReplaceStr( AText,' ','');

        Result:='';

        for j := 0 to List.Count - 1 do
        begin
            if Length(List[j])<3 then
               Result:=Result+List[j]
            else
                Result:=Result+Copy(List[j],1,3);
        end;
        Result:=UpperCase(Result);
        List.Free;
   end;

begin
     ShowMessage( GetCodigo('COCA COLA/LIGHT /BOTELLA/PLASTICA / Lts / 2.5', '/') );
end;

Saludos cordiales
Responder Con Cita
  #3  
Antiguo 30-12-2010
Avatar de Aleca
Aleca Aleca is offline
Miembro
 
Registrado: may 2003
Ubicación: Venado Tuerto, Argentina
Posts: 277
Poder: 22
Aleca Va por buen camino
Fijate si te sirve algo asi.
Código Delphi [-]
procedure TForm1.SButtonClick(Sender: TObject);
var
  cTxt, cClave, cParcial: String;
  nPos, i: Integer;
  aCant: Array[0..5] of Integer;
begin
  aCant[0] := 3;
  aCant[1] := 2;
  aCant[2] := 3;
  aCant[3] := 3;
  aCant[4] := 2;
  aCant[5] := 3;
  i := 0;
  cTxt := 'COCA COLA/LIGHT /BOTELLA/PLASTICA / Lts / 2.5';
  cClave := '';
  while Length(cTxt) > 0 do
  begin
    nPos := Pos('/', cTxt);
    if nPos = 0 then //Por la ultima parte.
    begin
      nPos := Length(cTxt);
      cParcial := Copy(cTxt, 0, nPos);
    end
    else
      cParcial := Copy(cTxt, 0, nPos - 1);
    cClave := cClave + Copy(Trim(cParcial), 0, aCant[i]);
    cTxt := Copy(cTxt, nPos + 1, Length(cTxt) - nPos);
    inc(i);
  end;
  cClave := UpperCase(cClave);
  SButton.Caption := cClave;
end;
__________________
Aleca
Responder Con Cita
  #4  
Antiguo 30-12-2010
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

Un modo que se me ocurre es:

Código Delphi [-]
{ ADataSet: datos (registro actual) - NCar: cantidad de caracteres por campo }
function NuevoCodigo(ADataSet: TDataSet; NCar: Byte): string;
var
  i: integer;
begin
  Result:= '';
  for i:= 0 to ADAtaSet.FieldCount - 1 do
    Result:= Result + Copy(ADataSet.Fields[i].AsString, 1, NCar);
end;

Llamada:
Código Delphi [-]
...
var
  NewCod: string;
begin
  NewCod:= NuevoCodigo(DataSet, 2);
end.


Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 30-12-2010 a las 23:28:05.
Responder Con Cita
  #5  
Antiguo 31-12-2010
Lenny Lenny is offline
Miembro
 
Registrado: jun 2007
Posts: 161
Poder: 17
Lenny Va por buen camino
Talking

Hoooooo!!! Se pasaron!!! mil gracias, lo reviso y les cuento como me fue!!! mil gracias nuevamente por la ayuda!!!
Responder Con Cita
  #6  
Antiguo 31-12-2010
Lenny Lenny is offline
Miembro
 
Registrado: jun 2007
Posts: 161
Poder: 17
Lenny Va por buen camino
Talking

GRACIAS A TODOS..... ECFISA!!! es justamente lo que necesitava, quedo increible gracias!!!
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
generar codigo Rofocale Varios 1 28-10-2010 11:25:27
sumar registros segun un criterio rave report carlos munera Impresión 0 26-11-2009 05:03:50
Valor en celda de DBGrid según código en base de datos Gabo SQL 19 01-10-2007 09:08:00
generar codigo de barras pipe Varios 13 21-02-2007 19:54:58
Generar codigo odbc. Arturo Cabrera C++ Builder 3 31-05-2006 16:32:49


La franja horaria es GMT +2. Ahora son las 11:52:01.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi