PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 2024 → Groupware analysis
Groupware analysis
Iniciado por guest, 16,ene. 2015 17:21 - 5 respuestas
Publicado el 16,enero 2015 - 17:21
Hi All

Is it possible to modify the groupware files in order to add new fields such as company, computer etc.?
I included the analisys in the project as custom manual start, the internal component was automatically included in the project, I can see the WDGPU analysis in the project but I can't open the corresponding files in order to modify them.


Thanks for your help!
Publicado el 16,enero 2015 - 18:46
Hi Gabriel,

yes, this is possible! The Groupware is an Internal Component with its own analysis, access to the Groupware files while your project's other files are open can be done via

// Declare the file
File_GPU_User..Name = "GPU_User"
File_GPU_User..Type = hFileNormal

// Declare the item UserID
MyItem_UserID..Name = "UserID"
MyItem_UserID..Type = hItemIdAuto4
MyItem_UserID..Size = 4
MyItem_UserID..KeyType = hUniqueKey
HDescribeItem(File_GPU_User, MyItem_UserID)

// Declare the item Login
MyItem_Login..Name="Login"
MyItem_Login..Type = hItemUnicodeText
MyItem_Login..Size = 255
MyItem_Login..KeyType = hUniqueKey
HDescribeItem(File_GPU_User, MyItem_Login)

I added a few features to the groupware in different projects. E.g.

- array of favourite windows and associated icons for each user
- names of computers to allow access for a certain user
- days of week and times for allowed access
- switching on/off of groupware
- recording not only of log-in date/times but of log-off date/times too
Publicado el 16,enero 2015 - 22:39
Hi Guenter

Thank you for your help.

Are you linking the groupware GPU_USER file info to your project files via GPU_USER.UserId so you can add new fields in related tables ? or are you modifying the GPU_USER file and adding to it the fields for the new options ?
I tried to do the second option but I am getting an open error when I try to open the WDGPU analysis.

Thank's again

Gabriel Marten
Publicado el 17,enero 2015 - 08:31
Hi Gabriel,

in order to keep programming efforts as small as possible, I just modifiede GPU_USER file and others within the internal component. From the project, you can access the gpu-files only by describing them, then opening each and access them in read/write mode. The opening error may come up because the files are not in the directory where you're expecting them to be?
Publicado el 17,enero 2015 - 11:15
Hi, the full declaration and opening of GPU_User from the inside of the project (the last three items are for storing 25 favourite windows for each user, to be maintained by the supervisor)

// Declare the file
File_GPU_User..Name = "GPU_User"
File_GPU_User..Type = hFileNormal

// Declare the item UserID
MyItem_UserID..Name = "UserID"
MyItem_UserID..Type = hItemIdAuto4
MyItem_UserID..Size = 4
MyItem_UserID..KeyType = hUniqueKey
HDescribeItem(File_GPU_User, MyItem_UserID)

// Declare the item Login
MyItem_Login..Name="Login"
MyItem_Login..Type = hItemUnicodeText
MyItem_Login..Size = 255
MyItem_Login..KeyType = hUniqueKey
HDescribeItem(File_GPU_User, MyItem_Login)

// Declare the item Name
MyItem_Name..Name="Name"
MyItem_Name..Type = hItemUnicodeText
MyItem_Name..Size = 255
HDescribeItem(File_GPU_User, MyItem_Name)

// Declare the item FirstName
MyItem_FirstName..Name="FirstName"
MyItem_FirstName..Type = hItemUnicodeText
MyItem_FirstName..Size = 255
HDescribeItem(File_GPU_User, MyItem_FirstName)

// Declare the item Password
MyItem_Password..Name="Password"
MyItem_Password..Type = hItemUnicodeText
MyItem_Password..Size = 50
HDescribeItem(File_GPU_User, MyItem_Password)

// Declare the item Supervisor
MyItem_Supervisor..Name="Supervisor"
MyItem_Supervisor..Type = hItemBoolean
MyItem_Supervisor..Size = 1
HDescribeItem(File_GPU_User, MyItem_Supervisor)

// Declare the item PasswordToEnter
MyItem_PasswordToEnter..Name="PasswordToEnter"
MyItem_PasswordToEnter..Type = hItemBoolean
MyItem_PasswordToEnter..Size = 1
HDescribeItem(File_GPU_User, MyItem_PasswordToEnter)

// Declare the item Photo
MyItem_Photo..Name="Photo"
MyItem_Photo..Type = hItemBinaryMemo
MyItem_Photo..AccentuationSensitive = True
MyItem_Photo..CaseSensitive = True
MyItem_Photo..PunctuationSensitive = True
MyItem_Photo..Size = 8
HDescribeItem(File_GPU_User, MyItem_Photo)

// Declare the item Phone
MyItem_Phone..Name="Phone"
MyItem_Phone..Type = hItemText
MyItem_Phone..Size = 50
HDescribeItem(File_GPU_User, MyItem_Phone)

// Declare the item IconName
MyItem_IconName..Name="IconName"
MyItem_IconName..Type = hItemText
MyItem_IconName..Size = 50
MyItem_IconName..NbArrayElement = 25
HDescribeItem(File_GPU_User, MyItem_IconName)

// Declare the item Description
MyItem_ButtonCaption..Name="ButtonCaption"
MyItem_ButtonCaption..Type = hItemText
MyItem_ButtonCaption..Size = 60
MyItem_ButtonCaption..NbArrayElement = 25
HDescribeItem(File_GPU_User, MyItem_ButtonCaption)

// Declare the item WindowName
MyItem_WindowName..Name="WindowName"
MyItem_WindowName..Type = hItemText
MyItem_WindowName..Size = 50
MyItem_WindowName..NbArrayElement = 25
HDescribeItem(File_GPU_User, MyItem_WindowName)

HDescribeFile(File_GPU_User)

IF MyHFCSorHFClassic = "HFCS" THEN
HChangeConnection(GPU_User,MyConnection)
HChangeDir(GPU_User,".\Gpw_BackPRIMA_2014")
ELSE
HChangeConnection(GPU_User,MyConnection)
HChangeDir(GPU_User,MyPathToHFClassic)
END

IF NOT HOpen(GPU_User,MyCompanyName,hOReadWrite) THEN
Error(HError(hErrCurrent))
END

IF HReadSeek(GPU_User, "Login",Upper(MyUSERis_LOGINNAME),hIdentical)=True THEN
MyUSERis_Password = GPU_User.Password
Publicado el 17,enero 2015 - 17:44
Hi Guenter

Thanks for your reply!

Best regards

Gabriel Marten