Ver Mensaje Individual
  #6  
Antiguo 24-03-2015
giulichajari giulichajari is offline
Miembro
 
Registrado: nov 2012
Posts: 306
Reputación: 12
giulichajari Va por buen camino
no logro enviar .xml a bd usando el server

Hola amigos! abro un nuevo hilo porque hice una pregunta en otro creo fuera de lugar:

Cuando no hay conexion guardo los tickets de mi terminal de puesto de venta en un fichero xml.

Y tengo un form donde de haber conexion voy recorriendo el directiorio de los tickets y quiero cargarlos en la base de datos.

Primero que los campos que no son Data no se guardan en xml, por lo tanto hay que recalcularlos.
Y luego que no veo los cambios en la base de datos.
Ademas, no me convendria tener otro tclientdataset distinto para poder hacer tickets mientras vienen clientes en vez de usar el mismo?

Código Delphi [-]
procedure TForm8.FormShow(Sender: TObject);
var
TS:TStringList;
pathDeBusqueda,fname:string;
i:integer;
a:TServerMethods1Client;
x:integer;
fechae,horae:string;
cantidad,importe,preciou,efectivo,vueltoouble;
idc,ids,idprodu,numero:Integer;
nuevoticket:string;
totouble;
begin
// Crear la lista que vamos a utilizar
  TS := TStringList.Create();
  pathDeBusqueda:=ExtractFilePath(Application.ExeName) + 'tickets\';

  // Buscar ficheros en disco.
  FindFiles(pathDeBusqueda, '*.xml', False, TS);
  Etick.Text:=IntToStr(TS.Count);
  // Para cada fichero encontrado, realizamos el trabajo necesario...
  for i := 0 to (TS.Count - 1) do begin
    // Extraer nombre del fichero. en TS[i] está el path completo
    fName := pathDeBusqueda + ExtractFileName(TS[i]);
    // si hay conexion al server
    if (ClientModule1.SQLConnection1.Connected) then
     begin
     a:=TServerMethods1Client.Create(ClientModule1.SQLConnection1.DBXConnection);
      //cargo dataset
              with ClientModule1.cdsticket do
                 begin

              LoadFromFile(fname);
              Open;
                for x := 0 to ClientModule1.cdsticket.RecordCount do

                begin
                Edit;
                FieldByName('subtotal').AsFloat:=FieldByName('precio').AsFloat * FieldByName('cantidad').AsFloat;

                 Post;

                end;

                 end;
                 //cargo variables y llamo al server
                      importe:=ClientModule1.cdsticket.FieldByName('total').Value;
                fechae:=ClientModule1.cdsticketfechae.AsString;

                horae:=ClientModule1.cdstickethorae.AsString;

                efectivo:=ClientModule1.cdsticketefectivo.AsFloat;

                vuelto:=efectivo - importe;
                 idc:=1;
                 ids:=1;
                 numero:=1;
              a.nuevoticket(numero,ids,idc,importe,efectivo,vuelto,fechae,horae);
              a.Free;
         ClientModule1.cdsticket.EmptyDataSet;
     end;

  end;



end;

lo primero que hago es buscar los ficheros, luego compruebo si hay conexion, si hay para cada archivo hago subtotal y total, y llamo al servidor datasnap. vacio el dataset.

Alguien me puede ayudar
Responder Con Cita