La idea detallada y funciona...
De lo dicho a lo hecho:
1. En la ventana que contiene tu DW, en la ficha Declare Instance Variable (Global External Functions) pegas en una sola línea:
FUNCTION long GetComputerNameA(ref string ComputerName, ref ulong BufferLength) LIBRARY "KERNEL32.DLL"
2. En tu tabla creas un campo:
midocumento (varchar)
3. En la ventana que contiene DW, en el botón Browse, pegas:
String ruta, nombre, ruta_corregida, ruta_completa
Integer valor
Integer fila
fila=dw_1.getRow()
//Obtiene el nombre de la PC
long ll_ret
string ls_ComputerName
ulong BufferLength = 250
ls_ComputerName = Space(BufferLength)
ll_ret = GetComputerNameA(ls_ComputerName, BufferLength)
//Obtienes la "ruta" local. Ejm: C:\proyecto\seguimiento.rtf
valor = GetFileOpenName("Seleccione el archivo", + ruta, nombre, "DOC", + "Bmp Files (*.BMP),*.BMP," + "Jpg Files (*.JPG),*.JPG")
//Quitas los dos puntos. Ejm: C\proyecto\seguimiento.rtf
ruta_corregida=Replace(ruta,2,2,"\")
//Concatenas el nombre de la PC y la ruta corregida
//Ejm: \\pc01\C\proyecto\seguimiento.rtf
ruta_completa=string("\\"+ls_ComputerName+"\"+ruta_corregida)
//Obtienes la ruta completa en un campo de tu DW
dw_1.SetItem(fila,"midocumento",ruta_completa)
Nota: El método es válido para cualquier cantidad de PCs, tampoco importa la ruta donde se halla el archivo. Por ejemplo, otro usuario puede mostrar:
\\pc-18\D\micarpeta\otro.rtf
Suerte!