aqui es donde llamo el array para pasarlo a otro array creo que esta mal
la sintaxis de como hacerlo
Código Delphi
[-]
type
TEventslistArray = array[0..58] of variant;
TNewArrayData = array[0..58] of variant;
declaracion de la funcion
Código Delphi
[-]
function SearchEvents(sIMEI: string; iCompanyId : integer; sVehicleId : string;
iCurrSpeed,iCurrRPM,iAccDeccValue :integer;
bDIN1, bDIN2, bDIN3, bDIN4 : Boolean;
fAIN1, fAIN2, fAIN3, fAIN4 : Extended;
iGSMSignal, iCurrentProfile : integer;
fAcelerometerData, fGPSSpeed, fPowerSuplyVoltage, fBatteryVoltage, fBatteryCurrent,
fGPSPower, fPCBTemperature, fTempSensor1, fTempSensor2,
fTempSensor3, fFuelCounter, sButtonInput, fCan0, fCan1,
fCan2, fCan3, fCan4, fCan5, fCan6, fCan7, fCan8, fCan9 : Extended;
bGeoZone1, bGeoZone2, bGeoZone3,
bGeoZone4, bGeoZone5, bGeoZone6, bGeoZone7,
bGeoZone8, bGeoZone9, bGeoZone10, bGeoZone11,
bGeoZone12, bGeoZone13, bGeoZone14, bGeoZone15,
bGeoZone16, bGeoZone17, bGeoZone18, bGeoZone19, bGeoZone20 : Boolean;
fVirtualOdometer : Extended; sCurrOperatorCode : string; bMovement : Bool ) :TEventslistArray;
funcion
uso de la funcion aqui es donde me marca el error
Código Delphi
[-]
NewArrayData := SearchEvents(sIMEI, iCompanyId, sVehicleId,
iCurrSpeed,iCurrRPM,iAccDeccValue,
bDIN1, bDIN2, bDIN3, bDIN4,
fAIN1, fAIN2, fAIN3, fAIN4,
iGSMSignal, iCurrentProfile ,
fAcelerometerData, fGPSSpeed, fPowerSuplyVoltage, fBatteryVoltage, fBatteryCurrent,
fGPSPower, fPCBTemperature, fTempSensor1, fTempSensor2,
fTempSensor3, fFuelCounter, sButtonInput, fCan0, fCan1,
fCan2, fCan3, fCan4, fCan5, fCan6, fCan7, fCan8, fCan9,
bGeoZone1, bGeoZone2, bGeoZone3,
bGeoZone4, bGeoZone5, bGeoZone6, bGeoZone7,
bGeoZone8, bGeoZone9, bGeoZone10, bGeoZone11,
bGeoZone12, bGeoZone13, bGeoZone14, bGeoZone15,
bGeoZone16, bGeoZone17, bGeoZone18, bGeoZone19, bGeoZone20,
fVirtualOdometer, sCurrOperatorCode, bMovement);
la funcion no esta terminada lo que quiero de esta funcion es que me ingrese unos datos y si hay unos casos cumplidos me genere un array con
el registro primero ingresado y luego los casos cunplidos me generelos unos
nuevos rows repetidos solo con los casos cumplidos afectaran unas variables y generaran un nuevo row
ejemplo
a,b,c insert row en el array
entran a b y c
si c = 0 se evaluan
si c= o tonces escribe a,b y c= '123' en el array
fin
si c= 1
si c= o tonces escribe a,b y c= '321' en el array a regresar
alfinal
deben quedarme 3 rows
1 original
2 cambiado
3 cambiado
fin de la funcion
Código Delphi
[-]
function TFMListenerService.SearchEvents(sIMEI: string; iCompanyId : integer; sVehicleId : string;
iCurrSpeed,iCurrRPM,iAccDeccValue :integer;
bDIN1, bDIN2, bDIN3, bDIN4 : Boolean;
fAIN1, fAIN2, fAIN3, fAIN4 : string;
iGSMSignal, iCurrentProfile : integer;
fAcelerometerData, fGPSSpeed, fPowerSuplyVoltage, fBatteryVoltage, fBatteryCurrent,
fGPSPower, fPCBTemperature, fTempSensor1, fTempSensor2,
fTempSensor3, fFuelCounter, sButtonInput, fCan0, fCan1,
fCan2, fCan3, fCan4, fCan5, fCan6, fCan7, fCan8, fCan9 : string;
bGeoZone1, bGeoZone2, bGeoZone3,
bGeoZone4, bGeoZone5, bGeoZone6, bGeoZone7,
bGeoZone8, bGeoZone9, bGeoZone10, bGeoZone11,
bGeoZone12, bGeoZone13, bGeoZone14, bGeoZone15,
bGeoZone16, bGeoZone17, bGeoZone18, bGeoZone19, bGeoZone20 : Boolean;
fVirtualOdometer : string; sCurrOperatorCode : string; bMovement : Bool ) :TEventslistArray;
var
count : integer;
Conn: IConnection;
sqlQuery : TADOQuery;
ADOSP: TADOStoredProc;
EvenType : string;
EvenCode : integer;
begin
if iCurrSpeed then
begin
ADOSP.Connection := Conn; ADOSP.ProcedureName := 'GetOverSpeed'; ADOSP.Parameters.Refresh; ADOSP.Parameters.ParamByName('@CompanyId').Value := iCompanyId;
ADOSP.Parameters.ParamByName('@CarNumber').Value := sVehicleId;
ADOSP.Parameters.ParamByName('@Speed').Value := iCurrSpeed;
ADOSP.Parameters.ParamByName('@EventType').Direction := EvenType;
ADOSP.Parameters.ParamByName('@EventCode').Direction := EvenCode;
end;
ADOSP.Close;
ADOSP.Free;
ADOSP.Connection := Conn; ADOSP.ProcedureName := 'GetOverRpm'; ADOSP.Parameters.Refresh; ADOSP.Parameters.ParamByName('@CompanyId').Value := iCompanyId;
ADOSP.Parameters.ParamByName('@CarNumber').Value := sVehicleId;
ADOSP.Parameters.ParamByName('@Factor').Value := iCurrSpeed;
ADOSP.Parameters.ParamByName('@EventType').Direction := EvenType;
ADOSP.Parameters.ParamByName('@EventCode').Direction := EvenCode;
if iCurrRPM then
begin
end;
ADOSP.Connection := Conn; ADOSP.ProcedureName := 'GetOverSpeed'; ADOSP.Parameters.Refresh; ADOSP.Parameters.ParamByName('@CompanyId').Value := iCompanyId;
ADOSP.Parameters.ParamByName('@CarNumber').Value := sVehicleId;
ADOSP.Parameters.ParamByName('@AccelDecel').Value := iCurrSpeed;
ADOSP.Parameters.ParamByName('@EventType').Direction := EvenType;
ADOSP.Parameters.ParamByName('@EventCode').Direction := EvenCode;
if iAccDeccValue then
begin
end;
end;