Acomba (Forum)
Pourquoi ne pas devenir membre du forum ?

Identifiez-vous ou Inscrivez-vous afin d'accéder à l'inrégralité du forum:
Accès à toutes les catégories du forum,
Entraide entre les 6 500 membres, et ce nombre s'accroît quotidiennement!

Notez que ce forum est indépendant de la société Acceo Solutions, éditrice du logiciel Acomba.
Connexion

Récupérer mon mot de passe


Ajout timesheet

Voir le sujet précédent Voir le sujet suivant Aller en bas

Ajout timesheet

Message  servlinksfg le Lun 7 Juil 2014 - 11:27

Bonjour,

j'ai un problème pour ajouter un timesheet, j'essaie d'utiliser ReserveCardNumber mais le problème est que j'ai pas de clé primaire alors ça ne fonctionne pas. Quelqu'un à une idée comment faire?

L'erreur retourné est la suivante:
Error reserve card number 2147483647 : Erreur de ToolKit
Fonction = ReserveCardNumber
Champ =
Erreur = Function not supported for this CardID

Voici mon code en c# après des heures de test :

Code:
int totalcard = timesheet.NumCards();
int emp = GetEmployeCardPos(ts.employeenumber[j]);
int project = GetProjectCardPos(ts.projectnumber);
int function = GetFunctionCardPos(emp);
int salary = GetSalaryCardPos(emp);

timesheet.BlankCard();
http://timesheet.CardPos = totalcard + 1;
timesheet.ReserveEmployee(emp);
timesheet.TSProjectCP = project;
timesheet.TSStartDate = ts.startdate[j];
timesheet.TSEmployeeCP = emp;
timesheet.TSFunctionCP = function;
timesheet.TSSalaryCP = salary;
timesheet.TSTotalHours = ts.totalhours[j];
timesheet.TSComment = ts.comment[j];
timesheet.TSType = PA_TimeSheetType.PA_TSType_Hour;
timesheet.Key_TSEmployeeCP = emp;
timesheet.Key_TSFunctionCP = function;
timesheet.Key_TSSalaryCP = salary;
timesheet.Key_TSStartDate = ts.startdate[j];
timesheet.Key_TSCardPos = timesheet.CardPos;
//Error = timesheet.ReserveCard(timesheet.CardPos);
Error = timesheet.ReserveCardNumber();

//Error = 0;
if (Error == 0)
{
    //Error = timesheet.ModifyCard(true);
    Error = timesheet.AddCard();
    if (Error != 0)
        write_error("Error "+Error.ToString()+" : " + acomba.GetErrorMessage(Error));
    timesheet.FreeCardNumber();
   
}
else
{
    write_error("Error reserve card number " + timesheet.CardPos+" : " + acomba.GetErrorMessage(Error));
}
timesheet.FreeEmployee(emp);

servlinksfg

Nombre de messages : 2
Date d'inscription : 07/07/2014

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Update

Message  servlinksfg le Jeu 4 Juin 2015 - 13:17

Finalement mon problème majeur était que j'utilisais AcoSDK.dll au lieu de AcoX0127.dll.
Voici mon nouveau code:
Code:

try
                    {
                        int emp = GetEmployeCardPos(ts.employeenumber[j]);
                        int project = GetProjectCardPos(ts.projectnumber);
                        int function = GetFunctionCardPos(emp);
                        int salary = 0;

                        timesheet.BlankCard();
                        timesheet.ReserveEmployee(emp);
                        timesheet.TSProjectCP = project;
                        timesheet.TSStartDate = ts.startdate[j];
                        timesheet.TSEmployeeCP = emp;
                        timesheet.TSFunctionCP = function;
                        timesheet.TSSalaryCP = salary;
                        timesheet.TSTotalHours = ts.totalhours[j];
                        timesheet.TSComment = ts.comment[j];
                        timesheet.TSType = PA_TimeSheetType.PA_TSType_Hour;


                        Error = 0;
                        if (Error == 0)
                        {
                            Object TransCP = AcoX0127.Constant.IsBeingCreated;
                            Error = timesheet.XModifyCard(ref TransCP, 1);
                            if (Error != 0)
                            {
                                write_error("Error " + Error.ToString() + " : " + acomba.GetErrorMessage(Error));
                                write_error("Ajout TS projet : " + project.ToString() + " Employe : " + emp.ToString() + " Function : " + function.ToString() + " Salary : " + salary.ToString() + " Comment : " + ts.comment[j]);
                            }
                            timesheet.FreeCardNumber();

                        }
                        else
                        {
                            write_error("Error reserve card number " + timesheet.RecCardPos + " : " + acomba.GetErrorMessage(Error));

                        }
                        timesheet.FreeEmployee(emp);
                        
                    }
                    catch (Exception exline)
                    {
                        write_error("Error write time sheet line " + j + " - Message: " + exline.Message);
                    }

Code:

public int GetProjectCardPos(string Numero)
        {

            ProjectKey ProjectIndex = new ProjectKeyClass();
            ProjectIndex.BlankKey();
            int Index = 1;
            int Error = -1;

            ProjectIndex.PrNumber = Numero;

            Error = ProjectIndex.FindKey(Index);
            if (Error == 0)

                return ProjectIndex.PrCardPos;

            else

                return 0;

        }

        public int GetEmployeCardPos(string Numero)
        {

            EmployeeKey EmployeeIndex = new EmployeeKeyClass();
            EmployeeIndex.BlankKey();
            int Index = 1;
            int Error = -1;

            EmployeeIndex.EmNumber = Numero;

            Error = EmployeeIndex.FindKey(Index);
            if (Error == 0)

                return EmployeeIndex.EmCardPos;

            else

                return 0;

        }

        public int GetFunctionCardPos(int NumeroEmp)
        {
            FunctionXKey FunctionIndex = new FunctionXKeyClass();
            FunctionIndex.BlankKey();
            int Index = 1;
            int Error = -1;

            FunctionIndex.FnEmployeeCP = NumeroEmp;
            FunctionIndex.FnOrder = 1;
            FunctionIndex.FnReference = 1;


            Error = FunctionIndex.XFindKey(Index);
            if (Error == 0)

                return FunctionIndex.FnCardPos;

            else

                return 0;
        }


servlinksfg

Nombre de messages : 2
Date d'inscription : 07/07/2014

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum